Commit Graph

656 Commits

Author SHA1 Message Date
Ruben Dashyan
c1470ed9d3 [escher/input_view_controller] Define isEditing method 2019-08-29 11:07:22 +02:00
Émilie Feral
cbe6d312d4 [escher] Add a comment for future improvement on TextField 2019-08-13 09:44:00 +02:00
Émilie Feral
011142427a [esher] TextField: fix issues:
- when textFieldDidFinishEditing failed ("1+ln(-2)" in a scalar
entry for instance), the previous text was modified even if edition aborted
- The draft buffer was not reinitialized when overriding the draft text
buffer with a text event
2019-08-13 09:44:00 +02:00
Émilie Feral
12060e2ae7 [escher] TextField: all text fields use the same draft text buffer 2019-08-13 09:44:00 +02:00
Léa Saviot
c839fb52a3 [escher/layout_field] Fix cursor position on Empty layout
Scenario: In the calculations app, write 1, Enter, write •|/2, go up,
then go down. There is a problem with the empty layout and the cursor.
2019-08-08 17:22:03 +02:00
Léa Saviot
e8be088478 [apps/escher] Factorize TxtArea and Code::EditorCtrlr's k_indentSpaces 2019-08-08 16:22:28 +02:00
Émilie Feral
7a4ee746b2 [escher] TextField: call reinitDraftBuffer after edition is complete to
avoid erasing text that is required later.

Fix bug: OK handling on function list in linear mode did not copy the
function expression into the textfield before editing
2019-07-30 11:47:42 +02:00
Ruben Dashyan
44809f4b3f Substitute Escher app() by Container::activeApp() 2019-07-19 15:06:25 +02:00
Ruben Dashyan
772610d9e0 [escher/container] Assert activeApp() does not return nullptr 2019-07-19 15:06:25 +02:00
Ruben Dashyan
224f7873f7 [*container] Make Container::s_activeApp protected 2019-07-19 15:06:25 +02:00
Ruben Dashyan
a0e6151b26 [*container] Remove static Container::sharedContainer 2019-07-19 15:06:25 +02:00
Ruben Dashyan
80981ce865 [escher/container] Make activeApp static 2019-07-19 15:06:25 +02:00
Ruben Dashyan
17795eed87 [escher] Include container.h instead of app.h
app.h did actually include container.h
2019-07-19 15:06:25 +02:00
Ruben Dashyan
0531187cda [escher] Cleaner app header inclusion 2019-07-19 15:06:25 +02:00
Ruben Dashyan
055d601854 [apps] Define TextFieldDelegate::textFieldDelegateApp() directly from ::app() 2019-07-19 15:06:25 +02:00
Ruben Dashyan
5058f64163 [apps] Define LayoutFieldDelegate::expressionFieldDelegateApp() directly from ::app() 2019-07-19 15:06:25 +02:00
Ruben Dashyan
2888eddd06 [escher/button_row_controller] Access the app directly 2019-07-19 15:06:25 +02:00
Ruben Dashyan
e4ec398ecd [escher] InputEventHandler gets the app directly 2019-07-19 15:06:25 +02:00
Romain Goyet
21907fb89a [apps] Get rid of App casts 2019-07-19 15:06:25 +02:00
Romain Goyet
581ec55832 [escher] Inline the App::snapshot() function 2019-07-19 15:06:25 +02:00
Romain Goyet
45875dd642 [escher] Make app() a global function
This way it can easily be reached by anyone, including non-responders.
And it can easily be overwritten in namespaced apps.
2019-07-19 15:06:25 +02:00
Ruben Dashyan
ba2a98f5e5 [escher/app] Remove poor man's RTTI 2019-07-19 15:06:25 +02:00
Ruben Dashyan
443f974cbb [escher/container] Inline activeApp() accessor 2019-07-19 15:06:25 +02:00
Ruben Dashyan
1f06819974 [apps] Remove Container * parameter from all App constructors 2019-07-19 15:06:25 +02:00
Ruben Dashyan
5f8a745957 [escher/app] Remove Container 2019-07-19 15:06:25 +02:00
Ruben Dashyan
268ad3f3ba Access the shared container from escher and apps 2019-07-19 15:06:25 +02:00
Léa Saviot
cc8403e020 [escher/text_input] Factorize and clean handleEvent Right and Left 2019-06-21 14:30:14 -04:00
Léa Saviot
5f549b514e [escher] Fix backspace on utf8 combining code point 2019-06-21 14:30:14 -04:00
Léa Saviot
2061c5d692 [escher/text_area] Fix text indentation handling
We used a small buffer to preprocess a text to insert in text area (add
indentation, remove empty code points, compute the next cursor location),
but the size of this buffer was sometimes too small and caused a crash.
Now we do all the text odification in place in the text area buffer.
2019-06-13 11:40:13 -04:00
Léa Saviot
3d991e56da [escher/poincare] Cleaner way to find the cursored layout in LayoutField
Everything is now in the virtual method
LayoutNode::layoutToPointWhenInserting
This removes a dirty inclusion of apps/i18n.h in escher
2019-05-27 17:24:11 +02:00
Émilie Feral
2217eebaec [escher] SelectableTableView: when reloading data, we temporary deselect
the table. We warn the SelectableTableViewDelegate that the selection
change is 'within a temporary selection change' when notifying it of the
change.
2019-05-03 15:54:21 +02:00
Émilie Feral
5e280c7538 [escher] ExpressionView: optimize setLayouts to avoid marking the whole
view as dirty when the layout did not really changed
2019-05-03 15:54:21 +02:00
Émilie Feral
c1a0e94ec7 [escher] Clean empty lines 2019-05-03 15:54:21 +02:00
Émilie Feral
240ed439e0 [escher] ScrollableView: discard duplicate data source of scrolling
offset
2019-05-03 15:54:21 +02:00
Émilie Feral
50ad6b6761 [escher] SelectableTableViewDataSource: avoid calling m_delegate->tableViewDidChangeSelection when only reloading the data. 2019-05-03 15:54:20 +02:00
Ruben Dashyan
a3fe99da21 [escher] Simplify TableView::scrollToCell 2019-05-03 15:54:20 +02:00
Léa Saviot
a88a1bcbef [escher] Increase TextField::maxBufferSize
In order to be able to write a 10*10 adjacency matrix
2019-05-03 15:53:21 +02:00
Léa Saviot
b3d0de564a [coding style] Small inlining 2019-05-03 15:53:20 +02:00
Léa Saviot
3f0bdc6630 [escher] Fix TextArea::handleEventWithText
It did not handle properly a new line (placed the cursor wrongly).
2019-05-03 15:53:20 +02:00
Léa Saviot
b2a97cfc7a [escher] Fix buffer choice in TextField::glyphFrameAtPosition 2019-05-03 15:53:20 +02:00
Léa Saviot
7f4ef39d0c [text_area] Fix Text::Position use with unicode
A glyph offset is not equivalent to a code point offset since a code
point can be several glyphs long.
2019-05-03 15:53:19 +02:00
Léa Saviot
f9fbcabb30 [escher/ion] Factorize code for removing a code point in text field/area 2019-05-03 15:53:19 +02:00
Léa Saviot
9e06b23bbb [escher/ion] Standard methods in UTF8Helper used in text_area
String manipulations need to be done using an UTF8 decoder, but some
manipulations can be optimized if the code points we manipulate are only
one char long. These optimizations are done inside UTF8Helper methods.
2019-05-03 15:53:19 +02:00
Léa Saviot
bd2ea41fbe [apps/escher] Rename cursorTextLocation as cursorLocation 2019-05-03 15:53:19 +02:00
Léa Saviot
cfbb1318ad [escher] Clean TextView 2019-05-03 15:53:19 +02:00
Léa Saviot
7b5c51b3c3 [escher] Fix textfield edition 2019-05-03 15:53:19 +02:00
Léa Saviot
bbb10f1993 [ion/kandinsky] Move unicode to ion 2019-05-03 15:53:19 +02:00
Léa Saviot
f0e8196016 [escher] Fix text field and text area navigation 2019-05-03 15:53:19 +02:00
Léa Saviot
5c39cab73e [escher] Fix text inputs so they use UTF8 2019-05-03 15:53:19 +02:00
Léa Saviot
07a910b455 [escher] Clean text_input 2019-05-03 15:53:19 +02:00