Hello,
It's just a little patch for appearance. It's added some icons to menu
item.
I do not know what version of GTK+ is supported by Gnash so that I use
GTK_CHECK_VERSION to be able to use some icons.
And this patch is included the fix for a memory leak.
Toggle sound menu item is leaking when gst_sound_handler() returns
false.
Thank you,
Hiroyuki Ikezoe
Index: gui/gtk.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gtk.cpp,v
retrieving revision 1.47
diff -d -u -p -r1.47 gtk.cpp
--- gui/gtk.cpp 5 Nov 2006 23:10:43 -0000 1.47
+++ gui/gtk.cpp 9 Nov 2006 03:44:13 -0000
@@ -280,47 +280,75 @@ GtkGui::createMenu()
_popup_menu = GTK_MENU(gtk_menu_new());
+#if GTK_CHECK_VERSION(2,6,0)
+ GtkMenuItem *menuitem_play =
+ GTK_MENU_ITEM(gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PLAY, NULL));
+ GtkMenuItem *menuitem_pause =
+ GTK_MENU_ITEM(gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_PAUSE, NULL));
+ GtkMenuItem *menuitem_stop =
+ GTK_MENU_ITEM(gtk_image_menu_item_new_from_stock(GTK_STOCK_MEDIA_STOP, NULL));
+ GtkMenuItem *menuitem_restart =
+ GTK_MENU_ITEM(gtk_image_menu_item_new_with_label("Restart Movie"));
+ GtkWidget *restart_image =
+ GTK_WIDGET(gtk_image_new_from_stock(GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU));
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(menuitem_restart), restart_image);
+ GtkMenuItem *menuitem_step_forward =
+ GTK_MENU_ITEM(gtk_menu_item_new_with_label("Step Forward Frame"));
+ GtkMenuItem *menuitem_step_backward =
+ GTK_MENU_ITEM(gtk_menu_item_new_with_label("Step Backward Frame"));
+ GtkMenuItem *menuitem_jump_forward =
+ GTK_MENU_ITEM(gtk_menu_item_new_with_label("Jump Forward 10 Frames"));
+ GtkMenuItem *menuitem_jump_backward =
+ GTK_MENU_ITEM(gtk_menu_item_new_with_label("Jump Backward 10 Frames"));
+#else /* GTK_CHECK_VERSION(2,6,0) */
GtkMenuItem *menuitem_play =
GTK_MENU_ITEM(gtk_menu_item_new_with_label("Play Movie"));
- gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_play));
- gtk_widget_show(GTK_WIDGET(menuitem_play));
GtkMenuItem *menuitem_pause =
GTK_MENU_ITEM(gtk_menu_item_new_with_label("Pause Movie"));
- gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_pause));
- gtk_widget_show(GTK_WIDGET(menuitem_pause));
GtkMenuItem *menuitem_stop =
GTK_MENU_ITEM(gtk_menu_item_new_with_label("Stop Movie"));
- gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_stop));
- gtk_widget_show(GTK_WIDGET(menuitem_stop));
GtkMenuItem *menuitem_restart =
GTK_MENU_ITEM(gtk_menu_item_new_with_label("Restart Movie"));
- gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_restart));
- gtk_widget_show(GTK_WIDGET(menuitem_restart));
GtkMenuItem *menuitem_step_forward =
GTK_MENU_ITEM(gtk_menu_item_new_with_label("Step Forward Frame"));
- gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_step_forward));
- gtk_widget_show(GTK_WIDGET(menuitem_step_forward));
GtkMenuItem *menuitem_step_backward =
GTK_MENU_ITEM(gtk_menu_item_new_with_label("Step Backward Frame"));
- gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_step_backward));
- gtk_widget_show(GTK_WIDGET(menuitem_step_backward));
GtkMenuItem *menuitem_jump_forward =
GTK_MENU_ITEM(gtk_menu_item_new_with_label("Jump Forward 10 Frames"));
- gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_jump_forward));
- gtk_widget_show(GTK_WIDGET(menuitem_jump_forward));
GtkMenuItem *menuitem_jump_backward =
GTK_MENU_ITEM(gtk_menu_item_new_with_label("Jump Backward 10 Frames"));
+#endif
+ gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_play));
+ gtk_widget_show(GTK_WIDGET(menuitem_play));
+ gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_pause));
+ gtk_widget_show(GTK_WIDGET(menuitem_pause));
+ gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_stop));
+ gtk_widget_show(GTK_WIDGET(menuitem_stop));
+ gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_restart));
+ gtk_widget_show(GTK_WIDGET(menuitem_restart));
+ gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_step_forward));
+ gtk_widget_show(GTK_WIDGET(menuitem_step_forward));
+ gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_step_backward));
+ gtk_widget_show(GTK_WIDGET(menuitem_step_backward));
+ gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_jump_forward));
+ gtk_widget_show(GTK_WIDGET(menuitem_jump_forward));
gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_jump_backward));
gtk_widget_show(GTK_WIDGET(menuitem_jump_backward));
- GtkMenuItem *menuitem_sound =
- GTK_MENU_ITEM(gtk_menu_item_new_with_label("Toggle Sound"));
+
+ // Menu for sound
if (get_sound_handler()) {
+ GtkMenuItem *menuitem_sound =
+ GTK_MENU_ITEM(gtk_check_menu_item_new_with_label("Toggle Sound"));
gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_sound));
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem_sound),
+ get_sound_handler()->is_muted() ? FALSE : TRUE);
gtk_widget_show(GTK_WIDGET(menuitem_sound));
+ g_signal_connect(GTK_OBJECT(menuitem_sound), "activate",
+ G_CALLBACK(&menuitem_sound_callback), this);
}
GtkMenuItem *menuitem_quit =
- GTK_MENU_ITEM(gtk_menu_item_new_with_label("Quit Gnash"));
+ GTK_MENU_ITEM(gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL));
gtk_menu_append(_popup_menu, GTK_WIDGET(menuitem_quit));
gtk_widget_show(GTK_WIDGET(menuitem_quit));
g_signal_connect(GTK_OBJECT(menuitem_play), "activate",
@@ -341,10 +369,6 @@ GtkGui::createMenu()
G_CALLBACK(&menuitem_jump_backward_callback), this);
g_signal_connect(GTK_OBJECT(menuitem_quit), "activate",
G_CALLBACK(&menuitem_quit_callback), this);
- if (get_sound_handler()) {
- g_signal_connect(GTK_OBJECT(menuitem_sound), "activate",
- G_CALLBACK(&menuitem_sound_callback), this);
- }
return true;
}
_______________________________________________
Gnash-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnash-dev