summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrifa75 <yahiaoui.fakhri@gmail.com>2022-11-17 01:51:30 +0100
committerBastien Nocera <hadess@hadess.net>2022-11-23 12:37:35 +0100
commitaf637c8743509dbfae9e49ebfa830b147956970b (patch)
tree2cbcf0a2e49cb4a52116c27c2c7daf3c2534478d
parent485869b59a98d18111396f32de43f1d606f181b2 (diff)
downloadtotem-af637c8743509dbfae9e49ebfa830b147956970b.tar.gz
main: Move header bar widgets to GtkBuilder
-rw-r--r--data/totem.ui119
-rw-r--r--src/totem-object.c56
2 files changed, 126 insertions, 49 deletions
diff --git a/data/totem.ui b/data/totem.ui
index 6cda7addf..6036ecf4e 100644
--- a/data/totem.ui
+++ b/data/totem.ui
@@ -192,6 +192,125 @@
<signal name="key-release-event" handler="window_key_press_event_cb" swapped="no"/>
<signal name="key-press-event" handler="window_key_press_event_cb" swapped="no"/>
<signal name="delete-event" handler="main_window_destroy_cb" swapped="no"/>
+ <child type="titlebar">
+ <object class="TotemMainToolbar" id="header">
+ <property name="visible">True</property>
+ <property name="show-search-button">True</property>
+ <property name="show-select-button">True</property>
+ <property name="show-close-button">True</property>
+ <property name="title" translatable="yes">Videos</property>
+ <child>
+ <object class="GtkMenuButton" id="add_button">
+ <property name="visible">True</property>
+ <property name="valign">center</property>
+ <property name="use-popover">True</property>
+ <property name="menu-model">addmenu</property>
+ <signal name="toggled" handler="popup_menu_shown_cb"/>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="icon-name">list-add-symbolic</property>
+ <property name="icon-size">1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack-type">start</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="main_menu_button">
+ <property name="visible">True</property>
+ <property name="valign">center</property>
+ <property name="use-popover">True</property>
+ <property name="menu-model">appmenu</property>
+ <signal name="toggled" handler="popup_menu_shown_cb"/>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="icon-name">open-menu-symbolic</property>
+ <property name="icon-size">1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack-type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="gear_button">
+ <property name="visible">False</property>
+ <property name="no-show-all">True</property>
+ <property name="valign">center</property>
+ <property name="use-popover">True</property>
+ <property name="menu-model">playermenu</property>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="icon-name">view-more-symbolic</property>
+ <property name="icon-size">1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack-type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="subtitles_button">
+ <property name="visible">False</property>
+ <property name="no-show-all">True</property>
+ <property name="valign">center</property>
+ <property name="use-popover">True</property>
+ <property name="menu-model">subtitlesmenu</property>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="icon-name">media-view-subtitles-symbolic</property>
+ <property name="icon-size">1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack-type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="fullscreen_button">
+ <property name="visible">False</property>
+ <property name="no-show-all">True</property>
+ <property name="valign">center</property>
+ <property name="action-name">app.fullscreen</property>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="icon-name">view-fullscreen-symbolic</property>
+ <property name="icon-size">1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack-type">end</property>
+ </packing>
+ </child>
+ </object>
+ </child>
<child>
<object class="GtkStack" id="tmw_main_stack">
<property name="visible">True</property>
diff --git a/src/totem-object.c b/src/totem-object.c
index 21f00c7c8..a79e39c40 100644
--- a/src/totem-object.c
+++ b/src/totem-object.c
@@ -3867,15 +3867,9 @@ totem_setup_window (TotemObject *totem)
}
/* Headerbar */
- totem->header = g_object_new (TOTEM_TYPE_MAIN_TOOLBAR,
- "show-search-button", TRUE,
- "show-select-button", TRUE,
- "show-close-button", TRUE,
- "title", _("Videos"),
- NULL);
+ totem->header = GTK_WIDGET (gtk_builder_get_object (totem->xml, "header"));
g_signal_connect (G_OBJECT (totem->header), "back-clicked",
G_CALLBACK (back_button_clicked_cb), totem);
- gtk_window_set_titlebar (GTK_WINDOW (totem->win), totem->header);
return;
}
@@ -3923,7 +3917,6 @@ totem_callback_connect (TotemObject *totem)
GtkWidget *item;
GtkBox *box;
GAction *gaction;
- GMenuModel *menu;
GtkPopover *popover;
/* Menu items */
@@ -3953,63 +3946,28 @@ totem_callback_connect (TotemObject *totem)
gtk_widget_set_size_request (GTK_WIDGET (popover), 175, -1);
/* Main menu */
- item = totem->main_menu_button = totem_interface_create_header_button (totem->header,
- gtk_menu_button_new (),
- "open-menu-symbolic",
- GTK_PACK_END);
- gtk_container_child_set (GTK_CONTAINER (totem->header), totem->main_menu_button,
- "position", 0,
- NULL);
- menu = (GMenuModel *) gtk_builder_get_object (totem->xml, "appmenu");
- gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (item), menu);
+ totem->main_menu_button = GTK_WIDGET (gtk_builder_get_object (totem->xml, "main_menu_button"));
/* Player menu */
- item = totem->gear_button = totem_interface_create_header_button (totem->header,
- gtk_menu_button_new (),
- "view-more-symbolic",
- GTK_PACK_END);
- menu = (GMenuModel *) gtk_builder_get_object (totem->xml, "playermenu");
- gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (item), menu);
- popover = gtk_menu_button_get_popover (GTK_MENU_BUTTON (item));
+ totem->gear_button = GTK_WIDGET (gtk_builder_get_object (totem->xml, "gear_button"));
g_signal_connect (G_OBJECT (item), "toggled",
G_CALLBACK (popup_menu_shown_cb), totem);
- gtk_widget_hide (item);
- gtk_widget_set_no_show_all (item, TRUE);
/* Subtitles menu */
- item = totem->subtitles_button = totem_interface_create_header_button (totem->header,
- gtk_menu_button_new (),
- "media-view-subtitles-symbolic",
- GTK_PACK_END);
- menu = (GMenuModel *) gtk_builder_get_object (totem->xml, "subtitlesmenu");
- gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (item), menu);
- popover = gtk_menu_button_get_popover (GTK_MENU_BUTTON (item));
+ totem->subtitles_button = GTK_WIDGET (gtk_builder_get_object (totem->xml, "subtitles_button"));
g_signal_connect (G_OBJECT (item), "toggled",
G_CALLBACK (popup_menu_shown_cb), totem);
- gtk_widget_hide (item);
- gtk_widget_set_no_show_all (item, TRUE);
/* Add button */
- item = totem->add_button = totem_interface_create_header_button (totem->header,
- gtk_menu_button_new (),
- "list-add-symbolic",
- GTK_PACK_START);
- menu = (GMenuModel *) gtk_builder_get_object (totem->xml, "addmenu");
- gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (item), menu);
-
g_signal_connect (G_OBJECT (totem->header), "notify::search-mode",
G_CALLBACK (update_add_button_visibility), totem);
g_signal_connect (G_OBJECT (totem->header), "notify::select-mode",
G_CALLBACK (update_add_button_visibility), totem);
+ totem->add_button = GTK_WIDGET (gtk_builder_get_object (totem->xml, "add_button"));
+
/* Fullscreen button */
- item = totem->fullscreen_button = totem_interface_create_header_button (totem->header,
- gtk_button_new (),
- "view-fullscreen-symbolic",
- GTK_PACK_END);
- gtk_actionable_set_action_name (GTK_ACTIONABLE (item), "app.fullscreen");
- gtk_widget_hide (item);
- gtk_widget_set_no_show_all (item, TRUE);
+ totem->fullscreen_button = GTK_WIDGET (gtk_builder_get_object (totem->xml, "fullscreen_button"));
/* Connect the keys */
gtk_widget_add_events (totem->win, GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK);