Commit Graph

90 Commits

Author SHA1 Message Date
Léa Saviot
e10bd18f8e [escher/text_area] insertTextAtLocation removes system parentheses 2020-02-12 15:13:18 +01:00
Léa Saviot
a42b52d10e [escher/text_area/field] When pasting, force cursor right of text 2020-02-12 15:13:18 +01:00
Léa Saviot
d9b284c1ec [escher/text_input] ShiftUp/Down selects whole textfield on left/right 2020-02-12 15:13:18 +01:00
Léa Saviot
efc8a238ea [escher] Rename deleteSelectedText -> deleteSelection 2020-02-12 15:13:17 +01:00
Léa Saviot
df167376f0 [escher/text_area] Handle cut event 2020-02-12 15:13:17 +01:00
Léa Saviot
9c5843500a [escher/text_input] Fix reload and scroll after deleteSelectedText 2020-02-12 15:13:17 +01:00
Léa Saviot
20c761d3f0 [escher/text_area] Fix slection over wrote
Scenario: 34567          then press 0 -> we want 3067
           ** selected
2020-02-12 15:13:17 +01:00
Léa Saviot
73b1f7da20 [escher/text_input] Fix selection algorithm
There was a glitch when :
** are the selected glyphs and | is the cursor

12345678
234567|8    then Shift+up
    **
2020-02-12 15:13:17 +01:00
Léa Saviot
1f44f80e4a [escher] Scroll to cursor when selecting up / down 2020-02-12 15:13:17 +01:00
Léa Saviot
b6f3b39086 [escher/text_input] Rename currentSelectionIsEmpty -> selectionIsEmpty 2020-02-12 15:13:17 +01:00
Léa Saviot
67008f454e [escher/text_area] Replace the selection when event with text 2020-02-12 15:13:17 +01:00
Léa Saviot
30923ed4c6 [escher/text_area] Select up/down 2020-02-12 15:13:17 +01:00
Léa Saviot
1eba12784f [escher/text_area] Remove unnecessary scroll 2020-02-12 15:13:17 +01:00
Léa Saviot
14cc6ffc59 [escher/text_area] Select and copy 2020-02-12 15:13:17 +01:00
Émilie Feral
2861a35840 Clean some warnings 2019-08-08 16:29:38 +02:00
Ruben Dashyan
e4ec398ecd [escher] InputEventHandler gets the app directly 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
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
67eea0802f [escher/text_area] Fix cursor navigation on combining code points 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
Émilie Feral
1e01c5dadb [escher] TextArea: fix cursor position when handling text with UCodePointEmpty 2019-05-07 17:13:13 +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
e338577793 [unicode] Clean decoder use 2019-05-03 15:53:20 +02:00
Léa Saviot
4c5251f04f [unicode] Use unicode when dealing with chars - Part 2 2019-05-03 15:53:19 +02:00
Léa Saviot
ac5311d257 [escher/text_area] Fix rect dirtying after Clear event 2019-05-03 15:53:19 +02:00
Léa Saviot
d91fdeb12b [unicode] Fix stop condition in TextArea::Text::removeRemainingLine 2019-05-03 15:53:19 +02:00
Léa Saviot
4e93a564b6 [escher/ion] Fix wrong assertions 2019-05-03 15:53:19 +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
94b4cbc8d5 [unicode] Fix python area 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
e6b61b257b [unicode] Methods optimized when code points are one char long 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
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
41afa92f10 [unicode] Use the UTF8Decoder to scan const char * 2019-05-03 15:53:19 +02:00
Léa Saviot
65e5adafac Remove Ion::Charset 2019-05-03 15:53:19 +02:00
Émilie Feral
0a823da78c [escher] Variable box pop-up is handle as Toolbox pop-up by asking
InputEventHandlerDelegate
2018-11-23 12:04:03 +01:00
Émilie Feral
698332c355 [escher] InputTextDelegate and LayoutFieldDelegate don't inherit from
InputTextDelegate to avoid diamond inheritance
2018-11-23 12:04:03 +01:00
Émilie Feral
7778c694d1 [escher] Create an InputEventHandlerDelegate that gives the toolbox to
be used by an InputEventHandler
2018-11-23 12:04:02 +01:00
Émilie Feral
01e433a9f2 [escher] Clean Field and Input class hierarchy:
Class hierarchy:
- InputEventHandler
- TextInput
- EditableField derives from InputEventHandler
- LayoutField, TextField and ExpressioField derives from EditableField
- TextArea and TextField derives from TextInput
2018-11-23 12:04:02 +01:00
Romain Goyet
f8beae3b86 [kandinsky] Move to KDFont 2018-10-11 16:44:02 +02:00
Émilie Feral
466c44781a [escher] Fix buffer overflow in TextArea 2018-10-08 11:56:14 +02:00
Émilie Feral
f8f0813485 [escher] TextInput: get rid of variable-size tables 2018-09-17 17:14:43 +02:00
Romain Goyet
a514f2a6be [escher] TextArea now uses clearRect and drawLine 2018-06-04 16:08:11 +02:00
Romain Goyet
9e4a1c7d54 [escher] TextArea cleanup 2018-06-04 16:08:11 +02:00
Romain Goyet
d2b2705d2d [escher] TextInput doesn't use colors anymore 2018-06-04 16:08:11 +02:00