diff options
| author | Ox Cart | 2017-09-11 16:14:45 -0500 | 
|---|---|---|
| committer | Ox Cart | 2017-09-11 16:14:45 -0500 | 
| commit | 52599be7ec432dbbe03cb2cc94b4831e2395873c (patch) | |
| tree | e46cccf1d99525955d182353d8b42e45152c9d12 /systray_linux.c | |
| parent | 620c9318eacea0df2ca983636d12a1969f983d23 (diff) | |
| download | systray-52599be7ec432dbbe03cb2cc94b4831e2395873c.tar.bz2 | |
Added show/hide for linux
Diffstat (limited to 'systray_linux.c')
| -rw-r--r-- | systray_linux.c | 38 | 
1 files changed, 38 insertions, 0 deletions
| diff --git a/systray_linux.c b/systray_linux.c index 5f57d74..fd0f1c2 100644 --- a/systray_linux.c +++ b/systray_linux.c @@ -110,6 +110,32 @@ gboolean do_add_or_update_menu_item(gpointer data) {  }  // runs in main thread, should always return FALSE to prevent gtk to execute it again +gboolean do_hide_menu_item(gpointer data) { +	MenuItemInfo *mii = (MenuItemInfo*)data; +	GList* it; +	for(it = global_menu_items; it != NULL; it = it->next) { +		MenuItemNode* item = (MenuItemNode*)(it->data); +		if(item->menu_id == mii->menu_id){ +			gtk_widget_hide(GTK_MENU_ITEM(item->menu_item)); +			return; +		} +	} +} + +// runs in main thread, should always return FALSE to prevent gtk to execute it again +gboolean do_show_menu_item(gpointer data) { +	MenuItemInfo *mii = (MenuItemInfo*)data; +	GList* it; +	for(it = global_menu_items; it != NULL; it = it->next) { +		MenuItemNode* item = (MenuItemNode*)(it->data); +		if(item->menu_id == mii->menu_id){ +			gtk_widget_show(GTK_MENU_ITEM(item->menu_item)); +			return; +		} +	} +} + +// runs in main thread, should always return FALSE to prevent gtk to execute it again  gboolean do_quit(gpointer data) {  	int i;  	for (i = 0; i < INT_MAX; ++i) { @@ -151,6 +177,18 @@ void add_or_update_menu_item(int menu_id, char* title, char* tooltip, short disa  	g_idle_add(do_add_or_update_menu_item, mii);  } +void hide_menu_item(int menu_id) { +	MenuItemInfo *mii = malloc(sizeof(MenuItemInfo)); +	mii->menu_id = menu_id; +	g_idle_add(do_hide_menu_item, mii); +} + +void show_menu_item(int menu_id) { +	MenuItemInfo *mii = malloc(sizeof(MenuItemInfo)); +	mii->menu_id = menu_id; +	g_idle_add(do_show_menu_item, mii); +} +  void quit() {  	g_idle_add(do_quit, NULL);  } | 
