diff options
Diffstat (limited to 'src/indicator-messages.c')
-rw-r--r-- | src/indicator-messages.c | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/src/indicator-messages.c b/src/indicator-messages.c index 3df1329..b0aaffd 100644 --- a/src/indicator-messages.c +++ b/src/indicator-messages.c @@ -24,13 +24,16 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <gtk/gtk.h> #include <libindicate/listener.h> +#include <libindicator/indicator.h> +INDICATOR_SET_VERSION +INDICATOR_SET_NAME("messages") + #include "im-menu-item.h" #include "app-menu-item.h" static IndicateListener * listener; static GList * serverList; static GtkWidget * main_image; -static GtkWidget * main_menu; static void server_count_changed (AppMenuItem * appitem, guint count, gpointer data); static void server_name_changed (AppMenuItem * appitem, gchar * name, gpointer data); @@ -159,7 +162,7 @@ server_added (IndicateListener * listener, IndicateListenerServer * server, gcha gtk_menu_shell_prepend(menushell, GTK_WIDGET(menuitem)); gtk_widget_show(GTK_WIDGET(menuitem)); - gtk_widget_show(GTK_WIDGET(main_menu)); + gtk_widget_show(GTK_WIDGET(main_image)); reconsile_list_and_menu(serverList, menushell); @@ -259,7 +262,7 @@ server_removed (IndicateListener * listener, IndicateListenerServer * server, gc g_free(sltp); if (g_list_length(serverList) == 0) { - gtk_widget_hide(main_menu); + gtk_widget_hide(main_image); } else { /* Simulate a server saying zero to recalculate icon */ server_count_changed(NULL, 0, NULL); @@ -468,23 +471,30 @@ indicator_removed (IndicateListener * listener, IndicateListenerServer * server, return; } -GtkWidget * -get_menu_item (void) +GtkLabel * +get_label (void) { - design_team_size = gtk_icon_size_register("design-team-size", 22, 22); - - listener = indicate_listener_new(); - serverList = NULL; + return NULL; +} - main_menu = gtk_menu_item_new(); - gtk_widget_set_name(main_menu, "fast-user-switch-menuitem"); +GtkImage * +get_icon (void) +{ + design_team_size = gtk_icon_size_register("design-team-size", 22, 22); main_image = gtk_image_new_from_icon_name("indicator-messages", DESIGN_TEAM_SIZE); gtk_widget_show(main_image); - gtk_container_add(GTK_CONTAINER(main_menu), main_image); + + return GTK_IMAGE(main_image); +} + +GtkMenu * +get_menu (void) +{ + listener = indicate_listener_ref_default(); + serverList = NULL; GtkWidget * submenu = gtk_menu_new(); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(main_menu), submenu); gtk_widget_show(submenu); g_signal_connect(listener, INDICATE_LISTENER_SIGNAL_INDICATOR_ADDED, G_CALLBACK(indicator_added), submenu); @@ -492,6 +502,6 @@ get_menu_item (void) g_signal_connect(listener, INDICATE_LISTENER_SIGNAL_SERVER_ADDED, G_CALLBACK(server_added), submenu); g_signal_connect(listener, INDICATE_LISTENER_SIGNAL_SERVER_REMOVED, G_CALLBACK(server_removed), submenu); - return main_menu; + return GTK_MENU(submenu); } |