[Xfce4-commits] <parole:bluesabre/gtk3> Initial DVD menu move to menubar, will hide later
Sean Davis
noreply at xfce.org
Sun Aug 25 18:10:01 CEST 2013
Updating branch refs/heads/bluesabre/gtk3
to 98281fce85445656b1a03e093b968eda1394faa9 (commit)
from 0a01424bb69834da0bb2c244033737ecad2deb54 (commit)
commit 98281fce85445656b1a03e093b968eda1394faa9
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sun Aug 25 12:08:47 2013 -0400
Initial DVD menu move to menubar, will hide later
data/interfaces/parole.ui | 82 +++++++++++++++++++++++-
data/interfaces/playlist.ui | 86 +++----------------------
src/parole-medialist.c | 146 -------------------------------------------
src/parole-player.c | 70 +++++++++++++++++++--
src/parole-player.h | 7 ++-
5 files changed, 158 insertions(+), 233 deletions(-)
diff --git a/data/interfaces/parole.ui b/data/interfaces/parole.ui
index b548ef4..314b11e 100644
--- a/data/interfaces/parole.ui
+++ b/data/interfaces/parole.ui
@@ -272,6 +272,86 @@
</object>
</child>
<child>
+ <object class="GtkMenuItem" id="dvd-menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_DVD</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="dvd_dvd-menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_DVD Menu</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="dvd_title-menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Title Menu</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="dvd_audio-menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Audio Menu</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="dvd_angle-menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">A_ngle Menu</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuitem5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="dvd_chapters">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Chapters</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu9">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="dvd_chapter-menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Chapter Menu</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="separatormenuitem6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
<object class="GtkMenuItem" id="audio-menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -318,8 +398,8 @@
<property name="use_underline">True</property>
<property name="image">image3</property>
<property name="use_stock">False</property>
- <accelerator key="equal" signal="activate"/>
<accelerator key="plus" signal="activate"/>
+ <accelerator key="equal" signal="activate"/>
<signal name="activate" handler="parole_player_volume_up" swapped="no"/>
</object>
</child>
diff --git a/data/interfaces/playlist.ui b/data/interfaces/playlist.ui
index ce1b34a..83c9fe1 100644
--- a/data/interfaces/playlist.ui
+++ b/data/interfaces/playlist.ui
@@ -92,90 +92,18 @@
</packing>
</child>
<child>
- <object class="GtkBox" id="box2">
+ <object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkToggleButton" id="dvd_menu_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <child>
- <object class="GtkBox" id="hbox1">
- <property name="width_request">220</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">3</property>
- <child>
- <object class="GtkImage" id="image_disc">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon_name">drive-optical</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="dvd_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">DVD Name</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkArrow" id="arrow1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="arrow_type">down</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="shadow_type">in</property>
<child>
- <object class="GtkScrolledWindow" id="scrolledwindow2">
+ <object class="GtkTreeView" id="disc-list">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="disc-list">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- <property name="rules_hint">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection3"/>
- </child>
- </object>
- </child>
+ <property name="headers_visible">False</property>
+ <property name="rules_hint">True</property>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
<packing>
diff --git a/src/parole-medialist.c b/src/parole-medialist.c
index 7c78959..6a98288 100644
--- a/src/parole-medialist.c
+++ b/src/parole-medialist.c
@@ -159,30 +159,6 @@ void parole_media_list_menu_pos (GtkMenu *menu,
gint *px, gint *py,
gboolean *push_in,
gpointer data);
-
-void
-parole_media_list_send_dvd_menu_navigation (ParoleMediaList *list,
- gint msg_id);
-
-void
-parole_media_list_dvd_menu_activated (GtkMenuItem *widget,
- ParoleMediaList *list);
-
-void
-parole_media_list_dvd_title_activated (GtkMenuItem *widget,
- ParoleMediaList *list);
-
-void
-parole_media_list_dvd_audio_activated (GtkMenuItem *widget,
- ParoleMediaList *list);
-
-void
-parole_media_list_dvd_angle_activated (GtkMenuItem *widget,
- ParoleMediaList *list);
-
-void
-parole_media_list_dvd_chapter_activated (GtkMenuItem *widget,
- ParoleMediaList *list);
/*
* End of GtkBuilder callbacks
@@ -203,9 +179,6 @@ struct ParoleMediaListPrivate
GtkTreeSelection *sel;
GtkTreeSelection *disc_sel;
- GtkWidget *dvd_menu;
- GtkWidget *dvd_menu_button;
- GtkWidget *dvd_label;
GtkWidget *playlist_controls;
GtkWidget *playlist_notebook;
@@ -228,19 +201,9 @@ enum
SHUFFLE_TOGGLED,
REPEAT_TOGGLED,
SHOW_PLAYLIST,
- GST_DVD_NAV_MESSAGE,
LAST_SIGNAL
};
-enum
-{
- GST_DVD_ROOT_MENU,
- GST_DVD_TITLE_MENU,
- GST_DVD_AUDIO_MENU,
- GST_DVD_ANGLE_MENU,
- GST_DVD_CHAPTER_MENU
-};
-
static guint signals [LAST_SIGNAL] = { 0 };
G_DEFINE_TYPE (ParoleMediaList, parole_media_list, GTK_TYPE_VBOX)
@@ -1268,100 +1231,6 @@ menu_detach( GtkMenu *menu )
//gtk_menu_detach (menu);
}
-void
-parole_media_list_add_dvd (ParoleMediaList *list, gchar *dvd_name)
-{
- //parole_media_list_set_dvd_menu_visible(list, TRUE);
-
- gtk_label_set_label(GTK_LABEL(list->priv->dvd_label), dvd_name);
-}
-
-void
-parole_media_list_send_dvd_menu_navigation (ParoleMediaList *list, gint msg_id)
-{
- g_signal_emit (G_OBJECT (list), signals [GST_DVD_NAV_MESSAGE], 0, msg_id);
-}
-
-void
-parole_media_list_dvd_menu_activated (GtkMenuItem *widget, ParoleMediaList *list)
-{
- parole_media_list_send_dvd_menu_navigation(list, GST_DVD_ROOT_MENU);
-}
-
-void
-parole_media_list_dvd_title_activated (GtkMenuItem *widget, ParoleMediaList *list)
-{
- parole_media_list_send_dvd_menu_navigation(list, GST_DVD_TITLE_MENU);
-}
-
-void
-parole_media_list_dvd_audio_activated (GtkMenuItem *widget, ParoleMediaList *list)
-{
- parole_media_list_send_dvd_menu_navigation(list, GST_DVD_AUDIO_MENU);
-}
-
-void
-parole_media_list_dvd_angle_activated (GtkMenuItem *widget, ParoleMediaList *list)
-{
- parole_media_list_send_dvd_menu_navigation(list, GST_DVD_ANGLE_MENU);
-}
-
-void
-parole_media_list_dvd_chapter_activated (GtkMenuItem *widget, ParoleMediaList *list)
-{
- parole_media_list_send_dvd_menu_navigation(list, GST_DVD_CHAPTER_MENU);
-}
-
-
-static void
-parole_media_list_show_dvd_menu (GtkToggleButton *button, ParoleMediaList *list)
-{
- gboolean toggled = gtk_toggle_button_get_active( button );
- GtkBuilder *builder;
- GtkMenu *menu;
- GtkMenuItem *dvd_menu, *title_menu, *audio_menu, *angle_menu, *chapter_menu;
-
- if (!toggled)
- return;
-
- builder = parole_builder_new_from_string (playlist_ui, playlist_ui_length);
-
- menu = GTK_MENU (gtk_builder_get_object (builder, "dvd-menu"));
-
- dvd_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd-menu-menu"));
- g_signal_connect (dvd_menu, "activate",
- G_CALLBACK (parole_media_list_dvd_menu_activated), list);
-
- title_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd-menu-title"));
- g_signal_connect (title_menu, "activate",
- G_CALLBACK (parole_media_list_dvd_title_activated), list);
-
- audio_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd-menu-audio"));
- g_signal_connect (audio_menu, "activate",
- G_CALLBACK (parole_media_list_dvd_audio_activated), list);
-
- angle_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd-menu-angle"));
- g_signal_connect (angle_menu, "activate",
- G_CALLBACK (parole_media_list_dvd_angle_activated), list);
-
- chapter_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd-menu-chapter"));
- g_signal_connect (chapter_menu, "activate",
- G_CALLBACK (parole_media_list_dvd_chapter_activated), list);
-
- gtk_menu_attach_to_widget( GTK_MENU(menu), list->priv->dvd_menu_button, (GtkMenuDetachFunc) menu_detach );
-
- g_signal_connect_swapped (menu, "selection-done",
- G_CALLBACK (parole_media_list_destroy_menu), menu);
-
- g_signal_connect_swapped (menu, "destroy",
- G_CALLBACK (parole_media_list_hide_menu), list->priv->dvd_menu_button);
-
- gtk_menu_popup (GTK_MENU (menu),
- NULL, NULL,
- (GtkMenuPositionFunc) parole_media_list_menu_pos, NULL,
- 3, gtk_get_current_event_time ());
-}
-
static void
parole_media_list_show_button_menu (GtkToggleToolButton *button, ParoleMediaList *list)
{
@@ -1631,15 +1500,6 @@ parole_media_list_class_init (ParoleMediaListClass *klass)
NULL, NULL,
g_cclosure_marshal_VOID__BOOLEAN,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-
- signals[GST_DVD_NAV_MESSAGE] =
- g_signal_new ("gst-dvd-nav-message",
- PAROLE_TYPE_MEDIA_LIST,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (ParoleMediaListClass, gst_dvd_nav_message),
- NULL, NULL,
- g_cclosure_marshal_VOID__INT,
- G_TYPE_NONE, 1, G_TYPE_INT);
g_type_class_add_private (klass, sizeof (ParoleMediaListPrivate));
@@ -1739,15 +1599,9 @@ parole_media_list_init (ParoleMediaList *list)
builder = parole_builder_new_from_string (playlist_ui, playlist_ui_length);
- list->priv->dvd_menu_button = GTK_WIDGET (gtk_builder_get_object(builder, "dvd_menu_button"));
- list->priv->dvd_menu = GTK_WIDGET (gtk_builder_get_object(builder, "dvd-menu"));
- list->priv->dvd_label = GTK_WIDGET (gtk_builder_get_object(builder, "dvd_label"));
list->priv->playlist_controls = GTK_WIDGET (gtk_builder_get_object(builder, "playlist_controls"));
list->priv->playlist_notebook = GTK_WIDGET (gtk_builder_get_object(builder, "playlist_notebook"));
- g_signal_connect (GTK_TOGGLE_BUTTON(list->priv->dvd_menu_button), "toggled",
- G_CALLBACK (parole_media_list_show_dvd_menu), list);
-
list->priv->view = GTK_WIDGET (gtk_builder_get_object (builder, "media-list"));
list->priv->disc_view = GTK_WIDGET (gtk_builder_get_object (builder, "disc-list"));
diff --git a/src/parole-player.c b/src/parole-player.c
index be7ec69..ebabcfc 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -368,6 +368,8 @@ struct ParolePlayerPrivate
GtkWidget *subtitles_menu_custom;
GtkWidget *audio_group;
+ GtkWidget *dvd_menu;
+
GtkWidget *subtitles_menu;
GtkWidget *languages_menu;
@@ -409,6 +411,15 @@ enum
PROP_CLIENT_ID
};
+enum
+{
+ GST_DVD_ROOT_MENU,
+ GST_DVD_TITLE_MENU,
+ GST_DVD_AUDIO_MENU,
+ GST_DVD_ANGLE_MENU,
+ GST_DVD_CHAPTER_MENU
+};
+
G_DEFINE_TYPE (ParolePlayer, parole_player, G_TYPE_OBJECT)
void parole_show_about (GtkWidget *widget, ParolePlayer *player)
@@ -656,7 +667,36 @@ parole_player_dvd_reset (ParolePlayer *player)
}
}
+void
+parole_player_dvd_menu_activated (GtkMenuItem *widget, ParolePlayer *player)
+{
+ parole_gst_send_navigation_command (PAROLE_GST(player->priv->gst), GST_DVD_ROOT_MENU);
+}
+
+void
+parole_player_dvd_title_activated (GtkMenuItem *widget, ParolePlayer *player)
+{
+ parole_gst_send_navigation_command (PAROLE_GST(player->priv->gst), GST_DVD_TITLE_MENU);
+}
+
+void
+parole_player_dvd_audio_activated (GtkMenuItem *widget, ParolePlayer *player)
+{
+ parole_gst_send_navigation_command (PAROLE_GST(player->priv->gst), GST_DVD_AUDIO_MENU);
+
+}
+
+void
+parole_player_dvd_angle_activated (GtkMenuItem *widget, ParolePlayer *player)
+{
+ parole_gst_send_navigation_command (PAROLE_GST(player->priv->gst), GST_DVD_ANGLE_MENU);
+}
+void
+parole_player_dvd_chapter_activated (GtkMenuItem *widget, ParolePlayer *player)
+{
+ parole_gst_send_navigation_command (PAROLE_GST(player->priv->gst), GST_DVD_CHAPTER_MENU);
+}
static gboolean
parole_sublang_equal_lists (GList *orig, GList *new)
@@ -1127,7 +1167,6 @@ parole_player_disc_selected_cb (ParoleDisc *disc, const gchar *uri, const gchar
static void
parole_player_disc_label_changed_cb (ParoleDisc *disc, const gchar *label, ParolePlayer *player)
{
- parole_media_list_add_dvd(player->priv->list, g_strdup(label));
}
static void
@@ -1248,7 +1287,7 @@ parole_player_media_list_show_playlist_cb (ParoleMediaList *list, gboolean show_
static void
parole_player_media_list_gst_nav_message_cb (ParoleMediaList *list, gint msg_id, ParolePlayer *player)
{
- parole_gst_send_navigation_command (PAROLE_GST(player->priv->gst), msg_id);
+
}
static void
@@ -2927,6 +2966,8 @@ parole_player_init (ParolePlayer *player)
GtkWidget *clear_recent;
GtkWidget *recent_separator;
+ GtkMenuItem *dvd_menu, *title_menu, *audio_menu, *angle_menu, *chapter_menu;
+
GtkWidget *bug_report;
gboolean repeat, shuffle;
@@ -3089,6 +3130,28 @@ parole_player_init (ParolePlayer *player)
/* Attach the Recent Menu */
gtk_menu_item_set_submenu( GTK_MENU_ITEM(recent_menu), player->priv->recent_menu );
+ /* DVD Menu */
+ player->priv->dvd_menu = GTK_WIDGET(gtk_builder_get_object (builder, "dvd-menu"));
+ dvd_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd_dvd-menu"));
+ g_signal_connect (dvd_menu, "activate",
+ G_CALLBACK (parole_player_dvd_menu_activated), player);
+
+ title_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd_title-menu"));
+ g_signal_connect (title_menu, "activate",
+ G_CALLBACK (parole_player_dvd_title_activated), player);
+
+ audio_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd_audio-menu"));
+ g_signal_connect (audio_menu, "activate",
+ G_CALLBACK (parole_player_dvd_audio_activated), player);
+
+ angle_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd_angle-menu"));
+ g_signal_connect (angle_menu, "activate",
+ G_CALLBACK (parole_player_dvd_angle_activated), player);
+
+ chapter_menu = GTK_MENU_ITEM (gtk_builder_get_object (builder, "dvd_chapter-menu"));
+ g_signal_connect (chapter_menu, "activate",
+ G_CALLBACK (parole_player_dvd_chapter_activated), player);
+
/* Language Menus */
player->priv->subtitles_menu = GTK_WIDGET (gtk_builder_get_object (builder, "subtitles-menu"));
player->priv->languages_menu = GTK_WIDGET (gtk_builder_get_object (builder, "languages-menu"));
@@ -3293,9 +3356,6 @@ parole_player_init (ParolePlayer *player)
g_signal_connect (player->priv->list, "show-playlist",
G_CALLBACK (parole_player_media_list_show_playlist_cb), player);
-
- g_signal_connect (player->priv->list, "gst-dvd-nav-message",
- G_CALLBACK (parole_player_media_list_gst_nav_message_cb), player);
/*
* Load auto saved media list.
diff --git a/src/parole-player.h b/src/parole-player.h
index f1b5c6c..0e8503e 100644
--- a/src/parole-player.h
+++ b/src/parole-player.h
@@ -45,11 +45,14 @@ typedef struct
{
GObjectClass parent_class;
- void (*shuffle_toggled) (ParolePlayer *list,
+ void (*shuffle_toggled) (ParolePlayer *player,
gboolean shuffle_toggled);
- void (*repeat_toggled) (ParolePlayer *list,
+ void (*repeat_toggled) (ParolePlayer *player,
gboolean repeat_toggled);
+
+ void (*gst_dvd_nav_message) (ParolePlayer *player,
+ gint gst_dvd_nav_message);
} ParolePlayerClass;
More information about the Xfce4-commits
mailing list