538
571
gtk_window_set_title (GTK_WINDOW (player->priv->window), "Parole Media Player");
539
572
player->priv->audio_list = NULL;
540
573
player->priv->subtitle_list = NULL;
575
gtk_widget_hide(GTK_WIDGET(player->priv->infobar));
576
parole_player_change_range_value (player, 0);
578
if ( player->priv->row )
580
parole_media_list_set_row_pixbuf (player->priv->list, player->priv->row, NULL);
581
gtk_tree_row_reference_free (player->priv->row);
582
player->priv->row = NULL;
585
if (player->priv->current_media_type == PAROLE_MEDIA_TYPE_DVD)
587
TRACE("CLEAR DVD LIST");
588
parole_media_list_clear_disc_list (player->priv->list);
589
TRACE("END CLEAR DVD LIST");
541
591
player->priv->current_media_type = PAROLE_MEDIA_TYPE_UNKNOWN;
542
gtk_widget_hide(GTK_WIDGET(player->priv->infobar));
543
parole_player_change_range_value (player, 0);
593
parole_media_list_set_playlist_view(player->priv->list, PAROLE_MEDIA_LIST_PLAYLIST_VIEW_STANDARD);
598
parole_player_dvd_reset (ParolePlayer *player)
545
600
if ( player->priv->row )
547
602
parole_media_list_set_row_pixbuf (player->priv->list, player->priv->row, NULL);
792
849
parole_player_update_audio_tracks(player, gst);
793
850
parole_player_update_subtitles(player, gst);
852
/* Enable custom subtitles for video as long as its not a DVD. */
853
gtk_widget_set_sensitive(player->priv->subtitles_menu_custom,
854
player->priv->current_media_type != PAROLE_MEDIA_TYPE_DVD);
857
gtk_widget_set_sensitive(player->priv->subtitles_menu_custom, FALSE);
795
858
player->priv->update_languages = FALSE;
863
parole_player_show_audiobox (ParolePlayer *player)
865
/* Only show the audiobox if we're sure there's no video playing and
866
visualizations are disabled. */
867
if (!gst_get_has_video ( PAROLE_GST(player->priv->gst) ) &&
868
!gst_get_has_vis ( PAROLE_GST(player->priv->gst) ) )
870
gtk_widget_show(player->priv->audiobox);
871
gtk_widget_hide_all(player->priv->eventbox_output);
875
gtk_widget_hide(player->priv->audiobox);
876
gtk_widget_show_all(player->priv->eventbox_output);
881
* parole_player_select_custom_subtitle:
882
* @widget : The #GtkMenuItem for selecting a custom subtitle file.
883
* @data : The #ParolePlayer instance passed by the callback function.
885
* Display the #FileChooserDialog for selecting a custom subtitle file and load
886
* the subtitles selected.
889
parole_player_select_custom_subtitle (GtkMenuItem *widget, gpointer data)
891
ParolePlayer *player;
895
GtkFileFilter *filter, *all_files;
902
player = PAROLE_PLAYER(data);
904
/* Build the FileChooser dialog for subtitle selection. */
905
chooser = gtk_file_chooser_dialog_new (_("Select Subtitle File"), NULL,
906
GTK_FILE_CHOOSER_ACTION_OPEN,
907
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
908
GTK_STOCK_OPEN, GTK_RESPONSE_OK,
911
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), FALSE);
912
gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), FALSE);
914
g_object_get (G_OBJECT (player->priv->conf),
915
"media-chooser-folder", &folder,
919
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), folder);
921
/* Subtitle format filter */
922
filter = gtk_file_filter_new ();
923
gtk_file_filter_set_name (filter, _("Subtitle Files"));
924
gtk_file_filter_add_pattern (filter, "*.asc");
925
gtk_file_filter_add_pattern (filter, "*.txt");
926
gtk_file_filter_add_pattern (filter, "*.sub");
927
gtk_file_filter_add_pattern (filter, "*.srt");
928
gtk_file_filter_add_pattern (filter, "*.smi");
929
gtk_file_filter_add_pattern (filter, "*.ssa");
930
gtk_file_filter_add_pattern (filter, "*.ass");
931
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
933
/* All files filter */
934
all_files = gtk_file_filter_new ();
935
gtk_file_filter_set_name (all_files, _("All files"));
936
gtk_file_filter_add_pattern (all_files, "*");
937
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), all_files);
939
gtk_window_set_default_size (GTK_WINDOW (chooser), 680, 480);
941
/* Run the dialog, get the selected filename. */
942
response = gtk_dialog_run (GTK_DIALOG (chooser));
943
if ( response == GTK_RESPONSE_OK )
944
sub = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
946
gtk_widget_destroy (chooser);
950
/* Get the current playing file uri. */
951
uri = parole_gst_get_file_uri(PAROLE_GST (player->priv->gst));
953
/* Reset the player. */
954
parole_player_reset(player);
956
if ( g_str_has_prefix (uri, "file:/") )
958
TRACE ("Trying to play media file %s", uri);
959
TRACE ("Trying to use subtitle file %s", sub);
960
player->priv->updated_subs = TRUE;
962
file = parole_media_list_get_selected_file( player->priv->list );
964
/* Set the subtitles in gst as well as in the media list, for later
968
parole_file_set_custom_subtitles(file, sub);
969
parole_gst_set_custom_subtitles(PAROLE_GST (player->priv->gst), sub);
970
parole_gst_play_uri (PAROLE_GST (player->priv->gst), uri, sub);
800
980
parole_player_media_activated_cb (ParoleMediaList *list, GtkTreeRowReference *row, ParolePlayer *player)
802
982
ParoleFile *file;
803
983
GtkTreeIter iter;
804
984
GtkTreeModel *model;
806
parole_player_reset (player);
808
player->priv->row = gtk_tree_row_reference_copy (row);
810
986
model = gtk_tree_row_reference_get_model (row);
812
988
if ( gtk_tree_model_get_iter (model, &iter, gtk_tree_row_reference_get_path (row)) )
994
const gchar *sub = NULL;
819
995
const gchar *uri;
996
const gchar *directory = NULL;
821
999
uri = parole_file_get_uri (file);
1000
directory = parole_file_get_directory(file);
1002
if ( g_str_has_prefix (uri, "dvd") )
1004
parole_player_dvd_reset (player);
1005
player->priv->row = gtk_tree_row_reference_copy (row);
1006
dvd_chapter = parole_file_get_dvd_chapter(file);
1007
parole_gst_set_dvd_chapter(PAROLE_GST(player->priv->gst), dvd_chapter);
1008
g_object_unref (file);
1011
parole_player_reset (player);
1012
player->priv->row = gtk_tree_row_reference_copy (row);
823
1014
if ( g_str_has_prefix (uri, "file:/") )
825
1016
if ( parole_file_filter (player->priv->video_filter, file) )
827
sub = parole_get_subtitle_path (uri);
1018
sub = parole_file_get_custom_subtitles (file);
1019
parole_gst_set_custom_subtitles(PAROLE_GST(player->priv->gst), sub);
1021
sub = parole_get_subtitle_path (uri);
830
1024
TRACE ("Trying to play media file %s", uri);
831
TRACE ("File content type %s", parole_file_get_content_type (file));
1025
TRACE ("File content type %s", parole_file_get_content_type(file));
833
1028
parole_gst_play_uri (PAROLE_GST (player->priv->gst),
834
1029
parole_file_get_uri (file),
838
1032
gtk_window_set_title (GTK_WINDOW (player->priv->window), parole_file_get_display_name(file));
839
parole_rc_write_entry_string ("media-chooser-folder", PAROLE_RC_GROUP_GENERAL, parole_file_get_directory(file));
1036
g_object_set (G_OBJECT (player->priv->conf),
1037
"media-chooser-folder", directory,
842
1041
g_object_unref (file);
850
1049
parole_player_reset (player);
851
1050
parole_gst_play_device_uri (PAROLE_GST (player->priv->gst), uri, device);
852
1051
player->priv->current_media_type = parole_gst_get_current_stream_type (PAROLE_GST (player->priv->gst));
1053
if ( player->priv->current_media_type == PAROLE_MEDIA_TYPE_CDDA )
1055
player->priv->wait_for_gst_disc_info = TRUE;
1056
if ( player->priv->row )
1058
parole_media_list_set_row_pixbuf (player->priv->list, player->priv->row, NULL);
1059
gtk_tree_row_reference_free (player->priv->row);
1060
player->priv->row = NULL;
1062
TRACE("CLEAR PLAYLIST");
1063
parole_media_list_clear_list (player->priv->list);
1064
TRACE("END CLEAR PLAYLIST");
1066
else if ( player->priv->current_media_type == PAROLE_MEDIA_TYPE_DVD )
1067
parole_media_list_set_playlist_view(player->priv->list, PAROLE_MEDIA_LIST_PLAYLIST_VIEW_DISC);
1071
parole_player_disc_label_changed_cb (ParoleDisc *disc, const gchar *label, ParolePlayer *player)
1073
parole_media_list_add_dvd(player->priv->list, g_strdup(label));
1084
parole_player_recent_menu_clear_activated_cb (GtkWidget *widget, ParolePlayer *player)
1087
GtkWidget *clear_button;
1090
dlg = gtk_message_dialog_new (GTK_WINDOW(player->priv->window),
1091
GTK_DIALOG_DESTROY_WITH_PARENT,
1092
GTK_MESSAGE_QUESTION,
1096
gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG(dlg),
1097
g_strdup_printf("<big><b>%s</b></big>",
1098
_("Clear Recent Items")));
1099
gtk_message_dialog_format_secondary_text ( GTK_MESSAGE_DIALOG(dlg),
1100
_("Are you sure you wish to clear your recent items history? This cannot be undone."));
1102
gtk_dialog_add_button (GTK_DIALOG(dlg), GTK_STOCK_CANCEL, 0);
1103
clear_button = gtk_dialog_add_button(GTK_DIALOG(dlg),
1106
gtk_button_set_label( GTK_BUTTON(clear_button), _("Clear Recent Items") );
1108
gtk_widget_show_all(dlg);
1110
response = gtk_dialog_run(GTK_DIALOG(dlg));
1113
gtk_recent_manager_purge_items(player->priv->recent, NULL);
1115
gtk_widget_destroy(dlg);
1119
parole_player_recent_menu_item_activated_cb (GtkWidget *widget, ParolePlayer *player)
1123
gchar *filenames[1];
1124
ParoleMediaList *list;
1126
uri = gtk_recent_chooser_get_current_uri(GTK_RECENT_CHOOSER(widget));
1128
filename = g_filename_from_uri(uri, NULL, NULL);
1130
if (g_file_test (filename, G_FILE_TEST_EXISTS))
1132
gtk_recent_manager_add_item (player->priv->recent, uri);
1134
filenames[0] = g_strdup(filename);
1135
filenames[1] = NULL;
1137
list = parole_player_get_media_list (player);
1138
parole_media_list_add_files (list, filenames, FALSE);
1140
g_free(filenames[0]);
863
1148
parole_player_media_cursor_changed_cb (ParoleMediaList *list, gboolean media_selected, ParolePlayer *player)
865
1150
if (player->priv->state < PAROLE_STATE_PAUSED)
1311
1599
parole_player_play_prev (player);
1314
void parole_player_seekf_cb (GtkWidget *widget, ParolePlayer *player)
1318
seek = parole_gst_get_stream_position (PAROLE_GST (player->priv->gst) )
1320
parole_player_get_seek_value (player);
1322
parole_gst_seek (PAROLE_GST (player->priv->gst), seek);
1325
void parole_player_seekb_cb (GtkWidget *widget, ParolePlayer *player)
1329
seek = parole_gst_get_stream_position (PAROLE_GST (player->priv->gst) )
1331
parole_player_get_seek_value (player);
1333
parole_gst_seek (PAROLE_GST (player->priv->gst), seek);
1336
void parole_player_seekf_long_cb (GtkWidget *widget, ParolePlayer *player)
1340
seek = parole_gst_get_stream_position (PAROLE_GST (player->priv->gst) )
1344
parole_gst_seek (PAROLE_GST (player->priv->gst), seek);
1347
void parole_player_seekb_long_cb (GtkWidget *widget, ParolePlayer *player)
1351
seek = parole_gst_get_stream_position (PAROLE_GST (player->priv->gst) )
1602
void parole_player_seekf_cb (GtkWidget *widget, ParolePlayer *player, gdouble seek)
1604
seek = parole_gst_get_stream_position (PAROLE_GST (player->priv->gst) )
1607
parole_gst_seek (PAROLE_GST (player->priv->gst), seek);
1610
void parole_player_seekb_cb (GtkWidget *widget, ParolePlayer *player, gdouble seek)
1612
seek = parole_gst_get_stream_position (PAROLE_GST (player->priv->gst) )
1355
1615
parole_gst_seek (PAROLE_GST (player->priv->gst), seek);
1420
1680
parole_player_media_tag_cb (ParoleGst *gst, const ParoleStream *stream, ParolePlayer *player)
1686
GdkPixbuf *image = NULL, *cover = NULL;
1424
1688
if ( player->priv->row )
1426
1690
g_object_get (G_OBJECT (stream),
1427
1691
"title", &title,
1431
1699
parole_media_list_set_row_name (player->priv->list, player->priv->row, title);
1700
gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_title), g_markup_printf_escaped("<span color='#F4F4F4'><b><big>%s</big></b></span>", title));
1432
1701
g_free (title);
1704
gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_title), g_strdup_printf("<span color='#F4F4F4'><b><big>%s</big></b></span>", _("Unknown Song")));
1709
gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_album), g_markup_printf_escaped("<big><span color='#BBBBBB'><i>%s</i></span> <span color='#F4F4F4'>%s (%s)</span></big>", _("on"), album, year));
1711
gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_album), g_markup_printf_escaped("<big><span color='#BBBBBB'><i>%s</i></span> <span color='#F4F4F4'>%s</span></big>", _("on"), album));
1717
gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_album), g_strdup_printf("<big><span color='#BBBBBB'><i>%s</i></span> <span color='#F4F4F4'>%s</span></big>", _("on"), _("Unknown Album")));
1724
gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_artist), g_markup_printf_escaped("<big><span color='#BBBBBB'><i>%s</i></span> <span color='#F4F4F4'>%s</span></big>", _("by"), artist));
1728
gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_artist), g_strdup_printf("<big><span color='#BBBBBB'><i>%s</i></span> <span color='#F4F4F4'>%s</span></big>", _("by"), _("Unknown Artist")));
1730
image = parole_stream_get_image(G_OBJECT(stream));
1733
cover = gdk_pixbuf_scale_simple(image, 256, 256, GDK_INTERP_BILINEAR);
1734
gtk_image_set_from_pixbuf(GTK_IMAGE(player->priv->audiobox_cover), cover);
1735
g_object_unref(cover);
1736
g_object_unref(image);
1739
gtk_image_set_from_icon_name(GTK_IMAGE(player->priv->audiobox_cover), "audio-x-generic", GTK_ICON_SIZE_ARTWORK_FALLBACK);
1774
parole_player_dvd_chapter_count_change_cb (ParoleGst *gst, gint chapter_count, ParolePlayer *player)
1776
gtk_tree_row_reference_free (player->priv->row);
1777
player->priv->row = NULL;
1779
/* FIXME Cannot clear list prior to adding new chapters. */
1780
//parole_media_list_clear_list (player->priv->list);
1782
parole_media_list_add_dvd_chapters (player->priv->list, chapter_count);
1786
parole_player_dvd_chapter_change_cb (ParoleGst *gst, gint chapter_count, ParolePlayer *player)
1788
GdkPixbuf *pix = NULL;
1790
parole_media_list_set_row_pixbuf (player->priv->list, player->priv->row, NULL);
1792
player->priv->row = parole_media_list_get_row_n (player->priv->list, chapter_count-1);
1794
pix = parole_icon_load ("player_play", 16);
1797
pix = parole_icon_load ("gtk-media-play-ltr", 16);
1799
parole_media_list_set_row_pixbuf (player->priv->list, player->priv->row, pix);
1800
parole_media_list_select_row (player->priv->list, player->priv->row);
1803
g_object_unref (pix);
1467
1806
gboolean parole_player_delete_event_cb (GtkWidget *widget, GdkEvent *ev, ParolePlayer *player)
1469
1808
parole_window_busy_cursor (GTK_WIDGET (player->priv->window)->window);
1516
1862
gboolean show_playlist;
1864
if ( player->priv->full_screen != fullscreen )
1866
/* If the player is in fullscreen mode, change to windowed mode. */
1867
if ( player->priv->full_screen )
1869
npages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (player->priv->main_nt));
1870
gtk_widget_reparent (player->priv->play_box, player->priv->control);
1871
gtk_box_set_child_packing( GTK_BOX(player->priv->control), GTK_WIDGET(player->priv->play_box), TRUE, TRUE, 2, GTK_PACK_START );
1872
gtk_widget_hide (player->priv->fs_window);
1873
gtk_widget_show (player->priv->play_box);
1874
gtk_widget_show (player->priv->menu_bar);
1875
show_playlist = gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM(player->priv->show_hide_playlist) );
1876
gtk_widget_show (player->priv->playlist_nt);
1877
parole_player_set_playlist_visible(player, show_playlist);
1878
gtk_widget_show (player->priv->go_fs);
1879
gtk_widget_hide (player->priv->leave_fs);
1880
gtk_widget_show (player->priv->show_hide_playlist_button);
1882
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (player->priv->main_nt), npages > 1);
1884
gtk_window_unfullscreen (GTK_WINDOW (player->priv->window));
1885
gtk_notebook_set_current_page (GTK_NOTEBOOK (player->priv->playlist_nt), current_page);
1886
gdkwindow = gtk_widget_get_window (player->priv->window);
1887
gdk_window_set_cursor (gdkwindow, NULL);
1888
player->priv->full_screen = FALSE;
1892
parole_player_move_fs_window (player);
1893
gtk_widget_reparent (player->priv->play_box, player->priv->fs_window);
1895
gtk_widget_hide (player->priv->play_box);
1896
gtk_widget_hide (player->priv->menu_bar);
1897
gtk_widget_hide (player->priv->playlist_nt);
1898
parole_player_set_playlist_visible(player, FALSE);
1899
gtk_widget_hide (player->priv->go_fs);
1900
gtk_widget_show (player->priv->leave_fs);
1901
gtk_widget_hide (player->priv->show_hide_playlist_button);
1903
current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (player->priv->playlist_nt));
1904
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (player->priv->main_nt), FALSE);
1906
gtk_window_fullscreen (GTK_WINDOW (player->priv->window));
1907
player->priv->full_screen = TRUE;
1911
if ( player->priv->embedded )
1913
gtk_widget_hide (player->priv->menu_bar);
1914
gtk_widget_hide (player->priv->playlist_nt);
1915
gtk_widget_hide (player->priv->go_fs);
1916
gtk_widget_hide (player->priv->show_hide_playlist);
1917
gtk_widget_hide (player->priv->show_hide_playlist_button);
1922
parole_player_embedded (ParolePlayer *player)
1924
if ( player->priv->embedded == TRUE )
1927
player->priv->embedded = TRUE;
1929
parole_player_reset_controls(player, player->priv->full_screen);
1933
parole_player_full_screen (ParolePlayer *player, gboolean fullscreen)
1518
1935
if ( player->priv->full_screen == fullscreen )
1521
if ( player->priv->full_screen )
1523
npages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (player->priv->main_nt));
1524
gtk_widget_reparent (player->priv->play_box, player->priv->control);
1525
gtk_box_set_child_packing( GTK_BOX(player->priv->control), GTK_WIDGET(player->priv->play_box), TRUE, TRUE, 2, GTK_PACK_START );
1526
gtk_widget_hide (player->priv->fs_window);
1527
gtk_widget_show (player->priv->play_box);
1528
gtk_widget_show (player->priv->menu_bar);
1529
show_playlist = gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM(player->priv->show_hide_playlist) );
1530
gtk_widget_show (player->priv->playlist_nt);
1531
parole_player_set_playlist_visible(player, show_playlist);
1532
gtk_widget_show (player->priv->go_fs);
1533
gtk_widget_hide (player->priv->leave_fs);
1534
gtk_widget_show (player->priv->show_hide_playlist_button);
1536
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (player->priv->main_nt), npages > 1);
1538
gtk_window_unfullscreen (GTK_WINDOW (player->priv->window));
1539
gtk_notebook_set_current_page (GTK_NOTEBOOK (player->priv->playlist_nt), current_page);
1540
gdkwindow = gtk_widget_get_window (player->priv->window);
1541
gdk_window_set_cursor (gdkwindow, NULL);
1542
player->priv->full_screen = FALSE;
1546
parole_player_move_fs_window (player);
1547
gtk_widget_reparent (player->priv->play_box, player->priv->fs_window);
1549
gtk_widget_hide (player->priv->play_box);
1550
gtk_widget_hide (player->priv->menu_bar);
1551
gtk_widget_hide (player->priv->playlist_nt);
1552
parole_player_set_playlist_visible(player, FALSE);
1553
gtk_widget_hide (player->priv->go_fs);
1554
gtk_widget_show (player->priv->leave_fs);
1555
gtk_widget_hide (player->priv->show_hide_playlist_button);
1557
current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (player->priv->playlist_nt));
1558
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (player->priv->main_nt), FALSE);
1560
gtk_window_fullscreen (GTK_WINDOW (player->priv->window));
1561
player->priv->full_screen = TRUE;
1938
parole_player_reset_controls(player, fullscreen);
2041
2423
case GDK_Right:
2042
2424
/* Media seekable ?*/
2043
2425
if ( GTK_WIDGET_SENSITIVE (player->priv->range) )
2044
parole_player_seekf_cb (NULL, player);
2427
if (ev->state & GDK_CONTROL_MASK) parole_player_seekf_cb (NULL, player, seek_medium);
2428
else parole_player_seekf_cb (NULL, player, seek_short);
2045
2430
ret_val = TRUE;
2048
2433
if ( GTK_WIDGET_SENSITIVE (player->priv->range) )
2049
parole_player_seekb_cb (NULL, player);
2435
if (ev->state & GDK_CONTROL_MASK) parole_player_seekb_cb (NULL, player, seek_medium);
2436
else parole_player_seekb_cb (NULL, player, seek_short);
2050
2438
ret_val = TRUE;
2052
2440
case GDK_Page_Down:
2053
2441
if ( GTK_WIDGET_SENSITIVE (player->priv->range) )
2054
parole_player_seekb_long_cb (NULL, player);
2442
parole_player_seekb_cb (NULL, player, seek_long);
2055
2443
ret_val = TRUE;
2057
2445
case GDK_Page_Up:
2058
2446
if ( GTK_WIDGET_SENSITIVE (player->priv->range) )
2059
parole_player_seekf_long_cb (NULL, player);
2447
parole_player_seekf_cb (NULL, player, seek_long);
2060
2448
ret_val = TRUE;
2591
parole_audiobox_expose_event (GtkWidget *w, GdkEventExpose *ev, ParolePlayer *player)
2593
gboolean homogeneous = w->allocation.width > 536;
2595
if ( gtk_box_get_homogeneous( GTK_BOX(w) ) == homogeneous )
2598
gtk_box_set_homogeneous( GTK_BOX(w), homogeneous );
2601
g_object_set( player->priv->audiobox_cover, "xalign", 1.0, NULL);
2602
gtk_box_set_child_packing (GTK_BOX(w),
2603
player->priv->audiobox_cover,
2611
g_object_set( player->priv->audiobox_cover, "xalign", 0.0, NULL);
2612
gtk_box_set_child_packing (GTK_BOX(w),
2613
player->priv->audiobox_cover,
2202
2624
parole_player_configure_event_cb (GtkWidget *widget, GdkEventConfigure *ev, ParolePlayer *player)
2414
2856
player->priv->window = GTK_WIDGET (gtk_builder_get_object (builder, "main-window"));
2858
recent_menu = GTK_WIDGET (gtk_builder_get_object (builder, "recent_menu"));
2860
player->priv->recent_menu = gtk_recent_chooser_menu_new_for_manager (player->priv->recent);
2861
gtk_recent_chooser_menu_set_show_numbers (GTK_RECENT_CHOOSER_MENU(player->priv->recent_menu), TRUE);
2862
gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER(player->priv->recent_menu), GTK_RECENT_SORT_MRU);
2863
gtk_recent_chooser_set_show_private (GTK_RECENT_CHOOSER(player->priv->recent_menu), FALSE);
2864
gtk_recent_chooser_set_show_not_found (GTK_RECENT_CHOOSER(player->priv->recent_menu), FALSE);
2865
gtk_recent_chooser_set_local_only (GTK_RECENT_CHOOSER(player->priv->recent_menu), TRUE);
2866
recent_filter = parole_get_supported_recent_media_filter ();
2867
gtk_recent_filter_add_application( recent_filter, "parole" );
2868
gtk_recent_chooser_set_filter( GTK_RECENT_CHOOSER(player->priv->recent_menu), recent_filter);
2870
recent_separator = gtk_separator_menu_item_new();
2871
clear_recent = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLEAR, NULL);
2872
gtk_menu_item_set_label (GTK_MENU_ITEM(clear_recent), _("Clear recent items..."));
2874
gtk_menu_shell_append(GTK_MENU_SHELL(player->priv->recent_menu), recent_separator);
2875
gtk_menu_shell_append(GTK_MENU_SHELL(player->priv->recent_menu), clear_recent);
2877
g_signal_connect (clear_recent, "activate",
2878
G_CALLBACK (parole_player_recent_menu_clear_activated_cb), player);
2880
gtk_menu_item_set_submenu( GTK_MENU_ITEM(recent_menu), player->priv->recent_menu );
2882
g_signal_connect (player->priv->recent_menu, "item-activated",
2883
G_CALLBACK (parole_player_recent_menu_item_activated_cb), player);
2416
2885
player->priv->subtitles_menu = GTK_WIDGET (gtk_builder_get_object (builder, "subtitles-menu"));
2417
2886
player->priv->languages_menu = GTK_WIDGET (gtk_builder_get_object (builder, "languages-menu"));
2419
2888
player->priv->subtitles_group = GTK_WIDGET (gtk_builder_get_object (builder, "subtitles-menu-none"));
2889
player->priv->subtitles_menu_custom = GTK_WIDGET (gtk_builder_get_object (builder, "subtitles-menu-custom"));
2891
g_signal_connect (player->priv->subtitles_menu_custom, "activate",
2892
G_CALLBACK (parole_player_select_custom_subtitle), player);
2420
2894
player->priv->audio_group = NULL;
2422
2896
player->priv->main_nt = GTK_WIDGET (gtk_builder_get_object (builder, "main-notebook"));
2448
2922
player->priv->go_fs = GTK_WIDGET (gtk_builder_get_object (builder, "go_fs"));
2449
2923
player->priv->leave_fs = GTK_WIDGET (gtk_builder_get_object (builder, "leave_fs"));
2450
2924
player->priv->main_box = GTK_WIDGET (gtk_builder_get_object (builder, "main-box"));
2925
player->priv->eventbox_output = GTK_WIDGET (gtk_builder_get_object (builder, "eventbox_output"));
2928
hbox_audiobox = GTK_WIDGET (gtk_builder_get_object (builder, "hbox_audiobox"));
2929
g_signal_connect(hbox_audiobox, "expose-event",
2930
G_CALLBACK(parole_audiobox_expose_event), player);
2932
gdk_color_parse("black", &background);
2933
player->priv->audiobox = GTK_WIDGET (gtk_builder_get_object (builder, "audiobox"));
2934
gtk_widget_modify_bg(GTK_WIDGET(player->priv->audiobox), GTK_STATE_NORMAL, &background);
2936
player->priv->audiobox_cover = GTK_WIDGET (gtk_builder_get_object (builder, "audiobox_cover"));
2937
player->priv->audiobox_title = GTK_WIDGET (gtk_builder_get_object (builder, "audiobox_title"));
2938
player->priv->audiobox_album = GTK_WIDGET (gtk_builder_get_object (builder, "audiobox_album"));
2939
player->priv->audiobox_artist = GTK_WIDGET (gtk_builder_get_object (builder, "audiobox_artist"));
2941
gtk_widget_add_events (GTK_WIDGET (player->priv->audiobox), GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK);
2942
g_signal_connect (G_OBJECT (player->priv->audiobox), "motion-notify-event",
2943
G_CALLBACK (parole_player_gst_widget_motion_notify_event), player);
2452
2945
gtk_box_set_child_packing( GTK_BOX(player->priv->control), GTK_WIDGET(player->priv->play_box), TRUE, TRUE, 2, GTK_PACK_START );