Commit Graph

218 Commits

Author SHA1 Message Date
Michael Drake
df4975b8d4 Remove unnecessary check. 2013-10-23 11:36:42 +01:00
Michael Drake
e5823beb61 Fix deref before NULL check. 2013-10-23 11:25:40 +01:00
Michael Drake
441e0dcbed Assert target node is non-NULL. 2013-10-22 15:22:42 +01:00
Michael Drake
4cc0d9c233 LOG init/fini messages. 2013-10-11 22:41:09 +01:00
Michael Drake
cd9971293d Set unused channel to 0xff, so that rendering isn't broken in front ends that don't heed the OPACITY flag. 2013-10-05 11:44:15 +01:00
Michael Drake
1e4c733fc0 Appease gtk front end's broken bitmap behaviour. 2013-10-03 11:45:55 +01:00
Michael Drake
a2b4c63fcc Init unused alpha channel to 0, even though we set the bitmaps as opaque. 2013-10-03 11:39:28 +01:00
Michael Drake
69e3963dae Avoid NULL deref when deleting a node, causing empty ancestor nodes to be deleted. 2013-10-03 00:13:18 +01:00
Michael Drake
2a4fb9ecd1 Generate anti-aliased triangles in bitmaps and plot via bitmap plotter. (Without anti-aliasing was too ugly to be endured.) 2013-10-02 23:34:34 +01:00
Michael Drake
f19e827983 Use polygon plotter for treeview furniture (node expansion/contraction triangles), instead of triangle text glyphs. 2013-10-02 13:34:51 +01:00
Michael Drake
b96222d857 We return client data, not node. 2013-09-14 23:22:13 +01:00
Michael Drake
951ad51cd4 Add functions to get first selected hotlist/global_history node data. 2013-09-13 14:24:25 +01:00
Michael Drake
3d123d72fc Enable front end to select treeview text size. 2013-09-09 13:11:36 +01:00
Michael Drake
b10252e325 Protect against attempt to initialise twice. 2013-09-09 13:00:24 +01:00
Michael Drake
172551870b Squash warning from older GCC. 2013-09-08 19:34:43 +01:00
Michael Drake
33c383357d Express logic to avoid confusing static analyser. 2013-09-05 11:39:44 +01:00
Michael Drake
8007027f84 Express logic so that the static analyser can understand and not report NULL deref. 2013-09-05 11:34:38 +01:00
Michael Drake
e94528518d Remove a couple of dead stores. 2013-09-05 11:27:33 +01:00
Michael Drake
decb4d40f3 Ensure correct field is edited when more than one hidden field is editable. 2013-09-05 11:26:05 +01:00
Michael Drake
b9e3f7ae3d Ensure tree height is provided when treeview building is complete. 2013-09-03 14:38:01 +01:00
Michael Drake
42afcf918f Make externally induced node expand/contract cause redraw. 2013-09-03 14:08:44 +01:00
Michael Drake
1569e9e2a8 Change recursife node collapse behaviour slightly. 2013-09-03 13:32:46 +01:00
Michael Drake
11b784a167 Node collapsing needs to happen when leaving nodes. 2013-09-03 12:36:29 +01:00
Michael Drake
b56d684a31 Add a pair of recursive expand/contract functions. 2013-09-03 11:06:07 +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
7a25b6aaee Fix one px missmatch between click and drag handling of node selection. 2013-08-28 15:59:00 +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
43d1e777df Function to get releations for node entry. 2013-08-27 20:56:20 +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
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
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
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
eaae716989 Move old hotlist out of the way. 2013-08-13 12:41:04 +01:00
Michael Drake
4697d1ccc1 Expose treeview walker. 2013-07-25 16:06:34 +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
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
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
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
b6219f6685 Delete and backspace keys delete selected nodes. 2013-07-01 13:00:46 +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
db83497645 Inform front end when treeview height changes. 2013-06-30 17:53:41 +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
d064e9ac78 Add support for selection drags. Not yet implemented move drags. 2013-06-18 14:58:43 +01:00
Michael Drake
db62a386bf Reduce redraw area. 2013-06-04 15:43:52 +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
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
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
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
d3b8a493af cw handle can't be const. 2013-05-31 21:02:29 +01:00
Michael Drake
910b31f63e Rename treeview_walk --> treeview_walk_internal. 2013-05-31 18:16:22 +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
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
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