summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2014-04-10 23:05:37 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2014-04-10 23:05:37 +0300
commit8e0dd1ab39d3d041b4093e2c43fdf6715da1add3 (patch)
treef15fb315ba34b779522b0e78bb1703e953d3c654 /lib
parent71beb7583f6cba2eb8070d5a05dcdf05b54f52bf (diff)
downloadbemenu-8e0dd1ab39d3d041b4093e2c43fdf6715da1add3.tar.gz
bemenu-8e0dd1ab39d3d041b4093e2c43fdf6715da1add3.tar.bz2
bemenu-8e0dd1ab39d3d041b4093e2c43fdf6715da1add3.zip
Make it possible to set filter text manually.
Diffstat (limited to 'lib')
-rw-r--r--lib/bemenu.h16
-rw-r--r--lib/menu.c30
2 files changed, 46 insertions, 0 deletions
diff --git a/lib/bemenu.h b/lib/bemenu.h
index 6348693..d348ffa 100644
--- a/lib/bemenu.h
+++ b/lib/bemenu.h
@@ -401,6 +401,22 @@ void bmItemSetUserdata(bmItem *item, void *userdata);
void* bmItemGetUserdata(bmItem *item);
/**
+ * Set filter text to bmMenu instance.
+ *
+ * @param menu bmMenu instance where to set filter.
+ * @param filter Null terminated C "string" to act as filter.
+ */
+void bmMenuSetFilter(bmMenu *menu, const char *filter);
+
+/**
+ * Get filter text from bmMenu instance.
+ *
+ * @param menu bmMenu instance where to get filter.
+ * @return Const pointer to current filter text, may be **NULL** if empty.
+ */
+const char* bmMenuGetFilter(bmMenu *menu);
+
+/**
* Set text to bmItem instance.
*
* @param item bmItem instance where to set text.
diff --git a/lib/menu.c b/lib/menu.c
index c5c98ad..cb0d3ee 100644
--- a/lib/menu.c
+++ b/lib/menu.c
@@ -117,6 +117,36 @@ void* bmMenuGetUserdata(bmMenu *menu)
}
/**
+ * Set filter text to bmMenu instance.
+ *
+ * @param menu bmMenu instance where to set filter.
+ * @param filter Null terminated C "string" to act as filter.
+ */
+void bmMenuSetFilter(bmMenu *menu, const char *filter)
+{
+ assert(menu);
+
+ if (!filter) {
+ memset(menu->filter, 0, sizeof(menu->filter));
+ return;
+ }
+
+ strncpy(menu->filter, filter, sizeof(menu->filter));
+}
+
+/**
+ * Get filter text from bmMenu instance.
+ *
+ * @param menu bmMenu instance where to get filter.
+ * @return Const pointer to current filter text, may be **NULL** if empty.
+ */
+const char* bmMenuGetFilter(bmMenu *menu)
+{
+ assert(menu);
+ return menu->filter;
+}
+
+/**
* Set active filter mode to bmMenu instance.
*
* @param menu bmMenu instance where to set filter mode.