diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-08-23 20:08:18 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-08-23 22:09:36 +0800 |
commit | 1ad15d157971b6550cb11787a03463e891d29364 (patch) | |
tree | d477032973b531993eb8d9c58f7415cbc8a609d8 /src | |
parent | a54170335d7c6246f1606347ed109e682c883927 (diff) | |
download | gsoc2013-empathy-1ad15d157971b6550cb11787a03463e891d29364.tar gsoc2013-empathy-1ad15d157971b6550cb11787a03463e891d29364.tar.gz gsoc2013-empathy-1ad15d157971b6550cb11787a03463e891d29364.tar.bz2 gsoc2013-empathy-1ad15d157971b6550cb11787a03463e891d29364.tar.lz gsoc2013-empathy-1ad15d157971b6550cb11787a03463e891d29364.tar.xz gsoc2013-empathy-1ad15d157971b6550cb11787a03463e891d29364.tar.zst gsoc2013-empathy-1ad15d157971b6550cb11787a03463e891d29364.zip |
Move main window's UI manager to its own UI file
Glade doesn't support GtkUIManager so it was impossible to edit the main window at all
because of that.
Diffstat (limited to 'src')
-rw-r--r-- | src/empathy-main-window-menubar.ui | 307 | ||||
-rw-r--r-- | src/empathy-main-window.c | 31 | ||||
-rw-r--r-- | src/empathy-main-window.ui | 309 |
3 files changed, 330 insertions, 317 deletions
diff --git a/src/empathy-main-window-menubar.ui b/src/empathy-main-window-menubar.ui new file mode 100644 index 000000000..979afe215 --- /dev/null +++ b/src/empathy-main-window-menubar.ui @@ -0,0 +1,307 @@ +<?xml version="1.0"?> +<!--*- mode: xml -*--> +<interface> + <object class="GtkUIManager" id="ui_manager"> + <child> + <object class="GtkActionGroup" id="actiongroup1"> + <child> + <object class="GtkAction" id="chat"> + <property name="name">chat</property> + <property name="label" translatable="yes">_Chat</property> + </object> + </child> + <child> + <object class="GtkAction" id="chat_new_message"> + <property name="icon-name">im-message-new</property> + <property name="name">chat_new_message</property> + <property name="label" translatable="yes">_New Conversation…</property> + </object> + <accelerator key="N" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="chat_new_call"> + <property name="icon-name">audio-input-microphone</property> + <property name="name">chat_new_call</property> + <property name="label" translatable="yes">New _Call…</property> + </object> + <accelerator key="M" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="view_history"> + <property name="icon-name">document-open-recent</property> + <property name="name">view_history</property> + <property name="label" translatable="yes">_Previous Conversations</property> + </object> + <accelerator key="F3" modifiers=""/> + </child> + <child> + <object class="GtkAction" id="chat_add_contact"> + <property name="stock_id">gtk-add</property> + <property name="name">chat_add_contact</property> + <property name="label" translatable="yes">_Add Contact…</property> + </object> + </child> + <child> + <object class="GtkAction" id="chat_search_contacts"> + <property name="stock_id">gtk-find</property> + <property name="name">chat_search_contacts</property> + <property name="label" translatable="yes">_Search for Contacts…</property> + </object> + <accelerator key="f" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="view_show_ft_manager"> + <property name="icon-name">document-send</property> + <property name="name">view_show_ft_manager</property> + <property name="label" translatable="yes">_File Transfers</property> + </object> + </child> + <child> + <object class="GtkToggleAction" id="view_show_offline"> + <property name="name">view_show_offline</property> + <property name="label" translatable="yes">_Offline Contacts</property> + </object> + <accelerator key="H" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkToggleAction" id="view_show_protocols"> + <property name="name">view_show_protocols</property> + <property name="label" translatable="yes">Show P_rotocols</property> + </object> + </child> + <child> + <object class="GtkToggleAction" id="view_balance_show_in_roster"> + <property name="name">view_balance_show_in_roster</property> + <property name="label" translatable="yes">Credit Balance</property> + <property name="visible">False</property> + </object> + </child> + <child> + <object class="GtkAction" id="view_show_map"> + <property name="name">view_show_map</property> + <property name="label" translatable="yes">Contacts on a _Map</property> + </object> + </child> + <child> + <object class="GtkAction" id="chat_quit"> + <property name="stock_id">gtk-quit</property> + <property name="name">chat_quit</property> + </object> + <accelerator key="Q" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="edit"> + <property name="name">edit</property> + <property name="label" translatable="yes">_Edit</property> + </object> + </child> + <child> + <object class="GtkAction" id="edit_context"> + <property name="name">edit_context</property> + <property name="label" translatable="no">Context</property> + </object> + </child> + <child> + <object class="GtkAction" id="edit_accounts"> + <property name="name">edit_accounts</property> + <property name="label" translatable="yes">_Accounts</property> + </object> + <accelerator key="F4" modifiers=""/> + </child> + <child> + <object class="GtkAction" id="edit_personal_information"> + <property name="name">edit_personal_information</property> + <property name="label" translatable="yes">_Personal Information</property> + </object> + </child> + <child> + <object class="GtkAction" id="edit_blocked_contacts"> + <property name="name">edit_blocked_contacts</property> + <property name="label" translatable="yes">_Blocked Contacts</property> + </object> + </child> + <child> + <object class="GtkAction" id="edit_preferences"> + <property name="stock_id">gtk-preferences</property> + <property name="name">edit_preferences</property> + <property name="label" translatable="yes">P_references</property> + </object> + </child> + <child> + <object class="GtkAction" id="edit_search_contacts"> + <property name="name">edit_search_contacts</property> + <property name="label" translatable="yes">Find in Contact _List</property> + </object> + <accelerator key="f" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="view"> + <property name="name">view</property> + <property name="label" translatable="yes">_View</property> + </object> + </child> + <child> + <object class="GtkRadioAction" id="view_sort_by_name"> + <property name="name">view_sort_by_name</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Sort by _Name</property> + <property name="draw_as_radio">True</property> + <property name="value">1</property> + <property name="current-value">1</property> + </object> + </child> + <child> + <object class="GtkRadioAction" id="view_sort_by_status"> + <property name="name">view_sort_by_status</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Sort by _Status</property> + <property name="draw_as_radio">True</property> + <property name="group">view_sort_by_name</property> + <property name="value">0</property> + </object> + </child> + <child> + <object class="GtkRadioAction" id="view_normal_size_with_avatars"> + <property name="name">view_normal_size_with_avatars</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Normal Size With _Avatars</property> + <property name="draw_as_radio">True</property> + <property name="value">0</property> + <property name="current-value">0</property> + </object> + <accelerator key="1" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkRadioAction" id="view_normal_size"> + <property name="name">view_normal_size</property> + <property name="visible">True</property> + <property name="label" translatable="yes">N_ormal Size</property> + <property name="draw_as_radio">True</property> + <property name="group">view_normal_size_with_avatars</property> + <property name="value">1</property> + </object> + <accelerator key="2" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkRadioAction" id="view_compact_size"> + <property name="name">view_compact_size</property> + <property name="visible">True</property> + <property name="label" translatable="yes">_Compact Size</property> + <property name="draw_as_radio">True</property> + <property name="group">view_normal_size_with_avatars</property> + <property name="value">2</property> + </object> + <accelerator key="3" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="room"> + <property name="name">room</property> + <property name="label" translatable="yes">_Room</property> + </object> + </child> + <child> + <object class="GtkAction" id="room_join_new"> + <property name="name">room_join_new</property> + <property name="label" translatable="yes">_Join…</property> + </object> + </child> + <child> + <object class="GtkAction" id="room_join_favorites"> + <property name="name">room_join_favorites</property> + <property name="label" translatable="yes">Join _Favorites</property> + </object> + <accelerator key="F5" modifiers=""/> + </child> + <child> + <object class="GtkAction" id="room_manage_favorites"> + <property name="icon-name">system-users</property> + <property name="name">room_manage_favorites</property> + <property name="label" translatable="yes">Manage Favorites</property> + </object> + </child> + <child> + <object class="GtkAction" id="help"> + <property name="name">help</property> + <property name="label" translatable="yes">_Help</property> + </object> + </child> + <child> + <object class="GtkAction" id="help_contents"> + <property name="stock_id">gtk-help</property> + <property name="name">help_contents</property> + <property name="label" translatable="yes">_Contents</property> + </object> + <accelerator key="F1" modifiers=""/> + </child> + <child> + <object class="GtkAction" id="help_debug"> + <property name="name">help_debug</property> + <property name="label" translatable="yes">_Debug</property> + </object> + </child> + <child> + <object class="GtkAction" id="help_about"> + <property name="stock_id">gtk-about</property> + <property name="name">help_about</property> + </object> + </child> + </object> + </child> + <ui> + <menubar name="menubar"> + <menu action="chat"> + <menuitem action="chat_new_message"/> + <menuitem action="chat_new_call"/> + <separator/> + <menuitem action="chat_add_contact"/> + <menuitem action="chat_search_contacts"/> + <separator/> + <menuitem action="chat_quit"/> + </menu> + <menu action="edit"> + <menuitem action="edit_context"/> + <separator name="edit_context_separator"/> + <menuitem action="edit_accounts"/> + <menuitem action="edit_personal_information"/> + <menuitem action="edit_search_contacts"/> + <menuitem action="edit_blocked_contacts"/> + <separator/> + <menuitem action="edit_preferences"/> + </menu> + <menu action="view"> + <menuitem action="view_show_offline"/> + <menuitem action="view_show_protocols"/> + <separator/> + <menuitem action="view_balance_show_in_roster"/> + <placeholder name="view_balance_placeholder"/> + <separator/> + <menuitem action="view_sort_by_name"/> + <menuitem action="view_sort_by_status"/> + <separator/> + <menuitem action="view_normal_size_with_avatars"/> + <menuitem action="view_normal_size"/> + <menuitem action="view_compact_size"/> + <separator/> + <menuitem action="view_history"/> + <menuitem action="view_show_ft_manager"/> + <menuitem action="view_show_map"/> + </menu> + <menu action="room"> + <menuitem action="room_join_new"/> + <menuitem action="room_join_favorites"/> + <separator/> + <separator name="room_separator"/> + <menuitem action="room_manage_favorites"/> + </menu> + <menu action="help"> + <menuitem action="help_contents"/> + <menuitem action="help_debug"/> + <menuitem action="help_about"/> + </menu> + </menubar> + </ui> + </object> + <object class="GtkMenuBar" constructor="ui_manager" id="menubar"> + <property name="visible">True</property> + </object> +</interface> diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c index fa50ef587..1463e8ed9 100644 --- a/src/empathy-main-window.c +++ b/src/empathy-main-window.c @@ -2096,7 +2096,7 @@ empathy_main_window_init (EmpathyMainWindow *window) { EmpathyMainWindowPriv *priv; EmpathyIndividualManager *individual_manager; - GtkBuilder *gui; + GtkBuilder *gui, *gui_mgr; GtkWidget *sw; GtkToggleAction *show_offline_widget; GtkAction *show_map_widget; @@ -2106,6 +2106,7 @@ empathy_main_window_init (EmpathyMainWindow *window) GSList *l; GtkTreeModel *model; GtkWidget *search_vbox; + GtkWidget *menubar; priv = window->priv = G_TYPE_INSTANCE_GET_PRIVATE (window, EMPATHY_TYPE_MAIN_WINDOW, EmpathyMainWindowPriv); @@ -2126,6 +2127,17 @@ empathy_main_window_init (EmpathyMainWindow *window) "balance_vbox", &priv->balance_vbox, "errors_vbox", &priv->errors_vbox, "auth_vbox", &priv->auth_vbox, + "search_vbox", &search_vbox, + "presence_toolbar", &priv->presence_toolbar, + "notebook", &priv->notebook, + "no_entry_label", &priv->no_entry_label, + "roster_scrolledwindow", &sw, + NULL); + g_free (filename); + + /* Set UI manager */ + filename = empathy_file_lookup ("empathy-main-window-menubar.ui", "src"); + gui_mgr = empathy_builder_get_file (filename, "ui_manager", &priv->ui_manager, "view_show_offline", &show_offline_widget, "view_show_protocols", &priv->show_protocols, @@ -2137,22 +2149,24 @@ empathy_main_window_init (EmpathyMainWindow *window) "view_history", &priv->view_history, "view_show_map", &show_map_widget, "room_join_favorites", &priv->room_join_favorites, - "presence_toolbar", &priv->presence_toolbar, - "notebook", &priv->notebook, - "no_entry_label", &priv->no_entry_label, - "roster_scrolledwindow", &sw, "view_balance_show_in_roster", &priv->view_balance_show_in_roster, - "search_vbox", &search_vbox, + "menubar", &menubar, NULL); g_free (filename); + /* The UI manager is living in its own .ui file as Glade doesn't support + * those. The GtkMenubar has to be in this file as well to we manually add + * it to the first position of the vbox. */ + gtk_box_pack_start (GTK_BOX (priv->main_vbox), menubar, FALSE, FALSE, 0); + gtk_box_reorder_child (GTK_BOX (priv->main_vbox), menubar, 0); + gtk_container_add (GTK_CONTAINER (window), priv->main_vbox); gtk_widget_show (priv->main_vbox); g_signal_connect (window, "key-press-event", G_CALLBACK (main_window_key_press_event_cb), NULL); - empathy_builder_connect (gui, window, + empathy_builder_connect (gui_mgr, window, "chat_quit", "activate", main_window_chat_quit_cb, "chat_new_message", "activate", main_window_chat_new_message_cb, "chat_new_call", "activate", main_window_chat_new_call_cb, @@ -2180,10 +2194,11 @@ empathy_main_window_init (EmpathyMainWindow *window) NULL); /* Set up connection related widgets. */ - main_window_connection_items_setup (window, gui); + main_window_connection_items_setup (window, gui_mgr); g_object_ref (priv->ui_manager); g_object_unref (gui); + g_object_unref (gui_mgr); #ifndef HAVE_LIBCHAMPLAIN gtk_action_set_visible (show_map_widget, FALSE); diff --git a/src/empathy-main-window.ui b/src/empathy-main-window.ui index bab01c10e..a92dd7327 100644 --- a/src/empathy-main-window.ui +++ b/src/empathy-main-window.ui @@ -1,318 +1,9 @@ <?xml version="1.0"?> <!--*- mode: xml -*--> <interface> - <object class="GtkUIManager" id="ui_manager"> - <child> - <object class="GtkActionGroup" id="actiongroup1"> - <child> - <object class="GtkAction" id="chat"> - <property name="name">chat</property> - <property name="label" translatable="yes">_Chat</property> - </object> - </child> - <child> - <object class="GtkAction" id="chat_new_message"> - <property name="icon-name">im-message-new</property> - <property name="name">chat_new_message</property> - <property name="label" translatable="yes">_New Conversation…</property> - </object> - <accelerator key="N" modifiers="GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkAction" id="chat_new_call"> - <property name="icon-name">audio-input-microphone</property> - <property name="name">chat_new_call</property> - <property name="label" translatable="yes">New _Call…</property> - </object> - <accelerator key="M" modifiers="GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkAction" id="view_history"> - <property name="icon-name">document-open-recent</property> - <property name="name">view_history</property> - <property name="label" translatable="yes">_Previous Conversations</property> - </object> - <accelerator key="F3" modifiers=""/> - </child> - <child> - <object class="GtkAction" id="chat_add_contact"> - <property name="stock_id">gtk-add</property> - <property name="name">chat_add_contact</property> - <property name="label" translatable="yes">_Add Contact…</property> - </object> - </child> - <child> - <object class="GtkAction" id="chat_search_contacts"> - <property name="stock_id">gtk-find</property> - <property name="name">chat_search_contacts</property> - <property name="label" translatable="yes">_Search for Contacts…</property> - </object> - <accelerator key="f" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkAction" id="view_show_ft_manager"> - <property name="icon-name">document-send</property> - <property name="name">view_show_ft_manager</property> - <property name="label" translatable="yes">_File Transfers</property> - </object> - </child> - <child> - <object class="GtkToggleAction" id="view_show_offline"> - <property name="name">view_show_offline</property> - <property name="label" translatable="yes">_Offline Contacts</property> - </object> - <accelerator key="H" modifiers="GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkToggleAction" id="view_show_protocols"> - <property name="name">view_show_protocols</property> - <property name="label" translatable="yes">Show P_rotocols</property> - </object> - </child> - <child> - <object class="GtkToggleAction" id="view_balance_show_in_roster"> - <property name="name">view_balance_show_in_roster</property> - <property name="label" translatable="yes">Credit Balance</property> - <property name="visible">False</property> - </object> - </child> - <child> - <object class="GtkAction" id="view_show_map"> - <property name="name">view_show_map</property> - <property name="label" translatable="yes">Contacts on a _Map</property> - </object> - </child> - <child> - <object class="GtkAction" id="chat_quit"> - <property name="stock_id">gtk-quit</property> - <property name="name">chat_quit</property> - </object> - <accelerator key="Q" modifiers="GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkAction" id="edit"> - <property name="name">edit</property> - <property name="label" translatable="yes">_Edit</property> - </object> - </child> - <child> - <object class="GtkAction" id="edit_context"> - <property name="name">edit_context</property> - <property name="label" translatable="no">Context</property> - </object> - </child> - <child> - <object class="GtkAction" id="edit_accounts"> - <property name="name">edit_accounts</property> - <property name="label" translatable="yes">_Accounts</property> - </object> - <accelerator key="F4" modifiers=""/> - </child> - <child> - <object class="GtkAction" id="edit_personal_information"> - <property name="name">edit_personal_information</property> - <property name="label" translatable="yes">_Personal Information</property> - </object> - </child> - <child> - <object class="GtkAction" id="edit_blocked_contacts"> - <property name="name">edit_blocked_contacts</property> - <property name="label" translatable="yes">_Blocked Contacts</property> - </object> - </child> - <child> - <object class="GtkAction" id="edit_preferences"> - <property name="stock_id">gtk-preferences</property> - <property name="name">edit_preferences</property> - <property name="label" translatable="yes">P_references</property> - </object> - </child> - <child> - <object class="GtkAction" id="edit_search_contacts"> - <property name="name">edit_search_contacts</property> - <property name="label" translatable="yes">Find in Contact _List</property> - </object> - <accelerator key="f" modifiers="GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkAction" id="view"> - <property name="name">view</property> - <property name="label" translatable="yes">_View</property> - </object> - </child> - <child> - <object class="GtkRadioAction" id="view_sort_by_name"> - <property name="name">view_sort_by_name</property> - <property name="visible">True</property> - <property name="label" translatable="yes">Sort by _Name</property> - <property name="draw_as_radio">True</property> - <property name="value">1</property> - <property name="current-value">1</property> - </object> - </child> - <child> - <object class="GtkRadioAction" id="view_sort_by_status"> - <property name="name">view_sort_by_status</property> - <property name="visible">True</property> - <property name="label" translatable="yes">Sort by _Status</property> - <property name="draw_as_radio">True</property> - <property name="group">view_sort_by_name</property> - <property name="value">0</property> - </object> - </child> - <child> - <object class="GtkRadioAction" id="view_normal_size_with_avatars"> - <property name="name">view_normal_size_with_avatars</property> - <property name="visible">True</property> - <property name="label" translatable="yes">Normal Size With _Avatars</property> - <property name="draw_as_radio">True</property> - <property name="value">0</property> - <property name="current-value">0</property> - </object> - <accelerator key="1" modifiers="GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkRadioAction" id="view_normal_size"> - <property name="name">view_normal_size</property> - <property name="visible">True</property> - <property name="label" translatable="yes">N_ormal Size</property> - <property name="draw_as_radio">True</property> - <property name="group">view_normal_size_with_avatars</property> - <property name="value">1</property> - </object> - <accelerator key="2" modifiers="GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkRadioAction" id="view_compact_size"> - <property name="name">view_compact_size</property> - <property name="visible">True</property> - <property name="label" translatable="yes">_Compact Size</property> - <property name="draw_as_radio">True</property> - <property name="group">view_normal_size_with_avatars</property> - <property name="value">2</property> - </object> - <accelerator key="3" modifiers="GDK_CONTROL_MASK"/> - </child> - <child> - <object class="GtkAction" id="room"> - <property name="name">room</property> - <property name="label" translatable="yes">_Room</property> - </object> - </child> - <child> - <object class="GtkAction" id="room_join_new"> - <property name="name">room_join_new</property> - <property name="label" translatable="yes">_Join…</property> - </object> - </child> - <child> - <object class="GtkAction" id="room_join_favorites"> - <property name="name">room_join_favorites</property> - <property name="label" translatable="yes">Join _Favorites</property> - </object> - <accelerator key="F5" modifiers=""/> - </child> - <child> - <object class="GtkAction" id="room_manage_favorites"> - <property name="icon-name">system-users</property> - <property name="name">room_manage_favorites</property> - <property name="label" translatable="yes">Manage Favorites</property> - </object> - </child> - <child> - <object class="GtkAction" id="help"> - <property name="name">help</property> - <property name="label" translatable="yes">_Help</property> - </object> - </child> - <child> - <object class="GtkAction" id="help_contents"> - <property name="stock_id">gtk-help</property> - <property name="name">help_contents</property> - <property name="label" translatable="yes">_Contents</property> - </object> - <accelerator key="F1" modifiers=""/> - </child> - <child> - <object class="GtkAction" id="help_debug"> - <property name="name">help_debug</property> - <property name="label" translatable="yes">_Debug</property> - </object> - </child> - <child> - <object class="GtkAction" id="help_about"> - <property name="stock_id">gtk-about</property> - <property name="name">help_about</property> - </object> - </child> - </object> - </child> - <ui> - <menubar name="menubar"> - <menu action="chat"> - <menuitem action="chat_new_message"/> - <menuitem action="chat_new_call"/> - <separator/> - <menuitem action="chat_add_contact"/> - <menuitem action="chat_search_contacts"/> - <separator/> - <menuitem action="chat_quit"/> - </menu> - <menu action="edit"> - <menuitem action="edit_context"/> - <separator name="edit_context_separator"/> - <menuitem action="edit_accounts"/> - <menuitem action="edit_personal_information"/> - <menuitem action="edit_search_contacts"/> - <menuitem action="edit_blocked_contacts"/> - <separator/> - <menuitem action="edit_preferences"/> - </menu> - <menu action="view"> - <menuitem action="view_show_offline"/> - <menuitem action="view_show_protocols"/> - <separator/> - <menuitem action="view_balance_show_in_roster"/> - <placeholder name="view_balance_placeholder"/> - <separator/> - <menuitem action="view_sort_by_name"/> - <menuitem action="view_sort_by_status"/> - <separator/> - <menuitem action="view_normal_size_with_avatars"/> - <menuitem action="view_normal_size"/> - <menuitem action="view_compact_size"/> - <separator/> - <menuitem action="view_history"/> - <menuitem action="view_show_ft_manager"/> - <menuitem action="view_show_map"/> - </menu> - <menu action="room"> - <menuitem action="room_join_new"/> - <menuitem action="room_join_favorites"/> - <separator/> - <separator name="room_separator"/> - <menuitem action="room_manage_favorites"/> - </menu> - <menu action="help"> - <menuitem action="help_contents"/> - <menuitem action="help_debug"/> - <menuitem action="help_about"/> - </menu> - </menubar> - </ui> - </object> <object class="GtkVBox" id="main_vbox"> <property name="visible">True</property> <child> - <object class="GtkMenuBar" constructor="ui_manager" id="menubar"> - <property name="visible">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - <child> <object class="GtkToolbar" id="presence_toolbar"> <property name="visible">True</property> <property name="toolbar_style">GTK_TOOLBAR_BOTH</property> |