/* SlideshowPage.c generated by valac 0.40.4, the Vala compiler
 * generated from SlideshowPage.vala, do not modify */

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU LGPL (version 2.1 or later).
 * See the COPYING file in this distribution.
 */


#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <gee.h>
#include <gdk/gdk.h>
#include <cairo.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib/gi18n-lib.h>
#include <float.h>
#include <math.h>
#include <pango/pango.h>
#include <pango/pangocairo.h>


#define TYPE_PAGE (page_get_type ())
#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))

typedef struct _Page Page;
typedef struct _PageClass PageClass;
typedef struct _PagePrivate PagePrivate;

#define TYPE_PAGE_WINDOW (page_window_get_type ())
#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))

typedef struct _PageWindow PageWindow;
typedef struct _PageWindowClass PageWindowClass;

#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))

typedef struct _FullscreenWindow FullscreenWindow;
typedef struct _FullscreenWindowClass FullscreenWindowClass;

#define TYPE_INJECTION_GROUP (injection_group_get_type ())
#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))

typedef struct _InjectionGroup InjectionGroup;
typedef struct _InjectionGroupClass InjectionGroupClass;

#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))

typedef struct _SinglePhotoPage SinglePhotoPage;
typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
typedef struct _SinglePhotoPagePrivate SinglePhotoPagePrivate;

#define TYPE_ZOOM_BUFFER (zoom_buffer_get_type ())
#define ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ZOOM_BUFFER, ZoomBuffer))
#define ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ZOOM_BUFFER, ZoomBufferClass))
#define IS_ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ZOOM_BUFFER))
#define IS_ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ZOOM_BUFFER))
#define ZOOM_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ZOOM_BUFFER, ZoomBufferClass))

typedef struct _ZoomBuffer ZoomBuffer;
typedef struct _ZoomBufferClass ZoomBufferClass;

#define TYPE_DIMENSIONS (dimensions_get_type ())
typedef struct _Dimensions Dimensions;

#define SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ())

#define TYPE_SLIDESHOW_PAGE (slideshow_page_get_type ())
#define SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPage))
#define SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
#define IS_SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SLIDESHOW_PAGE))
#define IS_SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SLIDESHOW_PAGE))
#define SLIDESHOW_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))

typedef struct _SlideshowPage SlideshowPage;
typedef struct _SlideshowPageClass SlideshowPageClass;
typedef struct _SlideshowPagePrivate SlideshowPagePrivate;

#define TYPE_DATA_COLLECTION (data_collection_get_type ())
#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))

typedef struct _DataCollection DataCollection;
typedef struct _DataCollectionClass DataCollectionClass;

#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))

typedef struct _SourceCollection SourceCollection;
typedef struct _SourceCollectionClass SourceCollectionClass;

#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))

typedef struct _ViewCollection ViewCollection;
typedef struct _ViewCollectionClass ViewCollectionClass;

#define TYPE_DATA_OBJECT (data_object_get_type ())
#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))

typedef struct _DataObject DataObject;
typedef struct _DataObjectClass DataObjectClass;

#define TYPE_DATA_SOURCE (data_source_get_type ())
#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))

typedef struct _DataSource DataSource;
typedef struct _DataSourceClass DataSourceClass;

#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))

typedef struct _ThumbnailSource ThumbnailSource;
typedef struct _ThumbnailSourceClass ThumbnailSourceClass;

#define TYPE_MEDIA_SOURCE (media_source_get_type ())
#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))

typedef struct _MediaSource MediaSource;
typedef struct _MediaSourceClass MediaSourceClass;

#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))

typedef struct _PhotoSource PhotoSource;
typedef struct _PhotoSourceClass PhotoSourceClass;

#define TYPE_PHOTO (photo_get_type ())
#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))

typedef struct _Photo Photo;
typedef struct _PhotoClass PhotoClass;

#define TYPE_PIXBUF_CACHE (pixbuf_cache_get_type ())
#define PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXBUF_CACHE, PixbufCache))
#define PIXBUF_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXBUF_CACHE, PixbufCacheClass))
#define IS_PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXBUF_CACHE))
#define IS_PIXBUF_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXBUF_CACHE))
#define PIXBUF_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXBUF_CACHE, PixbufCacheClass))

typedef struct _PixbufCache PixbufCache;
typedef struct _PixbufCacheClass PixbufCacheClass;

#define TYPE_SCREENSAVER (screensaver_get_type ())
#define SCREENSAVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCREENSAVER, Screensaver))
#define SCREENSAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCREENSAVER, ScreensaverClass))
#define IS_SCREENSAVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCREENSAVER))
#define IS_SCREENSAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCREENSAVER))
#define SCREENSAVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCREENSAVER, ScreensaverClass))

typedef struct _Screensaver Screensaver;
typedef struct _ScreensaverClass ScreensaverClass;
enum  {
	SLIDESHOW_PAGE_0_PROPERTY,
	SLIDESHOW_PAGE_NUM_PROPERTIES
};
static GParamSpec* slideshow_page_properties[SLIDESHOW_PAGE_NUM_PROPERTIES];
#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
#define _screensaver_unref0(var) ((var == NULL) ? NULL : (var = (screensaver_unref (var), NULL)))

#define TYPE_TRANSITION_EFFECTS_MANAGER (transition_effects_manager_get_type ())
#define TRANSITION_EFFECTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManager))
#define TRANSITION_EFFECTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerClass))
#define IS_TRANSITION_EFFECTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSITION_EFFECTS_MANAGER))
#define IS_TRANSITION_EFFECTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSITION_EFFECTS_MANAGER))
#define TRANSITION_EFFECTS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerClass))

typedef struct _TransitionEffectsManager TransitionEffectsManager;
typedef struct _TransitionEffectsManagerClass TransitionEffectsManagerClass;
#define _transition_effects_manager_unref0(var) ((var == NULL) ? NULL : (var = (transition_effects_manager_unref (var), NULL)))

#define PIXBUF_CACHE_TYPE_PHOTO_TYPE (pixbuf_cache_photo_type_get_type ())

#define TYPE_SCALING (scaling_get_type ())

#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
typedef struct _Scaling Scaling;

#define TYPE_DIRECTION (direction_get_type ())

#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_DATA_VIEW (data_view_get_type ())
#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))

typedef struct _DataView DataView;
typedef struct _DataViewClass DataViewClass;

#define TYPE_APP_WINDOW (app_window_get_type ())
#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))

typedef struct _AppWindow AppWindow;
typedef struct _AppWindowClass AppWindowClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())

#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))

typedef struct _ConfigurationFacade ConfigurationFacade;
typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;

#define CONFIG_TYPE_FACADE (config_facade_get_type ())
#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))

typedef struct _ConfigFacade ConfigFacade;
typedef struct _ConfigFacadeClass ConfigFacadeClass;

#define SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG (slideshow_page_settings_dialog_get_type ())
#define SLIDESHOW_PAGE_SETTINGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialog))
#define SLIDESHOW_PAGE_SETTINGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialogClass))
#define SLIDESHOW_PAGE_IS_SETTINGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG))
#define SLIDESHOW_PAGE_IS_SETTINGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG))
#define SLIDESHOW_PAGE_SETTINGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialogClass))

typedef struct _SlideshowPageSettingsDialog SlideshowPageSettingsDialog;
typedef struct _SlideshowPageSettingsDialogClass SlideshowPageSettingsDialogClass;
#define _pango_attribute_destroy0(var) ((var == NULL) ? NULL : (var = (pango_attribute_destroy (var), NULL)))
#define _pango_attr_list_unref0(var) ((var == NULL) ? NULL : (var = (pango_attr_list_unref (var), NULL)))
typedef struct _SlideshowPageSettingsDialogPrivate SlideshowPageSettingsDialogPrivate;
enum  {
	SLIDESHOW_PAGE_SETTINGS_DIALOG_0_PROPERTY,
	SLIDESHOW_PAGE_SETTINGS_DIALOG_NUM_PROPERTIES
};
static GParamSpec* slideshow_page_settings_dialog_properties[SLIDESHOW_PAGE_SETTINGS_DIALOG_NUM_PROPERTIES];
enum  {
	SLIDESHOW_PAGE_HIDE_TOOLBAR_SIGNAL,
	SLIDESHOW_PAGE_NUM_SIGNALS
};
static guint slideshow_page_signals[SLIDESHOW_PAGE_NUM_SIGNALS] = {0};

struct _Page {
	GtkScrolledWindow parent_instance;
	PagePrivate * priv;
	GtkBuilder* builder;
	GtkToolbar* toolbar;
	gboolean in_view;
};

struct _PageClass {
	GtkScrolledWindowClass parent_class;
	void (*set_page_name) (Page* self, const gchar* page_name);
	void (*set_container) (Page* self, GtkWindow* container);
	void (*clear_container) (Page* self);
	GtkToolbar* (*get_toolbar) (Page* self);
	GtkMenu* (*get_page_context_menu) (Page* self);
	void (*switching_from) (Page* self);
	void (*switched_to) (Page* self);
	void (*ready) (Page* self);
	void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
	void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
	void (*add_actions) (Page* self, GActionMap* map);
	void (*remove_actions) (Page* self, GActionMap* map);
	void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
	InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
	void (*init_actions) (Page* self, gint selected_count, gint count);
	void (*update_actions) (Page* self, gint selected_count, gint count);
	gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
	gboolean (*on_left_click) (Page* self, GdkEventButton* event);
	gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
	gboolean (*on_right_click) (Page* self, GdkEventButton* event);
	gboolean (*on_left_released) (Page* self, GdkEventButton* event);
	gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
	gboolean (*on_right_released) (Page* self, GdkEventButton* event);
	gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
	gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
	gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
	gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
	gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
	gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
	gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
	gboolean (*on_super_released) (Page* self, GdkEventKey* event);
	gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
	gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
	void (*on_move) (Page* self, GdkRectangle* rect);
	void (*on_move_start) (Page* self, GdkRectangle* rect);
	void (*on_move_finished) (Page* self, GdkRectangle* rect);
	void (*on_resize) (Page* self, GdkRectangle* rect);
	void (*on_resize_start) (Page* self, GdkRectangle* rect);
	void (*on_resize_finished) (Page* self, GdkRectangle* rect);
	gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
	gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
	gboolean (*on_leave_notify_event) (Page* self);
	gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
	gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
	gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
	gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
	gboolean (*on_context_keypress) (Page* self);
	gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
	gboolean (*on_context_invoked) (Page* self);
	void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
};

struct _Dimensions {
	gint width;
	gint height;
};

typedef enum  {
	SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF,
	SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT,
	SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS
} SinglePhotoPageUpdateReason;

struct _SinglePhotoPage {
	Page parent_instance;
	SinglePhotoPagePrivate * priv;
	GtkDrawingArea* canvas;
	GtkViewport* viewport;
};

struct _SinglePhotoPageClass {
	PageClass parent_class;
	gboolean (*is_zoom_supported) (SinglePhotoPage* self);
	void (*cancel_zoom) (SinglePhotoPage* self);
	void (*save_zoom_state) (SinglePhotoPage* self);
	void (*restore_zoom_state) (SinglePhotoPage* self);
	ZoomBuffer* (*get_zoom_buffer) (SinglePhotoPage* self);
	void (*new_surface) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
	void (*updated_pixbuf) (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
	void (*paint) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
	void (*on_previous_photo) (SinglePhotoPage* self);
	void (*on_next_photo) (SinglePhotoPage* self);
};

struct _SlideshowPage {
	SinglePhotoPage parent_instance;
	SlideshowPagePrivate * priv;
};

struct _SlideshowPageClass {
	SinglePhotoPageClass parent_class;
};

struct _SlideshowPagePrivate {
	SourceCollection* sources;
	ViewCollection* controller;
	Photo* current;
	GtkToolButton* play_pause_button;
	GtkToolButton* settings_button;
	PixbufCache* cache;
	GTimer* timer;
	gboolean playing;
	gboolean exiting;
	gchar** transitions;
	gint transitions_length1;
	gint _transitions_size_;
	Screensaver* screensaver;
};

typedef enum  {
	PIXBUF_CACHE_PHOTO_TYPE_BASELINE,
	PIXBUF_CACHE_PHOTO_TYPE_MASTER
} PixbufCachePhotoType;

typedef enum  {
	SCALE_CONSTRAINT_ORIGINAL,
	SCALE_CONSTRAINT_DIMENSIONS,
	SCALE_CONSTRAINT_WIDTH,
	SCALE_CONSTRAINT_HEIGHT,
	SCALE_CONSTRAINT_FILL_VIEWPORT
} ScaleConstraint;

struct _Scaling {
	ScaleConstraint constraint;
	gint scale;
	Dimensions viewport;
	gboolean scale_up;
};

typedef gboolean (*PixbufCacheCacheFilter) (Photo* photo, void* user_data);
typedef enum  {
	DIRECTION_FORWARD,
	DIRECTION_BACKWARD
} Direction;

typedef enum  {
	PHOTO_EXCEPTION_NONE = 0,
	PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
	PHOTO_EXCEPTION_CROP = 1 << 1,
	PHOTO_EXCEPTION_REDEYE = 1 << 2,
	PHOTO_EXCEPTION_ADJUST = 1 << 3,
	PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
	PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
} PhotoException;

typedef enum  {
	BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
	BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
	BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
	BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
	BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
} BackgroundJobJobPriority;

struct _SlideshowPageSettingsDialog {
	GtkDialog parent_instance;
	SlideshowPageSettingsDialogPrivate * priv;
};

struct _SlideshowPageSettingsDialogClass {
	GtkDialogClass parent_class;
};

struct _SlideshowPageSettingsDialogPrivate {
	GtkAdjustment* delay_adjustment;
	GtkSpinButton* delay_entry;
	GtkComboBoxText* transition_effect_selector;
	GtkScale* transition_effect_hscale;
	GtkSpinButton* transition_effect_entry;
	GtkAdjustment* transition_effect_adjustment;
	GtkCheckButton* show_title_button;
};


static gpointer slideshow_page_parent_class = NULL;
static gpointer slideshow_page_settings_dialog_parent_class = NULL;

GType page_get_type (void) G_GNUC_CONST;
GType page_window_get_type (void) G_GNUC_CONST;
GType fullscreen_window_get_type (void) G_GNUC_CONST;
gpointer injection_group_ref (gpointer instance);
void injection_group_unref (gpointer instance);
GParamSpec* param_spec_injection_group (const gchar* name,
                                        const gchar* nick,
                                        const gchar* blurb,
                                        GType object_type,
                                        GParamFlags flags);
void value_set_injection_group (GValue* value,
                                gpointer v_object);
void value_take_injection_group (GValue* value,
                                 gpointer v_object);
gpointer value_get_injection_group (const GValue* value);
GType injection_group_get_type (void) G_GNUC_CONST;
GType single_photo_page_get_type (void) G_GNUC_CONST;
GType zoom_buffer_get_type (void) G_GNUC_CONST;
GType dimensions_get_type (void) G_GNUC_CONST;
Dimensions* dimensions_dup (const Dimensions* self);
void dimensions_free (Dimensions* self);
GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
GType slideshow_page_get_type (void) G_GNUC_CONST;
gpointer data_collection_ref (gpointer instance);
void data_collection_unref (gpointer instance);
GParamSpec* param_spec_data_collection (const gchar* name,
                                        const gchar* nick,
                                        const gchar* blurb,
                                        GType object_type,
                                        GParamFlags flags);
void value_set_data_collection (GValue* value,
                                gpointer v_object);
void value_take_data_collection (GValue* value,
                                 gpointer v_object);
gpointer value_get_data_collection (const GValue* value);
GType data_collection_get_type (void) G_GNUC_CONST;
GType source_collection_get_type (void) G_GNUC_CONST;
GType view_collection_get_type (void) G_GNUC_CONST;
GType data_object_get_type (void) G_GNUC_CONST;
GType data_source_get_type (void) G_GNUC_CONST;
GType thumbnail_source_get_type (void) G_GNUC_CONST;
GType media_source_get_type (void) G_GNUC_CONST;
GType photo_source_get_type (void) G_GNUC_CONST;
GType photo_get_type (void) G_GNUC_CONST;
GType pixbuf_cache_get_type (void) G_GNUC_CONST;
gpointer screensaver_ref (gpointer instance);
void screensaver_unref (gpointer instance);
GParamSpec* param_spec_screensaver (const gchar* name,
                                    const gchar* nick,
                                    const gchar* blurb,
                                    GType object_type,
                                    GParamFlags flags);
void value_set_screensaver (GValue* value,
                            gpointer v_object);
void value_take_screensaver (GValue* value,
                             gpointer v_object);
gpointer value_get_screensaver (const GValue* value);
GType screensaver_get_type (void) G_GNUC_CONST;
#define SLIDESHOW_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SLIDESHOW_PAGE, SlideshowPagePrivate))
#define SLIDESHOW_PAGE_READAHEAD_COUNT 5
#define SLIDESHOW_PAGE_CHECK_ADVANCE_MSEC 250
SlideshowPage* slideshow_page_new (SourceCollection* sources,
                                   ViewCollection* controller,
                                   Photo* start);
SlideshowPage* slideshow_page_construct (GType object_type,
                                         SourceCollection* sources,
                                         ViewCollection* controller,
                                         Photo* start);
SinglePhotoPage* single_photo_page_construct (GType object_type,
                                              const gchar* page_name,
                                              gboolean scale_up_to_viewport);
gpointer transition_effects_manager_ref (gpointer instance);
void transition_effects_manager_unref (gpointer instance);
GParamSpec* param_spec_transition_effects_manager (const gchar* name,
                                                   const gchar* nick,
                                                   const gchar* blurb,
                                                   GType object_type,
                                                   GParamFlags flags);
void value_set_transition_effects_manager (GValue* value,
                                           gpointer v_object);
void value_take_transition_effects_manager (GValue* value,
                                            gpointer v_object);
gpointer value_get_transition_effects_manager (const GValue* value);
GType transition_effects_manager_get_type (void) G_GNUC_CONST;
TransitionEffectsManager* transition_effects_manager_get_instance (void);
GeeCollection* transition_effects_manager_get_effect_ids (TransitionEffectsManager* self);
#define NULL_TRANSITION_DESCRIPTOR_EFFECT_ID "org.yorba.shotwell.transitions.null"
#define RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID "org.yorba.shotwell.transitions.random"
static void slideshow_page_update_transition_effect (SlideshowPage* self);
GtkToolbar* page_get_toolbar (Page* self);
void single_photo_page_on_previous_photo (SinglePhotoPage* self);
static void _single_photo_page_on_previous_photo_gtk_tool_button_clicked (GtkToolButton* _sender,
                                                                   gpointer self);
static void slideshow_page_on_play_pause (SlideshowPage* self);
static void _slideshow_page_on_play_pause_gtk_tool_button_clicked (GtkToolButton* _sender,
                                                            gpointer self);
void single_photo_page_on_next_photo (SinglePhotoPage* self);
static void _single_photo_page_on_next_photo_gtk_tool_button_clicked (GtkToolButton* _sender,
                                                               gpointer self);
static void slideshow_page_on_change_settings (SlideshowPage* self);
static void _slideshow_page_on_change_settings_gtk_tool_button_clicked (GtkToolButton* _sender,
                                                                 gpointer self);
Screensaver* screensaver_new (void);
Screensaver* screensaver_construct (GType object_type);
static void slideshow_page_real_switched_to (Page* base);
void page_switched_to (Page* self);
GType pixbuf_cache_photo_type_get_type (void) G_GNUC_CONST;
GType scaling_get_type (void) G_GNUC_CONST;
GType scale_constraint_get_type (void) G_GNUC_CONST;
Scaling* scaling_dup (const Scaling* self);
void scaling_free (Scaling* self);
void single_photo_page_get_canvas_scaling (SinglePhotoPage* self,
                                           Scaling* result);
PixbufCache* pixbuf_cache_new (SourceCollection* sources,
                               PixbufCachePhotoType type,
                               Scaling* scaling,
                               gint max_count,
                               PixbufCacheCacheFilter filter,
                               void* filter_target);
PixbufCache* pixbuf_cache_construct (GType object_type,
                                     SourceCollection* sources,
                                     PixbufCachePhotoType type,
                                     Scaling* scaling,
                                     gint max_count,
                                     PixbufCacheCacheFilter filter,
                                     void* filter_target);
GType direction_get_type (void) G_GNUC_CONST;
static gboolean slideshow_page_get_next_photo (SlideshowPage* self,
                                        Photo* start,
                                        Direction direction,
                                        Photo* * next,
                                        GdkPixbuf* * next_pixbuf);
void single_photo_page_set_pixbuf (SinglePhotoPage* self,
                                   GdkPixbuf* unscaled,
                                   Dimensions* max_dim,
                                   Direction* direction);
GType photo_exception_get_type (void) G_GNUC_CONST;
void media_source_get_dimensions (MediaSource* self,
                                  PhotoException disallowed_steps,
                                  Dimensions* result);
static gboolean slideshow_page_auto_advance (SlideshowPage* self);
static gboolean _slideshow_page_auto_advance_gsource_func (gpointer self);
void screensaver_inhibit (Screensaver* self,
                          const gchar* reason);
static void slideshow_page_real_switching_from (Page* base);
void page_switching_from (Page* self);
void screensaver_uninhibit (Screensaver* self);
GdkPixbuf* pixbuf_cache_fetch (PixbufCache* self,
                               Photo* photo,
                               GError** error);
gchar* data_object_to_string (DataObject* self);
GType data_view_get_type (void) G_GNUC_CONST;
DataView* view_collection_get_view_for_source (ViewCollection* self,
                                               DataSource* source);
DataView* view_collection_get_next (ViewCollection* self,
                                    DataView* view);
DataView* view_collection_get_previous (ViewCollection* self,
                                        DataView* view);
DataSource* data_view_get_source (DataView* self);
void app_window_error_message (const gchar* message,
                               GtkWindow* parent);
GtkWindow* page_get_container (Page* self);
GType app_window_get_type (void) G_GNUC_CONST;
AppWindow* app_window_get_instance (void);
void app_window_end_fullscreen (AppWindow* self);
gboolean view_collection_get_immediate_neighbors (ViewCollection* self,
                                                  DataSource* home,
                                                  DataSource* * next,
                                                  DataSource* * prev,
                                                  const gchar* type_selector);
#define PHOTO_TYPENAME "thumb"
GType background_job_job_priority_get_type (void) G_GNUC_CONST;
void pixbuf_cache_prefetch (PixbufCache* self,
                            Photo* photo,
                            BackgroundJobJobPriority priority,
                            gboolean force);
GeeSet* view_collection_get_extended_neighbors (ViewCollection* self,
                                                DataSource* home,
                                                const gchar* typename);
void pixbuf_cache_prefetch_many (PixbufCache* self,
                                 GeeCollection* photos,
                                 BackgroundJobJobPriority priority,
                                 gboolean force);
static void slideshow_page_real_on_previous_photo (SinglePhotoPage* base);
static void slideshow_page_advance (SlideshowPage* self,
                             Photo* photo,
                             Direction direction);
static void slideshow_page_real_on_next_photo (SinglePhotoPage* base);
GType configuration_facade_get_type (void) G_GNUC_CONST;
GType config_facade_get_type (void) G_GNUC_CONST;
ConfigFacade* config_facade_get_instance (void);
gchar* configuration_facade_get_slideshow_transition_effect_id (ConfigurationFacade* self);
static void slideshow_page_random_transition_effect (SlideshowPage* self);
gdouble configuration_facade_get_slideshow_delay (ConfigurationFacade* self);
static gboolean slideshow_page_real_key_press_event (GtkWidget* base,
                                              GdkEventKey* event);
static GType slideshow_page_settings_dialog_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static SlideshowPageSettingsDialog* slideshow_page_settings_dialog_new (void);
static SlideshowPageSettingsDialog* slideshow_page_settings_dialog_construct (GType object_type);
void configuration_facade_set_slideshow_delay (ConfigurationFacade* self,
                                               gdouble delay);
static gdouble slideshow_page_settings_dialog_get_delay (SlideshowPageSettingsDialog* self);
void configuration_facade_set_slideshow_transition_delay (ConfigurationFacade* self,
                                                          gdouble delay);
static gdouble slideshow_page_settings_dialog_get_transition_delay (SlideshowPageSettingsDialog* self);
void configuration_facade_set_slideshow_transition_effect_id (ConfigurationFacade* self,
                                                              const gchar* id);
static gchar* slideshow_page_settings_dialog_get_transition_effect_id (SlideshowPageSettingsDialog* self);
void configuration_facade_set_slideshow_show_title (ConfigurationFacade* self,
                                                    gboolean show_title);
static gboolean slideshow_page_settings_dialog_get_show_title (SlideshowPageSettingsDialog* self);
gdouble configuration_facade_get_slideshow_transition_delay (ConfigurationFacade* self);
void single_photo_page_set_transition (SinglePhotoPage* self,
                                       const gchar* effect_id,
                                       gint duration_msec);
#define TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID NULL_TRANSITION_DESCRIPTOR_EFFECT_ID
static void slideshow_page_paint_title (SlideshowPage* self,
                                 cairo_t* ctx,
                                 Dimensions* ctx_dim);
gchar* media_source_get_title (MediaSource* self);
void set_source_color_from_string (cairo_t* ctx,
                                   const gchar* spec);
static void slideshow_page_real_paint (SinglePhotoPage* base,
                                cairo_t* ctx,
                                Dimensions* ctx_dim);
void single_photo_page_paint (SinglePhotoPage* self,
                              cairo_t* ctx,
                              Dimensions* ctx_dim);
gboolean configuration_facade_get_slideshow_show_title (ConfigurationFacade* self);
gboolean single_photo_page_is_transition_in_progress (SinglePhotoPage* self);
#define SLIDESHOW_PAGE_SETTINGS_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialogPrivate))
FullscreenWindow* app_window_get_fullscreen (void);
gchar* transition_effects_manager_get_effect_name (TransitionEffectsManager* self,
                                                   const gchar* effect_id);
GeeCollection* transition_effects_manager_get_effect_names (TransitionEffectsManager* self,
                                                            GCompareDataFunc comparator,
                                                            void* comparator_target,
                                                            GDestroyNotify comparator_target_destroy_notify);
gint utf8_ci_compare (void* a,
                      void* b);
static gint _utf8_ci_compare_gcompare_data_func (gconstpointer a,
                                          gconstpointer b,
                                          gpointer self);
gchar* transition_effects_manager_get_id_for_effect_name (TransitionEffectsManager* self,
                                                          const gchar* effect_name);
static void slideshow_page_settings_dialog_on_transition_changed (SlideshowPageSettingsDialog* self);
static void _slideshow_page_settings_dialog_on_transition_changed_gtk_combo_box_changed (GtkComboBox* _sender,
                                                                                  gpointer self);
static void slideshow_page_settings_dialog_finalize (GObject * obj);
static void slideshow_page_finalize (GObject * obj);
static void _vala_array_destroy (gpointer array,
                          gint array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gint array_length,
                       GDestroyNotify destroy_func);


static gpointer
_data_collection_ref0 (gpointer self)
{
#line 117 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return self ? data_collection_ref (self) : NULL;
#line 764 "SlideshowPage.c"
}


static gpointer
_g_object_ref0 (gpointer self)
{
#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return self ? g_object_ref (self) : NULL;
#line 773 "SlideshowPage.c"
}


static void
_single_photo_page_on_previous_photo_gtk_tool_button_clicked (GtkToolButton* _sender,
                                                              gpointer self)
{
#line 137 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	single_photo_page_on_previous_photo ((SinglePhotoPage*) self);
#line 783 "SlideshowPage.c"
}


static void
_slideshow_page_on_play_pause_gtk_tool_button_clicked (GtkToolButton* _sender,
                                                       gpointer self)
{
#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_on_play_pause ((SlideshowPage*) self);
#line 793 "SlideshowPage.c"
}


static void
_single_photo_page_on_next_photo_gtk_tool_button_clicked (GtkToolButton* _sender,
                                                          gpointer self)
{
#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	single_photo_page_on_next_photo ((SinglePhotoPage*) self);
#line 803 "SlideshowPage.c"
}


static void
_slideshow_page_on_change_settings_gtk_tool_button_clicked (GtkToolButton* _sender,
                                                            gpointer self)
{
#line 159 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_on_change_settings ((SlideshowPage*) self);
#line 813 "SlideshowPage.c"
}


SlideshowPage*
slideshow_page_construct (GType object_type,
                          SourceCollection* sources,
                          ViewCollection* controller,
                          Photo* start)
{
	SlideshowPage * self = NULL;
	SourceCollection* _tmp0_;
	ViewCollection* _tmp1_;
	GeeCollection* pluggables = NULL;
	TransitionEffectsManager* _tmp2_;
	TransitionEffectsManager* _tmp3_;
	GeeCollection* _tmp4_;
	GeeCollection* _tmp5_;
	GeeArrayList* a = NULL;
	GeeArrayList* _tmp6_;
	gint _tmp7_;
	gpointer* _tmp8_;
	Photo* _tmp9_;
	GtkToolbar* toolbar = NULL;
	GtkToolbar* _tmp10_;
	GtkToolButton* previous_button = NULL;
	GtkToolButton* _tmp11_;
	GtkToolButton* _tmp12_;
	GtkToolButton* _tmp13_;
	GtkToolButton* _tmp14_;
	GtkToolButton* _tmp15_;
	GtkToolButton* _tmp16_;
	GtkToolButton* next_button = NULL;
	GtkToolButton* _tmp17_;
	GtkToolButton* _tmp18_;
	GtkToolButton* _tmp19_;
	GtkToolButton* _tmp20_;
	GtkToolButton* _tmp21_;
	GtkToolButton* _tmp22_;
	GtkToolButton* _tmp23_;
	GtkToolButton* _tmp24_;
	Screensaver* _tmp25_;
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_VIEW_COLLECTION (controller), NULL);
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_PHOTO (start), NULL);
#line 115 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = (SlideshowPage*) single_photo_page_construct (object_type, _ ("Slideshow"), TRUE);
#line 117 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = _data_collection_ref0 (sources);
#line 117 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_data_collection_unref0 (self->priv->sources);
#line 117 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->sources = _tmp0_;
#line 118 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _data_collection_ref0 (controller);
#line 118 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_data_collection_unref0 (self->priv->controller);
#line 118 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->controller = _tmp1_;
#line 120 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = transition_effects_manager_get_instance ();
#line 120 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _tmp2_;
#line 120 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = transition_effects_manager_get_effect_ids (_tmp3_);
#line 120 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = _tmp4_;
#line 120 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_transition_effects_manager_unref0 (_tmp3_);
#line 120 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pluggables = _tmp5_;
#line 121 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 121 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	a = _tmp6_;
#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gee_array_list_add_all (a, pluggables);
#line 123 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), NULL_TRANSITION_DESCRIPTOR_EFFECT_ID);
#line 124 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID);
#line 125 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = gee_collection_to_array (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_COLLECTION, GeeCollection), &_tmp7_);
#line 125 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transitions = (_vala_array_free (self->priv->transitions, self->priv->transitions_length1, (GDestroyNotify) g_free), NULL);
#line 125 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transitions = _tmp8_;
#line 125 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transitions_length1 = _tmp7_;
#line 125 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->_transitions_size_ = self->priv->transitions_length1;
#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp9_ = _g_object_ref0 (start);
#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp9_;
#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_update_transition_effect (self);
#line 131 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 131 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	toolbar = _tmp10_;
#line 134 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = (GtkToolButton*) gtk_tool_button_new (NULL, _ ("Back"));
#line 134 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp11_);
#line 134 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	previous_button = _tmp11_;
#line 135 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_icon_name (previous_button, "go-previous");
#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (previous_button, gtk_tool_item_get_type (), GtkToolItem), _ ("Go to the previous photo"));
#line 137 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_connect_object (previous_button, "clicked", (GCallback) _single_photo_page_on_previous_photo_gtk_tool_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), 0);
#line 139 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (previous_button, gtk_tool_item_get_type (), GtkToolItem), -1);
#line 141 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = (GtkToolButton*) gtk_tool_button_new (NULL, _ ("Pause"));
#line 141 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp12_);
#line 141 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->play_pause_button);
#line 141 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->play_pause_button = _tmp12_;
#line 142 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp13_ = self->priv->play_pause_button;
#line 142 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_icon_name (_tmp13_, "media-playback-pause");
#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp14_ = self->priv->play_pause_button;
#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_tool_item_get_type (), GtkToolItem), _ ("Pause the slideshow"));
#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp15_ = self->priv->play_pause_button;
#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_connect_object (_tmp15_, "clicked", (GCallback) _slideshow_page_on_play_pause_gtk_tool_button_clicked, self, 0);
#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp16_ = self->priv->play_pause_button;
#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_tool_item_get_type (), GtkToolItem), -1);
#line 148 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp17_ = (GtkToolButton*) gtk_tool_button_new (NULL, _ ("Next"));
#line 148 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp17_);
#line 148 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_button = _tmp17_;
#line 149 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_icon_name (next_button, "go-next");
#line 150 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (next_button, gtk_tool_item_get_type (), GtkToolItem), _ ("Go to the next photo"));
#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_connect_object (next_button, "clicked", (GCallback) _single_photo_page_on_next_photo_gtk_tool_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), 0);
#line 153 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (next_button, gtk_tool_item_get_type (), GtkToolItem), -1);
#line 155 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp18_ = (GtkToolButton*) gtk_tool_button_new (NULL, NULL);
#line 155 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp18_);
#line 155 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->settings_button);
#line 155 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->settings_button = _tmp18_;
#line 156 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp19_ = self->priv->settings_button;
#line 156 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_icon_name (_tmp19_, "preferences-system");
#line 157 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = self->priv->settings_button;
#line 157 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_label (_tmp20_, _ ("Settings"));
#line 158 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp21_ = self->priv->settings_button;
#line 158 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_tool_item_get_type (), GtkToolItem), _ ("Change slideshow settings"));
#line 159 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp22_ = self->priv->settings_button;
#line 159 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_connect_object (_tmp22_, "clicked", (GCallback) _slideshow_page_on_change_settings_gtk_tool_button_clicked, self, 0);
#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = self->priv->settings_button;
#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
#line 162 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = self->priv->settings_button;
#line 162 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_tool_item_get_type (), GtkToolItem), -1);
#line 164 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp25_ = screensaver_new ();
#line 164 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_screensaver_unref0 (self->priv->screensaver);
#line 164 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->screensaver = _tmp25_;
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_button);
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (previous_button);
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (toolbar);
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (a);
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (pluggables);
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return self;
#line 1021 "SlideshowPage.c"
}


SlideshowPage*
slideshow_page_new (SourceCollection* sources,
                    ViewCollection* controller,
                    Photo* start)
{
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return slideshow_page_construct (TYPE_SLIDESHOW_PAGE, sources, controller, start);
#line 1032 "SlideshowPage.c"
}


static gboolean
_slideshow_page_auto_advance_gsource_func (gpointer self)
{
	gboolean result;
	result = slideshow_page_auto_advance ((SlideshowPage*) self);
#line 179 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 1043 "SlideshowPage.c"
}


static void
slideshow_page_real_switched_to (Page* base)
{
	SlideshowPage * self;
	SourceCollection* _tmp0_;
	Scaling _tmp1_ = {0};
	PixbufCache* _tmp2_;
	GdkPixbuf* pixbuf = NULL;
	Photo* _tmp3_;
	Photo* _tmp4_ = NULL;
	GdkPixbuf* _tmp5_ = NULL;
	gboolean _tmp6_;
	GTimer* _tmp11_;
	Screensaver* _tmp12_;
#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 168 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	PAGE_CLASS (slideshow_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page));
#line 171 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->sources;
#line 171 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_);
#line 171 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = pixbuf_cache_new (_tmp0_, PIXBUF_CACHE_PHOTO_TYPE_BASELINE, &_tmp1_, SLIDESHOW_PAGE_READAHEAD_COUNT, NULL, NULL);
#line 171 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->cache);
#line 171 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->cache = _tmp2_;
#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = self->priv->current;
#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = slideshow_page_get_next_photo (self, _tmp3_, DIRECTION_FORWARD, &_tmp4_, &_tmp5_);
#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp4_;
#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (pixbuf);
#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pixbuf = _tmp5_;
#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 1089 "SlideshowPage.c"
		GdkPixbuf* _tmp7_;
		Photo* _tmp8_;
		Dimensions _tmp9_ = {0};
		Direction _tmp10_;
#line 176 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = pixbuf;
#line 176 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = self->priv->current;
#line 176 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp9_);
#line 176 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = DIRECTION_FORWARD;
#line 176 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp7_, &_tmp9_, &_tmp10_);
#line 1104 "SlideshowPage.c"
	}
#line 179 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) SLIDESHOW_PAGE_CHECK_ADVANCE_MSEC, _slideshow_page_auto_advance_gsource_func, g_object_ref (self), g_object_unref);
#line 180 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = self->priv->timer;
#line 180 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp11_);
#line 182 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = self->priv->screensaver;
#line 182 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	screensaver_inhibit (_tmp12_, "Playing slideshow");
#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (pixbuf);
#line 1118 "SlideshowPage.c"
}


static void
slideshow_page_real_switching_from (Page* base)
{
	SlideshowPage * self;
	Screensaver* _tmp0_;
#line 185 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 186 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	PAGE_CLASS (slideshow_page_parent_class)->switching_from (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page));
#line 188 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->screensaver;
#line 188 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	screensaver_uninhibit (_tmp0_);
#line 189 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->exiting = TRUE;
#line 1137 "SlideshowPage.c"
}


static gboolean
slideshow_page_get_next_photo (SlideshowPage* self,
                               Photo* start,
                               Direction direction,
                               Photo* * next,
                               GdkPixbuf* * next_pixbuf)
{
	Photo* _vala_next = NULL;
	GdkPixbuf* _vala_next_pixbuf = NULL;
	gboolean result = FALSE;
	Photo* _tmp0_;
	GError * _inner_error_ = NULL;
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_SLIDESHOW_PAGE (self), FALSE);
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_PHOTO (start), FALSE);
#line 194 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = _g_object_ref0 (start);
#line 194 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_vala_next);
#line 194 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_vala_next = _tmp0_;
#line 1163 "SlideshowPage.c"
	{
		gboolean _tmp1_ = FALSE;
#line 196 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp1_ = TRUE;
#line 196 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		while (TRUE) {
#line 1170 "SlideshowPage.c"
			DataSource* forward = NULL;
			DataSource* back = NULL;
			ViewCollection* _tmp37_;
			Photo* _tmp38_;
			DataSource* _tmp39_ = NULL;
			DataSource* _tmp40_ = NULL;
			PixbufCache* _tmp41_;
			DataSource* _tmp42_;
			PixbufCache* _tmp43_;
			DataSource* _tmp44_;
			GeeSet* neighbors = NULL;
			ViewCollection* _tmp45_;
			Photo* _tmp46_;
			GeeSet* _tmp47_;
			GeeSet* _tmp48_;
			DataSource* _tmp49_;
			GeeSet* _tmp50_;
			DataSource* _tmp51_;
			PixbufCache* _tmp52_;
			GeeSet* _tmp53_;
#line 196 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (!_tmp1_) {
#line 1193 "SlideshowPage.c"
			}
#line 196 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp1_ = FALSE;
#line 1197 "SlideshowPage.c"
			{
				GdkPixbuf* _tmp2_ = NULL;
				PixbufCache* _tmp3_;
				Photo* _tmp4_;
				GdkPixbuf* _tmp5_;
				GdkPixbuf* _tmp6_;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp3_ = self->priv->cache;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp4_ = _vala_next;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp5_ = pixbuf_cache_fetch (_tmp3_, _tmp4_, &_inner_error_);
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp2_ = _tmp5_;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1214 "SlideshowPage.c"
					goto __catch470_g_error;
				}
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp6_ = _tmp2_;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp2_ = NULL;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next_pixbuf);
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_vala_next_pixbuf = _tmp6_;
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_tmp2_);
#line 1227 "SlideshowPage.c"
			}
			goto __finally470;
			__catch470_g_error:
			{
				GError* err = NULL;
				Photo* _tmp7_;
				gchar* _tmp8_;
				gchar* _tmp9_;
				GError* _tmp10_;
				const gchar* _tmp11_;
				DataView* view = NULL;
				ViewCollection* _tmp12_;
				Photo* _tmp13_;
				DataView* _tmp14_;
				DataView* _tmp15_ = NULL;
				DataView* _tmp22_;
				DataView* _tmp23_;
				DataSource* _tmp24_;
				gboolean _tmp25_ = FALSE;
				gboolean _tmp26_ = FALSE;
				Photo* _tmp27_;
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				err = _inner_error_;
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_inner_error_ = NULL;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp7_ = _vala_next;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp8_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_OBJECT, DataObject));
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp9_ = _tmp8_;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp10_ = err;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp11_ = _tmp10_->message;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				g_warning ("SlideshowPage.vala:201: Unable to fetch pixbuf for %s: %s", _tmp9_, _tmp11_);
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_free0 (_tmp9_);
#line 204 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp12_ = self->priv->controller;
#line 204 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp13_ = _vala_next;
#line 204 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp14_ = view_collection_get_view_for_source (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_SOURCE, DataSource));
#line 204 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				view = _tmp14_;
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (direction == DIRECTION_FORWARD) {
#line 1277 "SlideshowPage.c"
					ViewCollection* _tmp16_;
					DataView* _tmp17_;
					DataView* _tmp18_;
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp16_ = self->priv->controller;
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp17_ = view;
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp18_ = view_collection_get_next (_tmp16_, _tmp17_);
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp15_);
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp15_ = _tmp18_;
#line 1291 "SlideshowPage.c"
				} else {
					ViewCollection* _tmp19_;
					DataView* _tmp20_;
					DataView* _tmp21_;
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp19_ = self->priv->controller;
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp20_ = view;
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp21_ = view_collection_get_previous (_tmp19_, _tmp20_);
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp15_);
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp15_ = _tmp21_;
#line 1306 "SlideshowPage.c"
				}
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp22_ = _g_object_ref0 (_tmp15_);
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (view);
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				view = _tmp22_;
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp23_ = view;
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp24_ = data_view_get_source (_tmp23_);
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next);
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_vala_next = G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_PHOTO, Photo);
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp27_ = _vala_next;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp27_ == start) {
#line 1326 "SlideshowPage.c"
					Photo* _tmp28_;
					Photo* _tmp29_;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp28_ = _vala_next;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp29_ = self->priv->current;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp26_ = _tmp28_ != _tmp29_;
#line 1335 "SlideshowPage.c"
				} else {
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp26_ = FALSE;
#line 1339 "SlideshowPage.c"
				}
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp26_) {
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp25_ = TRUE;
#line 1345 "SlideshowPage.c"
				} else {
					Photo* _tmp30_;
					Photo* _tmp31_;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp30_ = _vala_next;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp31_ = self->priv->current;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp25_ = _tmp30_ == _tmp31_;
#line 1355 "SlideshowPage.c"
				}
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp25_) {
#line 1359 "SlideshowPage.c"
					GtkWindow* _tmp32_;
					GtkWindow* _tmp33_;
					AppWindow* _tmp34_;
					AppWindow* _tmp35_;
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp32_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp33_ = _tmp32_;
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					app_window_error_message (_ ("All photo source files are missing."), _tmp33_);
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp33_);
#line 213 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp34_ = app_window_get_instance ();
#line 213 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp35_ = _tmp34_;
#line 213 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					app_window_end_fullscreen (_tmp35_);
#line 213 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp35_);
#line 215 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_vala_next);
#line 215 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_vala_next = NULL;
#line 216 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_vala_next_pixbuf);
#line 216 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_vala_next_pixbuf = NULL;
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					result = FALSE;
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp15_);
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (view);
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_error_free0 (err);
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					if (next) {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						*next = _vala_next;
#line 1400 "SlideshowPage.c"
					} else {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						_g_object_unref0 (_vala_next);
#line 1404 "SlideshowPage.c"
					}
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					if (next_pixbuf) {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						*next_pixbuf = _vala_next_pixbuf;
#line 1410 "SlideshowPage.c"
					} else {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						_g_object_unref0 (_vala_next_pixbuf);
#line 1414 "SlideshowPage.c"
					}
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					return result;
#line 1418 "SlideshowPage.c"
				}
#line 221 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_tmp15_);
#line 221 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (view);
#line 221 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_error_free0 (err);
#line 221 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				continue;
#line 1428 "SlideshowPage.c"
			}
			__finally470:
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1433 "SlideshowPage.c"
				gboolean _tmp36_ = FALSE;
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				g_clear_error (&_inner_error_);
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				return _tmp36_;
#line 1441 "SlideshowPage.c"
			}
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp37_ = self->priv->controller;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp38_ = _vala_next;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			view_collection_get_immediate_neighbors (_tmp37_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_DATA_SOURCE, DataSource), &_tmp39_, &_tmp40_, PHOTO_TYPENAME);
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (forward);
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			forward = _tmp39_;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (back);
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			back = _tmp40_;
#line 228 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp41_ = self->priv->cache;
#line 228 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp42_ = forward;
#line 228 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch (_tmp41_, G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_PHOTO, Photo), BACKGROUND_JOB_JOB_PRIORITY_HIGHEST, FALSE);
#line 229 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp43_ = self->priv->cache;
#line 229 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp44_ = back;
#line 229 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch (_tmp43_, G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, TYPE_PHOTO, Photo), BACKGROUND_JOB_JOB_PRIORITY_NORMAL, FALSE);
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp45_ = self->priv->controller;
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp46_ = _vala_next;
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp47_ = view_collection_get_extended_neighbors (_tmp45_, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_DATA_SOURCE, DataSource), PHOTO_TYPENAME);
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			neighbors = _tmp47_;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp48_ = neighbors;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp49_ = forward;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_COLLECTION, GeeCollection), _tmp49_);
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp50_ = neighbors;
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp51_ = back;
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_COLLECTION, GeeCollection), _tmp51_);
#line 235 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp52_ = self->priv->cache;
#line 235 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp53_ = neighbors;
#line 235 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch_many (_tmp52_, G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection), BACKGROUND_JOB_JOB_PRIORITY_LOWEST, FALSE);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			result = TRUE;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (neighbors);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (back);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (forward);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (next) {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				*next = _vala_next;
#line 1507 "SlideshowPage.c"
			} else {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next);
#line 1511 "SlideshowPage.c"
			}
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (next_pixbuf) {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				*next_pixbuf = _vala_next_pixbuf;
#line 1517 "SlideshowPage.c"
			} else {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next_pixbuf);
#line 1521 "SlideshowPage.c"
			}
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			return result;
#line 1525 "SlideshowPage.c"
		}
	}
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (next) {
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		*next = _vala_next;
#line 1532 "SlideshowPage.c"
	} else {
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_vala_next);
#line 1536 "SlideshowPage.c"
	}
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (next_pixbuf) {
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		*next_pixbuf = _vala_next_pixbuf;
#line 1542 "SlideshowPage.c"
	} else {
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_vala_next_pixbuf);
#line 1546 "SlideshowPage.c"
	}
}


static void
slideshow_page_on_play_pause (SlideshowPage* self)
{
	gboolean _tmp0_;
	gboolean _tmp7_;
	GTimer* _tmp8_;
#line 241 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 242 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->playing;
#line 242 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp0_) {
#line 1563 "SlideshowPage.c"
		GtkToolButton* _tmp1_;
		GtkToolButton* _tmp2_;
		GtkToolButton* _tmp3_;
#line 243 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp1_ = self->priv->play_pause_button;
#line 243 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_button_set_icon_name (_tmp1_, "media-playback-start");
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = self->priv->play_pause_button;
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_button_set_label (_tmp2_, _ ("Play"));
#line 245 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp3_ = self->priv->play_pause_button;
#line 245 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_tool_item_get_type (), GtkToolItem), _ ("Continue the slideshow"));
#line 1579 "SlideshowPage.c"
	} else {
		GtkToolButton* _tmp4_;
		GtkToolButton* _tmp5_;
		GtkToolButton* _tmp6_;
#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp4_ = self->priv->play_pause_button;
#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_button_set_icon_name (_tmp4_, "media-playback-pause");
#line 248 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5_ = self->priv->play_pause_button;
#line 248 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_button_set_label (_tmp5_, _ ("Pause"));
#line 249 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = self->priv->play_pause_button;
#line 249 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_tool_item_get_type (), GtkToolItem), _ ("Pause the slideshow"));
#line 1596 "SlideshowPage.c"
	}
#line 252 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = self->priv->playing;
#line 252 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = !_tmp7_;
#line 255 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = self->priv->timer;
#line 255 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp8_);
#line 1606 "SlideshowPage.c"
}


static void
slideshow_page_real_on_previous_photo (SinglePhotoPage* base)
{
	SlideshowPage * self;
	DataView* view = NULL;
	ViewCollection* _tmp0_;
	Photo* _tmp1_;
	DataView* _tmp2_;
	Photo* prev_photo = NULL;
	DataView* start_view = NULL;
	ViewCollection* _tmp3_;
	DataView* _tmp4_;
	DataView* _tmp5_;
	DataView* prev_view = NULL;
	DataView* _tmp6_;
	DataView* _tmp7_;
	Photo* _tmp20_;
#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->controller;
#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = self->priv->current;
#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = view_collection_get_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	view = _tmp2_;
#line 261 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	prev_photo = NULL;
#line 262 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = self->priv->controller;
#line 262 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = view;
#line 262 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = view_collection_get_previous (_tmp3_, _tmp4_);
#line 262 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	start_view = _tmp5_;
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = start_view;
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = _g_object_ref0 (_tmp6_);
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	prev_view = _tmp7_;
#line 265 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	while (TRUE) {
#line 1655 "SlideshowPage.c"
		DataView* _tmp8_;
		DataView* _tmp9_;
		DataSource* _tmp10_;
		DataSource* _tmp11_;
		gboolean _tmp12_;
		ViewCollection* _tmp15_;
		DataView* _tmp16_;
		DataView* _tmp17_;
		DataView* _tmp18_;
		DataView* _tmp19_;
#line 265 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = prev_view;
#line 265 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (!(_tmp8_ != NULL)) {
#line 265 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			break;
#line 1672 "SlideshowPage.c"
		}
#line 266 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = prev_view;
#line 266 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = data_view_get_source (_tmp9_);
#line 266 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = _tmp10_;
#line 266 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_PHOTO);
#line 266 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp11_);
#line 266 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (_tmp12_) {
#line 1686 "SlideshowPage.c"
			DataView* _tmp13_;
			DataSource* _tmp14_;
#line 267 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp13_ = prev_view;
#line 267 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp14_ = data_view_get_source (_tmp13_);
#line 267 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (prev_photo);
#line 267 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			prev_photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO, Photo);
#line 268 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			break;
#line 1699 "SlideshowPage.c"
		}
#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp15_ = self->priv->controller;
#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp16_ = prev_view;
#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp17_ = view_collection_get_previous (_tmp15_, _tmp16_);
#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (prev_view);
#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		prev_view = _tmp17_;
#line 273 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp18_ = prev_view;
#line 273 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp19_ = start_view;
#line 273 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (_tmp18_ == _tmp19_) {
#line 274 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			g_warning ("SlideshowPage.vala:274: on_previous( ): can't advance to previous phot" \
"o: collection has only videos");
#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (prev_view);
#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (start_view);
#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (prev_photo);
#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (view);
#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			return;
#line 1729 "SlideshowPage.c"
		}
	}
#line 279 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = prev_photo;
#line 279 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_advance (self, _tmp20_, DIRECTION_BACKWARD);
#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (prev_view);
#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (start_view);
#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (prev_photo);
#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (view);
#line 1744 "SlideshowPage.c"
}


static void
slideshow_page_real_on_next_photo (SinglePhotoPage* base)
{
	SlideshowPage * self;
	DataView* view = NULL;
	ViewCollection* _tmp0_;
	Photo* _tmp1_;
	DataView* _tmp2_;
	Photo* next_photo = NULL;
	DataView* start_view = NULL;
	ViewCollection* _tmp3_;
	DataView* _tmp4_;
	DataView* _tmp5_;
	DataView* next_view = NULL;
	DataView* _tmp6_;
	DataView* _tmp7_;
	ConfigFacade* _tmp20_;
	ConfigFacade* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gboolean _tmp24_;
	Photo* _tmp25_;
#line 282 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 283 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->controller;
#line 283 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = self->priv->current;
#line 283 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = view_collection_get_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
#line 283 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	view = _tmp2_;
#line 285 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_photo = NULL;
#line 286 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = self->priv->controller;
#line 286 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = view;
#line 286 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = view_collection_get_next (_tmp3_, _tmp4_);
#line 286 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	start_view = _tmp5_;
#line 287 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = start_view;
#line 287 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = _g_object_ref0 (_tmp6_);
#line 287 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_view = _tmp7_;
#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	while (TRUE) {
#line 1798 "SlideshowPage.c"
		DataView* _tmp8_;
		DataView* _tmp9_;
		DataSource* _tmp10_;
		DataSource* _tmp11_;
		gboolean _tmp12_;
		ViewCollection* _tmp15_;
		DataView* _tmp16_;
		DataView* _tmp17_;
		DataView* _tmp18_;
		DataView* _tmp19_;
#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = next_view;
#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (!(_tmp8_ != NULL)) {
#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			break;
#line 1815 "SlideshowPage.c"
		}
#line 290 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = next_view;
#line 290 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = data_view_get_source (_tmp9_);
#line 290 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = _tmp10_;
#line 290 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_PHOTO);
#line 290 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp11_);
#line 290 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (_tmp12_) {
#line 1829 "SlideshowPage.c"
			DataView* _tmp13_;
			DataSource* _tmp14_;
#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp13_ = next_view;
#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp14_ = data_view_get_source (_tmp13_);
#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (next_photo);
#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			next_photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO, Photo);
#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			break;
#line 1842 "SlideshowPage.c"
		}
#line 295 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp15_ = self->priv->controller;
#line 295 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp16_ = next_view;
#line 295 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp17_ = view_collection_get_next (_tmp15_, _tmp16_);
#line 295 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (next_view);
#line 295 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		next_view = _tmp17_;
#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp18_ = next_view;
#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp19_ = start_view;
#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (_tmp18_ == _tmp19_) {
#line 298 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			g_warning ("SlideshowPage.vala:298: on_next( ): can't advance to next photo: colle" \
"ction has only videos");
#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (next_view);
#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (start_view);
#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (next_photo);
#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (view);
#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			return;
#line 1872 "SlideshowPage.c"
		}
	}
#line 303 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = config_facade_get_instance ();
#line 303 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp21_ = _tmp20_;
#line 303 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp22_ = configuration_facade_get_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 303 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = _tmp22_;
#line 303 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = g_strcmp0 (_tmp23_, RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID) == 0;
#line 303 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (_tmp23_);
#line 303 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp21_);
#line 303 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp24_) {
#line 305 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		slideshow_page_random_transition_effect (self);
#line 1893 "SlideshowPage.c"
	}
#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp25_ = next_photo;
#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_advance (self, _tmp25_, DIRECTION_FORWARD);
#line 282 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_view);
#line 282 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (start_view);
#line 282 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_photo);
#line 282 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (view);
#line 1907 "SlideshowPage.c"
}


static void
slideshow_page_advance (SlideshowPage* self,
                        Photo* photo,
                        Direction direction)
{
	Photo* _tmp0_;
	GdkPixbuf* next_pixbuf = NULL;
	Photo* _tmp1_;
	Photo* _tmp2_ = NULL;
	GdkPixbuf* _tmp3_ = NULL;
	gboolean _tmp4_;
	GTimer* _tmp8_;
#line 311 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 311 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_PHOTO (photo));
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = _g_object_ref0 (photo);
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp0_;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = self->priv->current;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = slideshow_page_get_next_photo (self, _tmp1_, direction, &_tmp2_, &_tmp3_);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp2_;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_pixbuf);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_pixbuf = _tmp3_;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp4_) {
#line 1947 "SlideshowPage.c"
		GdkPixbuf* _tmp5_;
		Photo* _tmp6_;
		Dimensions _tmp7_ = {0};
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5_ = next_pixbuf;
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = self->priv->current;
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp7_);
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp5_, &_tmp7_, &direction);
#line 1959 "SlideshowPage.c"
	}
#line 320 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = self->priv->timer;
#line 320 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp8_);
#line 311 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_pixbuf);
#line 1967 "SlideshowPage.c"
}


static gboolean
slideshow_page_auto_advance (SlideshowPage* self)
{
	gboolean result = FALSE;
	gboolean _tmp0_;
	gboolean _tmp1_;
	GTimer* _tmp2_;
	gdouble _tmp3_;
	ConfigFacade* _tmp4_;
	ConfigFacade* _tmp5_;
	gboolean _tmp6_;
#line 323 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_SLIDESHOW_PAGE (self), FALSE);
#line 324 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->exiting;
#line 324 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp0_) {
#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = FALSE;
#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 1992 "SlideshowPage.c"
	}
#line 327 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = self->priv->playing;
#line 327 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (!_tmp1_) {
#line 328 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = TRUE;
#line 328 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 2002 "SlideshowPage.c"
	}
#line 330 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = self->priv->timer;
#line 330 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = g_timer_elapsed (_tmp2_, NULL);
#line 330 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = config_facade_get_instance ();
#line 330 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = _tmp4_;
#line 330 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = _tmp3_ < configuration_facade_get_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 330 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp5_);
#line 330 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 331 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = TRUE;
#line 331 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 2022 "SlideshowPage.c"
	}
#line 333 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	single_photo_page_on_next_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
#line 335 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = TRUE;
#line 335 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 2030 "SlideshowPage.c"
}


static gboolean
slideshow_page_real_key_press_event (GtkWidget* base,
                                     GdkEventKey* event)
{
	SlideshowPage * self;
	gboolean result = FALSE;
	gboolean handled = FALSE;
	guint _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	GQuark _tmp4_ = 0U;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	static GQuark _tmp3_label0 = 0;
#line 2047 "SlideshowPage.c"
	gboolean _tmp5_;
	gboolean _tmp6_ = FALSE;
#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 339 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	handled = TRUE;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = event->keyval;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = gdk_keyval_name (_tmp0_);
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = _tmp1_;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = (NULL == _tmp2_) ? 0 : g_quark_from_string (_tmp2_);
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp4_ == ((0 != _tmp3_label0) ? _tmp3_label0 : (_tmp3_label0 = g_quark_from_static_string ("space")))) {
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		switch (0) {
#line 2068 "SlideshowPage.c"
			default:
			{
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				slideshow_page_on_play_pause (self);
#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				break;
#line 2075 "SlideshowPage.c"
			}
		}
	} else {
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		switch (0) {
#line 2081 "SlideshowPage.c"
			default:
			{
#line 346 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				handled = FALSE;
#line 347 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				break;
#line 2088 "SlideshowPage.c"
			}
		}
	}
#line 350 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = handled;
#line 350 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp5_) {
#line 351 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = TRUE;
#line 351 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 2100 "SlideshowPage.c"
	}
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (GTK_WIDGET_CLASS (slideshow_page_parent_class)->key_press_event != NULL) {
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = GTK_WIDGET_CLASS (slideshow_page_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), gtk_widget_get_type (), GtkWidget), event);
#line 2106 "SlideshowPage.c"
	} else {
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = TRUE;
#line 2110 "SlideshowPage.c"
	}
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = _tmp6_;
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 2116 "SlideshowPage.c"
}


static void
slideshow_page_on_change_settings (SlideshowPage* self)
{
	SlideshowPageSettingsDialog* settings_dialog = NULL;
	SlideshowPageSettingsDialog* _tmp0_;
	SlideshowPageSettingsDialog* _tmp1_;
	gboolean slideshow_playing = FALSE;
	gboolean _tmp2_;
	SlideshowPageSettingsDialog* _tmp3_;
	SlideshowPageSettingsDialog* _tmp18_;
	gboolean _tmp19_;
	GTimer* _tmp20_;
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = slideshow_page_settings_dialog_new ();
#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp0_);
#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	settings_dialog = _tmp0_;
#line 358 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = settings_dialog;
#line 358 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
#line 360 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = self->priv->playing;
#line 360 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_playing = _tmp2_;
#line 361 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = FALSE;
#line 362 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_emit (self, slideshow_page_signals[SLIDESHOW_PAGE_HIDE_TOOLBAR_SIGNAL], 0);
#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = settings_dialog;
#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_dialog_get_type (), GtkDialog)) == ((gint) GTK_RESPONSE_OK)) {
#line 2156 "SlideshowPage.c"
		ConfigFacade* _tmp4_;
		ConfigFacade* _tmp5_;
		SlideshowPageSettingsDialog* _tmp6_;
		ConfigFacade* _tmp7_;
		ConfigFacade* _tmp8_;
		SlideshowPageSettingsDialog* _tmp9_;
		ConfigFacade* _tmp10_;
		ConfigFacade* _tmp11_;
		SlideshowPageSettingsDialog* _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
		ConfigFacade* _tmp15_;
		ConfigFacade* _tmp16_;
		SlideshowPageSettingsDialog* _tmp17_;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp4_ = config_facade_get_instance ();
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5_ = _tmp4_;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = settings_dialog;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), slideshow_page_settings_dialog_get_delay (_tmp6_));
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp5_);
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = config_facade_get_instance ();
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = _tmp7_;
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = settings_dialog;
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), slideshow_page_settings_dialog_get_transition_delay (_tmp9_));
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp8_);
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = config_facade_get_instance ();
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = _tmp10_;
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp12_ = settings_dialog;
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp13_ = slideshow_page_settings_dialog_get_transition_effect_id (_tmp12_);
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp14_ = _tmp13_;
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp14_);
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (_tmp14_);
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp11_);
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp15_ = config_facade_get_instance ();
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp16_ = _tmp15_;
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp17_ = settings_dialog;
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), slideshow_page_settings_dialog_get_show_title (_tmp17_));
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp16_);
#line 372 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		slideshow_page_update_transition_effect (self);
#line 2219 "SlideshowPage.c"
	}
#line 375 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp18_ = settings_dialog;
#line 375 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget));
#line 376 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp19_ = slideshow_playing;
#line 376 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = _tmp19_;
#line 377 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = self->priv->timer;
#line 377 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp20_);
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (settings_dialog);
#line 2235 "SlideshowPage.c"
}


static void
slideshow_page_update_transition_effect (SlideshowPage* self)
{
	gchar* effect_id = NULL;
	ConfigFacade* _tmp0_;
	ConfigFacade* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gdouble effect_delay = 0.0;
	ConfigFacade* _tmp4_;
	ConfigFacade* _tmp5_;
	gdouble _tmp6_;
#line 380 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 381 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = config_facade_get_instance ();
#line 381 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _tmp0_;
#line 381 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = configuration_facade_get_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 381 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _tmp2_;
#line 381 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp1_);
#line 381 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_id = _tmp3_;
#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = config_facade_get_instance ();
#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = _tmp4_;
#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = configuration_facade_get_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp5_);
#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_delay = _tmp6_;
#line 384 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	single_photo_page_set_transition (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), effect_id, (gint) (effect_delay * 1000.0));
#line 380 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (effect_id);
#line 2279 "SlideshowPage.c"
}


static void
slideshow_page_random_transition_effect (SlideshowPage* self)
{
	gdouble effect_delay = 0.0;
	ConfigFacade* _tmp0_;
	ConfigFacade* _tmp1_;
	gdouble _tmp2_;
	gchar* effect_id = NULL;
	gchar* _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	const gchar* _tmp10_;
	gdouble _tmp11_;
#line 387 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 388 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = config_facade_get_instance ();
#line 388 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _tmp0_;
#line 388 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = configuration_facade_get_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 388 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp1_);
#line 388 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_delay = _tmp2_;
#line 389 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = g_strdup (TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
#line 389 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_id = _tmp3_;
#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = self->priv->transitions;
#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4__length1 = self->priv->transitions_length1;
#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (0 < _tmp4__length1) {
#line 2318 "SlideshowPage.c"
		gint random = 0;
		gchar** _tmp5_;
		gint _tmp5__length1;
		gchar** _tmp6_;
		gint _tmp6__length1;
		gint _tmp7_;
		const gchar* _tmp8_;
		gchar* _tmp9_;
#line 391 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5_ = self->priv->transitions;
#line 391 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5__length1 = self->priv->transitions_length1;
#line 391 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		random = (gint) g_random_int_range ((gint32) 0, (gint32) _tmp5__length1);
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = self->priv->transitions;
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6__length1 = self->priv->transitions_length1;
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = random;
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = _tmp6_[_tmp7_];
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = g_strdup (_tmp8_);
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (effect_id);
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		effect_id = _tmp9_;
#line 2347 "SlideshowPage.c"
	}
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = effect_id;
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = effect_delay;
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	single_photo_page_set_transition (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp10_, (gint) (_tmp11_ * 1000.0));
#line 387 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (effect_id);
#line 2357 "SlideshowPage.c"
}


static void
slideshow_page_paint_title (SlideshowPage* self,
                            cairo_t* ctx,
                            Dimensions* ctx_dim)
{
	gchar* title = NULL;
	Photo* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_ = FALSE;
	const gchar* _tmp3_;
	PangoLayout* layout = NULL;
	const gchar* _tmp5_;
	PangoLayout* _tmp6_;
	PangoAttrList* list = NULL;
	PangoAttrList* _tmp7_;
	PangoAttribute* size = NULL;
	PangoAttribute* _tmp8_;
	PangoAttrList* _tmp9_;
	PangoAttribute* _tmp10_;
	PangoAttribute* _tmp11_;
	PangoLayout* _tmp12_;
	PangoAttrList* _tmp13_;
	PangoLayout* _tmp14_;
	Dimensions _tmp15_;
	gint _tmp16_;
	gint title_width = 0;
	gint title_height = 0;
	PangoLayout* _tmp17_;
	gint _tmp18_ = 0;
	gint _tmp19_ = 0;
	gdouble x = 0.0;
	Dimensions _tmp20_;
	gint _tmp21_;
	gdouble y = 0.0;
	Dimensions _tmp22_;
	gint _tmp23_;
	gdouble _tmp24_;
	gint _tmp25_;
	Dimensions _tmp26_;
	gint _tmp27_;
	gdouble _tmp31_;
	gint _tmp32_;
	Dimensions _tmp33_;
	gint _tmp34_;
	gdouble _tmp38_;
	gdouble _tmp39_;
	PangoLayout* _tmp40_;
	PangoLayout* _tmp41_;
#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx != NULL);
#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx_dim != NULL);
#line 399 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->current;
#line 399 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
#line 399 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	title = _tmp1_;
#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = title;
#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp3_ == NULL) {
#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = TRUE;
#line 2427 "SlideshowPage.c"
	} else {
		const gchar* _tmp4_;
#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp4_ = title;
#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = g_strcmp0 (_tmp4_, "") == 0;
#line 2434 "SlideshowPage.c"
	}
#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp2_) {
#line 403 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (title);
#line 403 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return;
#line 2442 "SlideshowPage.c"
	}
#line 405 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = title;
#line 405 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = gtk_widget_create_pango_layout (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp5_);
#line 405 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	layout = _tmp6_;
#line 406 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = pango_attr_list_new ();
#line 406 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	list = _tmp7_;
#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = pango_attr_scale_new ((gdouble) 3);
#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	size = _tmp8_;
#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp9_ = list;
#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = size;
#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = pango_attribute_copy (_tmp10_);
#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_attr_list_insert (_tmp9_, _tmp11_);
#line 409 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = layout;
#line 409 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp13_ = list;
#line 409 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_layout_set_attributes (_tmp12_, _tmp13_);
#line 410 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp14_ = layout;
#line 410 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp15_ = *ctx_dim;
#line 410 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp16_ = _tmp15_.width;
#line 410 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_layout_set_width (_tmp14_, (gint) ((_tmp16_ * 0.9) * PANGO_SCALE));
#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp17_ = layout;
#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_layout_get_pixel_size (_tmp17_, &_tmp18_, &_tmp19_);
#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	title_width = _tmp18_;
#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	title_height = _tmp19_;
#line 415 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = *ctx_dim;
#line 415 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp21_ = _tmp20_.width;
#line 415 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	x = _tmp21_ * 0.2;
#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp22_ = *ctx_dim;
#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = _tmp22_.height;
#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	y = _tmp23_ * 0.90;
#line 419 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = y;
#line 419 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp25_ = title_height;
#line 419 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp26_ = *ctx_dim;
#line 419 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp27_ = _tmp26_.height;
#line 419 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if ((_tmp24_ + _tmp25_) >= (_tmp27_ * 0.95)) {
#line 2510 "SlideshowPage.c"
		Dimensions _tmp28_;
		gint _tmp29_;
		gint _tmp30_;
#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp28_ = *ctx_dim;
#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp29_ = _tmp28_.height;
#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp30_ = title_height;
#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		y = (_tmp29_ * 0.95) - _tmp30_;
#line 2522 "SlideshowPage.c"
	}
#line 422 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp31_ = x;
#line 422 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp32_ = title_width;
#line 422 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp33_ = *ctx_dim;
#line 422 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp34_ = _tmp33_.width;
#line 422 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if ((_tmp31_ + _tmp32_) >= (_tmp34_ * 0.95)) {
#line 2534 "SlideshowPage.c"
		Dimensions _tmp35_;
		gint _tmp36_;
		gint _tmp37_;
#line 423 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp35_ = *ctx_dim;
#line 423 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp36_ = _tmp35_.width;
#line 423 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp37_ = title_width;
#line 423 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		x = (gdouble) ((_tmp36_ / 2) - (_tmp37_ / 2));
#line 2546 "SlideshowPage.c"
	}
#line 425 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	set_source_color_from_string (ctx, "#fff");
#line 426 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp38_ = x;
#line 426 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp39_ = y;
#line 426 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	cairo_move_to (ctx, _tmp38_, _tmp39_);
#line 427 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp40_ = layout;
#line 427 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_cairo_show_layout (ctx, _tmp40_);
#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp41_ = layout;
#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_cairo_layout_path (ctx, _tmp41_);
#line 429 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	cairo_set_line_width (ctx, 1.5);
#line 430 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	set_source_color_from_string (ctx, "#000");
#line 431 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	cairo_stroke (ctx);
#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_pango_attribute_destroy0 (size);
#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_pango_attr_list_unref0 (list);
#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (layout);
#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (title);
#line 2578 "SlideshowPage.c"
}


static void
slideshow_page_real_paint (SinglePhotoPage* base,
                           cairo_t* ctx,
                           Dimensions* ctx_dim)
{
	SlideshowPage * self;
	Dimensions _tmp0_;
	gboolean _tmp1_ = FALSE;
	ConfigFacade* _tmp2_;
	ConfigFacade* _tmp3_;
	gboolean _tmp4_;
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx != NULL);
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx_dim != NULL);
#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = *ctx_dim;
#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	SINGLE_PHOTO_PAGE_CLASS (slideshow_page_parent_class)->paint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), ctx, &_tmp0_);
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = config_facade_get_instance ();
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _tmp2_;
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = configuration_facade_get_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp3_);
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp4_) {
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp1_ = !single_photo_page_is_transition_in_progress (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
#line 2615 "SlideshowPage.c"
	} else {
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp1_ = FALSE;
#line 2619 "SlideshowPage.c"
	}
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp1_) {
#line 2623 "SlideshowPage.c"
		Dimensions _tmp5_;
#line 438 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5_ = *ctx_dim;
#line 438 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		slideshow_page_paint_title (self, ctx, &_tmp5_);
#line 2629 "SlideshowPage.c"
	}
}


static gint
_utf8_ci_compare_gcompare_data_func (gconstpointer a,
                                     gconstpointer b,
                                     gpointer self)
{
	gint result;
	result = utf8_ci_compare (a, b);
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 2643 "SlideshowPage.c"
}


static void
_slideshow_page_settings_dialog_on_transition_changed_gtk_combo_box_changed (GtkComboBox* _sender,
                                                                             gpointer self)
{
#line 71 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_settings_dialog_on_transition_changed ((SlideshowPageSettingsDialog*) self);
#line 2653 "SlideshowPage.c"
}


static SlideshowPageSettingsDialog*
slideshow_page_settings_dialog_construct (GType object_type)
{
	SlideshowPageSettingsDialog * self = NULL;
	gdouble delay = 0.0;
	ConfigFacade* _tmp0_;
	ConfigFacade* _tmp1_;
	gdouble _tmp2_;
	FullscreenWindow* _tmp3_;
	FullscreenWindow* _tmp4_;
	GtkAdjustment* _tmp5_;
	gdouble _tmp6_;
	gchar* effect_id = NULL;
	ConfigFacade* _tmp7_;
	ConfigFacade* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* null_display_name = NULL;
	TransitionEffectsManager* _tmp11_;
	TransitionEffectsManager* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	GtkComboBoxText* _tmp15_;
	const gchar* _tmp16_;
	GtkComboBoxText* _tmp17_;
	gint i = 0;
	GtkComboBoxText* _tmp41_;
	gdouble transition_delay = 0.0;
	ConfigFacade* _tmp42_;
	ConfigFacade* _tmp43_;
	gdouble _tmp44_;
	GtkAdjustment* _tmp45_;
	gboolean show_title = FALSE;
	ConfigFacade* _tmp46_;
	ConfigFacade* _tmp47_;
	gboolean _tmp48_;
	GtkCheckButton* _tmp49_;
#line 43 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = (SlideshowPageSettingsDialog*) g_object_new (object_type, NULL);
#line 44 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = config_facade_get_instance ();
#line 44 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _tmp0_;
#line 44 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = configuration_facade_get_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 44 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp1_);
#line 44 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	delay = _tmp2_;
#line 46 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = app_window_get_fullscreen ();
#line 46 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = _tmp3_;
#line 46 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_window_get_type (), GtkWindow));
#line 46 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp4_);
#line 48 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = self->priv->delay_adjustment;
#line 48 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = delay;
#line 48 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_adjustment_set_value (_tmp5_, _tmp6_);
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = config_facade_get_instance ();
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = _tmp7_;
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp9_ = configuration_facade_get_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = _tmp9_;
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp8_);
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_id = _tmp10_;
#line 54 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = transition_effects_manager_get_instance ();
#line 54 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = _tmp11_;
#line 54 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp13_ = transition_effects_manager_get_effect_name (_tmp12_, TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
#line 54 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp14_ = _tmp13_;
#line 54 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_transition_effects_manager_unref0 (_tmp12_);
#line 54 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	null_display_name = _tmp14_;
#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp15_ = self->priv->transition_effect_selector;
#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp16_ = null_display_name;
#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_combo_box_text_append_text (_tmp15_, _tmp16_);
#line 57 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp17_ = self->priv->transition_effect_selector;
#line 57 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_combo_box_get_type (), GtkComboBox), 0);
#line 59 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	i = 1;
#line 2756 "SlideshowPage.c"
	{
		GeeIterator* _display_name_it = NULL;
		TransitionEffectsManager* _tmp18_;
		TransitionEffectsManager* _tmp19_;
		GeeCollection* _tmp20_;
		GeeCollection* _tmp21_;
		GeeIterator* _tmp22_;
		GeeIterator* _tmp23_;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp18_ = transition_effects_manager_get_instance ();
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp19_ = _tmp18_;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp20_ = transition_effects_manager_get_effect_names (_tmp19_, _utf8_ci_compare_gcompare_data_func, NULL, NULL);
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp21_ = _tmp20_;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp22_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ITERABLE, GeeIterable));
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp23_ = _tmp22_;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp21_);
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_transition_effects_manager_unref0 (_tmp19_);
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_display_name_it = _tmp23_;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		while (TRUE) {
#line 2785 "SlideshowPage.c"
			GeeIterator* _tmp24_;
			gchar* display_name = NULL;
			GeeIterator* _tmp25_;
			gpointer _tmp26_;
			const gchar* _tmp27_;
			const gchar* _tmp28_;
			GtkComboBoxText* _tmp29_;
			const gchar* _tmp30_;
			const gchar* _tmp31_;
			TransitionEffectsManager* _tmp32_;
			TransitionEffectsManager* _tmp33_;
			const gchar* _tmp34_;
			gchar* _tmp35_;
			gchar* _tmp36_;
			gboolean _tmp37_;
			gint _tmp40_;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp24_ = _display_name_it;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (!gee_iterator_next (_tmp24_)) {
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				break;
#line 2808 "SlideshowPage.c"
			}
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp25_ = _display_name_it;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp26_ = gee_iterator_get (_tmp25_);
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			display_name = (gchar*) _tmp26_;
#line 62 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp27_ = display_name;
#line 62 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp28_ = null_display_name;
#line 62 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (g_strcmp0 (_tmp27_, _tmp28_) == 0) {
#line 63 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_free0 (display_name);
#line 63 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				continue;
#line 2826 "SlideshowPage.c"
			}
#line 65 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp29_ = self->priv->transition_effect_selector;
#line 65 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp30_ = display_name;
#line 65 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			gtk_combo_box_text_append_text (_tmp29_, _tmp30_);
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp31_ = effect_id;
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp32_ = transition_effects_manager_get_instance ();
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp33_ = _tmp32_;
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp34_ = display_name;
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp35_ = transition_effects_manager_get_id_for_effect_name (_tmp33_, _tmp34_);
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp36_ = _tmp35_;
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp37_ = g_strcmp0 (_tmp31_, _tmp36_) == 0;
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_free0 (_tmp36_);
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_transition_effects_manager_unref0 (_tmp33_);
#line 66 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (_tmp37_) {
#line 2854 "SlideshowPage.c"
				GtkComboBoxText* _tmp38_;
				gint _tmp39_;
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp38_ = self->priv->transition_effect_selector;
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp39_ = i;
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_combo_box_get_type (), GtkComboBox), _tmp39_);
#line 2863 "SlideshowPage.c"
			}
#line 69 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp40_ = i;
#line 69 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			i = _tmp40_ + 1;
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_free0 (display_name);
#line 2871 "SlideshowPage.c"
		}
#line 60 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_display_name_it);
#line 2875 "SlideshowPage.c"
	}
#line 71 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp41_ = self->priv->transition_effect_selector;
#line 71 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _slideshow_page_settings_dialog_on_transition_changed_gtk_combo_box_changed, self, 0);
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp42_ = config_facade_get_instance ();
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp43_ = _tmp42_;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp44_ = configuration_facade_get_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp43_);
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	transition_delay = _tmp44_;
#line 74 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp45_ = self->priv->transition_effect_adjustment;
#line 74 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_adjustment_set_value (_tmp45_, transition_delay);
#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp46_ = config_facade_get_instance ();
#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp47_ = _tmp46_;
#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp48_ = configuration_facade_get_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp47_);
#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	show_title = _tmp48_;
#line 77 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp49_ = self->priv->show_title_button;
#line 77 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_toggle_button_get_type (), GtkToggleButton), show_title);
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_settings_dialog_on_transition_changed (self);
#line 43 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (null_display_name);
#line 43 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (effect_id);
#line 43 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return self;
#line 2917 "SlideshowPage.c"
}


static SlideshowPageSettingsDialog*
slideshow_page_settings_dialog_new (void)
{
#line 43 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return slideshow_page_settings_dialog_construct (SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG);
#line 2926 "SlideshowPage.c"
}


static void
slideshow_page_settings_dialog_on_transition_changed (SlideshowPageSettingsDialog* self)
{
	gchar* selected = NULL;
	GtkComboBoxText* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_ = FALSE;
	const gchar* _tmp3_;
	gboolean sensitive = FALSE;
	GtkScale* _tmp5_;
	GtkSpinButton* _tmp6_;
#line 82 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self));
#line 83 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->transition_effect_selector;
#line 83 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = gtk_combo_box_text_get_active_text (_tmp0_);
#line 83 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	selected = _tmp1_;
#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = selected;
#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp3_ != NULL) {
#line 2953 "SlideshowPage.c"
		const gchar* _tmp4_;
#line 85 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp4_ = selected;
#line 85 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = g_strcmp0 (_tmp4_, TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID) != 0;
#line 2959 "SlideshowPage.c"
	} else {
#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = FALSE;
#line 2963 "SlideshowPage.c"
	}
#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	sensitive = _tmp2_;
#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = self->priv->transition_effect_hscale;
#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), sensitive);
#line 88 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = self->priv->transition_effect_entry;
#line 88 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), sensitive);
#line 82 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (selected);
#line 2977 "SlideshowPage.c"
}


static gdouble
slideshow_page_settings_dialog_get_delay (SlideshowPageSettingsDialog* self)
{
	gdouble result = 0.0;
	GtkSpinButton* _tmp0_;
#line 91 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), 0.0);
#line 92 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->delay_entry;
#line 92 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = gtk_spin_button_get_value (_tmp0_);
#line 92 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 2994 "SlideshowPage.c"
}


static gdouble
slideshow_page_settings_dialog_get_transition_delay (SlideshowPageSettingsDialog* self)
{
	gdouble result = 0.0;
	GtkSpinButton* _tmp0_;
#line 95 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), 0.0);
#line 96 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->transition_effect_entry;
#line 96 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = gtk_spin_button_get_value (_tmp0_);
#line 96 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 3011 "SlideshowPage.c"
}


static gchar*
slideshow_page_settings_dialog_get_transition_effect_id (SlideshowPageSettingsDialog* self)
{
	gchar* result = NULL;
	gchar* active = NULL;
	GtkComboBoxText* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* id = NULL;
	TransitionEffectsManager* _tmp4_;
	TransitionEffectsManager* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	const gchar* _tmp9_ = NULL;
	const gchar* _tmp10_;
	gchar* _tmp12_;
#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), NULL);
#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->transition_effect_selector;
#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = gtk_combo_box_text_get_active_text (_tmp0_);
#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	active = _tmp1_;
#line 101 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = active;
#line 101 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp2_ == NULL) {
#line 3044 "SlideshowPage.c"
		gchar* _tmp3_;
#line 102 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp3_ = g_strdup (TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
#line 102 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = _tmp3_;
#line 102 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (active);
#line 102 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 3054 "SlideshowPage.c"
	}
#line 104 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = transition_effects_manager_get_instance ();
#line 104 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = _tmp4_;
#line 104 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = active;
#line 104 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = transition_effects_manager_get_id_for_effect_name (_tmp5_, _tmp6_);
#line 104 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = _tmp7_;
#line 104 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_transition_effects_manager_unref0 (_tmp5_);
#line 104 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	id = _tmp8_;
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = id;
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp10_ != NULL) {
#line 3074 "SlideshowPage.c"
		const gchar* _tmp11_;
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = id;
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = _tmp11_;
#line 3080 "SlideshowPage.c"
	} else {
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID;
#line 3084 "SlideshowPage.c"
	}
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = g_strdup (_tmp9_);
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = _tmp12_;
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (id);
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (active);
#line 106 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 3096 "SlideshowPage.c"
}


static gboolean
slideshow_page_settings_dialog_get_show_title (SlideshowPageSettingsDialog* self)
{
	gboolean result = FALSE;
	GtkCheckButton* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
#line 109 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), FALSE);
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->show_title_button;
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = _tmp1_;
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = _tmp2_;
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 3119 "SlideshowPage.c"
}


static void
slideshow_page_settings_dialog_class_init (SlideshowPageSettingsDialogClass * klass)
{
	gint SlideshowPageSettingsDialog_private_offset;
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_settings_dialog_parent_class = g_type_class_peek_parent (klass);
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_type_class_add_private (klass, sizeof (SlideshowPageSettingsDialogPrivate));
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	G_OBJECT_CLASS (klass)->finalize = slideshow_page_settings_dialog_finalize;
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	SlideshowPageSettingsDialog_private_offset = g_type_class_get_instance_private_offset (klass);
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/Shotwell/ui/slideshow_settings.ui");
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "delay_adjustment", FALSE, SlideshowPageSettingsDialog_private_offset + G_STRUCT_OFFSET (SlideshowPageSettingsDialogPrivate, delay_adjustment));
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "delay_entry", FALSE, SlideshowPageSettingsDialog_private_offset + G_STRUCT_OFFSET (SlideshowPageSettingsDialogPrivate, delay_entry));
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "transition_effect_selector", FALSE, SlideshowPageSettingsDialog_private_offset + G_STRUCT_OFFSET (SlideshowPageSettingsDialogPrivate, transition_effect_selector));
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "transition_effect_hscale", FALSE, SlideshowPageSettingsDialog_private_offset + G_STRUCT_OFFSET (SlideshowPageSettingsDialogPrivate, transition_effect_hscale));
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "transition_effect_entry", FALSE, SlideshowPageSettingsDialog_private_offset + G_STRUCT_OFFSET (SlideshowPageSettingsDialogPrivate, transition_effect_entry));
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "transition_effect_adjustment", FALSE, SlideshowPageSettingsDialog_private_offset + G_STRUCT_OFFSET (SlideshowPageSettingsDialogPrivate, transition_effect_adjustment));
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "show_title_button", FALSE, SlideshowPageSettingsDialog_private_offset + G_STRUCT_OFFSET (SlideshowPageSettingsDialogPrivate, show_title_button));
#line 3151 "SlideshowPage.c"
}


static void
slideshow_page_settings_dialog_instance_init (SlideshowPageSettingsDialog * self)
{
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv = SLIDESHOW_PAGE_SETTINGS_DIALOG_GET_PRIVATE (self);
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_init_template (GTK_WIDGET (self));
#line 3162 "SlideshowPage.c"
}


static void
slideshow_page_settings_dialog_finalize (GObject * obj)
{
	SlideshowPageSettingsDialog * self;
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialog);
#line 29 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->delay_adjustment);
#line 31 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->delay_entry);
#line 33 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_selector);
#line 35 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_hscale);
#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_entry);
#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_adjustment);
#line 41 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->show_title_button);
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	G_OBJECT_CLASS (slideshow_page_settings_dialog_parent_class)->finalize (obj);
#line 3188 "SlideshowPage.c"
}


static GType
slideshow_page_settings_dialog_get_type (void)
{
	static volatile gsize slideshow_page_settings_dialog_type_id__volatile = 0;
	if (g_once_init_enter (&slideshow_page_settings_dialog_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SlideshowPageSettingsDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) slideshow_page_settings_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SlideshowPageSettingsDialog), 0, (GInstanceInitFunc) slideshow_page_settings_dialog_instance_init, NULL };
		GType slideshow_page_settings_dialog_type_id;
		slideshow_page_settings_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "SlideshowPageSettingsDialog", &g_define_type_info, 0);
		g_once_init_leave (&slideshow_page_settings_dialog_type_id__volatile, slideshow_page_settings_dialog_type_id);
	}
	return slideshow_page_settings_dialog_type_id__volatile;
}


static void
slideshow_page_class_init (SlideshowPageClass * klass)
{
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_parent_class = g_type_class_peek_parent (klass);
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_type_class_add_private (klass, sizeof (SlideshowPagePrivate));
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	((PageClass *) klass)->switched_to = (void (*) (Page *)) slideshow_page_real_switched_to;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	((PageClass *) klass)->switching_from = (void (*) (Page *)) slideshow_page_real_switching_from;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	((SinglePhotoPageClass *) klass)->on_previous_photo = (void (*) (SinglePhotoPage *)) slideshow_page_real_on_previous_photo;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	((SinglePhotoPageClass *) klass)->on_next_photo = (void (*) (SinglePhotoPage *)) slideshow_page_real_on_next_photo;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	((GtkWidgetClass *) klass)->key_press_event = (gboolean (*) (GtkWidget *, GdkEventKey*)) slideshow_page_real_key_press_event;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	((SinglePhotoPageClass *) klass)->paint = (void (*) (SinglePhotoPage *, cairo_t*, Dimensions*)) slideshow_page_real_paint;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	G_OBJECT_CLASS (klass)->finalize = slideshow_page_finalize;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_signals[SLIDESHOW_PAGE_HIDE_TOOLBAR_SIGNAL] = g_signal_new ("hide-toolbar", TYPE_SLIDESHOW_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 3229 "SlideshowPage.c"
}


static void
slideshow_page_instance_init (SlideshowPage * self)
{
	GTimer* _tmp0_;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv = SLIDESHOW_PAGE_GET_PRIVATE (self);
#line 16 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->cache = NULL;
#line 17 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = g_timer_new ();
#line 17 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->timer = _tmp0_;
#line 18 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = TRUE;
#line 19 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->exiting = FALSE;
#line 3249 "SlideshowPage.c"
}


static void
slideshow_page_finalize (GObject * obj)
{
	SlideshowPage * self;
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 11 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_data_collection_unref0 (self->priv->sources);
#line 12 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_data_collection_unref0 (self->priv->controller);
#line 13 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 14 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->play_pause_button);
#line 15 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->settings_button);
#line 16 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->cache);
#line 17 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_timer_destroy0 (self->priv->timer);
#line 20 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transitions = (_vala_array_free (self->priv->transitions, self->priv->transitions_length1, (GDestroyNotify) g_free), NULL);
#line 22 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_screensaver_unref0 (self->priv->screensaver);
#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	G_OBJECT_CLASS (slideshow_page_parent_class)->finalize (obj);
#line 3279 "SlideshowPage.c"
}


GType
slideshow_page_get_type (void)
{
	static volatile gsize slideshow_page_type_id__volatile = 0;
	if (g_once_init_enter (&slideshow_page_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SlideshowPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) slideshow_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SlideshowPage), 0, (GInstanceInitFunc) slideshow_page_instance_init, NULL };
		GType slideshow_page_type_id;
		slideshow_page_type_id = g_type_register_static (TYPE_SINGLE_PHOTO_PAGE, "SlideshowPage", &g_define_type_info, 0);
		g_once_init_leave (&slideshow_page_type_id__volatile, slideshow_page_type_id);
	}
	return slideshow_page_type_id__volatile;
}


static void
_vala_array_destroy (gpointer array,
                     gint array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void
_vala_array_free (gpointer array,
                  gint array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}