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