summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2020-02-24 08:44:52 +0000
committerMichael Drake <michael.drake@codethink.co.uk>2020-02-24 08:44:52 +0000
commit34e61df8ebe237d6862e1c63772a1aae40d81320 (patch)
tree33dc90d2422a8799b8f4ee12a9c6ed8ad6570eb4 /desktop
parenta59646cbf84d1bb463c4b9526dacdf40075851c2 (diff)
downloadnetsurf-34e61df8ebe237d6862e1c63772a1aae40d81320.tar.gz
netsurf-34e61df8ebe237d6862e1c63772a1aae40d81320.tar.bz2
Treeview: Add API for setting the search string.
Diffstat (limited to 'desktop')
-rw-r--r--desktop/treeview.c23
-rw-r--r--desktop/treeview.h11
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