Commit Graph

1150 Commits

Author SHA1 Message Date
Michael Drake
10edbc45bd If a character is replaced by a character of different width, the caret needs to move. Checking change in character index isn't enough, so move caret if redraw was required too. 2013-02-09 18:41:23 +00:00
Michael Drake
32e9602126 When updating textarea layout settings, remember scrollbar status. 2013-02-09 18:21:10 +00:00
Michael Drake
1be54d7b10 If restarting reflow for scrollbar change, need to start at line 0. 2013-02-09 16:50:30 +00:00
Michael Drake
56cfa93531 Empty textarea has one line. 2013-02-09 16:28:00 +00:00
Michael Drake
25b036418e Stop it from using past the end of lines data allocation. (It could add up to 2 lines per pass, but assumed 1 for allocation.) 2013-02-09 15:26:20 +00:00
Michael Drake
8c3e0cf81a [Return] will replace selection. 2013-02-09 14:43:21 +00:00
Michael Drake
b4609f41bc Support front ends that pass CR for [return], as well as those that pass NL. 2013-02-09 14:19:38 +00:00
Michael Drake
eb1113e4c3 Fix handling of empty textarea. 2013-02-09 14:18:17 +00:00
Michael Drake
048b344a43 Take account of scrollbar-occupied regions. 2013-02-09 13:34:28 +00:00
Michael Drake
f848de3dd0 Fix use of x values when y is required. 2013-02-09 13:18:16 +00:00
Michael Drake
2bd0d13817 Take account of caret height when scrolling to show caret. 2013-02-09 11:54:13 +00:00
Michael Drake
688e1b0e4f Slight selection auto-scroll optimisation. 2013-02-09 11:24:44 +00:00
Michael Drake
363d02b8ad Pedantic wrap. 2013-02-08 23:39:41 +00:00
Michael Drake
50c52408f5 Fix seg fault when moving cursor up onto empty top line. 2013-02-08 23:38:05 +00:00
Michael Drake
6fee220c52 Adjust code to reduce indentation. 2013-02-08 23:35:42 +00:00
Michael Drake
0d831c4ab6 Scaled textarea rendering support. Ugly. 2013-02-08 23:25:40 +00:00
Michael Drake
586e02e915 Implement text selection auto-scroll. 2013-02-08 20:03:44 +00:00
Michael Drake
7a397d29c6 Improve scroll-to-caret behaviour. 2013-02-08 19:46:35 +00:00
Michael Drake
59d24187f7 Support dropping text file on textarea widget. 2013-02-08 16:05:44 +00:00
Michael Drake
698f391289 Add scrollwheel support to textareas. 2013-02-08 15:26:24 +00:00
Michael Drake
f57e89cc25 Add ta to documentation. 2013-02-08 15:15:27 +00:00
Michael Drake
9c20ff9592 Drag fixup. Add some documentation. 2013-02-08 15:05:07 +00:00
Michael Drake
4747bbbfb2 HTML drags now go via content msg. 2013-02-08 13:22:53 +00:00
Michael Drake
9ec663f3a9 Tweak selection rendering. Adjusting layout doesn't emit redraw request. Client must redraw when it wants it. 2013-02-08 13:16:24 +00:00
Michael Drake
76b0e59b18 Don't lose fractional part of text pt size to rounding. 2013-02-07 15:03:35 +00:00
Michael Drake
2979a19786 Remove input subtree special numberspacing. 2013-02-07 14:21:48 +00:00
Michael Drake
94be5edbfa Native caret not now set in redraw. Prevents endless redraw when textarea has caret. 2013-02-07 13:58:43 +00:00
Michael Drake
762e1aad73 First pass at getting html forms to use textarea widget.
(Input element types text & password, and textarea element.)
Can edit and submit forms, but there are loads of issues.
2013-02-06 22:39:45 +00:00
Michael Drake
008cdb42d7 Fix empty textarea reflow. Fix empty line (just \n) redraw. Add set layout function to set size and padding. 2013-02-06 22:30:32 +00:00
Michael Drake
442218cb80 Pull flags out of textarea_setup. 2013-02-02 22:58:35 +00:00
Michael Drake
97bc1d0189 Add support for password text inputs.
+ Text display obscured.
  + Cut/Copy put the obscured version on the clipboard.
2013-02-01 18:29:27 +00:00
Michael Drake
663191791e Add move caret msg. Add flag to choose internal caret or caret move msgs. 2013-01-30 18:01:01 +00:00
Michael Drake
5eb417fff4 Create textarea_msg struct on stack, rather than using global. 2013-01-29 22:52:21 +00:00
Michael Drake
af7a5d2d67 Don't redraw if selection is unchanged. 2013-01-29 20:28:10 +00:00
Michael Drake
93cc123200 Update textarea to inform client what it's doing with drags.
Now single callback for both redraw requests and drag reports.
Update treeview to use new textarea API.
Update Atari URL bar to use new textarea API.  (Ignores drag reports, currently.)
Minor textarea fixes.
2013-01-29 17:34:08 +00:00
Michael Drake
75a24f7838 Add enum value for when no button is pressed (hover). 2013-01-29 14:07:24 +00:00
François Revol
2f94b0a949 textarea: C89 2013-01-20 17:59:55 +01:00
Michael Drake
9995ef583f Early scrollbar mouse handling. 2013-01-18 23:32:53 +00:00
Michael Drake
d252896953 Ensure we know for sure if scrollbar widget will want to scroll us. Avoid double xy to offset conversion. 2013-01-15 21:05:54 +00:00
Michael Drake
7a0b347563 Add parentheses. 2013-01-15 19:50:36 +00:00
Michael Drake
348e9789a4 Add scrollbars to textarea, and improve scrolling to try to keep caret in centre. Currently the scrollbars are mostly decoration, although they show accuratly where you are scrolled to in the area. TODO: Pass mouse input to scrollbars. 2013-01-15 19:40:32 +00:00
Michael Drake
96264ca71e Use right padding. Thanks jmb. 2013-01-14 12:01:23 +00:00
Michael Drake
700aea8b08 Fix caret removal redraw to take account of border width. Fix scroll_visible to take account of border width in vertical scroll. 2013-01-14 11:46:56 +00:00
Michael Drake
2b7bc02961 Implement most of the styling needed for HTML. Allow caret to be hidden. 2013-01-13 23:01:29 +00:00
Michael Drake
740559ab52 Rewrite redraw to handle selection properly. (Now text can change colour inside selection, rather than just rendering a rectangle under the normal line of text. This removes colour restrictions, allowing e.g. inversion for selected text.) 2013-01-13 14:51:26 +00:00
Michael Drake
c7a37392e4 Add background colour to textarea_redraw API. Add source comments. 2013-01-12 20:59:32 +00:00
Michael Drake
5124b8a02a Add textarea_setup struct to textarea_create API. 2013-01-12 20:46:01 +00:00
Michael Drake
ac03806a50 Fix redraw of caret when scroll offsets are non-zero, only caret has moved, and we're not getting a full textarea redraw. 2013-01-10 23:21:47 +00:00
Michael Drake
ac89e52109 Simplify routine to scroll ta so that caret is visible. 2013-01-10 23:20:42 +00:00
Michael Drake
ab5d165659 More wrap behaviour improvement. 2013-01-10 19:43:22 +00:00