commit c78bffce3277596aaf3fb7567ed931332bb8c41c Author: phantomjinx <p.g.richard...@phantomjinx.co.uk> Date: Sun Feb 20 00:08:43 2011 +0000
Migrate media player glade to gtkbuilder .gitignore | 2 +- plugins/media_player/Makefile.am | 2 +- plugins/media_player/media_player.c | 52 +++++++------ .../{media_player.glade => media_player.xml} | 82 ++++++++++--------- plugins/media_player/plugin.c | 30 ------- po/POTFILES.in | 2 +- po/POTFILES.skip | 2 +- 7 files changed, 75 insertions(+), 97 deletions(-) --- diff --git a/.gitignore b/.gitignore index 6c9a75d..678723c 100644 --- a/.gitignore +++ b/.gitignore @@ -87,7 +87,7 @@ version /data/glade/playlist_display_toolbar.xml /data/glade/core_prefs.xml /data/glade/photo_editor.glade -/data/glade/media_player.glade +/data/glade/media_player.xml /data/glade/playlist_display.xml /data/glade/mserv.xml diff --git a/plugins/media_player/Makefile.am b/plugins/media_player/Makefile.am index 92a54c8..06a9321 100644 --- a/plugins/media_player/Makefile.am +++ b/plugins/media_player/Makefile.am @@ -7,7 +7,7 @@ media_player_ui_DATA = $(plugin_name).ui # Plugin Glade file media_player_gladedir = $(gtkpod_glade_dir) -media_player_glade_DATA = $(plugin_name).glade +media_player_glade_DATA = $(plugin_name).xml # Plugin Icon file media_player_pixmapsdir = $(gtkpod_image_dir) diff --git a/plugins/media_player/media_player.c b/plugins/media_player/media_player.c index cd5160a..44e1fa0 100644 --- a/plugins/media_player/media_player.c +++ b/plugins/media_player/media_player.c @@ -115,11 +115,17 @@ static void update_volume(gdouble value) { if (!player) return; + if (value < 0) { + value = 0; + } + player->volume_level = value / 10; prefs_set_double(MEDIA_PLAYER_VOLUME_KEY, player->volume_level); prefs_set_double(MEDIA_PLAYER_VOLUME_MUTE, player->volume_level == 0 ? 1 : 0); - g_object_set(player->play_element, "volume", player->volume_level, NULL); + if (player->play_element) { + g_object_set(player->play_element, "volume", player->volume_level, NULL); + } } static void set_song_label(Track *track) { @@ -437,27 +443,25 @@ void set_selected_tracks(GList *tracks) { void init_media_player(GtkWidget *parent) { GtkWidget *window; - GladeXML *xml; + GtkBuilder *builder; gst_init_check(0, NULL, NULL); srand(time(NULL)); player = g_new0(MediaPlayer, 1); - player->glade_path = g_build_filename(get_glade_dir(), "media_player.glade", NULL); - xml = glade_xml_new(player->glade_path, "media_window", NULL); + player->glade_path = g_build_filename(get_glade_dir(), "media_player.xml", NULL); + builder = gtkpod_builder_xml_new(player->glade_path); - window = gtkpod_xml_get_widget(xml, "media_window"); - player->media_panel = gtkpod_xml_get_widget(xml, "media_panel"); - player->song_label = gtkpod_xml_get_widget(xml, "song_label"); - player->song_time_label = gtkpod_xml_get_widget(xml, "song_time_label"); - player->media_toolbar = gtkpod_xml_get_widget(xml, "media_toolbar"); + window = gtkpod_builder_xml_get_widget(builder, "media_window"); + player->media_panel = gtkpod_builder_xml_get_widget(builder, "media_panel"); + player->song_label = gtkpod_builder_xml_get_widget(builder, "song_label"); + player->song_time_label = gtkpod_builder_xml_get_widget(builder, "song_time_label"); + player->media_toolbar = gtkpod_builder_xml_get_widget(builder, "media_toolbar"); - player->play_button = gtkpod_xml_get_widget(xml, "play_button"); - player->stop_button = gtkpod_xml_get_widget(xml, "stop_button"); - player->previous_button = gtkpod_xml_get_widget(xml, "previous_button"); - player->next_button = gtkpod_xml_get_widget(xml, "next_button"); - player->song_scale = gtkpod_xml_get_widget(xml, "song_scale"); - - glade_xml_signal_autoconnect(xml); + player->play_button = gtkpod_builder_xml_get_widget(builder, "play_button"); + player->stop_button = gtkpod_builder_xml_get_widget(builder, "stop_button"); + player->previous_button = gtkpod_builder_xml_get_widget(builder, "previous_button"); + player->next_button = gtkpod_builder_xml_get_widget(builder, "next_button"); + player->song_scale = gtkpod_builder_xml_get_widget(builder, "song_scale"); g_object_ref(player->media_panel); gtk_container_remove(GTK_CONTAINER (window), player->media_panel); @@ -468,6 +472,8 @@ void init_media_player(GtkWidget *parent) { else gtk_container_add(GTK_CONTAINER (parent), player->media_panel); + gtk_builder_connect_signals(builder, NULL); + player->thread = NULL; player->loop = NULL; player->shuffle = FALSE; @@ -495,7 +501,7 @@ void init_media_player(GtkWidget *parent) { gtk_widget_show_all(player->media_panel); - g_object_unref(xml); + g_object_unref(builder); } void destroy_media_player() { @@ -517,17 +523,15 @@ G_MODULE_EXPORT gboolean on_volume_window_focus_out(GtkWidget *widget, GdkEventF } G_MODULE_EXPORT void on_volume_button_clicked_cb(GtkToolButton *toolbutton, gpointer *userdata) { - GladeXML *xml; + GtkBuilder *builder; GtkWidget *vol_window; GtkWidget *vol_scale; - xml = glade_xml_new(player->glade_path, "volume_window", NULL); - vol_window = gtkpod_xml_get_widget(xml, "volume_window"); - vol_scale = gtkpod_xml_get_widget(xml, "volume_scale"); + builder = gtkpod_builder_xml_new(player->glade_path); + vol_window = gtkpod_builder_xml_get_widget(builder, "volume_window"); + vol_scale = gtkpod_builder_xml_get_widget(builder, "volume_scale"); g_object_set_data(G_OBJECT(vol_window), "scale", vol_scale); - g_message("Volume level: %f", player->volume_level); - gtk_range_set_value(GTK_RANGE(vol_scale), (player->volume_level * 10)); g_signal_connect(G_OBJECT (vol_scale), "change-value", @@ -542,7 +546,7 @@ G_MODULE_EXPORT void on_volume_button_clicked_cb(GtkToolButton *toolbutton, gpoi gtk_widget_show_all(vol_window); gtk_widget_grab_focus(vol_window); - g_object_unref(xml); + g_object_unref(builder); } G_MODULE_EXPORT void on_previous_button_clicked_cb(GtkToolButton *toolbutton, gpointer *userdata) { diff --git a/plugins/media_player/media_player.glade b/plugins/media_player/media_player.xml similarity index 81% rename from plugins/media_player/media_player.glade rename to plugins/media_player/media_player.xml index 8f6d75f..99b06cb 100644 --- a/plugins/media_player/media_player.glade +++ b/plugins/media_player/media_player.xml @@ -1,32 +1,32 @@ <?xml version="1.0"?> -<glade-interface> - <!-- interface-requires gtk+ 2.12 --> +<interface> + <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy toplevel-contextual --> - <widget class="GtkWindow" id="media_window"> + <object class="GtkWindow" id="media_window"> <property name="window_position">mouse</property> <child> - <widget class="GtkVBox" id="media_panel"> + <object class="GtkVBox" id="media_panel"> <property name="visible">True</property> <property name="orientation">vertical</property> <child> - <widget class="GtkHBox" id="song_label_box"> + <object class="GtkHBox" id="song_label_box"> <property name="visible">True</property> <property name="spacing">10</property> <child> - <widget class="GtkLabel" id="song_label"> + <object class="GtkLabel" id="song_label"> <property name="visible">True</property> <property name="xalign">0</property> <property name="xpad">6</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkLabel" id="song_time_label"> + <object class="GtkLabel" id="song_time_label"> <property name="visible">True</property> <property name="label">00:00:00</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="padding">5</property> @@ -34,7 +34,7 @@ <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="padding">5</property> @@ -42,64 +42,64 @@ </packing> </child> <child> - <widget class="GtkHBox" id="media_toolbar"> + <object class="GtkHBox" id="media_toolbar"> <property name="visible">True</property> <property name="spacing">30</property> <child> - <widget class="GtkHBox" id="button_box"> + <object class="GtkHBox" id="button_box"> <property name="visible">True</property> <property name="homogeneous">True</property> <child> - <widget class="GtkToolButton" id="previous_button"> + <object class="GtkToolButton" id="previous_button"> <property name="width_request">35</property> <property name="visible">True</property> <property name="label" translatable="yes">Previous</property> <property name="use_underline">True</property> <property name="stock_id">gtk-media-previous</property> <signal name="clicked" handler="on_previous_button_clicked_cb"/> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkToolButton" id="play_button"> + <object class="GtkToolButton" id="play_button"> <property name="width_request">35</property> <property name="visible">True</property> <property name="label" translatable="yes">Play</property> <property name="use_underline">True</property> <property name="stock_id">gtk-media-play</property> <signal name="clicked" handler="on_play_button_clicked_cb"/> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkToolButton" id="stop_button"> + <object class="GtkToolButton" id="stop_button"> <property name="visible">True</property> <property name="label" translatable="yes">Stop</property> <property name="use_underline">True</property> <property name="stock_id">gtk-media-stop</property> <signal name="clicked" handler="on_stop_button_clicked_cb"/> - </widget> + </object> <packing> <property name="position">2</property> </packing> </child> <child> - <widget class="GtkToolButton" id="next_button"> + <object class="GtkToolButton" id="next_button"> <property name="visible">True</property> <property name="label" translatable="yes">Next</property> <property name="use_underline">True</property> <property name="stock_id">gtk-media-next</property> <signal name="clicked" handler="on_next_button_clicked_cb"/> - </widget> + </object> <packing> <property name="position">3</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -107,52 +107,51 @@ </packing> </child> <child> - <widget class="GtkHScale" id="song_scale"> + <object class="GtkHScale" id="song_scale"> <property name="width_request">150</property> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="adjustment">0 0 100 1 10 10</property> <property name="digits">0</property> <property name="draw_value">False</property> <property name="value_pos">left</property> <signal name="change_value" handler="on_song_scale_change_value_cb"/> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkHBox" id="volume_box"> + <object class="GtkHBox" id="volume_box"> <property name="visible">True</property> <child> - <widget class="GtkToolButton" id="volume_button"> + <object class="GtkToolButton" id="volume_button"> <property name="visible">True</property> <property name="label" translatable="yes">Volume</property> <property name="stock_id">media_player-volume-control-icon</property> <signal name="clicked" handler="on_volume_button_clicked_cb"/> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> - <widget class="GtkWindow" id="volume_window"> + </object> + <object class="GtkWindow" id="volume_window"> <property name="width_request">30</property> <property name="height_request">150</property> <property name="resizable">False</property> @@ -166,22 +165,27 @@ <property name="urgency_hint">True</property> <property name="decorated">False</property> <property name="deletable">False</property> - <property name="transient_for">media_window</property> <child> - <widget class="GtkVScale" id="volume_scale"> + <object class="GtkVScale" id="volume_scale"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="is_focus">True</property> <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property> <property name="orientation">vertical</property> - <property name="adjustment">5 0 10 1 1 0</property> + <property name="adjustment">volume_adjustment</property> <property name="inverted">True</property> <property name="lower_stepper_sensitivity">off</property> <property name="upper_stepper_sensitivity">off</property> <property name="restrict_to_fill_level">False</property> - <property name="fill_level">100</property> + <property name="fill_level">10</property> <property name="digits">0</property> - </widget> + </object> </child> - </widget> -</glade-interface> + </object> + <object class="GtkAdjustment" id="volume_adjustment"> + <property name="value">5</property> + <property name="upper">10</property> + <property name="step_increment">1</property> + <property name="page_increment">2</property> + </object> +</interface> diff --git a/plugins/media_player/plugin.c b/plugins/media_player/plugin.c index 6f9abc5..1553e85 100644 --- a/plugins/media_player/plugin.c +++ b/plugins/media_player/plugin.c @@ -134,36 +134,6 @@ static void media_player_plugin_class_init(GObjectClass *klass) { plugin_class->deactivate = deactivate_plugin; } -//static void ipreferences_merge(IAnjutaPreferences* ipref, AnjutaPreferences* prefs, GError** e) { -// GdkPixbuf *pixbuf; -// GError *error = NULL; -// -// MediaPlayerPlugin* plugin = MEDIA_PLAYER_PLUGIN(ipref); -// plugin->prefs = init_media_player_preferences(plugin->glade_path); -// if (plugin->prefs == NULL) -// return; -// -// pixbuf = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), PREFERENCE_ICON, 48, 0, &error); -// -// if (!pixbuf) { -// g_warning ("Couldn't load icon: %s", error->message); -// g_error_free(error); -// } -// anjuta_preferences_dialog_add_page(ANJUTA_PREFERENCES_DIALOG (anjuta_preferences_get_dialog (prefs)), "gtkpod-media_player-settings", _(TAB_NAME), pixbuf, plugin->prefs); -// g_object_unref(pixbuf); -//} -// -//static void ipreferences_unmerge(IAnjutaPreferences* ipref, AnjutaPreferences* prefs, GError** e) { -// anjuta_preferences_remove_page(prefs, _(TAB_NAME)); -// MediaPlayerPlugin* plugin = MEDIA_PLAYER_PLUGIN(ipref); -// gtk_widget_destroy(plugin->prefs); -//} -// -//static void ipreferences_iface_init(IAnjutaPreferencesIface* iface) { -// iface->merge = ipreferences_merge; -// iface->unmerge = ipreferences_unmerge; -//} - static void track_command_iface_init(TrackCommandInterface *iface) { iface->id = "media_player_play_track_command"; iface->text = _("Play"); diff --git a/po/POTFILES.in b/po/POTFILES.in index 25df1d2..dfafdcb 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -72,7 +72,7 @@ plugins/info_display/info.c plugins/info_display/infoview.c plugins/info_display/plugin.c plugins/media_player/media_player.c -plugins/media_player/media_player.glade +[type: gettext/glade]plugins/media_player/media_player.xml [type: gettext/ini]plugins/media_player/media_player.plugin.in plugins/media_player/plugin.c plugins/mserv/mserv.c diff --git a/po/POTFILES.skip b/po/POTFILES.skip index f43e79b..3c4b279 100644 --- a/po/POTFILES.skip +++ b/po/POTFILES.skip @@ -3,7 +3,7 @@ data/glade/cover_display.xml data/glade/coverweb.xml data/glade/details_editor.xml data/glade/exporter.xml -data/glade/media_player.glade +data/glade/media_player.xml data/glade/mserv.xml data/glade/photo_editor.glade data/glade/playlist_display.xml ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ gtkpod-cvs2 mailing list gtkpod-cvs2@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2