/* SlideshowPage.c generated by valac 0.36.6, 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;
#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_HIDE_TOOLBAR_SIGNAL,
	SLIDESHOW_PAGE_LAST_SIGNAL
};
static guint slideshow_page_signals[SLIDESHOW_PAGE_LAST_SIGNAL] = {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 {
	GtkBuilder* builder;
	GtkSpinButton* delay_entry;
	GtkScale* delay_hscale;
	GtkComboBoxText* transition_effect_selector;
	GtkScale* transition_effect_hscale;
	GtkSpinButton* transition_effect_entry;
	GtkAdjustment* transition_effect_adjustment;
	GtkCheckButton* show_title_button;
	GtkBox* pane;
};


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))
enum  {
	SLIDESHOW_PAGE_DUMMY_PROPERTY
};
#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))
enum  {
	SLIDESHOW_PAGE_SETTINGS_DIALOG_DUMMY_PROPERTY
};
GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
FullscreenWindow* app_window_get_fullscreen (void);
#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
#define RESOURCES_OK_LABEL _ ("_OK")
#define CONFIG_FACADE_SLIDESHOW_DELAY_MIN 1.0
#define CONFIG_FACADE_SLIDESHOW_DELAY_MAX 30.0
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);
#define CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MIN 0.1
#define CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MAX 1.0
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 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return self ? data_collection_ref (self) : NULL;
#line 662 "SlideshowPage.c"
}


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


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


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


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


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


SlideshowPage* slideshow_page_construct (GType object_type, SourceCollection* sources, ViewCollection* controller, Photo* start) {
	SlideshowPage * self = NULL;
	SourceCollection* _tmp0_;
	SourceCollection* _tmp1_;
	ViewCollection* _tmp2_;
	ViewCollection* _tmp3_;
	GeeCollection* pluggables = NULL;
	TransitionEffectsManager* _tmp4_;
	TransitionEffectsManager* _tmp5_;
	GeeCollection* _tmp6_;
	GeeCollection* _tmp7_;
	GeeArrayList* a = NULL;
	GeeArrayList* _tmp8_;
	gint _tmp9_;
	gpointer* _tmp10_;
	Photo* _tmp11_;
	Photo* _tmp12_;
	GtkToolbar* toolbar = NULL;
	GtkToolbar* _tmp13_;
	GtkToolButton* previous_button = NULL;
	GtkToolButton* _tmp14_;
	GtkToolButton* _tmp15_;
	GtkToolButton* _tmp16_;
	GtkToolButton* _tmp17_;
	GtkToolButton* _tmp18_;
	GtkToolButton* _tmp19_;
	GtkToolButton* next_button = NULL;
	GtkToolButton* _tmp20_;
	GtkToolButton* _tmp21_;
	GtkToolButton* _tmp22_;
	GtkToolButton* _tmp23_;
	GtkToolButton* _tmp24_;
	GtkToolButton* _tmp25_;
	GtkToolButton* _tmp26_;
	GtkToolButton* _tmp27_;
	Screensaver* _tmp28_;
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_VIEW_COLLECTION (controller), NULL);
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_PHOTO (start), NULL);
#line 141 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = (SlideshowPage*) single_photo_page_construct (object_type, _ ("Slideshow"), TRUE);
#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = sources;
#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _data_collection_ref0 (_tmp0_);
#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_data_collection_unref0 (self->priv->sources);
#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->sources = _tmp1_;
#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = controller;
#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _data_collection_ref0 (_tmp2_);
#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_data_collection_unref0 (self->priv->controller);
#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->controller = _tmp3_;
#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = transition_effects_manager_get_instance ();
#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = _tmp4_;
#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = transition_effects_manager_get_effect_ids (_tmp5_);
#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = _tmp6_;
#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_transition_effects_manager_unref0 (_tmp5_);
#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pluggables = _tmp7_;
#line 147 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 147 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	a = _tmp8_;
#line 148 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gee_array_list_add_all (a, pluggables);
#line 149 "/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 150 "/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 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = gee_collection_to_array (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_COLLECTION, GeeCollection), &_tmp9_);
#line 151 "/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 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transitions = _tmp10_;
#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transitions_length1 = _tmp9_;
#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->_transitions_size_ = self->priv->transitions_length1;
#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = start;
#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = _g_object_ref0 (_tmp11_);
#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp12_;
#line 154 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_update_transition_effect (self);
#line 157 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp13_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 157 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	toolbar = _tmp13_;
#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp14_ = (GtkToolButton*) gtk_tool_button_new (NULL, _ ("Back"));
#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp14_);
#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	previous_button = _tmp14_;
#line 161 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_icon_name (previous_button, "go-previous");
#line 162 "/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 163 "/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 165 "/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 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp15_ = (GtkToolButton*) gtk_tool_button_new (NULL, _ ("Pause"));
#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp15_);
#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->play_pause_button);
#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->play_pause_button = _tmp15_;
#line 168 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp16_ = self->priv->play_pause_button;
#line 168 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_icon_name (_tmp16_, "media-playback-pause");
#line 169 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp17_ = self->priv->play_pause_button;
#line 169 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_tool_item_get_type (), GtkToolItem), _ ("Pause the slideshow"));
#line 170 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp18_ = self->priv->play_pause_button;
#line 170 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_connect_object (_tmp18_, "clicked", (GCallback) _slideshow_page_on_play_pause_gtk_tool_button_clicked, self, 0);
#line 172 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp19_ = self->priv->play_pause_button;
#line 172 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_tool_item_get_type (), GtkToolItem), -1);
#line 174 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = (GtkToolButton*) gtk_tool_button_new (NULL, _ ("Next"));
#line 174 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp20_);
#line 174 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_button = _tmp20_;
#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_icon_name (next_button, "go-next");
#line 176 "/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 177 "/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 179 "/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 181 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp21_ = (GtkToolButton*) gtk_tool_button_new (NULL, NULL);
#line 181 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp21_);
#line 181 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->settings_button);
#line 181 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->settings_button = _tmp21_;
#line 182 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp22_ = self->priv->settings_button;
#line 182 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_icon_name (_tmp22_, "preferences-system");
#line 183 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = self->priv->settings_button;
#line 183 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_button_set_label (_tmp23_, _ ("Settings"));
#line 184 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = self->priv->settings_button;
#line 184 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_tool_item_get_type (), GtkToolItem), _ ("Change slideshow settings"));
#line 185 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp25_ = self->priv->settings_button;
#line 185 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_connect_object (_tmp25_, "clicked", (GCallback) _slideshow_page_on_change_settings_gtk_tool_button_clicked, self, 0);
#line 186 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp26_ = self->priv->settings_button;
#line 186 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
#line 188 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp27_ = self->priv->settings_button;
#line 188 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_tool_item_get_type (), GtkToolItem), -1);
#line 190 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp28_ = screensaver_new ();
#line 190 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_screensaver_unref0 (self->priv->screensaver);
#line 190 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->screensaver = _tmp28_;
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_button);
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (previous_button);
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (toolbar);
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (a);
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (pluggables);
#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return self;
#line 909 "SlideshowPage.c"
}


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


static gboolean _slideshow_page_auto_advance_gsource_func (gpointer self) {
	gboolean result;
	result = slideshow_page_auto_advance ((SlideshowPage*) self);
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 925 "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 193 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 194 "/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 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->sources;
#line 197 "/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 197 "/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 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->cache);
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->cache = _tmp2_;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = self->priv->current;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = slideshow_page_get_next_photo (self, _tmp3_, DIRECTION_FORWARD, &_tmp4_, &_tmp5_);
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp4_;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (pixbuf);
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pixbuf = _tmp5_;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 969 "SlideshowPage.c"
		GdkPixbuf* _tmp7_;
		Photo* _tmp8_;
		Dimensions _tmp9_ = {0};
		Direction _tmp10_;
#line 202 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = pixbuf;
#line 202 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = self->priv->current;
#line 202 "/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 202 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = DIRECTION_FORWARD;
#line 202 "/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 984 "SlideshowPage.c"
	}
#line 205 "/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 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = self->priv->timer;
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp11_);
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = self->priv->screensaver;
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	screensaver_inhibit (_tmp12_, "Playing slideshow");
#line 193 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (pixbuf);
#line 998 "SlideshowPage.c"
}


static void slideshow_page_real_switching_from (Page* base) {
	SlideshowPage * self;
	Screensaver* _tmp0_;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 212 "/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 214 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->screensaver;
#line 214 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	screensaver_uninhibit (_tmp0_);
#line 215 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->exiting = TRUE;
#line 1015 "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_;
	Photo* _tmp1_;
	GError * _inner_error_ = NULL;
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_SLIDESHOW_PAGE (self), FALSE);
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_PHOTO (start), FALSE);
#line 220 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = start;
#line 220 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 220 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_vala_next);
#line 220 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_vala_next = _tmp1_;
#line 1038 "SlideshowPage.c"
	{
		gboolean _tmp2_ = FALSE;
#line 222 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = TRUE;
#line 222 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		while (TRUE) {
#line 1045 "SlideshowPage.c"
			DataSource* forward = NULL;
			DataSource* back = NULL;
			ViewCollection* _tmp40_;
			Photo* _tmp41_;
			DataSource* _tmp42_ = NULL;
			DataSource* _tmp43_ = NULL;
			PixbufCache* _tmp44_;
			DataSource* _tmp45_;
			PixbufCache* _tmp46_;
			DataSource* _tmp47_;
			GeeSet* neighbors = NULL;
			ViewCollection* _tmp48_;
			Photo* _tmp49_;
			GeeSet* _tmp50_;
			GeeSet* _tmp51_;
			DataSource* _tmp52_;
			GeeSet* _tmp53_;
			DataSource* _tmp54_;
			PixbufCache* _tmp55_;
			GeeSet* _tmp56_;
#line 222 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (!_tmp2_) {
#line 1068 "SlideshowPage.c"
			}
#line 222 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp2_ = FALSE;
#line 1072 "SlideshowPage.c"
			{
				GdkPixbuf* _tmp3_ = NULL;
				PixbufCache* _tmp4_;
				Photo* _tmp5_;
				GdkPixbuf* _tmp6_;
				GdkPixbuf* _tmp7_;
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp4_ = self->priv->cache;
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp5_ = _vala_next;
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp6_ = pixbuf_cache_fetch (_tmp4_, _tmp5_, &_inner_error_);
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp3_ = _tmp6_;
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1089 "SlideshowPage.c"
					goto __catch462_g_error;
				}
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp7_ = _tmp3_;
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp3_ = NULL;
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next_pixbuf);
#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_vala_next_pixbuf = _tmp7_;
#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_tmp3_);
#line 1102 "SlideshowPage.c"
			}
			goto __finally462;
			__catch462_g_error:
			{
				GError* err = NULL;
				Photo* _tmp8_;
				gchar* _tmp9_;
				gchar* _tmp10_;
				GError* _tmp11_;
				const gchar* _tmp12_;
				DataView* view = NULL;
				ViewCollection* _tmp13_;
				Photo* _tmp14_;
				DataView* _tmp15_;
				DataView* _tmp16_ = NULL;
				Direction _tmp17_;
				DataView* _tmp24_;
				DataView* _tmp25_;
				DataSource* _tmp26_;
				gboolean _tmp27_ = FALSE;
				gboolean _tmp28_ = FALSE;
				Photo* _tmp29_;
				Photo* _tmp30_;
#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				err = _inner_error_;
#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_inner_error_ = NULL;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp8_ = _vala_next;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp9_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_OBJECT, DataObject));
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp10_ = _tmp9_;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp11_ = err;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp12_ = _tmp11_->message;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				g_warning ("SlideshowPage.vala:227: Unable to fetch pixbuf for %s: %s", _tmp10_, _tmp12_);
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_free0 (_tmp10_);
#line 230 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp13_ = self->priv->controller;
#line 230 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp14_ = _vala_next;
#line 230 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp15_ = view_collection_get_view_for_source (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_SOURCE, DataSource));
#line 230 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				view = _tmp15_;
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp17_ = direction;
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp17_ == DIRECTION_FORWARD) {
#line 1156 "SlideshowPage.c"
					ViewCollection* _tmp18_;
					DataView* _tmp19_;
					DataView* _tmp20_;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp18_ = self->priv->controller;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp19_ = view;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp20_ = view_collection_get_next (_tmp18_, _tmp19_);
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp16_);
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp16_ = _tmp20_;
#line 1170 "SlideshowPage.c"
				} else {
					ViewCollection* _tmp21_;
					DataView* _tmp22_;
					DataView* _tmp23_;
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp21_ = self->priv->controller;
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp22_ = view;
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp23_ = view_collection_get_previous (_tmp21_, _tmp22_);
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp16_);
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp16_ = _tmp23_;
#line 1185 "SlideshowPage.c"
				}
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp24_ = _g_object_ref0 (_tmp16_);
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (view);
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				view = _tmp24_;
#line 234 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp25_ = view;
#line 234 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp26_ = data_view_get_source (_tmp25_);
#line 234 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next);
#line 234 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_vala_next = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_PHOTO, Photo);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp29_ = _vala_next;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp30_ = start;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp29_ == _tmp30_) {
#line 1207 "SlideshowPage.c"
					Photo* _tmp31_;
					Photo* _tmp32_;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp31_ = _vala_next;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp32_ = self->priv->current;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp28_ = _tmp31_ != _tmp32_;
#line 1216 "SlideshowPage.c"
				} else {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp28_ = FALSE;
#line 1220 "SlideshowPage.c"
				}
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp28_) {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp27_ = TRUE;
#line 1226 "SlideshowPage.c"
				} else {
					Photo* _tmp33_;
					Photo* _tmp34_;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp33_ = _vala_next;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp34_ = self->priv->current;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp27_ = _tmp33_ == _tmp34_;
#line 1236 "SlideshowPage.c"
				}
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp27_) {
#line 1240 "SlideshowPage.c"
					GtkWindow* _tmp35_;
					GtkWindow* _tmp36_;
					AppWindow* _tmp37_;
					AppWindow* _tmp38_;
#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp35_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp36_ = _tmp35_;
#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					app_window_error_message (_ ("All photo source files are missing."), _tmp36_);
#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp36_);
#line 239 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp37_ = app_window_get_instance ();
#line 239 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp38_ = _tmp37_;
#line 239 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					app_window_end_fullscreen (_tmp38_);
#line 239 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp38_);
#line 241 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_vala_next);
#line 241 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_vala_next = NULL;
#line 242 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_vala_next_pixbuf);
#line 242 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_vala_next_pixbuf = NULL;
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					result = FALSE;
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp16_);
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (view);
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_error_free0 (err);
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					if (next) {
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						*next = _vala_next;
#line 1281 "SlideshowPage.c"
					} else {
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						_g_object_unref0 (_vala_next);
#line 1285 "SlideshowPage.c"
					}
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					if (next_pixbuf) {
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						*next_pixbuf = _vala_next_pixbuf;
#line 1291 "SlideshowPage.c"
					} else {
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						_g_object_unref0 (_vala_next_pixbuf);
#line 1295 "SlideshowPage.c"
					}
#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					return result;
#line 1299 "SlideshowPage.c"
				}
#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_tmp16_);
#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (view);
#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_error_free0 (err);
#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				continue;
#line 1309 "SlideshowPage.c"
			}
			__finally462:
#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1314 "SlideshowPage.c"
				gboolean _tmp39_ = FALSE;
#line 223 "/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 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				g_clear_error (&_inner_error_);
#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				return _tmp39_;
#line 1322 "SlideshowPage.c"
			}
#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp40_ = self->priv->controller;
#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp41_ = _vala_next;
#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			view_collection_get_immediate_neighbors (_tmp40_, G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_DATA_SOURCE, DataSource), &_tmp42_, &_tmp43_, PHOTO_TYPENAME);
#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (forward);
#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			forward = _tmp42_;
#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (back);
#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			back = _tmp43_;
#line 254 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp44_ = self->priv->cache;
#line 254 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp45_ = forward;
#line 254 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch (_tmp44_, G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_PHOTO, Photo), BACKGROUND_JOB_JOB_PRIORITY_HIGHEST, FALSE);
#line 255 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp46_ = self->priv->cache;
#line 255 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp47_ = back;
#line 255 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch (_tmp46_, G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_PHOTO, Photo), BACKGROUND_JOB_JOB_PRIORITY_NORMAL, FALSE);
#line 257 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp48_ = self->priv->controller;
#line 257 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp49_ = _vala_next;
#line 257 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp50_ = view_collection_get_extended_neighbors (_tmp48_, G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_DATA_SOURCE, DataSource), PHOTO_TYPENAME);
#line 257 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			neighbors = _tmp50_;
#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp51_ = neighbors;
#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp52_ = forward;
#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GEE_TYPE_COLLECTION, GeeCollection), _tmp52_);
#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp53_ = neighbors;
#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp54_ = back;
#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection), _tmp54_);
#line 261 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp55_ = self->priv->cache;
#line 261 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp56_ = neighbors;
#line 261 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch_many (_tmp55_, G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, GEE_TYPE_COLLECTION, GeeCollection), BACKGROUND_JOB_JOB_PRIORITY_LOWEST, FALSE);
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			result = TRUE;
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (neighbors);
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (back);
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (forward);
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (next) {
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				*next = _vala_next;
#line 1388 "SlideshowPage.c"
			} else {
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next);
#line 1392 "SlideshowPage.c"
			}
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (next_pixbuf) {
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				*next_pixbuf = _vala_next_pixbuf;
#line 1398 "SlideshowPage.c"
			} else {
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next_pixbuf);
#line 1402 "SlideshowPage.c"
			}
#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			return result;
#line 1406 "SlideshowPage.c"
		}
	}
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (next) {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		*next = _vala_next;
#line 1413 "SlideshowPage.c"
	} else {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_vala_next);
#line 1417 "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 1423 "SlideshowPage.c"
	} else {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_vala_next_pixbuf);
#line 1427 "SlideshowPage.c"
	}
}


static void slideshow_page_on_play_pause (SlideshowPage* self) {
	gboolean _tmp0_;
	gboolean _tmp7_;
	GTimer* _tmp8_;
#line 267 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 268 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->playing;
#line 268 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp0_) {
#line 1442 "SlideshowPage.c"
		GtkToolButton* _tmp1_;
		GtkToolButton* _tmp2_;
		GtkToolButton* _tmp3_;
#line 269 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp1_ = self->priv->play_pause_button;
#line 269 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_button_set_icon_name (_tmp1_, "media-playback-start");
#line 270 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = self->priv->play_pause_button;
#line 270 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_button_set_label (_tmp2_, _ ("Play"));
#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp3_ = self->priv->play_pause_button;
#line 271 "/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 1458 "SlideshowPage.c"
	} else {
		GtkToolButton* _tmp4_;
		GtkToolButton* _tmp5_;
		GtkToolButton* _tmp6_;
#line 273 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp4_ = self->priv->play_pause_button;
#line 273 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_button_set_icon_name (_tmp4_, "media-playback-pause");
#line 274 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5_ = self->priv->play_pause_button;
#line 274 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		gtk_tool_button_set_label (_tmp5_, _ ("Pause"));
#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = self->priv->play_pause_button;
#line 275 "/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 1475 "SlideshowPage.c"
	}
#line 278 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = self->priv->playing;
#line 278 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = !_tmp7_;
#line 281 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = self->priv->timer;
#line 281 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp8_);
#line 1485 "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 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 285 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->controller;
#line 285 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = self->priv->current;
#line 285 "/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 285 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	view = _tmp2_;
#line 287 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	prev_photo = NULL;
#line 288 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = self->priv->controller;
#line 288 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = view;
#line 288 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = view_collection_get_previous (_tmp3_, _tmp4_);
#line 288 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	start_view = _tmp5_;
#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = start_view;
#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = _g_object_ref0 (_tmp6_);
#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	prev_view = _tmp7_;
#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	while (TRUE) {
#line 1532 "SlideshowPage.c"
		DataView* _tmp8_;
		DataView* _tmp9_;
		DataSource* _tmp10_;
		DataSource* _tmp11_;
		gboolean _tmp12_;
		ViewCollection* _tmp15_;
		DataView* _tmp16_;
		DataView* _tmp17_;
		DataView* _tmp18_;
		DataView* _tmp19_;
#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = prev_view;
#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (!(_tmp8_ != NULL)) {
#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			break;
#line 1549 "SlideshowPage.c"
		}
#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = prev_view;
#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = data_view_get_source (_tmp9_);
#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = _tmp10_;
#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_PHOTO);
#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp11_);
#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (_tmp12_) {
#line 1563 "SlideshowPage.c"
			DataView* _tmp13_;
			DataSource* _tmp14_;
#line 293 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp13_ = prev_view;
#line 293 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp14_ = data_view_get_source (_tmp13_);
#line 293 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (prev_photo);
#line 293 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			prev_photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO, Photo);
#line 294 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			break;
#line 1576 "SlideshowPage.c"
		}
#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp15_ = self->priv->controller;
#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp16_ = prev_view;
#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp17_ = view_collection_get_previous (_tmp15_, _tmp16_);
#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (prev_view);
#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		prev_view = _tmp17_;
#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp18_ = prev_view;
#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp19_ = start_view;
#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (_tmp18_ == _tmp19_) {
#line 300 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			g_warning ("SlideshowPage.vala:300: on_previous( ): can't advance to previous phot" \
"o: collection has only videos");
#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (prev_view);
#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (start_view);
#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (prev_photo);
#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (view);
#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			return;
#line 1606 "SlideshowPage.c"
		}
	}
#line 305 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = prev_photo;
#line 305 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_advance (self, _tmp20_, DIRECTION_BACKWARD);
#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (prev_view);
#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (start_view);
#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (prev_photo);
#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (view);
#line 1621 "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 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 309 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->controller;
#line 309 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = self->priv->current;
#line 309 "/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 309 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	view = _tmp2_;
#line 311 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_photo = NULL;
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = self->priv->controller;
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = view;
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = view_collection_get_next (_tmp3_, _tmp4_);
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	start_view = _tmp5_;
#line 313 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = start_view;
#line 313 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = _g_object_ref0 (_tmp6_);
#line 313 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_view = _tmp7_;
#line 315 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	while (TRUE) {
#line 1673 "SlideshowPage.c"
		DataView* _tmp8_;
		DataView* _tmp9_;
		DataSource* _tmp10_;
		DataSource* _tmp11_;
		gboolean _tmp12_;
		ViewCollection* _tmp15_;
		DataView* _tmp16_;
		DataView* _tmp17_;
		DataView* _tmp18_;
		DataView* _tmp19_;
#line 315 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = next_view;
#line 315 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (!(_tmp8_ != NULL)) {
#line 315 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			break;
#line 1690 "SlideshowPage.c"
		}
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = next_view;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = data_view_get_source (_tmp9_);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = _tmp10_;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_PHOTO);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp11_);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (_tmp12_) {
#line 1704 "SlideshowPage.c"
			DataView* _tmp13_;
			DataSource* _tmp14_;
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp13_ = next_view;
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp14_ = data_view_get_source (_tmp13_);
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (next_photo);
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			next_photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO, Photo);
#line 318 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			break;
#line 1717 "SlideshowPage.c"
		}
#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp15_ = self->priv->controller;
#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp16_ = next_view;
#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp17_ = view_collection_get_next (_tmp15_, _tmp16_);
#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (next_view);
#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		next_view = _tmp17_;
#line 323 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp18_ = next_view;
#line 323 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp19_ = start_view;
#line 323 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		if (_tmp18_ == _tmp19_) {
#line 324 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			g_warning ("SlideshowPage.vala:324: on_next( ): can't advance to next photo: colle" \
"ction has only videos");
#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (next_view);
#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (start_view);
#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (next_photo);
#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (view);
#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			return;
#line 1747 "SlideshowPage.c"
		}
	}
#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = config_facade_get_instance ();
#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp21_ = _tmp20_;
#line 329 "/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 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = _tmp22_;
#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = g_strcmp0 (_tmp23_, RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID) == 0;
#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (_tmp23_);
#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp21_);
#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp24_) {
#line 331 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		slideshow_page_random_transition_effect (self);
#line 1768 "SlideshowPage.c"
	}
#line 334 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp25_ = next_photo;
#line 334 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_advance (self, _tmp25_, DIRECTION_FORWARD);
#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_view);
#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (start_view);
#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_photo);
#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (view);
#line 1782 "SlideshowPage.c"
}


static void slideshow_page_advance (SlideshowPage* self, Photo* photo, Direction direction) {
	Photo* _tmp0_;
	Photo* _tmp1_;
	GdkPixbuf* next_pixbuf = NULL;
	Photo* _tmp2_;
	Direction _tmp3_;
	Photo* _tmp4_ = NULL;
	GdkPixbuf* _tmp5_ = NULL;
	gboolean _tmp6_;
	GTimer* _tmp11_;
#line 337 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 337 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_PHOTO (photo));
#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = photo;
#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp1_;
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = self->priv->current;
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = direction;
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = slideshow_page_get_next_photo (self, _tmp2_, _tmp3_, &_tmp4_, &_tmp5_);
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp4_;
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_pixbuf);
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_pixbuf = _tmp5_;
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 1824 "SlideshowPage.c"
		GdkPixbuf* _tmp7_;
		Photo* _tmp8_;
		Dimensions _tmp9_ = {0};
		Direction _tmp10_;
#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = next_pixbuf;
#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = self->priv->current;
#line 343 "/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 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = direction;
#line 343 "/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 1839 "SlideshowPage.c"
	}
#line 346 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = self->priv->timer;
#line 346 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp11_);
#line 337 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_pixbuf);
#line 1847 "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_;
	gdouble _tmp6_;
	gboolean _tmp7_;
#line 349 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_SLIDESHOW_PAGE (self), FALSE);
#line 350 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->exiting;
#line 350 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp0_) {
#line 351 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = FALSE;
#line 351 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 1871 "SlideshowPage.c"
	}
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = self->priv->playing;
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (!_tmp1_) {
#line 354 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = TRUE;
#line 354 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 1881 "SlideshowPage.c"
	}
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = self->priv->timer;
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = g_timer_elapsed (_tmp2_, NULL);
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = config_facade_get_instance ();
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = _tmp4_;
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = configuration_facade_get_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = _tmp3_ < _tmp6_;
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp5_);
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp7_) {
#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = TRUE;
#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 1903 "SlideshowPage.c"
	}
#line 359 "/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 361 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = TRUE;
#line 361 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 1911 "SlideshowPage.c"
}


static gboolean slideshow_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
	SlideshowPage * self;
	gboolean result = FALSE;
	gboolean handled = FALSE;
	GdkEventKey* _tmp0_;
	guint _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	GQuark _tmp5_ = 0U;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	static GQuark _tmp4_label0 = 0;
#line 1926 "SlideshowPage.c"
	gboolean _tmp6_;
	gboolean _tmp7_ = FALSE;
#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 365 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	handled = TRUE;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = event;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _tmp0_->keyval;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = gdk_keyval_name (_tmp1_);
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _tmp2_;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("space")))) {
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		switch (0) {
#line 1949 "SlideshowPage.c"
			default:
			{
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				slideshow_page_on_play_pause (self);
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				break;
#line 1956 "SlideshowPage.c"
			}
		}
	} else {
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		switch (0) {
#line 1962 "SlideshowPage.c"
			default:
			{
#line 372 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				handled = FALSE;
#line 373 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				break;
#line 1969 "SlideshowPage.c"
			}
		}
	}
#line 376 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = handled;
#line 376 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 377 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = TRUE;
#line 377 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 1981 "SlideshowPage.c"
	}
#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (GTK_WIDGET_CLASS (slideshow_page_parent_class)->key_press_event != NULL) {
#line 1985 "SlideshowPage.c"
		GdkEventKey* _tmp8_;
		gboolean _tmp9_;
#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = event;
#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = 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), _tmp8_);
#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = _tmp9_;
#line 1994 "SlideshowPage.c"
	} else {
#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = TRUE;
#line 1998 "SlideshowPage.c"
	}
#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = _tmp7_;
#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 2004 "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_;
	gint _tmp4_;
	SlideshowPageSettingsDialog* _tmp22_;
	gboolean _tmp23_;
	GTimer* _tmp24_;
#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 383 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = slideshow_page_settings_dialog_new ();
#line 383 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp0_);
#line 383 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	settings_dialog = _tmp0_;
#line 384 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = settings_dialog;
#line 384 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
#line 386 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = self->priv->playing;
#line 386 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_playing = _tmp2_;
#line 387 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = FALSE;
#line 388 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_emit (self, slideshow_page_signals[SLIDESHOW_PAGE_HIDE_TOOLBAR_SIGNAL], 0);
#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = settings_dialog;
#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_dialog_get_type (), GtkDialog));
#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp4_ == ((gint) GTK_RESPONSE_OK)) {
#line 2045 "SlideshowPage.c"
		ConfigFacade* _tmp5_;
		ConfigFacade* _tmp6_;
		SlideshowPageSettingsDialog* _tmp7_;
		gdouble _tmp8_;
		ConfigFacade* _tmp9_;
		ConfigFacade* _tmp10_;
		SlideshowPageSettingsDialog* _tmp11_;
		gdouble _tmp12_;
		ConfigFacade* _tmp13_;
		ConfigFacade* _tmp14_;
		SlideshowPageSettingsDialog* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		ConfigFacade* _tmp18_;
		ConfigFacade* _tmp19_;
		SlideshowPageSettingsDialog* _tmp20_;
		gboolean _tmp21_;
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5_ = config_facade_get_instance ();
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = _tmp5_;
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = settings_dialog;
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = slideshow_page_settings_dialog_get_delay (_tmp7_);
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp8_);
#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp6_);
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = config_facade_get_instance ();
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = _tmp9_;
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = settings_dialog;
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp12_ = slideshow_page_settings_dialog_get_transition_delay (_tmp11_);
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp12_);
#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp10_);
#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp13_ = config_facade_get_instance ();
#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp14_ = _tmp13_;
#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp15_ = settings_dialog;
#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp16_ = slideshow_page_settings_dialog_get_transition_effect_id (_tmp15_);
#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp17_ = _tmp16_;
#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp17_);
#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (_tmp17_);
#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp14_);
#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp18_ = config_facade_get_instance ();
#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp19_ = _tmp18_;
#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp20_ = settings_dialog;
#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp21_ = slideshow_page_settings_dialog_get_show_title (_tmp20_);
#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp21_);
#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp19_);
#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		slideshow_page_update_transition_effect (self);
#line 2117 "SlideshowPage.c"
	}
#line 401 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp22_ = settings_dialog;
#line 401 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget));
#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = slideshow_playing;
#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = _tmp23_;
#line 403 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = self->priv->timer;
#line 403 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp24_);
#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (settings_dialog);
#line 2133 "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_;
	gdouble _tmp7_;
#line 406 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = config_facade_get_instance ();
#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _tmp0_;
#line 407 "/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 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _tmp2_;
#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp1_);
#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_id = _tmp3_;
#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = config_facade_get_instance ();
#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = _tmp4_;
#line 408 "/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 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = _tmp6_;
#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp5_);
#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_delay = _tmp7_;
#line 410 "/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 406 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (effect_id);
#line 2178 "SlideshowPage.c"
}


static void slideshow_page_random_transition_effect (SlideshowPage* self) {
	gdouble effect_delay = 0.0;
	ConfigFacade* _tmp0_;
	ConfigFacade* _tmp1_;
	gdouble _tmp2_;
	gdouble _tmp3_;
	gchar* effect_id = NULL;
	gchar* _tmp4_;
	gchar** _tmp5_;
	gint _tmp5__length1;
	const gchar* _tmp12_;
	gdouble _tmp13_;
#line 413 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = config_facade_get_instance ();
#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _tmp0_;
#line 414 "/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 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _tmp2_;
#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp1_);
#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_delay = _tmp3_;
#line 415 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = g_strdup (TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
#line 415 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_id = _tmp4_;
#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = self->priv->transitions;
#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5__length1 = self->priv->transitions_length1;
#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (0 < _tmp5__length1) {
#line 2218 "SlideshowPage.c"
		gint random = 0;
		gchar** _tmp6_;
		gint _tmp6__length1;
		gint32 _tmp7_;
		gchar** _tmp8_;
		gint _tmp8__length1;
		gint _tmp9_;
		const gchar* _tmp10_;
		gchar* _tmp11_;
#line 417 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = self->priv->transitions;
#line 417 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6__length1 = self->priv->transitions_length1;
#line 417 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = g_random_int_range ((gint32) 0, (gint32) _tmp6__length1);
#line 417 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		random = (gint) _tmp7_;
#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = self->priv->transitions;
#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8__length1 = self->priv->transitions_length1;
#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = random;
#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = _tmp8_[_tmp9_];
#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = g_strdup (_tmp10_);
#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (effect_id);
#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		effect_id = _tmp11_;
#line 2250 "SlideshowPage.c"
	}
#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = effect_id;
#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp13_ = effect_delay;
#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	single_photo_page_set_transition (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp12_, (gint) (_tmp13_ * 1000.0));
#line 413 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (effect_id);
#line 2260 "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_;
	cairo_t* _tmp38_;
	cairo_t* _tmp39_;
	gdouble _tmp40_;
	gdouble _tmp41_;
	cairo_t* _tmp42_;
	PangoLayout* _tmp43_;
	cairo_t* _tmp44_;
	PangoLayout* _tmp45_;
	cairo_t* _tmp46_;
	cairo_t* _tmp47_;
	cairo_t* _tmp48_;
#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx != NULL);
#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx_dim != NULL);
#line 425 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->current;
#line 425 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
#line 425 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	title = _tmp1_;
#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = title;
#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp3_ == NULL) {
#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = TRUE;
#line 2333 "SlideshowPage.c"
	} else {
		const gchar* _tmp4_;
#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp4_ = title;
#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = g_strcmp0 (_tmp4_, "") == 0;
#line 2340 "SlideshowPage.c"
	}
#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp2_) {
#line 429 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (title);
#line 429 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return;
#line 2348 "SlideshowPage.c"
	}
#line 431 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = title;
#line 431 "/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 431 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	layout = _tmp6_;
#line 432 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = pango_attr_list_new ();
#line 432 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	list = _tmp7_;
#line 433 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = pango_attr_scale_new ((gdouble) 3);
#line 433 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	size = _tmp8_;
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp9_ = list;
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = size;
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = pango_attribute_copy (_tmp10_);
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_attr_list_insert (_tmp9_, _tmp11_);
#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = layout;
#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp13_ = list;
#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_layout_set_attributes (_tmp12_, _tmp13_);
#line 436 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp14_ = layout;
#line 436 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp15_ = *ctx_dim;
#line 436 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp16_ = _tmp15_.width;
#line 436 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_layout_set_width (_tmp14_, (gint) ((_tmp16_ * 0.9) * PANGO_SCALE));
#line 440 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp17_ = layout;
#line 440 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_layout_get_pixel_size (_tmp17_, &_tmp18_, &_tmp19_);
#line 440 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	title_width = _tmp18_;
#line 440 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	title_height = _tmp19_;
#line 441 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = *ctx_dim;
#line 441 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp21_ = _tmp20_.width;
#line 441 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	x = _tmp21_ * 0.2;
#line 442 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp22_ = *ctx_dim;
#line 442 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = _tmp22_.height;
#line 442 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	y = _tmp23_ * 0.90;
#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = y;
#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp25_ = title_height;
#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp26_ = *ctx_dim;
#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp27_ = _tmp26_.height;
#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if ((_tmp24_ + _tmp25_) >= (_tmp27_ * 0.95)) {
#line 2416 "SlideshowPage.c"
		Dimensions _tmp28_;
		gint _tmp29_;
		gint _tmp30_;
#line 446 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp28_ = *ctx_dim;
#line 446 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp29_ = _tmp28_.height;
#line 446 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp30_ = title_height;
#line 446 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		y = (_tmp29_ * 0.95) - _tmp30_;
#line 2428 "SlideshowPage.c"
	}
#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp31_ = x;
#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp32_ = title_width;
#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp33_ = *ctx_dim;
#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp34_ = _tmp33_.width;
#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if ((_tmp31_ + _tmp32_) >= (_tmp34_ * 0.95)) {
#line 2440 "SlideshowPage.c"
		Dimensions _tmp35_;
		gint _tmp36_;
		gint _tmp37_;
#line 449 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp35_ = *ctx_dim;
#line 449 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp36_ = _tmp35_.width;
#line 449 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp37_ = title_width;
#line 449 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		x = (gdouble) ((_tmp36_ / 2) - (_tmp37_ / 2));
#line 2452 "SlideshowPage.c"
	}
#line 451 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp38_ = ctx;
#line 451 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	set_source_color_from_string (_tmp38_, "#fff");
#line 452 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp39_ = ctx;
#line 452 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp40_ = x;
#line 452 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp41_ = y;
#line 452 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	cairo_move_to (_tmp39_, _tmp40_, _tmp41_);
#line 453 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp42_ = ctx;
#line 453 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp43_ = layout;
#line 453 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_cairo_show_layout (_tmp42_, _tmp43_);
#line 454 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp44_ = ctx;
#line 454 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp45_ = layout;
#line 454 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	pango_cairo_layout_path (_tmp44_, _tmp45_);
#line 455 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp46_ = ctx;
#line 455 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	cairo_set_line_width (_tmp46_, 1.5);
#line 456 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp47_ = ctx;
#line 456 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	set_source_color_from_string (_tmp47_, "#000");
#line 457 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp48_ = ctx;
#line 457 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	cairo_stroke (_tmp48_);
#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_pango_attribute_destroy0 (size);
#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_pango_attr_list_unref0 (list);
#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (layout);
#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (title);
#line 2498 "SlideshowPage.c"
}


static void slideshow_page_real_paint (SinglePhotoPage* base, cairo_t* ctx, Dimensions* ctx_dim) {
	SlideshowPage * self;
	cairo_t* _tmp0_;
	Dimensions _tmp1_;
	gboolean _tmp2_ = FALSE;
	ConfigFacade* _tmp3_;
	ConfigFacade* _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
#line 460 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 460 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx != NULL);
#line 460 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx_dim != NULL);
#line 461 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = ctx;
#line 461 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = *ctx_dim;
#line 461 "/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), _tmp0_, &_tmp1_);
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = config_facade_get_instance ();
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = _tmp3_;
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = configuration_facade_get_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = _tmp5_;
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp4_);
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 2535 "SlideshowPage.c"
		gboolean _tmp7_;
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = single_photo_page_is_transition_in_progress (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = !_tmp7_;
#line 2541 "SlideshowPage.c"
	} else {
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = FALSE;
#line 2545 "SlideshowPage.c"
	}
#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp2_) {
#line 2549 "SlideshowPage.c"
		cairo_t* _tmp8_;
		Dimensions _tmp9_;
#line 464 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = ctx;
#line 464 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = *ctx_dim;
#line 464 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		slideshow_page_paint_title (self, _tmp8_, &_tmp9_);
#line 2558 "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 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 2568 "SlideshowPage.c"
}


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


static SlideshowPageSettingsDialog* slideshow_page_settings_dialog_construct (GType object_type) {
	SlideshowPageSettingsDialog * self = NULL;
	GtkBuilder* _tmp0_;
	GtkBuilder* _tmp1_;
	GObject* _tmp2_;
	GtkBox* _tmp3_;
	GtkBox* _tmp4_;
	GtkBox* _tmp5_;
	gdouble delay = 0.0;
	ConfigFacade* _tmp6_;
	ConfigFacade* _tmp7_;
	gdouble _tmp8_;
	gdouble _tmp9_;
	FullscreenWindow* _tmp10_;
	FullscreenWindow* _tmp11_;
	GtkAdjustment* adjustment = NULL;
	gdouble _tmp12_;
	GtkAdjustment* _tmp13_;
	GtkBuilder* _tmp14_;
	GObject* _tmp15_;
	GtkScale* _tmp16_;
	GtkScale* _tmp17_;
	GtkAdjustment* _tmp18_;
	GtkBuilder* _tmp19_;
	GObject* _tmp20_;
	GtkSpinButton* _tmp21_;
	GtkSpinButton* _tmp22_;
	GtkAdjustment* _tmp23_;
	GtkSpinButton* _tmp24_;
	gdouble _tmp25_;
	GtkSpinButton* _tmp26_;
	GtkSpinButton* _tmp27_;
	GtkBuilder* _tmp28_;
	GObject* _tmp29_;
	GtkComboBoxText* _tmp30_;
	gchar* effect_id = NULL;
	ConfigFacade* _tmp31_;
	ConfigFacade* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	gchar* null_display_name = NULL;
	TransitionEffectsManager* _tmp35_;
	TransitionEffectsManager* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	GtkComboBoxText* _tmp39_;
	const gchar* _tmp40_;
	GtkComboBoxText* _tmp41_;
	gint i = 0;
	GtkComboBoxText* _tmp66_;
	gdouble transition_delay = 0.0;
	ConfigFacade* _tmp67_;
	ConfigFacade* _tmp68_;
	gdouble _tmp69_;
	gdouble _tmp70_;
	GtkAdjustment* _tmp71_;
	GtkBuilder* _tmp72_;
	GObject* _tmp73_;
	GtkScale* _tmp74_;
	GtkScale* _tmp75_;
	GtkAdjustment* _tmp76_;
	GtkBuilder* _tmp77_;
	GObject* _tmp78_;
	GtkSpinButton* _tmp79_;
	GtkSpinButton* _tmp80_;
	GtkAdjustment* _tmp81_;
	GtkSpinButton* _tmp82_;
	GtkSpinButton* _tmp83_;
	GtkSpinButton* _tmp84_;
	gboolean show_title = FALSE;
	ConfigFacade* _tmp85_;
	ConfigFacade* _tmp86_;
	gboolean _tmp87_;
	gboolean _tmp88_;
	GtkBuilder* _tmp89_;
	GObject* _tmp90_;
	GtkCheckButton* _tmp91_;
	GtkCheckButton* _tmp92_;
#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = (SlideshowPageSettingsDialog*) g_object_new (object_type, NULL);
#line 38 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
#line 38 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->builder);
#line 38 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->builder = _tmp0_;
#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = self->priv->builder;
#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = gtk_builder_get_object (_tmp1_, "slideshow_settings_pane");
#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_box_get_type ()) ? ((GtkBox*) _tmp2_) : NULL);
#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->pane);
#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->pane = _tmp3_;
#line 40 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
#line 40 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = self->priv->pane;
#line 40 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = config_facade_get_instance ();
#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = _tmp6_;
#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = configuration_facade_get_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp9_ = _tmp8_;
#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp7_);
#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	delay = _tmp9_;
#line 44 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
#line 45 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = app_window_get_fullscreen ();
#line 45 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = _tmp10_;
#line 45 "/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 (_tmp11_, gtk_window_get_type (), GtkWindow));
#line 45 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp11_);
#line 47 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_OK_LABEL, GTK_RESPONSE_OK, NULL);
#line 49 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _ ("Settings"));
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = delay;
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp13_ = gtk_adjustment_new (_tmp12_, CONFIG_FACADE_SLIDESHOW_DELAY_MIN, CONFIG_FACADE_SLIDESHOW_DELAY_MAX, 0.1, (gdouble) 1, (gdouble) 0);
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp13_);
#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	adjustment = _tmp13_;
#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp14_ = self->priv->builder;
#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp15_ = gtk_builder_get_object (_tmp14_, "delay_hscale");
#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp16_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, gtk_scale_get_type ()) ? ((GtkScale*) _tmp15_) : NULL);
#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->delay_hscale);
#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->delay_hscale = _tmp16_;
#line 53 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp17_ = self->priv->delay_hscale;
#line 53 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp18_ = adjustment;
#line 53 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_range_set_adjustment (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_range_get_type (), GtkRange), _tmp18_);
#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp19_ = self->priv->builder;
#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp20_ = gtk_builder_get_object (_tmp19_, "delay_entry");
#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp21_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp20_, gtk_spin_button_get_type ()) ? ((GtkSpinButton*) _tmp20_) : NULL);
#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->delay_entry);
#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->delay_entry = _tmp21_;
#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp22_ = self->priv->delay_entry;
#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = adjustment;
#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_spin_button_set_adjustment (_tmp22_, _tmp23_);
#line 57 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = self->priv->delay_entry;
#line 57 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp25_ = delay;
#line 57 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_spin_button_set_value (_tmp24_, _tmp25_);
#line 58 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp26_ = self->priv->delay_entry;
#line 58 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_spin_button_set_numeric (_tmp26_, TRUE);
#line 59 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp27_ = self->priv->delay_entry;
#line 59 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_entry_set_activates_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_entry_get_type (), GtkEntry), TRUE);
#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp28_ = self->priv->builder;
#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp29_ = gtk_builder_get_object (_tmp28_, "transition_effect_selector");
#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp30_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp29_, gtk_combo_box_text_get_type ()) ? ((GtkComboBoxText*) _tmp29_) : NULL);
#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_selector);
#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transition_effect_selector = _tmp30_;
#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp31_ = config_facade_get_instance ();
#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp32_ = _tmp31_;
#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp33_ = configuration_facade_get_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp34_ = _tmp33_;
#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp32_);
#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	effect_id = _tmp34_;
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp35_ = transition_effects_manager_get_instance ();
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp36_ = _tmp35_;
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp37_ = transition_effects_manager_get_effect_name (_tmp36_, TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp38_ = _tmp37_;
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_transition_effects_manager_unref0 (_tmp36_);
#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	null_display_name = _tmp38_;
#line 69 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp39_ = self->priv->transition_effect_selector;
#line 69 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp40_ = null_display_name;
#line 69 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_combo_box_text_append_text (_tmp39_, _tmp40_);
#line 70 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp41_ = self->priv->transition_effect_selector;
#line 70 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_combo_box_get_type (), GtkComboBox), 0);
#line 72 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	i = 1;
#line 2807 "SlideshowPage.c"
	{
		GeeIterator* _display_name_it = NULL;
		TransitionEffectsManager* _tmp42_;
		TransitionEffectsManager* _tmp43_;
		GeeCollection* _tmp44_;
		GeeCollection* _tmp45_;
		GeeIterator* _tmp46_;
		GeeIterator* _tmp47_;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp42_ = transition_effects_manager_get_instance ();
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp43_ = _tmp42_;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp44_ = transition_effects_manager_get_effect_names (_tmp43_, _utf8_ci_compare_gcompare_data_func, NULL, NULL);
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp45_ = _tmp44_;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp46_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, GEE_TYPE_ITERABLE, GeeIterable));
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp47_ = _tmp46_;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp45_);
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_transition_effects_manager_unref0 (_tmp43_);
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_display_name_it = _tmp47_;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		while (TRUE) {
#line 2836 "SlideshowPage.c"
			GeeIterator* _tmp48_;
			gboolean _tmp49_;
			gchar* display_name = NULL;
			GeeIterator* _tmp50_;
			gpointer _tmp51_;
			const gchar* _tmp52_;
			const gchar* _tmp53_;
			GtkComboBoxText* _tmp54_;
			const gchar* _tmp55_;
			const gchar* _tmp56_;
			TransitionEffectsManager* _tmp57_;
			TransitionEffectsManager* _tmp58_;
			const gchar* _tmp59_;
			gchar* _tmp60_;
			gchar* _tmp61_;
			gboolean _tmp62_;
			gint _tmp65_;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp48_ = _display_name_it;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp49_ = gee_iterator_next (_tmp48_);
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (!_tmp49_) {
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				break;
#line 2862 "SlideshowPage.c"
			}
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp50_ = _display_name_it;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp51_ = gee_iterator_get (_tmp50_);
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			display_name = (gchar*) _tmp51_;
#line 75 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp52_ = display_name;
#line 75 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp53_ = null_display_name;
#line 75 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (g_strcmp0 (_tmp52_, _tmp53_) == 0) {
#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_free0 (display_name);
#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				continue;
#line 2880 "SlideshowPage.c"
			}
#line 78 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp54_ = self->priv->transition_effect_selector;
#line 78 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp55_ = display_name;
#line 78 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			gtk_combo_box_text_append_text (_tmp54_, _tmp55_);
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp56_ = effect_id;
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp57_ = transition_effects_manager_get_instance ();
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp58_ = _tmp57_;
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp59_ = display_name;
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp60_ = transition_effects_manager_get_id_for_effect_name (_tmp58_, _tmp59_);
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp61_ = _tmp60_;
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp62_ = g_strcmp0 (_tmp56_, _tmp61_) == 0;
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_free0 (_tmp61_);
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_transition_effects_manager_unref0 (_tmp58_);
#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (_tmp62_) {
#line 2908 "SlideshowPage.c"
				GtkComboBoxText* _tmp63_;
				gint _tmp64_;
#line 80 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp63_ = self->priv->transition_effect_selector;
#line 80 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp64_ = i;
#line 80 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, gtk_combo_box_get_type (), GtkComboBox), _tmp64_);
#line 2917 "SlideshowPage.c"
			}
#line 82 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp65_ = i;
#line 82 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			i = _tmp65_ + 1;
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_free0 (display_name);
#line 2925 "SlideshowPage.c"
		}
#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_display_name_it);
#line 2929 "SlideshowPage.c"
	}
#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp66_ = self->priv->transition_effect_selector;
#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _slideshow_page_settings_dialog_on_transition_changed_gtk_combo_box_changed, self, 0);
#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp67_ = config_facade_get_instance ();
#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp68_ = _tmp67_;
#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp69_ = configuration_facade_get_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp70_ = _tmp69_;
#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp68_);
#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	transition_delay = _tmp70_;
#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp71_ = gtk_adjustment_new (transition_delay, CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MIN, CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MAX, 0.1, (gdouble) 1, (gdouble) 0);
#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp71_);
#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_adjustment);
#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transition_effect_adjustment = _tmp71_;
#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp72_ = self->priv->builder;
#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp73_ = gtk_builder_get_object (_tmp72_, "transition_effect_hscale");
#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp74_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp73_, gtk_scale_get_type ()) ? ((GtkScale*) _tmp73_) : NULL);
#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_hscale);
#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transition_effect_hscale = _tmp74_;
#line 91 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp75_ = self->priv->transition_effect_hscale;
#line 91 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp76_ = self->priv->transition_effect_adjustment;
#line 91 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_range_set_adjustment (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, gtk_range_get_type (), GtkRange), _tmp76_);
#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp77_ = self->priv->builder;
#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp78_ = gtk_builder_get_object (_tmp77_, "transition_effect_entry");
#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp79_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp78_, gtk_spin_button_get_type ()) ? ((GtkSpinButton*) _tmp78_) : NULL);
#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_entry);
#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->transition_effect_entry = _tmp79_;
#line 94 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp80_ = self->priv->transition_effect_entry;
#line 94 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp81_ = self->priv->transition_effect_adjustment;
#line 94 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_spin_button_set_adjustment (_tmp80_, _tmp81_);
#line 95 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp82_ = self->priv->transition_effect_entry;
#line 95 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_spin_button_set_value (_tmp82_, transition_delay);
#line 96 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp83_ = self->priv->transition_effect_entry;
#line 96 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_spin_button_set_numeric (_tmp83_, TRUE);
#line 97 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp84_ = self->priv->transition_effect_entry;
#line 97 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_entry_set_activates_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp84_, gtk_entry_get_type (), GtkEntry), TRUE);
#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp85_ = config_facade_get_instance ();
#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp86_ = _tmp85_;
#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp87_ = configuration_facade_get_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp86_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp88_ = _tmp87_;
#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp86_);
#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	show_title = _tmp88_;
#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp89_ = self->priv->builder;
#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp90_ = gtk_builder_get_object (_tmp89_, "show_title_button");
#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp91_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp90_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp90_) : NULL);
#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->show_title_button);
#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->show_title_button = _tmp91_;
#line 101 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp92_ = self->priv->show_title_button;
#line 101 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp92_, gtk_toggle_button_get_type (), GtkToggleButton), show_title);
#line 103 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_dialog_set_default_response (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK);
#line 105 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_settings_dialog_on_transition_changed (self);
#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (null_display_name);
#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (effect_id);
#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (adjustment);
#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return self;
#line 3037 "SlideshowPage.c"
}


static SlideshowPageSettingsDialog* slideshow_page_settings_dialog_new (void) {
#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return slideshow_page_settings_dialog_construct (SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG);
#line 3044 "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 108 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self));
#line 109 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->transition_effect_selector;
#line 109 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = gtk_combo_box_text_get_active_text (_tmp0_);
#line 109 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	selected = _tmp1_;
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = selected;
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp3_ != NULL) {
#line 3069 "SlideshowPage.c"
		const gchar* _tmp4_;
#line 111 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp4_ = selected;
#line 111 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = g_strcmp0 (_tmp4_, TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID) != 0;
#line 3075 "SlideshowPage.c"
	} else {
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = FALSE;
#line 3079 "SlideshowPage.c"
	}
#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	sensitive = _tmp2_;
#line 113 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = self->priv->transition_effect_hscale;
#line 113 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), sensitive);
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = self->priv->transition_effect_entry;
#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), sensitive);
#line 108 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (selected);
#line 3093 "SlideshowPage.c"
}


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


static gdouble slideshow_page_settings_dialog_get_transition_delay (SlideshowPageSettingsDialog* self) {
	gdouble result = 0.0;
	GtkSpinButton* _tmp0_;
	gdouble _tmp1_;
#line 121 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), 0.0);
#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->transition_effect_entry;
#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = gtk_spin_button_get_value (_tmp0_);
#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = _tmp1_;
#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 3129 "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 125 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), NULL);
#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->transition_effect_selector;
#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = gtk_combo_box_text_get_active_text (_tmp0_);
#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	active = _tmp1_;
#line 127 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = active;
#line 127 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp2_ == NULL) {
#line 3160 "SlideshowPage.c"
		gchar* _tmp3_;
#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp3_ = g_strdup (TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = _tmp3_;
#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (active);
#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 3170 "SlideshowPage.c"
	}
#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = transition_effects_manager_get_instance ();
#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = _tmp4_;
#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = active;
#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp7_ = transition_effects_manager_get_id_for_effect_name (_tmp5_, _tmp6_);
#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp8_ = _tmp7_;
#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_transition_effects_manager_unref0 (_tmp5_);
#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	id = _tmp8_;
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp10_ = id;
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp10_ != NULL) {
#line 3190 "SlideshowPage.c"
		const gchar* _tmp11_;
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = id;
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = _tmp11_;
#line 3196 "SlideshowPage.c"
	} else {
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID;
#line 3200 "SlideshowPage.c"
	}
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp12_ = g_strdup (_tmp9_);
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = _tmp12_;
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (id);
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_free0 (active);
#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 3212 "SlideshowPage.c"
}


static gboolean slideshow_page_settings_dialog_get_show_title (SlideshowPageSettingsDialog* self) {
	gboolean result = FALSE;
	GtkCheckButton* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
#line 135 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), FALSE);
#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->show_title_button;
#line 136 "/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 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = _tmp1_;
#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = _tmp2_;
#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 3233 "SlideshowPage.c"
}


static void slideshow_page_settings_dialog_class_init (SlideshowPageSettingsDialogClass * klass) {
#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_page_settings_dialog_parent_class = g_type_class_peek_parent (klass);
#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_type_class_add_private (klass, sizeof (SlideshowPageSettingsDialogPrivate));
#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	G_OBJECT_CLASS (klass)->finalize = slideshow_page_settings_dialog_finalize;
#line 3244 "SlideshowPage.c"
}


static void slideshow_page_settings_dialog_instance_init (SlideshowPageSettingsDialog * self) {
#line 26 "/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"
	self->priv->builder = NULL;
#line 3253 "SlideshowPage.c"
}


static void slideshow_page_settings_dialog_finalize (GObject * obj) {
	SlideshowPageSettingsDialog * self;
#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialog);
#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->builder);
#line 28 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->delay_entry);
#line 29 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->delay_hscale);
#line 30 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_selector);
#line 31 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_hscale);
#line 32 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_entry);
#line 33 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->transition_effect_adjustment);
#line 34 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->show_title_button);
#line 35 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->pane);
#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	G_OBJECT_CLASS (slideshow_page_settings_dialog_parent_class)->finalize (obj);
#line 3281 "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 3318 "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 3336 "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 3364 "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);
}



