diff options
-rw-r--r-- | src/empathy-status-icon.c | 43 | ||||
-rw-r--r-- | src/empathy-status-icon.ui | 32 |
2 files changed, 40 insertions, 35 deletions
diff --git a/src/empathy-status-icon.c b/src/empathy-status-icon.c index ef4433631..1824be5e6 100644 --- a/src/empathy-status-icon.c +++ b/src/empathy-status-icon.c @@ -62,10 +62,11 @@ typedef struct { NotifyNotification *notification; GtkWindow *window; + GtkUIManager *ui_manager; GtkWidget *popup_menu; - GtkWidget *show_window_item; - GtkWidget *message_item; - GtkWidget *status_item; + GtkAction *show_window_item; + GtkAction *new_message_item; + GtkAction *status_item; } EmpathyStatusIconPriv; G_DEFINE_TYPE (EmpathyStatusIcon, empathy_status_icon, G_TYPE_OBJECT); @@ -393,24 +394,24 @@ status_icon_activate_cb (GtkStatusIcon *status_icon, } static void -status_icon_show_hide_window_cb (GtkWidget *widget, +status_icon_show_hide_window_cb (GtkToggleAction *action, EmpathyStatusIcon *icon) { gboolean visible; - visible = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + visible = gtk_toggle_action_get_active (action); status_icon_set_visibility (icon, visible, TRUE); } static void -status_icon_new_message_cb (GtkWidget *widget, +status_icon_new_message_cb (GtkAction *action, EmpathyStatusIcon *icon) { empathy_new_message_dialog_show (NULL); } static void -status_icon_quit_cb (GtkWidget *window, +status_icon_quit_cb (GtkAction *action, EmpathyStatusIcon *icon) { gtk_main_quit (); @@ -423,6 +424,7 @@ status_icon_popup_menu_cb (GtkStatusIcon *status_icon, EmpathyStatusIcon *icon) { EmpathyStatusIconPriv *priv = GET_PRIV (icon); + GtkWidget *menu_item; GtkWidget *submenu; gboolean show; @@ -431,15 +433,15 @@ status_icon_popup_menu_cb (GtkStatusIcon *status_icon, g_signal_handlers_block_by_func (priv->show_window_item, status_icon_show_hide_window_cb, icon); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (priv->show_window_item), - show); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (priv->show_window_item), + show); g_signal_handlers_unblock_by_func (priv->show_window_item, status_icon_show_hide_window_cb, icon); + menu_item = gtk_ui_manager_get_widget (priv->ui_manager, "/menu/status"); submenu = empathy_presence_chooser_create_menu (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (priv->status_item), - submenu); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), submenu); gtk_menu_popup (GTK_MENU (priv->popup_menu), NULL, NULL, @@ -458,19 +460,21 @@ status_icon_create_menu (EmpathyStatusIcon *icon) filename = empathy_file_lookup ("empathy-status-icon.ui", "src"); gui = empathy_builder_get_file (filename, - "tray_menu", &priv->popup_menu, - "tray_show_list", &priv->show_window_item, - "tray_new_message", &priv->message_item, - "tray_status", &priv->status_item, + "ui_manager", &priv->ui_manager, + "menu", &priv->popup_menu, + "show_list", &priv->show_window_item, + "new_message", &priv->new_message_item, + "status", &priv->status_item, NULL); g_free (filename); empathy_builder_connect (gui, icon, - "tray_show_list", "toggled", status_icon_show_hide_window_cb, - "tray_new_message", "activate", status_icon_new_message_cb, - "tray_quit", "activate", status_icon_quit_cb, + "show_list", "toggled", status_icon_show_hide_window_cb, + "new_message", "activate", status_icon_new_message_cb, + "quit", "activate", status_icon_quit_cb, NULL); + g_object_ref (priv->ui_manager); g_object_unref (gui); } @@ -488,7 +492,7 @@ status_icon_connection_changed_cb (EmpathyAccountManager *manager, /* Check for a connected account */ connected_accounts = empathy_account_manager_get_connected_accounts (manager); - gtk_widget_set_sensitive (priv->message_item, connected_accounts > 0); + gtk_action_set_sensitive (priv->new_message_item, connected_accounts > 0); } static void @@ -514,6 +518,7 @@ status_icon_finalize (GObject *object) g_object_unref (priv->idle); g_object_unref (priv->account_manager); g_object_unref (priv->event_manager); + g_object_unref (priv->ui_manager); } static void diff --git a/src/empathy-status-icon.ui b/src/empathy-status-icon.ui index 2cfff903b..df305f99f 100644 --- a/src/empathy-status-icon.ui +++ b/src/empathy-status-icon.ui @@ -1,48 +1,48 @@ <?xml version="1.0"?> <!--*- mode: xml -*--> <interface> - <object class="GtkUIManager" id="uimanager1"> + <object class="GtkUIManager" id="ui_manager"> <child> - <object class="GtkActionGroup" id="actiongroup1"> + <object class="GtkActionGroup" id="action_group"> <child> - <object class="GtkToggleAction" id="tray_show_list"> - <property name="name">tray_show_list</property> + <object class="GtkToggleAction" id="show_list"> + <property name="name">show_list</property> <property name="label" translatable="yes">_Show Contact List</property> </object> </child> <child> - <object class="GtkAction" id="tray_new_message"> - <property name="name">tray_new_message</property> + <object class="GtkAction" id="new_message"> + <property name="name">new_message</property> <property name="label" translatable="yes">_New Conversation...</property> </object> </child> <child> - <object class="GtkAction" id="tray_status"> - <property name="name">tray_status</property> + <object class="GtkAction" id="status"> + <property name="name">status</property> <property name="label" translatable="yes">Status</property> </object> </child> <child> - <object class="GtkAction" id="tray_quit"> + <object class="GtkAction" id="quit"> <property name="stock_id">gtk-quit</property> - <property name="name">tray_quit</property> + <property name="name">quit</property> <property name="label" translatable="yes">_Quit</property> </object> </child> </object> </child> <ui> - <popup name="tray_menu"> - <menuitem action="tray_show_list"/> + <popup name="menu"> + <menuitem action="show_list"/> <separator/> - <menuitem action="tray_new_message"/> - <menuitem action="tray_status"/> + <menuitem action="new_message"/> + <menuitem action="status"/> <separator/> - <menuitem action="tray_quit"/> + <menuitem action="quit"/> </popup> </ui> </object> - <object class="GtkMenu" constructor="uimanager1" id="tray_menu"> + <object class="GtkMenu" constructor="ui_manager" id="menu"> |