/* SlideshowPage.c generated by valac 0.34.7, 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;

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

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

struct _Dimensions {
	gint width;
	gint height;
};

typedef enum  {
	SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF,
	SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT,
	SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS
} SinglePhotoPageUpdateReason;

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

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

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

struct _SlideshowPageClass {
	SinglePhotoPageClass parent_class;
};

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

typedef enum  {
	PIXBUF_CACHE_PHOTO_TYPE_BASELINE,
	PIXBUF_CACHE_PHOTO_TYPE_MASTER
} PixbufCachePhotoType;

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

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

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

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

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

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

struct _SlideshowPageSettingsDialogClass {
	GtkDialogClass parent_class;
};

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


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

GType page_get_type (void) G_GNUC_CONST;
GType page_window_get_type (void) G_GNUC_CONST;
GType fullscreen_window_get_type (void) G_GNUC_CONST;
gpointer injection_group_ref (gpointer instance);
void injection_group_unref (gpointer instance);
GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_injection_group (GValue* value, gpointer v_object);
void value_take_injection_group (GValue* value, gpointer v_object);
gpointer value_get_injection_group (const GValue* value);
GType injection_group_get_type (void) G_GNUC_CONST;
GType single_photo_page_get_type (void) G_GNUC_CONST;
GType zoom_buffer_get_type (void) G_GNUC_CONST;
GType dimensions_get_type (void) G_GNUC_CONST;
Dimensions* dimensions_dup (const Dimensions* self);
void dimensions_free (Dimensions* self);
GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
GType slideshow_page_get_type (void) G_GNUC_CONST;
gpointer data_collection_ref (gpointer instance);
void data_collection_unref (gpointer instance);
GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_data_collection (GValue* value, gpointer v_object);
void value_take_data_collection (GValue* value, gpointer v_object);
gpointer value_get_data_collection (const GValue* value);
GType data_collection_get_type (void) G_GNUC_CONST;
GType source_collection_get_type (void) G_GNUC_CONST;
GType view_collection_get_type (void) G_GNUC_CONST;
GType data_object_get_type (void) G_GNUC_CONST;
GType data_source_get_type (void) G_GNUC_CONST;
GType thumbnail_source_get_type (void) G_GNUC_CONST;
GType media_source_get_type (void) G_GNUC_CONST;
GType photo_source_get_type (void) G_GNUC_CONST;
GType photo_get_type (void) G_GNUC_CONST;
GType pixbuf_cache_get_type (void) G_GNUC_CONST;
gpointer screensaver_ref (gpointer instance);
void screensaver_unref (gpointer instance);
GParamSpec* param_spec_screensaver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_screensaver (GValue* value, gpointer v_object);
void value_take_screensaver (GValue* value, gpointer v_object);
gpointer value_get_screensaver (const GValue* value);
GType screensaver_get_type (void) G_GNUC_CONST;
#define SLIDESHOW_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SLIDESHOW_PAGE, SlideshowPagePrivate))
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
};
FullscreenWindow* app_window_get_fullscreen (void);
gchar* transition_effects_manager_get_effect_name (TransitionEffectsManager* self, const gchar* effect_id);
GeeCollection* transition_effects_manager_get_effect_names (TransitionEffectsManager* self, GCompareDataFunc comparator, void* comparator_target, GDestroyNotify comparator_target_destroy_notify);
gint utf8_ci_compare (void* a, void* b);
static gint _utf8_ci_compare_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
gchar* transition_effects_manager_get_id_for_effect_name (TransitionEffectsManager* self, const gchar* effect_name);
static void slideshow_page_settings_dialog_on_transition_changed (SlideshowPageSettingsDialog* self);
static void _slideshow_page_settings_dialog_on_transition_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
static void slideshow_page_settings_dialog_finalize (GObject* obj);
static void slideshow_page_finalize (GObject* obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


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


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


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


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


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


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


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


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


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


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


static void slideshow_page_real_switching_from (Page* base) {
	SlideshowPage * self;
	Screensaver* _tmp0_ = NULL;
#line 185 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 186 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	PAGE_CLASS (slideshow_page_parent_class)->switching_from (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page));
#line 188 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = self->priv->screensaver;
#line 188 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	screensaver_uninhibit (_tmp0_);
#line 189 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->exiting = TRUE;
#line 1028 "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_ = NULL;
	Photo* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_SLIDESHOW_PAGE (self), FALSE);
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (IS_PHOTO (start), FALSE);
#line 194 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = start;
#line 194 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 194 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_vala_next);
#line 194 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_vala_next = _tmp1_;
#line 1051 "SlideshowPage.c"
	{
		gboolean _tmp2_ = FALSE;
#line 196 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = TRUE;
#line 196 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		while (TRUE) {
#line 1058 "SlideshowPage.c"
			DataSource* forward = NULL;
			DataSource* back = NULL;
			ViewCollection* _tmp41_ = NULL;
			Photo* _tmp42_ = NULL;
			DataSource* _tmp43_ = NULL;
			DataSource* _tmp44_ = NULL;
			PixbufCache* _tmp45_ = NULL;
			DataSource* _tmp46_ = NULL;
			PixbufCache* _tmp47_ = NULL;
			DataSource* _tmp48_ = NULL;
			GeeSet* neighbors = NULL;
			ViewCollection* _tmp49_ = NULL;
			Photo* _tmp50_ = NULL;
			GeeSet* _tmp51_ = NULL;
			GeeSet* _tmp52_ = NULL;
			DataSource* _tmp53_ = NULL;
			GeeSet* _tmp54_ = NULL;
			DataSource* _tmp55_ = NULL;
			PixbufCache* _tmp56_ = NULL;
			GeeSet* _tmp57_ = NULL;
#line 196 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (!_tmp2_) {
#line 1081 "SlideshowPage.c"
			}
#line 196 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp2_ = FALSE;
#line 1085 "SlideshowPage.c"
			{
				GdkPixbuf* _tmp3_ = NULL;
				PixbufCache* _tmp4_ = NULL;
				Photo* _tmp5_ = NULL;
				GdkPixbuf* _tmp6_ = NULL;
				GdkPixbuf* _tmp7_ = NULL;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp4_ = self->priv->cache;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp5_ = _vala_next;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp6_ = pixbuf_cache_fetch (_tmp4_, _tmp5_, &_inner_error_);
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp3_ = _tmp6_;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1102 "SlideshowPage.c"
					goto __catch464_g_error;
				}
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp7_ = _tmp3_;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp3_ = NULL;
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next_pixbuf);
#line 199 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_vala_next_pixbuf = _tmp7_;
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_tmp3_);
#line 1115 "SlideshowPage.c"
			}
			goto __finally464;
			__catch464_g_error:
			{
				GError* err = NULL;
				Photo* _tmp8_ = NULL;
				gchar* _tmp9_ = NULL;
				gchar* _tmp10_ = NULL;
				GError* _tmp11_ = NULL;
				const gchar* _tmp12_ = NULL;
				DataView* view = NULL;
				ViewCollection* _tmp13_ = NULL;
				Photo* _tmp14_ = NULL;
				DataView* _tmp15_ = NULL;
				DataView* _tmp16_ = NULL;
				Direction _tmp17_ = 0;
				DataView* _tmp24_ = NULL;
				DataView* _tmp25_ = NULL;
				DataSource* _tmp26_ = NULL;
				gboolean _tmp27_ = FALSE;
				gboolean _tmp28_ = FALSE;
				Photo* _tmp29_ = NULL;
				Photo* _tmp30_ = NULL;
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				err = _inner_error_;
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_inner_error_ = NULL;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp8_ = _vala_next;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp9_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_OBJECT, DataObject));
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp10_ = _tmp9_;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp11_ = err;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp12_ = _tmp11_->message;
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				g_warning ("SlideshowPage.vala:201: Unable to fetch pixbuf for %s: %s", _tmp10_, _tmp12_);
#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_free0 (_tmp10_);
#line 204 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp13_ = self->priv->controller;
#line 204 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp14_ = _vala_next;
#line 204 "/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 204 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				view = _tmp15_;
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp17_ = direction;
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp17_ == DIRECTION_FORWARD) {
#line 1169 "SlideshowPage.c"
					ViewCollection* _tmp18_ = NULL;
					DataView* _tmp19_ = NULL;
					DataView* _tmp20_ = NULL;
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp18_ = self->priv->controller;
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp19_ = view;
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp20_ = view_collection_get_next (_tmp18_, _tmp19_);
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp16_);
#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp16_ = _tmp20_;
#line 1183 "SlideshowPage.c"
				} else {
					ViewCollection* _tmp21_ = NULL;
					DataView* _tmp22_ = NULL;
					DataView* _tmp23_ = NULL;
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp21_ = self->priv->controller;
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp22_ = view;
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp23_ = view_collection_get_previous (_tmp21_, _tmp22_);
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp16_);
#line 207 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp16_ = _tmp23_;
#line 1198 "SlideshowPage.c"
				}
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp24_ = _g_object_ref0 (_tmp16_);
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (view);
#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				view = _tmp24_;
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp25_ = view;
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp26_ = data_view_get_source (_tmp25_);
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next);
#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_vala_next = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_PHOTO, Photo);
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp29_ = _vala_next;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_tmp30_ = start;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp29_ == _tmp30_) {
#line 1220 "SlideshowPage.c"
					Photo* _tmp31_ = NULL;
					Photo* _tmp32_ = NULL;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp31_ = _vala_next;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp32_ = self->priv->current;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp28_ = _tmp31_ != _tmp32_;
#line 1229 "SlideshowPage.c"
				} else {
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp28_ = FALSE;
#line 1233 "SlideshowPage.c"
				}
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp28_) {
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp27_ = TRUE;
#line 1239 "SlideshowPage.c"
				} else {
					Photo* _tmp33_ = NULL;
					Photo* _tmp34_ = NULL;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp33_ = _vala_next;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp34_ = self->priv->current;
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp27_ = _tmp33_ == _tmp34_;
#line 1249 "SlideshowPage.c"
				}
#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				if (_tmp27_) {
#line 1253 "SlideshowPage.c"
					const gchar* _tmp35_ = NULL;
					GtkWindow* _tmp36_ = NULL;
					GtkWindow* _tmp37_ = NULL;
					AppWindow* _tmp38_ = NULL;
					AppWindow* _tmp39_ = NULL;
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp35_ = _ ("All photo source files are missing.");
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp36_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp37_ = _tmp36_;
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					app_window_error_message (_tmp35_, _tmp37_);
#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp37_);
#line 213 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp38_ = app_window_get_instance ();
#line 213 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_tmp39_ = _tmp38_;
#line 213 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					app_window_end_fullscreen (_tmp39_);
#line 213 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp39_);
#line 215 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_vala_next);
#line 215 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_vala_next = NULL;
#line 216 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_vala_next_pixbuf);
#line 216 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_vala_next_pixbuf = NULL;
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					result = FALSE;
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (_tmp16_);
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_object_unref0 (view);
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					_g_error_free0 (err);
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					if (next) {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						*next = _vala_next;
#line 1297 "SlideshowPage.c"
					} else {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						_g_object_unref0 (_vala_next);
#line 1301 "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 1307 "SlideshowPage.c"
					} else {
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
						_g_object_unref0 (_vala_next_pixbuf);
#line 1311 "SlideshowPage.c"
					}
#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
					return result;
#line 1315 "SlideshowPage.c"
				}
#line 221 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_tmp16_);
#line 221 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (view);
#line 221 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_error_free0 (err);
#line 221 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				continue;
#line 1325 "SlideshowPage.c"
			}
			__finally464:
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1330 "SlideshowPage.c"
				gboolean _tmp40_ = FALSE;
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				g_clear_error (&_inner_error_);
#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				return _tmp40_;
#line 1338 "SlideshowPage.c"
			}
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp41_ = self->priv->controller;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp42_ = _vala_next;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			view_collection_get_immediate_neighbors (_tmp41_, G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_DATA_SOURCE, DataSource), &_tmp43_, &_tmp44_, PHOTO_TYPENAME);
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (forward);
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			forward = _tmp43_;
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (back);
#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			back = _tmp44_;
#line 228 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp45_ = self->priv->cache;
#line 228 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp46_ = forward;
#line 228 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch (_tmp45_, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_PHOTO, Photo), BACKGROUND_JOB_JOB_PRIORITY_HIGHEST, FALSE);
#line 229 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp47_ = self->priv->cache;
#line 229 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp48_ = back;
#line 229 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch (_tmp47_, G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_PHOTO, Photo), BACKGROUND_JOB_JOB_PRIORITY_NORMAL, FALSE);
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp49_ = self->priv->controller;
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp50_ = _vala_next;
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp51_ = view_collection_get_extended_neighbors (_tmp49_, G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_DATA_SOURCE, DataSource), PHOTO_TYPENAME);
#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			neighbors = _tmp51_;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp52_ = neighbors;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp53_ = forward;
#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_COLLECTION, GeeCollection), _tmp53_);
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp54_ = neighbors;
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp55_ = back;
#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, GEE_TYPE_COLLECTION, GeeCollection), _tmp55_);
#line 235 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp56_ = self->priv->cache;
#line 235 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_tmp57_ = neighbors;
#line 235 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			pixbuf_cache_prefetch_many (_tmp56_, G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, GEE_TYPE_COLLECTION, GeeCollection), BACKGROUND_JOB_JOB_PRIORITY_LOWEST, FALSE);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			result = TRUE;
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (neighbors);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (back);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			_g_object_unref0 (forward);
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (next) {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				*next = _vala_next;
#line 1404 "SlideshowPage.c"
			} else {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next);
#line 1408 "SlideshowPage.c"
			}
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			if (next_pixbuf) {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				*next_pixbuf = _vala_next_pixbuf;
#line 1414 "SlideshowPage.c"
			} else {
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				_g_object_unref0 (_vala_next_pixbuf);
#line 1418 "SlideshowPage.c"
			}
#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
			return result;
#line 1422 "SlideshowPage.c"
		}
	}
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (next) {
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		*next = _vala_next;
#line 1429 "SlideshowPage.c"
	} else {
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_vala_next);
#line 1433 "SlideshowPage.c"
	}
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (next_pixbuf) {
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		*next_pixbuf = _vala_next_pixbuf;
#line 1439 "SlideshowPage.c"
	} else {
#line 192 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_vala_next_pixbuf);
#line 1443 "SlideshowPage.c"
	}
}


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


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


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


static void slideshow_page_advance (SlideshowPage* self, Photo* photo, Direction direction) {
	Photo* _tmp0_ = NULL;
	Photo* _tmp1_ = NULL;
	GdkPixbuf* next_pixbuf = NULL;
	Photo* _tmp2_ = NULL;
	Direction _tmp3_ = 0;
	Photo* _tmp4_ = NULL;
	GdkPixbuf* _tmp5_ = NULL;
	gboolean _tmp6_ = FALSE;
	GTimer* _tmp11_ = NULL;
#line 311 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 311 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_PHOTO (photo));
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = photo;
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp1_;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = self->priv->current;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = direction;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = slideshow_page_get_next_photo (self, _tmp2_, _tmp3_, &_tmp4_, &_tmp5_);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (self->priv->current);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->current = _tmp4_;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_pixbuf);
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	next_pixbuf = _tmp5_;
#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 1852 "SlideshowPage.c"
		GdkPixbuf* _tmp7_ = NULL;
		Photo* _tmp8_ = NULL;
		Dimensions _tmp9_ = {0};
		Direction _tmp10_ = 0;
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = next_pixbuf;
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = self->priv->current;
#line 317 "/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 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = direction;
#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp7_, &_tmp9_, &_tmp10_);
#line 1867 "SlideshowPage.c"
	}
#line 320 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp11_ = self->priv->timer;
#line 320 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp11_);
#line 311 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (next_pixbuf);
#line 1875 "SlideshowPage.c"
}


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


static gboolean slideshow_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
	SlideshowPage * self;
	gboolean result = FALSE;
	gboolean handled = FALSE;
	GdkEventKey* _tmp0_ = NULL;
	guint _tmp1_ = 0U;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	static GQuark _tmp4_label0 = 0;
#line 1954 "SlideshowPage.c"
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_ = FALSE;
#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 339 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	handled = TRUE;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = event;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = _tmp0_->keyval;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = gdk_keyval_name (_tmp1_);
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = _tmp2_;
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("space")))) {
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		switch (0) {
#line 1977 "SlideshowPage.c"
			default:
			{
#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				slideshow_page_on_play_pause (self);
#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				break;
#line 1984 "SlideshowPage.c"
			}
		}
	} else {
#line 340 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		switch (0) {
#line 1990 "SlideshowPage.c"
			default:
			{
#line 346 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				handled = FALSE;
#line 347 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
				break;
#line 1997 "SlideshowPage.c"
			}
		}
	}
#line 350 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = handled;
#line 350 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 351 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		result = TRUE;
#line 351 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		return result;
#line 2009 "SlideshowPage.c"
	}
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (GTK_WIDGET_CLASS (slideshow_page_parent_class)->key_press_event != NULL) {
#line 2013 "SlideshowPage.c"
		GdkEventKey* _tmp8_ = NULL;
		gboolean _tmp9_ = FALSE;
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = event;
#line 353 "/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 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = _tmp9_;
#line 2022 "SlideshowPage.c"
	} else {
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = TRUE;
#line 2026 "SlideshowPage.c"
	}
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	result = _tmp7_;
#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	return result;
#line 2032 "SlideshowPage.c"
}


static void slideshow_page_on_change_settings (SlideshowPage* self) {
	SlideshowPageSettingsDialog* settings_dialog = NULL;
	SlideshowPageSettingsDialog* _tmp0_ = NULL;
	SlideshowPageSettingsDialog* _tmp1_ = NULL;
	gboolean slideshow_playing = FALSE;
	gboolean _tmp2_ = FALSE;
	SlideshowPageSettingsDialog* _tmp3_ = NULL;
	gint _tmp4_ = 0;
	SlideshowPageSettingsDialog* _tmp22_ = NULL;
	gboolean _tmp23_ = FALSE;
	GTimer* _tmp24_ = NULL;
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (IS_SLIDESHOW_PAGE (self));
#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = slideshow_page_settings_dialog_new ();
#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_object_ref_sink (_tmp0_);
#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	settings_dialog = _tmp0_;
#line 358 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = settings_dialog;
#line 358 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
#line 360 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp2_ = self->priv->playing;
#line 360 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	slideshow_playing = _tmp2_;
#line 361 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = FALSE;
#line 362 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_signal_emit_by_name (self, "hide-toolbar");
#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = settings_dialog;
#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_dialog_get_type (), GtkDialog));
#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp4_ == ((gint) GTK_RESPONSE_OK)) {
#line 2073 "SlideshowPage.c"
		ConfigFacade* _tmp5_ = NULL;
		ConfigFacade* _tmp6_ = NULL;
		SlideshowPageSettingsDialog* _tmp7_ = NULL;
		gdouble _tmp8_ = 0.0;
		ConfigFacade* _tmp9_ = NULL;
		ConfigFacade* _tmp10_ = NULL;
		SlideshowPageSettingsDialog* _tmp11_ = NULL;
		gdouble _tmp12_ = 0.0;
		ConfigFacade* _tmp13_ = NULL;
		ConfigFacade* _tmp14_ = NULL;
		SlideshowPageSettingsDialog* _tmp15_ = NULL;
		gchar* _tmp16_ = NULL;
		gchar* _tmp17_ = NULL;
		ConfigFacade* _tmp18_ = NULL;
		ConfigFacade* _tmp19_ = NULL;
		SlideshowPageSettingsDialog* _tmp20_ = NULL;
		gboolean _tmp21_ = FALSE;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp5_ = config_facade_get_instance ();
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp6_ = _tmp5_;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp7_ = settings_dialog;
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = slideshow_page_settings_dialog_get_delay (_tmp7_);
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		configuration_facade_set_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp8_);
#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp6_);
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = config_facade_get_instance ();
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp10_ = _tmp9_;
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp11_ = settings_dialog;
#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp12_ = slideshow_page_settings_dialog_get_transition_delay (_tmp11_);
#line 368 "/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 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp10_);
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp13_ = config_facade_get_instance ();
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp14_ = _tmp13_;
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp15_ = settings_dialog;
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp16_ = slideshow_page_settings_dialog_get_transition_effect_id (_tmp15_);
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp17_ = _tmp16_;
#line 369 "/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 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_free0 (_tmp17_);
#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp14_);
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp18_ = config_facade_get_instance ();
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp19_ = _tmp18_;
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp20_ = settings_dialog;
#line 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp21_ = slideshow_page_settings_dialog_get_show_title (_tmp20_);
#line 370 "/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 370 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_g_object_unref0 (_tmp19_);
#line 372 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		slideshow_page_update_transition_effect (self);
#line 2145 "SlideshowPage.c"
	}
#line 375 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp22_ = settings_dialog;
#line 375 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget));
#line 376 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp23_ = slideshow_playing;
#line 376 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self->priv->playing = _tmp23_;
#line 377 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp24_ = self->priv->timer;
#line 377 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_timer_start (_tmp24_);
#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (settings_dialog);
#line 2161 "SlideshowPage.c"
}


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


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


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


static void slideshow_page_real_paint (SinglePhotoPage* base, cairo_t* ctx, Dimensions* ctx_dim) {
	SlideshowPage * self;
	cairo_t* _tmp0_ = NULL;
	Dimensions _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	ConfigFacade* _tmp3_ = NULL;
	ConfigFacade* _tmp4_ = NULL;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_ = FALSE;
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx != NULL);
#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	g_return_if_fail (ctx_dim != NULL);
#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp0_ = ctx;
#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp1_ = *ctx_dim;
#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	SINGLE_PHOTO_PAGE_CLASS (slideshow_page_parent_class)->paint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp0_, &_tmp1_);
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp3_ = config_facade_get_instance ();
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp4_ = _tmp3_;
#line 437 "/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 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_tmp6_ = _tmp5_;
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	_g_object_unref0 (_tmp4_);
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp6_) {
#line 2563 "SlideshowPage.c"
		gboolean _tmp7_ = FALSE;
#line 437 "/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 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = !_tmp7_;
#line 2569 "SlideshowPage.c"
	} else {
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp2_ = FALSE;
#line 2573 "SlideshowPage.c"
	}
#line 437 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
	if (_tmp2_) {
#line 2577 "SlideshowPage.c"
		cairo_t* _tmp8_ = NULL;
		Dimensions _tmp9_ = {0};
#line 438 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp8_ = ctx;
#line 438 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		_tmp9_ = *ctx_dim;
#line 438 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
		slideshow_page_paint_title (self, _tmp8_, &_tmp9_);
#line 2586 "SlideshowPage.c"
	}
}


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


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


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


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


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


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


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


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


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


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


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


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


static void slideshow_page_instance_init (SlideshowPage * self) {
	GTimer* _tmp0_ = NULL;
#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 3191 "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 3219 "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);
}



