summaryrefslogtreecommitdiff
path: root/src/swfmoz_player.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/swfmoz_player.c')
-rw-r--r--src/swfmoz_player.c66
1 files changed, 61 insertions, 5 deletions
diff --git a/src/swfmoz_player.c b/src/swfmoz_player.c
index 05f7fca..b1685af 100644
--- a/src/swfmoz_player.c
+++ b/src/swfmoz_player.c
@@ -65,6 +65,31 @@ swfmoz_player_menu_notify_audio (SwfdecGtkPlayer *player, GParamSpec *pspec,
}
static void
+swfmoz_player_menu_autoplay_always_toggled (GtkCheckMenuItem *item,
+ SwfmozPlayer* player)
+{
+ gboolean item_active = gtk_check_menu_item_get_active (item);
+ swfmoz_config_set_global_autoplay (player->config, item_active);
+}
+
+static void
+swfmoz_player_menu_autoplay_remember_last_toggled (GtkCheckMenuItem *item,
+ SwfmozPlayer* player)
+{
+ gboolean item_active = gtk_check_menu_item_get_active (item);
+ if (item_active && swfmoz_config_has_global_key (player->config))
+ swfmoz_config_remove_global_autoplay (player->config);
+}
+
+static void
+swfmoz_player_menu_autoplay_never_toggled (GtkCheckMenuItem *item,
+ SwfmozPlayer* player)
+{
+ gboolean item_active = gtk_check_menu_item_get_active (item);
+ swfmoz_config_set_global_autoplay (player->config, !item_active);
+}
+
+static void
swfmoz_player_menu_about (GtkMenuItem *item, SwfmozPlayer *player)
{
static const char *authors[] = {
@@ -95,31 +120,62 @@ static void
swfmoz_player_popup_menu (SwfmozPlayer *player)
{
if (player->menu == NULL) {
- GtkWidget *item;
+ GtkWidget *item, *submenu;
player->menu = GTK_MENU (gtk_menu_new ());
g_object_ref_sink (player->menu);
item = gtk_check_menu_item_new_with_mnemonic ("Playing");
- g_signal_connect (item, "toggled",
+ g_signal_connect (item, "toggled",
G_CALLBACK (swfmoz_player_menu_playing_toggled), player);
g_signal_connect (player, "notify::playing",
G_CALLBACK (swfmoz_player_menu_notify_playing), item);
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
swfdec_gtk_player_get_playing (SWFDEC_GTK_PLAYER (player)));
gtk_widget_show (item);
gtk_menu_shell_append (GTK_MENU_SHELL (player->menu), item);
item = gtk_check_menu_item_new_with_mnemonic ("Enable Audio");
- g_signal_connect (item, "toggled",
+ g_signal_connect (item, "toggled",
G_CALLBACK (swfmoz_player_menu_audio_toggled), player);
g_signal_connect (player, "notify::audio-enabled",
G_CALLBACK (swfmoz_player_menu_notify_audio), item);
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
swfdec_gtk_player_get_audio_enabled (SWFDEC_GTK_PLAYER (player)));
gtk_widget_show (item);
gtk_menu_shell_append (GTK_MENU_SHELL (player->menu), item);
+ submenu = gtk_menu_new();
+ item = gtk_radio_menu_item_new_with_mnemonic (NULL, "Always");
+ g_signal_connect (item, "toggled",
+ G_CALLBACK (swfmoz_player_menu_autoplay_always_toggled), player);
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
+ swfmoz_config_read_autoplay (player->config, "global", FALSE));
+ gtk_widget_show (item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item);
+
+ item = gtk_radio_menu_item_new_with_mnemonic_from_widget (GTK_RADIO_MENU_ITEM (item),
+ "Remember last choice");
+ g_signal_connect (item, "toggled",
+ G_CALLBACK (swfmoz_player_menu_autoplay_remember_last_toggled), player);
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
+ !swfmoz_config_has_global_key (player->config));
+ gtk_widget_show (item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item);
+
+ item = gtk_radio_menu_item_new_with_mnemonic_from_widget (GTK_RADIO_MENU_ITEM (item), "Never");
+ g_signal_connect (item, "toggled",
+ G_CALLBACK (swfmoz_player_menu_autoplay_never_toggled), player);
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
+ !swfmoz_config_read_autoplay (player->config, "global", TRUE));
+ gtk_widget_show (item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item);
+
+ item = gtk_menu_item_new_with_label ("Autoplay");
+ gtk_widget_show (item);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu);
+ gtk_menu_shell_append (GTK_MENU_SHELL (player->menu), item);
+
item = gtk_separator_menu_item_new ();
gtk_widget_show (item);
gtk_menu_shell_append (GTK_MENU_SHELL (player->menu), item);