diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2013-08-28 12:58:41 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2013-08-28 12:58:41 +0100 |
commit | 826b392b576d9e2bb0b3d5ea3e4537428e21e55d (patch) | |
tree | 6331df06140c998bcc1cb1bc29e954140317f2ef | |
parent | fbfe5ab17ba41187bcbba5e759dd8e2e98a1b3e7 (diff) | |
download | netsurf-826b392b576d9e2bb0b3d5ea3e4537428e21e55d.tar.gz netsurf-826b392b576d9e2bb0b3d5ea3e4537428e21e55d.tar.bz2 |
Simple treeview_edit_selection implementation.
-rw-r--r-- | desktop/treeview.c | 36 | ||||
-rw-r--r-- | desktop/treeview.h | 7 |
2 files changed, 43 insertions, 0 deletions
diff --git a/desktop/treeview.c b/desktop/treeview.c index a0fbe9203..227b86025 100644 --- a/desktop/treeview.c +++ b/desktop/treeview.c @@ -2687,6 +2687,42 @@ static bool treeview_edit_node_at_point(treeview *tree, treeview_node *n, } +/* Exported interface, documented in treeview.h */ +void treeview_edit_selection(treeview *tree) +{ + struct rect rect; + treeview_node *n; + bool redraw; + int y; + + assert(tree != NULL); + assert(tree->root != NULL); + + /* Get first selected node */ + n = treeview_get_first_selected(tree); + + if (n == NULL) + return; + + /* Get node's y-position */ + y = treeview_node_y(tree, n); + + /* Edit node at y */ + redraw = treeview_edit_node_at_point(tree, n, y, + 0, y + tree_g.line_height / 2, &rect); + + if (redraw == false) + return; + + /* Redraw */ + rect.x0 = 0; + rect.y0 = y; + rect.x1 = REDRAW_MAX; + rect.y1 = y + tree_g.line_height; + tree->cw_t->redraw_request(tree->cw_h, rect); +} + + struct treeview_mouse_action { treeview *tree; browser_mouse_state mouse; diff --git a/desktop/treeview.h b/desktop/treeview.h index ee2e82b42..872a8c23b 100644 --- a/desktop/treeview.h +++ b/desktop/treeview.h @@ -372,6 +372,13 @@ bool treeview_clear_selection(treeview *tree, struct rect *rect); bool treeview_select_all(treeview *tree, struct rect *rect); /** + * Edit the first selected node + * + * \param tree Treeview object to edit selected node in + */ +void treeview_edit_selection(treeview *tree); + +/** * Find current height of a treeview * * \param tree Treeview object to find height of |