summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrifa75 <yahiaoui.fakhri@gmail.com>2022-11-16 20:50:12 +0100
committerBastien Nocera <hadess@hadess.net>2022-11-23 12:35:50 +0100
commit1745954bab0aecd8022a8bb615d9e2f57c9acf21 (patch)
tree7f76957a8353e4f7802ee38455e421c8e1f8ff59
parentb98e9c78f21f9d9aeef7f2479235708640a588bd (diff)
downloadtotem-1745954bab0aecd8022a8bb615d9e2f57c9acf21.tar.gz
main: Move the control buttons to GtkBuilder
-rw-r--r--data/totem.ui83
-rw-r--r--src/totem-object.c50
2 files changed, 77 insertions, 56 deletions
diff --git a/data/totem.ui b/data/totem.ui
index 7cb93ed9a..328ef8919 100644
--- a/data/totem.ui
+++ b/data/totem.ui
@@ -4,6 +4,14 @@
<interface>
<requires lib="gtk+" version="3.11"/>
+<object class="GtkImage" id="icon_play">
+ <property name="visible">True</property>
+ <property name="margin-start">16</property>
+ <property name="margin-end">16</property>
+ <property name="icon-name">media-playback-start-symbolic</property>
+ <property name="icon-size">1</property>
+</object>
+
<menu id="appmenu">
<section id="python-console-placeholder"/>
<section>
@@ -252,18 +260,78 @@
<property name="can_focus">False</property>
<style>
<class name="linked"/>
- </style>
+ </style>
<child>
- <placeholder/>
- </child>
- </object>
- </child>
- </object>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="valign">center</property>
+ <property name="action-name">app.previous-chapter</property>
+ <property name="tooltip-text" translatable="yes">Previous Chapter/Movie</property>
+ <child internal-child="accessible">
+ <object class="AtkObject">
+ <property name="AtkObject::accessible-name" translatable="yes">Previous Chapter/Movie</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="icon-name">media-skip-backward-symbolic</property>
+ <property name="icon-size">1</property>
+ </object>
+ </child>
+ <style>
+ <class name="image-button"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="play_button">
+ <property name="visible">True</property>
+ <property name="valign">center</property>
+ <property name="image">icon_play</property>
+ <property name="action-name">app.play</property>
+ <property name="tooltip-text" translatable="yes">Play / Pause</property>
+ <child internal-child="accessible">
+ <object class="AtkObject">
+ <property name="AtkObject::accessible-name" translatable="yes">Play / Pause</property>
+ </object>
+ </child>
+ <style>
+ <class name="image-button"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="valign">center</property>
+ <property name="action-name">app.next-chapter</property>
+ <property name="tooltip-text" translatable="yes">Next Chapter/Movie</property>
+ <child internal-child="accessible">
+ <object class="AtkObject">
+ <property name="AtkObject::accessible-name" translatable="yes">Next Chapter/Movie</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="icon-name">media-skip-forward-symbolic</property>
+ <property name="icon-size">1</property>
+ </object>
+ </child>
+ <style>
+ <class name="image-button"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">False</property>
</packing>
- </child>
+ </child>
<child>
<object class="GtkToolItem" id="slider_toolbutton">
<property name="visible">True</property>
@@ -338,6 +406,7 @@
<property name="relief">normal</property>
<property name="valign">center</property>
<property name="use-popover">True</property>
+ <property name="menu-model">gomenu</property>
<style>
<class name="image-button"/>
</style>
diff --git a/src/totem-object.c b/src/totem-object.c
index 8f0d088ae..02740cdee 100644
--- a/src/totem-object.c
+++ b/src/totem-object.c
@@ -3907,37 +3907,6 @@ update_add_button_visibility (GObject *gobject,
}
}
-static GtkWidget *
-create_control_button (TotemObject *totem,
- const gchar *action_name,
- const gchar *icon_name,
- const gchar *tooltip_text)
-{
- GtkWidget *button, *image;
-
- button = gtk_button_new ();
- gtk_actionable_set_action_name (GTK_ACTIONABLE (button), action_name);
- image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU);
- gtk_button_set_image (GTK_BUTTON (button), image);
- gtk_widget_set_valign (GTK_WIDGET (button), GTK_ALIGN_CENTER);
- gtk_style_context_add_class (gtk_widget_get_style_context (button), "image-button");
- if (g_str_equal (action_name, "app.play")) {
- g_object_set (G_OBJECT (image),
- "margin-start", 16,
- "margin-end", 16,
- NULL);
- totem->play_button = button;
- }
-
- gtk_button_set_label (GTK_BUTTON (button), NULL);
- gtk_widget_set_tooltip_text (button, tooltip_text);
- atk_object_set_name (gtk_widget_get_accessible (button), tooltip_text);
-
- gtk_widget_show_all (button);
-
- return button;
-}
-
static void
totem_callback_connect (TotemObject *totem)
{
@@ -3956,23 +3925,8 @@ totem_callback_connect (TotemObject *totem)
box = GTK_BOX (gtk_builder_get_object (totem->xml, "controls_box"));
gtk_widget_insert_action_group (GTK_WIDGET (box), "app", G_ACTION_GROUP (totem));
- /* Previous */
- item = create_control_button (totem, "app.previous-chapter",
- "media-skip-backward-symbolic",
- _("Previous Chapter/Movie"));
- gtk_box_pack_start (box, item, FALSE, FALSE, 0);
-
/* Play/Pause */
- item = create_control_button (totem, "app.play",
- "media-playback-start-symbolic",
- _("Play / Pause"));
- gtk_box_pack_start (box, item, FALSE, FALSE, 0);
-
- /* Next */
- item = create_control_button (totem, "app.next-chapter",
- "media-skip-forward-symbolic",
- _("Next Chapter/Movie"));
- gtk_box_pack_start (box, item, FALSE, FALSE, 0);
+ totem->play_button = GTK_WIDGET (gtk_builder_get_object (totem->xml, "play_button"));
/* Seekbar */
g_signal_connect (totem->seek, "button-press-event",
@@ -3995,8 +3949,6 @@ totem_callback_connect (TotemObject *totem)
/* Go button */
item = GTK_WIDGET (gtk_builder_get_object (totem->xml, "go_button"));
- menu = (GMenuModel *) gtk_builder_get_object (totem->xml, "gomenu");
- gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (item), menu);
popover = gtk_menu_button_get_popover (GTK_MENU_BUTTON (item));
gtk_widget_set_size_request (GTK_WIDGET (popover), 175, -1);
g_signal_connect (G_OBJECT (item), "toggled",