672 lines
33 KiB
Plaintext
672 lines
33 KiB
Plaintext
$OpenBSD: patch-src_gui_c,v 1.33 2013/02/04 10:05:53 dcoppa Exp $
|
|
|
|
Fix some layout issues when playing audio only files
|
|
(upstream svn revision r2390)
|
|
|
|
Clean up some deprecated GTK2 calls in GTK3 mode
|
|
Clean up unused variable messages
|
|
Fix usage of symbolic icons
|
|
(upstream svn revisions r2357, r2363, r2364, r2381, r2383 and r2384)
|
|
|
|
Hide some items on the context menu, when not under plugin control
|
|
(upstream svn revision r2401)
|
|
|
|
Resize player when on 'videopresent' event
|
|
(upstream svn revision r2391)
|
|
|
|
Bugfix: subtitles not hidden by default when specified
|
|
(upstream svn revision r2397)
|
|
|
|
Fix some problems on initial volume setup
|
|
(upstream svn revision r2378)
|
|
|
|
Don't monitor system volume when running in softvol mode
|
|
(upstream svn revision r2377)
|
|
|
|
--- src/gui.c.orig Fri Oct 26 19:22:31 2012
|
|
+++ src/gui.c Mon Feb 4 10:46:36 2013
|
|
@@ -497,6 +497,7 @@ void adjust_layout()
|
|
gint total_width;
|
|
gint handle_size;
|
|
GtkAllocation alloc = { 0 };
|
|
+ GtkAllocation alloc2 = { 0 };
|
|
|
|
gm_log(verbose, G_LOG_LEVEL_DEBUG, "media size = %i x %i", non_fs_width, non_fs_height);
|
|
total_height = non_fs_height;
|
|
@@ -543,7 +544,9 @@ void adjust_layout()
|
|
// gtk_main_iteration();
|
|
}
|
|
gmtk_get_allocation(media_hbox, &alloc);
|
|
+ gm_log(verbose, G_LOG_LEVEL_DEBUG, "media height = %i", alloc.height);
|
|
total_height += alloc.height;
|
|
+ gm_log(verbose, G_LOG_LEVEL_DEBUG, "total_height = %i", total_height);
|
|
} else {
|
|
gtk_widget_hide(media_hbox);
|
|
}
|
|
@@ -555,7 +558,9 @@ void adjust_layout()
|
|
//return;
|
|
}
|
|
gmtk_get_allocation(details_vbox, &alloc);
|
|
+ gm_log(verbose, G_LOG_LEVEL_DEBUG, "detail height = %i", alloc.height);
|
|
total_height += alloc.height;
|
|
+ gm_log(verbose, G_LOG_LEVEL_DEBUG, "total_height = %i", total_height);
|
|
} else {
|
|
gtk_widget_hide(details_vbox);
|
|
}
|
|
@@ -589,7 +594,12 @@ void adjust_layout()
|
|
//gtk_paned_set_position(GTK_PANED(pane), total_height);
|
|
total_height += alloc.height + handle_size;
|
|
} else {
|
|
- total_width += alloc.width + handle_size;
|
|
+ if (gmtk_get_visible(media_hbox) && idledata->videopresent == FALSE) {
|
|
+ gmtk_get_allocation(media_hbox, &alloc2);
|
|
+ total_width = alloc2.width + handle_size + alloc.width;
|
|
+ } else {
|
|
+ total_width += handle_size + alloc.width;
|
|
+ }
|
|
}
|
|
|
|
if (non_fs_height == 0) {
|
|
@@ -616,15 +626,18 @@ void adjust_layout()
|
|
|
|
if (!fullscreen) {
|
|
if (!enable_global_menu) {
|
|
- gm_log(verbose, G_LOG_LEVEL_DEBUG, "menubar = %i", alloc.height);
|
|
gmtk_get_allocation(menubar, &alloc);
|
|
+ gm_log(verbose, G_LOG_LEVEL_DEBUG, "menubar = %i", alloc.height);
|
|
total_height += alloc.height;
|
|
+ gm_log(verbose, G_LOG_LEVEL_DEBUG, "total_height = %i", total_height);
|
|
}
|
|
}
|
|
|
|
if (showcontrols) {
|
|
gmtk_get_allocation(controls_box, &alloc);
|
|
+ gm_log(verbose, G_LOG_LEVEL_DEBUG, "controls height = %i", alloc.height);
|
|
total_height += alloc.height;
|
|
+ gm_log(verbose, G_LOG_LEVEL_DEBUG, "total_height = %i", total_height);
|
|
}
|
|
gm_log(verbose, G_LOG_LEVEL_DEBUG, "total = %i x %i video = %s", total_width, total_height,
|
|
gm_bool_to_string(idledata->videopresent));
|
|
@@ -1182,13 +1195,20 @@ static const gchar *PLAYSTATE_to_string(const PLAYSTAT
|
|
gboolean set_gui_state(void *data)
|
|
{
|
|
gchar *tip_text = NULL;
|
|
+#ifdef GTK3_ENABLED
|
|
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
|
|
+#endif
|
|
|
|
gm_log(verbose, G_LOG_LEVEL_MESSAGE, "setting gui state to %s", PLAYSTATE_to_string(guistate));
|
|
|
|
if (lastguistate != guistate) {
|
|
if (guistate == PLAYING) {
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-pause-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-pause-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-pause-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PAUSE, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PAUSE, button_size);
|
|
#endif
|
|
@@ -1214,7 +1234,11 @@ gboolean set_gui_state(void *data)
|
|
|
|
if (guistate == PAUSED) {
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
#endif
|
|
@@ -1239,7 +1263,11 @@ gboolean set_gui_state(void *data)
|
|
|
|
if (guistate == STOPPED) {
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
#endif
|
|
@@ -1352,7 +1380,12 @@ void create_folder_progress_window()
|
|
gtk_window_set_resizable(GTK_WINDOW(folder_progress_window), FALSE);
|
|
gtk_widget_set_size_request(folder_progress_window, 400, -1);
|
|
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(vbox), FALSE);
|
|
+#else
|
|
vbox = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
folder_progress_bar = gtk_progress_bar_new();
|
|
gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(folder_progress_bar), 0.10);
|
|
folder_progress_label = gtk_label_new("");
|
|
@@ -1360,7 +1393,11 @@ void create_folder_progress_window()
|
|
|
|
cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
|
|
g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(cancel_clicked), NULL);
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ hbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
|
|
+#else
|
|
hbox = gtk_hbutton_box_new();
|
|
+#endif
|
|
gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END);
|
|
gtk_container_add(GTK_CONTAINER(hbox), cancel);
|
|
|
|
@@ -1445,13 +1482,17 @@ gboolean resize_window(void *data)
|
|
IdleData *idle = (IdleData *) data;
|
|
GTimeVal currenttime;
|
|
GValue resize_value = { 0 };
|
|
+ GValue shrink_value = { 0 };
|
|
|
|
g_value_init(&resize_value, G_TYPE_BOOLEAN);
|
|
+ g_value_init(&shrink_value, G_TYPE_BOOLEAN);
|
|
|
|
if (GTK_IS_WIDGET(window)) {
|
|
if (idle->videopresent) {
|
|
g_value_set_boolean(&resize_value, TRUE);
|
|
+ g_value_set_boolean(&shrink_value, TRUE);
|
|
gtk_container_child_set_property(GTK_CONTAINER(pane), vbox, "resize", &resize_value);
|
|
+ gtk_container_child_set_property(GTK_CONTAINER(pane), vbox, "shrink", &shrink_value);
|
|
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem_view_info), FALSE);
|
|
g_get_current_time(¤ttime);
|
|
last_movement_time = currenttime.tv_sec;
|
|
@@ -1508,7 +1549,9 @@ gboolean resize_window(void *data)
|
|
// audio only file
|
|
|
|
g_value_set_boolean(&resize_value, FALSE);
|
|
+ g_value_set_boolean(&shrink_value, FALSE);
|
|
gtk_container_child_set_property(GTK_CONTAINER(pane), vbox, "resize", &resize_value);
|
|
+ gtk_container_child_set_property(GTK_CONTAINER(pane), vbox, "shrink", &shrink_value);
|
|
non_fs_height = 0;
|
|
non_fs_width = 0;
|
|
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem_view_fullscreen), FALSE);
|
|
@@ -1633,6 +1676,18 @@ gboolean set_software_volume(gdouble * data)
|
|
return FALSE;
|
|
}
|
|
|
|
+gboolean hookup_volume(void *data)
|
|
+{
|
|
+ if (gm_audio_update_device(&audio_device)) {
|
|
+ if (softvol || audio_device.type == AUDIO_TYPE_SOFTVOL) {
|
|
+ gm_audio_set_server_volume_update_callback(&audio_device, NULL);
|
|
+ } else {
|
|
+ gm_audio_set_server_volume_update_callback(&audio_device, set_volume);
|
|
+ }
|
|
+ }
|
|
+ return FALSE;
|
|
+}
|
|
+
|
|
gboolean set_volume(void *data)
|
|
{
|
|
IdleData *idle = (IdleData *) data;
|
|
@@ -2577,6 +2632,9 @@ gboolean play_callback(GtkWidget * widget, GdkEventExp
|
|
gboolean stop_callback(GtkWidget * widget, GdkEventExpose * event, void *data)
|
|
{
|
|
IdleData *idle = (IdleData *) data;
|
|
+#ifdef GTK3_ENABLED
|
|
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
|
|
+#endif
|
|
|
|
if (gmtk_media_player_get_media_state(GMTK_MEDIA_PLAYER(media)) == MEDIA_STATE_PLAY ||
|
|
gmtk_media_player_get_media_state(GMTK_MEDIA_PLAYER(media)) == MEDIA_STATE_PAUSE) {
|
|
@@ -2585,7 +2643,11 @@ gboolean stop_callback(GtkWidget * widget, GdkEventExp
|
|
gmtk_media_tracker_set_percentage(tracker, 0.0);
|
|
gtk_widget_set_sensitive(play_event_box, TRUE);
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
#endif
|
|
@@ -2599,7 +2661,11 @@ gboolean stop_callback(GtkWidget * widget, GdkEventExp
|
|
if (gmtk_media_player_get_media_state(GMTK_MEDIA_PLAYER(media)) == MEDIA_STATE_QUIT) {
|
|
gmtk_media_tracker_set_percentage(tracker, 0.0);
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
#endif
|
|
@@ -2672,6 +2738,9 @@ gboolean prev_callback(GtkWidget * widget, GdkEventExp
|
|
GtkTreePath *path;
|
|
GtkTreeIter previter;
|
|
GtkTreeIter localiter;
|
|
+#ifdef GTK3_ENABLED
|
|
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
|
|
+#endif
|
|
|
|
if (gtk_list_store_iter_is_valid(playliststore, &iter)) {
|
|
if (gmtk_media_player_get_attribute_boolean(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_HAS_CHAPTERS)) {
|
|
@@ -2706,7 +2775,11 @@ gboolean prev_callback(GtkWidget * widget, GdkEventExp
|
|
autopause = FALSE;
|
|
gtk_widget_set_sensitive(play_event_box, TRUE);
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
#endif
|
|
@@ -2733,6 +2806,9 @@ gboolean next_callback(GtkWidget * widget, GdkEventExp
|
|
{
|
|
gboolean valid = FALSE;
|
|
GtkTreePath *path;
|
|
+#ifdef GTK3_ENABLED
|
|
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
|
|
+#endif
|
|
|
|
if (gtk_list_store_iter_is_valid(playliststore, &iter)) {
|
|
if (gmtk_media_player_get_attribute_boolean(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_HAS_CHAPTERS)) {
|
|
@@ -2756,7 +2832,11 @@ gboolean next_callback(GtkWidget * widget, GdkEventExp
|
|
autopause = FALSE;
|
|
gtk_widget_set_sensitive(play_event_box, TRUE);
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
#endif
|
|
@@ -3086,16 +3166,31 @@ void menuitem_open_location_callback(GtkMenuItem * men
|
|
|
|
gtk_window_set_resizable(GTK_WINDOW(open_window), FALSE);
|
|
gtk_window_set_title(GTK_WINDOW(open_window), _("Open Location"));
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(vbox), FALSE);
|
|
+#else
|
|
vbox = gtk_vbox_new(FALSE, 6);
|
|
+#endif
|
|
label = gtk_label_new(_("Location:"));
|
|
open_location = gtk_entry_new();
|
|
gtk_entry_set_width_chars(GTK_ENTRY(open_location), 50);
|
|
gtk_entry_set_activates_default(GTK_ENTRY(open_location), TRUE);
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ item_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(item_box), FALSE);
|
|
+#else
|
|
item_box = gtk_hbox_new(FALSE, 6);
|
|
+#endif
|
|
gtk_box_pack_start(GTK_BOX(item_box), label, FALSE, FALSE, 12);
|
|
gtk_box_pack_end(GTK_BOX(item_box), open_location, TRUE, TRUE, 0);
|
|
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ button_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(button_box), FALSE);
|
|
+#else
|
|
button_box = gtk_hbox_new(FALSE, 6);
|
|
+#endif
|
|
cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
|
|
open_button = gtk_button_new_from_stock(GTK_STOCK_OPEN);
|
|
#ifdef GTK2_22_ENABLED
|
|
@@ -4145,11 +4240,15 @@ void config_apply(GtkWidget * widget, void *data)
|
|
audio_device.description = g_strdup(audio_device_name);
|
|
gm_audio_update_device(&audio_device);
|
|
gm_audio_get_volume(&audio_device);
|
|
- gm_audio_set_server_volume_update_callback(&audio_device, set_volume);
|
|
+ if (softvol || audio_device.type == AUDIO_TYPE_SOFTVOL) {
|
|
+ gm_audio_set_server_volume_update_callback(&audio_device, NULL);
|
|
+ gmtk_media_player_set_attribute_boolean(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_SOFTVOL, TRUE);
|
|
+ } else {
|
|
+ gm_audio_set_server_volume_update_callback(&audio_device, set_volume);
|
|
+ gmtk_media_player_set_attribute_boolean(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_SOFTVOL, FALSE);
|
|
+ }
|
|
|
|
gmtk_media_player_set_attribute_string(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_AO, audio_device.mplayer_ao);
|
|
- gmtk_media_player_set_attribute_boolean(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_SOFTVOL,
|
|
- audio_device.type == AUDIO_TYPE_SOFTVOL);
|
|
|
|
#ifdef HAVE_ASOUNDLIB
|
|
if (audio_device.alsa_mixer != NULL) {
|
|
@@ -4625,7 +4724,12 @@ void menuitem_advanced_callback(GtkMenuItem * menuitem
|
|
gtk_window_set_resizable(GTK_WINDOW(adv_window), FALSE);
|
|
gtk_window_set_title(GTK_WINDOW(adv_window), _("Video Picture Adjustments"));
|
|
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ adv_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(adv_vbox), FALSE);
|
|
+#else
|
|
adv_vbox = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
adv_hbutton_box = gtk_hbutton_box_new();
|
|
gtk_button_box_set_layout(GTK_BUTTON_BOX(adv_hbutton_box), GTK_BUTTONBOX_END);
|
|
adv_table = gtk_table_new(20, 2, FALSE);
|
|
@@ -5110,14 +5214,54 @@ void menuitem_config_callback(GtkMenuItem * menuitem,
|
|
gtk_window_set_icon(GTK_WINDOW(config_window), pb_icon);
|
|
|
|
gtk_window_set_resizable(GTK_WINDOW(config_window), FALSE);
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ conf_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(conf_vbox), FALSE);
|
|
+#else
|
|
conf_vbox = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ conf_page1 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(conf_page1), FALSE);
|
|
+#else
|
|
conf_page1 = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ conf_page2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(conf_page2), FALSE);
|
|
+#else
|
|
conf_page2 = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ conf_page3 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(conf_page3), FALSE);
|
|
+#else
|
|
conf_page3 = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ conf_page4 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(conf_page4), FALSE);
|
|
+#else
|
|
conf_page4 = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ conf_page5 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(conf_page5), FALSE);
|
|
+#else
|
|
conf_page5 = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ conf_page6 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(conf_page6), FALSE);
|
|
+#else
|
|
conf_page6 = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ conf_page7 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(conf_page7), FALSE);
|
|
+#else
|
|
conf_page7 = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
conf_hbutton_box = gtk_hbutton_box_new();
|
|
gtk_button_box_set_layout(GTK_BUTTON_BOX(conf_hbutton_box), GTK_BUTTONBOX_END);
|
|
conf_table = gtk_table_new(20, 2, FALSE);
|
|
@@ -6498,6 +6642,11 @@ void player_attribute_changed_callback(GmtkMediaTracke
|
|
gtk_widget_set_sensitive(GTK_WIDGET(menuitem_view_angle), idledata->videopresent);
|
|
gtk_widget_set_sensitive(GTK_WIDGET(menuitem_view_advanced), idledata->videopresent);
|
|
gtk_widget_set_sensitive(GTK_WIDGET(menuitem_view_details), TRUE);
|
|
+ if (resize_on_new_media || idledata->videopresent == FALSE) {
|
|
+ if (idledata->width > 0 && idledata->height > 0)
|
|
+ idledata->videopresent = TRUE;
|
|
+ g_idle_add(resize_window, idledata);
|
|
+ }
|
|
break;
|
|
case ATTRIBUTE_AUDIO_TRACK:
|
|
name = gmtk_media_player_get_attribute_string(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_AUDIO_TRACK);
|
|
@@ -6547,9 +6696,11 @@ void player_attribute_changed_callback(GmtkMediaTracke
|
|
|
|
break;
|
|
case ATTRIBUTE_SUB_VISIBLE:
|
|
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem_view_subtitles),
|
|
- gmtk_media_player_get_attribute_boolean(GMTK_MEDIA_PLAYER(media),
|
|
- ATTRIBUTE_SUB_VISIBLE));
|
|
+ if (showsubtitles) {
|
|
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem_view_subtitles),
|
|
+ gmtk_media_player_get_attribute_boolean(GMTK_MEDIA_PLAYER(media),
|
|
+ ATTRIBUTE_SUB_VISIBLE));
|
|
+ }
|
|
break;
|
|
case ATTRIBUTE_HAS_CHAPTERS:
|
|
if (gmtk_media_player_get_attribute_boolean(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_HAS_CHAPTERS)
|
|
@@ -6718,6 +6869,9 @@ void player_media_state_changed_callback(GtkButton * b
|
|
gchar *tip_text = NULL;
|
|
#endif
|
|
gchar *short_filename = NULL;
|
|
+#ifdef GTK3_ENABLED
|
|
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
|
|
+#endif
|
|
|
|
gm_log(verbose, G_LOG_LEVEL_MESSAGE, "in media state change with state = %s dontplaynext = %i",
|
|
gmtk_media_state_to_string(media_state), dontplaynext);
|
|
@@ -6774,7 +6928,11 @@ void player_media_state_changed_callback(GtkButton * b
|
|
// break purposely not put here, so gui is properly updated
|
|
case MEDIA_STATE_STOP:
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
#endif
|
|
@@ -6810,7 +6968,11 @@ void player_media_state_changed_callback(GtkButton * b
|
|
if (idledata->mapped_af_export == NULL)
|
|
map_af_export_file(idledata);
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-pause-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-pause-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-pause-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PAUSE, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PAUSE, button_size);
|
|
#endif
|
|
@@ -6837,6 +6999,7 @@ void player_media_state_changed_callback(GtkButton * b
|
|
if (idledata->videopresent)
|
|
dbus_disable_screensaver();
|
|
gmtk_media_tracker_set_text(GMTK_MEDIA_TRACKER(tracker), _("Playing"));
|
|
+ gmtk_media_player_set_attribute_boolean(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_SUB_VISIBLE, showsubtitles);
|
|
dbus_send_event("MediaPlaying", 0);
|
|
g_idle_add(set_media_label, idledata);
|
|
if (gmtk_media_player_get_attribute_string(GMTK_MEDIA_PLAYER(media), ATTRIBUTE_TITLE) != NULL) {
|
|
@@ -6855,7 +7018,11 @@ void player_media_state_changed_callback(GtkButton * b
|
|
break;
|
|
case MEDIA_STATE_PAUSE:
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_play), "media-playback-start-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_play), GTK_STOCK_MEDIA_PLAY, button_size);
|
|
#endif
|
|
@@ -7301,10 +7468,12 @@ GtkWidget *create_window(gint windowid)
|
|
gtk_widget_show(GTK_WIDGET(menuitem_copyurl));
|
|
menuitem_sep2 = GTK_MENU_ITEM(gtk_separator_menu_item_new());
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(popup_menu), GTK_WIDGET(menuitem_sep2));
|
|
- gtk_widget_show(GTK_WIDGET(menuitem_sep2));
|
|
+ if (control_id != 0)
|
|
+ gtk_widget_show(GTK_WIDGET(menuitem_sep2));
|
|
menuitem_config = GTK_MENU_ITEM(gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES, NULL));
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(popup_menu), GTK_WIDGET(menuitem_config));
|
|
- gtk_widget_show(GTK_WIDGET(menuitem_config));
|
|
+ if (control_id != 0)
|
|
+ gtk_widget_show(GTK_WIDGET(menuitem_config));
|
|
menuitem_sep4 = GTK_MENU_ITEM(gtk_separator_menu_item_new());
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(popup_menu), GTK_WIDGET(menuitem_sep4));
|
|
menuitem_save = GTK_MENU_ITEM(gtk_image_menu_item_new_from_stock(GTK_STOCK_SAVE, accel_group));
|
|
@@ -7319,10 +7488,13 @@ GtkWidget *create_window(gint windowid)
|
|
|
|
menuitem_sep3 = GTK_MENU_ITEM(gtk_separator_menu_item_new());
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(popup_menu), GTK_WIDGET(menuitem_sep3));
|
|
- gtk_widget_show(GTK_WIDGET(menuitem_sep3));
|
|
+ if (control_id != 0)
|
|
+ gtk_widget_show(GTK_WIDGET(menuitem_sep3));
|
|
menuitem_quit = GTK_MENU_ITEM(gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accel_group));
|
|
gtk_menu_shell_append(GTK_MENU_SHELL(popup_menu), GTK_WIDGET(menuitem_quit));
|
|
- gtk_widget_show(GTK_WIDGET(menuitem_quit));
|
|
+ if (control_id != 0)
|
|
+ gtk_widget_show(GTK_WIDGET(menuitem_quit));
|
|
+
|
|
g_signal_connect(G_OBJECT(menuitem_open), "activate", G_CALLBACK(menuitem_open_callback), NULL);
|
|
g_signal_connect(G_OBJECT(menuitem_play), "activate", G_CALLBACK(menuitem_pause_callback), NULL);
|
|
g_signal_connect(G_OBJECT(menuitem_stop), "activate", G_CALLBACK(menuitem_stop_callback), NULL);
|
|
@@ -7664,9 +7836,24 @@ GtkWidget *create_window(gint windowid)
|
|
gtk_drag_dest_add_uri_targets(window);
|
|
//Connect the signal for DnD
|
|
g_signal_connect(G_OBJECT(window), "drag_data_received", G_CALLBACK(drop_callback), NULL);
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(vbox), FALSE);
|
|
+#else
|
|
vbox = gtk_vbox_new(FALSE, 0);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(hbox), FALSE);
|
|
+#else
|
|
hbox = gtk_hbox_new(FALSE, 0);
|
|
+#endif
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ controls_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(controls_box), FALSE);
|
|
+#else
|
|
controls_box = gtk_vbox_new(FALSE, 0);
|
|
+#endif
|
|
media = gmtk_media_player_new();
|
|
g_signal_connect_swapped(G_OBJECT(media), "media_state_changed",
|
|
G_CALLBACK(player_media_state_changed_callback), NULL);
|
|
@@ -7682,10 +7869,20 @@ GtkWidget *create_window(gint windowid)
|
|
media_label = gtk_label_new("");
|
|
gtk_widget_set_size_request(media_label, 300, 100);
|
|
gtk_label_set_ellipsize(GTK_LABEL(media_label), PANGO_ELLIPSIZE_END);
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ media_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(media_hbox), FALSE);
|
|
+#else
|
|
media_hbox = gtk_hbox_new(FALSE, 10);
|
|
+#endif
|
|
g_signal_connect(media_hbox, "show", G_CALLBACK(view_option_show_callback), NULL);
|
|
g_signal_connect(media_hbox, "size_allocate", G_CALLBACK(view_option_size_allocate_callback), NULL);
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ details_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(details_vbox), FALSE);
|
|
+#else
|
|
details_vbox = gtk_vbox_new(FALSE, 10);
|
|
+#endif
|
|
details_table = gtk_table_new(20, 2, FALSE);
|
|
g_signal_connect(details_vbox, "show", G_CALLBACK(view_option_show_callback), NULL);
|
|
g_signal_connect(details_vbox, "size_allocate", G_CALLBACK(view_option_size_allocate_callback), NULL);
|
|
@@ -7717,7 +7914,12 @@ GtkWidget *create_window(gint windowid)
|
|
g_signal_connect(plvbox, "size_allocate", G_CALLBACK(view_option_size_allocate_callback), NULL);
|
|
//if (remember_loc)
|
|
// gtk_paned_set_position(GTK_PANED(pane),loc_panel_position);
|
|
+#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION >= 2
|
|
+ vbox_master = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
|
+ gtk_box_set_homogeneous(GTK_BOX(vbox_master), FALSE);
|
|
+#else
|
|
vbox_master = gtk_vbox_new(FALSE, 0);
|
|
+#endif
|
|
if (windowid == 0)
|
|
gtk_box_pack_start(GTK_BOX(vbox_master), menubar, FALSE, FALSE, 0);
|
|
gtk_widget_show(menubar);
|
|
@@ -7726,15 +7928,33 @@ GtkWidget *create_window(gint windowid)
|
|
gtk_container_add(GTK_CONTAINER(window), vbox_master);
|
|
icon_theme = gtk_icon_theme_get_default();
|
|
#ifdef GTK3_ENABLED
|
|
- image_play = gtk_image_new_from_icon_name("media-playback-start-symbolic", button_size);
|
|
- image_stop = gtk_image_new_from_icon_name("media-playback-stop-symbolic", button_size);
|
|
- image_pause = gtk_image_new_from_icon_name("media-playback-pause-symbolic", button_size);
|
|
- image_ff = gtk_image_new_from_icon_name("media-seek-forward-symbolic", button_size);
|
|
- image_rew = gtk_image_new_from_icon_name("media-seek-backward-symbolic", button_size);
|
|
- image_prev = gtk_image_new_from_icon_name("media-skip-backward-symbolic", button_size);
|
|
- image_next = gtk_image_new_from_icon_name("media-skip-forward-symbolic", button_size);
|
|
- image_menu = gtk_image_new_from_icon_name("view-sidebar-symbolic", button_size);
|
|
- image_fs = gtk_image_new_from_icon_name("view-fullscreen-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "media-playback-start-symbolic") &&
|
|
+ gtk_icon_theme_has_icon(icon_theme, "media-playback-stop-symbolic") &&
|
|
+ gtk_icon_theme_has_icon(icon_theme, "media-playback-pause-symbolic") &&
|
|
+ gtk_icon_theme_has_icon(icon_theme, "media-seek-forward-symbolic") &&
|
|
+ gtk_icon_theme_has_icon(icon_theme, "media-seek-backward-symbolic") &&
|
|
+ gtk_icon_theme_has_icon(icon_theme, "view-sidebar-symbolic") &&
|
|
+ gtk_icon_theme_has_icon(icon_theme, "view-fullscreen-symbolic")) {
|
|
+ image_play = gtk_image_new_from_icon_name("media-playback-start-symbolic", button_size);
|
|
+ image_stop = gtk_image_new_from_icon_name("media-playback-stop-symbolic", button_size);
|
|
+ image_pause = gtk_image_new_from_icon_name("media-playback-pause-symbolic", button_size);
|
|
+ image_ff = gtk_image_new_from_icon_name("media-seek-forward-symbolic", button_size);
|
|
+ image_rew = gtk_image_new_from_icon_name("media-seek-backward-symbolic", button_size);
|
|
+ image_prev = gtk_image_new_from_icon_name("media-skip-backward-symbolic", button_size);
|
|
+ image_next = gtk_image_new_from_icon_name("media-skip-forward-symbolic", button_size);
|
|
+ image_menu = gtk_image_new_from_icon_name("view-sidebar-symbolic", button_size);
|
|
+ image_fs = gtk_image_new_from_icon_name("view-fullscreen-symbolic", button_size);
|
|
+ } else {
|
|
+ image_play = gtk_image_new_from_stock(GTK_STOCK_MEDIA_PLAY, button_size);
|
|
+ image_stop = gtk_image_new_from_stock(GTK_STOCK_MEDIA_STOP, button_size);
|
|
+ image_pause = gtk_image_new_from_stock(GTK_STOCK_MEDIA_PAUSE, button_size);
|
|
+ image_ff = gtk_image_new_from_stock(GTK_STOCK_MEDIA_FORWARD, button_size);
|
|
+ image_rew = gtk_image_new_from_stock(GTK_STOCK_MEDIA_REWIND, button_size);
|
|
+ image_prev = gtk_image_new_from_stock(GTK_STOCK_MEDIA_PREVIOUS, button_size);
|
|
+ image_next = gtk_image_new_from_stock(GTK_STOCK_MEDIA_NEXT, button_size);
|
|
+ image_menu = gtk_image_new_from_stock(GTK_STOCK_INDEX, button_size);
|
|
+ image_fs = gtk_image_new_from_stock(GTK_STOCK_FULLSCREEN, button_size);
|
|
+ }
|
|
#else
|
|
image_play = gtk_image_new_from_stock(GTK_STOCK_MEDIA_PLAY, button_size);
|
|
image_stop = gtk_image_new_from_stock(GTK_STOCK_MEDIA_STOP, button_size);
|
|
@@ -8390,6 +8610,10 @@ void show_fs_controls()
|
|
GdkScreen *screen;
|
|
GdkRectangle rect;
|
|
GtkAllocation alloc;
|
|
+#ifdef GTK3_ENABLED
|
|
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
|
|
+#endif
|
|
+
|
|
if (fs_controls == NULL && fullscreen) {
|
|
fs_controls = gtk_window_new(GTK_WINDOW_POPUP);
|
|
gtk_widget_add_events(fs_controls, GDK_ENTER_NOTIFY_MASK);
|
|
@@ -8398,7 +8622,11 @@ void show_fs_controls()
|
|
g_signal_connect(G_OBJECT(fs_controls), "leave_notify_event", G_CALLBACK(fs_controls_left), NULL);
|
|
g_object_ref(hbox);
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_fs), "view-restore-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "view-restore-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_fs), "view-restore-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_fs), GTK_STOCK_LEAVE_FULLSCREEN, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_fs), GTK_STOCK_LEAVE_FULLSCREEN, button_size);
|
|
#endif
|
|
@@ -8428,11 +8656,18 @@ void show_fs_controls()
|
|
|
|
void hide_fs_controls()
|
|
{
|
|
+#ifdef GTK3_ENABLED
|
|
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
|
|
+#endif
|
|
|
|
if (fs_controls != NULL) {
|
|
g_object_ref(hbox);
|
|
#ifdef GTK3_ENABLED
|
|
- gtk_image_set_from_icon_name(GTK_IMAGE(image_fs), "view-fullscreen-symbolic", button_size);
|
|
+ if (gtk_icon_theme_has_icon(icon_theme, "view-fullscreen-symbolic")) {
|
|
+ gtk_image_set_from_icon_name(GTK_IMAGE(image_fs), "view-fullscreen-symbolic", button_size);
|
|
+ } else {
|
|
+ gtk_image_set_from_stock(GTK_IMAGE(image_fs), GTK_STOCK_FULLSCREEN, button_size);
|
|
+ }
|
|
#else
|
|
gtk_image_set_from_stock(GTK_IMAGE(image_fs), GTK_STOCK_FULLSCREEN, button_size);
|
|
#endif
|