From 3f5e21a83f525586d1ee5b1bcd04cc2e50350403 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Sat, 25 Oct 2014 01:38:30 +0300 Subject: Cleanup wayland renderer and plugin support. --- lib/bemenu.h | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'lib/bemenu.h') diff --git a/lib/bemenu.h b/lib/bemenu.h index a58dcb3..20574f6 100644 --- a/lib/bemenu.h +++ b/lib/bemenu.h @@ -1,3 +1,6 @@ +#ifndef _BEMENU_H_ +#define _BEMENU_H_ + /** * @file bemenu.h * @@ -79,6 +82,27 @@ const char* bm_version(void); * @addtogroup Renderer * @{ */ +/** + * Prioritories for renderer plugins. + */ +enum bm_prioritory { + /** + * Do not use this in renderers. + * This flag is for bm_menu_new, if any renderer is fine. + */ + BM_PRIO_ANY, + + /** + * Renderer runs in terminal. + */ + BM_PRIO_TERMINAL, + + /** + * Renderer runs in GUI. + */ + BM_PRIO_GUI, +}; + /** * Get name of the renderer. * @@ -87,6 +111,14 @@ const char* bm_version(void); */ const char* bm_renderer_get_name(const struct bm_renderer *renderer); +/** + * Get prioritory of the renderer. + * + * @param renderer bm_renderer instance. + * @return bm_prioritory enum value. + */ +enum bm_prioritory bm_renderer_get_prioritory(const struct bm_renderer *renderer); + /** * @} Renderer */ @@ -158,9 +190,10 @@ enum bm_key { * Create new bm_menu instance. * * @param renderer Name of renderer to be used for this instance, pass **NULL** for auto-detection. + * @param prioritory @link ::bm_prioritory @endlink enum for which kind of renderer is wanted. Pass BM_PRIO_ANY, for anything. * @return bm_menu for new menu instance, **NULL** if creation failed. */ -struct bm_menu* bm_menu_new(const char *renderer); +struct bm_menu* bm_menu_new(const char *renderer, enum bm_prioritory prioritory); /** * Release bm_menu instance. @@ -512,4 +545,6 @@ const char* bm_item_get_text(const struct bm_item *item); /** @} Item */ +#endif /* _BEMENU_H_ */ + /* vim: set ts=8 sw=4 tw=0 :*/ -- cgit v1.2.3-70-g09d2