Commit Graph

1772 Commits

Author SHA1 Message Date
Michael Drake
6a4a297b2f Remove temp_treeview_test option. Now it's always "enabled". 2013-09-02 12:47:36 +01:00
Michael Drake
fadaa306d0 Always redirect to the new treeview implementations. 2013-09-02 12:46:33 +01:00
Michael Drake
5d76b448b1 Use new hotlist. 2013-09-02 12:44:40 +01:00
Michael Drake
4ce2f6fd55 Update to use new hotlist and global history manager. 2013-09-02 12:29:16 +01:00
Michael Drake
9a59103c6a Polish node deletion. 2013-08-30 13:29:19 +01:00
Michael Drake
09f5b0e95f Improve callback suppression options. Reduce unnecessary callback usage. 2013-08-30 12:51:40 +01:00
Michael Drake
e2fbd3a266 Avoid copying rectangle for redraw_request calls. 2013-08-30 11:38:02 +01:00
Michael Drake
b4a3c94cf0 Various redraw improvements. 2013-08-29 20:43:25 +01:00
Michael Drake
67cbc779be Make client-requested node deletions issue a redraw request. 2013-08-29 19:58:43 +01:00
Michael Drake
db2f47ab27 Use treeview height instead of REDRAW_MAX for rectangle's y1. 2013-08-29 19:12:49 +01:00
Michael Drake
8cc6ac8980 Redraw on node creation, unless suppressed. 2013-08-29 19:05:04 +01:00
Michael Drake
afaf24378b Add flag to suppress redraw on node creation. 2013-08-29 18:31:58 +01:00
Michael Drake
895954a1e1 Don't bother trying to keep old hotlist in sync -- the old one isn't saved when new one is used anyway. 2013-08-29 14:13:09 +01:00
Michael Drake
7d0f0b08e2 Redirect most interaction with the old hotlist to the new one, when the new one is enabled. 2013-08-29 13:09:24 +01:00
Michael Drake
38e4bbe74d Make clear that title is copied. 2013-08-29 13:08:49 +01:00
Michael Drake
bc0571b9dc Better handling of added entry titles. 2013-08-29 13:08:04 +01:00
Michael Drake
7a25b6aaee Fix one px missmatch between click and drag handling of node selection. 2013-08-28 15:59:00 +01:00
Michael Drake
eaa04e3208 Fix pass-through for drag end. 2013-08-28 15:37:41 +01:00
Michael Drake
bd39d108db Add a few functions for front ends to use. 2013-08-28 14:23:22 +01:00
Michael Drake
91018643db Expose a bit more core treeview functionality for hotlist clients. 2013-08-28 14:13:02 +01:00
Michael Drake
bc14d492d2 Add height getter. 2013-08-28 14:12:30 +01:00
Michael Drake
28dec67c64 Remove select all and clear selection functions from public API. Clients can send KEY_SELECT_ALL and KEY_CLEAR_SELECTION to the keypress handler. 2013-08-28 13:36:15 +01:00
Michael Drake
826b392b57 Simple treeview_edit_selection implementation. 2013-08-28 12:58:41 +01:00
Michael Drake
fbfe5ab17b Function for global history export. 2013-08-28 11:43:34 +01:00
Michael Drake
45d3b9162c Move default title generation from _fini to _export. 2013-08-28 11:14:33 +01:00
Michael Drake
a61e74714d Give export walk ctx clearer name. 2013-08-28 11:05:21 +01:00
Michael Drake
eec80c561c Expose hotlist_export. 2013-08-28 10:59:56 +01:00
Michael Drake
39b68d0b83 Ensure url is unreffed. 2013-08-27 21:01:35 +01:00
Michael Drake
77a090e9d0 Functions to add entry/folder at y-coord or at selection. 2013-08-27 20:56:43 +01:00
Michael Drake
43d1e777df Function to get releations for node entry. 2013-08-27 20:56:20 +01:00
Michael Drake
52937b9763 Update new hotlist 2013-08-27 13:46:36 +01:00
Michael Drake
fd1a94a751 Update the new hotlist on visits. 2013-08-27 13:38:23 +01:00
Michael Drake
4bf5ec0dad Unset default folder when it gets deleted. 2013-08-27 13:31:40 +01:00
Michael Drake
fb9353f220 Use Messages for default folder name. 2013-08-27 12:44:01 +01:00
Michael Drake
00f108f4a2 Add new entries to default folder. 2013-08-27 11:57:31 +01:00
Michael Drake
b7bc3deb7f Load and save default folder ID. 2013-08-27 11:40:12 +01:00
Michael Drake
2c3d2e5f8e Add function to update visited data for hotlist entries. 2013-08-23 19:49:06 +01:00
Michael Drake
44e33001d7 Add function to remove any entries with given URL. 2013-08-23 18:26:18 +01:00
Michael Drake
184650c7d8 Add function to determine whether URL is in hotlist. 2013-08-23 17:30:31 +01:00
Michael Drake
f0749394d1 Add Hotlist export/save support. 2013-08-22 16:06:06 +01:00
Michael Drake
1212f1d321 Expose leaving node callback in public treeview walker interface. 2013-08-22 16:05:03 +01:00
Michael Drake
1e27299cf1 Inform when textarea drag is happening. 2013-08-21 13:54:00 +01:00
Michael Drake
7e6079ea49 Complete editing of entry title and URL values. 2013-08-20 20:04:42 +01:00
Michael Drake
50efc3be3c Act on node edit request message for folders. 2013-08-20 20:04:42 +01:00
Michael Drake
71676165c1 Add folder node update function. 2013-08-20 20:04:42 +01:00
Michael Drake
9e29ef4bdd Pass edit message to treeview client, when editing ends. 2013-08-20 15:44:24 +01:00
Michael Drake
a9e92e335c Fix node insertion ancestor height updating having cumulative effect. 2013-08-20 15:02:09 +01:00
Michael Drake
9f3a83da66 Tidy edit start click behaviour, with existing selections. 2013-08-19 14:41:12 +01:00
Michael Drake
385af23fbe Start of treeview node edit support. Internal treeview part is mostly done. It now needs to inform the client (only hotlist allows edit), of the change. And the hotlist needs to handle the change request message and update the node. 2013-08-19 14:23:44 +01:00
Michael Drake
5beac3085e Implement get window dimensions for treeview test parasite. 2013-08-19 14:04:20 +01:00
Michael Drake
0e00654681 Mention behaviour when params are NULL in comment. 2013-08-19 14:03:36 +01:00
Michael Drake
0ae3bfde8a Use extern on tree.c globals. (These go away when front ends can use the new treeview modules directly.) 2013-08-18 17:17:41 +01:00
Michael Drake
f389c7ad6e Set allow edit flag on title and url fields. 2013-08-18 17:16:47 +01:00
Michael Drake
fd961c6dfa Ensure ctrl modifier is handled, by dealing with it before no-modifiers case. 2013-08-18 13:22:57 +01:00
Michael Drake
5aa5eb9d6f Ensure nodes within contracted nodes are unselected. 2013-08-17 23:52:48 +01:00
Michael Drake
5f32ac1858 Fix clang warning. 2013-08-17 20:20:49 +01:00
Michael Drake
4ab7ad6bd2 Implement node moving drags. 2013-08-17 19:39:17 +01:00
Michael Drake
e5a4c3d4c9 Find the top y value of selections for indicator pos. 2013-08-17 14:37:24 +01:00
Michael Drake
d1cd950327 Improve keyboard nav slightly. 2013-08-17 13:40:05 +01:00
Michael Drake
e1468a78df Fix keyboard nav redraw when treeview height decreases as a result of keypress. Reduce some variable name lengths. 2013-08-17 13:27:38 +01:00
Michael Drake
e17e56b0cc Move drops over selection target top of selected run. 2013-08-17 13:22:40 +01:00
Michael Drake
59ea55ef3d Propagate selection to visible descendant nodes when a move drag is started with folder selected. 2013-08-17 12:51:08 +01:00
Michael Drake
dee0cb0380 Optimise drop indicator redraw area. 2013-08-17 11:48:16 +01:00
Michael Drake
d8bf6c2216 Remove unused structure member. 2013-08-16 23:13:25 +01:00
Michael Drake
29b6185ab1 Do indicator redraw after everything else is done, to simplify things. 2013-08-16 23:08:57 +01:00
Michael Drake
b699169d0b Group the move details, for clarity. 2013-08-16 21:40:45 +01:00
Michael Drake
304523553c Start optimising drop indicator redraw. 2013-08-16 20:34:41 +01:00
Michael Drake
a9cad3cfa8 Begin move handling. Currently only moves the drop target indicator during drags. Nothing actually gets moved. 2013-08-16 20:06:08 +01:00
Michael Drake
7169b2fb01 Make treeview test parasite convert move drag enum type. 2013-08-16 20:03:18 +01:00
Michael Drake
15c1ad7eea Add move drag type. 2013-08-16 20:02:49 +01:00
Michael Drake
7bd57563e1 Set appropriate treeview flags. 2013-08-16 20:01:58 +01:00
Michael Drake
5f4c624c5b Slight refactor of drag end handling, for future handling of more types of drag. 2013-08-16 12:23:37 +01:00
Michael Drake
2dc8b64153 Add comment. 2013-08-16 11:17:45 +01:00
Michael Drake
285fe734bc Rename "section" to "part". 2013-08-16 11:15:16 +01:00
Michael Drake
9d624ce17f Inform front end when drag starts below nodes too. 2013-08-16 08:25:26 +01:00
Michael Drake
2ba2fcc7b6 Add selection to enum. 2013-08-16 08:25:26 +01:00
Michael Drake
2a3ff41e14 Flag a TODO. 2013-08-16 08:25:26 +01:00
Michael Drake
2c695bc2fa Use abstracted folder creation. 2013-08-16 08:25:26 +01:00
Michael Drake
32ae7b5117 Add generator for default hotlist. 2013-08-16 08:25:25 +01:00
Michael Drake
e13e72357d Set built=false after destruction. 2013-08-16 08:25:25 +01:00
Michael Drake
82f5cd33a0 Implement simplisitic hotlist_add function. Need to improve where new entries are placed. (See TODO comment.) 2013-08-16 08:25:25 +01:00
Michael Drake
952ab7b6e4 Move urldb data acquisition so it doesn't need to be duplicated when there are other entry points. 2013-08-16 08:25:25 +01:00
Michael Drake
ec7e1f71c4 Tidy some comments. 2013-08-16 08:25:25 +01:00
Michael Drake
da557af967 Slight simplification. 2013-08-16 08:25:25 +01:00
Michael Drake
58315b9673 Minor tweaking. 2013-08-16 08:25:25 +01:00
Michael Drake
8b83456c02 Beginnings of new hotlist module, implemented with new treeview.
Currently it can only open, display and launch entries in an existing hotlist file.

TODO:
  - Generate defualt hotlist when file not found.
  - Add hotlist saving.
  - Allow adding to hotlist.
  - Allow hotlist editing.
  - Allow hotlist nodes to be moved by dragging.
  - Allow hotlist visit data to be updated.
2013-08-16 08:25:25 +01:00
Michael Drake
ee7df2761f Make dom node children iterator return nserror. 2013-08-16 08:25:24 +01:00
Michael Drake
473738083b Fix several comments about return type. 2013-08-16 08:25:24 +01:00
Michael Drake
298ac7c329 Use the new ssl certificate viewer in all situations. 2013-08-13 14:09:15 +01:00
Michael Drake
1e64ca5f44 Remove old sslcert module. 2013-08-13 13:52:21 +01:00
Michael Drake
bf11033987 Remove unused flags. 2013-08-13 13:43:08 +01:00
Michael Drake
eaae716989 Move old hotlist out of the way. 2013-08-13 12:41:04 +01:00
Michael Drake
da84e1a00a Add SSL cert handling to treeview test hack. 2013-08-12 10:32:54 +01:00
Michael Drake
5520b2ca92 Clear out most of old sslcert module. 2013-08-12 10:31:32 +01:00
Michael Drake
d89b5e2678 Build SSL certificate viewer module. 2013-08-12 10:30:24 +01:00
Michael Drake
4a9e4a676f First pass at new ssl certificate chain viewer module. 2013-08-11 22:11:05 +01:00
Michael Drake
b770130a8b Improve namespacing of enum values. 2013-07-26 15:20:19 +01:00
Michael Drake
2bd587add5 Make the parasitic hack of the old tree code more robust. Now if the temp_treeview_test option is set, the global history and cookie manager will be replaced with their respective new implementations. 2013-07-26 14:48:26 +01:00
Michael Drake
bb870de150 Move remaining string literals over to FatMessages. 2013-07-26 12:49:41 +01:00
Michael Drake
f2476a1e20 Yield ownership of value to field builder, since date strings were already allocated. 2013-07-26 12:23:00 +01:00
Michael Drake
b0baa839e8 Avoid snprintf and having buffer on stack. 2013-07-26 12:16:53 +01:00
Michael Drake
7bbcec90c4 Use prefabricated field text for common values. 2013-07-26 12:11:14 +01:00
Michael Drake
0d681fb38e Log old cookie manager init timings for comparison. 2013-07-25 22:51:54 +01:00
Michael Drake
44fa2a9b91 Optimise cookie tolder and entry node search by comparing lengths before strings. 2013-07-25 22:31:27 +01:00
Michael Drake
3f0e70706d Abstract field building. 2013-07-25 22:22:36 +01:00
Michael Drake
f3a3272dd3 Flag a todo. (Move some string literals to messages.) 2013-07-25 16:09:43 +01:00
Michael Drake
92ee6e953c Build new cookie manager. 2013-07-25 16:08:22 +01:00
Michael Drake
219f5dac32 Add initial version of new cookie manager. 2013-07-25 16:07:46 +01:00
Michael Drake
4697d1ccc1 Expose treeview walker. 2013-07-25 16:06:34 +01:00
Michael Drake
17abee0045 Namespace treeview node callback table. 2013-07-25 15:06:09 +01:00
Michael Drake
ba576ad5d6 Guard for uninitalised history case. 2013-07-25 11:45:07 +01:00
Michael Drake
a399e5aa70 Fix return type. 2013-07-25 11:42:04 +01:00
Michael Drake
a4b5a8aed7 Unset built bool when fini is called. 2013-07-25 11:41:16 +01:00
Michael Drake
ef05c2f6e6 Return correct error. 2013-07-25 11:07:40 +01:00
Michael Drake
c6820e8402 Replace magic numbers with enum. 2013-07-24 23:03:16 +01:00
Michael Drake
df2efd03c4 Update header guard. 2013-07-22 11:12:57 +01:00
Michael Drake
68078d7ea7 Fix up for cookies_old rename. 2013-07-22 10:21:37 +01:00
Michael Drake
01159ff589 Move cookies viewer module. 2013-07-21 23:24:07 +01:00
Michael Drake
9ac58865a7 Remove unused function declaration. 2013-07-17 11:42:42 +01:00
Michael Drake
5aed142560 Document callbacks. 2013-07-17 11:42:20 +01:00
Michael Drake
618ef54983 Update new global history, if the treeview test option is set. 2013-07-16 13:15:22 +01:00
Michael Drake
07c2add5cc Add function to add to global history. Fix add_entry to actually add new entry after removing an existing one. Implement directory deletion. 2013-07-16 13:13:33 +01:00
Michael Drake
28a04f6da7 Reset entry url's urldb visit data when user deletes entry from global history. 2013-07-15 21:51:45 +01:00
Michael Drake
ec9608c4de Make node delete callback msg differentiate between deletes caused by user interaction and other deletes (e.g. treeview destruction). 2013-07-15 14:34:56 +01:00
Michael Drake
9f72b5e046 Fix namespace of old global history add function. 2013-07-15 12:57:40 +01:00
Michael Drake
094ef9a64b Minor wrapping fix. 2013-07-12 15:31:43 +01:00
Michael Drake
716776a181 Remove forward declaration. 2013-07-12 13:50:17 +01:00
Michael Drake
55592d5a8d Move hotlist_visted from browser.h to hotlist.h 2013-07-12 12:07:54 +01:00
Michael Drake
d6d9378e9b Move global_history_add out of browser.h into global_history_core.h 2013-07-12 12:01:54 +01:00
Michael Drake
3a0bda9771 Move local history over to nsurl. 2013-07-11 23:38:32 +01:00
Michael Drake
3f45e53539 s/history_core/local_history/ 2013-07-10 11:55:42 +01:00
Michael Drake
ed557f090a Cursor down moves to next after noncontinuous selections. 2013-07-09 14:24:48 +01:00
Michael Drake
0df23dda20 Cursor right toggles expansion. 2013-07-09 13:47:06 +01:00
Michael Drake
11eed50de4 A couple of tidyups. 2013-07-09 12:46:30 +01:00
Michael Drake
541bc8e283 Initial keyboard navigation support. 2013-07-09 12:42:22 +01:00
Michael Drake
e9401de768 Move mix_colour macro out of treeview for other stuff to use. 2013-07-08 17:41:06 +01:00
Michael Drake
81a1506c5c Launch selection launches entries within contracted folders. 2013-07-08 15:22:25 +01:00
Michael Drake
e8f2297d0f Improve doc comments. 2013-07-08 13:01:00 +01:00
Michael Drake
7bd01a0e75 Return key launches current selection. 2013-07-08 12:53:19 +01:00
Michael Drake
de1f0afde2 Change how nodes are deleted. 2013-07-06 23:00:43 +01:00
Michael Drake
3e33721ab6 Make tree walker use nserror. 2013-07-03 14:18:33 +01:00
Michael Drake
5616221064 Typedefs for internal treeview and treeview_node structs. 2013-07-03 13:48:53 +01:00
Michael Drake
c256320b08 Treeview walker now takes two callback function pointers. One called in fwd direction, one called in bwd direction. 2013-07-03 13:23:26 +01:00
Michael Drake
4f238758db Don't allow empty folders. 2013-07-03 12:38:30 +01:00
Michael Drake
657d6ed587 Implement DEL_EMPTY_DIRS flag. 2013-07-03 12:37:58 +01:00
Michael Drake
520503bc7e Allow empty folders to be open. 2013-07-03 12:14:07 +01:00
Michael Drake
26befde81c Make READ_ONLY flag a combinator for NO_MOVES and NO_DELETES. Implement NO_DELETES. 2013-07-03 11:50:23 +01:00
Michael Drake
c010535fbe Add treeview behaviour flags. 2013-07-03 11:19:16 +01:00
Michael Drake
4313d4c4ec Make flags for suppress resize. 2013-07-02 17:30:52 +01:00
Michael Drake
6014a35ed3 Implement entry launching. Currently only launches in new window. 2013-07-02 12:20:44 +01:00
Michael Drake
2476af4c65 Use messages for treeview labels. 2013-07-01 20:05:09 +01:00
Michael Drake
21cd01a9b3 Add quite param to insertion calls to suppress treeview height callback. 2013-07-01 16:16:11 +01:00
Michael Drake
bc37046c6c Pass drag state to core window user. 2013-07-01 15:10:45 +01:00
Michael Drake
6e5e741d53 Add temporary option to enable test of new treeview in bookmarks window. 2013-07-01 14:07:25 +01:00
Michael Drake
b6219f6685 Delete and backspace keys delete selected nodes. 2013-07-01 13:00:46 +01:00
Michael Drake
c862cd60ad Make treeview test parasite trap keyboard action too. 2013-07-01 11:49:14 +01:00
Michael Drake
743ffa2a46 Pass keypresses on to treeview. 2013-07-01 11:48:43 +01:00
Michael Drake
df1667bd58 Start keypress handling. 2013-07-01 11:47:46 +01:00
Michael Drake
6599f415f7 Handle mouse action below last node. 2013-07-01 10:37:40 +01:00
Michael Drake
31450767c9 Update ancestor heights on node deletion. 2013-06-30 22:07:53 +01:00
Michael Drake
a1f5272f78 Update treeview test parasite to pass tree height changes on to front end. 2013-06-30 17:54:08 +01:00
Michael Drake
db83497645 Inform front end when treeview height changes. 2013-06-30 17:53:41 +01:00
Michael Drake
cca6707585 Update documentation for update_size callback. 2013-06-30 17:52:55 +01:00
Michael Drake
64eab40b18 Fix typo. 2013-06-18 20:10:08 +01:00
Michael Drake
4e0f960e3c Write up the rest of the fucntion comments. 2013-06-18 19:53:57 +01:00
Michael Drake
7cd0bacaf6 Create folders as they're required when entry is inserted. 2013-06-18 19:26:49 +01:00
Michael Drake
8c114cdfd8 Ensure global_history_delete_internal checks treeview node is NULL. Add various documentation comments. 2013-06-18 18:54:06 +01:00
Michael Drake
a642cab1b7 Point at header for exported function commentary. 2013-06-18 17:26:36 +01:00
Michael Drake
146fea758f Global history finaliser does not need core_window stuff. 2013-06-18 17:25:23 +01:00
Michael Drake
d6ee11de93 Add documentation comments. 2013-06-18 17:22:56 +01:00
Michael Drake
99e1246cab Document static functions. 2013-06-18 17:08:35 +01:00
Michael Drake
0b730caf2d More documentation. 2013-06-18 16:49:42 +01:00
Michael Drake
beceec8c8e Say which functions are documented in the header. 2013-06-18 16:08:21 +01:00
Michael Drake
ec02cf9e4c Remove unused function. 2013-06-18 16:04:14 +01:00
Michael Drake
1f3265f2a5 Add documentation. 2013-06-18 16:02:31 +01:00
Michael Drake
d064e9ac78 Add support for selection drags. Not yet implemented move drags. 2013-06-18 14:58:43 +01:00
Michael Drake
55dd035686 Add triple click to mouse event logger. 2013-06-15 15:55:05 +01:00
Michael Drake
a3c72894b9 Make test parasite pass drag end event to new treeview. 2013-06-15 15:50:41 +01:00
Michael Drake
44e4ca5f05 Merge branch 'master' of git://git.netsurf-browser.org/netsurf 2013-06-05 12:28:08 +01:00
Michael Drake
b04acde228 Set visits and last visited values. 2013-06-04 21:53:28 +01:00
Vincent Sanders
4e24869524 Add and use no proxy list option 2013-06-04 18:11:15 +01:00
Michael Drake
db62a386bf Reduce redraw area. 2013-06-04 15:43:52 +01:00
Michael Drake
d398caf146 Ensure there's a title. 2013-06-04 15:31:29 +01:00
Michael Drake
9919b77f19 Update for launch msg. 2013-06-04 15:11:24 +01:00
Michael Drake
29185f75cf Fixup and remove unused defines. 2013-06-04 15:11:05 +01:00
Michael Drake
23a0520b40 Enable double click to launch from treeview. 2013-06-04 15:03:07 +01:00
Michael Drake
8692bb6876 Add support for clicking node expansion toggle. 2013-06-04 14:33:02 +01:00
Michael Drake
add9e72837 Allow ctrl + select to toggle selection. 2013-06-04 13:26:02 +01:00
Michael Drake
abf5512aff Make releationship enum meanings clearer. 2013-06-04 12:24:14 +01:00
Michael Drake
cdf9c9ba72 Sort so newest at top. 2013-06-04 12:12:20 +01:00
Michael Drake
a86dd68165 Lose excess logging. 2013-06-04 12:01:45 +01:00
Michael Drake
d9a66a7ce8 Different text colour for an expanded entries' fields. 2013-06-04 11:15:44 +01:00
Michael Drake
c011f45860 Store inset on node. 2013-06-04 10:37:16 +01:00
Michael Drake
f947259ef2 Get line height from font size. 2013-06-03 21:56:18 +01:00
Michael Drake
abe003cc8d Remove selected area styles. 2013-06-03 20:24:34 +01:00
Michael Drake
8b940b5f11 Don't pass INT_MAX to redraw_request. RO WIMP doesn't like it.
TODO: Make treeview aware of the window size.
2013-06-03 20:21:00 +01:00
Michael Drake
aeb09c7329 Remove logging. 2013-06-03 20:10:19 +01:00
Michael Drake
c7b57ff681 Include full expanded entry height in clip test. 2013-06-03 20:06:36 +01:00
Michael Drake
99d85697d2 Use plot coordinate correctly and use the shifted offset clip rect. 2013-06-03 20:00:23 +01:00
Michael Drake
ab39827bd8 Fix use of wrong enum value. 2013-06-03 19:51:46 +01:00
Michael Drake
8fda149bae Make heights signed, to simplify comparison with struct rect values, which are signed. 2013-06-03 19:49:36 +01:00
Michael Drake
088d60ec96 Simplify redraw node walk. 2013-06-03 18:54:19 +01:00
Michael Drake
fd453beb97 Squash warnings for things that can't happen. 2013-06-03 18:42:02 +01:00
Michael Drake
1726304d72 Simplify tree walker. 2013-06-03 18:41:08 +01:00
Michael Drake
dafe9a6208 Fix string length. 2013-06-03 18:40:49 +01:00
Michael Drake
8f3b8c8cfa Clean up history node deletion -- now treeview driven. Add select all, selection clear, has selection functions. Improve selection handling. Enable double click to toggle node expansion. Improve redraw behaviour. Make treeview call node callback for deletion. Fix redraw issues. 2013-06-03 17:06:47 +01:00
Michael Drake
b959e6946d Squash warning. 2013-05-31 21:02:56 +01:00
Michael Drake
d3b8a493af cw handle can't be const. 2013-05-31 21:02:29 +01:00
Michael Drake
e684218169 Merge branch 'master' of git://git.netsurf-browser.org/netsurf 2013-05-31 20:58:39 +01:00
Chris Young
864762cbe6 Merge branch 'chris/gadtools-53-5' 2013-05-31 19:59:58 +01:00
Michael Drake
910b31f63e Rename treeview_walk --> treeview_walk_internal. 2013-05-31 18:16:22 +01:00
Michael Drake
03eb4ec30f Implement redraw request hander for treeview test parsite. 2013-05-31 17:57:28 +01:00
Michael Drake
ab403b2517 Call redraw function on clicks. Enable treewalker to skip the children of collapsed nodes. 2013-05-31 17:56:22 +01:00
Michael Drake
a669a7d12c Make treeview test parasite sit on mouse input too. 2013-05-31 13:26:14 +01:00
Michael Drake
cf57827187 Add function to pass mouse input to treeview. 2013-05-31 13:25:49 +01:00
Michael Drake
ab9efd19fe Make node flags for expanded and selected. Start mouse action support. (Little more than a stub.) 2013-05-31 13:24:27 +01:00
Michael Drake
d939460872 Add parasitic hack to allow the new treeview to be tested in the Hotlist window.
(Tested with GTK front end only, so far.)
2013-05-31 10:11:22 +01:00
Michael Drake
9031221267 Build the new treeview and global history. 2013-05-31 10:11:01 +01:00
Michael Drake
f656d8ca04 Add global history client for new treeview.
Loads from urldb.  Much faster load than old treeview based history.

TODO: Keep it up-to-date as you browse.
2013-05-31 10:08:59 +01:00
Michael Drake
55aa7af80f Add first pass at new treeview.
Only supports creation, destruction, and redraw atm.
TODO: input handling (mouse, keyboard), editing, using the node callbacks.

Also includes new core_window.h.
2013-05-31 10:05:15 +01:00
Michael Drake
817e85f882 Ensure readable default colours. 2013-05-29 13:33:43 +01:00
Michael Drake
ec3491280a Move NetSurf to CSS colour conversion macro. Make both conversion macros the same. 2013-05-29 12:10:40 +01:00
Vincent Sanders
92d6c14c8d remove ambiguity in subtraction and masking 2013-05-29 11:40:28 +01:00
Vincent Sanders
44badddbdf fix transparancy on css colour lookup 2013-05-29 11:33:17 +01:00
Vincent Sanders
1502b08925 move option init out of netsurf_init 2013-05-28 14:16:11 +01:00
Vincent Sanders
ea0f541309 add common system colour implementation 2013-05-28 14:16:11 +01:00
Vincent Sanders
4ae69da5ea build new options code and remove old 2013-05-28 14:16:11 +01:00
Vincent Sanders
ee6e6eec05 move options include 2013-05-28 14:16:10 +01:00
Vincent Sanders
a5355ec557 change all core and frontend options headers to new format 2013-05-28 14:16:10 +01:00
Michael Drake
ba9769bc8c Pass fetch redirect info up to content layer as content_msg. Mark redirect origin URLs as visited in browser window content callback. Note this doesn't mean we track redirects, it just lets us get the :visited link style on links that redirect. 2013-05-27 14:51:00 +01:00
Vincent Sanders
35dacc3671 move the logging initialisation out to be call by frontends
This allows each frontend to pass a distinct callback to configure the
output file stream appropriately for their use.
2013-05-23 11:50:57 +01:00
Vincent Sanders
12ff7a47f4 removed unsuded memdebug utilities 2013-05-23 09:29:00 +01:00
Vincent Sanders
af75070bee add script_timeout option and use it 2013-05-22 19:12:26 +01:00
Vincent Sanders
ce0fe06349 create javascript heartbeat and hook a script timeout to it 2013-05-22 19:12:26 +01:00
Chris Young
36b40e219a Get URL node icon 2013-05-18 16:38:03 +01:00
Chris Young
034ba7c2f2 Allow getting the node's icon 2013-05-18 16:35:48 +01:00
Daniel Silverstone
dd5ec71a1f Add logging to hotlist_cleanup() so we can narrow the field a little 2013-05-15 18:32:29 +01:00
Chris Young
6d7adac89e Update the edit menu after every click, to be safe. 2013-05-12 20:36:47 +01:00
Chris Young
0b028e41c6 more fix of edit menu updates 2013-05-12 20:36:46 +01:00
Michael Drake
9644d0594c Remove struct selection from gui_drag_save_selection, so gui.h doesn't need it now. 2013-05-10 11:54:26 +01:00
Michael Drake
8b6665fe03 Merge branch 'master' of git://git.netsurf-browser.org/netsurf into tlsa/selection-search-refactor 2013-05-07 14:56:42 +01:00
Michael Drake
3afd9c9731 Remove search context from browser window, simplify search interface for front ends.
Added content interface for search.

Removed bw->cur_search search context. Desktop layer now does nothing
except pass search requests from front end onto the bw's current_content
via the content interface.

Search API reduced to a pair of functions at each level:
  {desktop|content|html|textplain}_search
and
  {desktop|content|html|textplain}_search_clear

Updated front ends to use simplified search API.  Only tested GTK and RO builds.

These confine the search stuff to render/.  However search still uses struct
selection.  The handling for which is still spread over desktop/ and render/.
Also the render/search code itself still fiddles inside html and textplain
privates.
2013-05-07 14:41:40 +01:00
Vincent Sanders
30b1fc1dbd add assert to ensure API contract is met 2013-05-04 17:01:00 +01:00
Vincent Sanders
52c5cccdeb cleanup tree_create_leaf_node text ownership 2013-05-04 09:49:11 +01:00
Vincent Sanders
5c57a30047 cleanup title string ownership madness in the tree_create_folder_node() API 2013-05-03 21:17:11 +01:00
Michael Drake
50d7a2288c Remove redundant read-only test function. 2013-05-02 09:34:01 +01:00
Michael Drake
e92dd5bf6a Remove dead stuff from the selection_ api surface. 2013-05-02 09:34:01 +01:00
Vincent Sanders
2f03a0bfaf fix use after free on error path 2013-05-01 22:32:28 +01:00
Michael Drake
2cb4a11d1d Remove unused #includes. 2013-04-29 14:55:20 +01:00
Michael Drake
6784e90a3a Remove unused selection_get_{start|end} APIs and their helper function. 2013-04-29 14:47:06 +01:00
Michael Drake
a4a3bcd979 Update comments. 2013-04-29 14:00:36 +01:00
Michael Drake
a467363d5e Remove block of code that have been commented out for years. 2013-04-29 13:41:27 +01:00
Daniel Silverstone
5e774272cd Bump version.c to 3.1 2013-04-20 14:58:17 +01:00
Michael Drake
c8d76e68ca Hide caret after reflow (textarea may have moved), but let textarea keep focus. 2013-03-27 13:57:10 +00:00
Michael Drake
3529d39759 Don't show caret when scrolling a textarea that hasn't been given focus. 2013-03-27 13:46:57 +00:00
Michael Drake
e2bcc5f5eb Tidy up pointer beyond scrollbars. 2013-03-27 11:43:10 +00:00
Michael Drake
9a73da6347 Reduce multi-line textarea a bit more. When redrawing only one line, don't redraw unchanged text at the start of the line. 2013-03-26 14:07:08 +00:00
Michael Drake
0bb9543293 Further reduce redraw region for multi-line textareas when editing. 2013-03-26 12:54:19 +00:00
Michael Drake
53962009da Trivial redraw optimisation for multiline textareas. Only redraw the line that was changed and below. 2013-03-25 12:37:18 +00:00
Michael Drake
cc4411c0c7 Remove some spaces. 2013-03-25 12:03:53 +00:00
Michael Drake
70fbca3606 Reduce redraw area for selection set/change/clear. 2013-03-22 18:14:42 +00:00
Michael Drake
b603cafbaa Move line start calc into reflow handler. 2013-03-22 18:14:42 +00:00
Michael Drake
ad53da023d Optimise redraw of single line textarea. When single line textarea is unscrolled, only the changed area is redrawn after edits. 2013-03-21 18:47:38 +00:00
Michael Drake
948f2dbed6 Split reflow into two functions for single or multi line textareas. 2013-03-21 14:15:36 +00:00
Michael Drake
8e360ff040 Robust detection of scroll changes. 2013-03-20 19:52:10 +00:00
Michael Drake
c568a9626b Avoid double redraw when edit causes scroll. 2013-03-20 19:24:53 +00:00
Michael Drake
50efd110b8 Use cached line length to avoid some nsfont_width calls for selection rendering in redraw. 2013-03-20 18:09:52 +00:00
Michael Drake
3403891f63 Avoid redraw of scrollbars when they've not changed. 2013-03-20 17:53:38 +00:00
Michael Drake
71392160d0 Cache line widths. Fixes scrollbar issue introduced with partial reflow enablement. Will also be used for future redraw optimisations. 2013-03-20 17:32:18 +00:00
Michael Drake
8cfa964cdf Start reflow on line before change in text, rather than always reflowing the entire textarea. 2013-03-20 12:41:06 +00:00
Michael Drake
0bcbdba424 Comment fixes. 2013-03-19 17:29:55 +00:00
Michael Drake
b1082c09e7 Fix warnings. 2013-03-19 16:28:05 +00:00
Michael Drake
2ad0d23915 Start reducing unnecessary redraws: when only start OR end of selection has changed, only redraw the lines affected. (Reduces redraw of vertical regions only. Still redraw full width for changed lines.) 2013-03-19 16:22:24 +00:00
Michael Drake
8d0c1f9207 Loads of changes including fixes, new functionality, and optimisation.
+ Refactor internals to be byte, rather than character based.
    + Don't need to hammer utf8_* functions everywhere
    + Optimises:
        + Redraw (lots)
        + Editing (insertion, replacement, removal)
        + Caret placement
        + Selection
+ Early avoid of zero length autoscroll during selection drag.
+ Optimised redraw to avoid nsfont_width when:
    + There's no selection at all.
    + We're on last part of line, and it's unselected.
+ Implemented WORD_LEFT and WORD_RIGHT keys (shift + cursor left/right)
+ Fixed UP and DOWN (cursor up/down) keys to handle non-monospace fonts.
  (Now based on 'x' offset on line, rather than character offset on line.)
+ Fixed PAGE_UP and PAGE_DOWN to scroll without moving the caret.
+ Fixed redraw bug in text selection edge case.
+ Changed textarea_replace_text and textarea_insert_text to return
  a byte delta for caret position changes.
+ Coordinate to text offset function handles global and viewport coords.
+ Many small improvements and tidying.
2013-03-17 22:06:48 +00:00
Michael Drake
2af4b5be01 Make textarea_get_caret private. 2013-03-13 11:23:07 +00:00
Vincent Sanders
95e726c7cc split sources lists out to their subdirectories as first step towards using core buildsystem 2013-03-11 17:53:52 +00:00
Michael Drake
41e4928e25 Fix pointer shape and status bar messages for textareas and their scrollbars. 2013-03-11 12:57:33 +00:00
Michael Drake
490de208d0 Make autoscroll start at inside edge of border or scrollbar. 2013-03-06 21:31:20 +00:00
Michael Drake
e3cb0ba450 Pull scrollbar mouse handling out into helper function. 2013-03-06 15:41:51 +00:00
Michael Drake
5b7643634f Textarea sends caret hide msg if caret completely outside visible area. 2013-03-06 14:28:34 +00:00
Michael Drake
951a584705 Don't show caret if there's a selection. 2013-03-06 13:10:37 +00:00
Michael Drake
037beb44fb Pass caret clip rect out to front ends. (Nothing actually using them yet.) 2013-03-05 22:54:51 +00:00
Michael Drake
e8950dee22 Propagate native caret clip rect through core. 2013-03-05 22:54:51 +00:00
Michael Drake
541523f962 Less ambiguous flag documentation comment. 2013-03-04 15:12:58 +00:00
Michael Drake
69d653f4dc Fix history. 2013-03-04 15:07:58 +00:00
Michael Drake
02f2cbec3f Pedantic wrap. 2013-03-04 15:07:43 +00:00
John-Mark Bell
cd3e073354 Fix logging 2013-02-27 03:11:30 +00:00
John-Mark Bell
97978e858b Use custom fetcher for inline CSS 2013-02-27 03:11:10 +00:00
John-Mark Bell
405fa12f8d Fix handling of inline stylesheets with @import 2013-02-26 09:14:32 +00:00
Michael Drake
bba74b7a0b Handle readonly attribute for text inputs and textareas. 2013-02-23 17:44:20 +00:00
Michael Drake
ffe3ce2615 Don't need initial caret pos now. 2013-02-22 22:26:03 +00:00
Michael Drake
c034fb87ad No point in setting caret there. 2013-02-22 22:16:26 +00:00
John-Mark Bell
9303fc56dc Remove redundant code. 2013-02-22 20:51:56 +00:00
Michael Drake
48bd5e1f10 Always set caret. 2013-02-22 16:41:35 +00:00
Michael Drake
04ca082416 Shove allocation step size into #define. 2013-02-22 16:16:10 +00:00
Michael Drake
00eb142661 Increase allocation increment step size. 2013-02-22 16:12:48 +00:00
Michael Drake
d48f3e3f49 Textarea tweaks for caret placement after selection removal. 2013-02-22 16:04:31 +00:00
Michael Drake
59fdbae1bc Fix setting of empty selections. 2013-02-22 15:23:36 +00:00
Michael Drake
c2a718075a A load of refactoring of how content selection and input work.
Keypresses now go via content interface.
Contents don't shove the selection object into browser windows any more.
Contents report selection existence by sending message.
HTML content keeps track of where selections in it exist.
Contents report whether they have input focus via caret setting msg.
Caret can be hidden (can still input/paste) or removed.
Consolidate textarea selection handling.
Make textarea report its selection status changes to client.
Various textarea fixes.
Changed how we decide when to clear selections, and give focus.
2013-02-22 12:19:35 +00:00
John-Mark Bell
2b0cc398bb Fix handling of treeview launch actions. 2013-02-19 10:17:17 +00:00
Vincent Sanders
529ca251fc rename flags for browser_window routines to be shorter 2013-02-18 11:51:42 +00:00
Vincent Sanders
b112dec78d change browser_window_create and refactor all callsites 2013-02-18 11:23:48 +00:00
Vincent Sanders
3bfb5b96a7 browser_window_navigate refactor 2013-02-18 11:23:27 +00:00
Michael Drake
553c55b07a Move selection clearing into a function, and expose it in the header file. 2013-02-13 13:37:46 +00:00
Michael Drake
08a229161b Calculate and store text offsets only when they change, rather than recalculating on every redraw and caret placement. Also ensures that caret placement and redraw get the same text offset values. 2013-02-13 13:08:05 +00:00
Michael Drake
13574018d1 Fun micro-optimisations. 2013-02-12 21:16:30 +00:00
Michael Drake
2c64e89641 Implement selection modification. Clicks and drags with button 2 alter the nearest end of the selection. Button 2 when there is no selection selects from caret pos to click pos. 2013-02-12 18:20:06 +00:00
Michael Drake
eccf590616 Triple click selects paragraph in textarea widget. 2013-02-12 12:58:12 +00:00
Michael Drake
97f0a22a8b Tidy textarea-handled mouse action. 2013-02-12 12:09:49 +00:00
Michael Drake
19f09dcc61 Init clipboard to NULL, just in case front end implementation of gui_get_clipboard fails to set it on empty clipboard. 2013-02-12 11:15:37 +00:00
Michael Drake
c39a3d7263 When reqesting redraaw to remove internal caret, make sure caret is already removed as the redraw may be serviced immediatley. 2013-02-12 10:13:55 +00:00
Michael Drake
515cef8444 Don't include '\0' in single-line nsfont_width call. 2013-02-11 18:42:51 +00:00
Michael Drake
fe7b71edbf Selection autoscroll of scrollbarless textareas (single line). 2013-02-11 17:55:36 +00:00
Michael Drake
99cab8389a Early detection of regions outside the visible. 2013-02-11 17:05:42 +00:00
Michael Drake
fc430dba75 Clip native caret render so it can't overwrite border. Slight simplification. 2013-02-11 16:47:11 +00:00
Michael Drake
e6bf51c3ba Single line textareas don't have scrollbars, so they don't get the scroll redraw request from the scrollbar callback. 2013-02-11 16:31:06 +00:00
Michael Drake
3bcc79ccf0 Don't need to redraw for caret removal if using a native caret. 2013-02-11 16:10:19 +00:00
Michael Drake
fa2d5cf62c Fix internal caret redraw bounds. 2013-02-11 14:30:26 +00:00
Michael Drake
18444f261a Fix delete-to-line-end. 2013-02-11 13:39:56 +00:00
Michael Drake
7af0614202 Make delete line key enum value name less missleading. (Doesn't cut to clipboard.) 2013-02-11 10:34:06 +00:00
Michael Drake
99fc8d3f0d Move html textarea's selection colour chooser to plot_style.h, as it could be used elsewhere. 2013-02-11 00:41:22 +00:00
Michael Drake
b38520da99 Implement delete line. (Ctrl+U on RISC OS.) 2013-02-10 23:22:46 +00:00
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