WRITE_NL(); WRITE_UINT(*layout, image_overlay.state);
WRITE_NL(); WRITE_INT(*layout, image_overlay.histogram_channel);
WRITE_NL(); WRITE_INT(*layout, image_overlay.histogram_mode);
+
+ WRITE_NL(); WRITE_BOOL(*layout, animate);
}
if (READ_INT(*layout, image_overlay.histogram_channel)) continue;
if (READ_INT(*layout, image_overlay.histogram_mode)) continue;
+ if (READ_BOOL(*layout, animate)) continue;
+
log_printf("unknown attribute %s = %s\n", option, value);
}
if (id && strcmp(id, LAYOUT_ID_CURRENT) != 0)
return TRUE;
}
-static void layout_image_animate_toggle(LayoutWindow *lw)
+void layout_image_animate_toggle(LayoutWindow *lw)
{
+ GtkAction *action;
+
if (!lw) return;
lw->options.animate = !lw->options.animate;
+
+ action = gtk_action_group_get_action(lw->action_group, "Animate");
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->options.animate);
+
layout_image_animate_new_file(lw);
}
}
}
+static void layout_menu_animate_cb(GtkToggleAction *action, gpointer data)
+{
+ LayoutWindow *lw = data;
+
+ if (lw->options.animate == gtk_toggle_action_get_active(action)) return;
+ layout_image_animate_toggle(lw);
+}
+
static void layout_menu_rectangular_selection_cb(GtkToggleAction *action, gpointer data)
{
LayoutWindow *lw = data;
{ "ImageOverlay", NULL, N_("Image _Overlay"), NULL, N_("Image Overlay"), CB(layout_menu_overlay_cb), FALSE },
{ "ImageHistogram", NULL, N_("_Show Histogram"), NULL, N_("Show Histogram"), CB(layout_menu_histogram_cb), FALSE },
{ "RectangularSelection", NULL, N_("Rectangular Selection"), "<alt>R", N_("Rectangular Selection"), CB(layout_menu_rectangular_selection_cb), FALSE },
+ { "Animate", NULL, N_("GIF _animation"), "A", N_("Toggle GIF animation"), CB(layout_menu_animate_cb), FALSE },
};
static GtkRadioActionEntry menu_radio_entries[] = {
" <menuitem action='ShowInfoPixel'/>"
" <placeholder name='ToolsSection'/>"
" <separator/>"
+" <menuitem action='Animate'/>"
" <menuitem action='SlideShow'/>"
" <menuitem action='SlideShowPause'/>"
" <menuitem action='Refresh'/>"
action = gtk_action_group_get_action(lw->action_group, "SlideShow");
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), layout_image_slideshow_active(lw));
+ action = gtk_action_group_get_action(lw->action_group, "Animate");
+ gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->options.animate);
+
action = gtk_action_group_get_action(lw->action_group, "ImageOverlay");
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), osd_flags != OSD_SHOW_NOTHING);