diff options
author | Michael Drake <michael.drake@codethink.co.uk> | 2020-02-24 08:44:52 +0000 |
---|---|---|
committer | Michael Drake <michael.drake@codethink.co.uk> | 2020-02-24 08:44:52 +0000 |
commit | 34e61df8ebe237d6862e1c63772a1aae40d81320 (patch) | |
tree | 33dc90d2422a8799b8f4ee12a9c6ed8ad6570eb4 /desktop | |
parent | a59646cbf84d1bb463c4b9526dacdf40075851c2 (diff) | |
download | netsurf-34e61df8ebe237d6862e1c63772a1aae40d81320.tar.gz netsurf-34e61df8ebe237d6862e1c63772a1aae40d81320.tar.bz2 |
Treeview: Add API for setting the search string.
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/treeview.c | 23 | ||||
-rw-r--r-- | desktop/treeview.h | 11 |
2 files changed, 34 insertions, 0 deletions
diff --git a/desktop/treeview.c b/desktop/treeview.c index 3e23fbe55..3dcc2c304 100644 --- a/desktop/treeview.c +++ b/desktop/treeview.c @@ -4839,6 +4839,29 @@ int treeview_get_height(treeview *tree) return height + search_height; } +/* Exported interface, documented in treeview.h */ +nserror treeview_set_search_string( + treeview *tree, + const char *string) +{ + if (!(tree->flags & TREEVIEW_SEARCHABLE)) { + return NSERROR_BAD_PARAMETER; + } + + if (string == NULL || strlen(string) == 0) { + tree->search.active = false; + tree->search.search = false; + return treeview__search(tree, "", 0); + } + + tree->search.active = true; + tree->search.search = true; + if (!textarea_set_text(tree->search.textarea, string)) { + return NSERROR_UNKNOWN; + } + + return NSERROR_OK; +} /** * Initialise the plot styles from CSS system colour values. diff --git a/desktop/treeview.h b/desktop/treeview.h index a8cf29ac5..df9b4fb26 100644 --- a/desktop/treeview.h +++ b/desktop/treeview.h @@ -495,4 +495,15 @@ void treeview_edit_selection(treeview *tree); */ int treeview_get_height(treeview *tree); + +/** + * Set the search string for a treeview with \ref TREEVIEW_SEARCHABLE + * + * \param tree Tree to set the search string for. + * \return NSERROR_OK on success, appropriate error otherwise + */ +nserror treeview_set_search_string( + treeview *tree, + const char *string); + #endif |