From 34e61df8ebe237d6862e1c63772a1aae40d81320 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 24 Feb 2020 08:44:52 +0000 Subject: Treeview: Add API for setting the search string. --- desktop/treeview.c | 23 +++++++++++++++++++++++ desktop/treeview.h | 11 +++++++++++ 2 files changed, 34 insertions(+) (limited to 'desktop') 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 -- cgit v1.2.3