/* Page.c generated by valac 0.36.6, the Vala compiler
 * generated from Page.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 <stdlib.h>
#include <string.h>
#include <gee.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <gdk/gdk.h>
#include <cairo.h>
#include <float.h>
#include <math.h>
#include <glib/gi18n-lib.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <pango/pango.h>
#include <pango/pangocairo.h>
#include "shotwell-plugin-dev-1.0.h"
#include <gobject/gvaluecollector.h>


#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;
typedef struct _InjectionGroupPrivate InjectionGroupPrivate;

#define INJECTION_GROUP_TYPE_ELEMENT (injection_group_element_get_type ())
#define INJECTION_GROUP_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INJECTION_GROUP_TYPE_ELEMENT, InjectionGroupElement))
#define INJECTION_GROUP_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INJECTION_GROUP_TYPE_ELEMENT, InjectionGroupElementClass))
#define INJECTION_GROUP_IS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), INJECTION_GROUP_TYPE_ELEMENT))
#define INJECTION_GROUP_IS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), INJECTION_GROUP_TYPE_ELEMENT))
#define INJECTION_GROUP_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), INJECTION_GROUP_TYPE_ELEMENT, InjectionGroupElementClass))

typedef struct _InjectionGroupElement InjectionGroupElement;
typedef struct _InjectionGroupElementClass InjectionGroupElementClass;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define INJECTION_GROUP_ELEMENT_TYPE_ITEM_TYPE (injection_group_element_item_type_get_type ())
#define _injection_group_element_unref0(var) ((var == NULL) ? NULL : (var = (injection_group_element_unref (var), NULL)))
typedef struct _InjectionGroupElementPrivate InjectionGroupElementPrivate;
typedef struct _InjectionGroupParamSpecElement InjectionGroupParamSpecElement;
typedef struct _ParamSpecInjectionGroup ParamSpecInjectionGroup;

#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_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_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_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))

typedef struct _OneShotScheduler OneShotScheduler;
typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
#define _injection_group_unref0(var) ((var == NULL) ? NULL : (var = (injection_group_unref (var), NULL)))

#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_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))

typedef struct _CommandManager CommandManager;
typedef struct _CommandManagerClass CommandManagerClass;

#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_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_APPLICATION (application_get_type ())
#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))

typedef struct _Application Application;
typedef struct _ApplicationClass ApplicationClass;
#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))

typedef struct _CheckerboardPage CheckerboardPage;
typedef struct _CheckerboardPageClass CheckerboardPageClass;
typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;

#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))

typedef struct _ThumbnailView ThumbnailView;
typedef struct _ThumbnailViewClass ThumbnailViewClass;

#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))

typedef struct _CheckerboardItem CheckerboardItem;
typedef struct _CheckerboardItemClass CheckerboardItemClass;

#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())

#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;

#define TYPE_VIEW_FILTER (view_filter_get_type ())
#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))

typedef struct _ViewFilter ViewFilter;
typedef struct _ViewFilterClass ViewFilterClass;

#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))

typedef struct _SearchViewFilter SearchViewFilter;
typedef struct _SearchViewFilterClass SearchViewFilterClass;

#define CORE_TYPE_TRACKER (core_tracker_get_type ())
#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))

typedef struct _CoreTracker CoreTracker;
typedef struct _CoreTrackerClass CoreTrackerClass;

#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))

typedef struct _CoreViewTracker CoreViewTracker;
typedef struct _CoreViewTrackerClass CoreViewTrackerClass;

#define TYPE_CHECKERBOARD_LAYOUT (checkerboard_layout_get_type ())
#define CHECKERBOARD_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout))
#define CHECKERBOARD_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutClass))
#define IS_CHECKERBOARD_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_LAYOUT))
#define IS_CHECKERBOARD_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_LAYOUT))
#define CHECKERBOARD_LAYOUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutClass))

typedef struct _CheckerboardLayout CheckerboardLayout;
typedef struct _CheckerboardLayoutClass CheckerboardLayoutClass;
#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))

#define TYPE_ADJUSTMENT_RELATION (adjustment_relation_get_type ())
typedef struct _DataObjectPrivate DataObjectPrivate;

#define TYPE_ALTERATION (alteration_get_type ())
#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))

typedef struct _Alteration Alteration;
typedef struct _AlterationClass AlterationClass;
typedef struct _DataViewPrivate DataViewPrivate;

#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;
typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;

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

#define TYPE_COMPASS_POINT (compass_point_get_type ())

#define TYPE_MARKER (marker_get_type ())
#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))

typedef struct _Marker Marker;
typedef struct _MarkerIface MarkerIface;

#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 SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ())

#define TYPE_TRANSITION_CLOCK (transition_clock_get_type ())
#define TRANSITION_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSITION_CLOCK, TransitionClock))
#define TRANSITION_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSITION_CLOCK, TransitionClockClass))
#define IS_TRANSITION_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSITION_CLOCK))
#define IS_TRANSITION_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSITION_CLOCK))
#define TRANSITION_CLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSITION_CLOCK, TransitionClockClass))

typedef struct _TransitionClock TransitionClock;
typedef struct _TransitionClockClass TransitionClockClass;

#define TYPE_ZOOM_STATE (zoom_state_get_type ())
typedef struct _ZoomState ZoomState;

#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 _transition_clock_unref0(var) ((var == NULL) ? NULL : (var = (transition_clock_unref (var), NULL)))
#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (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 TYPE_DIRECTION (direction_get_type ())

#define TYPE_SCALING (scaling_get_type ())

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

#define TYPE_DRAG_AND_DROP_HANDLER (drag_and_drop_handler_get_type ())
#define DRAG_AND_DROP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandler))
#define DRAG_AND_DROP_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerClass))
#define IS_DRAG_AND_DROP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DRAG_AND_DROP_HANDLER))
#define IS_DRAG_AND_DROP_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DRAG_AND_DROP_HANDLER))
#define DRAG_AND_DROP_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerClass))

typedef struct _DragAndDropHandler DragAndDropHandler;
typedef struct _DragAndDropHandlerClass DragAndDropHandlerClass;
typedef struct _DragAndDropHandlerPrivate DragAndDropHandlerPrivate;

#define TYPE_EXPORTER_UI (exporter_ui_get_type ())
#define EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER_UI, ExporterUI))
#define EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER_UI, ExporterUIClass))
#define IS_EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER_UI))
#define IS_EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER_UI))
#define EXPORTER_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER_UI, ExporterUIClass))

typedef struct _ExporterUI ExporterUI;
typedef struct _ExporterUIClass ExporterUIClass;

#define DRAG_AND_DROP_HANDLER_TYPE_TARGET_TYPE (drag_and_drop_handler_target_type_get_type ())
#define _exporter_ui_unref0(var) ((var == NULL) ? NULL : (var = (exporter_ui_unref (var), NULL)))

#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_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())

#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())

#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())

#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
typedef struct _ExportFormatParameters ExportFormatParameters;

#define TYPE_EXPORTER (exporter_get_type ())
#define EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER, Exporter))
#define EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER, ExporterClass))
#define IS_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER))
#define IS_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER))
#define EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER, ExporterClass))

typedef struct _Exporter Exporter;
typedef struct _ExporterClass ExporterClass;
typedef struct _ParamSpecDragAndDropHandler ParamSpecDragAndDropHandler;
#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);

struct _InjectionGroup {
	GTypeInstance parent_instance;
	volatile int ref_count;
	InjectionGroupPrivate * priv;
};

struct _InjectionGroupClass {
	GTypeClass parent_class;
	void (*finalize) (InjectionGroup *self);
};

struct _InjectionGroupPrivate {
	gchar* path;
	GeeArrayList* elements;
	gint separator_id;
};

typedef enum  {
	INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENUITEM,
	INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENU,
	INJECTION_GROUP_ELEMENT_ITEM_TYPE_SEPARATOR
} InjectionGroupElementItemType;

struct _InjectionGroupElement {
	GTypeInstance parent_instance;
	volatile int ref_count;
	InjectionGroupElementPrivate * priv;
	gchar* name;
	gchar* action;
	gchar* accellerator;
	InjectionGroupElementItemType kind;
};

struct _InjectionGroupElementClass {
	GTypeClass parent_class;
	void (*finalize) (InjectionGroupElement *self);
};

struct _InjectionGroupParamSpecElement {
	GParamSpec parent_instance;
};

struct _ParamSpecInjectionGroup {
	GParamSpec parent_instance;
};

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 _PagePrivate {
	gchar* page_name;
	ViewCollection* view;
	GtkWindow* container;
	gchar* toolbar_path;
	GdkRectangle last_position;
	GtkWidget* event_source;
	gboolean dnd_enabled;
	gulong last_configure_ms;
	gboolean report_move_finished;
	gboolean report_resize_finished;
	GdkPoint last_down;
	gboolean is_destroyed;
	gboolean ctrl_pressed;
	gboolean alt_pressed;
	gboolean shift_pressed;
	gboolean super_pressed;
	GdkCursorType last_cursor;
	gboolean cursor_hidden;
	gint cursor_hide_msec;
	guint last_timeout_id;
	gint cursor_hide_time_cached;
	gboolean are_actions_attached;
	OneShotScheduler* update_actions_scheduler;
	gboolean menubar_injected;
};

typedef void (*OneShotCallback) (void* user_data);
typedef enum  {
	CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
	CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
} CheckerboardPageActivator;

struct _CheckerboardPageKeyboardModifiers {
	gboolean ctrl_pressed;
	gboolean alt_pressed;
	gboolean shift_pressed;
	gboolean super_pressed;
};

struct _CheckerboardPage {
	Page parent_instance;
	CheckerboardPagePrivate * priv;
	CheckerboardItem* anchor;
	CheckerboardItem* cursor;
};

struct _CheckerboardPageClass {
	PageClass parent_class;
	GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
	gchar* (*get_view_empty_message) (CheckerboardPage* self);
	gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
	void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
	SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
	CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
	gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
	void (*set_display_titles) (CheckerboardPage* self, gboolean display);
	void (*set_display_comments) (CheckerboardPage* self, gboolean display);
};

struct _CheckerboardPagePrivate {
	CheckerboardLayout* layout;
	gchar* item_context_menu_path;
	gchar* page_context_menu_path;
	GtkViewport* viewport;
	CheckerboardItem* highlighted;
	gboolean autoscroll_scheduled;
	CheckerboardItem* activated_item;
	GeeArrayList* previously_selected;
	GtkMenu* item_context_menu;
	GtkMenu* page_context_menu;
};

typedef enum  {
	ADJUSTMENT_RELATION_BELOW,
	ADJUSTMENT_RELATION_IN_RANGE,
	ADJUSTMENT_RELATION_ABOVE
} AdjustmentRelation;

struct _DataObject {
	GObject parent_instance;
	DataObjectPrivate * priv;
};

struct _DataObjectClass {
	GObjectClass parent_class;
	void (*notify_altered) (DataObject* self, Alteration* alteration);
	void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
	void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
	void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
	gchar* (*get_name) (DataObject* self);
	gchar* (*to_string) (DataObject* self);
};

struct _DataView {
	DataObject parent_instance;
	DataViewPrivate * priv;
};

struct _DataViewClass {
	DataObjectClass parent_class;
	void (*notify_view_altered) (DataView* self);
	void (*notify_geometry_altered) (DataView* self);
	void (*notify_unsubscribed) (DataView* self, DataSource* source);
	void (*state_changed) (DataView* self, gboolean selected);
	void (*visibility_changed) (DataView* self, gboolean visible);
	void (*view_altered) (DataView* self);
	void (*geometry_altered) (DataView* self);
	void (*unsubscribed) (DataView* self, DataSource* source);
};

struct _ThumbnailView {
	DataView parent_instance;
	ThumbnailViewPrivate * priv;
};

struct _ThumbnailViewClass {
	DataViewClass parent_class;
	void (*notify_thumbnail_altered) (ThumbnailView* self);
	void (*thumbnail_altered) (ThumbnailView* self);
};

struct _Dimensions {
	gint width;
	gint height;
};

struct _CheckerboardItem {
	ThumbnailView parent_instance;
	CheckerboardItemPrivate * priv;
	Dimensions requisition;
	GdkRectangle allocation;
};

struct _CheckerboardItemClass {
	ThumbnailViewClass parent_class;
	void (*exposed) (CheckerboardItem* self);
	void (*unexposed) (CheckerboardItem* self);
	gboolean (*is_exposed) (CheckerboardItem* self);
	void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
	void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
	void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
	GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
	GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
	GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
	GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
};

typedef enum  {
	COMPASS_POINT_NORTH,
	COMPASS_POINT_SOUTH,
	COMPASS_POINT_EAST,
	COMPASS_POINT_WEST
} CompassPoint;

struct _MarkerIface {
	GTypeInterface parent_iface;
	void (*mark) (Marker* self, DataObject* object);
	void (*unmark) (Marker* self, DataObject* object);
	gboolean (*toggle) (Marker* self, DataObject* object);
	void (*mark_many) (Marker* self, GeeCollection* list);
	void (*unmark_many) (Marker* self, GeeCollection* list);
	void (*mark_all) (Marker* self);
	gint (*get_count) (Marker* self);
	GeeCollection* (*get_all) (Marker* self);
};

typedef gboolean (*ValueEqualFunc) (GValue* a, GValue* b, void* user_data);
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 _ZoomState {
	Dimensions content_dimensions;
	Dimensions viewport_dimensions;
	gdouble zoom_factor;
	gdouble interpolation_factor;
	gdouble min_factor;
	gdouble max_factor;
	GdkPoint viewport_center;
};

struct _SinglePhotoPagePrivate {
	gboolean scale_up_to_viewport;
	TransitionClock* transition_clock;
	gint transition_duration_msec;
	cairo_surface_t* pixmap;
	cairo_t* pixmap_ctx;
	cairo_t* text_ctx;
	Dimensions pixmap_dim;
	GdkPixbuf* unscaled;
	Dimensions max_dim;
	GdkPixbuf* scaled;
	GdkPixbuf* old_scaled;
	GdkRectangle scaled_pos;
	ZoomState static_zoom_state;
	gboolean zoom_high_quality;
	ZoomState saved_zoom_state;
	gboolean has_saved_zoom_state;
	guint32 last_nav_key;
};

typedef enum  {
	DIRECTION_FORWARD,
	DIRECTION_BACKWARD
} Direction;

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 void (*TransitionClockRepaintCallback) (void* user_data);
struct _DragAndDropHandler {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DragAndDropHandlerPrivate * priv;
};

struct _DragAndDropHandlerClass {
	GTypeClass parent_class;
	void (*finalize) (DragAndDropHandler *self);
};

struct _DragAndDropHandlerPrivate {
	Page* page;
	GtkWidget* event_source;
	GFile* drag_destination;
	ExporterUI* exporter;
};

typedef enum  {
	DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS,
	DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST
} DragAndDropHandlerTargetType;

typedef enum  {
	EXPORT_FORMAT_MODE_UNMODIFIED,
	EXPORT_FORMAT_MODE_CURRENT,
	EXPORT_FORMAT_MODE_SPECIFIED,
	EXPORT_FORMAT_MODE_LAST
} ExportFormatMode;

typedef enum  {
	PHOTO_FILE_FORMAT_JFIF,
	PHOTO_FILE_FORMAT_RAW,
	PHOTO_FILE_FORMAT_PNG,
	PHOTO_FILE_FORMAT_TIFF,
	PHOTO_FILE_FORMAT_BMP,
	PHOTO_FILE_FORMAT_UNKNOWN
} PhotoFileFormat;

typedef enum  {
	JPEG_QUALITY_LOW = 50,
	JPEG_QUALITY_MEDIUM = 75,
	JPEG_QUALITY_HIGH = 90,
	JPEG_QUALITY_MAXIMUM = 100
} JpegQuality;

struct _ExportFormatParameters {
	ExportFormatMode mode;
	PhotoFileFormat specified_format;
	JpegQuality quality;
	gboolean export_metadata;
};

typedef void (*ExporterCompletionCallback) (Exporter* exporter, gboolean is_cancelled, void* user_data);
struct _ParamSpecDragAndDropHandler {
	GParamSpec parent_instance;
};


static gpointer injection_group_parent_class = NULL;
static gpointer injection_group_element_parent_class = NULL;
static gpointer page_parent_class = NULL;
static gpointer checkerboard_page_parent_class = NULL;
static gpointer single_photo_page_parent_class = NULL;
static gpointer drag_and_drop_handler_parent_class = NULL;
static GdkAtom* drag_and_drop_handler_XDS_ATOM;
static GdkAtom* drag_and_drop_handler_XDS_ATOM = NULL;
static GdkAtom* drag_and_drop_handler_TEXT_ATOM;
static GdkAtom* drag_and_drop_handler_TEXT_ATOM = NULL;
static guint8* drag_and_drop_handler_XDS_FAKE_TARGET;
static gint drag_and_drop_handler_XDS_FAKE_TARGET_length1;
static guint8* drag_and_drop_handler_XDS_FAKE_TARGET = NULL;
static gint drag_and_drop_handler_XDS_FAKE_TARGET_length1 = 0;
static gint _drag_and_drop_handler_XDS_FAKE_TARGET_size_ = 0;

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;
gpointer injection_group_element_ref (gpointer instance);
void injection_group_element_unref (gpointer instance);
GParamSpec* injection_group_param_spec_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void injection_group_value_set_element (GValue* value, gpointer v_object);
void injection_group_value_take_element (GValue* value, gpointer v_object);
gpointer injection_group_value_get_element (const GValue* value);
GType injection_group_element_get_type (void) G_GNUC_CONST;
#define INJECTION_GROUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_INJECTION_GROUP, InjectionGroupPrivate))
enum  {
	INJECTION_GROUP_DUMMY_PROPERTY
};
InjectionGroup* injection_group_new (const gchar* path);
InjectionGroup* injection_group_construct (GType object_type, const gchar* path);
gchar* injection_group_get_path (InjectionGroup* self);
GeeList* injection_group_get_elements (InjectionGroup* self);
void injection_group_add_menu_item (InjectionGroup* self, const gchar* name, const gchar* action, const gchar* accellerator);
GType injection_group_element_item_type_get_type (void) G_GNUC_CONST;
InjectionGroupElement* injection_group_element_new (const gchar* name, const gchar* action, const gchar* accellerator, InjectionGroupElementItemType kind);
InjectionGroupElement* injection_group_element_construct (GType object_type, const gchar* name, const gchar* action, const gchar* accellerator, InjectionGroupElementItemType kind);
void injection_group_add_menu (InjectionGroup* self, const gchar* name, const gchar* action);
void injection_group_add_separator (InjectionGroup* self);
enum  {
	INJECTION_GROUP_ELEMENT_DUMMY_PROPERTY
};
static void injection_group_element_finalize (InjectionGroupElement * obj);
static void injection_group_finalize (InjectionGroup * obj);
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 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 view_collection_get_type (void) G_GNUC_CONST;
gpointer one_shot_scheduler_ref (gpointer instance);
void one_shot_scheduler_unref (gpointer instance);
GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
gpointer value_get_one_shot_scheduler (const GValue* value);
GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
#define PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PAGE, PagePrivate))
enum  {
	PAGE_DUMMY_PROPERTY
};
#define PAGE_CONSIDER_CONFIGURE_HALTED_MSEC 400
Page* page_construct (GType object_type, const gchar* page_name);
ViewCollection* view_collection_new (const gchar* name);
ViewCollection* view_collection_construct (GType object_type, const gchar* name);
gboolean page_on_context_keypress (Page* self);
static gboolean _page_on_context_keypress_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self);
static void page_attach_view_signals (Page* self);
static void _page_attach_view_signals_gtk_widget_realize (GtkWidget* _sender, gpointer self);
static void page_real_destroy (GtkWidget* base);
static void page_detach_event_source (Page* self);
static void page_detach_view_signals (Page* self);
void data_collection_close (DataCollection* self);
void page_clear_container (Page* self);
void one_shot_scheduler_cancel (OneShotScheduler* self);
gchar* page_get_page_name (Page* self);
void page_set_page_name (Page* self, const gchar* page_name);
static void page_real_set_page_name (Page* self, const gchar* page_name);
gchar* page_to_string (Page* self);
ViewCollection* page_get_view (Page* self);
GtkWindow* page_get_container (Page* self);
void page_set_container (Page* self, GtkWindow* container);
static void page_real_set_container (Page* self, GtkWindow* container);
static void page_real_clear_container (Page* self);
void page_set_event_source (Page* self, GtkWidget* event_source);
static gboolean page_on_button_pressed_internal (Page* self, GdkEventButton* event);
static gboolean _page_on_button_pressed_internal_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean page_on_button_released_internal (Page* self, GdkEventButton* event);
static gboolean _page_on_button_released_internal_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean page_on_motion_internal (Page* self, GdkEventMotion* event);
static gboolean _page_on_motion_internal_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self);
gboolean page_on_leave_notify_event (Page* self);
static gboolean _page_on_leave_notify_event_gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
static gboolean page_on_mousewheel_internal (Page* self, GdkEventScroll* event);
static gboolean _page_on_mousewheel_internal_gtk_widget_scroll_event (GtkWidget* _sender, GdkEventScroll* event, gpointer self);
void page_on_event_source_realize (Page* self);
static void _page_on_event_source_realize_gtk_widget_realize (GtkWidget* _sender, gpointer self);
void page_disable_drag_source (Page* self);
GtkWidget* page_get_event_source (Page* self);
GMenuModel* page_get_menubar (Page* self);
InjectionGroup** page_init_collect_injection_groups (Page* self, int* result_length1);
GMenuModel* page_find_extension_point (Page* self, GMenuModel* model, const gchar* extension_point);
GtkToolbar* page_get_toolbar (Page* self);
static GtkToolbar* page_real_get_toolbar (Page* self);
GtkMenu* page_get_page_context_menu (Page* self);
static GtkMenu* page_real_get_page_context_menu (Page* self);
void page_switching_from (Page* self);
static void page_real_switching_from (Page* self);
void page_remove_actions (Page* self, GActionMap* map);
void page_switched_to (Page* self);
static void page_real_switched_to (Page* self);
static void page_add_ui (Page* self);
void page_add_actions (Page* self, GActionMap* map);
gint view_collection_get_selected_count (ViewCollection* self);
gint data_collection_get_count (DataCollection* self);
void page_init_actions (Page* self, gint selected_count, gint count);
void page_update_actions (Page* self, gint selected_count, gint count);
static void page_update_modifiers (Page* self);
void page_ready (Page* self);
static void page_real_ready (Page* self);
gboolean page_is_in_view (Page* self);
void page_switching_to_fullscreen (Page* self, FullscreenWindow* fsw);
static void page_real_switching_to_fullscreen (Page* self, FullscreenWindow* fsw);
void page_returning_from_fullscreen (Page* self, FullscreenWindow* fsw);
static void page_real_returning_from_fullscreen (Page* self, FullscreenWindow* fsw);
GAction* page_get_action (Page* self, const gchar* name);
GType app_window_get_type (void) G_GNUC_CONST;
AppWindow* app_window_get_instance (void);
void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
void page_set_action_details (Page* self, const gchar* name, const gchar* label, const gchar* tooltip, gboolean sensitive);
void page_update_menu_item_label (Page* self, const gchar* id, const gchar* new_label);
void page_activate_action (Page* self, const gchar* name);
GAction* page_get_common_action (Page* self, const gchar* name, gboolean log_warning);
void page_set_common_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
void page_set_common_action_label (Page* self, const gchar* name, const gchar* label);
void page_set_common_action_important (Page* self, const gchar* name, gboolean important);
void page_activate_common_action (Page* self, const gchar* name);
gboolean page_get_ctrl_pressed (Page* self);
gboolean page_get_alt_pressed (Page* self);
gboolean page_get_shift_pressed (Page* self);
gboolean page_get_super_pressed (Page* self);
void page_set_action_active (Page* self, const gchar* name, gboolean active);
static GVariant* _variant_new20 (gboolean value);
static gboolean page_get_modifiers (Page* self, gboolean* ctrl, gboolean* alt, gboolean* shift, gboolean* super);
gboolean page_on_ctrl_released (Page* self, GdkEventKey* event);
gboolean page_on_ctrl_pressed (Page* self, GdkEventKey* event);
gboolean page_on_alt_released (Page* self, GdkEventKey* event);
gboolean page_on_alt_pressed (Page* self, GdkEventKey* event);
gboolean page_on_shift_released (Page* self, GdkEventKey* event);
gboolean page_on_shift_pressed (Page* self, GdkEventKey* event);
gboolean page_on_super_released (Page* self, GdkEventKey* event);
gboolean page_on_super_pressed (Page* self, GdkEventKey* event);
PageWindow* page_get_page_window (Page* self);
gpointer command_manager_ref (gpointer instance);
void command_manager_unref (gpointer instance);
GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_command_manager (GValue* value, gpointer v_object);
void value_take_command_manager (GValue* value, gpointer v_object);
gpointer value_get_command_manager (const GValue* value);
GType command_manager_get_type (void) G_GNUC_CONST;
CommandManager* page_get_command_manager (Page* self);
CommandManager* app_window_get_command_manager (void);
static void page_real_add_actions (Page* self, GActionMap* map);
static void page_real_remove_actions (Page* self, GActionMap* map);
void page_on_action_toggle (Page* self, GAction* action, GVariant* value);
static gboolean _variant_get21 (GVariant* value);
static GVariant* _variant_new22 (gboolean value);
void page_on_action_radio (Page* self, GAction* action, GVariant* value);
void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
static void page_init_load_ui (Page* self, const gchar* ui_filename);
void page_init_toolbar (Page* self, const gchar* path);
static void page_on_update_actions (Page* self);
GType data_object_get_type (void) G_GNUC_CONST;
GType data_view_get_type (void) G_GNUC_CONST;
static void _page_on_update_actions_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
static void _page_on_update_actions_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self);
static void _page_on_update_actions_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self);
static void _page_on_update_actions_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
static void page_on_update_actions_on_idle (Page* self);
static void _page_on_update_actions_on_idle_one_shot_callback (gpointer self);
OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
void one_shot_scheduler_at_priority_idle (OneShotScheduler* self, gint priority);
gchar* resources_get_ui (const gchar* filename);
void app_window_error_message (const gchar* message, GtkWindow* parent);
gpointer application_ref (gpointer instance);
void application_unref (gpointer instance);
GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_application (GValue* value, gpointer v_object);
void value_take_application (GValue* value, gpointer v_object);
gpointer value_get_application (const GValue* value);
GType application_get_type (void) G_GNUC_CONST;
Application* application_get_instance (void);
void application_panic (Application* self);
static void page_real_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
static InjectionGroup** page_real_init_collect_injection_groups (Page* self, int* result_length1);
static void page_real_init_actions (Page* self, gint selected_count, gint count);
static void page_real_update_actions (Page* self, gint selected_count, gint count);
void page_enable_drag_source (Page* self, GdkDragAction actions, GtkTargetEntry* source_target_entries, int source_target_entries_length1);
static void page_on_drag_begin (Page* self, GdkDragContext* context);
static void _page_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self);
static void page_on_drag_data_get (Page* self, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time);
static void _page_on_drag_data_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self);
static void page_on_drag_data_delete (Page* self, GdkDragContext* context);
static void _page_on_drag_data_delete_gtk_widget_drag_data_delete (GtkWidget* _sender, GdkDragContext* context, gpointer self);
static void page_on_drag_end (Page* self, GdkDragContext* context);
static void _page_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self);
static gboolean page_on_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result);
static gboolean _page_on_drag_failed_gtk_widget_drag_failed (GtkWidget* _sender, GdkDragContext* context, GtkDragResult _result_, gpointer self);
gboolean page_is_dnd_enabled (Page* self);
gboolean page_source_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result);
static gboolean page_real_source_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result);
gboolean page_get_event_source_pointer (Page* self, gint* x, gint* y, GdkModifierType* mask);
gboolean page_on_left_click (Page* self, GdkEventButton* event);
static gboolean page_real_on_left_click (Page* self, GdkEventButton* event);
gboolean page_on_middle_click (Page* self, GdkEventButton* event);
static gboolean page_real_on_middle_click (Page* self, GdkEventButton* event);
gboolean page_on_right_click (Page* self, GdkEventButton* event);
static gboolean page_real_on_right_click (Page* self, GdkEventButton* event);
gboolean page_on_left_released (Page* self, GdkEventButton* event);
static gboolean page_real_on_left_released (Page* self, GdkEventButton* event);
gboolean page_on_middle_released (Page* self, GdkEventButton* event);
static gboolean page_real_on_middle_released (Page* self, GdkEventButton* event);
gboolean page_on_right_released (Page* self, GdkEventButton* event);
static gboolean page_real_on_right_released (Page* self, GdkEventButton* event);
static gboolean page_real_on_ctrl_pressed (Page* self, GdkEventKey* event);
static gboolean page_real_on_ctrl_released (Page* self, GdkEventKey* event);
static gboolean page_real_on_alt_pressed (Page* self, GdkEventKey* event);
static gboolean page_real_on_alt_released (Page* self, GdkEventKey* event);
static gboolean page_real_on_shift_pressed (Page* self, GdkEventKey* event);
static gboolean page_real_on_shift_released (Page* self, GdkEventKey* event);
static gboolean page_real_on_super_pressed (Page* self, GdkEventKey* event);
static gboolean page_real_on_super_released (Page* self, GdkEventKey* event);
gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event);
static gboolean page_real_on_app_key_pressed (Page* self, GdkEventKey* event);
gboolean page_on_app_key_released (Page* self, GdkEventKey* event);
static gboolean page_real_on_app_key_released (Page* self, GdkEventKey* event);
gboolean page_notify_app_key_pressed (Page* self, GdkEventKey* event);
gboolean page_notify_app_key_released (Page* self, GdkEventKey* event);
gboolean page_notify_app_focus_in (Page* self, GdkEventFocus* event);
gboolean page_notify_app_focus_out (Page* self, GdkEventFocus* event);
void page_on_move (Page* self, GdkRectangle* rect);
static void page_real_on_move (Page* self, GdkRectangle* rect);
void page_on_move_start (Page* self, GdkRectangle* rect);
static void page_real_on_move_start (Page* self, GdkRectangle* rect);
void page_on_move_finished (Page* self, GdkRectangle* rect);
static void page_real_on_move_finished (Page* self, GdkRectangle* rect);
void page_on_resize (Page* self, GdkRectangle* rect);
static void page_real_on_resize (Page* self, GdkRectangle* rect);
void page_on_resize_start (Page* self, GdkRectangle* rect);
static void page_real_on_resize_start (Page* self, GdkRectangle* rect);
void page_on_resize_finished (Page* self, GdkRectangle* rect);
static void page_real_on_resize_finished (Page* self, GdkRectangle* rect);
gboolean page_on_configure (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
static gboolean page_real_on_configure (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
gboolean page_notify_configure_event (Page* self, GdkEventConfigure* event);
static gboolean page_check_configure_halted (Page* self);
static gboolean _page_check_configure_halted_gsource_func (gpointer self);
gulong now_ms (void);
gboolean page_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
static gboolean page_real_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
static void page_check_cursor_hiding (Page* self);
static gboolean page_real_on_leave_notify_event (Page* self);
gboolean page_on_mousewheel_up (Page* self, GdkEventScroll* event);
gboolean page_on_mousewheel_down (Page* self, GdkEventScroll* event);
gboolean page_on_mousewheel_left (Page* self, GdkEventScroll* event);
gboolean page_on_mousewheel_right (Page* self, GdkEventScroll* event);
static gboolean page_real_on_mousewheel_up (Page* self, GdkEventScroll* event);
static gboolean page_real_on_mousewheel_down (Page* self, GdkEventScroll* event);
static gboolean page_real_on_mousewheel_left (Page* self, GdkEventScroll* event);
static gboolean page_real_on_mousewheel_right (Page* self, GdkEventScroll* event);
static gboolean page_real_on_context_keypress (Page* self);
gboolean page_on_context_buttonpress (Page* self, GdkEventButton* event);
static gboolean page_real_on_context_buttonpress (Page* self, GdkEventButton* event);
gboolean page_on_context_invoked (Page* self);
static gboolean page_real_on_context_invoked (Page* self);
gboolean page_popup_context_menu (Page* self, GtkMenu* context_menu, GdkEventButton* event);
void page_set_cursor_hide_time (Page* self, gint hide_time);
void page_start_cursor_hiding (Page* self);
void page_stop_cursor_hiding (Page* self);
void page_suspend_cursor_hiding (Page* self);
void page_restore_cursor_hiding (Page* self);
void page_set_page_cursor (Page* self, GdkCursorType cursor_type);
static void page_real_set_page_cursor (Page* self, GdkCursorType cursor_type);
static gboolean page_on_hide_cursor (Page* self);
static gboolean _page_on_hide_cursor_gsource_func (gpointer self);
void app_window_update_menu_item_label (AppWindow* self, const gchar* id, const gchar* new_label);
static void page_finalize (GObject * obj);
GType checkerboard_page_get_type (void) G_GNUC_CONST;
GType thumbnail_view_get_type (void) G_GNUC_CONST;
GType checkerboard_item_get_type (void) G_GNUC_CONST;
GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
gpointer view_filter_ref (gpointer instance);
void view_filter_unref (gpointer instance);
GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_view_filter (GValue* value, gpointer v_object);
void value_take_view_filter (GValue* value, gpointer v_object);
gpointer value_get_view_filter (const GValue* value);
GType view_filter_get_type (void) G_GNUC_CONST;
GType search_view_filter_get_type (void) G_GNUC_CONST;
gpointer core_tracker_ref (gpointer instance);
void core_tracker_unref (gpointer instance);
GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void core_value_set_tracker (GValue* value, gpointer v_object);
void core_value_take_tracker (GValue* value, gpointer v_object);
gpointer core_value_get_tracker (const GValue* value);
GType core_tracker_get_type (void) G_GNUC_CONST;
GType core_view_tracker_get_type (void) G_GNUC_CONST;
GType checkerboard_layout_get_type (void) G_GNUC_CONST;
#define CHECKERBOARD_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CHECKERBOARD_PAGE, CheckerboardPagePrivate))
enum  {
	CHECKERBOARD_PAGE_DUMMY_PROPERTY
};
#define CHECKERBOARD_PAGE_AUTOSCROLL_PIXELS 50
#define CHECKERBOARD_PAGE_AUTOSCROLL_TICKS_MSEC 50
CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name);
CheckerboardLayout* checkerboard_layout_new (ViewCollection* view);
CheckerboardLayout* checkerboard_layout_construct (GType object_type, ViewCollection* view);
void checkerboard_layout_set_name (CheckerboardLayout* self, const gchar* name);
void checkerboard_layout_set_adjustments (CheckerboardLayout* self, GtkAdjustment* hadjustment, GtkAdjustment* vadjustment);
static void checkerboard_page_on_items_hidden (CheckerboardPage* self, GeeIterable* hidden);
static void _checkerboard_page_on_items_hidden_view_collection_items_hidden (ViewCollection* _sender, GeeCollection* hidden, gpointer self);
static void checkerboard_page_on_contents_altered (CheckerboardPage* self, GeeIterable* added, GeeIterable* removed);
static void _checkerboard_page_on_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
static void checkerboard_page_on_items_state_changed (CheckerboardPage* self, GeeIterable* changed);
static void _checkerboard_page_on_items_state_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
static void checkerboard_page_on_items_visibility_changed (CheckerboardPage* self, GeeCollection* changed);
static void _checkerboard_page_on_items_visibility_changed_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self);
void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path);
void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path);
GtkMenu* checkerboard_page_get_context_menu (CheckerboardPage* self);
GtkMenu* checkerboard_page_get_item_context_menu (CheckerboardPage* self);
static GtkMenu* checkerboard_page_real_get_item_context_menu (CheckerboardPage* self);
static GtkMenu* checkerboard_page_real_get_page_context_menu (Page* base);
static gboolean checkerboard_page_real_on_context_keypress (Page* base);
gchar* checkerboard_page_get_view_empty_message (CheckerboardPage* self);
static gchar* checkerboard_page_real_get_view_empty_message (CheckerboardPage* self);
gchar* checkerboard_page_get_filter_no_match_message (CheckerboardPage* self);
static gchar* checkerboard_page_real_get_filter_no_match_message (CheckerboardPage* self);
void checkerboard_page_on_item_activated (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
static void checkerboard_page_real_on_item_activated (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
CheckerboardLayout* checkerboard_page_get_checkerboard_layout (CheckerboardPage* self);
SearchViewFilter* checkerboard_page_get_search_view_filter (CheckerboardPage* self);
static SearchViewFilter* checkerboard_page_real_get_search_view_filter (CheckerboardPage* self);
CoreViewTracker* checkerboard_page_get_view_tracker (CheckerboardPage* self);
static CoreViewTracker* checkerboard_page_real_get_view_tracker (CheckerboardPage* self);
static void checkerboard_page_real_switching_from (Page* base);
void checkerboard_layout_set_in_view (CheckerboardLayout* self, gboolean in_view);
static void checkerboard_page_on_view_filter_refresh (CheckerboardPage* self);
static void _checkerboard_page_on_view_filter_refresh_view_filter_refresh (ViewFilter* _sender, gpointer self);
void view_collection_unselect_all (ViewCollection* self);
static void checkerboard_page_real_switched_to (Page* base);
DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
GType adjustment_relation_get_type (void) G_GNUC_CONST;
AdjustmentRelation get_adjustment_relation (GtkAdjustment* adjustment, gint value);
gpointer alteration_ref (gpointer instance);
void alteration_unref (gpointer instance);
GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_alteration (GValue* value, gpointer v_object);
void value_take_alteration (GValue* value, gpointer v_object);
gpointer value_get_alteration (const GValue* value);
GType alteration_get_type (void) G_GNUC_CONST;
GType data_source_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);
#define CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING 24
static void checkerboard_page_update_view_filter_message (CheckerboardPage* self);
gboolean view_collection_are_items_filtered_out (ViewCollection* self);
void checkerboard_page_set_page_message (CheckerboardPage* self, const gchar* message);
void checkerboard_page_unset_page_message (CheckerboardPage* self);
void checkerboard_layout_set_message (CheckerboardLayout* self, const gchar* text);
void checkerboard_layout_unset_message (CheckerboardLayout* self);
static void checkerboard_page_real_set_page_name (Page* base, const gchar* name);
CheckerboardItem* checkerboard_page_get_item_at_pixel (CheckerboardPage* self, gdouble x, gdouble y);
CheckerboardItem* checkerboard_layout_get_item_at_pixel (CheckerboardLayout* self, gdouble xd, gdouble yd);
static gboolean checkerboard_page_real_key_press_event (GtkWidget* base, GdkEventKey* event);
GType compass_point_get_type (void) G_GNUC_CONST;
void checkerboard_page_move_cursor (CheckerboardPage* self, CompassPoint point);
void checkerboard_page_select_anchor_to_cursor (CheckerboardPage* self, guint state);
DataView* view_collection_get_first (ViewCollection* self);
void checkerboard_page_cursor_to_item (CheckerboardPage* self, CheckerboardItem* item);
DataView* view_collection_get_last (ViewCollection* self);
void checkerboard_page_keyboard_modifiers_init (CheckerboardPageKeyboardModifiers *self, Page* page);
GType marker_get_type (void) G_GNUC_CONST;
Marker* data_collection_mark (DataCollection* self, DataObject* object);
CheckerboardItem* checkerboard_layout_get_cursor (CheckerboardLayout* self);
void view_collection_toggle_marked (ViewCollection* self, Marker* marker);
static gboolean checkerboard_page_real_on_left_click (Page* base, GdkEventButton* event);
gboolean checkerboard_layout_handle_left_click (CheckerboardLayout* self, CheckerboardItem* item, gdouble xd, gdouble yd, GdkModifierType mask);
gboolean data_view_is_selected (DataView* self);
void checkerboard_page_select_between_items (CheckerboardPage* self, CheckerboardItem* item_start, CheckerboardItem* item_end);
Marker* data_collection_start_marking (DataCollection* self);
void marker_mark_many (Marker* self, GeeCollection* list);
GeeList* view_collection_get_selected (ViewCollection* self);
void view_collection_unselect_and_select_marked (ViewCollection* self, Marker* unselect, Marker* select);
void checkerboard_layout_set_cursor (CheckerboardLayout* self, CheckerboardItem* item);
void checkerboard_layout_set_drag_select_origin (CheckerboardLayout* self, gint x, gint y);
static gboolean checkerboard_page_real_on_left_released (Page* base, GdkEventButton* event);
gboolean checkerboard_layout_is_drag_select_active (CheckerboardLayout* self);
void checkerboard_layout_clear_drag_select (CheckerboardLayout* self);
void view_collection_unselect_all_but (ViewCollection* self, DataView* exception);
static gboolean checkerboard_page_real_on_right_click (Page* base, GdkEventButton* event);
gboolean checkerboard_page_on_mouse_over (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
static gboolean checkerboard_page_real_on_mouse_over (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
gboolean checkerboard_layout_handle_mouse_motion (CheckerboardLayout* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
void checkerboard_item_unbrighten (CheckerboardItem* self);
void checkerboard_item_brighten (CheckerboardItem* self);
static gboolean checkerboard_page_real_on_motion (Page* base, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
void checkerboard_layout_set_drag_select_endpoint (CheckerboardLayout* self, gint x, gint y);
static void checkerboard_page_updated_selection_band (CheckerboardPage* self);
static gboolean checkerboard_page_selection_autoscroll (CheckerboardPage* self);
static gboolean _checkerboard_page_selection_autoscroll_gsource_func (gpointer self);
GeeList* checkerboard_layout_items_in_selection_band (CheckerboardLayout* self);
void marker_unmark_many (Marker* self, GeeCollection* list);
gboolean marker_toggle (Marker* self, DataObject* object);
void marker_unmark (Marker* self, DataObject* object);
void marker_mark (Marker* self, DataObject* object);
void view_collection_select_marked (ViewCollection* self, Marker* marker);
void view_collection_unselect_marked (ViewCollection* self, Marker* marker);
gboolean data_collection_contains (DataCollection* self, DataObject* object);
CheckerboardItem* checkerboard_layout_get_item_at_coordinate (CheckerboardLayout* self, gint col, gint row);
CheckerboardItem* checkerboard_layout_get_item_relative_to (CheckerboardLayout* self, CheckerboardItem* item, CompassPoint point);
void checkerboard_page_set_cursor (CheckerboardPage* self, CheckerboardItem* item);
GeeCollection* data_collection_get_all (DataCollection* self);
void checkerboard_page_set_display_titles (CheckerboardPage* self, gboolean display);
static void checkerboard_page_real_set_display_titles (CheckerboardPage* self, gboolean display);
void data_collection_freeze_notifications (DataCollection* self);
void data_collection_set_property (DataCollection* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target);
#define CHECKERBOARD_ITEM_PROP_SHOW_TITLES "show-titles"
void data_collection_thaw_notifications (DataCollection* self);
void checkerboard_page_set_display_comments (CheckerboardPage* self, gboolean display);
static void checkerboard_page_real_set_display_comments (CheckerboardPage* self, gboolean display);
#define CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS "show-comments"
static void checkerboard_page_finalize (GObject * obj);
GType single_photo_page_get_type (void) G_GNUC_CONST;
GType zoom_buffer_get_type (void) G_GNUC_CONST;
GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
gpointer transition_clock_ref (gpointer instance);
void transition_clock_unref (gpointer instance);
GParamSpec* param_spec_transition_clock (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_transition_clock (GValue* value, gpointer v_object);
void value_take_transition_clock (GValue* value, gpointer v_object);
gpointer value_get_transition_clock (const GValue* value);
GType transition_clock_get_type (void) G_GNUC_CONST;
GType zoom_state_get_type (void) G_GNUC_CONST;
ZoomState* zoom_state_dup (const ZoomState* self);
void zoom_state_free (ZoomState* self);
#define SINGLE_PHOTO_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPagePrivate))
enum  {
	SINGLE_PHOTO_PAGE_DUMMY_PROPERTY
};
GType configuration_facade_get_type (void) G_GNUC_CONST;
GType config_facade_get_type (void) G_GNUC_CONST;
ConfigFacade* config_facade_get_instance (void);
static void single_photo_page_on_colors_changed (SinglePhotoPage* self);
static void _single_photo_page_on_colors_changed_config_facade_colors_changed (ConfigFacade* _sender, gpointer self);
void dimensions_init (Dimensions *self, gint width, gint height);
#define SINGLE_PHOTO_PAGE_FAST_INTERP GDK_INTERP_NEAREST
#define SINGLE_PHOTO_PAGE_QUALITY_INTERP GDK_INTERP_BILINEAR
#define SINGLE_PHOTO_PAGE_KEY_REPEAT_INTERVAL_MSEC 200
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);
TransitionClock* transition_effects_manager_create_null_transition_clock (TransitionEffectsManager* self);
static void single_photo_page_on_viewport_resize (SinglePhotoPage* self);
static void _single_photo_page_on_viewport_resize_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self);
static gboolean single_photo_page_on_canvas_exposed (SinglePhotoPage* self, cairo_t* exposed_ctx);
static gboolean _single_photo_page_on_canvas_exposed_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self);
gboolean single_photo_page_is_transition_in_progress (SinglePhotoPage* self);
gboolean transition_clock_is_in_progress (TransitionClock* self);
void single_photo_page_cancel_transition (SinglePhotoPage* self);
void transition_clock_cancel (TransitionClock* self);
void single_photo_page_set_transition (SinglePhotoPage* self, const gchar* effect_id, gint duration_msec);
TransitionClock* transition_effects_manager_create_transition_clock (TransitionEffectsManager* self, const gchar* effect_id);
static void single_photo_page_render_zoomed_to_pixmap (SinglePhotoPage* self, ZoomState* zoom_state);
gboolean single_photo_page_is_zoom_supported (SinglePhotoPage* self);
void zoom_state_get_viewing_rectangle_wrt_content (ZoomState *self, GdkRectangle* result);
ZoomBuffer* single_photo_page_get_zoom_buffer (SinglePhotoPage* self);
GdkPixbuf* zoom_buffer_get_zoomed_image (ZoomBuffer* self, ZoomState* zoom_state);
GdkPixbuf* zoom_buffer_get_zoom_preview_image (ZoomBuffer* self, ZoomState* zoom_state);
void zoom_state_get_viewing_rectangle_projection (ZoomState *self, GdkPixbuf* for_pixbuf, GdkRectangle* result);
void paint_pixmap_with_background (cairo_t* ctx, GdkPixbuf* pixbuf, gint x, gint y);
void single_photo_page_on_interactive_zoom (SinglePhotoPage* self, ZoomState* interactive_zoom_state);
void set_source_color_from_string (cairo_t* ctx, const gchar* spec);
void single_photo_page_on_interactive_pan (SinglePhotoPage* self, ZoomState* interactive_zoom_state);
static gboolean single_photo_page_real_is_zoom_supported (SinglePhotoPage* self);
void single_photo_page_cancel_zoom (SinglePhotoPage* self);
static void single_photo_page_real_cancel_zoom (SinglePhotoPage* self);
void single_photo_page_save_zoom_state (SinglePhotoPage* self);
static void single_photo_page_real_save_zoom_state (SinglePhotoPage* self);
void single_photo_page_restore_zoom_state (SinglePhotoPage* self);
static void single_photo_page_real_restore_zoom_state (SinglePhotoPage* self);
GType direction_get_type (void) G_GNUC_CONST;
void single_photo_page_repaint (SinglePhotoPage* self, Direction* direction);
static ZoomBuffer* single_photo_page_real_get_zoom_buffer (SinglePhotoPage* self);
void single_photo_page_get_saved_zoom_state (SinglePhotoPage* self, ZoomState* result);
void single_photo_page_set_zoom_state (SinglePhotoPage* self, ZoomState* zoom_state);
void single_photo_page_get_zoom_state (SinglePhotoPage* self, ZoomState* result);
static void single_photo_page_real_switched_to (Page* base);
static void single_photo_page_real_set_container (Page* base, GtkWindow* container);
void single_photo_page_set_pixbuf (SinglePhotoPage* self, GdkPixbuf* unscaled, Dimensions* max_dim, Direction* direction);
gdouble zoom_state_get_interpolation_factor (ZoomState *self);
void zoom_state_get_viewport_center (ZoomState *self, GdkPoint* result);
void zoom_state_init (ZoomState *self, Dimensions* content_dimensions, Dimensions* viewport_dimensions, gdouble slider_val, GdkPoint* viewport_center);
void single_photo_page_blank_display (SinglePhotoPage* self);
void single_photo_page_invalidate_all (SinglePhotoPage* self);
cairo_surface_t* single_photo_page_get_surface (SinglePhotoPage* self);
void single_photo_page_get_surface_dim (SinglePhotoPage* self, Dimensions* result);
cairo_t* single_photo_page_get_cairo_context (SinglePhotoPage* self);
void single_photo_page_paint_text (SinglePhotoPage* self, PangoLayout* pango_layout, gint x, gint y);
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);
void scaling_for_screen (GtkWindow* window, gboolean scale_up, Scaling* result);
void scaling_for_widget (GtkWidget* widget, gboolean scale_up, Scaling* result);
GdkPixbuf* single_photo_page_get_unscaled_pixbuf (SinglePhotoPage* self);
GdkPixbuf* single_photo_page_get_scaled_pixbuf (SinglePhotoPage* self);
void single_photo_page_get_scaled_pixbuf_position (SinglePhotoPage* self, GdkRectangle* result);
gboolean single_photo_page_is_inside_pixbuf (SinglePhotoPage* self, gint x, gint y);
gboolean coord_in_rectangle (gint x, gint y, GdkRectangle* rect);
void single_photo_page_invalidate (SinglePhotoPage* self, GdkRectangle* rect);
static void single_photo_page_internal_repaint (SinglePhotoPage* self, gboolean fast, Direction* direction);
static void single_photo_page_real_on_resize_finished (Page* base, GdkRectangle* rect);
void single_photo_page_new_surface (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
static void single_photo_page_real_new_surface (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
void single_photo_page_updated_pixbuf (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
static void single_photo_page_real_updated_pixbuf (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
void single_photo_page_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
static void single_photo_page_real_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
gboolean zoom_state_is_default (ZoomState *self);
gboolean transition_clock_paint (TransitionClock* self, cairo_t* ctx, gint width, gint height);
static void single_photo_page_repaint_pixmap (SinglePhotoPage* self);
void dimensions_for_rectangle (GdkRectangle* rect, Dimensions* result);
static void single_photo_page_init_pixmap (SinglePhotoPage* self, gint width, gint height);
void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
gboolean dimensions_has_area (Dimensions *self);
void dimensions_get_scaled_proportional (Dimensions *self, Dimensions* viewport, Dimensions* result);
GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp);
void parse_color (const gchar* spec, GdkRGBA* result);
void transition_clock_start (TransitionClock* self, SpitTransitionsVisuals* visuals, SpitTransitionsDirection direction, gint duration_msec, TransitionClockRepaintCallback repaint, void* repaint_target);
SpitTransitionsDirection direction_to_transition_direction (Direction self);
static void _single_photo_page_repaint_pixmap_transition_clock_repaint_callback (gpointer self);
static gboolean single_photo_page_real_on_context_keypress (Page* base);
void single_photo_page_on_previous_photo (SinglePhotoPage* self);
static void single_photo_page_real_on_previous_photo (SinglePhotoPage* self);
void single_photo_page_on_next_photo (SinglePhotoPage* self);
static void single_photo_page_real_on_next_photo (SinglePhotoPage* self);
static gboolean single_photo_page_real_key_press_event (GtkWidget* base, GdkEventKey* event);
void invalidate_transparent_background (void);
static void single_photo_page_finalize (GObject * obj);
gpointer drag_and_drop_handler_ref (gpointer instance);
void drag_and_drop_handler_unref (gpointer instance);
GParamSpec* param_spec_drag_and_drop_handler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_drag_and_drop_handler (GValue* value, gpointer v_object);
void value_take_drag_and_drop_handler (GValue* value, gpointer v_object);
gpointer value_get_drag_and_drop_handler (const GValue* value);
GType drag_and_drop_handler_get_type (void) G_GNUC_CONST;
gpointer exporter_ui_ref (gpointer instance);
void exporter_ui_unref (gpointer instance);
GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_exporter_ui (GValue* value, gpointer v_object);
void value_take_exporter_ui (GValue* value, gpointer v_object);
gpointer value_get_exporter_ui (const GValue* value);
GType exporter_ui_get_type (void) G_GNUC_CONST;
#define DRAG_AND_DROP_HANDLER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerPrivate))
enum  {
	DRAG_AND_DROP_HANDLER_DUMMY_PROPERTY
};
static void drag_and_drop_handler_on_drag_begin (DragAndDropHandler* self, GdkDragContext* context);
static void _drag_and_drop_handler_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self);
static void drag_and_drop_handler_on_drag_data_get (DragAndDropHandler* self, GdkDragContext* context, GtkSelectionData* selection_data, guint target_type, guint time);
static void _drag_and_drop_handler_on_drag_data_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self);
static void drag_and_drop_handler_on_drag_end (DragAndDropHandler* self);
static void _drag_and_drop_handler_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self);
static gboolean drag_and_drop_handler_on_drag_failed (DragAndDropHandler* self, GdkDragContext* context, GtkDragResult drag_result);
static gboolean _drag_and_drop_handler_on_drag_failed_gtk_widget_drag_failed (GtkWidget* _sender, GdkDragContext* context, GtkDragResult _result_, gpointer self);
static GType drag_and_drop_handler_target_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
DragAndDropHandler* drag_and_drop_handler_new (Page* page);
DragAndDropHandler* drag_and_drop_handler_construct (GType object_type, Page* page);
static GdkAtom* _gdk_atom_dup (GdkAtom* self);
guchar* string_to_uchar_array (const gchar* str, int* result_length1);
GType thumbnail_source_get_type (void) G_GNUC_CONST;
DataSource* data_view_get_source (DataView* self);
GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
#define APP_WINDOW_DND_ICON_SCALE 128
gchar* data_object_to_string (DataObject* self);
gchar* uchar_array_to_string (guchar* data, int data_length1, gint length);
GType media_source_get_type (void) G_GNUC_CONST;
GeeList* view_collection_get_selected_sources (ViewCollection* self);
guchar* serialize_media_sources (GeeCollection* media, int* result_length1);
GType photo_source_get_type (void) G_GNUC_CONST;
GType photo_get_type (void) G_GNUC_CONST;
void scaling_for_original (Scaling* result);
GType export_format_parameters_get_type (void) G_GNUC_CONST;
GType export_format_mode_get_type (void) G_GNUC_CONST;
GType photo_file_format_get_type (void) G_GNUC_CONST;
GType jpeg_quality_get_type (void) G_GNUC_CONST;
ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
void export_format_parameters_free (ExportFormatParameters* self);
void export_format_parameters_current (ExportFormatParameters* result);
Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
GType exporter_get_type (void) G_GNUC_CONST;
ExporterUI* exporter_ui_new (Exporter* exporter);
ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter);
void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target);
static void drag_and_drop_handler_on_export_completed (DragAndDropHandler* self);
static void _drag_and_drop_handler_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self);
static void drag_and_drop_handler_finalize (DragAndDropHandler * 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 const GtkTargetEntry DRAG_AND_DROP_HANDLER_SOURCE_TARGET_ENTRIES[2] = {{"XdndDirectSave0", (guint) GTK_TARGET_OTHER_APP, (guint) DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS}, {"shotwell/media-id-atom", (guint) GTK_TARGET_SAME_APP, (guint) DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST}};

InjectionGroup* injection_group_construct (GType object_type, const gchar* path) {
	InjectionGroup* self = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 31 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (path != NULL, NULL);
#line 31 "/home/jens/Source/shotwell/src/Page.vala"
	self = (InjectionGroup*) g_type_create_instance (object_type);
#line 32 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = path;
#line 32 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 32 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->path);
#line 32 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->path = _tmp1_;
#line 31 "/home/jens/Source/shotwell/src/Page.vala"
	return self;
#line 1534 "Page.c"
}


InjectionGroup* injection_group_new (const gchar* path) {
#line 31 "/home/jens/Source/shotwell/src/Page.vala"
	return injection_group_construct (TYPE_INJECTION_GROUP, path);
#line 1541 "Page.c"
}


gchar* injection_group_get_path (InjectionGroup* self) {
	gchar* result = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 35 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_INJECTION_GROUP (self), NULL);
#line 36 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->path;
#line 36 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 36 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 36 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 1559 "Page.c"
}


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


GeeList* injection_group_get_elements (InjectionGroup* self) {
	GeeList* result = NULL;
	GeeArrayList* _tmp0_;
	GeeList* _tmp1_;
#line 39 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_INJECTION_GROUP (self), NULL);
#line 40 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->elements;
#line 40 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList));
#line 40 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 40 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 1584 "Page.c"
}


void injection_group_add_menu_item (InjectionGroup* self, const gchar* name, const gchar* action, const gchar* accellerator) {
	GeeArrayList* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	InjectionGroupElement* _tmp4_;
	InjectionGroupElement* _tmp5_;
#line 43 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_INJECTION_GROUP (self));
#line 43 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 44 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->elements;
#line 44 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = name;
#line 44 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = action;
#line 44 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = accellerator;
#line 44 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = injection_group_element_new (_tmp1_, _tmp2_, _tmp3_, INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENUITEM);
#line 44 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_;
#line 44 "/home/jens/Source/shotwell/src/Page.vala"
	gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp5_);
#line 44 "/home/jens/Source/shotwell/src/Page.vala"
	_injection_group_element_unref0 (_tmp5_);
#line 1615 "Page.c"
}


void injection_group_add_menu (InjectionGroup* self, const gchar* name, const gchar* action) {
	GeeArrayList* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	InjectionGroupElement* _tmp3_;
	InjectionGroupElement* _tmp4_;
#line 47 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_INJECTION_GROUP (self));
#line 47 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 48 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->elements;
#line 48 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = name;
#line 48 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = action;
#line 48 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = injection_group_element_new (_tmp1_, _tmp2_, NULL, INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENU);
#line 48 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_;
#line 48 "/home/jens/Source/shotwell/src/Page.vala"
	gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
#line 48 "/home/jens/Source/shotwell/src/Page.vala"
	_injection_group_element_unref0 (_tmp4_);
#line 1643 "Page.c"
}


void injection_group_add_separator (InjectionGroup* self) {
	GeeArrayList* _tmp0_;
	gint _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	InjectionGroupElement* _tmp4_;
	InjectionGroupElement* _tmp5_;
#line 51 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_INJECTION_GROUP (self));
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->elements;
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->separator_id;
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->separator_id = _tmp1_ + 1;
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = g_strdup_printf ("%d-separator", _tmp1_);
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = injection_group_element_new (_tmp3_, NULL, NULL, INJECTION_GROUP_ELEMENT_ITEM_TYPE_SEPARATOR);
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_;
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp5_);
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	_injection_group_element_unref0 (_tmp5_);
#line 52 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp3_);
#line 1676 "Page.c"
}


GType injection_group_element_item_type_get_type (void) {
	static volatile gsize injection_group_element_item_type_type_id__volatile = 0;
	if (g_once_init_enter (&injection_group_element_item_type_type_id__volatile)) {
		static const GEnumValue values[] = {{INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENUITEM, "INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENUITEM", "menuitem"}, {INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENU, "INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENU", "menu"}, {INJECTION_GROUP_ELEMENT_ITEM_TYPE_SEPARATOR, "INJECTION_GROUP_ELEMENT_ITEM_TYPE_SEPARATOR", "separator"}, {0, NULL, NULL}};
		GType injection_group_element_item_type_type_id;
		injection_group_element_item_type_type_id = g_enum_register_static ("InjectionGroupElementItemType", values);
		g_once_init_leave (&injection_group_element_item_type_type_id__volatile, injection_group_element_item_type_type_id);
	}
	return injection_group_element_item_type_type_id__volatile;
}


InjectionGroupElement* injection_group_element_construct (GType object_type, const gchar* name, const gchar* action, const gchar* accellerator, InjectionGroupElementItemType kind) {
	InjectionGroupElement* self = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	gchar* _tmp8_;
	InjectionGroupElementItemType _tmp9_;
#line 19 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 19 "/home/jens/Source/shotwell/src/Page.vala"
	self = (InjectionGroupElement*) g_type_create_instance (object_type);
#line 20 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 20 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 20 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->name);
#line 20 "/home/jens/Source/shotwell/src/Page.vala"
	self->name = _tmp1_;
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = action;
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ != NULL) {
#line 1718 "Page.c"
		const gchar* _tmp4_;
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = action;
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = _tmp4_;
#line 1724 "Page.c"
	} else {
		const gchar* _tmp5_;
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = name;
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = _tmp5_;
#line 1731 "Page.c"
	}
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = g_strdup (_tmp2_);
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->action);
#line 21 "/home/jens/Source/shotwell/src/Page.vala"
	self->action = _tmp6_;
#line 22 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = accellerator;
#line 22 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = g_strdup (_tmp7_);
#line 22 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->accellerator);
#line 22 "/home/jens/Source/shotwell/src/Page.vala"
	self->accellerator = _tmp8_;
#line 23 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = kind;
#line 23 "/home/jens/Source/shotwell/src/Page.vala"
	self->kind = _tmp9_;
#line 19 "/home/jens/Source/shotwell/src/Page.vala"
	return self;
#line 1753 "Page.c"
}


InjectionGroupElement* injection_group_element_new (const gchar* name, const gchar* action, const gchar* accellerator, InjectionGroupElementItemType kind) {
#line 19 "/home/jens/Source/shotwell/src/Page.vala"
	return injection_group_element_construct (INJECTION_GROUP_TYPE_ELEMENT, name, action, accellerator, kind);
#line 1760 "Page.c"
}


static void injection_group_value_element_init (GValue* value) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	value->data[0].v_pointer = NULL;
#line 1767 "Page.c"
}


static void injection_group_value_element_free_value (GValue* value) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (value->data[0].v_pointer) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		injection_group_element_unref (value->data[0].v_pointer);
#line 1776 "Page.c"
	}
}


static void injection_group_value_element_copy_value (const GValue* src_value, GValue* dest_value) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (src_value->data[0].v_pointer) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		dest_value->data[0].v_pointer = injection_group_element_ref (src_value->data[0].v_pointer);
#line 1786 "Page.c"
	} else {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		dest_value->data[0].v_pointer = NULL;
#line 1790 "Page.c"
	}
}


static gpointer injection_group_value_element_peek_pointer (const GValue* value) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	return value->data[0].v_pointer;
#line 1798 "Page.c"
}


static gchar* injection_group_value_element_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (collect_values[0].v_pointer) {
#line 1805 "Page.c"
		InjectionGroupElement * object;
		object = collect_values[0].v_pointer;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		if (object->parent_instance.g_class == NULL) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 1812 "Page.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 1816 "Page.c"
		}
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = injection_group_element_ref (object);
#line 1820 "Page.c"
	} else {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 1824 "Page.c"
	}
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	return NULL;
#line 1828 "Page.c"
}


static gchar* injection_group_value_element_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	InjectionGroupElement ** object_p;
	object_p = collect_values[0].v_pointer;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (!object_p) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 1839 "Page.c"
	}
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (!value->data[0].v_pointer) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = NULL;
#line 1845 "Page.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = value->data[0].v_pointer;
#line 1849 "Page.c"
	} else {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = injection_group_element_ref (value->data[0].v_pointer);
#line 1853 "Page.c"
	}
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	return NULL;
#line 1857 "Page.c"
}


GParamSpec* injection_group_param_spec_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	InjectionGroupParamSpecElement* spec;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (g_type_is_a (object_type, INJECTION_GROUP_TYPE_ELEMENT), NULL);
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	return G_PARAM_SPEC (spec);
#line 1871 "Page.c"
}


gpointer injection_group_value_get_element (const GValue* value) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, INJECTION_GROUP_TYPE_ELEMENT), NULL);
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	return value->data[0].v_pointer;
#line 1880 "Page.c"
}


void injection_group_value_set_element (GValue* value, gpointer v_object) {
	InjectionGroupElement * old;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, INJECTION_GROUP_TYPE_ELEMENT));
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	old = value->data[0].v_pointer;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (v_object) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, INJECTION_GROUP_TYPE_ELEMENT));
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = v_object;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		injection_group_element_ref (value->data[0].v_pointer);
#line 1900 "Page.c"
	} else {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 1904 "Page.c"
	}
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (old) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		injection_group_element_unref (old);
#line 1910 "Page.c"
	}
}


void injection_group_value_take_element (GValue* value, gpointer v_object) {
	InjectionGroupElement * old;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, INJECTION_GROUP_TYPE_ELEMENT));
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	old = value->data[0].v_pointer;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (v_object) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, INJECTION_GROUP_TYPE_ELEMENT));
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = v_object;
#line 1929 "Page.c"
	} else {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 1933 "Page.c"
	}
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (old) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		injection_group_element_unref (old);
#line 1939 "Page.c"
	}
}


static void injection_group_element_class_init (InjectionGroupElementClass * klass) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	injection_group_element_parent_class = g_type_class_peek_parent (klass);
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	((InjectionGroupElementClass *) klass)->finalize = injection_group_element_finalize;
#line 1949 "Page.c"
}


static void injection_group_element_instance_init (InjectionGroupElement * self) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	self->ref_count = 1;
#line 1956 "Page.c"
}


static void injection_group_element_finalize (InjectionGroupElement * obj) {
	InjectionGroupElement * self;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, INJECTION_GROUP_TYPE_ELEMENT, InjectionGroupElement);
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_destroy (self);
#line 14 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->name);
#line 15 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->action);
#line 16 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->accellerator);
#line 1972 "Page.c"
}


GType injection_group_element_get_type (void) {
	static volatile gsize injection_group_element_type_id__volatile = 0;
	if (g_once_init_enter (&injection_group_element_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { injection_group_value_element_init, injection_group_value_element_free_value, injection_group_value_element_copy_value, injection_group_value_element_peek_pointer, "p", injection_group_value_element_collect_value, "p", injection_group_value_element_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (InjectionGroupElementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) injection_group_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (InjectionGroupElement), 0, (GInstanceInitFunc) injection_group_element_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType injection_group_element_type_id;
		injection_group_element_type_id = g_type_register_fundamental (g_type_fundamental_next (), "InjectionGroupElement", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&injection_group_element_type_id__volatile, injection_group_element_type_id);
	}
	return injection_group_element_type_id__volatile;
}


gpointer injection_group_element_ref (gpointer instance) {
	InjectionGroupElement * self;
	self = instance;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	g_atomic_int_inc (&self->ref_count);
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	return instance;
#line 1997 "Page.c"
}


void injection_group_element_unref (gpointer instance) {
	InjectionGroupElement * self;
	self = instance;
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		INJECTION_GROUP_ELEMENT_GET_CLASS (self)->finalize (self);
#line 8 "/home/jens/Source/shotwell/src/Page.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 2010 "Page.c"
	}
}


static void value_injection_group_init (GValue* value) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	value->data[0].v_pointer = NULL;
#line 2018 "Page.c"
}


static void value_injection_group_free_value (GValue* value) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (value->data[0].v_pointer) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		injection_group_unref (value->data[0].v_pointer);
#line 2027 "Page.c"
	}
}


static void value_injection_group_copy_value (const GValue* src_value, GValue* dest_value) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (src_value->data[0].v_pointer) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		dest_value->data[0].v_pointer = injection_group_ref (src_value->data[0].v_pointer);
#line 2037 "Page.c"
	} else {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		dest_value->data[0].v_pointer = NULL;
#line 2041 "Page.c"
	}
}


static gpointer value_injection_group_peek_pointer (const GValue* value) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	return value->data[0].v_pointer;
#line 2049 "Page.c"
}


static gchar* value_injection_group_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (collect_values[0].v_pointer) {
#line 2056 "Page.c"
		InjectionGroup * object;
		object = collect_values[0].v_pointer;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		if (object->parent_instance.g_class == NULL) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 2063 "Page.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 2067 "Page.c"
		}
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = injection_group_ref (object);
#line 2071 "Page.c"
	} else {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 2075 "Page.c"
	}
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	return NULL;
#line 2079 "Page.c"
}


static gchar* value_injection_group_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	InjectionGroup ** object_p;
	object_p = collect_values[0].v_pointer;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (!object_p) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 2090 "Page.c"
	}
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (!value->data[0].v_pointer) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = NULL;
#line 2096 "Page.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = value->data[0].v_pointer;
#line 2100 "Page.c"
	} else {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = injection_group_ref (value->data[0].v_pointer);
#line 2104 "Page.c"
	}
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	return NULL;
#line 2108 "Page.c"
}


GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	ParamSpecInjectionGroup* spec;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (g_type_is_a (object_type, TYPE_INJECTION_GROUP), NULL);
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	return G_PARAM_SPEC (spec);
#line 2122 "Page.c"
}


gpointer value_get_injection_group (const GValue* value) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INJECTION_GROUP), NULL);
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	return value->data[0].v_pointer;
#line 2131 "Page.c"
}


void value_set_injection_group (GValue* value, gpointer v_object) {
	InjectionGroup * old;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INJECTION_GROUP));
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	old = value->data[0].v_pointer;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (v_object) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_INJECTION_GROUP));
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = v_object;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		injection_group_ref (value->data[0].v_pointer);
#line 2151 "Page.c"
	} else {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 2155 "Page.c"
	}
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (old) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		injection_group_unref (old);
#line 2161 "Page.c"
	}
}


void value_take_injection_group (GValue* value, gpointer v_object) {
	InjectionGroup * old;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INJECTION_GROUP));
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	old = value->data[0].v_pointer;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (v_object) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_INJECTION_GROUP));
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = v_object;
#line 2180 "Page.c"
	} else {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 2184 "Page.c"
	}
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (old) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		injection_group_unref (old);
#line 2190 "Page.c"
	}
}


static void injection_group_class_init (InjectionGroupClass * klass) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	injection_group_parent_class = g_type_class_peek_parent (klass);
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	((InjectionGroupClass *) klass)->finalize = injection_group_finalize;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	g_type_class_add_private (klass, sizeof (InjectionGroupPrivate));
#line 2202 "Page.c"
}


static void injection_group_instance_init (InjectionGroup * self) {
	GeeArrayList* _tmp0_;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv = INJECTION_GROUP_GET_PRIVATE (self);
#line 28 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = gee_array_list_new (INJECTION_GROUP_TYPE_ELEMENT, (GBoxedCopyFunc) injection_group_element_ref, (GDestroyNotify) injection_group_element_unref, NULL, NULL, NULL);
#line 28 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->elements = _tmp0_;
#line 29 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->separator_id = 0;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	self->ref_count = 1;
#line 2218 "Page.c"
}


static void injection_group_finalize (InjectionGroup * obj) {
	InjectionGroup * self;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_INJECTION_GROUP, InjectionGroup);
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_destroy (self);
#line 27 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->path);
#line 28 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->elements);
#line 2232 "Page.c"
}


GType injection_group_get_type (void) {
	static volatile gsize injection_group_type_id__volatile = 0;
	if (g_once_init_enter (&injection_group_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { value_injection_group_init, value_injection_group_free_value, value_injection_group_copy_value, value_injection_group_peek_pointer, "p", value_injection_group_collect_value, "p", value_injection_group_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (InjectionGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) injection_group_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (InjectionGroup), 0, (GInstanceInitFunc) injection_group_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType injection_group_type_id;
		injection_group_type_id = g_type_register_fundamental (g_type_fundamental_next (), "InjectionGroup", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&injection_group_type_id__volatile, injection_group_type_id);
	}
	return injection_group_type_id__volatile;
}


gpointer injection_group_ref (gpointer instance) {
	InjectionGroup * self;
	self = instance;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	g_atomic_int_inc (&self->ref_count);
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	return instance;
#line 2257 "Page.c"
}


void injection_group_unref (gpointer instance) {
	InjectionGroup * self;
	self = instance;
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		INJECTION_GROUP_GET_CLASS (self)->finalize (self);
#line 7 "/home/jens/Source/shotwell/src/Page.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 2270 "Page.c"
	}
}


static gboolean _page_on_context_keypress_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self) {
	gboolean result;
	result = page_on_context_keypress ((Page*) self);
#line 98 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2280 "Page.c"
}


static void _page_attach_view_signals_gtk_widget_realize (GtkWidget* _sender, gpointer self) {
#line 100 "/home/jens/Source/shotwell/src/Page.vala"
	page_attach_view_signals ((Page*) self);
#line 2287 "Page.c"
}


Page* page_construct (GType object_type, const gchar* page_name) {
	Page * self = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	ViewCollection* _tmp5_;
	GdkPoint _tmp6_ = {0};
#line 89 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (page_name != NULL, NULL);
#line 89 "/home/jens/Source/shotwell/src/Page.vala"
	self = (Page*) g_object_new (object_type, NULL);
#line 90 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_name;
#line 90 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 90 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->page_name);
#line 90 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->page_name = _tmp1_;
#line 92 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_name;
#line 92 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = g_strdup_printf ("ViewCollection for Page %s", _tmp2_);
#line 92 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_;
#line 92 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = view_collection_new (_tmp4_);
#line 92 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (self->priv->view);
#line 92 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->view = _tmp5_;
#line 92 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp4_);
#line 94 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_.x = -1;
#line 94 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_.y = -1;
#line 94 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_down = _tmp6_;
#line 96 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), TRUE);
#line 98 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "popup-menu", (GCallback) _page_on_context_keypress_gtk_widget_popup_menu, self, 0);
#line 100 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "realize", (GCallback) _page_attach_view_signals_gtk_widget_realize, self, 0);
#line 89 "/home/jens/Source/shotwell/src/Page.vala"
	return self;
#line 2340 "Page.c"
}


static void page_real_destroy (GtkWidget* base) {
	Page * self;
	gboolean _tmp0_;
	ViewCollection* _tmp1_;
	GtkToolbar* _tmp2_;
	OneShotScheduler* _tmp4_;
	gchar* _tmp6_;
	gchar* _tmp7_;
#line 111 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PAGE, Page);
#line 112 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->is_destroyed;
#line 112 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 113 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 2360 "Page.c"
	}
#line 116 "/home/jens/Source/shotwell/src/Page.vala"
	page_detach_event_source (self);
#line 117 "/home/jens/Source/shotwell/src/Page.vala"
	page_detach_view_signals (self);
#line 118 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->view;
#line 118 "/home/jens/Source/shotwell/src/Page.vala"
	data_collection_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
#line 121 "/home/jens/Source/shotwell/src/Page.vala"
	page_clear_container (self);
#line 123 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->toolbar;
#line 123 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ != NULL) {
#line 2376 "Page.c"
		GtkToolbar* _tmp3_;
#line 124 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = self->toolbar;
#line 124 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
#line 2382 "Page.c"
	}
#line 127 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->update_actions_scheduler;
#line 127 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ != NULL) {
#line 2388 "Page.c"
		OneShotScheduler* _tmp5_;
#line 128 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = self->priv->update_actions_scheduler;
#line 128 "/home/jens/Source/shotwell/src/Page.vala"
		one_shot_scheduler_cancel (_tmp5_);
#line 2394 "Page.c"
	}
#line 130 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->is_destroyed = TRUE;
#line 132 "/home/jens/Source/shotwell/src/Page.vala"
	GTK_WIDGET_CLASS (page_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), gtk_widget_get_type (), GtkWidget));
#line 134 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = page_get_page_name (self);
#line 134 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = _tmp6_;
#line 134 "/home/jens/Source/shotwell/src/Page.vala"
	g_debug ("Page.vala:134: Page %s Destroyed", _tmp7_);
#line 134 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp7_);
#line 2408 "Page.c"
}


gchar* page_get_page_name (Page* self) {
	gchar* result = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 137 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 138 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->page_name;
#line 138 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 138 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 138 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2426 "Page.c"
}


static void page_real_set_page_name (Page* self, const gchar* page_name) {
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 141 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (page_name != NULL);
#line 142 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_name;
#line 142 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 142 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->page_name);
#line 142 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->page_name = _tmp1_;
#line 2443 "Page.c"
}


void page_set_page_name (Page* self, const gchar* page_name) {
#line 141 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 141 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->set_page_name (self, page_name);
#line 2452 "Page.c"
}


gchar* page_to_string (Page* self) {
	gchar* result = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 145 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 146 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->page_name;
#line 146 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 146 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 146 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2470 "Page.c"
}


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


ViewCollection* page_get_view (Page* self) {
	ViewCollection* result = NULL;
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
#line 149 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 150 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->view;
#line 150 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _data_collection_ref0 (_tmp0_);
#line 150 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 150 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2495 "Page.c"
}


GtkWindow* page_get_container (Page* self) {
	GtkWindow* result = NULL;
	GtkWindow* _tmp0_;
	GtkWindow* _tmp1_;
#line 153 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 154 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->container;
#line 154 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 154 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 154 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2513 "Page.c"
}


static void page_real_set_container (Page* self, GtkWindow* container) {
	GtkWindow* _tmp0_;
	GtkWindow* _tmp1_;
	GtkWindow* _tmp2_;
#line 157 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GTK_IS_WINDOW (container));
#line 158 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->container;
#line 158 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp0_ == NULL, "this.container == null");
#line 160 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = container;
#line 160 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 160 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->container);
#line 160 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->container = _tmp2_;
#line 2535 "Page.c"
}


void page_set_container (Page* self, GtkWindow* container) {
#line 157 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 157 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->set_container (self, container);
#line 2544 "Page.c"
}


static void page_real_clear_container (Page* self) {
#line 164 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->container);
#line 164 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->container = NULL;
#line 2553 "Page.c"
}


void page_clear_container (Page* self) {
#line 163 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 163 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->clear_container (self);
#line 2562 "Page.c"
}


static gboolean _page_on_button_pressed_internal_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = page_on_button_pressed_internal ((Page*) self, event);
#line 178 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2571 "Page.c"
}


static gboolean _page_on_button_released_internal_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = page_on_button_released_internal ((Page*) self, event);
#line 179 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2580 "Page.c"
}


static gboolean _page_on_motion_internal_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self) {
	gboolean result;
	result = page_on_motion_internal ((Page*) self, event);
#line 180 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2589 "Page.c"
}


static gboolean _page_on_leave_notify_event_gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
	gboolean result;
	result = page_on_leave_notify_event ((Page*) self);
#line 181 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2598 "Page.c"
}


static gboolean _page_on_mousewheel_internal_gtk_widget_scroll_event (GtkWidget* _sender, GdkEventScroll* event, gpointer self) {
	gboolean result;
	result = page_on_mousewheel_internal ((Page*) self, event);
#line 182 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2607 "Page.c"
}


static void _page_on_event_source_realize_gtk_widget_realize (GtkWidget* _sender, gpointer self) {
#line 183 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_event_source_realize ((Page*) self);
#line 2614 "Page.c"
}


void page_set_event_source (Page* self, GtkWidget* event_source) {
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	GtkWidget* _tmp3_;
	GtkWidget* _tmp4_;
	GtkWidget* _tmp5_;
	GtkWidget* _tmp6_;
	GtkWidget* _tmp7_;
	GtkWidget* _tmp8_;
	GtkWidget* _tmp9_;
	GtkWidget* _tmp10_;
#line 167 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 167 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GTK_IS_WIDGET (event_source));
#line 168 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->event_source;
#line 168 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp0_ == NULL, "this.event_source == null");
#line 170 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = event_source;
#line 170 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 170 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->event_source);
#line 170 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->event_source = _tmp2_;
#line 171 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = event_source;
#line 171 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_set_can_focus (_tmp3_, TRUE);
#line 174 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = event_source;
#line 174 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_add_events (_tmp4_, (gint) (((((((GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK) | GDK_POINTER_MOTION_MASK) | GDK_POINTER_MOTION_HINT_MASK) | GDK_BUTTON_MOTION_MASK) | GDK_LEAVE_NOTIFY_MASK) | GDK_SCROLL_MASK) | GDK_SMOOTH_SCROLL_MASK));
#line 178 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = event_source;
#line 178 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp5_, "button-press-event", (GCallback) _page_on_button_pressed_internal_gtk_widget_button_press_event, self, 0);
#line 179 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = event_source;
#line 179 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp6_, "button-release-event", (GCallback) _page_on_button_released_internal_gtk_widget_button_release_event, self, 0);
#line 180 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = event_source;
#line 180 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp7_, "motion-notify-event", (GCallback) _page_on_motion_internal_gtk_widget_motion_notify_event, self, 0);
#line 181 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = event_source;
#line 181 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp8_, "leave-notify-event", (GCallback) _page_on_leave_notify_event_gtk_widget_leave_notify_event, self, 0);
#line 182 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = event_source;
#line 182 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp9_, "scroll-event", (GCallback) _page_on_mousewheel_internal_gtk_widget_scroll_event, self, 0);
#line 183 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = event_source;
#line 183 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp10_, "realize", (GCallback) _page_on_event_source_realize_gtk_widget_realize, self, 0);
#line 2678 "Page.c"
}


static void page_detach_event_source (Page* self) {
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	guint _tmp2_;
	GtkWidget* _tmp3_;
	guint _tmp4_;
	GtkWidget* _tmp5_;
	guint _tmp6_;
	GtkWidget* _tmp7_;
	guint _tmp8_;
	GtkWidget* _tmp9_;
	guint _tmp10_;
#line 186 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 187 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->event_source;
#line 187 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ == NULL) {
#line 188 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 2702 "Page.c"
	}
#line 190 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->event_source;
#line 190 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp2_, NULL, FALSE);
#line 190 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _page_on_button_pressed_internal_gtk_widget_button_press_event, self);
#line 191 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = self->priv->event_source;
#line 191 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("button-release-event", gtk_widget_get_type (), &_tmp4_, NULL, FALSE);
#line 191 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _page_on_button_released_internal_gtk_widget_button_release_event, self);
#line 192 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = self->priv->event_source;
#line 192 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("motion-notify-event", gtk_widget_get_type (), &_tmp6_, NULL, FALSE);
#line 192 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _page_on_motion_internal_gtk_widget_motion_notify_event, self);
#line 193 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = self->priv->event_source;
#line 193 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("leave-notify-event", gtk_widget_get_type (), &_tmp8_, NULL, FALSE);
#line 193 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _page_on_leave_notify_event_gtk_widget_leave_notify_event, self);
#line 194 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = self->priv->event_source;
#line 194 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("scroll-event", gtk_widget_get_type (), &_tmp10_, NULL, FALSE);
#line 194 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _page_on_mousewheel_internal_gtk_widget_scroll_event, self);
#line 196 "/home/jens/Source/shotwell/src/Page.vala"
	page_disable_drag_source (self);
#line 198 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->event_source);
#line 198 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->event_source = NULL;
#line 2740 "Page.c"
}


GtkWidget* page_get_event_source (Page* self) {
	GtkWidget* result = NULL;
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
#line 201 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 202 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->event_source;
#line 202 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 202 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 202 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 2758 "Page.c"
}


static gpointer _injection_group_ref0 (gpointer self) {
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
	return self ? injection_group_ref (self) : NULL;
#line 2765 "Page.c"
}


GMenuModel* page_get_menubar (Page* self) {
	GMenuModel* result = NULL;
	GMenu* model = NULL;
	GtkBuilder* _tmp0_;
	GObject* _tmp1_;
	GMenu* _tmp2_;
	GMenu* _tmp3_;
	gboolean _tmp5_;
#line 206 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 207 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->builder;
#line 207 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = gtk_builder_get_object (_tmp0_, "MenuBar");
#line 207 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, g_menu_get_type ()) ? ((GMenu*) _tmp1_) : NULL);
#line 207 "/home/jens/Source/shotwell/src/Page.vala"
	model = _tmp2_;
#line 208 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = model;
#line 208 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ == NULL) {
#line 2791 "Page.c"
		GMenu* _tmp4_;
#line 209 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = g_menu_new ();
#line 209 "/home/jens/Source/shotwell/src/Page.vala"
		result = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, g_menu_model_get_type (), GMenuModel);
#line 209 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (model);
#line 209 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 2801 "Page.c"
	}
#line 212 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = self->priv->menubar_injected;
#line 212 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp5_) {
#line 2807 "Page.c"
		InjectionGroup** injection_groups = NULL;
		gint _tmp6_;
		InjectionGroup** _tmp7_;
		gint injection_groups_length1;
		gint _injection_groups_size_;
		InjectionGroup** _tmp8_;
		gint _tmp8__length1;
#line 214 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = page_init_collect_injection_groups (self, &_tmp6_);
#line 214 "/home/jens/Source/shotwell/src/Page.vala"
		injection_groups = _tmp7_;
#line 214 "/home/jens/Source/shotwell/src/Page.vala"
		injection_groups_length1 = _tmp6_;
#line 214 "/home/jens/Source/shotwell/src/Page.vala"
		_injection_groups_size_ = injection_groups_length1;
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = injection_groups;
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8__length1 = injection_groups_length1;
#line 2827 "Page.c"
		{
			InjectionGroup** group_collection = NULL;
			gint group_collection_length1 = 0;
			gint _group_collection_size_ = 0;
			gint group_it = 0;
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
			group_collection = _tmp8_;
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
			group_collection_length1 = _tmp8__length1;
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
			for (group_it = 0; group_it < _tmp8__length1; group_it = group_it + 1) {
#line 2839 "Page.c"
				InjectionGroup* _tmp9_;
				InjectionGroup* group = NULL;
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp9_ = _injection_group_ref0 (group_collection[group_it]);
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
				group = _tmp9_;
#line 2846 "Page.c"
				{
					gint items = 0;
					GMenu* _tmp10_;
					gint _tmp11_;
#line 216 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp10_ = model;
#line 216 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp11_ = g_menu_model_get_n_items (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, g_menu_model_get_type (), GMenuModel));
#line 216 "/home/jens/Source/shotwell/src/Page.vala"
					items = _tmp11_;
#line 2857 "Page.c"
					{
						gint i = 0;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
						i = 0;
#line 2862 "Page.c"
						{
							gboolean _tmp12_ = FALSE;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
							_tmp12_ = TRUE;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
							while (TRUE) {
#line 2869 "Page.c"
								gint _tmp14_;
								gint _tmp15_;
								GMenuModel* submenu = NULL;
								GMenu* _tmp16_;
								gint _tmp17_;
								GMenuModel* _tmp18_;
								GMenuModel* section = NULL;
								GMenuModel* _tmp19_;
								InjectionGroup* _tmp20_;
								gchar* _tmp21_;
								gchar* _tmp22_;
								GMenuModel* _tmp23_;
								GMenuModel* _tmp24_;
								GMenuModel* _tmp25_;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
								if (!_tmp12_) {
#line 2886 "Page.c"
									gint _tmp13_;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp13_ = i;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
									i = _tmp13_ + 1;
#line 2892 "Page.c"
								}
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp12_ = FALSE;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp14_ = i;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp15_ = items;
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
								if (!(_tmp14_ < _tmp15_)) {
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
									break;
#line 2904 "Page.c"
								}
#line 218 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp16_ = model;
#line 218 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp17_ = i;
#line 218 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp18_ = g_menu_model_get_item_link (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, g_menu_model_get_type (), GMenuModel), _tmp17_, G_MENU_LINK_SUBMENU);
#line 218 "/home/jens/Source/shotwell/src/Page.vala"
								submenu = _tmp18_;
#line 220 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp19_ = submenu;
#line 220 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp20_ = group;
#line 220 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp21_ = injection_group_get_path (_tmp20_);
#line 220 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp22_ = _tmp21_;
#line 220 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp23_ = page_find_extension_point (self, _tmp19_, _tmp22_);
#line 220 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp24_ = _tmp23_;
#line 220 "/home/jens/Source/shotwell/src/Page.vala"
								_g_free0 (_tmp22_);
#line 220 "/home/jens/Source/shotwell/src/Page.vala"
								section = _tmp24_;
#line 223 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp25_ = section;
#line 223 "/home/jens/Source/shotwell/src/Page.vala"
								if (_tmp25_ == NULL) {
#line 224 "/home/jens/Source/shotwell/src/Page.vala"
									_g_object_unref0 (section);
#line 224 "/home/jens/Source/shotwell/src/Page.vala"
									_g_object_unref0 (submenu);
#line 224 "/home/jens/Source/shotwell/src/Page.vala"
									continue;
#line 2940 "Page.c"
								}
								{
									GeeList* _element_list = NULL;
									InjectionGroup* _tmp26_;
									GeeList* _tmp27_;
									gint _element_size = 0;
									GeeList* _tmp28_;
									gint _tmp29_;
									gint _tmp30_;
									gint _element_index = 0;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp26_ = group;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp27_ = injection_group_get_elements (_tmp26_);
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_element_list = _tmp27_;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp28_ = _element_list;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp29_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection));
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp30_ = _tmp29_;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_element_size = _tmp30_;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_element_index = -1;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									while (TRUE) {
#line 2969 "Page.c"
										gint _tmp31_;
										gint _tmp32_;
										gint _tmp33_;
										InjectionGroupElement* element = NULL;
										GeeList* _tmp34_;
										gint _tmp35_;
										gpointer _tmp36_;
										GMenu* menu = NULL;
										GMenuModel* _tmp37_;
										GMenu* _tmp38_;
										InjectionGroupElement* _tmp39_;
										InjectionGroupElementItemType _tmp40_;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp31_ = _element_index;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_element_index = _tmp31_ + 1;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp32_ = _element_index;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp33_ = _element_size;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										if (!(_tmp32_ < _tmp33_)) {
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
											break;
#line 2994 "Page.c"
										}
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp34_ = _element_list;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp35_ = _element_index;
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp36_ = gee_list_get (_tmp34_, _tmp35_);
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										element = (InjectionGroupElement*) _tmp36_;
#line 228 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp37_ = section;
#line 228 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp38_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp37_, g_menu_get_type ()) ? ((GMenu*) _tmp37_) : NULL);
#line 228 "/home/jens/Source/shotwell/src/Page.vala"
										menu = _tmp38_;
#line 229 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp39_ = element;
#line 229 "/home/jens/Source/shotwell/src/Page.vala"
										_tmp40_ = _tmp39_->kind;
#line 229 "/home/jens/Source/shotwell/src/Page.vala"
										switch (_tmp40_) {
#line 229 "/home/jens/Source/shotwell/src/Page.vala"
											case INJECTION_GROUP_ELEMENT_ITEM_TYPE_MENUITEM:
#line 3018 "Page.c"
											{
												GMenuItem* item = NULL;
												InjectionGroupElement* _tmp41_;
												const gchar* _tmp42_;
												InjectionGroupElement* _tmp43_;
												const gchar* _tmp44_;
												gchar* _tmp45_;
												gchar* _tmp46_;
												GMenuItem* _tmp47_;
												GMenuItem* _tmp48_;
												InjectionGroupElement* _tmp49_;
												const gchar* _tmp50_;
												GMenu* _tmp54_;
												GMenuItem* _tmp55_;
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp41_ = element;
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp42_ = _tmp41_->name;
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp43_ = element;
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp44_ = _tmp43_->action;
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp45_ = g_strconcat ("win.", _tmp44_, NULL);
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp46_ = _tmp45_;
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp47_ = g_menu_item_new (_tmp42_, _tmp46_);
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp48_ = _tmp47_;
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												_g_free0 (_tmp46_);
#line 231 "/home/jens/Source/shotwell/src/Page.vala"
												item = _tmp48_;
#line 233 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp49_ = element;
#line 233 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp50_ = _tmp49_->accellerator;
#line 233 "/home/jens/Source/shotwell/src/Page.vala"
												if (_tmp50_ != NULL) {
#line 3059 "Page.c"
													GMenuItem* _tmp51_;
													InjectionGroupElement* _tmp52_;
													const gchar* _tmp53_;
#line 234 "/home/jens/Source/shotwell/src/Page.vala"
													_tmp51_ = item;
#line 234 "/home/jens/Source/shotwell/src/Page.vala"
													_tmp52_ = element;
#line 234 "/home/jens/Source/shotwell/src/Page.vala"
													_tmp53_ = _tmp52_->accellerator;
#line 234 "/home/jens/Source/shotwell/src/Page.vala"
													g_menu_item_set_attribute (_tmp51_, "accel", "s", _tmp53_, NULL);
#line 3071 "Page.c"
												}
#line 239 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp54_ = menu;
#line 239 "/home/jens/Source/shotwell/src/Page.vala"
												_tmp55_ = item;
#line 239 "/home/jens/Source/shotwell/src/Page.vala"
												g_menu_append_item (_tmp54_, _tmp55_);
#line 240 "/home/jens/Source/shotwell/src/Page.vala"
												_g_object_unref0 (item);
#line 240 "/home/jens/Source/shotwell/src/Page.vala"
												break;
#line 3083 "Page.c"
											}
											default:
											{
#line 242 "/home/jens/Source/shotwell/src/Page.vala"
												break;
#line 3089 "Page.c"
											}
										}
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_g_object_unref0 (menu);
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
										_injection_group_element_unref0 (element);
#line 3096 "Page.c"
									}
#line 227 "/home/jens/Source/shotwell/src/Page.vala"
									_g_object_unref0 (_element_list);
#line 3100 "Page.c"
								}
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
								_g_object_unref0 (section);
#line 217 "/home/jens/Source/shotwell/src/Page.vala"
								_g_object_unref0 (submenu);
#line 3106 "Page.c"
							}
						}
					}
#line 215 "/home/jens/Source/shotwell/src/Page.vala"
					_injection_group_unref0 (group);
#line 3112 "Page.c"
				}
			}
		}
#line 248 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->menubar_injected = TRUE;
#line 212 "/home/jens/Source/shotwell/src/Page.vala"
		injection_groups = (_vala_array_free (injection_groups, injection_groups_length1, (GDestroyNotify) injection_group_unref), NULL);
#line 3120 "Page.c"
	}
#line 251 "/home/jens/Source/shotwell/src/Page.vala"
	result = G_TYPE_CHECK_INSTANCE_CAST (model, g_menu_model_get_type (), GMenuModel);
#line 251 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3126 "Page.c"
}


static GtkToolbar* page_real_get_toolbar (Page* self) {
	GtkToolbar* result = NULL;
	GtkToolbar* _tmp0_;
	GtkToolbar* _tmp12_;
	GtkToolbar* _tmp13_;
#line 255 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->toolbar;
#line 255 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ == NULL) {
#line 3139 "Page.c"
		GtkToolbar* _tmp1_ = NULL;
		const gchar* _tmp2_;
		GtkToolbar* _tmp8_;
		GtkToolbar* _tmp9_;
		GtkStyleContext* _tmp10_;
		GtkToolbar* _tmp11_;
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->priv->toolbar_path;
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp2_ == NULL) {
#line 3150 "Page.c"
			GtkToolbar* _tmp3_;
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp3_ = (GtkToolbar*) gtk_toolbar_new ();
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
			g_object_ref_sink (_tmp3_);
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_tmp1_);
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp1_ = _tmp3_;
#line 3160 "Page.c"
		} else {
			GtkBuilder* _tmp4_;
			const gchar* _tmp5_;
			GObject* _tmp6_;
			GtkToolbar* _tmp7_;
#line 257 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp4_ = self->builder;
#line 257 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp5_ = self->priv->toolbar_path;
#line 257 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp6_ = gtk_builder_get_object (_tmp4_, _tmp5_);
#line 257 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, gtk_toolbar_get_type ()) ? ((GtkToolbar*) _tmp6_) : NULL);
#line 257 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_tmp1_);
#line 257 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp1_ = _tmp7_;
#line 3178 "Page.c"
		}
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _g_object_ref0 (_tmp1_);
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->toolbar);
#line 256 "/home/jens/Source/shotwell/src/Page.vala"
		self->toolbar = _tmp8_;
#line 259 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = self->toolbar;
#line 259 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
#line 259 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_style_context_add_class (_tmp10_, "bottom-toolbar");
#line 260 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = self->toolbar;
#line 260 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_toolbar_set_icon_size (_tmp11_, GTK_ICON_SIZE_SMALL_TOOLBAR);
#line 255 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp1_);
#line 3198 "Page.c"
	}
#line 262 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = self->toolbar;
#line 262 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = _g_object_ref0 (_tmp12_);
#line 262 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp13_;
#line 262 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3208 "Page.c"
}


GtkToolbar* page_get_toolbar (Page* self) {
#line 254 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 254 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->get_toolbar (self);
#line 3217 "Page.c"
}


static GtkMenu* page_real_get_page_context_menu (Page* self) {
	GtkMenu* result = NULL;
#line 266 "/home/jens/Source/shotwell/src/Page.vala"
	result = NULL;
#line 266 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3227 "Page.c"
}


GtkMenu* page_get_page_context_menu (Page* self) {
#line 265 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 265 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->get_page_context_menu (self);
#line 3236 "Page.c"
}


static void page_real_switching_from (Page* self) {
	GActionMap* map = NULL;
	GtkWindow* _tmp0_;
	GActionMap* _tmp1_;
	GActionMap* _tmp2_;
	const gchar* _tmp4_;
#line 270 "/home/jens/Source/shotwell/src/Page.vala"
	self->in_view = FALSE;
#line 272 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_container (self);
#line 272 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, g_action_map_get_type ()) ? ((GActionMap*) _tmp0_) : NULL;
#line 272 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ == NULL) {
#line 272 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp0_);
#line 3256 "Page.c"
	}
#line 272 "/home/jens/Source/shotwell/src/Page.vala"
	map = _tmp1_;
#line 273 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = map;
#line 273 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ != NULL) {
#line 3264 "Page.c"
		GActionMap* _tmp3_;
#line 274 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = map;
#line 274 "/home/jens/Source/shotwell/src/Page.vala"
		page_remove_actions (self, _tmp3_);
#line 3270 "Page.c"
	}
#line 276 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->toolbar_path;
#line 276 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ != NULL) {
#line 277 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->toolbar);
#line 277 "/home/jens/Source/shotwell/src/Page.vala"
		self->toolbar = NULL;
#line 3280 "Page.c"
	}
#line 269 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (map);
#line 3284 "Page.c"
}


void page_switching_from (Page* self) {
#line 269 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 269 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->switching_from (self);
#line 3293 "Page.c"
}


static void page_real_switched_to (Page* self) {
	GActionMap* map = NULL;
	GtkWindow* _tmp0_;
	GActionMap* _tmp1_;
	GActionMap* _tmp2_;
	gint selected_count = 0;
	ViewCollection* _tmp4_;
	ViewCollection* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	gint count = 0;
	ViewCollection* _tmp8_;
	ViewCollection* _tmp9_;
	gint _tmp10_;
	gint _tmp11_;
#line 281 "/home/jens/Source/shotwell/src/Page.vala"
	self->in_view = TRUE;
#line 282 "/home/jens/Source/shotwell/src/Page.vala"
	page_add_ui (self);
#line 283 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_container (self);
#line 283 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, g_action_map_get_type ()) ? ((GActionMap*) _tmp0_) : NULL;
#line 283 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ == NULL) {
#line 283 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp0_);
#line 3324 "Page.c"
	}
#line 283 "/home/jens/Source/shotwell/src/Page.vala"
	map = _tmp1_;
#line 284 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = map;
#line 284 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ != NULL) {
#line 3332 "Page.c"
		GActionMap* _tmp3_;
#line 285 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = map;
#line 285 "/home/jens/Source/shotwell/src/Page.vala"
		page_add_actions (self, _tmp3_);
#line 3338 "Page.c"
	}
#line 287 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = page_get_view (self);
#line 287 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_;
#line 287 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = view_collection_get_selected_count (_tmp5_);
#line 287 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = _tmp6_;
#line 287 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp5_);
#line 287 "/home/jens/Source/shotwell/src/Page.vala"
	selected_count = _tmp7_;
#line 288 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = page_get_view (self);
#line 288 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = _tmp8_;
#line 288 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection));
#line 288 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = _tmp10_;
#line 288 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp9_);
#line 288 "/home/jens/Source/shotwell/src/Page.vala"
	count = _tmp11_;
#line 289 "/home/jens/Source/shotwell/src/Page.vala"
	page_init_actions (self, selected_count, count);
#line 290 "/home/jens/Source/shotwell/src/Page.vala"
	page_update_actions (self, selected_count, count);
#line 291 "/home/jens/Source/shotwell/src/Page.vala"
	page_update_modifiers (self);
#line 280 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (map);
#line 3372 "Page.c"
}


void page_switched_to (Page* self) {
#line 280 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 280 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->switched_to (self);
#line 3381 "Page.c"
}


static void page_real_ready (Page* self) {
}


void page_ready (Page* self) {
#line 294 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 294 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->ready (self);
#line 3394 "Page.c"
}


gboolean page_is_in_view (Page* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 297 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 298 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->in_view;
#line 298 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 298 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3409 "Page.c"
}


static void page_real_switching_to_fullscreen (Page* self, FullscreenWindow* fsw) {
	FullscreenWindow* _tmp0_;
#line 301 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_FULLSCREEN_WINDOW (fsw));
#line 302 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = fsw;
#line 302 "/home/jens/Source/shotwell/src/Page.vala"
	page_add_actions (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, g_action_map_get_type (), GActionMap));
#line 3421 "Page.c"
}


void page_switching_to_fullscreen (Page* self, FullscreenWindow* fsw) {
#line 301 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 301 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->switching_to_fullscreen (self, fsw);
#line 3430 "Page.c"
}


static void page_real_returning_from_fullscreen (Page* self, FullscreenWindow* fsw) {
	FullscreenWindow* _tmp0_;
#line 305 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_FULLSCREEN_WINDOW (fsw));
#line 306 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = fsw;
#line 306 "/home/jens/Source/shotwell/src/Page.vala"
	page_remove_actions (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, g_action_map_get_type (), GActionMap));
#line 307 "/home/jens/Source/shotwell/src/Page.vala"
	page_switched_to (self);
#line 3444 "Page.c"
}


void page_returning_from_fullscreen (Page* self, FullscreenWindow* fsw) {
#line 305 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 305 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->returning_from_fullscreen (self, fsw);
#line 3453 "Page.c"
}


GAction* page_get_action (Page* self, const gchar* name) {
	GAction* result = NULL;
	GActionMap* map = NULL;
	GtkWindow* _tmp0_;
	GActionMap* _tmp5_;
#line 310 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 310 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 311 "/home/jens/Source/shotwell/src/Page.vala"
	map = NULL;
#line 312 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->container;
#line 312 "/home/jens/Source/shotwell/src/Page.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FULLSCREEN_WINDOW)) {
#line 3472 "Page.c"
		GtkWindow* _tmp1_;
		GActionMap* _tmp2_;
#line 313 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = self->priv->container;
#line 313 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, g_action_map_get_type ()) ? ((GActionMap*) _tmp1_) : NULL);
#line 313 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (map);
#line 313 "/home/jens/Source/shotwell/src/Page.vala"
		map = _tmp2_;
#line 3483 "Page.c"
	} else {
		AppWindow* _tmp3_;
		GActionMap* _tmp4_;
#line 315 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = app_window_get_instance ();
#line 315 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, g_action_map_get_type ()) ? ((GActionMap*) _tmp3_) : NULL;
#line 315 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp4_ == NULL) {
#line 315 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_tmp3_);
#line 3495 "Page.c"
		}
#line 315 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (map);
#line 315 "/home/jens/Source/shotwell/src/Page.vala"
		map = _tmp4_;
#line 3501 "Page.c"
	}
#line 318 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = map;
#line 318 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp5_ != NULL) {
#line 3507 "Page.c"
		GActionMap* _tmp6_;
		const gchar* _tmp7_;
		GAction* _tmp8_;
		GAction* _tmp9_;
#line 319 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = map;
#line 319 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = name;
#line 319 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = g_action_map_lookup_action (_tmp6_, _tmp7_);
#line 319 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _g_object_ref0 (_tmp8_);
#line 319 "/home/jens/Source/shotwell/src/Page.vala"
		result = _tmp9_;
#line 319 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (map);
#line 319 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 3526 "Page.c"
	}
#line 322 "/home/jens/Source/shotwell/src/Page.vala"
	result = NULL;
#line 322 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (map);
#line 322 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3534 "Page.c"
}


void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive) {
	GSimpleAction* action = NULL;
	const gchar* _tmp0_;
	GAction* _tmp1_;
	GSimpleAction* _tmp2_;
	GSimpleAction* _tmp3_;
#line 325 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 325 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 326 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 326 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_action (self, _tmp0_);
#line 326 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, g_simple_action_get_type ()) ? ((GSimpleAction*) _tmp1_) : NULL;
#line 326 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ == NULL) {
#line 326 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp1_);
#line 3558 "Page.c"
	}
#line 326 "/home/jens/Source/shotwell/src/Page.vala"
	action = _tmp2_;
#line 327 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = action;
#line 327 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ != NULL) {
#line 3566 "Page.c"
		GSimpleAction* _tmp4_;
		gboolean _tmp5_;
#line 328 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = action;
#line 328 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = sensitive;
#line 328 "/home/jens/Source/shotwell/src/Page.vala"
		g_simple_action_set_enabled (_tmp4_, _tmp5_);
#line 3575 "Page.c"
	}
#line 325 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (action);
#line 3579 "Page.c"
}


void page_set_action_details (Page* self, const gchar* name, const gchar* label, const gchar* tooltip, gboolean sensitive) {
	GSimpleAction* action = NULL;
	const gchar* _tmp0_;
	GAction* _tmp1_;
	GSimpleAction* _tmp2_;
	GSimpleAction* _tmp3_;
	const gchar* _tmp4_;
	GSimpleAction* _tmp7_;
	gboolean _tmp8_;
#line 331 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 331 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 332 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 332 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_action (self, _tmp0_);
#line 332 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, g_simple_action_get_type ()) ? ((GSimpleAction*) _tmp1_) : NULL;
#line 332 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ == NULL) {
#line 332 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp1_);
#line 3606 "Page.c"
	}
#line 332 "/home/jens/Source/shotwell/src/Page.vala"
	action = _tmp2_;
#line 334 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = action;
#line 334 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ == NULL) {
#line 335 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (action);
#line 335 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 3618 "Page.c"
	}
#line 337 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = label;
#line 337 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ != NULL) {
#line 3624 "Page.c"
		const gchar* _tmp5_;
		const gchar* _tmp6_;
#line 338 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = name;
#line 338 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = label;
#line 338 "/home/jens/Source/shotwell/src/Page.vala"
		page_update_menu_item_label (self, _tmp5_, _tmp6_);
#line 3633 "Page.c"
	}
#line 340 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = action;
#line 340 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = sensitive;
#line 340 "/home/jens/Source/shotwell/src/Page.vala"
	g_simple_action_set_enabled (_tmp7_, _tmp8_);
#line 331 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (action);
#line 3643 "Page.c"
}


void page_activate_action (Page* self, const gchar* name) {
	GAction* action = NULL;
	const gchar* _tmp0_;
	GAction* _tmp1_;
	GAction* _tmp2_;
#line 343 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 343 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 344 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 344 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_action (self, _tmp0_);
#line 344 "/home/jens/Source/shotwell/src/Page.vala"
	action = _tmp1_;
#line 346 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = action;
#line 346 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ != NULL) {
#line 3666 "Page.c"
		GAction* _tmp3_;
#line 347 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = action;
#line 347 "/home/jens/Source/shotwell/src/Page.vala"
		g_action_activate (_tmp3_, NULL);
#line 3672 "Page.c"
	}
#line 343 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (action);
#line 3676 "Page.c"
}


GAction* page_get_common_action (Page* self, const gchar* name, gboolean log_warning) {
	GAction* result = NULL;
	GAction* action = NULL;
	const gchar* _tmp0_;
	GAction* _tmp1_;
	GAction* _tmp2_;
	gboolean _tmp3_;
#line 350 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 350 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 351 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 351 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_action (self, _tmp0_);
#line 351 "/home/jens/Source/shotwell/src/Page.vala"
	action = _tmp1_;
#line 353 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = action;
#line 353 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ != NULL) {
#line 354 "/home/jens/Source/shotwell/src/Page.vala"
		result = action;
#line 354 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 3705 "Page.c"
	}
#line 356 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = log_warning;
#line 356 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_) {
#line 3711 "Page.c"
		gchar* _tmp4_;
		gchar* _tmp5_;
		const gchar* _tmp6_;
#line 357 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = page_get_page_name (self);
#line 357 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = _tmp4_;
#line 357 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = name;
#line 357 "/home/jens/Source/shotwell/src/Page.vala"
		g_warning ("Page.vala:357: Page %s: Unable to locate common action %s", _tmp5_, _tmp6_);
#line 357 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (_tmp5_);
#line 3725 "Page.c"
	}
#line 359 "/home/jens/Source/shotwell/src/Page.vala"
	result = NULL;
#line 359 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (action);
#line 359 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3733 "Page.c"
}


void page_set_common_action_sensitive (Page* self, const gchar* name, gboolean sensitive) {
	GSimpleAction* action = NULL;
	const gchar* _tmp0_;
	GAction* _tmp1_;
	GSimpleAction* _tmp2_;
	GSimpleAction* _tmp3_;
#line 362 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 362 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 363 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 363 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_common_action (self, _tmp0_, TRUE);
#line 363 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, g_simple_action_get_type ()) ? ((GSimpleAction*) _tmp1_) : NULL;
#line 363 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ == NULL) {
#line 363 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp1_);
#line 3757 "Page.c"
	}
#line 363 "/home/jens/Source/shotwell/src/Page.vala"
	action = _tmp2_;
#line 364 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = action;
#line 364 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ != NULL) {
#line 3765 "Page.c"
		GSimpleAction* _tmp4_;
		gboolean _tmp5_;
#line 365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = action;
#line 365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = sensitive;
#line 365 "/home/jens/Source/shotwell/src/Page.vala"
		g_simple_action_set_enabled (_tmp4_, _tmp5_);
#line 3774 "Page.c"
	}
#line 362 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (action);
#line 3778 "Page.c"
}


void page_set_common_action_label (Page* self, const gchar* name, const gchar* label) {
	const gchar* _tmp0_;
#line 368 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 368 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 368 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (label != NULL);
#line 369 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 369 "/home/jens/Source/shotwell/src/Page.vala"
	g_debug ("Page.vala:369: Trying to set common action label for %s", _tmp0_);
#line 3794 "Page.c"
}


void page_set_common_action_important (Page* self, const gchar* name, gboolean important) {
	const gchar* _tmp0_;
#line 372 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 372 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 373 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 373 "/home/jens/Source/shotwell/src/Page.vala"
	g_debug ("Page.vala:373: Setting action to important: %s", _tmp0_);
#line 3808 "Page.c"
}


void page_activate_common_action (Page* self, const gchar* name) {
	GSimpleAction* action = NULL;
	const gchar* _tmp0_;
	GAction* _tmp1_;
	GSimpleAction* _tmp2_;
	GSimpleAction* _tmp3_;
#line 376 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 376 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 377 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 377 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_common_action (self, _tmp0_, TRUE);
#line 377 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, g_simple_action_get_type ()) ? ((GSimpleAction*) _tmp1_) : NULL;
#line 377 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ == NULL) {
#line 377 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp1_);
#line 3832 "Page.c"
	}
#line 377 "/home/jens/Source/shotwell/src/Page.vala"
	action = _tmp2_;
#line 378 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = action;
#line 378 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ != NULL) {
#line 3840 "Page.c"
		GSimpleAction* _tmp4_;
#line 379 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = action;
#line 379 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_emit_by_name (_tmp4_, "activate", NULL);
#line 3846 "Page.c"
	}
#line 376 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (action);
#line 3850 "Page.c"
}


gboolean page_get_ctrl_pressed (Page* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 382 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 383 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->ctrl_pressed;
#line 383 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 383 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3865 "Page.c"
}


gboolean page_get_alt_pressed (Page* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 386 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 387 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->alt_pressed;
#line 387 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 387 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3880 "Page.c"
}


gboolean page_get_shift_pressed (Page* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 390 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 391 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->shift_pressed;
#line 391 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 391 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3895 "Page.c"
}


gboolean page_get_super_pressed (Page* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 394 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 395 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->super_pressed;
#line 395 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 395 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 3910 "Page.c"
}


static GVariant* _variant_new20 (gboolean value) {
#line 401 "/home/jens/Source/shotwell/src/Page.vala"
	return g_variant_ref_sink (g_variant_new_boolean (value));
#line 3917 "Page.c"
}


void page_set_action_active (Page* self, const gchar* name, gboolean active) {
	GSimpleAction* action = NULL;
	const gchar* _tmp0_;
	GAction* _tmp1_;
	GSimpleAction* _tmp2_;
	GSimpleAction* _tmp3_;
#line 398 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 398 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 399 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 399 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_action (self, _tmp0_);
#line 399 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, g_simple_action_get_type ()) ? ((GSimpleAction*) _tmp1_) : NULL;
#line 399 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ == NULL) {
#line 399 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp1_);
#line 3941 "Page.c"
	}
#line 399 "/home/jens/Source/shotwell/src/Page.vala"
	action = _tmp2_;
#line 400 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = action;
#line 400 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ != NULL) {
#line 3949 "Page.c"
		GSimpleAction* _tmp4_;
		gboolean _tmp5_;
		GVariant* _tmp6_;
#line 401 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = action;
#line 401 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = active;
#line 401 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = _variant_new20 (_tmp5_);
#line 401 "/home/jens/Source/shotwell/src/Page.vala"
		g_simple_action_set_state (_tmp4_, _tmp6_);
#line 401 "/home/jens/Source/shotwell/src/Page.vala"
		_g_variant_unref0 (_tmp6_);
#line 3963 "Page.c"
	}
#line 398 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (action);
#line 3967 "Page.c"
}


static gboolean page_get_modifiers (Page* self, gboolean* ctrl, gboolean* alt, gboolean* shift, gboolean* super) {
	gboolean _vala_ctrl = FALSE;
	gboolean _vala_alt = FALSE;
	gboolean _vala_shift = FALSE;
	gboolean _vala_super = FALSE;
	gboolean result = FALSE;
	AppWindow* _tmp0_;
	AppWindow* _tmp1_;
	GdkWindow* _tmp2_;
	gboolean _tmp3_;
	gint x = 0;
	gint y = 0;
	GdkModifierType mask = 0;
	AppWindow* _tmp4_;
	AppWindow* _tmp5_;
	GdkWindow* _tmp6_;
	GdkDisplay* _tmp7_;
	GdkDeviceManager* _tmp8_;
	GdkDevice* _tmp9_;
	gint _tmp10_ = 0;
	gint _tmp11_ = 0;
	GdkModifierType _tmp12_ = 0;
	GdkModifierType _tmp13_;
	GdkModifierType _tmp14_;
	GdkModifierType _tmp15_;
	GdkModifierType _tmp16_;
#line 405 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 406 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = app_window_get_instance ();
#line 406 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 406 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
#line 406 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_ == NULL;
#line 406 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp1_);
#line 406 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_) {
#line 407 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_ctrl = FALSE;
#line 408 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_alt = FALSE;
#line 409 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_shift = FALSE;
#line 410 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_super = FALSE;
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
		if (ctrl) {
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
			*ctrl = _vala_ctrl;
#line 4025 "Page.c"
		}
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
		if (alt) {
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
			*alt = _vala_alt;
#line 4031 "Page.c"
		}
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
		if (shift) {
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
			*shift = _vala_shift;
#line 4037 "Page.c"
		}
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
		if (super) {
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
			*super = _vala_super;
#line 4043 "Page.c"
		}
#line 412 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 4047 "Page.c"
	}
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = app_window_get_instance ();
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_;
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = gdk_display_get_default ();
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = gdk_display_get_device_manager (_tmp7_);
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = gdk_device_manager_get_client_pointer (_tmp8_);
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	gdk_window_get_device_position (_tmp6_, _tmp9_, &_tmp10_, &_tmp11_, &_tmp12_);
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	x = _tmp10_;
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	y = _tmp11_;
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	mask = _tmp12_;
#line 417 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp5_);
#line 420 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = mask;
#line 420 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_ctrl = (_tmp13_ & GDK_CONTROL_MASK) != 0;
#line 421 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = mask;
#line 421 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_alt = (_tmp14_ & GDK_MOD1_MASK) != 0;
#line 422 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = mask;
#line 422 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_shift = (_tmp15_ & GDK_SHIFT_MASK) != 0;
#line 423 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = mask;
#line 423 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_super = (_tmp16_ & GDK_MOD4_MASK) != 0;
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
	if (ctrl) {
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
		*ctrl = _vala_ctrl;
#line 4093 "Page.c"
	}
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
	if (alt) {
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
		*alt = _vala_alt;
#line 4099 "Page.c"
	}
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
	if (shift) {
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
		*shift = _vala_shift;
#line 4105 "Page.c"
	}
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
	if (super) {
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
		*super = _vala_super;
#line 4111 "Page.c"
	}
#line 425 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 4115 "Page.c"
}


static void page_update_modifiers (Page* self) {
	gboolean ctrl_currently_pressed = FALSE;
	gboolean alt_currently_pressed = FALSE;
	gboolean shift_currently_pressed = FALSE;
	gboolean super_currently_pressed = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_;
	gboolean _tmp11_ = FALSE;
	gboolean _tmp12_;
	gboolean _tmp17_ = FALSE;
	gboolean _tmp18_;
	gboolean _tmp23_ = FALSE;
	gboolean _tmp24_;
	gboolean _tmp29_;
	gboolean _tmp30_;
	gboolean _tmp31_;
	gboolean _tmp32_;
#line 428 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 431 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = page_get_modifiers (self, &_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
#line 431 "/home/jens/Source/shotwell/src/Page.vala"
	ctrl_currently_pressed = _tmp0_;
#line 431 "/home/jens/Source/shotwell/src/Page.vala"
	alt_currently_pressed = _tmp1_;
#line 431 "/home/jens/Source/shotwell/src/Page.vala"
	shift_currently_pressed = _tmp2_;
#line 431 "/home/jens/Source/shotwell/src/Page.vala"
	super_currently_pressed = _tmp3_;
#line 431 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp4_) {
#line 433 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 4157 "Page.c"
	}
#line 436 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = self->priv->ctrl_pressed;
#line 436 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp6_) {
#line 4163 "Page.c"
		gboolean _tmp7_;
#line 436 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = ctrl_currently_pressed;
#line 436 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = !_tmp7_;
#line 4169 "Page.c"
	} else {
#line 436 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = FALSE;
#line 4173 "Page.c"
	}
#line 436 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp5_) {
#line 437 "/home/jens/Source/shotwell/src/Page.vala"
		page_on_ctrl_released (self, NULL);
#line 4179 "Page.c"
	} else {
		gboolean _tmp8_ = FALSE;
		gboolean _tmp9_;
#line 438 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = self->priv->ctrl_pressed;
#line 438 "/home/jens/Source/shotwell/src/Page.vala"
		if (!_tmp9_) {
#line 4187 "Page.c"
			gboolean _tmp10_;
#line 438 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp10_ = ctrl_currently_pressed;
#line 438 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp8_ = _tmp10_;
#line 4193 "Page.c"
		} else {
#line 438 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp8_ = FALSE;
#line 4197 "Page.c"
		}
#line 438 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp8_) {
#line 439 "/home/jens/Source/shotwell/src/Page.vala"
			page_on_ctrl_pressed (self, NULL);
#line 4203 "Page.c"
		}
	}
#line 441 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = self->priv->alt_pressed;
#line 441 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp12_) {
#line 4210 "Page.c"
		gboolean _tmp13_;
#line 441 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = alt_currently_pressed;
#line 441 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = !_tmp13_;
#line 4216 "Page.c"
	} else {
#line 441 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = FALSE;
#line 4220 "Page.c"
	}
#line 441 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp11_) {
#line 442 "/home/jens/Source/shotwell/src/Page.vala"
		page_on_alt_released (self, NULL);
#line 4226 "Page.c"
	} else {
		gboolean _tmp14_ = FALSE;
		gboolean _tmp15_;
#line 443 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp15_ = self->priv->alt_pressed;
#line 443 "/home/jens/Source/shotwell/src/Page.vala"
		if (!_tmp15_) {
#line 4234 "Page.c"
			gboolean _tmp16_;
#line 443 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp16_ = alt_currently_pressed;
#line 443 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = _tmp16_;
#line 4240 "Page.c"
		} else {
#line 443 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = FALSE;
#line 4244 "Page.c"
		}
#line 443 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp14_) {
#line 444 "/home/jens/Source/shotwell/src/Page.vala"
			page_on_alt_pressed (self, NULL);
#line 4250 "Page.c"
		}
	}
#line 446 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp18_ = self->priv->shift_pressed;
#line 446 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp18_) {
#line 4257 "Page.c"
		gboolean _tmp19_;
#line 446 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp19_ = shift_currently_pressed;
#line 446 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp17_ = !_tmp19_;
#line 4263 "Page.c"
	} else {
#line 446 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp17_ = FALSE;
#line 4267 "Page.c"
	}
#line 446 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp17_) {
#line 447 "/home/jens/Source/shotwell/src/Page.vala"
		page_on_shift_released (self, NULL);
#line 4273 "Page.c"
	} else {
		gboolean _tmp20_ = FALSE;
		gboolean _tmp21_;
#line 448 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = self->priv->shift_pressed;
#line 448 "/home/jens/Source/shotwell/src/Page.vala"
		if (!_tmp21_) {
#line 4281 "Page.c"
			gboolean _tmp22_;
#line 448 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp22_ = shift_currently_pressed;
#line 448 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp20_ = _tmp22_;
#line 4287 "Page.c"
		} else {
#line 448 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp20_ = FALSE;
#line 4291 "Page.c"
		}
#line 448 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp20_) {
#line 449 "/home/jens/Source/shotwell/src/Page.vala"
			page_on_shift_pressed (self, NULL);
#line 4297 "Page.c"
		}
	}
#line 451 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp24_ = self->priv->super_pressed;
#line 451 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp24_) {
#line 4304 "Page.c"
		gboolean _tmp25_;
#line 451 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp25_ = super_currently_pressed;
#line 451 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = !_tmp25_;
#line 4310 "Page.c"
	} else {
#line 451 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = FALSE;
#line 4314 "Page.c"
	}
#line 451 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp23_) {
#line 452 "/home/jens/Source/shotwell/src/Page.vala"
		page_on_super_released (self, NULL);
#line 4320 "Page.c"
	} else {
		gboolean _tmp26_ = FALSE;
		gboolean _tmp27_;
#line 453 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp27_ = self->priv->super_pressed;
#line 453 "/home/jens/Source/shotwell/src/Page.vala"
		if (!_tmp27_) {
#line 4328 "Page.c"
			gboolean _tmp28_;
#line 453 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp28_ = super_currently_pressed;
#line 453 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp26_ = _tmp28_;
#line 4334 "Page.c"
		} else {
#line 453 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp26_ = FALSE;
#line 4338 "Page.c"
		}
#line 453 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp26_) {
#line 454 "/home/jens/Source/shotwell/src/Page.vala"
			page_on_super_pressed (self, NULL);
#line 4344 "Page.c"
		}
	}
#line 456 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp29_ = ctrl_currently_pressed;
#line 456 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->ctrl_pressed = _tmp29_;
#line 457 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp30_ = alt_currently_pressed;
#line 457 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->alt_pressed = _tmp30_;
#line 458 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp31_ = shift_currently_pressed;
#line 458 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->shift_pressed = _tmp31_;
#line 459 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp32_ = super_currently_pressed;
#line 459 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->super_pressed = _tmp32_;
#line 4363 "Page.c"
}


PageWindow* page_get_page_window (Page* self) {
	PageWindow* result = NULL;
	GtkWidget* p = NULL;
	GtkContainer* _tmp0_;
	GtkContainer* _tmp1_;
	GtkWidget* _tmp2_;
#line 462 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 463 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
#line 463 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 463 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
#line 463 "/home/jens/Source/shotwell/src/Page.vala"
	p = _tmp2_;
#line 464 "/home/jens/Source/shotwell/src/Page.vala"
	while (TRUE) {
#line 4385 "Page.c"
		GtkWidget* _tmp3_;
		GtkWidget* _tmp4_;
		GtkWidget* _tmp7_;
		GtkContainer* _tmp8_;
		GtkContainer* _tmp9_;
		GtkWidget* _tmp10_;
#line 464 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = p;
#line 464 "/home/jens/Source/shotwell/src/Page.vala"
		if (!(_tmp3_ != NULL)) {
#line 464 "/home/jens/Source/shotwell/src/Page.vala"
			break;
#line 4398 "Page.c"
		}
#line 465 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = p;
#line 465 "/home/jens/Source/shotwell/src/Page.vala"
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, TYPE_PAGE_WINDOW)) {
#line 4404 "Page.c"
			GtkWidget* _tmp5_;
			PageWindow* _tmp6_;
#line 466 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp5_ = p;
#line 466 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PAGE_WINDOW, PageWindow));
#line 466 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp6_;
#line 466 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (p);
#line 466 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 4417 "Page.c"
		}
#line 468 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = p;
#line 468 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = gtk_widget_get_parent (_tmp7_);
#line 468 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _tmp8_;
#line 468 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
#line 468 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (p);
#line 468 "/home/jens/Source/shotwell/src/Page.vala"
		p = _tmp10_;
#line 4431 "Page.c"
	}
#line 471 "/home/jens/Source/shotwell/src/Page.vala"
	result = NULL;
#line 471 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (p);
#line 471 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 4439 "Page.c"
}


CommandManager* page_get_command_manager (Page* self) {
	CommandManager* result = NULL;
	CommandManager* _tmp0_;
#line 474 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 475 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = app_window_get_command_manager ();
#line 475 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 475 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 4454 "Page.c"
}


static void page_real_add_actions (Page* self, GActionMap* map) {
#line 478 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_IS_ACTION_MAP (map));
#line 4461 "Page.c"
}


void page_add_actions (Page* self, GActionMap* map) {
#line 478 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 478 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->add_actions (self, map);
#line 4470 "Page.c"
}


static void page_real_remove_actions (Page* self, GActionMap* map) {
#line 479 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_IS_ACTION_MAP (map));
#line 4477 "Page.c"
}


void page_remove_actions (Page* self, GActionMap* map) {
#line 479 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 479 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->remove_actions (self, map);
#line 4486 "Page.c"
}


static gboolean _variant_get21 (GVariant* value) {
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	return g_variant_get_boolean (value);
#line 4493 "Page.c"
}


static GVariant* _variant_new22 (gboolean value) {
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	return g_variant_ref_sink (g_variant_new_boolean (value));
#line 4500 "Page.c"
}


void page_on_action_toggle (Page* self, GAction* action, GVariant* value) {
	GVariant* new_state = NULL;
	GAction* _tmp0_;
	GVariant* _tmp1_;
	GVariant* _tmp2_;
	gboolean _tmp3_;
	GVariant* _tmp4_;
	GVariant* _tmp5_;
	GAction* _tmp6_;
#line 481 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 481 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_IS_ACTION (action));
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = action;
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_action_get_state (_tmp0_);
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _variant_get21 (_tmp2_);
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _variant_new22 (!_tmp3_);
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_;
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	_g_variant_unref0 (_tmp2_);
#line 482 "/home/jens/Source/shotwell/src/Page.vala"
	new_state = _tmp5_;
#line 483 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = action;
#line 483 "/home/jens/Source/shotwell/src/Page.vala"
	g_action_change_state (_tmp6_, new_state);
#line 481 "/home/jens/Source/shotwell/src/Page.vala"
	_g_variant_unref0 (new_state);
#line 4539 "Page.c"
}


void page_on_action_radio (Page* self, GAction* action, GVariant* value) {
	GAction* _tmp0_;
	GVariant* _tmp1_;
#line 486 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 486 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_IS_ACTION (action));
#line 487 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = action;
#line 487 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = value;
#line 487 "/home/jens/Source/shotwell/src/Page.vala"
	g_action_change_state (_tmp0_, _tmp1_);
#line 4556 "Page.c"
}


static void page_add_ui (Page* self) {
	GeeList* ui_filenames = NULL;
	GeeArrayList* _tmp0_;
	GeeList* _tmp1_;
	GeeList* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
#line 490 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 492 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
#line 492 "/home/jens/Source/shotwell/src/Page.vala"
	ui_filenames = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList);
#line 493 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = ui_filenames;
#line 493 "/home/jens/Source/shotwell/src/Page.vala"
	page_init_collect_ui_filenames (self, _tmp1_);
#line 494 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = ui_filenames;
#line 494 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
#line 494 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_;
#line 494 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ == 0) {
#line 4585 "Page.c"
		gchar* _tmp5_;
		gchar* _tmp6_;
#line 495 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = page_get_page_name (self);
#line 495 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = _tmp5_;
#line 495 "/home/jens/Source/shotwell/src/Page.vala"
		g_message ("Page.vala:495: No UI file specified for %s", _tmp6_);
#line 495 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (_tmp6_);
#line 4596 "Page.c"
	}
	{
		GeeList* _ui_filename_list = NULL;
		GeeList* _tmp7_;
		GeeList* _tmp8_;
		gint _ui_filename_size = 0;
		GeeList* _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
		gint _ui_filename_index = 0;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = ui_filenames;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _g_object_ref0 (_tmp7_);
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_ui_filename_list = _tmp8_;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _ui_filename_list;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = _tmp10_;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_ui_filename_size = _tmp11_;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_ui_filename_index = -1;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		while (TRUE) {
#line 4625 "Page.c"
			gint _tmp12_;
			gint _tmp13_;
			gint _tmp14_;
			gchar* ui_filename = NULL;
			GeeList* _tmp15_;
			gint _tmp16_;
			gpointer _tmp17_;
			const gchar* _tmp18_;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = _ui_filename_index;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			_ui_filename_index = _tmp12_ + 1;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = _ui_filename_index;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = _ui_filename_size;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			if (!(_tmp13_ < _tmp14_)) {
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 4646 "Page.c"
			}
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp15_ = _ui_filename_list;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp16_ = _ui_filename_index;
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp17_ = gee_list_get (_tmp15_, _tmp16_);
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			ui_filename = (gchar*) _tmp17_;
#line 498 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp18_ = ui_filename;
#line 498 "/home/jens/Source/shotwell/src/Page.vala"
			page_init_load_ui (self, _tmp18_);
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
			_g_free0 (ui_filename);
#line 4662 "Page.c"
		}
#line 497 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_ui_filename_list);
#line 4666 "Page.c"
	}
#line 490 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (ui_filenames);
#line 4670 "Page.c"
}


void page_init_toolbar (Page* self, const gchar* path) {
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 503 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 503 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (path != NULL);
#line 504 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = path;
#line 504 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 504 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->toolbar_path);
#line 504 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->toolbar_path = _tmp1_;
#line 4689 "Page.c"
}


static void _page_on_update_actions_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
#line 519 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_update_actions ((Page*) self);
#line 4696 "Page.c"
}


static void _page_on_update_actions_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self) {
#line 520 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_update_actions ((Page*) self);
#line 4703 "Page.c"
}


static void _page_on_update_actions_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self) {
#line 521 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_update_actions ((Page*) self);
#line 4710 "Page.c"
}


static void _page_on_update_actions_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
#line 522 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_update_actions ((Page*) self);
#line 4717 "Page.c"
}


static void page_attach_view_signals (Page* self) {
	gboolean _tmp0_;
	gint selected_count = 0;
	ViewCollection* _tmp1_;
	ViewCollection* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	gint count = 0;
	ViewCollection* _tmp5_;
	ViewCollection* _tmp6_;
	gint _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	gint _tmp11_;
	gint _tmp12_;
	ViewCollection* _tmp13_;
	ViewCollection* _tmp14_;
	ViewCollection* _tmp15_;
	ViewCollection* _tmp16_;
	ViewCollection* _tmp17_;
	ViewCollection* _tmp18_;
	ViewCollection* _tmp19_;
	ViewCollection* _tmp20_;
#line 508 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 509 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->are_actions_attached;
#line 509 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 510 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 4753 "Page.c"
	}
#line 513 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_view (self);
#line 513 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 513 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = view_collection_get_selected_count (_tmp2_);
#line 513 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_;
#line 513 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp2_);
#line 513 "/home/jens/Source/shotwell/src/Page.vala"
	selected_count = _tmp4_;
#line 514 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = page_get_view (self);
#line 514 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = _tmp5_;
#line 514 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
#line 514 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = _tmp7_;
#line 514 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp6_);
#line 514 "/home/jens/Source/shotwell/src/Page.vala"
	count = _tmp8_;
#line 515 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = selected_count;
#line 515 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = count;
#line 515 "/home/jens/Source/shotwell/src/Page.vala"
	page_init_actions (self, _tmp9_, _tmp10_);
#line 516 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = selected_count;
#line 516 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = count;
#line 516 "/home/jens/Source/shotwell/src/Page.vala"
	page_update_actions (self, _tmp11_, _tmp12_);
#line 519 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = page_get_view (self);
#line 519 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = _tmp13_;
#line 519 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp14_, "items-state-changed", (GCallback) _page_on_update_actions_view_collection_items_state_changed, self, 0);
#line 519 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp14_);
#line 520 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = page_get_view (self);
#line 520 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = _tmp15_;
#line 520 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp16_, "selection-group-altered", (GCallback) _page_on_update_actions_view_collection_selection_group_altered, self, 0);
#line 520 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp16_);
#line 521 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = page_get_view (self);
#line 521 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp18_ = _tmp17_;
#line 521 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp18_, "items-visibility-changed", (GCallback) _page_on_update_actions_view_collection_items_visibility_changed, self, 0);
#line 521 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp18_);
#line 522 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp19_ = page_get_view (self);
#line 522 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp20_ = _tmp19_;
#line 522 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _page_on_update_actions_data_collection_contents_altered, self, 0);
#line 522 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp20_);
#line 524 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->are_actions_attached = TRUE;
#line 4825 "Page.c"
}


static void page_detach_view_signals (Page* self) {
	gboolean _tmp0_;
	ViewCollection* _tmp1_;
	ViewCollection* _tmp2_;
	guint _tmp3_;
	ViewCollection* _tmp4_;
	ViewCollection* _tmp5_;
	guint _tmp6_;
	ViewCollection* _tmp7_;
	ViewCollection* _tmp8_;
	guint _tmp9_;
	ViewCollection* _tmp10_;
	ViewCollection* _tmp11_;
	guint _tmp12_;
#line 528 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 529 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->are_actions_attached;
#line 529 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp0_) {
#line 530 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 4851 "Page.c"
	}
#line 532 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_view (self);
#line 532 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 532 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("items-state-changed", TYPE_VIEW_COLLECTION, &_tmp3_, NULL, FALSE);
#line 532 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _page_on_update_actions_view_collection_items_state_changed, self);
#line 532 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp2_);
#line 533 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = page_get_view (self);
#line 533 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_;
#line 533 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("selection-group-altered", TYPE_VIEW_COLLECTION, &_tmp6_, NULL, FALSE);
#line 533 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _page_on_update_actions_view_collection_selection_group_altered, self);
#line 533 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp5_);
#line 534 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = page_get_view (self);
#line 534 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = _tmp7_;
#line 534 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("items-visibility-changed", TYPE_VIEW_COLLECTION, &_tmp9_, NULL, FALSE);
#line 534 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _page_on_update_actions_view_collection_items_visibility_changed, self);
#line 534 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp8_);
#line 535 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = page_get_view (self);
#line 535 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = _tmp10_;
#line 535 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp12_, NULL, FALSE);
#line 535 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _page_on_update_actions_data_collection_contents_altered, self);
#line 535 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp11_);
#line 537 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->are_actions_attached = FALSE;
#line 4895 "Page.c"
}


static void _page_on_update_actions_on_idle_one_shot_callback (gpointer self) {
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_update_actions_on_idle ((Page*) self);
#line 4902 "Page.c"
}


static void page_on_update_actions (Page* self) {
	OneShotScheduler* _tmp0_;
	OneShotScheduler* _tmp6_;
#line 540 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 541 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->update_actions_scheduler;
#line 541 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ == NULL) {
#line 4915 "Page.c"
		gchar* _tmp1_;
		gchar* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		OneShotScheduler* _tmp5_;
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = page_get_page_name (self);
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = _tmp1_;
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = g_strdup_printf ("Update actions scheduler for %s", _tmp2_);
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _tmp3_;
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = one_shot_scheduler_new (_tmp4_, _page_on_update_actions_on_idle_one_shot_callback, self);
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		_one_shot_scheduler_unref0 (self->priv->update_actions_scheduler);
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->update_actions_scheduler = _tmp5_;
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (_tmp4_);
#line 542 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (_tmp2_);
#line 4939 "Page.c"
	}
#line 547 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = self->priv->update_actions_scheduler;
#line 547 "/home/jens/Source/shotwell/src/Page.vala"
	one_shot_scheduler_at_priority_idle (_tmp6_, G_PRIORITY_LOW);
#line 4945 "Page.c"
}


static void page_on_update_actions_on_idle (Page* self) {
	gboolean _tmp0_;
	gboolean _tmp1_;
	ViewCollection* _tmp2_;
	ViewCollection* _tmp3_;
	gint _tmp4_;
	ViewCollection* _tmp5_;
	ViewCollection* _tmp6_;
	gint _tmp7_;
#line 550 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 551 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->is_destroyed;
#line 551 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 552 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 4966 "Page.c"
	}
#line 554 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->in_view;
#line 554 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp1_) {
#line 555 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 4974 "Page.c"
	}
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_get_view (self);
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = view_collection_get_selected_count (_tmp3_);
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = page_get_view (self);
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = _tmp5_;
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	page_update_actions (self, _tmp4_, _tmp7_);
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp6_);
#line 557 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp3_);
#line 4994 "Page.c"
}


static void page_init_load_ui (Page* self, const gchar* ui_filename) {
	gchar* ui_resource = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	GError * _inner_error_ = NULL;
#line 560 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 560 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (ui_filename != NULL);
#line 561 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = ui_filename;
#line 561 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = resources_get_ui (_tmp0_);
#line 561 "/home/jens/Source/shotwell/src/Page.vala"
	ui_resource = _tmp1_;
#line 5013 "Page.c"
	{
		GtkBuilder* _tmp2_;
#line 563 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->builder;
#line 563 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_builder_add_from_resource (_tmp2_, ui_resource, &_inner_error_);
#line 563 "/home/jens/Source/shotwell/src/Page.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 5022 "Page.c"
			goto __catch266_g_error;
		}
#line 564 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->menubar_injected = FALSE;
#line 5027 "Page.c"
	}
	goto __finally266;
	__catch266_g_error:
	{
		GError* err = NULL;
		GError* _tmp3_;
		const gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		Application* _tmp7_;
		Application* _tmp8_;
#line 562 "/home/jens/Source/shotwell/src/Page.vala"
		err = _inner_error_;
#line 562 "/home/jens/Source/shotwell/src/Page.vala"
		_inner_error_ = NULL;
#line 566 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = err;
#line 566 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _tmp3_->message;
#line 566 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = g_strdup_printf ("Error loading UI resource %s: %s", ui_resource, _tmp4_);
#line 566 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = _tmp5_;
#line 566 "/home/jens/Source/shotwell/src/Page.vala"
		app_window_error_message (_tmp6_, NULL);
#line 566 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (_tmp6_);
#line 568 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = application_get_instance ();
#line 568 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _tmp7_;
#line 568 "/home/jens/Source/shotwell/src/Page.vala"
		application_panic (_tmp8_);
#line 568 "/home/jens/Source/shotwell/src/Page.vala"
		_application_unref0 (_tmp8_);
#line 562 "/home/jens/Source/shotwell/src/Page.vala"
		_g_error_free0 (err);
#line 5065 "Page.c"
	}
	__finally266:
#line 562 "/home/jens/Source/shotwell/src/Page.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 562 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (ui_resource);
#line 562 "/home/jens/Source/shotwell/src/Page.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 562 "/home/jens/Source/shotwell/src/Page.vala"
		g_clear_error (&_inner_error_);
#line 562 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 5078 "Page.c"
	}
#line 560 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (ui_resource);
#line 5082 "Page.c"
}


static void page_real_init_collect_ui_filenames (Page* self, GeeList* ui_filenames) {
#line 575 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GEE_IS_LIST (ui_filenames));
#line 5089 "Page.c"
}


void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames) {
#line 575 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 575 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->init_collect_ui_filenames (self, ui_filenames);
#line 5098 "Page.c"
}


static InjectionGroup** page_real_init_collect_injection_groups (Page* self, int* result_length1) {
	InjectionGroup** result = NULL;
	InjectionGroup** _tmp0_;
	InjectionGroup** _tmp1_;
	gint _tmp1__length1;
#line 581 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = g_new0 (InjectionGroup*, 0 + 1);
#line 581 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 581 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1__length1 = 0;
#line 581 "/home/jens/Source/shotwell/src/Page.vala"
	if (result_length1) {
#line 581 "/home/jens/Source/shotwell/src/Page.vala"
		*result_length1 = _tmp1__length1;
#line 5117 "Page.c"
	}
#line 581 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 581 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5123 "Page.c"
}


InjectionGroup** page_init_collect_injection_groups (Page* self, int* result_length1) {
#line 580 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 580 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->init_collect_injection_groups (self, result_length1);
#line 5132 "Page.c"
}


static void page_real_init_actions (Page* self, gint selected_count, gint count) {
}


void page_init_actions (Page* self, gint selected_count, gint count) {
#line 586 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 586 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->init_actions (self, selected_count, count);
#line 5145 "Page.c"
}


static void page_real_update_actions (Page* self, gint selected_count, gint count) {
}


void page_update_actions (Page* self, gint selected_count, gint count) {
#line 592 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 592 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->update_actions (self, selected_count, count);
#line 5158 "Page.c"
}


static void _page_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
#line 607 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_drag_begin ((Page*) self, context);
#line 5165 "Page.c"
}


static void _page_on_drag_data_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self) {
#line 608 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_drag_data_get ((Page*) self, context, selection_data, info, time_);
#line 5172 "Page.c"
}


static void _page_on_drag_data_delete_gtk_widget_drag_data_delete (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
#line 609 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_drag_data_delete ((Page*) self, context);
#line 5179 "Page.c"
}


static void _page_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
#line 610 "/home/jens/Source/shotwell/src/Page.vala"
	page_on_drag_end ((Page*) self, context);
#line 5186 "Page.c"
}


static gboolean _page_on_drag_failed_gtk_widget_drag_failed (GtkWidget* _sender, GdkDragContext* context, GtkDragResult _result_, gpointer self) {
	gboolean result;
	result = page_on_drag_failed ((Page*) self, context, _result_);
#line 611 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5195 "Page.c"
}


void page_enable_drag_source (Page* self, GdkDragAction actions, GtkTargetEntry* source_target_entries, int source_target_entries_length1) {
	gboolean _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	GtkTargetEntry* _tmp3_;
	gint _tmp3__length1;
	GdkDragAction _tmp4_;
	GtkWidget* _tmp5_;
	GtkWidget* _tmp6_;
	GtkWidget* _tmp7_;
	GtkWidget* _tmp8_;
	GtkWidget* _tmp9_;
#line 597 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 598 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->dnd_enabled;
#line 598 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 599 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 5219 "Page.c"
	}
#line 601 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->event_source;
#line 601 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp1_ != NULL, "event_source != null");
#line 603 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->event_source;
#line 603 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = source_target_entries;
#line 603 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3__length1 = source_target_entries_length1;
#line 603 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = actions;
#line 603 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_drag_source_set (_tmp2_, GDK_BUTTON1_MASK, _tmp3_, _tmp3__length1, _tmp4_);
#line 607 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = self->priv->event_source;
#line 607 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp5_, "drag-begin", (GCallback) _page_on_drag_begin_gtk_widget_drag_begin, self, 0);
#line 608 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = self->priv->event_source;
#line 608 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp6_, "drag-data-get", (GCallback) _page_on_drag_data_get_gtk_widget_drag_data_get, self, 0);
#line 609 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = self->priv->event_source;
#line 609 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp7_, "drag-data-delete", (GCallback) _page_on_drag_data_delete_gtk_widget_drag_data_delete, self, 0);
#line 610 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = self->priv->event_source;
#line 610 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp8_, "drag-end", (GCallback) _page_on_drag_end_gtk_widget_drag_end, self, 0);
#line 611 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = self->priv->event_source;
#line 611 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp9_, "drag-failed", (GCallback) _page_on_drag_failed_gtk_widget_drag_failed, self, 0);
#line 613 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->dnd_enabled = TRUE;
#line 5257 "Page.c"
}


void page_disable_drag_source (Page* self) {
	gboolean _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	guint _tmp3_;
	GtkWidget* _tmp4_;
	guint _tmp5_;
	GtkWidget* _tmp6_;
	guint _tmp7_;
	GtkWidget* _tmp8_;
	guint _tmp9_;
	GtkWidget* _tmp10_;
	guint _tmp11_;
	GtkWidget* _tmp12_;
#line 616 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 617 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->dnd_enabled;
#line 617 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp0_) {
#line 618 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 5283 "Page.c"
	}
#line 620 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->event_source;
#line 620 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp1_ != NULL, "event_source != null");
#line 622 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->event_source;
#line 622 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("drag-begin", gtk_widget_get_type (), &_tmp3_, NULL, FALSE);
#line 622 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _page_on_drag_begin_gtk_widget_drag_begin, self);
#line 623 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->event_source;
#line 623 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("drag-data-get", gtk_widget_get_type (), &_tmp5_, NULL, FALSE);
#line 623 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _page_on_drag_data_get_gtk_widget_drag_data_get, self);
#line 624 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = self->priv->event_source;
#line 624 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("drag-data-delete", gtk_widget_get_type (), &_tmp7_, NULL, FALSE);
#line 624 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _page_on_drag_data_delete_gtk_widget_drag_data_delete, self);
#line 625 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = self->priv->event_source;
#line 625 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("drag-end", gtk_widget_get_type (), &_tmp9_, NULL, FALSE);
#line 625 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _page_on_drag_end_gtk_widget_drag_end, self);
#line 626 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = self->priv->event_source;
#line 626 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("drag-failed", gtk_widget_get_type (), &_tmp11_, NULL, FALSE);
#line 626 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _page_on_drag_failed_gtk_widget_drag_failed, self);
#line 627 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = self->priv->event_source;
#line 627 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_drag_source_unset (_tmp12_);
#line 629 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->dnd_enabled = FALSE;
#line 5325 "Page.c"
}


gboolean page_is_dnd_enabled (Page* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 632 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 633 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->dnd_enabled;
#line 633 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 633 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5340 "Page.c"
}


static void page_on_drag_begin (Page* self, GdkDragContext* context) {
	GdkDragContext* _tmp0_;
#line 636 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 636 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
#line 637 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = context;
#line 637 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-begin", _tmp0_);
#line 5354 "Page.c"
}


static void page_on_drag_data_get (Page* self, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time) {
	GdkDragContext* _tmp0_;
	GtkSelectionData* _tmp1_;
	guint _tmp2_;
	guint _tmp3_;
#line 640 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 640 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
#line 640 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (selection_data != NULL);
#line 642 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = context;
#line 642 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = selection_data;
#line 642 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = info;
#line 642 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = time;
#line 642 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-data-get", _tmp0_, _tmp1_, _tmp2_, _tmp3_);
#line 5379 "Page.c"
}


static void page_on_drag_data_delete (Page* self, GdkDragContext* context) {
	GdkDragContext* _tmp0_;
#line 645 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 645 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
#line 646 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = context;
#line 646 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-data-delete", _tmp0_);
#line 5393 "Page.c"
}


static void page_on_drag_end (Page* self, GdkDragContext* context) {
	GdkDragContext* _tmp0_;
#line 649 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 649 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
#line 650 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = context;
#line 650 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-end", _tmp0_);
#line 5407 "Page.c"
}


static gboolean page_real_source_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result) {
	gboolean result = FALSE;
#line 657 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
#line 658 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 658 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5419 "Page.c"
}


gboolean page_source_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result) {
#line 657 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 657 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->source_drag_failed (self, context, drag_result);
#line 5428 "Page.c"
}


static gboolean page_on_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result) {
	gboolean result = FALSE;
	GdkDragContext* _tmp0_;
	GtkDragResult _tmp1_;
	gboolean _tmp2_;
#line 661 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 661 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
#line 662 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = context;
#line 662 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = drag_result;
#line 662 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_source_drag_failed (self, _tmp0_, _tmp1_);
#line 662 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp2_;
#line 662 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5451 "Page.c"
}


gboolean page_get_event_source_pointer (Page* self, gint* x, gint* y, GdkModifierType* mask) {
	gint _vala_x = 0;
	gint _vala_y = 0;
	GdkModifierType _vala_mask = 0;
	gboolean result = FALSE;
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	GdkWindow* _tmp2_;
	GdkDisplay* _tmp3_;
	GdkDeviceManager* _tmp4_;
	GdkDevice* _tmp5_;
	gint _tmp6_ = 0;
	gint _tmp7_ = 0;
	GdkModifierType _tmp8_ = 0;
	gboolean _tmp9_ = FALSE;
	GdkPoint _tmp10_;
	gint _tmp11_;
	gint _tmp14_;
	GdkPoint _tmp15_;
	gint _tmp16_;
	gint _tmp17_;
	gint _tmp19_;
	GdkPoint _tmp20_;
	gint _tmp21_;
	gint _tmp22_;
#line 669 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 670 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->event_source;
#line 670 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ == NULL) {
#line 671 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_x = 0;
#line 672 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_y = 0;
#line 673 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_mask = 0;
#line 675 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 675 "/home/jens/Source/shotwell/src/Page.vala"
		if (x) {
#line 675 "/home/jens/Source/shotwell/src/Page.vala"
			*x = _vala_x;
#line 5498 "Page.c"
		}
#line 675 "/home/jens/Source/shotwell/src/Page.vala"
		if (y) {
#line 675 "/home/jens/Source/shotwell/src/Page.vala"
			*y = _vala_y;
#line 5504 "Page.c"
		}
#line 675 "/home/jens/Source/shotwell/src/Page.vala"
		if (mask) {
#line 675 "/home/jens/Source/shotwell/src/Page.vala"
			*mask = _vala_mask;
#line 5510 "Page.c"
		}
#line 675 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 5514 "Page.c"
	}
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->event_source;
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = gtk_widget_get_window (_tmp1_);
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = gdk_display_get_default ();
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = gdk_display_get_device_manager (_tmp3_);
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = gdk_device_manager_get_client_pointer (_tmp4_);
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	gdk_window_get_device_position (_tmp2_, _tmp5_, &_tmp6_, &_tmp7_, &_tmp8_);
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_x = _tmp6_;
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_y = _tmp7_;
#line 678 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_mask = _tmp8_;
#line 681 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = self->priv->last_down;
#line 681 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = _tmp10_.x;
#line 681 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp11_ < 0) {
#line 681 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = TRUE;
#line 5542 "Page.c"
	} else {
		GdkPoint _tmp12_;
		gint _tmp13_;
#line 681 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = self->priv->last_down;
#line 681 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = _tmp12_.y;
#line 681 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _tmp13_ < 0;
#line 5552 "Page.c"
	}
#line 681 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp9_) {
#line 682 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 682 "/home/jens/Source/shotwell/src/Page.vala"
		if (x) {
#line 682 "/home/jens/Source/shotwell/src/Page.vala"
			*x = _vala_x;
#line 5562 "Page.c"
		}
#line 682 "/home/jens/Source/shotwell/src/Page.vala"
		if (y) {
#line 682 "/home/jens/Source/shotwell/src/Page.vala"
			*y = _vala_y;
#line 5568 "Page.c"
		}
#line 682 "/home/jens/Source/shotwell/src/Page.vala"
		if (mask) {
#line 682 "/home/jens/Source/shotwell/src/Page.vala"
			*mask = _vala_mask;
#line 5574 "Page.c"
		}
#line 682 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 5578 "Page.c"
	}
#line 688 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = _vala_x;
#line 688 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = self->priv->last_down;
#line 688 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = _tmp15_.x;
#line 688 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = abs (_tmp14_ - _tmp16_);
#line 688 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp17_ >= 0x7FFF) {
#line 5590 "Page.c"
		gint _tmp18_;
#line 689 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = _vala_x;
#line 689 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_x = _tmp18_ + 0xFFFF;
#line 5596 "Page.c"
	}
#line 691 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp19_ = _vala_y;
#line 691 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp20_ = self->priv->last_down;
#line 691 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp21_ = _tmp20_.y;
#line 691 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp22_ = abs (_tmp19_ - _tmp21_);
#line 691 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp22_ >= 0x7FFF) {
#line 5608 "Page.c"
		gint _tmp23_;
#line 692 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = _vala_y;
#line 692 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_y = _tmp23_ + 0xFFFF;
#line 5614 "Page.c"
	}
#line 694 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 694 "/home/jens/Source/shotwell/src/Page.vala"
	if (x) {
#line 694 "/home/jens/Source/shotwell/src/Page.vala"
		*x = _vala_x;
#line 5622 "Page.c"
	}
#line 694 "/home/jens/Source/shotwell/src/Page.vala"
	if (y) {
#line 694 "/home/jens/Source/shotwell/src/Page.vala"
		*y = _vala_y;
#line 5628 "Page.c"
	}
#line 694 "/home/jens/Source/shotwell/src/Page.vala"
	if (mask) {
#line 694 "/home/jens/Source/shotwell/src/Page.vala"
		*mask = _vala_mask;
#line 5634 "Page.c"
	}
#line 694 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5638 "Page.c"
}


static gboolean page_real_on_left_click (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
#line 697 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 698 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 698 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5650 "Page.c"
}


gboolean page_on_left_click (Page* self, GdkEventButton* event) {
#line 697 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 697 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_left_click (self, event);
#line 5659 "Page.c"
}


static gboolean page_real_on_middle_click (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
#line 701 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 702 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 702 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5671 "Page.c"
}


gboolean page_on_middle_click (Page* self, GdkEventButton* event) {
#line 701 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 701 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_middle_click (self, event);
#line 5680 "Page.c"
}


static gboolean page_real_on_right_click (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
#line 705 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 706 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 706 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5692 "Page.c"
}


gboolean page_on_right_click (Page* self, GdkEventButton* event) {
#line 705 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 705 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_right_click (self, event);
#line 5701 "Page.c"
}


static gboolean page_real_on_left_released (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
#line 709 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 710 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 710 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5713 "Page.c"
}


gboolean page_on_left_released (Page* self, GdkEventButton* event) {
#line 709 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 709 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_left_released (self, event);
#line 5722 "Page.c"
}


static gboolean page_real_on_middle_released (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
#line 713 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 714 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 714 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5734 "Page.c"
}


gboolean page_on_middle_released (Page* self, GdkEventButton* event) {
#line 713 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 713 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_middle_released (self, event);
#line 5743 "Page.c"
}


static gboolean page_real_on_right_released (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
#line 717 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 718 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 718 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5755 "Page.c"
}


gboolean page_on_right_released (Page* self, GdkEventButton* event) {
#line 717 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 717 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_right_released (self, event);
#line 5764 "Page.c"
}


static gboolean page_on_button_pressed_internal (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
	GdkEventButton* _tmp0_;
	guint _tmp1_;
#line 721 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 721 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 722 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = event;
#line 722 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_->button;
#line 722 "/home/jens/Source/shotwell/src/Page.vala"
	switch (_tmp1_) {
#line 722 "/home/jens/Source/shotwell/src/Page.vala"
		case 1:
#line 5784 "Page.c"
		{
			GtkWidget* _tmp2_;
			GdkEventButton* _tmp4_;
			gdouble _tmp5_;
			GdkEventButton* _tmp6_;
			gdouble _tmp7_;
			GdkEventButton* _tmp8_;
			gboolean _tmp9_;
#line 724 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp2_ = self->priv->event_source;
#line 724 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp2_ != NULL) {
#line 5797 "Page.c"
				GtkWidget* _tmp3_;
#line 725 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp3_ = self->priv->event_source;
#line 725 "/home/jens/Source/shotwell/src/Page.vala"
				gtk_widget_grab_focus (_tmp3_);
#line 5803 "Page.c"
			}
#line 728 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp4_ = event;
#line 728 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp5_ = _tmp4_->x;
#line 728 "/home/jens/Source/shotwell/src/Page.vala"
			self->priv->last_down.x = (gint) _tmp5_;
#line 729 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp6_ = event;
#line 729 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp7_ = _tmp6_->y;
#line 729 "/home/jens/Source/shotwell/src/Page.vala"
			self->priv->last_down.y = (gint) _tmp7_;
#line 731 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp8_ = event;
#line 731 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp9_ = page_on_left_click (self, _tmp8_);
#line 731 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp9_;
#line 731 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 5825 "Page.c"
		}
#line 722 "/home/jens/Source/shotwell/src/Page.vala"
		case 2:
#line 5829 "Page.c"
		{
			GdkEventButton* _tmp10_;
			gboolean _tmp11_;
#line 734 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp10_ = event;
#line 734 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp11_ = page_on_middle_click (self, _tmp10_);
#line 734 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp11_;
#line 734 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 5841 "Page.c"
		}
#line 722 "/home/jens/Source/shotwell/src/Page.vala"
		case 3:
#line 5845 "Page.c"
		{
			GdkEventButton* _tmp12_;
			gboolean _tmp13_;
#line 737 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = event;
#line 737 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = page_on_right_click (self, _tmp12_);
#line 737 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp13_;
#line 737 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 5857 "Page.c"
		}
		default:
		{
#line 740 "/home/jens/Source/shotwell/src/Page.vala"
			result = FALSE;
#line 740 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 5865 "Page.c"
		}
	}
}


static gboolean page_on_button_released_internal (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
	GdkEventButton* _tmp0_;
	guint _tmp1_;
#line 744 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 744 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 745 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = event;
#line 745 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_->button;
#line 745 "/home/jens/Source/shotwell/src/Page.vala"
	switch (_tmp1_) {
#line 745 "/home/jens/Source/shotwell/src/Page.vala"
		case 1:
#line 5887 "Page.c"
		{
			GdkPoint _tmp2_ = {0};
			GdkEventButton* _tmp3_;
			gboolean _tmp4_;
#line 748 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp2_.x = -1;
#line 748 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp2_.y = -1;
#line 748 "/home/jens/Source/shotwell/src/Page.vala"
			self->priv->last_down = _tmp2_;
#line 750 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp3_ = event;
#line 750 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp4_ = page_on_left_released (self, _tmp3_);
#line 750 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp4_;
#line 750 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 5906 "Page.c"
		}
#line 745 "/home/jens/Source/shotwell/src/Page.vala"
		case 2:
#line 5910 "Page.c"
		{
			GdkEventButton* _tmp5_;
			gboolean _tmp6_;
#line 753 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp5_ = event;
#line 753 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp6_ = page_on_middle_released (self, _tmp5_);
#line 753 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp6_;
#line 753 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 5922 "Page.c"
		}
#line 745 "/home/jens/Source/shotwell/src/Page.vala"
		case 3:
#line 5926 "Page.c"
		{
			GdkEventButton* _tmp7_;
			gboolean _tmp8_;
#line 756 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp7_ = event;
#line 756 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp8_ = page_on_right_released (self, _tmp7_);
#line 756 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp8_;
#line 756 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 5938 "Page.c"
		}
		default:
		{
#line 759 "/home/jens/Source/shotwell/src/Page.vala"
			result = FALSE;
#line 759 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 5946 "Page.c"
		}
	}
}


static gboolean page_real_on_ctrl_pressed (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 764 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 764 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5958 "Page.c"
}


gboolean page_on_ctrl_pressed (Page* self, GdkEventKey* event) {
#line 763 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 763 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_ctrl_pressed (self, event);
#line 5967 "Page.c"
}


static gboolean page_real_on_ctrl_released (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 768 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 768 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5977 "Page.c"
}


gboolean page_on_ctrl_released (Page* self, GdkEventKey* event) {
#line 767 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 767 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_ctrl_released (self, event);
#line 5986 "Page.c"
}


static gboolean page_real_on_alt_pressed (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 772 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 772 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 5996 "Page.c"
}


gboolean page_on_alt_pressed (Page* self, GdkEventKey* event) {
#line 771 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 771 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_alt_pressed (self, event);
#line 6005 "Page.c"
}


static gboolean page_real_on_alt_released (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 776 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 776 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6015 "Page.c"
}


gboolean page_on_alt_released (Page* self, GdkEventKey* event) {
#line 775 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 775 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_alt_released (self, event);
#line 6024 "Page.c"
}


static gboolean page_real_on_shift_pressed (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 780 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 780 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6034 "Page.c"
}


gboolean page_on_shift_pressed (Page* self, GdkEventKey* event) {
#line 779 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 779 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_shift_pressed (self, event);
#line 6043 "Page.c"
}


static gboolean page_real_on_shift_released (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 784 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 784 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6053 "Page.c"
}


gboolean page_on_shift_released (Page* self, GdkEventKey* event) {
#line 783 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 783 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_shift_released (self, event);
#line 6062 "Page.c"
}


static gboolean page_real_on_super_pressed (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 788 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 788 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6072 "Page.c"
}


gboolean page_on_super_pressed (Page* self, GdkEventKey* event) {
#line 787 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 787 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_super_pressed (self, event);
#line 6081 "Page.c"
}


static gboolean page_real_on_super_released (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 792 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 792 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6091 "Page.c"
}


gboolean page_on_super_released (Page* self, GdkEventKey* event) {
#line 791 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 791 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_super_released (self, event);
#line 6100 "Page.c"
}


static gboolean page_real_on_app_key_pressed (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 795 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 796 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 796 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6112 "Page.c"
}


gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event) {
#line 795 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 795 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_app_key_pressed (self, event);
#line 6121 "Page.c"
}


static gboolean page_real_on_app_key_released (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
#line 799 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 800 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 800 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6133 "Page.c"
}


gboolean page_on_app_key_released (Page* self, GdkEventKey* event) {
#line 799 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 799 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_app_key_released (self, event);
#line 6142 "Page.c"
}


gboolean page_notify_app_key_pressed (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
	gboolean ctrl_currently_pressed = FALSE;
	gboolean alt_currently_pressed = FALSE;
	gboolean shift_currently_pressed = FALSE;
	gboolean super_currently_pressed = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	GdkEventKey* _tmp4_;
	guint _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	GQuark _tmp9_ = 0U;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label0 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label1 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label2 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label3 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label4 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label5 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label6 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label7 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label8 = 0;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label9 = 0;
#line 6181 "Page.c"
	GdkEventKey* _tmp30_;
	gboolean _tmp31_;
#line 803 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 803 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 806 "/home/jens/Source/shotwell/src/Page.vala"
	page_get_modifiers (self, &_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
#line 806 "/home/jens/Source/shotwell/src/Page.vala"
	ctrl_currently_pressed = _tmp0_;
#line 806 "/home/jens/Source/shotwell/src/Page.vala"
	alt_currently_pressed = _tmp1_;
#line 806 "/home/jens/Source/shotwell/src/Page.vala"
	shift_currently_pressed = _tmp2_;
#line 806 "/home/jens/Source/shotwell/src/Page.vala"
	super_currently_pressed = _tmp3_;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = event;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_->keyval;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = gdk_keyval_name (_tmp5_);
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = _tmp6_;
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = (NULL == _tmp7_) ? 0 : g_quark_from_string (_tmp7_);
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
	if ((_tmp9_ == ((0 != _tmp8_label0) ? _tmp8_label0 : (_tmp8_label0 = g_quark_from_static_string ("Control_L")))) || (_tmp9_ == ((0 != _tmp8_label1) ? _tmp8_label1 : (_tmp8_label1 = g_quark_from_static_string ("Control_R"))))) {
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 6212 "Page.c"
			default:
			{
				gboolean _tmp10_ = FALSE;
				gboolean _tmp11_;
				GdkEventKey* _tmp13_;
				gboolean _tmp14_;
#line 812 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp11_ = ctrl_currently_pressed;
#line 812 "/home/jens/Source/shotwell/src/Page.vala"
				if (!_tmp11_) {
#line 812 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp10_ = TRUE;
#line 6225 "Page.c"
				} else {
					gboolean _tmp12_;
#line 812 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp12_ = self->priv->ctrl_pressed;
#line 812 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp10_ = _tmp12_;
#line 6232 "Page.c"
				}
#line 812 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp10_) {
#line 813 "/home/jens/Source/shotwell/src/Page.vala"
					result = FALSE;
#line 813 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 6240 "Page.c"
				}
#line 815 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->ctrl_pressed = TRUE;
#line 817 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp13_ = event;
#line 817 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp14_ = page_on_ctrl_pressed (self, _tmp13_);
#line 817 "/home/jens/Source/shotwell/src/Page.vala"
				result = _tmp14_;
#line 817 "/home/jens/Source/shotwell/src/Page.vala"
				return result;
#line 6252 "Page.c"
			}
		}
	} else if ((((_tmp9_ == ((0 != _tmp8_label2) ? _tmp8_label2 : (_tmp8_label2 = g_quark_from_static_string ("Meta_L")))) || (_tmp9_ == ((0 != _tmp8_label3) ? _tmp8_label3 : (_tmp8_label3 = g_quark_from_static_string ("Meta_R"))))) || (_tmp9_ == ((0 != _tmp8_label4) ? _tmp8_label4 : (_tmp8_label4 = g_quark_from_static_string ("Alt_L"))))) || (_tmp9_ == ((0 != _tmp8_label5) ? _tmp8_label5 : (_tmp8_label5 = g_quark_from_static_string ("Alt_R"))))) {
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 6258 "Page.c"
			default:
			{
				gboolean _tmp15_ = FALSE;
				gboolean _tmp16_;
				GdkEventKey* _tmp18_;
				gboolean _tmp19_;
#line 823 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp16_ = alt_currently_pressed;
#line 823 "/home/jens/Source/shotwell/src/Page.vala"
				if (!_tmp16_) {
#line 823 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp15_ = TRUE;
#line 6271 "Page.c"
				} else {
					gboolean _tmp17_;
#line 823 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp17_ = self->priv->alt_pressed;
#line 823 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp15_ = _tmp17_;
#line 6278 "Page.c"
				}
#line 823 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp15_) {
#line 824 "/home/jens/Source/shotwell/src/Page.vala"
					result = FALSE;
#line 824 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 6286 "Page.c"
				}
#line 826 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->alt_pressed = TRUE;
#line 828 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp18_ = event;
#line 828 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp19_ = page_on_alt_pressed (self, _tmp18_);
#line 828 "/home/jens/Source/shotwell/src/Page.vala"
				result = _tmp19_;
#line 828 "/home/jens/Source/shotwell/src/Page.vala"
				return result;
#line 6298 "Page.c"
			}
		}
	} else if ((_tmp9_ == ((0 != _tmp8_label6) ? _tmp8_label6 : (_tmp8_label6 = g_quark_from_static_string ("Shift_L")))) || (_tmp9_ == ((0 != _tmp8_label7) ? _tmp8_label7 : (_tmp8_label7 = g_quark_from_static_string ("Shift_R"))))) {
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 6304 "Page.c"
			default:
			{
				gboolean _tmp20_ = FALSE;
				gboolean _tmp21_;
				GdkEventKey* _tmp23_;
				gboolean _tmp24_;
#line 832 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp21_ = shift_currently_pressed;
#line 832 "/home/jens/Source/shotwell/src/Page.vala"
				if (!_tmp21_) {
#line 832 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp20_ = TRUE;
#line 6317 "Page.c"
				} else {
					gboolean _tmp22_;
#line 832 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp22_ = self->priv->shift_pressed;
#line 832 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp20_ = _tmp22_;
#line 6324 "Page.c"
				}
#line 832 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp20_) {
#line 833 "/home/jens/Source/shotwell/src/Page.vala"
					result = FALSE;
#line 833 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 6332 "Page.c"
				}
#line 835 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->shift_pressed = TRUE;
#line 837 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp23_ = event;
#line 837 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp24_ = page_on_shift_pressed (self, _tmp23_);
#line 837 "/home/jens/Source/shotwell/src/Page.vala"
				result = _tmp24_;
#line 837 "/home/jens/Source/shotwell/src/Page.vala"
				return result;
#line 6344 "Page.c"
			}
		}
	} else if ((_tmp9_ == ((0 != _tmp8_label8) ? _tmp8_label8 : (_tmp8_label8 = g_quark_from_static_string ("Super_L")))) || (_tmp9_ == ((0 != _tmp8_label9) ? _tmp8_label9 : (_tmp8_label9 = g_quark_from_static_string ("Super_R"))))) {
#line 809 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 6350 "Page.c"
			default:
			{
				gboolean _tmp25_ = FALSE;
				gboolean _tmp26_;
				GdkEventKey* _tmp28_;
				gboolean _tmp29_;
#line 841 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp26_ = super_currently_pressed;
#line 841 "/home/jens/Source/shotwell/src/Page.vala"
				if (!_tmp26_) {
#line 841 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp25_ = TRUE;
#line 6363 "Page.c"
				} else {
					gboolean _tmp27_;
#line 841 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp27_ = self->priv->super_pressed;
#line 841 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp25_ = _tmp27_;
#line 6370 "Page.c"
				}
#line 841 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp25_) {
#line 842 "/home/jens/Source/shotwell/src/Page.vala"
					result = FALSE;
#line 842 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 6378 "Page.c"
				}
#line 844 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->super_pressed = TRUE;
#line 846 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp28_ = event;
#line 846 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp29_ = page_on_super_pressed (self, _tmp28_);
#line 846 "/home/jens/Source/shotwell/src/Page.vala"
				result = _tmp29_;
#line 846 "/home/jens/Source/shotwell/src/Page.vala"
				return result;
#line 6390 "Page.c"
			}
		}
	}
#line 849 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp30_ = event;
#line 849 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp31_ = page_on_app_key_pressed (self, _tmp30_);
#line 849 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp31_;
#line 849 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6402 "Page.c"
}


gboolean page_notify_app_key_released (Page* self, GdkEventKey* event) {
	gboolean result = FALSE;
	gboolean ctrl_currently_pressed = FALSE;
	gboolean alt_currently_pressed = FALSE;
	gboolean shift_currently_pressed = FALSE;
	gboolean super_currently_pressed = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	GdkEventKey* _tmp4_;
	guint _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	GQuark _tmp9_ = 0U;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label0 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label1 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label2 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label3 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label4 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label5 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label6 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label7 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label8 = 0;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp8_label9 = 0;
#line 6441 "Page.c"
	GdkEventKey* _tmp30_;
	gboolean _tmp31_;
#line 852 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 852 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 855 "/home/jens/Source/shotwell/src/Page.vala"
	page_get_modifiers (self, &_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
#line 855 "/home/jens/Source/shotwell/src/Page.vala"
	ctrl_currently_pressed = _tmp0_;
#line 855 "/home/jens/Source/shotwell/src/Page.vala"
	alt_currently_pressed = _tmp1_;
#line 855 "/home/jens/Source/shotwell/src/Page.vala"
	shift_currently_pressed = _tmp2_;
#line 855 "/home/jens/Source/shotwell/src/Page.vala"
	super_currently_pressed = _tmp3_;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = event;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_->keyval;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = gdk_keyval_name (_tmp5_);
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = _tmp6_;
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = (NULL == _tmp7_) ? 0 : g_quark_from_string (_tmp7_);
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
	if ((_tmp9_ == ((0 != _tmp8_label0) ? _tmp8_label0 : (_tmp8_label0 = g_quark_from_static_string ("Control_L")))) || (_tmp9_ == ((0 != _tmp8_label1) ? _tmp8_label1 : (_tmp8_label1 = g_quark_from_static_string ("Control_R"))))) {
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 6472 "Page.c"
			default:
			{
				gboolean _tmp10_ = FALSE;
				gboolean _tmp11_;
				GdkEventKey* _tmp13_;
				gboolean _tmp14_;
#line 861 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp11_ = ctrl_currently_pressed;
#line 861 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp11_) {
#line 861 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp10_ = TRUE;
#line 6485 "Page.c"
				} else {
					gboolean _tmp12_;
#line 861 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp12_ = self->priv->ctrl_pressed;
#line 861 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp10_ = !_tmp12_;
#line 6492 "Page.c"
				}
#line 861 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp10_) {
#line 862 "/home/jens/Source/shotwell/src/Page.vala"
					result = FALSE;
#line 862 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 6500 "Page.c"
				}
#line 864 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->ctrl_pressed = FALSE;
#line 866 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp13_ = event;
#line 866 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp14_ = page_on_ctrl_released (self, _tmp13_);
#line 866 "/home/jens/Source/shotwell/src/Page.vala"
				result = _tmp14_;
#line 866 "/home/jens/Source/shotwell/src/Page.vala"
				return result;
#line 6512 "Page.c"
			}
		}
	} else if ((((_tmp9_ == ((0 != _tmp8_label2) ? _tmp8_label2 : (_tmp8_label2 = g_quark_from_static_string ("Meta_L")))) || (_tmp9_ == ((0 != _tmp8_label3) ? _tmp8_label3 : (_tmp8_label3 = g_quark_from_static_string ("Meta_R"))))) || (_tmp9_ == ((0 != _tmp8_label4) ? _tmp8_label4 : (_tmp8_label4 = g_quark_from_static_string ("Alt_L"))))) || (_tmp9_ == ((0 != _tmp8_label5) ? _tmp8_label5 : (_tmp8_label5 = g_quark_from_static_string ("Alt_R"))))) {
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 6518 "Page.c"
			default:
			{
				gboolean _tmp15_ = FALSE;
				gboolean _tmp16_;
				GdkEventKey* _tmp18_;
				gboolean _tmp19_;
#line 872 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp16_ = alt_currently_pressed;
#line 872 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp16_) {
#line 872 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp15_ = TRUE;
#line 6531 "Page.c"
				} else {
					gboolean _tmp17_;
#line 872 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp17_ = self->priv->alt_pressed;
#line 872 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp15_ = !_tmp17_;
#line 6538 "Page.c"
				}
#line 872 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp15_) {
#line 873 "/home/jens/Source/shotwell/src/Page.vala"
					result = FALSE;
#line 873 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 6546 "Page.c"
				}
#line 875 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->alt_pressed = FALSE;
#line 877 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp18_ = event;
#line 877 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp19_ = page_on_alt_released (self, _tmp18_);
#line 877 "/home/jens/Source/shotwell/src/Page.vala"
				result = _tmp19_;
#line 877 "/home/jens/Source/shotwell/src/Page.vala"
				return result;
#line 6558 "Page.c"
			}
		}
	} else if ((_tmp9_ == ((0 != _tmp8_label6) ? _tmp8_label6 : (_tmp8_label6 = g_quark_from_static_string ("Shift_L")))) || (_tmp9_ == ((0 != _tmp8_label7) ? _tmp8_label7 : (_tmp8_label7 = g_quark_from_static_string ("Shift_R"))))) {
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 6564 "Page.c"
			default:
			{
				gboolean _tmp20_ = FALSE;
				gboolean _tmp21_;
				GdkEventKey* _tmp23_;
				gboolean _tmp24_;
#line 881 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp21_ = shift_currently_pressed;
#line 881 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp21_) {
#line 881 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp20_ = TRUE;
#line 6577 "Page.c"
				} else {
					gboolean _tmp22_;
#line 881 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp22_ = self->priv->shift_pressed;
#line 881 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp20_ = !_tmp22_;
#line 6584 "Page.c"
				}
#line 881 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp20_) {
#line 882 "/home/jens/Source/shotwell/src/Page.vala"
					result = FALSE;
#line 882 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 6592 "Page.c"
				}
#line 884 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->shift_pressed = FALSE;
#line 886 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp23_ = event;
#line 886 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp24_ = page_on_shift_released (self, _tmp23_);
#line 886 "/home/jens/Source/shotwell/src/Page.vala"
				result = _tmp24_;
#line 886 "/home/jens/Source/shotwell/src/Page.vala"
				return result;
#line 6604 "Page.c"
			}
		}
	} else if ((_tmp9_ == ((0 != _tmp8_label8) ? _tmp8_label8 : (_tmp8_label8 = g_quark_from_static_string ("Super_L")))) || (_tmp9_ == ((0 != _tmp8_label9) ? _tmp8_label9 : (_tmp8_label9 = g_quark_from_static_string ("Super_R"))))) {
#line 858 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 6610 "Page.c"
			default:
			{
				gboolean _tmp25_ = FALSE;
				gboolean _tmp26_;
				GdkEventKey* _tmp28_;
				gboolean _tmp29_;
#line 890 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp26_ = super_currently_pressed;
#line 890 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp26_) {
#line 890 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp25_ = TRUE;
#line 6623 "Page.c"
				} else {
					gboolean _tmp27_;
#line 890 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp27_ = self->priv->super_pressed;
#line 890 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp25_ = !_tmp27_;
#line 6630 "Page.c"
				}
#line 890 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp25_) {
#line 891 "/home/jens/Source/shotwell/src/Page.vala"
					result = FALSE;
#line 891 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 6638 "Page.c"
				}
#line 893 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->super_pressed = FALSE;
#line 895 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp28_ = event;
#line 895 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp29_ = page_on_super_released (self, _tmp28_);
#line 895 "/home/jens/Source/shotwell/src/Page.vala"
				result = _tmp29_;
#line 895 "/home/jens/Source/shotwell/src/Page.vala"
				return result;
#line 6650 "Page.c"
			}
		}
	}
#line 898 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp30_ = event;
#line 898 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp31_ = page_on_app_key_released (self, _tmp30_);
#line 898 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp31_;
#line 898 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6662 "Page.c"
}


gboolean page_notify_app_focus_in (Page* self, GdkEventFocus* event) {
	gboolean result = FALSE;
#line 901 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 901 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 902 "/home/jens/Source/shotwell/src/Page.vala"
	page_update_modifiers (self);
#line 904 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 904 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6678 "Page.c"
}


gboolean page_notify_app_focus_out (Page* self, GdkEventFocus* event) {
	gboolean result = FALSE;
#line 907 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 907 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 908 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 908 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6692 "Page.c"
}


static void page_real_on_move (Page* self, GdkRectangle* rect) {
#line 911 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (rect != NULL);
#line 6699 "Page.c"
}


void page_on_move (Page* self, GdkRectangle* rect) {
#line 911 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 911 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->on_move (self, rect);
#line 6708 "Page.c"
}


static void page_real_on_move_start (Page* self, GdkRectangle* rect) {
#line 914 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (rect != NULL);
#line 6715 "Page.c"
}


void page_on_move_start (Page* self, GdkRectangle* rect) {
#line 914 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 914 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->on_move_start (self, rect);
#line 6724 "Page.c"
}


static void page_real_on_move_finished (Page* self, GdkRectangle* rect) {
#line 917 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (rect != NULL);
#line 6731 "Page.c"
}


void page_on_move_finished (Page* self, GdkRectangle* rect) {
#line 917 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 917 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->on_move_finished (self, rect);
#line 6740 "Page.c"
}


static void page_real_on_resize (Page* self, GdkRectangle* rect) {
#line 920 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (rect != NULL);
#line 6747 "Page.c"
}


void page_on_resize (Page* self, GdkRectangle* rect) {
#line 920 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 920 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->on_resize (self, rect);
#line 6756 "Page.c"
}


static void page_real_on_resize_start (Page* self, GdkRectangle* rect) {
#line 923 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (rect != NULL);
#line 6763 "Page.c"
}


void page_on_resize_start (Page* self, GdkRectangle* rect) {
#line 923 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 923 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->on_resize_start (self, rect);
#line 6772 "Page.c"
}


static void page_real_on_resize_finished (Page* self, GdkRectangle* rect) {
#line 926 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (rect != NULL);
#line 6779 "Page.c"
}


void page_on_resize_finished (Page* self, GdkRectangle* rect) {
#line 926 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 926 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->on_resize_finished (self, rect);
#line 6788 "Page.c"
}


static gboolean page_real_on_configure (Page* self, GdkEventConfigure* event, GdkRectangle* rect) {
	gboolean result = FALSE;
#line 929 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 929 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (rect != NULL, FALSE);
#line 930 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 930 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6802 "Page.c"
}


gboolean page_on_configure (Page* self, GdkEventConfigure* event, GdkRectangle* rect) {
#line 929 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 929 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_configure (self, event, rect);
#line 6811 "Page.c"
}


static gboolean _page_check_configure_halted_gsource_func (gpointer self) {
	gboolean result;
	result = page_check_configure_halted ((Page*) self);
#line 954 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 6820 "Page.c"
}


gboolean page_notify_configure_event (Page* self, GdkEventConfigure* event) {
	gboolean result = FALSE;
	GdkRectangle rect = {0};
	GdkEventConfigure* _tmp0_;
	gint _tmp1_;
	GdkEventConfigure* _tmp2_;
	gint _tmp3_;
	GdkEventConfigure* _tmp4_;
	gint _tmp5_;
	GdkEventConfigure* _tmp6_;
	gint _tmp7_;
	gulong _tmp8_;
	gboolean _tmp29_ = FALSE;
	GdkRectangle _tmp30_;
	gint _tmp31_;
	GdkRectangle _tmp32_;
	gint _tmp33_;
	gboolean _tmp39_ = FALSE;
	GdkRectangle _tmp40_;
	gint _tmp41_;
	GdkRectangle _tmp42_;
	gint _tmp43_;
	GdkRectangle _tmp49_;
	gulong _tmp50_;
	GdkEventConfigure* _tmp51_;
	GdkRectangle _tmp52_;
	gboolean _tmp53_;
#line 933 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 933 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 934 "/home/jens/Source/shotwell/src/Page.vala"
	memset (&rect, 0, sizeof (GdkRectangle));
#line 935 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = event;
#line 935 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_->x;
#line 935 "/home/jens/Source/shotwell/src/Page.vala"
	rect.x = _tmp1_;
#line 936 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = event;
#line 936 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_->y;
#line 936 "/home/jens/Source/shotwell/src/Page.vala"
	rect.y = _tmp3_;
#line 937 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = event;
#line 937 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_->width;
#line 937 "/home/jens/Source/shotwell/src/Page.vala"
	rect.width = _tmp5_;
#line 938 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = event;
#line 938 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = _tmp6_->height;
#line 938 "/home/jens/Source/shotwell/src/Page.vala"
	rect.height = _tmp7_;
#line 941 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = self->priv->last_configure_ms;
#line 941 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp8_ == ((gulong) 0)) {
#line 6885 "Page.c"
		gboolean _tmp9_ = FALSE;
		GdkRectangle _tmp10_;
		gint _tmp11_;
		GdkRectangle _tmp12_;
		gint _tmp13_;
		gboolean _tmp19_ = FALSE;
		GdkRectangle _tmp20_;
		gint _tmp21_;
		GdkRectangle _tmp22_;
		gint _tmp23_;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = self->priv->last_position;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = _tmp10_.x;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = rect;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = _tmp12_.x;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp11_ != _tmp13_) {
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp9_ = TRUE;
#line 6908 "Page.c"
		} else {
			GdkRectangle _tmp14_;
			gint _tmp15_;
			GdkRectangle _tmp16_;
			gint _tmp17_;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = self->priv->last_position;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp15_ = _tmp14_.y;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp16_ = rect;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp17_ = _tmp16_.y;
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp9_ = _tmp15_ != _tmp17_;
#line 6924 "Page.c"
		}
#line 942 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp9_) {
#line 6928 "Page.c"
			GdkRectangle _tmp18_;
#line 943 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp18_ = rect;
#line 943 "/home/jens/Source/shotwell/src/Page.vala"
			page_on_move_start (self, &_tmp18_);
#line 944 "/home/jens/Source/shotwell/src/Page.vala"
			self->priv->report_move_finished = TRUE;
#line 6936 "Page.c"
		}
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp20_ = self->priv->last_position;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = _tmp20_.width;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp22_ = rect;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = _tmp22_.width;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp21_ != _tmp23_) {
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp19_ = TRUE;
#line 6950 "Page.c"
		} else {
			GdkRectangle _tmp24_;
			gint _tmp25_;
			GdkRectangle _tmp26_;
			gint _tmp27_;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp24_ = self->priv->last_position;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp25_ = _tmp24_.height;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp26_ = rect;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp27_ = _tmp26_.height;
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp19_ = _tmp25_ != _tmp27_;
#line 6966 "Page.c"
		}
#line 947 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp19_) {
#line 6970 "Page.c"
			GdkRectangle _tmp28_;
#line 948 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp28_ = rect;
#line 948 "/home/jens/Source/shotwell/src/Page.vala"
			page_on_resize_start (self, &_tmp28_);
#line 949 "/home/jens/Source/shotwell/src/Page.vala"
			self->priv->report_resize_finished = TRUE;
#line 6978 "Page.c"
		}
#line 954 "/home/jens/Source/shotwell/src/Page.vala"
		g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) (PAGE_CONSIDER_CONFIGURE_HALTED_MSEC / 8), _page_check_configure_halted_gsource_func, g_object_ref (self), g_object_unref);
#line 6982 "Page.c"
	}
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp30_ = self->priv->last_position;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp31_ = _tmp30_.x;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp32_ = rect;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp33_ = _tmp32_.x;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp31_ != _tmp33_) {
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp29_ = TRUE;
#line 6996 "Page.c"
	} else {
		GdkRectangle _tmp34_;
		gint _tmp35_;
		GdkRectangle _tmp36_;
		gint _tmp37_;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp34_ = self->priv->last_position;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp35_ = _tmp34_.y;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp36_ = rect;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp37_ = _tmp36_.y;
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp29_ = _tmp35_ != _tmp37_;
#line 7012 "Page.c"
	}
#line 957 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp29_) {
#line 7016 "Page.c"
		GdkRectangle _tmp38_;
#line 958 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp38_ = rect;
#line 958 "/home/jens/Source/shotwell/src/Page.vala"
		page_on_move (self, &_tmp38_);
#line 7022 "Page.c"
	}
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp40_ = self->priv->last_position;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp41_ = _tmp40_.width;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp42_ = rect;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp43_ = _tmp42_.width;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp41_ != _tmp43_) {
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp39_ = TRUE;
#line 7036 "Page.c"
	} else {
		GdkRectangle _tmp44_;
		gint _tmp45_;
		GdkRectangle _tmp46_;
		gint _tmp47_;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp44_ = self->priv->last_position;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp45_ = _tmp44_.height;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp46_ = rect;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp47_ = _tmp46_.height;
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp39_ = _tmp45_ != _tmp47_;
#line 7052 "Page.c"
	}
#line 960 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp39_) {
#line 7056 "Page.c"
		GdkRectangle _tmp48_;
#line 961 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp48_ = rect;
#line 961 "/home/jens/Source/shotwell/src/Page.vala"
		page_on_resize (self, &_tmp48_);
#line 7062 "Page.c"
	}
#line 963 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp49_ = rect;
#line 963 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_position = _tmp49_;
#line 964 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp50_ = now_ms ();
#line 964 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_configure_ms = _tmp50_;
#line 966 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp51_ = event;
#line 966 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp52_ = rect;
#line 966 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp53_ = page_on_configure (self, _tmp51_, &_tmp52_);
#line 966 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp53_;
#line 966 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7082 "Page.c"
}


static gboolean page_check_configure_halted (Page* self) {
	gboolean result = FALSE;
	gboolean _tmp0_;
	gulong _tmp1_;
	gulong _tmp2_;
	GtkAllocation allocation = {0};
	GtkAllocation _tmp3_ = {0};
	gboolean _tmp4_;
	gboolean _tmp7_;
#line 969 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 970 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->is_destroyed;
#line 970 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 971 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 971 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 7105 "Page.c"
	}
#line 973 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = now_ms ();
#line 973 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->last_configure_ms;
#line 973 "/home/jens/Source/shotwell/src/Page.vala"
	if ((_tmp1_ - _tmp2_) < ((gulong) PAGE_CONSIDER_CONFIGURE_HALTED_MSEC)) {
#line 974 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 974 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 7117 "Page.c"
	}
#line 977 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp3_);
#line 977 "/home/jens/Source/shotwell/src/Page.vala"
	allocation = _tmp3_;
#line 979 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->report_move_finished;
#line 979 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_) {
#line 7127 "Page.c"
		GtkAllocation _tmp5_;
		GdkRectangle _tmp6_;
#line 980 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = allocation;
#line 980 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = (GdkRectangle) _tmp5_;
#line 980 "/home/jens/Source/shotwell/src/Page.vala"
		page_on_move_finished (self, &_tmp6_);
#line 7136 "Page.c"
	}
#line 982 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = self->priv->report_resize_finished;
#line 982 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp7_) {
#line 7142 "Page.c"
		GtkAllocation _tmp8_;
		GdkRectangle _tmp9_;
#line 983 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = allocation;
#line 983 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = (GdkRectangle) _tmp8_;
#line 983 "/home/jens/Source/shotwell/src/Page.vala"
		page_on_resize_finished (self, &_tmp9_);
#line 7151 "Page.c"
	}
#line 985 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_configure_ms = (gulong) 0;
#line 986 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->report_move_finished = FALSE;
#line 987 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->report_resize_finished = FALSE;
#line 989 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 989 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7163 "Page.c"
}


static gboolean page_real_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask) {
	gboolean result = FALSE;
#line 992 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 993 "/home/jens/Source/shotwell/src/Page.vala"
	page_check_cursor_hiding (self);
#line 995 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 995 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7177 "Page.c"
}


gboolean page_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask) {
#line 992 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 992 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_motion (self, event, x, y, mask);
#line 7186 "Page.c"
}


static gboolean page_real_on_leave_notify_event (Page* self) {
	gboolean result = FALSE;
#line 999 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 999 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7196 "Page.c"
}


gboolean page_on_leave_notify_event (Page* self) {
#line 998 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 998 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_leave_notify_event (self);
#line 7205 "Page.c"
}


static gboolean page_on_motion_internal (Page* self, GdkEventMotion* event) {
	gboolean result = FALSE;
	gint x = 0;
	gint y = 0;
	GdkModifierType mask = 0;
	GdkEventMotion* _tmp0_;
	gint16 _tmp1_;
	GdkEventMotion* _tmp11_;
	gint _tmp12_;
	gint _tmp13_;
	GdkModifierType _tmp14_;
	gboolean _tmp15_;
#line 1002 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1002 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1005 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = event;
#line 1005 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_->is_hint;
#line 1005 "/home/jens/Source/shotwell/src/Page.vala"
	if (((gint) _tmp1_) == 1) {
#line 7231 "Page.c"
		gint _tmp2_ = 0;
		gint _tmp3_ = 0;
		GdkModifierType _tmp4_ = 0;
#line 1006 "/home/jens/Source/shotwell/src/Page.vala"
		page_get_event_source_pointer (self, &_tmp2_, &_tmp3_, &_tmp4_);
#line 1006 "/home/jens/Source/shotwell/src/Page.vala"
		x = _tmp2_;
#line 1006 "/home/jens/Source/shotwell/src/Page.vala"
		y = _tmp3_;
#line 1006 "/home/jens/Source/shotwell/src/Page.vala"
		mask = _tmp4_;
#line 7243 "Page.c"
	} else {
		GdkEventMotion* _tmp5_;
		gdouble _tmp6_;
		GdkEventMotion* _tmp7_;
		gdouble _tmp8_;
		GdkEventMotion* _tmp9_;
		GdkModifierType _tmp10_;
#line 1008 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = event;
#line 1008 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = _tmp5_->x;
#line 1008 "/home/jens/Source/shotwell/src/Page.vala"
		x = (gint) _tmp6_;
#line 1009 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = event;
#line 1009 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _tmp7_->y;
#line 1009 "/home/jens/Source/shotwell/src/Page.vala"
		y = (gint) _tmp8_;
#line 1010 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = event;
#line 1010 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = _tmp9_->state;
#line 1010 "/home/jens/Source/shotwell/src/Page.vala"
		mask = _tmp10_;
#line 7269 "Page.c"
	}
#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = event;
#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = x;
#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = y;
#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = mask;
#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = page_on_motion (self, _tmp11_, _tmp12_, _tmp13_, _tmp14_);
#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp15_;
#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7285 "Page.c"
}


static gboolean page_on_mousewheel_internal (Page* self, GdkEventScroll* event) {
	gboolean result = FALSE;
	GdkEventScroll* _tmp0_;
	GdkScrollDirection _tmp1_;
#line 1016 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1016 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = event;
#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_->direction;
#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
	switch (_tmp1_) {
#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
		case GDK_SCROLL_UP:
#line 7305 "Page.c"
		{
			GdkEventScroll* _tmp2_;
			gboolean _tmp3_;
#line 1019 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp2_ = event;
#line 1019 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp3_ = page_on_mousewheel_up (self, _tmp2_);
#line 1019 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp3_;
#line 1019 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 7317 "Page.c"
		}
#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
		case GDK_SCROLL_DOWN:
#line 7321 "Page.c"
		{
			GdkEventScroll* _tmp4_;
			gboolean _tmp5_;
#line 1022 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp4_ = event;
#line 1022 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp5_ = page_on_mousewheel_down (self, _tmp4_);
#line 1022 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp5_;
#line 1022 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 7333 "Page.c"
		}
#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
		case GDK_SCROLL_LEFT:
#line 7337 "Page.c"
		{
			GdkEventScroll* _tmp6_;
			gboolean _tmp7_;
#line 1025 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp6_ = event;
#line 1025 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp7_ = page_on_mousewheel_left (self, _tmp6_);
#line 1025 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp7_;
#line 1025 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 7349 "Page.c"
		}
#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
		case GDK_SCROLL_RIGHT:
#line 7353 "Page.c"
		{
			GdkEventScroll* _tmp8_;
			gboolean _tmp9_;
#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp8_ = event;
#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp9_ = page_on_mousewheel_right (self, _tmp8_);
#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
			result = _tmp9_;
#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 7365 "Page.c"
		}
#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
		case GDK_SCROLL_SMOOTH:
#line 7369 "Page.c"
		{
			{
				gdouble dx = 0.0;
				gdouble dy = 0.0;
				GdkEventScroll* _tmp10_;
				gdouble _tmp11_ = 0.0;
				gdouble _tmp12_ = 0.0;
				gdouble _tmp13_;
#line 1033 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp10_ = event;
#line 1033 "/home/jens/Source/shotwell/src/Page.vala"
				gdk_event_get_scroll_deltas ((GdkEvent*) _tmp10_, &_tmp11_, &_tmp12_);
#line 1033 "/home/jens/Source/shotwell/src/Page.vala"
				dx = _tmp11_;
#line 1033 "/home/jens/Source/shotwell/src/Page.vala"
				dy = _tmp12_;
#line 1035 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp13_ = dy;
#line 1035 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp13_ < ((gdouble) 0)) {
#line 7390 "Page.c"
					GdkEventScroll* _tmp14_;
					gboolean _tmp15_;
#line 1036 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp14_ = event;
#line 1036 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp15_ = page_on_mousewheel_up (self, _tmp14_);
#line 1036 "/home/jens/Source/shotwell/src/Page.vala"
					result = _tmp15_;
#line 1036 "/home/jens/Source/shotwell/src/Page.vala"
					return result;
#line 7401 "Page.c"
				} else {
					gdouble _tmp16_;
#line 1037 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp16_ = dy;
#line 1037 "/home/jens/Source/shotwell/src/Page.vala"
					if (_tmp16_ > ((gdouble) 0)) {
#line 7408 "Page.c"
						GdkEventScroll* _tmp17_;
						gboolean _tmp18_;
#line 1038 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp17_ = event;
#line 1038 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp18_ = page_on_mousewheel_down (self, _tmp17_);
#line 1038 "/home/jens/Source/shotwell/src/Page.vala"
						result = _tmp18_;
#line 1038 "/home/jens/Source/shotwell/src/Page.vala"
						return result;
#line 7419 "Page.c"
					} else {
						gdouble _tmp19_;
#line 1039 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp19_ = dx;
#line 1039 "/home/jens/Source/shotwell/src/Page.vala"
						if (_tmp19_ < ((gdouble) 0)) {
#line 7426 "Page.c"
							GdkEventScroll* _tmp20_;
							gboolean _tmp21_;
#line 1040 "/home/jens/Source/shotwell/src/Page.vala"
							_tmp20_ = event;
#line 1040 "/home/jens/Source/shotwell/src/Page.vala"
							_tmp21_ = page_on_mousewheel_left (self, _tmp20_);
#line 1040 "/home/jens/Source/shotwell/src/Page.vala"
							result = _tmp21_;
#line 1040 "/home/jens/Source/shotwell/src/Page.vala"
							return result;
#line 7437 "Page.c"
						} else {
							gdouble _tmp22_;
#line 1041 "/home/jens/Source/shotwell/src/Page.vala"
							_tmp22_ = dx;
#line 1041 "/home/jens/Source/shotwell/src/Page.vala"
							if (_tmp22_ > ((gdouble) 0)) {
#line 7444 "Page.c"
								GdkEventScroll* _tmp23_;
								gboolean _tmp24_;
#line 1042 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp23_ = event;
#line 1042 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp24_ = page_on_mousewheel_right (self, _tmp23_);
#line 1042 "/home/jens/Source/shotwell/src/Page.vala"
								result = _tmp24_;
#line 1042 "/home/jens/Source/shotwell/src/Page.vala"
								return result;
#line 7455 "Page.c"
							} else {
#line 1044 "/home/jens/Source/shotwell/src/Page.vala"
								result = FALSE;
#line 1044 "/home/jens/Source/shotwell/src/Page.vala"
								return result;
#line 7461 "Page.c"
							}
						}
					}
				}
			}
		}
		default:
		{
#line 1048 "/home/jens/Source/shotwell/src/Page.vala"
			result = FALSE;
#line 1048 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 7474 "Page.c"
		}
	}
}


static gboolean page_real_on_mousewheel_up (Page* self, GdkEventScroll* event) {
	gboolean result = FALSE;
#line 1052 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1053 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 1053 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7488 "Page.c"
}


gboolean page_on_mousewheel_up (Page* self, GdkEventScroll* event) {
#line 1052 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1052 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_mousewheel_up (self, event);
#line 7497 "Page.c"
}


static gboolean page_real_on_mousewheel_down (Page* self, GdkEventScroll* event) {
	gboolean result = FALSE;
#line 1056 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1057 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 1057 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7509 "Page.c"
}


gboolean page_on_mousewheel_down (Page* self, GdkEventScroll* event) {
#line 1056 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1056 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_mousewheel_down (self, event);
#line 7518 "Page.c"
}


static gboolean page_real_on_mousewheel_left (Page* self, GdkEventScroll* event) {
	gboolean result = FALSE;
#line 1060 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1061 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 1061 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7530 "Page.c"
}


gboolean page_on_mousewheel_left (Page* self, GdkEventScroll* event) {
#line 1060 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1060 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_mousewheel_left (self, event);
#line 7539 "Page.c"
}


static gboolean page_real_on_mousewheel_right (Page* self, GdkEventScroll* event) {
	gboolean result = FALSE;
#line 1064 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1065 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 1065 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7551 "Page.c"
}


gboolean page_on_mousewheel_right (Page* self, GdkEventScroll* event) {
#line 1064 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1064 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_mousewheel_right (self, event);
#line 7560 "Page.c"
}


static gboolean page_real_on_context_keypress (Page* self) {
	gboolean result = FALSE;
#line 1069 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 1069 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7570 "Page.c"
}


gboolean page_on_context_keypress (Page* self) {
#line 1068 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1068 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_context_keypress (self);
#line 7579 "Page.c"
}


static gboolean page_real_on_context_buttonpress (Page* self, GdkEventButton* event) {
	gboolean result = FALSE;
#line 1072 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1073 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 1073 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7591 "Page.c"
}


gboolean page_on_context_buttonpress (Page* self, GdkEventButton* event) {
#line 1072 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1072 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_context_buttonpress (self, event);
#line 7600 "Page.c"
}


static gboolean page_real_on_context_invoked (Page* self) {
	gboolean result = FALSE;
#line 1077 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 1077 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7610 "Page.c"
}


gboolean page_on_context_invoked (Page* self) {
#line 1076 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1076 "/home/jens/Source/shotwell/src/Page.vala"
	return PAGE_GET_CLASS (self)->on_context_invoked (self);
#line 7619 "Page.c"
}


gboolean page_popup_context_menu (Page* self, GtkMenu* context_menu, GdkEventButton* event) {
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	GtkMenu* _tmp1_;
	GdkEventButton* _tmp3_;
#line 1080 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1080 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail ((context_menu == NULL) || GTK_IS_MENU (context_menu), FALSE);
#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = context_menu;
#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ == NULL) {
#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = TRUE;
#line 7638 "Page.c"
	} else {
		gboolean _tmp2_;
#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = page_on_context_invoked (self);
#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = !_tmp2_;
#line 7645 "Page.c"
	}
#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 1084 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 1084 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 7653 "Page.c"
	}
#line 1086 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = event;
#line 1086 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ == NULL) {
#line 7659 "Page.c"
		GtkMenu* _tmp4_;
		guint32 _tmp5_;
#line 1087 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = context_menu;
#line 1087 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = gtk_get_current_event_time ();
#line 1087 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_menu_popup (_tmp4_, NULL, NULL, NULL, NULL, (guint) 0, _tmp5_);
#line 7668 "Page.c"
	} else {
		GtkMenu* _tmp6_;
		GdkEventButton* _tmp7_;
		guint _tmp8_;
		GdkEventButton* _tmp9_;
		guint32 _tmp10_;
#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = context_menu;
#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = event;
#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _tmp7_->button;
#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = event;
#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = _tmp9_->time;
#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_menu_popup (_tmp6_, NULL, NULL, NULL, NULL, _tmp8_, _tmp10_);
#line 7687 "Page.c"
	}
#line 1091 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 1091 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7693 "Page.c"
}


void page_on_event_source_realize (Page* self) {
	GtkWidget* _tmp0_;
	GdkWindow* _tmp1_;
	GtkWidget* _tmp2_;
	GdkWindow* _tmp3_;
	GdkCursor* _tmp4_;
	GdkWindow* parent_window = NULL;
	GtkWidget* _tmp9_;
	GdkWindow* _tmp10_;
	GdkWindow* _tmp11_;
	GdkWindow* _tmp20_;
#line 1094 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1095 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->event_source;
#line 1095 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = gtk_widget_get_window (_tmp0_);
#line 1095 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp1_ != NULL, "event_source.get_window() != null");
#line 1097 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->event_source;
#line 1097 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = gtk_widget_get_window (_tmp2_);
#line 1097 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = gdk_window_get_cursor (_tmp3_);
#line 1097 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ != NULL) {
#line 7724 "Page.c"
		GtkWidget* _tmp5_;
		GdkWindow* _tmp6_;
		GdkCursor* _tmp7_;
		GdkCursorType _tmp8_;
#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = self->priv->event_source;
#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = gtk_widget_get_window (_tmp5_);
#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = gdk_window_get_cursor (_tmp6_);
#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = gdk_cursor_get_cursor_type (_tmp7_);
#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->last_cursor = _tmp8_;
#line 1099 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 7741 "Page.c"
	}
#line 1103 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = self->priv->event_source;
#line 1103 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = gtk_widget_get_window (_tmp9_);
#line 1103 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = _g_object_ref0 (_tmp10_);
#line 1103 "/home/jens/Source/shotwell/src/Page.vala"
	parent_window = _tmp11_;
#line 7751 "Page.c"
	{
		gboolean _tmp12_ = FALSE;
#line 1104 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = TRUE;
#line 1104 "/home/jens/Source/shotwell/src/Page.vala"
		while (TRUE) {
#line 7758 "Page.c"
			GdkWindow* _tmp17_;
			GdkWindow* _tmp18_;
			GdkWindow* _tmp19_;
#line 1104 "/home/jens/Source/shotwell/src/Page.vala"
			if (!_tmp12_) {
#line 7764 "Page.c"
				gboolean _tmp13_ = FALSE;
				GdkWindow* _tmp14_;
#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp14_ = parent_window;
#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp14_ != NULL) {
#line 7771 "Page.c"
					GdkWindow* _tmp15_;
					GdkCursor* _tmp16_;
#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp15_ = parent_window;
#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp16_ = gdk_window_get_cursor (_tmp15_);
#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp13_ = _tmp16_ == NULL;
#line 7780 "Page.c"
				} else {
#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp13_ = FALSE;
#line 7784 "Page.c"
				}
#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
				if (!_tmp13_) {
#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
					break;
#line 7790 "Page.c"
				}
			}
#line 1104 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = FALSE;
#line 1105 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp17_ = parent_window;
#line 1105 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp18_ = gdk_window_get_parent (_tmp17_);
#line 1105 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp19_ = _g_object_ref0 (_tmp18_);
#line 1105 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (parent_window);
#line 1105 "/home/jens/Source/shotwell/src/Page.vala"
			parent_window = _tmp19_;
#line 7805 "Page.c"
		}
	}
#line 1108 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp20_ = parent_window;
#line 1108 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp20_ != NULL) {
#line 7812 "Page.c"
		GdkWindow* _tmp21_;
		GdkCursor* _tmp22_;
		GdkCursorType _tmp23_;
#line 1109 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = parent_window;
#line 1109 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp22_ = gdk_window_get_cursor (_tmp21_);
#line 1109 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = gdk_cursor_get_cursor_type (_tmp22_);
#line 1109 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->last_cursor = _tmp23_;
#line 7824 "Page.c"
	}
#line 1094 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (parent_window);
#line 7828 "Page.c"
}


void page_set_cursor_hide_time (Page* self, gint hide_time) {
	gint _tmp0_;
#line 1112 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1113 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = hide_time;
#line 1113 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->cursor_hide_msec = _tmp0_;
#line 7840 "Page.c"
}


void page_start_cursor_hiding (Page* self) {
#line 1116 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1117 "/home/jens/Source/shotwell/src/Page.vala"
	page_check_cursor_hiding (self);
#line 7849 "Page.c"
}


void page_stop_cursor_hiding (Page* self) {
	guint _tmp0_;
#line 1120 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1121 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->last_timeout_id;
#line 1121 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ != ((guint) 0)) {
#line 7861 "Page.c"
		guint _tmp1_;
#line 1122 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = self->priv->last_timeout_id;
#line 1122 "/home/jens/Source/shotwell/src/Page.vala"
		g_source_remove (_tmp1_);
#line 7867 "Page.c"
	}
}


void page_suspend_cursor_hiding (Page* self) {
	gint _tmp0_;
	guint _tmp1_;
#line 1125 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1126 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->cursor_hide_msec;
#line 1126 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->cursor_hide_time_cached = _tmp0_;
#line 1128 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->last_timeout_id;
#line 1128 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ != ((guint) 0)) {
#line 7885 "Page.c"
		guint _tmp2_;
#line 1129 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->priv->last_timeout_id;
#line 1129 "/home/jens/Source/shotwell/src/Page.vala"
		g_source_remove (_tmp2_);
#line 7891 "Page.c"
	}
#line 1131 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->cursor_hide_msec = 0;
#line 7895 "Page.c"
}


void page_restore_cursor_hiding (Page* self) {
	gint _tmp0_;
#line 1134 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1135 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->cursor_hide_time_cached;
#line 1135 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->cursor_hide_msec = _tmp0_;
#line 1136 "/home/jens/Source/shotwell/src/Page.vala"
	page_check_cursor_hiding (self);
#line 7909 "Page.c"
}


static void page_real_set_page_cursor (Page* self, GdkCursorType cursor_type) {
	GdkCursorType _tmp0_;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_;
#line 1141 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = cursor_type;
#line 1141 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_cursor = _tmp0_;
#line 1143 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->cursor_hidden;
#line 1143 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp2_) {
#line 7925 "Page.c"
		GtkWidget* _tmp3_;
#line 1143 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = self->priv->event_source;
#line 1143 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = _tmp3_ != NULL;
#line 7931 "Page.c"
	} else {
#line 1143 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = FALSE;
#line 7935 "Page.c"
	}
#line 1143 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_) {
#line 7939 "Page.c"
		GdkDisplay* display = NULL;
		GtkWidget* _tmp4_;
		GdkWindow* _tmp5_;
		GdkDisplay* _tmp6_;
		GdkDisplay* _tmp7_;
		GtkWidget* _tmp8_;
		GdkWindow* _tmp9_;
		GdkDisplay* _tmp10_;
		GdkCursorType _tmp11_;
		GdkCursor* _tmp12_;
		GdkCursor* _tmp13_;
#line 1144 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = self->priv->event_source;
#line 1144 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = gtk_widget_get_window (_tmp4_);
#line 1144 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = gdk_window_get_display (_tmp5_);
#line 1144 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = _g_object_ref0 (_tmp6_);
#line 1144 "/home/jens/Source/shotwell/src/Page.vala"
		display = _tmp7_;
#line 1145 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = self->priv->event_source;
#line 1145 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = gtk_widget_get_window (_tmp8_);
#line 1145 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = display;
#line 1145 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = cursor_type;
#line 1145 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = gdk_cursor_new_for_display (_tmp10_, _tmp11_);
#line 1145 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = _tmp12_;
#line 1145 "/home/jens/Source/shotwell/src/Page.vala"
		gdk_window_set_cursor (_tmp9_, _tmp13_);
#line 1145 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp13_);
#line 1143 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (display);
#line 7979 "Page.c"
	}
}


void page_set_page_cursor (Page* self, GdkCursorType cursor_type) {
#line 1140 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1140 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_GET_CLASS (self)->set_page_cursor (self, cursor_type);
#line 7989 "Page.c"
}


static gboolean _page_on_hide_cursor_gsource_func (gpointer self) {
	gboolean result;
	result = page_on_hide_cursor ((Page*) self);
#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 7998 "Page.c"
}


static void page_check_cursor_hiding (Page* self) {
	gboolean _tmp0_;
	gint _tmp2_;
#line 1149 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1150 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->cursor_hidden;
#line 1150 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 8011 "Page.c"
		GdkCursorType _tmp1_;
#line 1151 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->cursor_hidden = FALSE;
#line 1152 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = self->priv->last_cursor;
#line 1152 "/home/jens/Source/shotwell/src/Page.vala"
		page_set_page_cursor (self, _tmp1_);
#line 8019 "Page.c"
	}
#line 1155 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->cursor_hide_msec;
#line 1155 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ != 0) {
#line 8025 "Page.c"
		guint _tmp3_;
		gint _tmp5_;
		guint _tmp6_;
#line 1156 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = self->priv->last_timeout_id;
#line 1156 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp3_ != ((guint) 0)) {
#line 8033 "Page.c"
			guint _tmp4_;
#line 1157 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp4_ = self->priv->last_timeout_id;
#line 1157 "/home/jens/Source/shotwell/src/Page.vala"
			g_source_remove (_tmp4_);
#line 8039 "Page.c"
		}
#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = self->priv->cursor_hide_msec;
#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) _tmp5_, _page_on_hide_cursor_gsource_func, g_object_ref (self), g_object_unref);
#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->last_timeout_id = _tmp6_;
#line 8047 "Page.c"
	}
}


static gboolean page_on_hide_cursor (Page* self) {
	gboolean result = FALSE;
	GtkWidget* _tmp0_;
#line 1162 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), FALSE);
#line 1163 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->cursor_hidden = TRUE;
#line 1165 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->event_source;
#line 1165 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ != NULL) {
#line 8063 "Page.c"
		GdkDisplay* display = NULL;
		GtkWidget* _tmp1_;
		GdkWindow* _tmp2_;
		GdkDisplay* _tmp3_;
		GdkDisplay* _tmp4_;
		GtkWidget* _tmp5_;
		GdkWindow* _tmp6_;
		GdkDisplay* _tmp7_;
		GdkCursor* _tmp8_;
		GdkCursor* _tmp9_;
#line 1166 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = self->priv->event_source;
#line 1166 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = gtk_widget_get_window (_tmp1_);
#line 1166 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = gdk_window_get_display (_tmp2_);
#line 1166 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _g_object_ref0 (_tmp3_);
#line 1166 "/home/jens/Source/shotwell/src/Page.vala"
		display = _tmp4_;
#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = self->priv->event_source;
#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = gtk_widget_get_window (_tmp5_);
#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = display;
#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = gdk_cursor_new_for_display (_tmp7_, GDK_BLANK_CURSOR);
#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _tmp8_;
#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
		gdk_window_set_cursor (_tmp6_, _tmp9_);
#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp9_);
#line 1165 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (display);
#line 8100 "Page.c"
	}
#line 1171 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_timeout_id = (guint) 0;
#line 1173 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 1173 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 8108 "Page.c"
}


void page_update_menu_item_label (Page* self, const gchar* id, const gchar* new_label) {
	AppWindow* _tmp0_;
	AppWindow* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
#line 1176 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (self));
#line 1176 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (id != NULL);
#line 1176 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (new_label != NULL);
#line 1178 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = app_window_get_instance ();
#line 1178 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 1178 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = id;
#line 1178 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = new_label;
#line 1178 "/home/jens/Source/shotwell/src/Page.vala"
	app_window_update_menu_item_label (_tmp1_, _tmp2_, _tmp3_);
#line 1178 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp1_);
#line 8135 "Page.c"
}


GMenuModel* page_find_extension_point (Page* self, GMenuModel* model, const gchar* extension_point) {
	GMenuModel* result = NULL;
	gint items = 0;
	GMenuModel* _tmp0_;
	gint _tmp1_;
	GMenuModel* section = NULL;
#line 1181 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (self), NULL);
#line 1181 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (G_IS_MENU_MODEL (model), NULL);
#line 1181 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (extension_point != NULL, NULL);
#line 1183 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = model;
#line 1183 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_menu_model_get_n_items (_tmp0_);
#line 1183 "/home/jens/Source/shotwell/src/Page.vala"
	items = _tmp1_;
#line 1184 "/home/jens/Source/shotwell/src/Page.vala"
	section = NULL;
#line 8159 "Page.c"
	{
		gint i = 0;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
		i = 0;
#line 8164 "Page.c"
		{
			gboolean _tmp2_ = FALSE;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp2_ = TRUE;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
			while (TRUE) {
#line 8171 "Page.c"
				gboolean _tmp4_ = FALSE;
				gint _tmp5_;
				gint _tmp6_;
				gchar* name = NULL;
				GMenuModel* _tmp8_;
				gint _tmp9_;
				const gchar* _tmp10_;
				const gchar* _tmp11_;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
				if (!_tmp2_) {
#line 8182 "Page.c"
					gint _tmp3_;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp3_ = i;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
					i = _tmp3_ + 1;
#line 8188 "Page.c"
				}
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp2_ = FALSE;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp5_ = i;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp6_ = items;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp5_ < _tmp6_) {
#line 8198 "Page.c"
					GMenuModel* _tmp7_;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp7_ = section;
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp4_ = _tmp7_ == NULL;
#line 8204 "Page.c"
				} else {
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp4_ = FALSE;
#line 8208 "Page.c"
				}
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
				if (!_tmp4_) {
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
					break;
#line 8214 "Page.c"
				}
#line 1187 "/home/jens/Source/shotwell/src/Page.vala"
				name = NULL;
#line 1188 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp8_ = model;
#line 1188 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp9_ = i;
#line 1188 "/home/jens/Source/shotwell/src/Page.vala"
				g_menu_model_get_item_attribute (_tmp8_, _tmp9_, "id", "s", &name, NULL);
#line 1189 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp10_ = name;
#line 1189 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp11_ = extension_point;
#line 1189 "/home/jens/Source/shotwell/src/Page.vala"
				if (g_strcmp0 (_tmp10_, _tmp11_) == 0) {
#line 8230 "Page.c"
					GMenuModel* _tmp12_;
					gint _tmp13_;
					GMenuModel* _tmp14_;
#line 1190 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp12_ = model;
#line 1190 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp13_ = i;
#line 1190 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp14_ = g_menu_model_get_item_link (_tmp12_, _tmp13_, G_MENU_LINK_SECTION);
#line 1190 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (section);
#line 1190 "/home/jens/Source/shotwell/src/Page.vala"
					section = _tmp14_;
#line 8244 "Page.c"
				} else {
					GMenuModel* subsection = NULL;
					GMenuModel* _tmp15_;
					gint _tmp16_;
					GMenuModel* _tmp17_;
					GMenuModel* _tmp18_;
					gint sub_items = 0;
					GMenuModel* _tmp19_;
					gint _tmp20_;
#line 1192 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp15_ = model;
#line 1192 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp16_ = i;
#line 1192 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp17_ = g_menu_model_get_item_link (_tmp15_, _tmp16_, G_MENU_LINK_SECTION);
#line 1192 "/home/jens/Source/shotwell/src/Page.vala"
					subsection = _tmp17_;
#line 1194 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp18_ = subsection;
#line 1194 "/home/jens/Source/shotwell/src/Page.vala"
					if (_tmp18_ == NULL) {
#line 1195 "/home/jens/Source/shotwell/src/Page.vala"
						_g_object_unref0 (subsection);
#line 1195 "/home/jens/Source/shotwell/src/Page.vala"
						_g_free0 (name);
#line 1195 "/home/jens/Source/shotwell/src/Page.vala"
						continue;
#line 8272 "Page.c"
					}
#line 1198 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp19_ = subsection;
#line 1198 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp20_ = g_menu_model_get_n_items (_tmp19_);
#line 1198 "/home/jens/Source/shotwell/src/Page.vala"
					sub_items = _tmp20_;
#line 8280 "Page.c"
					{
						gint j = 0;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
						j = 0;
#line 8285 "Page.c"
						{
							gboolean _tmp21_ = FALSE;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
							_tmp21_ = TRUE;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
							while (TRUE) {
#line 8292 "Page.c"
								gboolean _tmp23_ = FALSE;
								gint _tmp24_;
								gint _tmp25_;
								GMenuModel* submenu = NULL;
								GMenuModel* _tmp27_;
								gint _tmp28_;
								GMenuModel* _tmp29_;
								GMenuModel* _tmp30_;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
								if (!_tmp21_) {
#line 8303 "Page.c"
									gint _tmp22_;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp22_ = j;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
									j = _tmp22_ + 1;
#line 8309 "Page.c"
								}
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp21_ = FALSE;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp24_ = j;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp25_ = sub_items;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
								if (_tmp24_ < _tmp25_) {
#line 8319 "Page.c"
									GMenuModel* _tmp26_;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp26_ = section;
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp23_ = _tmp26_ == NULL;
#line 8325 "Page.c"
								} else {
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp23_ = FALSE;
#line 8329 "Page.c"
								}
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
								if (!_tmp23_) {
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
									break;
#line 8335 "Page.c"
								}
#line 1200 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp27_ = subsection;
#line 1200 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp28_ = j;
#line 1200 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp29_ = g_menu_model_get_item_link (_tmp27_, _tmp28_, G_MENU_LINK_SUBMENU);
#line 1200 "/home/jens/Source/shotwell/src/Page.vala"
								submenu = _tmp29_;
#line 1202 "/home/jens/Source/shotwell/src/Page.vala"
								_tmp30_ = submenu;
#line 1202 "/home/jens/Source/shotwell/src/Page.vala"
								if (_tmp30_ != NULL) {
#line 8349 "Page.c"
									GMenuModel* _tmp31_;
									const gchar* _tmp32_;
									GMenuModel* _tmp33_;
#line 1203 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp31_ = submenu;
#line 1203 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp32_ = extension_point;
#line 1203 "/home/jens/Source/shotwell/src/Page.vala"
									_tmp33_ = page_find_extension_point (self, _tmp31_, _tmp32_);
#line 1203 "/home/jens/Source/shotwell/src/Page.vala"
									_g_object_unref0 (section);
#line 1203 "/home/jens/Source/shotwell/src/Page.vala"
									section = _tmp33_;
#line 8363 "Page.c"
								}
#line 1199 "/home/jens/Source/shotwell/src/Page.vala"
								_g_object_unref0 (submenu);
#line 8367 "Page.c"
							}
						}
					}
#line 1189 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (subsection);
#line 8373 "Page.c"
				}
#line 1186 "/home/jens/Source/shotwell/src/Page.vala"
				_g_free0 (name);
#line 8377 "Page.c"
			}
		}
	}
#line 1210 "/home/jens/Source/shotwell/src/Page.vala"
	result = section;
#line 1210 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 8385 "Page.c"
}


static void page_class_init (PageClass * klass) {
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	page_parent_class = g_type_class_peek_parent (klass);
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	g_type_class_add_private (klass, sizeof (PagePrivate));
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((GtkWidgetClass *) klass)->destroy = (void (*) (GtkWidget *)) page_real_destroy;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->set_page_name = (void (*) (Page *, const gchar*)) page_real_set_page_name;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->set_container = (void (*) (Page *, GtkWindow*)) page_real_set_container;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->clear_container = (void (*) (Page *)) page_real_clear_container;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->get_toolbar = (GtkToolbar* (*) (Page *)) page_real_get_toolbar;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->get_page_context_menu = (GtkMenu* (*) (Page *)) page_real_get_page_context_menu;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->switching_from = (void (*) (Page *)) page_real_switching_from;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->switched_to = (void (*) (Page *)) page_real_switched_to;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->ready = (void (*) (Page *)) page_real_ready;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->switching_to_fullscreen = (void (*) (Page *, FullscreenWindow*)) page_real_switching_to_fullscreen;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->returning_from_fullscreen = (void (*) (Page *, FullscreenWindow*)) page_real_returning_from_fullscreen;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->add_actions = (void (*) (Page *, GActionMap*)) page_real_add_actions;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->remove_actions = (void (*) (Page *, GActionMap*)) page_real_remove_actions;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->init_collect_ui_filenames = (void (*) (Page *, GeeList*)) page_real_init_collect_ui_filenames;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->init_collect_injection_groups = (InjectionGroup** (*) (Page *, int*)) page_real_init_collect_injection_groups;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->init_actions = (void (*) (Page *, gint, gint)) page_real_init_actions;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->update_actions = (void (*) (Page *, gint, gint)) page_real_update_actions;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->source_drag_failed = (gboolean (*) (Page *, GdkDragContext*, GtkDragResult)) page_real_source_drag_failed;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_left_click = (gboolean (*) (Page *, GdkEventButton*)) page_real_on_left_click;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_middle_click = (gboolean (*) (Page *, GdkEventButton*)) page_real_on_middle_click;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_right_click = (gboolean (*) (Page *, GdkEventButton*)) page_real_on_right_click;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_left_released = (gboolean (*) (Page *, GdkEventButton*)) page_real_on_left_released;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_middle_released = (gboolean (*) (Page *, GdkEventButton*)) page_real_on_middle_released;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_right_released = (gboolean (*) (Page *, GdkEventButton*)) page_real_on_right_released;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_ctrl_pressed = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_ctrl_pressed;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_ctrl_released = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_ctrl_released;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_alt_pressed = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_alt_pressed;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_alt_released = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_alt_released;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_shift_pressed = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_shift_pressed;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_shift_released = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_shift_released;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_super_pressed = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_super_pressed;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_super_released = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_super_released;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_app_key_pressed = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_app_key_pressed;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_app_key_released = (gboolean (*) (Page *, GdkEventKey*)) page_real_on_app_key_released;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_move = (void (*) (Page *, GdkRectangle*)) page_real_on_move;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_move_start = (void (*) (Page *, GdkRectangle*)) page_real_on_move_start;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_move_finished = (void (*) (Page *, GdkRectangle*)) page_real_on_move_finished;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_resize = (void (*) (Page *, GdkRectangle*)) page_real_on_resize;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_resize_start = (void (*) (Page *, GdkRectangle*)) page_real_on_resize_start;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_resize_finished = (void (*) (Page *, GdkRectangle*)) page_real_on_resize_finished;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_configure = (gboolean (*) (Page *, GdkEventConfigure*, GdkRectangle*)) page_real_on_configure;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_motion = (gboolean (*) (Page *, GdkEventMotion*, gint, gint, GdkModifierType)) page_real_on_motion;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_leave_notify_event = (gboolean (*) (Page *)) page_real_on_leave_notify_event;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_mousewheel_up = (gboolean (*) (Page *, GdkEventScroll*)) page_real_on_mousewheel_up;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_mousewheel_down = (gboolean (*) (Page *, GdkEventScroll*)) page_real_on_mousewheel_down;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_mousewheel_left = (gboolean (*) (Page *, GdkEventScroll*)) page_real_on_mousewheel_left;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_mousewheel_right = (gboolean (*) (Page *, GdkEventScroll*)) page_real_on_mousewheel_right;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_context_keypress = (gboolean (*) (Page *)) page_real_on_context_keypress;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_context_buttonpress = (gboolean (*) (Page *, GdkEventButton*)) page_real_on_context_buttonpress;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_context_invoked = (gboolean (*) (Page *)) page_real_on_context_invoked;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->set_page_cursor = (void (*) (Page *, GdkCursorType)) page_real_set_page_cursor;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	G_OBJECT_CLASS (klass)->finalize = page_finalize;
#line 8498 "Page.c"
}


static void page_instance_init (Page * self) {
	GtkBuilder* _tmp0_;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv = PAGE_GET_PRIVATE (self);
#line 61 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = gtk_builder_new ();
#line 61 "/home/jens/Source/shotwell/src/Page.vala"
	self->builder = _tmp0_;
#line 63 "/home/jens/Source/shotwell/src/Page.vala"
	self->in_view = FALSE;
#line 66 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->view = NULL;
#line 67 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->container = NULL;
#line 69 "/home/jens/Source/shotwell/src/Page.vala"
	memset (&self->priv->last_position, 0, sizeof (GdkRectangle));
#line 70 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->event_source = NULL;
#line 71 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->dnd_enabled = FALSE;
#line 72 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_configure_ms = (gulong) 0;
#line 73 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->report_move_finished = FALSE;
#line 74 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->report_resize_finished = FALSE;
#line 75 "/home/jens/Source/shotwell/src/Page.vala"
	memset (&self->priv->last_down, 0, sizeof (GdkPoint));
#line 76 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->is_destroyed = FALSE;
#line 77 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->ctrl_pressed = FALSE;
#line 78 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->alt_pressed = FALSE;
#line 79 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->shift_pressed = FALSE;
#line 80 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->super_pressed = FALSE;
#line 81 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_cursor = GDK_LEFT_PTR;
#line 82 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->cursor_hidden = FALSE;
#line 83 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->cursor_hide_msec = 0;
#line 84 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_timeout_id = (guint) 0;
#line 85 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->cursor_hide_time_cached = 0;
#line 86 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->are_actions_attached = FALSE;
#line 87 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->update_actions_scheduler = NULL;
#line 205 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->menubar_injected = FALSE;
#line 8556 "Page.c"
}


static void page_finalize (GObject * obj) {
	Page * self;
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PAGE, Page);
#line 61 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->builder);
#line 62 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->toolbar);
#line 65 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->page_name);
#line 66 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (self->priv->view);
#line 67 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->container);
#line 68 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->toolbar_path);
#line 70 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->event_source);
#line 87 "/home/jens/Source/shotwell/src/Page.vala"
	_one_shot_scheduler_unref0 (self->priv->update_actions_scheduler);
#line 58 "/home/jens/Source/shotwell/src/Page.vala"
	G_OBJECT_CLASS (page_parent_class)->finalize (obj);
#line 8582 "Page.c"
}


GType page_get_type (void) {
	static volatile gsize page_type_id__volatile = 0;
	if (g_once_init_enter (&page_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (PageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Page), 0, (GInstanceInitFunc) page_instance_init, NULL };
		GType page_type_id;
		page_type_id = g_type_register_static (gtk_scrolled_window_get_type (), "Page", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&page_type_id__volatile, page_type_id);
	}
	return page_type_id__volatile;
}


GType checkerboard_page_activator_get_type (void) {
	static volatile gsize checkerboard_page_activator_type_id__volatile = 0;
	if (g_once_init_enter (&checkerboard_page_activator_type_id__volatile)) {
		static const GEnumValue values[] = {{CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD, "CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD", "keyboard"}, {CHECKERBOARD_PAGE_ACTIVATOR_MOUSE, "CHECKERBOARD_PAGE_ACTIVATOR_MOUSE", "mouse"}, {0, NULL, NULL}};
		GType checkerboard_page_activator_type_id;
		checkerboard_page_activator_type_id = g_enum_register_static ("CheckerboardPageActivator", values);
		g_once_init_leave (&checkerboard_page_activator_type_id__volatile, checkerboard_page_activator_type_id);
	}
	return checkerboard_page_activator_type_id__volatile;
}


static void _checkerboard_page_on_items_hidden_view_collection_items_hidden (ViewCollection* _sender, GeeCollection* hidden, gpointer self) {
#line 1272 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_on_items_hidden ((CheckerboardPage*) self, hidden);
#line 8613 "Page.c"
}


static void _checkerboard_page_on_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_on_contents_altered ((CheckerboardPage*) self, added, removed);
#line 8620 "Page.c"
}


static void _checkerboard_page_on_items_state_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
#line 1274 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_on_items_state_changed ((CheckerboardPage*) self, changed);
#line 8627 "Page.c"
}


static void _checkerboard_page_on_items_visibility_changed_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self) {
#line 1275 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_on_items_visibility_changed ((CheckerboardPage*) self, changed);
#line 8634 "Page.c"
}


CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name) {
	CheckerboardPage * self = NULL;
	const gchar* _tmp0_;
	ViewCollection* _tmp1_;
	ViewCollection* _tmp2_;
	CheckerboardLayout* _tmp3_;
	CheckerboardLayout* _tmp4_;
	const gchar* _tmp5_;
	CheckerboardLayout* _tmp6_;
	GtkViewport* _tmp7_;
	GtkViewport* _tmp8_;
	GtkViewport* _tmp9_;
	CheckerboardLayout* _tmp10_;
	CheckerboardLayout* _tmp11_;
	GtkAdjustment* _tmp12_;
	GtkAdjustment* _tmp13_;
	GtkViewport* _tmp14_;
	ViewCollection* _tmp15_;
	ViewCollection* _tmp16_;
	ViewCollection* _tmp17_;
	ViewCollection* _tmp18_;
	ViewCollection* _tmp19_;
	ViewCollection* _tmp20_;
	ViewCollection* _tmp21_;
	ViewCollection* _tmp22_;
#line 1249 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (page_name != NULL, NULL);
#line 1250 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_name;
#line 1250 "/home/jens/Source/shotwell/src/Page.vala"
	self = (CheckerboardPage*) page_construct (object_type, _tmp0_);
#line 1252 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1252 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 1252 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = checkerboard_layout_new (_tmp2_);
#line 1252 "/home/jens/Source/shotwell/src/Page.vala"
	g_object_ref_sink (_tmp3_);
#line 1252 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->layout);
#line 1252 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->layout = _tmp3_;
#line 1252 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp2_);
#line 1253 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->layout;
#line 1253 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = page_name;
#line 1253 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_set_name (_tmp4_, _tmp5_);
#line 1255 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = self->priv->layout;
#line 1255 "/home/jens/Source/shotwell/src/Page.vala"
	page_set_event_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
#line 1257 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), (guint) 0);
#line 1258 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_scrolled_window_set_shadow_type (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_SHADOW_NONE);
#line 1260 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = self->priv->viewport;
#line 1260 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_container_get_type (), GtkContainer), (guint) 0);
#line 1261 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = self->priv->viewport;
#line 1261 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_viewport_set_shadow_type (_tmp8_, GTK_SHADOW_NONE);
#line 1263 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = self->priv->viewport;
#line 1263 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = self->priv->layout;
#line 1263 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
#line 1267 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = self->priv->layout;
#line 1267 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = gtk_scrolled_window_get_hadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
#line 1267 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
#line 1267 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_set_adjustments (_tmp11_, _tmp12_, _tmp13_);
#line 1269 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = self->priv->viewport;
#line 1269 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget));
#line 1272 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1272 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = _tmp15_;
#line 1272 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp16_, "items-hidden", (GCallback) _checkerboard_page_on_items_hidden_view_collection_items_hidden, self, 0);
#line 1272 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp16_);
#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp18_ = _tmp17_;
#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _checkerboard_page_on_contents_altered_data_collection_contents_altered, self, 0);
#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp18_);
#line 1274 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp19_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1274 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp20_ = _tmp19_;
#line 1274 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp20_, "items-state-changed", (GCallback) _checkerboard_page_on_items_state_changed_view_collection_items_state_changed, self, 0);
#line 1274 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp20_);
#line 1275 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp21_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1275 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp22_ = _tmp21_;
#line 1275 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp22_, "items-visibility-changed", (GCallback) _checkerboard_page_on_items_visibility_changed_view_collection_items_visibility_changed, self, 0);
#line 1275 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp22_);
#line 1278 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_scrolled_window_set_policy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
#line 1249 "/home/jens/Source/shotwell/src/Page.vala"
	return self;
#line 8759 "Page.c"
}


void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path) {
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 1281 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1281 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (path != NULL);
#line 1282 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = path;
#line 1282 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 1282 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->item_context_menu_path);
#line 1282 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->item_context_menu_path = _tmp1_;
#line 8778 "Page.c"
}


void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path) {
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 1285 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1285 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (path != NULL);
#line 1286 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = path;
#line 1286 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 1286 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->page_context_menu_path);
#line 1286 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->page_context_menu_path = _tmp1_;
#line 8797 "Page.c"
}


GtkMenu* checkerboard_page_get_context_menu (CheckerboardPage* self) {
	GtkMenu* result = NULL;
	GtkMenu* _tmp0_ = NULL;
	ViewCollection* _tmp1_;
	ViewCollection* _tmp2_;
	gint _tmp3_;
	gboolean _tmp4_;
#line 1289 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = view_collection_get_selected_count (_tmp2_);
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_ != 0;
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp2_);
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_) {
#line 8822 "Page.c"
		GtkMenu* _tmp5_;
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = checkerboard_page_get_item_context_menu (self);
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp0_);
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = _tmp5_;
#line 8830 "Page.c"
	} else {
		GtkMenu* _tmp6_;
#line 1292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = page_get_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1292 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp0_);
#line 1292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = _tmp6_;
#line 8839 "Page.c"
	}
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 1291 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 8845 "Page.c"
}


static GtkMenu* checkerboard_page_real_get_item_context_menu (CheckerboardPage* self) {
	GtkMenu* result = NULL;
	GtkMenu* _tmp0_;
	GtkMenu* _tmp8_;
	GtkMenu* _tmp9_;
#line 1297 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->item_context_menu;
#line 1297 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ == NULL) {
#line 8858 "Page.c"
		GMenuModel* model = NULL;
		GtkBuilder* _tmp1_;
		const gchar* _tmp2_;
		GObject* _tmp3_;
		GMenuModel* _tmp4_;
		GMenuModel* _tmp5_;
		GtkMenu* _tmp6_;
		GtkMenu* _tmp7_;
#line 1298 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->builder;
#line 1298 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->priv->item_context_menu_path;
#line 1298 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = gtk_builder_get_object (_tmp1_, _tmp2_);
#line 1298 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, g_menu_model_get_type ()) ? ((GMenuModel*) _tmp3_) : NULL);
#line 1298 "/home/jens/Source/shotwell/src/Page.vala"
		model = _tmp4_;
#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = model;
#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = (GtkMenu*) gtk_menu_new_from_model (_tmp5_);
#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
		g_object_ref_sink (_tmp6_);
#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->priv->item_context_menu);
#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->item_context_menu = _tmp6_;
#line 1301 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = self->priv->item_context_menu;
#line 1301 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_menu_attach_to_widget (_tmp7_, G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), NULL);
#line 1297 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (model);
#line 8893 "Page.c"
	}
#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = self->priv->item_context_menu;
#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = _g_object_ref0 (_tmp8_);
#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp9_;
#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 8903 "Page.c"
}


GtkMenu* checkerboard_page_get_item_context_menu (CheckerboardPage* self) {
#line 1296 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
#line 1296 "/home/jens/Source/shotwell/src/Page.vala"
	return CHECKERBOARD_PAGE_GET_CLASS (self)->get_item_context_menu (self);
#line 8912 "Page.c"
}


static GtkMenu* checkerboard_page_real_get_page_context_menu (Page* base) {
	CheckerboardPage * self;
	GtkMenu* result = NULL;
	const gchar* _tmp0_;
	GtkMenu* _tmp1_;
	GtkMenu* _tmp9_;
	GtkMenu* _tmp10_;
#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->page_context_menu_path;
#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ == NULL) {
#line 1310 "/home/jens/Source/shotwell/src/Page.vala"
		result = NULL;
#line 1310 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 8933 "Page.c"
	}
#line 1312 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->page_context_menu;
#line 1312 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ == NULL) {
#line 8939 "Page.c"
		GMenuModel* model = NULL;
		GtkBuilder* _tmp2_;
		const gchar* _tmp3_;
		GObject* _tmp4_;
		GMenuModel* _tmp5_;
		GMenuModel* _tmp6_;
		GtkMenu* _tmp7_;
		GtkMenu* _tmp8_;
#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->builder;
#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = self->priv->page_context_menu_path;
#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = gtk_builder_get_object (_tmp2_, _tmp3_);
#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, g_menu_model_get_type ()) ? ((GMenuModel*) _tmp4_) : NULL);
#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
		model = _tmp5_;
#line 1315 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = model;
#line 1315 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = (GtkMenu*) gtk_menu_new_from_model (_tmp6_);
#line 1315 "/home/jens/Source/shotwell/src/Page.vala"
		g_object_ref_sink (_tmp7_);
#line 1315 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->priv->page_context_menu);
#line 1315 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->page_context_menu = _tmp7_;
#line 1316 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = self->priv->page_context_menu;
#line 1316 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_menu_attach_to_widget (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), NULL);
#line 1312 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (model);
#line 8974 "Page.c"
	}
#line 1319 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = self->priv->page_context_menu;
#line 1319 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = _g_object_ref0 (_tmp9_);
#line 1319 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp10_;
#line 1319 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 8984 "Page.c"
}


static gboolean checkerboard_page_real_on_context_keypress (Page* base) {
	CheckerboardPage * self;
	gboolean result = FALSE;
	GtkMenu* _tmp0_;
	GtkMenu* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
#line 1322 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1323 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = checkerboard_page_get_context_menu (self);
#line 1323 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 1323 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp1_, NULL);
#line 1323 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 1323 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp1_);
#line 1323 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp3_;
#line 1323 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 9011 "Page.c"
}


static gchar* checkerboard_page_real_get_view_empty_message (CheckerboardPage* self) {
	gchar* result = NULL;
	gchar* _tmp0_;
#line 1327 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = g_strdup (_ ("No photos/videos"));
#line 1327 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 1327 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 9024 "Page.c"
}


gchar* checkerboard_page_get_view_empty_message (CheckerboardPage* self) {
#line 1326 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
#line 1326 "/home/jens/Source/shotwell/src/Page.vala"
	return CHECKERBOARD_PAGE_GET_CLASS (self)->get_view_empty_message (self);
#line 9033 "Page.c"
}


static gchar* checkerboard_page_real_get_filter_no_match_message (CheckerboardPage* self) {
	gchar* result = NULL;
	gchar* _tmp0_;
#line 1331 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = g_strdup (_ ("No photos/videos found which match the current filter"));
#line 1331 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp0_;
#line 1331 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 9046 "Page.c"
}


gchar* checkerboard_page_get_filter_no_match_message (CheckerboardPage* self) {
#line 1330 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
#line 1330 "/home/jens/Source/shotwell/src/Page.vala"
	return CHECKERBOARD_PAGE_GET_CLASS (self)->get_filter_no_match_message (self);
#line 9055 "Page.c"
}


static void checkerboard_page_real_on_item_activated (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers) {
#line 1334 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
#line 1334 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (modifiers != NULL);
#line 9064 "Page.c"
}


void checkerboard_page_on_item_activated (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers) {
#line 1334 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1334 "/home/jens/Source/shotwell/src/Page.vala"
	CHECKERBOARD_PAGE_GET_CLASS (self)->on_item_activated (self, item, activator, modifiers);
#line 9073 "Page.c"
}


CheckerboardLayout* checkerboard_page_get_checkerboard_layout (CheckerboardPage* self) {
	CheckerboardLayout* result = NULL;
	CheckerboardLayout* _tmp0_;
	CheckerboardLayout* _tmp1_;
#line 1338 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
#line 1339 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1339 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 1339 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 1339 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 9091 "Page.c"
}


static SearchViewFilter* checkerboard_page_real_get_search_view_filter (CheckerboardPage* self) {
#line 1343 "/home/jens/Source/shotwell/src/Page.vala"
	g_critical ("Type `%s' does not implement abstract method `checkerboard_page_get_search_view_filter'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
#line 1343 "/home/jens/Source/shotwell/src/Page.vala"
	return NULL;
#line 9100 "Page.c"
}


SearchViewFilter* checkerboard_page_get_search_view_filter (CheckerboardPage* self) {
#line 1343 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
#line 1343 "/home/jens/Source/shotwell/src/Page.vala"
	return CHECKERBOARD_PAGE_GET_CLASS (self)->get_search_view_filter (self);
#line 9109 "Page.c"
}


static CoreViewTracker* checkerboard_page_real_get_view_tracker (CheckerboardPage* self) {
	CoreViewTracker* result = NULL;
#line 1346 "/home/jens/Source/shotwell/src/Page.vala"
	result = NULL;
#line 1346 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 9119 "Page.c"
}


CoreViewTracker* checkerboard_page_get_view_tracker (CheckerboardPage* self) {
#line 1345 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
#line 1345 "/home/jens/Source/shotwell/src/Page.vala"
	return CHECKERBOARD_PAGE_GET_CLASS (self)->get_view_tracker (self);
#line 9128 "Page.c"
}


static void _checkerboard_page_on_view_filter_refresh_view_filter_refresh (ViewFilter* _sender, gpointer self) {
#line 1351 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_on_view_filter_refresh ((CheckerboardPage*) self);
#line 9135 "Page.c"
}


static void checkerboard_page_real_switching_from (Page* base) {
	CheckerboardPage * self;
	CheckerboardLayout* _tmp0_;
	SearchViewFilter* _tmp1_;
	SearchViewFilter* _tmp2_;
	guint _tmp3_;
	ViewCollection* _tmp4_;
	ViewCollection* _tmp5_;
#line 1349 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1350 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1350 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_set_in_view (_tmp0_, FALSE);
#line 1351 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = checkerboard_page_get_search_view_filter (self);
#line 1351 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 1351 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("refresh", TYPE_VIEW_FILTER, &_tmp3_, NULL, FALSE);
#line 1351 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_VIEW_FILTER, ViewFilter), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _checkerboard_page_on_view_filter_refresh_view_filter_refresh, self);
#line 1351 "/home/jens/Source/shotwell/src/Page.vala"
	_view_filter_unref0 (_tmp2_);
#line 1354 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1354 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_;
#line 1354 "/home/jens/Source/shotwell/src/Page.vala"
	view_collection_unselect_all (_tmp5_);
#line 1354 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp5_);
#line 1356 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_CLASS (checkerboard_page_parent_class)->switching_from (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 9173 "Page.c"
}


static void checkerboard_page_real_switched_to (Page* base) {
	CheckerboardPage * self;
	CheckerboardLayout* _tmp0_;
	SearchViewFilter* _tmp1_;
	SearchViewFilter* _tmp2_;
	ViewCollection* _tmp3_;
	ViewCollection* _tmp4_;
	gint _tmp5_;
	gboolean _tmp6_;
#line 1359 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1360 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1360 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_set_in_view (_tmp0_, TRUE);
#line 1361 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = checkerboard_page_get_search_view_filter (self);
#line 1361 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 1361 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_VIEW_FILTER, ViewFilter), "refresh", (GCallback) _checkerboard_page_on_view_filter_refresh_view_filter_refresh, self, 0);
#line 1361 "/home/jens/Source/shotwell/src/Page.vala"
	_view_filter_unref0 (_tmp2_);
#line 1362 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_on_view_filter_refresh (self);
#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_;
#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = view_collection_get_selected_count (_tmp4_);
#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = _tmp5_ > 0;
#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp4_);
#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp6_) {
#line 9214 "Page.c"
		CheckerboardItem* item = NULL;
		ViewCollection* _tmp7_;
		ViewCollection* _tmp8_;
		DataView* _tmp9_;
		CheckerboardItem* _tmp10_;
		GtkAdjustment* vadj = NULL;
		GtkAdjustment* _tmp11_;
		GtkAdjustment* _tmp12_;
		gboolean _tmp13_ = FALSE;
		GtkAdjustment* _tmp14_;
		CheckerboardItem* _tmp15_;
		GdkRectangle _tmp16_;
		gint _tmp17_;
		AdjustmentRelation _tmp18_;
#line 1365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _tmp7_;
#line 1365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = view_collection_get_selected_at (_tmp8_, 0);
#line 1365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
#line 1365 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp8_);
#line 1365 "/home/jens/Source/shotwell/src/Page.vala"
		item = _tmp10_;
#line 1368 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
#line 1368 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = _g_object_ref0 (_tmp11_);
#line 1368 "/home/jens/Source/shotwell/src/Page.vala"
		vadj = _tmp12_;
#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp14_ = vadj;
#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp15_ = item;
#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = _tmp15_->allocation;
#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp17_ = _tmp16_.y;
#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = get_adjustment_relation (_tmp14_, _tmp17_);
#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp18_ == ADJUSTMENT_RELATION_IN_RANGE) {
#line 9259 "Page.c"
			GtkAdjustment* _tmp19_;
			CheckerboardItem* _tmp20_;
			GdkRectangle _tmp21_;
			gint _tmp22_;
			CheckerboardItem* _tmp23_;
			GdkRectangle _tmp24_;
			gint _tmp25_;
			AdjustmentRelation _tmp26_;
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp19_ = vadj;
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp20_ = item;
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp21_ = _tmp20_->allocation;
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp22_ = _tmp21_.y;
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp23_ = item;
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp24_ = _tmp23_->allocation;
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp25_ = _tmp24_.height;
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp26_ = get_adjustment_relation (_tmp19_, _tmp22_ + _tmp25_);
#line 1370 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = _tmp26_ == ADJUSTMENT_RELATION_IN_RANGE;
#line 9286 "Page.c"
		} else {
#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = FALSE;
#line 9290 "Page.c"
		}
#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
		if (!_tmp13_) {
#line 9294 "Page.c"
			gint top = 0;
			CheckerboardItem* _tmp27_;
			GdkRectangle _tmp28_;
			gint _tmp29_;
			GtkAdjustment* _tmp30_;
			gdouble _tmp31_;
			GtkAdjustment* _tmp45_;
			gint _tmp46_;
#line 1373 "/home/jens/Source/shotwell/src/Page.vala"
			top = 0;
#line 1374 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp27_ = item;
#line 1374 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp28_ = _tmp27_->allocation;
#line 1374 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp29_ = _tmp28_.y;
#line 1374 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp30_ = vadj;
#line 1374 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp31_ = gtk_adjustment_get_value (_tmp30_);
#line 1374 "/home/jens/Source/shotwell/src/Page.vala"
			if (((gdouble) _tmp29_) < _tmp31_) {
#line 9317 "Page.c"
				CheckerboardItem* _tmp32_;
				GdkRectangle _tmp33_;
				gint _tmp34_;
				gint _tmp35_;
#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp32_ = item;
#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp33_ = _tmp32_->allocation;
#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp34_ = _tmp33_.y;
#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
				top = _tmp34_;
#line 1376 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp35_ = top;
#line 1376 "/home/jens/Source/shotwell/src/Page.vala"
				top = _tmp35_ - (CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING / 2);
#line 9334 "Page.c"
			} else {
				CheckerboardItem* _tmp36_;
				GdkRectangle _tmp37_;
				gint _tmp38_;
				CheckerboardItem* _tmp39_;
				GdkRectangle _tmp40_;
				gint _tmp41_;
				GtkAdjustment* _tmp42_;
				gdouble _tmp43_;
				gint _tmp44_;
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp36_ = item;
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp37_ = _tmp36_->allocation;
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp38_ = _tmp37_.y;
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp39_ = item;
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp40_ = _tmp39_->allocation;
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp41_ = _tmp40_.height;
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp42_ = vadj;
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp43_ = gtk_adjustment_get_page_size (_tmp42_);
#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
				top = (_tmp38_ + _tmp41_) - ((gint) _tmp43_);
#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp44_ = top;
#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
				top = _tmp44_ + (CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING / 2);
#line 9367 "Page.c"
			}
#line 1382 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp45_ = vadj;
#line 1382 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp46_ = top;
#line 1382 "/home/jens/Source/shotwell/src/Page.vala"
			gtk_adjustment_set_value (_tmp45_, (gdouble) _tmp46_);
#line 9375 "Page.c"
		}
#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (vadj);
#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (item);
#line 9381 "Page.c"
	}
#line 1387 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_CLASS (checkerboard_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 9385 "Page.c"
}


static void checkerboard_page_on_view_filter_refresh (CheckerboardPage* self) {
#line 1390 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1391 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_update_view_filter_message (self);
#line 9394 "Page.c"
}


static void checkerboard_page_on_contents_altered (CheckerboardPage* self, GeeIterable* added, GeeIterable* removed) {
#line 1394 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1394 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
#line 1394 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
#line 1396 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_update_view_filter_message (self);
#line 9407 "Page.c"
}


static void checkerboard_page_on_items_state_changed (CheckerboardPage* self, GeeIterable* changed) {
#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GEE_IS_ITERABLE (changed));
#line 1400 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_update_view_filter_message (self);
#line 9418 "Page.c"
}


static void checkerboard_page_on_items_visibility_changed (CheckerboardPage* self, GeeCollection* changed) {
#line 1403 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1403 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GEE_IS_COLLECTION (changed));
#line 1404 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_update_view_filter_message (self);
#line 9429 "Page.c"
}


static void checkerboard_page_update_view_filter_message (CheckerboardPage* self) {
	gboolean _tmp0_ = FALSE;
	ViewCollection* _tmp1_;
	ViewCollection* _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_;
#line 1407 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = view_collection_are_items_filtered_out (_tmp2_);
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_;
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp2_);
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_) {
#line 9453 "Page.c"
		ViewCollection* _tmp5_;
		ViewCollection* _tmp6_;
		gint _tmp7_;
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = _tmp5_;
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = _tmp7_ == 0;
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp6_);
#line 9467 "Page.c"
	} else {
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = FALSE;
#line 9471 "Page.c"
	}
#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 9475 "Page.c"
		gchar* _tmp8_;
		gchar* _tmp9_;
#line 1409 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = checkerboard_page_get_filter_no_match_message (self);
#line 1409 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _tmp8_;
#line 1409 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_page_set_page_message (self, _tmp9_);
#line 1409 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (_tmp9_);
#line 9486 "Page.c"
	} else {
		ViewCollection* _tmp10_;
		ViewCollection* _tmp11_;
		gint _tmp12_;
		gboolean _tmp13_;
#line 1410 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1410 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = _tmp10_;
#line 1410 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection));
#line 1410 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = _tmp12_ == 0;
#line 1410 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp11_);
#line 1410 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp13_) {
#line 9504 "Page.c"
			gchar* _tmp14_;
			gchar* _tmp15_;
#line 1411 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = checkerboard_page_get_view_empty_message (self);
#line 1411 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp15_ = _tmp14_;
#line 1411 "/home/jens/Source/shotwell/src/Page.vala"
			checkerboard_page_set_page_message (self, _tmp15_);
#line 1411 "/home/jens/Source/shotwell/src/Page.vala"
			_g_free0 (_tmp15_);
#line 9515 "Page.c"
		} else {
#line 1413 "/home/jens/Source/shotwell/src/Page.vala"
			checkerboard_page_unset_page_message (self);
#line 9519 "Page.c"
		}
	}
}


void checkerboard_page_set_page_message (CheckerboardPage* self, const gchar* message) {
	CheckerboardLayout* _tmp0_;
	const gchar* _tmp1_;
	gboolean _tmp2_;
#line 1417 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1417 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (message != NULL);
#line 1418 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1418 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = message;
#line 1418 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_set_message (_tmp0_, _tmp1_);
#line 1419 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_is_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1419 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_) {
#line 9543 "Page.c"
		CheckerboardLayout* _tmp3_;
#line 1420 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = self->priv->layout;
#line 1420 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
#line 9549 "Page.c"
	}
}


void checkerboard_page_unset_page_message (CheckerboardPage* self) {
	CheckerboardLayout* _tmp0_;
	gboolean _tmp1_;
#line 1423 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1424 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1424 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_unset_message (_tmp0_);
#line 1425 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_is_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1425 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_) {
#line 9567 "Page.c"
		CheckerboardLayout* _tmp2_;
#line 1426 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->priv->layout;
#line 1426 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
#line 9573 "Page.c"
	}
}


static void checkerboard_page_real_set_page_name (Page* base, const gchar* name) {
	CheckerboardPage * self;
	const gchar* _tmp0_;
	CheckerboardLayout* _tmp1_;
	const gchar* _tmp2_;
#line 1429 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1429 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (name != NULL);
#line 1430 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = name;
#line 1430 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_CLASS (checkerboard_page_parent_class)->set_page_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp0_);
#line 1432 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->layout;
#line 1432 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = name;
#line 1432 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_set_name (_tmp1_, _tmp2_);
#line 9597 "Page.c"
}


CheckerboardItem* checkerboard_page_get_item_at_pixel (CheckerboardPage* self, gdouble x, gdouble y) {
	CheckerboardItem* result = NULL;
	CheckerboardLayout* _tmp0_;
	gdouble _tmp1_;
	gdouble _tmp2_;
	CheckerboardItem* _tmp3_;
#line 1435 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
#line 1436 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1436 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = x;
#line 1436 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = y;
#line 1436 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = checkerboard_layout_get_item_at_pixel (_tmp0_, _tmp1_, _tmp2_);
#line 1436 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp3_;
#line 1436 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 9621 "Page.c"
}


static void checkerboard_page_on_items_hidden (CheckerboardPage* self, GeeIterable* hidden) {
#line 1439 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1439 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GEE_IS_ITERABLE (hidden));
#line 9630 "Page.c"
	{
		GeeIterator* _view_it = NULL;
		GeeIterable* _tmp0_;
		GeeIterator* _tmp1_;
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = hidden;
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = gee_iterable_iterator (_tmp0_);
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
		_view_it = _tmp1_;
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
		while (TRUE) {
#line 9643 "Page.c"
			GeeIterator* _tmp2_;
			gboolean _tmp3_;
			DataView* view = NULL;
			GeeIterator* _tmp4_;
			gpointer _tmp5_;
			CheckerboardItem* item = NULL;
			DataView* _tmp6_;
			CheckerboardItem* _tmp7_;
			CheckerboardItem* _tmp8_;
			CheckerboardItem* _tmp9_;
			CheckerboardItem* _tmp10_;
			CheckerboardItem* _tmp11_;
			CheckerboardItem* _tmp12_;
			CheckerboardItem* _tmp13_;
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp2_ = _view_it;
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp3_ = gee_iterator_next (_tmp2_);
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
			if (!_tmp3_) {
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 9666 "Page.c"
			}
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp4_ = _view_it;
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp5_ = gee_iterator_get (_tmp4_);
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
			view = (DataView*) _tmp5_;
#line 1441 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp6_ = view;
#line 1441 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
#line 1441 "/home/jens/Source/shotwell/src/Page.vala"
			item = _tmp7_;
#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp8_ = self->anchor;
#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp9_ = item;
#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp8_ == _tmp9_) {
#line 1444 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->anchor);
#line 1444 "/home/jens/Source/shotwell/src/Page.vala"
				self->anchor = NULL;
#line 9690 "Page.c"
			}
#line 1446 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp10_ = self->cursor;
#line 1446 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp11_ = item;
#line 1446 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp10_ == _tmp11_) {
#line 1447 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->cursor);
#line 1447 "/home/jens/Source/shotwell/src/Page.vala"
				self->cursor = NULL;
#line 9702 "Page.c"
			}
#line 1449 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = self->priv->highlighted;
#line 1449 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = item;
#line 1449 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp12_ == _tmp13_) {
#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->priv->highlighted);
#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->highlighted = NULL;
#line 9714 "Page.c"
			}
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (item);
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (view);
#line 9720 "Page.c"
		}
#line 1440 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_view_it);
#line 9724 "Page.c"
	}
}


static gboolean checkerboard_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
	CheckerboardPage * self;
	gboolean result = FALSE;
	gboolean handled = FALSE;
	guint state = 0U;
	GdkEventKey* _tmp0_;
	GdkModifierType _tmp1_;
	GdkEventKey* _tmp2_;
	guint _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	GQuark _tmp7_ = 0U;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label0 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label1 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label2 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label3 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label4 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label5 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label6 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label7 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label8 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label9 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label10 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label11 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label12 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label13 = 0;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp6_label14 = 0;
#line 9771 "Page.c"
	gboolean _tmp45_;
	gboolean _tmp46_ = FALSE;
#line 1454 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1454 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1455 "/home/jens/Source/shotwell/src/Page.vala"
	handled = TRUE;
#line 1458 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = event;
#line 1458 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_->state;
#line 1458 "/home/jens/Source/shotwell/src/Page.vala"
	state = (guint) (_tmp1_ & GDK_SHIFT_MASK);
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = event;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_->keyval;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = gdk_keyval_name (_tmp3_);
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_;
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
	if ((_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("Up")))) || (_tmp7_ == ((0 != _tmp6_label1) ? _tmp6_label1 : (_tmp6_label1 = g_quark_from_static_string ("KP_Up"))))) {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 9800 "Page.c"
			default:
			{
				guint _tmp8_;
#line 1463 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_move_cursor (self, COMPASS_POINT_NORTH);
#line 1464 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp8_ = state;
#line 1464 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_select_anchor_to_cursor (self, _tmp8_);
#line 1465 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 9812 "Page.c"
			}
		}
	} else if ((_tmp7_ == ((0 != _tmp6_label2) ? _tmp6_label2 : (_tmp6_label2 = g_quark_from_static_string ("Down")))) || (_tmp7_ == ((0 != _tmp6_label3) ? _tmp6_label3 : (_tmp6_label3 = g_quark_from_static_string ("KP_Down"))))) {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 9818 "Page.c"
			default:
			{
				guint _tmp9_;
#line 1469 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_move_cursor (self, COMPASS_POINT_SOUTH);
#line 1470 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp9_ = state;
#line 1470 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_select_anchor_to_cursor (self, _tmp9_);
#line 1471 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 9830 "Page.c"
			}
		}
	} else if ((_tmp7_ == ((0 != _tmp6_label4) ? _tmp6_label4 : (_tmp6_label4 = g_quark_from_static_string ("Left")))) || (_tmp7_ == ((0 != _tmp6_label5) ? _tmp6_label5 : (_tmp6_label5 = g_quark_from_static_string ("KP_Left"))))) {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 9836 "Page.c"
			default:
			{
				guint _tmp10_;
#line 1475 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_move_cursor (self, COMPASS_POINT_WEST);
#line 1476 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp10_ = state;
#line 1476 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_select_anchor_to_cursor (self, _tmp10_);
#line 1477 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 9848 "Page.c"
			}
		}
	} else if ((_tmp7_ == ((0 != _tmp6_label6) ? _tmp6_label6 : (_tmp6_label6 = g_quark_from_static_string ("Right")))) || (_tmp7_ == ((0 != _tmp6_label7) ? _tmp6_label7 : (_tmp6_label7 = g_quark_from_static_string ("KP_Right"))))) {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 9854 "Page.c"
			default:
			{
				guint _tmp11_;
#line 1481 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_move_cursor (self, COMPASS_POINT_EAST);
#line 1482 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp11_ = state;
#line 1482 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_select_anchor_to_cursor (self, _tmp11_);
#line 1483 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 9866 "Page.c"
			}
		}
	} else if ((_tmp7_ == ((0 != _tmp6_label8) ? _tmp6_label8 : (_tmp6_label8 = g_quark_from_static_string ("Home")))) || (_tmp7_ == ((0 != _tmp6_label9) ? _tmp6_label9 : (_tmp6_label9 = g_quark_from_static_string ("KP_Home"))))) {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 9872 "Page.c"
			default:
			{
				CheckerboardItem* first = NULL;
				ViewCollection* _tmp12_;
				ViewCollection* _tmp13_;
				DataView* _tmp14_;
				CheckerboardItem* _tmp15_;
				CheckerboardItem* _tmp16_;
				guint _tmp18_;
#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp12_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp13_ = _tmp12_;
#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp14_ = view_collection_get_first (_tmp13_);
#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp13_);
#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
				first = _tmp15_;
#line 1488 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp16_ = first;
#line 1488 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp16_ != NULL) {
#line 9898 "Page.c"
					CheckerboardItem* _tmp17_;
#line 1489 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp17_ = first;
#line 1489 "/home/jens/Source/shotwell/src/Page.vala"
					checkerboard_page_cursor_to_item (self, _tmp17_);
#line 9904 "Page.c"
				}
#line 1490 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp18_ = state;
#line 1490 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_select_anchor_to_cursor (self, _tmp18_);
#line 1491 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (first);
#line 1491 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 9914 "Page.c"
			}
		}
	} else if ((_tmp7_ == ((0 != _tmp6_label10) ? _tmp6_label10 : (_tmp6_label10 = g_quark_from_static_string ("End")))) || (_tmp7_ == ((0 != _tmp6_label11) ? _tmp6_label11 : (_tmp6_label11 = g_quark_from_static_string ("KP_End"))))) {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 9920 "Page.c"
			default:
			{
				CheckerboardItem* last = NULL;
				ViewCollection* _tmp19_;
				ViewCollection* _tmp20_;
				DataView* _tmp21_;
				CheckerboardItem* _tmp22_;
				CheckerboardItem* _tmp23_;
				guint _tmp25_;
#line 1495 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp19_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1495 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp20_ = _tmp19_;
#line 1495 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp21_ = view_collection_get_last (_tmp20_);
#line 1495 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
#line 1495 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp20_);
#line 1495 "/home/jens/Source/shotwell/src/Page.vala"
				last = _tmp22_;
#line 1496 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp23_ = last;
#line 1496 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp23_ != NULL) {
#line 9946 "Page.c"
					CheckerboardItem* _tmp24_;
#line 1497 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp24_ = last;
#line 1497 "/home/jens/Source/shotwell/src/Page.vala"
					checkerboard_page_cursor_to_item (self, _tmp24_);
#line 9952 "Page.c"
				}
#line 1498 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp25_ = state;
#line 1498 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_select_anchor_to_cursor (self, _tmp25_);
#line 1499 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (last);
#line 1499 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 9962 "Page.c"
			}
		}
	} else if ((_tmp7_ == ((0 != _tmp6_label12) ? _tmp6_label12 : (_tmp6_label12 = g_quark_from_static_string ("Return")))) || (_tmp7_ == ((0 != _tmp6_label13) ? _tmp6_label13 : (_tmp6_label13 = g_quark_from_static_string ("KP_Enter"))))) {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 9968 "Page.c"
			default:
			{
				ViewCollection* _tmp26_;
				ViewCollection* _tmp27_;
				gint _tmp28_;
				gboolean _tmp29_;
#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp26_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp27_ = _tmp26_;
#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp28_ = view_collection_get_selected_count (_tmp27_);
#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp29_ = _tmp28_ == 1;
#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp27_);
#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp29_) {
#line 9987 "Page.c"
					ViewCollection* _tmp30_;
					ViewCollection* _tmp31_;
					DataView* _tmp32_;
					CheckerboardItem* _tmp33_;
					CheckerboardPageKeyboardModifiers _tmp34_ = {0};
#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp30_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp31_ = _tmp30_;
#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp32_ = view_collection_get_selected_at (_tmp31_, 0);
#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp33_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
					checkerboard_page_keyboard_modifiers_init (&_tmp34_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
					checkerboard_page_on_item_activated (self, _tmp33_, CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD, &_tmp34_);
#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (_tmp33_);
#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
					_data_collection_unref0 (_tmp31_);
#line 10009 "Page.c"
				} else {
#line 1507 "/home/jens/Source/shotwell/src/Page.vala"
					handled = FALSE;
#line 10013 "Page.c"
				}
#line 1508 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10017 "Page.c"
			}
		}
	} else if (_tmp7_ == ((0 != _tmp6_label14) ? _tmp6_label14 : (_tmp6_label14 = g_quark_from_static_string ("space")))) {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 10023 "Page.c"
			default:
			{
				Marker* marker = NULL;
				ViewCollection* _tmp35_;
				ViewCollection* _tmp36_;
				CheckerboardLayout* _tmp37_;
				CheckerboardItem* _tmp38_;
				CheckerboardItem* _tmp39_;
				Marker* _tmp40_;
				Marker* _tmp41_;
				ViewCollection* _tmp42_;
				ViewCollection* _tmp43_;
				Marker* _tmp44_;
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp35_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp36_ = _tmp35_;
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp37_ = self->priv->layout;
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp38_ = checkerboard_layout_get_cursor (_tmp37_);
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp39_ = _tmp38_;
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp40_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_DATA_OBJECT, DataObject));
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp41_ = _tmp40_;
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (_tmp39_);
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp36_);
#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
				marker = _tmp41_;
#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp42_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp43_ = _tmp42_;
#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp44_ = marker;
#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
				view_collection_toggle_marked (_tmp43_, _tmp44_);
#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp43_);
#line 1513 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (marker);
#line 1513 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10071 "Page.c"
			}
		}
	} else {
#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 10077 "Page.c"
			default:
			{
#line 1516 "/home/jens/Source/shotwell/src/Page.vala"
				handled = FALSE;
#line 1517 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10084 "Page.c"
			}
		}
	}
#line 1520 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp45_ = handled;
#line 1520 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp45_) {
#line 1521 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 1521 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 10096 "Page.c"
	}
#line 1523 "/home/jens/Source/shotwell/src/Page.vala"
	if (GTK_WIDGET_CLASS (checkerboard_page_parent_class)->key_press_event != NULL) {
#line 10100 "Page.c"
		GdkEventKey* _tmp47_;
		gboolean _tmp48_;
#line 1523 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp47_ = event;
#line 1523 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp48_ = GTK_WIDGET_CLASS (checkerboard_page_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), gtk_widget_get_type (), GtkWidget), _tmp47_);
#line 1523 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp46_ = _tmp48_;
#line 10109 "Page.c"
	} else {
#line 1523 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp46_ = TRUE;
#line 10113 "Page.c"
	}
#line 1523 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp46_;
#line 1523 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 10119 "Page.c"
}


static gboolean checkerboard_page_real_on_left_click (Page* base, GdkEventButton* event) {
	CheckerboardPage * self;
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	GdkEventButton* _tmp1_;
	GdkEventType _tmp2_;
	guint state = 0U;
	GdkEventButton* _tmp5_;
	GdkModifierType _tmp6_;
	CheckerboardItem* item = NULL;
	GdkEventButton* _tmp7_;
	gdouble _tmp8_;
	GdkEventButton* _tmp9_;
	gdouble _tmp10_;
	CheckerboardItem* _tmp11_;
	CheckerboardItem* _tmp12_;
	ViewCollection* _tmp106_;
	ViewCollection* _tmp107_;
	gint _tmp108_;
	gboolean _tmp109_;
#line 1526 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1526 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = event;
#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_->type;
#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ != GDK_BUTTON_PRESS) {
#line 10153 "Page.c"
		GdkEventButton* _tmp3_;
		GdkEventType _tmp4_;
#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = event;
#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _tmp3_->type;
#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = _tmp4_ != GDK_2BUTTON_PRESS;
#line 10162 "Page.c"
	} else {
#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = FALSE;
#line 10166 "Page.c"
	}
#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 10174 "Page.c"
	}
#line 1532 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = event;
#line 1532 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = _tmp5_->state;
#line 1532 "/home/jens/Source/shotwell/src/Page.vala"
	state = (guint) (_tmp6_ & (GDK_CONTROL_MASK | GDK_SHIFT_MASK));
#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = event;
#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = _tmp7_->x;
#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = event;
#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = _tmp9_->y;
#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = checkerboard_page_get_item_at_pixel (self, _tmp8_, _tmp10_);
#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
	item = _tmp11_;
#line 1537 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = item;
#line 1537 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp12_ != NULL) {
#line 10198 "Page.c"
		CheckerboardLayout* _tmp13_;
		CheckerboardItem* _tmp14_;
		GdkEventButton* _tmp15_;
		gdouble _tmp16_;
		GdkEventButton* _tmp17_;
		gdouble _tmp18_;
		GdkEventButton* _tmp19_;
		GdkModifierType _tmp20_;
		gboolean _tmp21_;
		guint _tmp22_;
		CheckerboardLayout* _tmp80_;
		CheckerboardItem* _tmp81_;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = self->priv->layout;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp14_ = item;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp15_ = event;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = _tmp15_->x;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp17_ = event;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = _tmp17_->y;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp19_ = event;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp20_ = _tmp19_->state;
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = checkerboard_layout_handle_left_click (_tmp13_, _tmp14_, _tmp16_, _tmp18_, _tmp20_);
#line 1540 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp21_) {
#line 1541 "/home/jens/Source/shotwell/src/Page.vala"
			result = TRUE;
#line 1541 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (item);
#line 1541 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 10237 "Page.c"
		}
#line 1543 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp22_ = state;
#line 1543 "/home/jens/Source/shotwell/src/Page.vala"
		switch (_tmp22_) {
#line 1543 "/home/jens/Source/shotwell/src/Page.vala"
			case GDK_CONTROL_MASK:
#line 10245 "Page.c"
			{
				Marker* marker = NULL;
				ViewCollection* _tmp23_;
				ViewCollection* _tmp24_;
				CheckerboardItem* _tmp25_;
				Marker* _tmp26_;
				Marker* _tmp27_;
				ViewCollection* _tmp28_;
				ViewCollection* _tmp29_;
				Marker* _tmp30_;
				CheckerboardItem* _tmp31_;
				gboolean _tmp32_;
#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp23_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp24_ = _tmp23_;
#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp25_ = item;
#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp26_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_OBJECT, DataObject));
#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp27_ = _tmp26_;
#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp24_);
#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
				marker = _tmp27_;
#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp28_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp29_ = _tmp28_;
#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp30_ = marker;
#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
				view_collection_toggle_marked (_tmp29_, _tmp30_);
#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp29_);
#line 1550 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp31_ = item;
#line 1550 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp32_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_VIEW, DataView));
#line 1550 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp32_) {
#line 10288 "Page.c"
					CheckerboardItem* _tmp33_;
					CheckerboardItem* _tmp34_;
					CheckerboardItem* _tmp35_;
					CheckerboardItem* _tmp36_;
#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp33_ = item;
#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp34_ = _g_object_ref0 (_tmp33_);
#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (self->anchor);
#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
					self->anchor = _tmp34_;
#line 1552 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp35_ = item;
#line 1552 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp36_ = _g_object_ref0 (_tmp35_);
#line 1552 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (self->cursor);
#line 1552 "/home/jens/Source/shotwell/src/Page.vala"
					self->cursor = _tmp36_;
#line 10309 "Page.c"
				}
#line 1554 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (marker);
#line 1554 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10315 "Page.c"
			}
#line 1543 "/home/jens/Source/shotwell/src/Page.vala"
			case GDK_SHIFT_MASK:
#line 10319 "Page.c"
			{
				ViewCollection* _tmp37_;
				ViewCollection* _tmp38_;
				CheckerboardItem* _tmp39_;
				CheckerboardItem* _tmp42_;
				CheckerboardItem* _tmp43_;
				CheckerboardItem* _tmp44_;
				CheckerboardItem* _tmp45_;
#line 1557 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp37_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1557 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp38_ = _tmp37_;
#line 1557 "/home/jens/Source/shotwell/src/Page.vala"
				view_collection_unselect_all (_tmp38_);
#line 1557 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp38_);
#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp39_ = self->anchor;
#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp39_ == NULL) {
#line 10340 "Page.c"
					CheckerboardItem* _tmp40_;
					CheckerboardItem* _tmp41_;
#line 1560 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp40_ = item;
#line 1560 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp41_ = _g_object_ref0 (_tmp40_);
#line 1560 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (self->anchor);
#line 1560 "/home/jens/Source/shotwell/src/Page.vala"
					self->anchor = _tmp41_;
#line 10351 "Page.c"
				}
#line 1562 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp42_ = self->anchor;
#line 1562 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp43_ = item;
#line 1562 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_select_between_items (self, _tmp42_, _tmp43_);
#line 1564 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp44_ = item;
#line 1564 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp45_ = _g_object_ref0 (_tmp44_);
#line 1564 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->cursor);
#line 1564 "/home/jens/Source/shotwell/src/Page.vala"
				self->cursor = _tmp45_;
#line 1565 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10369 "Page.c"
			}
#line 1543 "/home/jens/Source/shotwell/src/Page.vala"
			case GDK_CONTROL_MASK | GDK_SHIFT_MASK:
#line 10373 "Page.c"
			{
				CheckerboardItem* _tmp46_;
				CheckerboardItem* _tmp49_;
				CheckerboardItem* _tmp50_;
				CheckerboardItem* _tmp51_;
				CheckerboardItem* _tmp52_;
#line 1572 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp46_ = self->anchor;
#line 1572 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp46_ == NULL) {
#line 10384 "Page.c"
					CheckerboardItem* _tmp47_;
					CheckerboardItem* _tmp48_;
#line 1573 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp47_ = item;
#line 1573 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp48_ = _g_object_ref0 (_tmp47_);
#line 1573 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (self->anchor);
#line 1573 "/home/jens/Source/shotwell/src/Page.vala"
					self->anchor = _tmp48_;
#line 10395 "Page.c"
				}
#line 1575 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp49_ = self->anchor;
#line 1575 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp50_ = item;
#line 1575 "/home/jens/Source/shotwell/src/Page.vala"
				checkerboard_page_select_between_items (self, _tmp49_, _tmp50_);
#line 1577 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp51_ = item;
#line 1577 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp52_ = _g_object_ref0 (_tmp51_);
#line 1577 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->cursor);
#line 1577 "/home/jens/Source/shotwell/src/Page.vala"
				self->cursor = _tmp52_;
#line 1578 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10413 "Page.c"
			}
			default:
			{
				GdkEventButton* _tmp53_;
				GdkEventType _tmp54_;
				CheckerboardItem* _tmp76_;
				CheckerboardItem* _tmp77_;
				CheckerboardItem* _tmp78_;
				CheckerboardItem* _tmp79_;
#line 1581 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp53_ = event;
#line 1581 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp54_ = _tmp53_->type;
#line 1581 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp54_ == GDK_2BUTTON_PRESS) {
#line 10429 "Page.c"
					CheckerboardItem* _tmp55_;
					CheckerboardItem* _tmp56_;
#line 1582 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp55_ = item;
#line 1582 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp56_ = _g_object_ref0 (_tmp55_);
#line 1582 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (self->priv->activated_item);
#line 1582 "/home/jens/Source/shotwell/src/Page.vala"
					self->priv->activated_item = _tmp56_;
#line 10440 "Page.c"
				} else {
					CheckerboardItem* _tmp57_;
					gboolean _tmp58_;
#line 1588 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp57_ = item;
#line 1588 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp58_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, TYPE_DATA_VIEW, DataView));
#line 1588 "/home/jens/Source/shotwell/src/Page.vala"
					if (!_tmp58_) {
#line 10450 "Page.c"
						Marker* all = NULL;
						ViewCollection* _tmp59_;
						ViewCollection* _tmp60_;
						Marker* _tmp61_;
						Marker* _tmp62_;
						Marker* _tmp63_;
						ViewCollection* _tmp64_;
						ViewCollection* _tmp65_;
						GeeList* _tmp66_;
						GeeList* _tmp67_;
						ViewCollection* _tmp68_;
						ViewCollection* _tmp69_;
						Marker* _tmp70_;
						ViewCollection* _tmp71_;
						ViewCollection* _tmp72_;
						CheckerboardItem* _tmp73_;
						Marker* _tmp74_;
						Marker* _tmp75_;
#line 1589 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp59_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1589 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp60_ = _tmp59_;
#line 1589 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp61_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_DATA_COLLECTION, DataCollection));
#line 1589 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp62_ = _tmp61_;
#line 1589 "/home/jens/Source/shotwell/src/Page.vala"
						_data_collection_unref0 (_tmp60_);
#line 1589 "/home/jens/Source/shotwell/src/Page.vala"
						all = _tmp62_;
#line 1590 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp63_ = all;
#line 1590 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp64_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1590 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp65_ = _tmp64_;
#line 1590 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp66_ = view_collection_get_selected (_tmp65_);
#line 1590 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp67_ = _tmp66_;
#line 1590 "/home/jens/Source/shotwell/src/Page.vala"
						marker_mark_many (_tmp63_, G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GEE_TYPE_COLLECTION, GeeCollection));
#line 1590 "/home/jens/Source/shotwell/src/Page.vala"
						_g_object_unref0 (_tmp67_);
#line 1590 "/home/jens/Source/shotwell/src/Page.vala"
						_data_collection_unref0 (_tmp65_);
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp68_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp69_ = _tmp68_;
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp70_ = all;
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp71_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp72_ = _tmp71_;
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp73_ = item;
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp74_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, TYPE_DATA_OBJECT, DataObject));
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_tmp75_ = _tmp74_;
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						view_collection_unselect_and_select_marked (_tmp69_, _tmp70_, _tmp75_);
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_g_object_unref0 (_tmp75_);
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_data_collection_unref0 (_tmp72_);
#line 1592 "/home/jens/Source/shotwell/src/Page.vala"
						_data_collection_unref0 (_tmp69_);
#line 1588 "/home/jens/Source/shotwell/src/Page.vala"
						_g_object_unref0 (all);
#line 10523 "Page.c"
					}
				}
#line 1596 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp76_ = item;
#line 1596 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp77_ = _g_object_ref0 (_tmp76_);
#line 1596 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->anchor);
#line 1596 "/home/jens/Source/shotwell/src/Page.vala"
				self->anchor = _tmp77_;
#line 1597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp78_ = item;
#line 1597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp79_ = _g_object_ref0 (_tmp78_);
#line 1597 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->cursor);
#line 1597 "/home/jens/Source/shotwell/src/Page.vala"
				self->cursor = _tmp79_;
#line 1598 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10544 "Page.c"
			}
		}
#line 1600 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp80_ = self->priv->layout;
#line 1600 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp81_ = item;
#line 1600 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_layout_set_cursor (_tmp80_, _tmp81_);
#line 10553 "Page.c"
	} else {
		guint _tmp82_;
		GeeArrayList* _tmp85_;
		CheckerboardLayout* _tmp101_;
		GdkEventButton* _tmp102_;
		gdouble _tmp103_;
		GdkEventButton* _tmp104_;
		gdouble _tmp105_;
#line 1604 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp82_ = state;
#line 1604 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp82_ != ((guint) GDK_CONTROL_MASK)) {
#line 10566 "Page.c"
			ViewCollection* _tmp83_;
			ViewCollection* _tmp84_;
#line 1605 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp83_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1605 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp84_ = _tmp83_;
#line 1605 "/home/jens/Source/shotwell/src/Page.vala"
			view_collection_unselect_all (_tmp84_);
#line 1605 "/home/jens/Source/shotwell/src/Page.vala"
			_data_collection_unref0 (_tmp84_);
#line 10577 "Page.c"
		}
#line 1608 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp85_ = gee_array_list_new (TYPE_CHECKERBOARD_ITEM, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 1608 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->priv->previously_selected);
#line 1608 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->previously_selected = _tmp85_;
#line 10585 "Page.c"
		{
			GeeList* _view_list = NULL;
			ViewCollection* _tmp86_;
			ViewCollection* _tmp87_;
			GeeList* _tmp88_;
			GeeList* _tmp89_;
			gint _view_size = 0;
			GeeList* _tmp90_;
			gint _tmp91_;
			gint _tmp92_;
			gint _view_index = 0;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp86_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp87_ = _tmp86_;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp88_ = view_collection_get_selected (_tmp87_);
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp89_ = _tmp88_;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_data_collection_unref0 (_tmp87_);
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_view_list = _tmp89_;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp90_ = _view_list;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp91_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, GEE_TYPE_COLLECTION, GeeCollection));
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp92_ = _tmp91_;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_view_size = _tmp92_;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_view_index = -1;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			while (TRUE) {
#line 10621 "Page.c"
				gint _tmp93_;
				gint _tmp94_;
				gint _tmp95_;
				DataView* view = NULL;
				GeeList* _tmp96_;
				gint _tmp97_;
				gpointer _tmp98_;
				GeeArrayList* _tmp99_;
				DataView* _tmp100_;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp93_ = _view_index;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				_view_index = _tmp93_ + 1;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp94_ = _view_index;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp95_ = _view_size;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				if (!(_tmp94_ < _tmp95_)) {
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
					break;
#line 10643 "Page.c"
				}
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp96_ = _view_list;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp97_ = _view_index;
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp98_ = gee_list_get (_tmp96_, _tmp97_);
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				view = (DataView*) _tmp98_;
#line 1610 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp99_ = self->priv->previously_selected;
#line 1610 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp100_ = view;
#line 1610 "/home/jens/Source/shotwell/src/Page.vala"
				gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (view);
#line 10661 "Page.c"
			}
#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_view_list);
#line 10665 "Page.c"
		}
#line 1612 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp101_ = self->priv->layout;
#line 1612 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp102_ = event;
#line 1612 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp103_ = _tmp102_->x;
#line 1612 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp104_ = event;
#line 1612 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp105_ = _tmp104_->y;
#line 1612 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_layout_set_drag_select_origin (_tmp101_, (gint) _tmp103_, (gint) _tmp105_);
#line 1614 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 1614 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (item);
#line 1614 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 10685 "Page.c"
	}
#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp106_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp107_ = _tmp106_;
#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp108_ = view_collection_get_selected_count (_tmp107_);
#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp109_ = _tmp108_ == 0;
#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp107_);
#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp109_;
#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (item);
#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 10703 "Page.c"
}


static gboolean checkerboard_page_real_on_left_released (Page* base, GdkEventButton* event) {
	CheckerboardPage * self;
	gboolean result = FALSE;
	CheckerboardLayout* _tmp0_;
	gboolean _tmp1_;
	GdkEventButton* _tmp5_;
	GdkModifierType _tmp6_;
	CheckerboardItem* _tmp7_;
	CheckerboardItem* item = NULL;
	GdkEventButton* _tmp10_;
	gdouble _tmp11_;
	GdkEventButton* _tmp12_;
	gdouble _tmp13_;
	CheckerboardItem* _tmp14_;
	CheckerboardItem* _tmp15_;
	CheckerboardItem* _tmp16_;
	CheckerboardItem* _tmp17_;
#line 1623 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1623 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1624 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->previously_selected);
#line 1624 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->previously_selected = NULL;
#line 1627 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1627 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = checkerboard_layout_is_drag_select_active (_tmp0_);
#line 1627 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_) {
#line 10738 "Page.c"
		CheckerboardLayout* _tmp2_;
		CheckerboardItem* _tmp3_;
		CheckerboardItem* _tmp4_;
#line 1628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->priv->layout;
#line 1628 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_layout_clear_drag_select (_tmp2_);
#line 1629 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = self->cursor;
#line 1629 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _g_object_ref0 (_tmp3_);
#line 1629 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->anchor);
#line 1629 "/home/jens/Source/shotwell/src/Page.vala"
		self->anchor = _tmp4_;
#line 1631 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 1631 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 10758 "Page.c"
	}
#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = event;
#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = _tmp5_->state;
#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
	if ((_tmp6_ & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) != 0) {
#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 10770 "Page.c"
	}
#line 1639 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = self->priv->activated_item;
#line 1639 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp7_ != NULL) {
#line 10776 "Page.c"
		CheckerboardItem* _tmp8_;
		CheckerboardPageKeyboardModifiers _tmp9_ = {0};
#line 1640 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = self->priv->activated_item;
#line 1640 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_page_keyboard_modifiers_init (&_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1640 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_page_on_item_activated (self, _tmp8_, CHECKERBOARD_PAGE_ACTIVATOR_MOUSE, &_tmp9_);
#line 1641 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->priv->activated_item);
#line 1641 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->activated_item = NULL;
#line 1643 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 1643 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 10793 "Page.c"
	}
#line 1646 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = event;
#line 1646 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = _tmp10_->x;
#line 1646 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = event;
#line 1646 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = _tmp12_->y;
#line 1646 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = checkerboard_page_get_item_at_pixel (self, _tmp11_, _tmp13_);
#line 1646 "/home/jens/Source/shotwell/src/Page.vala"
	item = _tmp14_;
#line 1647 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = item;
#line 1647 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp15_ == NULL) {
#line 1649 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 1649 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (item);
#line 1649 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 10817 "Page.c"
	}
#line 1652 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = self->cursor;
#line 1652 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = item;
#line 1652 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp16_ != _tmp17_) {
#line 10825 "Page.c"
		ViewCollection* _tmp18_;
		ViewCollection* _tmp19_;
#line 1655 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1655 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp19_ = _tmp18_;
#line 1655 "/home/jens/Source/shotwell/src/Page.vala"
		view_collection_unselect_all (_tmp19_);
#line 1655 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp19_);
#line 10836 "Page.c"
	} else {
		CheckerboardItem* _tmp20_;
		gboolean _tmp21_;
#line 1661 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp20_ = item;
#line 1661 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_VIEW, DataView));
#line 1661 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp21_) {
#line 10846 "Page.c"
			ViewCollection* _tmp22_;
			ViewCollection* _tmp23_;
			CheckerboardItem* _tmp24_;
#line 1662 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp22_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1662 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp23_ = _tmp22_;
#line 1662 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp24_ = item;
#line 1662 "/home/jens/Source/shotwell/src/Page.vala"
			view_collection_unselect_all_but (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_VIEW, DataView));
#line 1662 "/home/jens/Source/shotwell/src/Page.vala"
			_data_collection_unref0 (_tmp23_);
#line 10860 "Page.c"
		}
	}
#line 1665 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 1665 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (item);
#line 1665 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 10869 "Page.c"
}


static gboolean checkerboard_page_real_on_right_click (Page* base, GdkEventButton* event) {
	CheckerboardPage * self;
	gboolean result = FALSE;
	GdkEventButton* _tmp0_;
	GdkEventType _tmp1_;
	CheckerboardItem* item = NULL;
	GdkEventButton* _tmp2_;
	gdouble _tmp3_;
	GdkEventButton* _tmp4_;
	gdouble _tmp5_;
	CheckerboardItem* _tmp6_;
	CheckerboardItem* _tmp7_;
	GtkMenu* context_menu = NULL;
	GtkMenu* _tmp39_;
	GtkMenu* _tmp40_;
	GdkEventButton* _tmp41_;
	gboolean _tmp42_;
#line 1668 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1668 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1670 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = event;
#line 1670 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_->type;
#line 1670 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ != GDK_BUTTON_PRESS) {
#line 1671 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 1671 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 10904 "Page.c"
	}
#line 1674 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = event;
#line 1674 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_->x;
#line 1674 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = event;
#line 1674 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _tmp4_->y;
#line 1674 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = checkerboard_page_get_item_at_pixel (self, _tmp3_, _tmp5_);
#line 1674 "/home/jens/Source/shotwell/src/Page.vala"
	item = _tmp6_;
#line 1675 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = item;
#line 1675 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp7_ != NULL) {
#line 10922 "Page.c"
		GdkEventButton* _tmp8_;
		GdkModifierType _tmp9_;
#line 1677 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = event;
#line 1677 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _tmp8_->state;
#line 1677 "/home/jens/Source/shotwell/src/Page.vala"
		switch (_tmp9_ & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) {
#line 1677 "/home/jens/Source/shotwell/src/Page.vala"
			case GDK_CONTROL_MASK:
#line 10933 "Page.c"
			{
				Marker* marker = NULL;
				ViewCollection* _tmp10_;
				ViewCollection* _tmp11_;
				CheckerboardItem* _tmp12_;
				Marker* _tmp13_;
				Marker* _tmp14_;
				ViewCollection* _tmp15_;
				ViewCollection* _tmp16_;
				Marker* _tmp17_;
#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp10_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp11_ = _tmp10_;
#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp12_ = item;
#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp13_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp14_ = _tmp13_;
#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp11_);
#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
				marker = _tmp14_;
#line 1681 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp15_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1681 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp16_ = _tmp15_;
#line 1681 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp17_ = marker;
#line 1681 "/home/jens/Source/shotwell/src/Page.vala"
				view_collection_toggle_marked (_tmp16_, _tmp17_);
#line 1681 "/home/jens/Source/shotwell/src/Page.vala"
				_data_collection_unref0 (_tmp16_);
#line 1682 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (marker);
#line 1682 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10972 "Page.c"
			}
#line 1677 "/home/jens/Source/shotwell/src/Page.vala"
			case GDK_SHIFT_MASK:
#line 10976 "Page.c"
			{
#line 1686 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10980 "Page.c"
			}
#line 1677 "/home/jens/Source/shotwell/src/Page.vala"
			case GDK_CONTROL_MASK | GDK_SHIFT_MASK:
#line 10984 "Page.c"
			{
#line 1690 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 10988 "Page.c"
			}
			default:
			{
				CheckerboardItem* _tmp18_;
				gboolean _tmp19_;
#line 1695 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp18_ = item;
#line 1695 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp19_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_VIEW, DataView));
#line 1695 "/home/jens/Source/shotwell/src/Page.vala"
				if (!_tmp19_) {
#line 11000 "Page.c"
					Marker* all = NULL;
					ViewCollection* _tmp20_;
					ViewCollection* _tmp21_;
					Marker* _tmp22_;
					Marker* _tmp23_;
					Marker* _tmp24_;
					ViewCollection* _tmp25_;
					ViewCollection* _tmp26_;
					GeeList* _tmp27_;
					GeeList* _tmp28_;
					ViewCollection* _tmp29_;
					ViewCollection* _tmp30_;
					Marker* _tmp31_;
					ViewCollection* _tmp32_;
					ViewCollection* _tmp33_;
					CheckerboardItem* _tmp34_;
					Marker* _tmp35_;
					Marker* _tmp36_;
#line 1696 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp20_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1696 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp21_ = _tmp20_;
#line 1696 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp22_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection));
#line 1696 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp23_ = _tmp22_;
#line 1696 "/home/jens/Source/shotwell/src/Page.vala"
					_data_collection_unref0 (_tmp21_);
#line 1696 "/home/jens/Source/shotwell/src/Page.vala"
					all = _tmp23_;
#line 1697 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp24_ = all;
#line 1697 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp25_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1697 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp26_ = _tmp25_;
#line 1697 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp27_ = view_collection_get_selected (_tmp26_);
#line 1697 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp28_ = _tmp27_;
#line 1697 "/home/jens/Source/shotwell/src/Page.vala"
					marker_mark_many (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection));
#line 1697 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (_tmp28_);
#line 1697 "/home/jens/Source/shotwell/src/Page.vala"
					_data_collection_unref0 (_tmp26_);
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp29_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp30_ = _tmp29_;
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp31_ = all;
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp32_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp33_ = _tmp32_;
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp34_ = item;
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp35_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_DATA_OBJECT, DataObject));
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp36_ = _tmp35_;
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					view_collection_unselect_and_select_marked (_tmp30_, _tmp31_, _tmp36_);
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (_tmp36_);
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_data_collection_unref0 (_tmp33_);
#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
					_data_collection_unref0 (_tmp30_);
#line 1695 "/home/jens/Source/shotwell/src/Page.vala"
					_g_object_unref0 (all);
#line 11073 "Page.c"
				}
#line 1701 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 11077 "Page.c"
			}
		}
	} else {
		ViewCollection* _tmp37_;
		ViewCollection* _tmp38_;
#line 1705 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp37_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1705 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp38_ = _tmp37_;
#line 1705 "/home/jens/Source/shotwell/src/Page.vala"
		view_collection_unselect_all (_tmp38_);
#line 1705 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp38_);
#line 11091 "Page.c"
	}
#line 1708 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp39_ = checkerboard_page_get_context_menu (self);
#line 1708 "/home/jens/Source/shotwell/src/Page.vala"
	context_menu = _tmp39_;
#line 1709 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp40_ = context_menu;
#line 1709 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp41_ = event;
#line 1709 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp42_ = page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp40_, _tmp41_);
#line 1709 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp42_;
#line 1709 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (context_menu);
#line 1709 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (item);
#line 1709 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 11111 "Page.c"
}


static gboolean checkerboard_page_real_on_mouse_over (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask) {
	gboolean result = FALSE;
	CheckerboardItem* _tmp0_;
	CheckerboardItem* _tmp6_;
	CheckerboardItem* _tmp7_;
	CheckerboardItem* _tmp8_;
	CheckerboardItem* _tmp10_;
	CheckerboardItem* _tmp11_;
	CheckerboardItem* _tmp12_;
	CheckerboardItem* _tmp13_;
#line 1712 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail ((item == NULL) || IS_CHECKERBOARD_ITEM (item), FALSE);
#line 1713 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = item;
#line 1713 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ != NULL) {
#line 11131 "Page.c"
		CheckerboardLayout* _tmp1_;
		CheckerboardItem* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		GdkModifierType _tmp5_;
#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = self->priv->layout;
#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = item;
#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = x;
#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = y;
#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = mask;
#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_layout_handle_mouse_motion (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
#line 11149 "Page.c"
	}
#line 1718 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = item;
#line 1718 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = self->priv->highlighted;
#line 1718 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp6_ == _tmp7_) {
#line 1719 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 1719 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 11161 "Page.c"
	}
#line 1722 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = self->priv->highlighted;
#line 1722 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp8_ != NULL) {
#line 11167 "Page.c"
		CheckerboardItem* _tmp9_;
#line 1723 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = self->priv->highlighted;
#line 1723 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_item_unbrighten (_tmp9_);
#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->priv->highlighted);
#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->highlighted = NULL;
#line 11177 "Page.c"
	}
#line 1728 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = item;
#line 1728 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp10_ == NULL) {
#line 1729 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 1729 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 11187 "Page.c"
	}
#line 1732 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = item;
#line 1732 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_item_brighten (_tmp11_);
#line 1733 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = item;
#line 1733 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = _g_object_ref0 (_tmp12_);
#line 1733 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->highlighted);
#line 1733 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->highlighted = _tmp13_;
#line 1735 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 1735 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 11205 "Page.c"
}


gboolean checkerboard_page_on_mouse_over (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask) {
#line 1712 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), FALSE);
#line 1712 "/home/jens/Source/shotwell/src/Page.vala"
	return CHECKERBOARD_PAGE_GET_CLASS (self)->on_mouse_over (self, item, x, y, mask);
#line 11214 "Page.c"
}


static gboolean _checkerboard_page_selection_autoscroll_gsource_func (gpointer self) {
	gboolean result;
	result = checkerboard_page_selection_autoscroll ((CheckerboardPage*) self);
#line 1755 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 11223 "Page.c"
}


static gboolean checkerboard_page_real_on_motion (Page* base, GdkEventMotion* event, gint x, gint y, GdkModifierType mask) {
	CheckerboardPage * self;
	gboolean result = FALSE;
	gint _tmp0_;
	gint _tmp1_;
	CheckerboardItem* _tmp2_;
	CheckerboardItem* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	GdkModifierType _tmp6_;
	gboolean _tmp7_;
	gboolean _tmp8_;
	CheckerboardLayout* _tmp9_;
	gboolean _tmp10_;
	CheckerboardLayout* _tmp11_;
	gint _tmp12_;
	gint _tmp13_;
	gboolean _tmp14_ = FALSE;
	gboolean _tmp15_;
#line 1738 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1738 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = x;
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = y;
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = checkerboard_page_get_item_at_pixel (self, (gdouble) _tmp0_, (gdouble) _tmp1_);
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = x;
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = y;
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = mask;
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = checkerboard_page_on_mouse_over (self, _tmp3_, _tmp4_, _tmp5_, _tmp6_);
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = !_tmp7_;
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp3_);
#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp8_) {
#line 1741 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 1741 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 11276 "Page.c"
	}
#line 1744 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = self->priv->layout;
#line 1744 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = checkerboard_layout_is_drag_select_active (_tmp9_);
#line 1744 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp10_) {
#line 1745 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 1745 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 11288 "Page.c"
	}
#line 1748 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = self->priv->layout;
#line 1748 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = x;
#line 1748 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = y;
#line 1748 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_set_drag_select_endpoint (_tmp11_, _tmp12_, _tmp13_);
#line 1750 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_updated_selection_band (self);
#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = self->priv->autoscroll_scheduled;
#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp15_) {
#line 11304 "Page.c"
		GtkAdjustment* _tmp16_;
		gint _tmp17_;
		AdjustmentRelation _tmp18_;
#line 1754 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
#line 1754 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp17_ = y;
#line 1754 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = get_adjustment_relation (_tmp16_, _tmp17_);
#line 1754 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp14_ = _tmp18_ != ADJUSTMENT_RELATION_IN_RANGE;
#line 11316 "Page.c"
	} else {
#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp14_ = FALSE;
#line 11320 "Page.c"
	}
#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp14_) {
#line 1755 "/home/jens/Source/shotwell/src/Page.vala"
		g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) CHECKERBOARD_PAGE_AUTOSCROLL_TICKS_MSEC, _checkerboard_page_selection_autoscroll_gsource_func, g_object_ref (self), g_object_unref);
#line 1756 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->autoscroll_scheduled = TRUE;
#line 11328 "Page.c"
	}
#line 1760 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 1760 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 11334 "Page.c"
}


static void checkerboard_page_updated_selection_band (CheckerboardPage* self) {
	CheckerboardLayout* _tmp0_;
	gboolean _tmp1_;
	GeeList* intersection = NULL;
	CheckerboardLayout* _tmp2_;
	GeeList* _tmp3_;
	GeeList* _tmp4_;
	Marker* to_unselect = NULL;
	ViewCollection* _tmp5_;
	ViewCollection* _tmp6_;
	Marker* _tmp7_;
	Marker* _tmp8_;
	Marker* to_select = NULL;
	ViewCollection* _tmp9_;
	ViewCollection* _tmp10_;
	Marker* _tmp11_;
	Marker* _tmp12_;
	Marker* _tmp13_;
	ViewCollection* _tmp14_;
	ViewCollection* _tmp15_;
	GeeList* _tmp16_;
	GeeList* _tmp17_;
	GeeArrayList* _tmp18_;
	Marker* _tmp19_;
	GeeArrayList* _tmp20_;
	Marker* _tmp21_;
	GeeArrayList* _tmp22_;
	ViewCollection* _tmp44_;
	ViewCollection* _tmp45_;
	Marker* _tmp46_;
	ViewCollection* _tmp47_;
	ViewCollection* _tmp48_;
	Marker* _tmp49_;
#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1764 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1764 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = checkerboard_layout_is_drag_select_active (_tmp0_);
#line 1764 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp1_, "layout.is_drag_select_active()");
#line 1767 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->layout;
#line 1767 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = checkerboard_layout_items_in_selection_band (_tmp2_);
#line 1767 "/home/jens/Source/shotwell/src/Page.vala"
	intersection = _tmp3_;
#line 1768 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = intersection;
#line 1768 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ == NULL) {
#line 1769 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (intersection);
#line 1769 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 11393 "Page.c"
	}
#line 1771 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1771 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = _tmp5_;
#line 1771 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
#line 1771 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = _tmp7_;
#line 1771 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp6_);
#line 1771 "/home/jens/Source/shotwell/src/Page.vala"
	to_unselect = _tmp8_;
#line 1772 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1772 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = _tmp9_;
#line 1772 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection));
#line 1772 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = _tmp11_;
#line 1772 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp10_);
#line 1772 "/home/jens/Source/shotwell/src/Page.vala"
	to_select = _tmp12_;
#line 1775 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = to_unselect;
#line 1775 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1775 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = _tmp14_;
#line 1775 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = view_collection_get_selected (_tmp15_);
#line 1775 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = _tmp16_;
#line 1775 "/home/jens/Source/shotwell/src/Page.vala"
	marker_mark_many (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
#line 1775 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp17_);
#line 1775 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp15_);
#line 1778 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp18_ = self->priv->previously_selected;
#line 1778 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp18_ != NULL, "previously_selected != null");
#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp19_ = to_unselect;
#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp20_ = self->priv->previously_selected;
#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
	marker_unmark_many (_tmp19_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
#line 1780 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp21_ = to_select;
#line 1780 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp22_ = self->priv->previously_selected;
#line 1780 "/home/jens/Source/shotwell/src/Page.vala"
	marker_mark_many (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection));
#line 1783 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->cursor);
#line 1783 "/home/jens/Source/shotwell/src/Page.vala"
	self->cursor = NULL;
#line 11455 "Page.c"
	{
		GeeList* _item_list = NULL;
		GeeList* _tmp23_;
		GeeList* _tmp24_;
		gint _item_size = 0;
		GeeList* _tmp25_;
		gint _tmp26_;
		gint _tmp27_;
		gint _item_index = 0;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = intersection;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp24_ = _g_object_ref0 (_tmp23_);
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_item_list = _tmp24_;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp25_ = _item_list;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp26_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp27_ = _tmp26_;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_item_size = _tmp27_;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_item_index = -1;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		while (TRUE) {
#line 11483 "Page.c"
			gint _tmp28_;
			gint _tmp29_;
			gint _tmp30_;
			CheckerboardItem* item = NULL;
			GeeList* _tmp31_;
			gint _tmp32_;
			gpointer _tmp33_;
			Marker* _tmp34_;
			CheckerboardItem* _tmp35_;
			gboolean _tmp36_;
			CheckerboardItem* _tmp41_;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp28_ = _item_index;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			_item_index = _tmp28_ + 1;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp29_ = _item_index;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp30_ = _item_size;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			if (!(_tmp29_ < _tmp30_)) {
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 11507 "Page.c"
			}
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp31_ = _item_list;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp32_ = _item_index;
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp33_ = gee_list_get (_tmp31_, _tmp32_);
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			item = (CheckerboardItem*) _tmp33_;
#line 1786 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp34_ = to_select;
#line 1786 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp35_ = item;
#line 1786 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp36_ = marker_toggle (_tmp34_, G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_DATA_OBJECT, DataObject));
#line 1786 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp36_) {
#line 11525 "Page.c"
				Marker* _tmp37_;
				CheckerboardItem* _tmp38_;
#line 1787 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp37_ = to_unselect;
#line 1787 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp38_ = item;
#line 1787 "/home/jens/Source/shotwell/src/Page.vala"
				marker_unmark (_tmp37_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_DATA_OBJECT, DataObject));
#line 11534 "Page.c"
			} else {
				Marker* _tmp39_;
				CheckerboardItem* _tmp40_;
#line 1789 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp39_ = to_unselect;
#line 1789 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp40_ = item;
#line 1789 "/home/jens/Source/shotwell/src/Page.vala"
				marker_mark (_tmp39_, G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_DATA_OBJECT, DataObject));
#line 11544 "Page.c"
			}
#line 1791 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp41_ = self->cursor;
#line 1791 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp41_ == NULL) {
#line 11550 "Page.c"
				CheckerboardItem* _tmp42_;
				CheckerboardItem* _tmp43_;
#line 1792 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp42_ = item;
#line 1792 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp43_ = _g_object_ref0 (_tmp42_);
#line 1792 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->cursor);
#line 1792 "/home/jens/Source/shotwell/src/Page.vala"
				self->cursor = _tmp43_;
#line 11561 "Page.c"
			}
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (item);
#line 11565 "Page.c"
		}
#line 1785 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_item_list);
#line 11569 "Page.c"
	}
#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp44_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp45_ = _tmp44_;
#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp46_ = to_select;
#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
	view_collection_select_marked (_tmp45_, _tmp46_);
#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp45_);
#line 1796 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp47_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1796 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp48_ = _tmp47_;
#line 1796 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp49_ = to_unselect;
#line 1796 "/home/jens/Source/shotwell/src/Page.vala"
	view_collection_unselect_marked (_tmp48_, _tmp49_);
#line 1796 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp48_);
#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (to_select);
#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (to_unselect);
#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (intersection);
#line 11597 "Page.c"
}


static gboolean checkerboard_page_selection_autoscroll (CheckerboardPage* self) {
	gboolean result = FALSE;
	CheckerboardLayout* _tmp0_;
	gboolean _tmp1_;
	GtkAdjustment* vadj = NULL;
	GtkAdjustment* _tmp2_;
	GtkAdjustment* _tmp3_;
	gint x = 0;
	gint y = 0;
	GdkModifierType mask = 0;
	gint _tmp4_ = 0;
	gint _tmp5_ = 0;
	GdkModifierType _tmp6_ = 0;
	gint new_value = 0;
	GtkAdjustment* _tmp7_;
	gdouble _tmp8_;
	GtkAdjustment* _tmp9_;
	gint _tmp10_;
	AdjustmentRelation _tmp11_;
	GtkAdjustment* _tmp22_;
	gint _tmp23_;
	GtkAdjustment* _tmp24_;
	gdouble _tmp25_;
	GtkAdjustment* _tmp26_;
	gdouble _tmp27_;
	GtkAdjustment* _tmp28_;
	gdouble _tmp29_;
	gint _tmp30_;
#line 1799 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), FALSE);
#line 1800 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->layout;
#line 1800 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = checkerboard_layout_is_drag_select_active (_tmp0_);
#line 1800 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp1_) {
#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->autoscroll_scheduled = FALSE;
#line 1803 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 1803 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 11643 "Page.c"
	}
#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
	vadj = _tmp3_;
#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
	page_get_event_source_pointer (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), &_tmp4_, &_tmp5_, &_tmp6_);
#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
	x = _tmp4_;
#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
	y = _tmp5_;
#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
	mask = _tmp6_;
#line 1813 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = vadj;
#line 1813 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = gtk_adjustment_get_value (_tmp7_);
#line 1813 "/home/jens/Source/shotwell/src/Page.vala"
	new_value = (gint) _tmp8_;
#line 1814 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = vadj;
#line 1814 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = y;
#line 1814 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = get_adjustment_relation (_tmp9_, _tmp10_);
#line 1814 "/home/jens/Source/shotwell/src/Page.vala"
	switch (_tmp11_) {
#line 1814 "/home/jens/Source/shotwell/src/Page.vala"
		case ADJUSTMENT_RELATION_BELOW:
#line 11675 "Page.c"
		{
			gint _tmp12_;
			CheckerboardLayout* _tmp13_;
			gint _tmp14_;
			gint _tmp15_;
#line 1817 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = new_value;
#line 1817 "/home/jens/Source/shotwell/src/Page.vala"
			new_value = _tmp12_ - CHECKERBOARD_PAGE_AUTOSCROLL_PIXELS;
#line 1818 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = self->priv->layout;
#line 1818 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = x;
#line 1818 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp15_ = new_value;
#line 1818 "/home/jens/Source/shotwell/src/Page.vala"
			checkerboard_layout_set_drag_select_endpoint (_tmp13_, _tmp14_, _tmp15_);
#line 1819 "/home/jens/Source/shotwell/src/Page.vala"
			break;
#line 11695 "Page.c"
		}
#line 1814 "/home/jens/Source/shotwell/src/Page.vala"
		case ADJUSTMENT_RELATION_ABOVE:
#line 11699 "Page.c"
		{
			gint _tmp16_;
			CheckerboardLayout* _tmp17_;
			gint _tmp18_;
			gint _tmp19_;
			GtkAdjustment* _tmp20_;
			gdouble _tmp21_;
#line 1823 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp16_ = new_value;
#line 1823 "/home/jens/Source/shotwell/src/Page.vala"
			new_value = _tmp16_ + CHECKERBOARD_PAGE_AUTOSCROLL_PIXELS;
#line 1824 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp17_ = self->priv->layout;
#line 1824 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp18_ = x;
#line 1824 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp19_ = new_value;
#line 1824 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp20_ = vadj;
#line 1824 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp21_ = gtk_adjustment_get_page_size (_tmp20_);
#line 1824 "/home/jens/Source/shotwell/src/Page.vala"
			checkerboard_layout_set_drag_select_endpoint (_tmp17_, _tmp18_, _tmp19_ + ((gint) _tmp21_));
#line 1825 "/home/jens/Source/shotwell/src/Page.vala"
			break;
#line 11725 "Page.c"
		}
#line 1814 "/home/jens/Source/shotwell/src/Page.vala"
		case ADJUSTMENT_RELATION_IN_RANGE:
#line 11729 "Page.c"
		{
#line 1828 "/home/jens/Source/shotwell/src/Page.vala"
			self->priv->autoscroll_scheduled = FALSE;
#line 1830 "/home/jens/Source/shotwell/src/Page.vala"
			result = FALSE;
#line 1830 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (vadj);
#line 1830 "/home/jens/Source/shotwell/src/Page.vala"
			return result;
#line 11739 "Page.c"
		}
		default:
		{
#line 1833 "/home/jens/Source/shotwell/src/Page.vala"
			g_warn_if_reached ();
#line 1834 "/home/jens/Source/shotwell/src/Page.vala"
			break;
#line 11747 "Page.c"
		}
	}
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp22_ = vadj;
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp23_ = new_value;
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp24_ = vadj;
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp25_ = gtk_adjustment_get_lower (_tmp24_);
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp26_ = vadj;
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp27_ = gtk_adjustment_get_upper (_tmp26_);
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp28_ = vadj;
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp29_ = gtk_adjustment_get_page_size (_tmp28_);
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp30_ = CLAMP (_tmp23_, (gint) _tmp25_, ((gint) _tmp27_) - ((gint) _tmp29_));
#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_adjustment_set_value (_tmp22_, (gdouble) _tmp30_);
#line 1843 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_updated_selection_band (self);
#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (vadj);
#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 11778 "Page.c"
}


void checkerboard_page_cursor_to_item (CheckerboardPage* self, CheckerboardItem* item) {
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
	CheckerboardItem* _tmp2_;
	gboolean _tmp3_;
	CheckerboardItem* _tmp4_;
	CheckerboardItem* _tmp5_;
	gboolean _tmp6_;
	CheckerboardLayout* _tmp17_;
	CheckerboardItem* _tmp18_;
	GtkAdjustment* vadj = NULL;
	GtkAdjustment* _tmp19_;
	GtkAdjustment* _tmp20_;
	gboolean _tmp21_ = FALSE;
	GtkAdjustment* _tmp22_;
	CheckerboardItem* _tmp23_;
	GdkRectangle _tmp24_;
	gint _tmp25_;
	AdjustmentRelation _tmp26_;
	gint top = 0;
	CheckerboardItem* _tmp35_;
	GdkRectangle _tmp36_;
	gint _tmp37_;
	GtkAdjustment* _tmp38_;
	gdouble _tmp39_;
	GtkAdjustment* _tmp53_;
	gint _tmp54_;
#line 1848 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1848 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = item;
#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp3_, "get_view().contains(item)");
#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp1_);
#line 1851 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = item;
#line 1851 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _g_object_ref0 (_tmp4_);
#line 1851 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->cursor);
#line 1851 "/home/jens/Source/shotwell/src/Page.vala"
	self->cursor = _tmp5_;
#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp6_) {
#line 11837 "Page.c"
		ViewCollection* _tmp7_;
		ViewCollection* _tmp8_;
		Marker* marker = NULL;
		ViewCollection* _tmp9_;
		ViewCollection* _tmp10_;
		CheckerboardItem* _tmp11_;
		Marker* _tmp12_;
		Marker* _tmp13_;
		ViewCollection* _tmp14_;
		ViewCollection* _tmp15_;
		Marker* _tmp16_;
#line 1854 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1854 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _tmp7_;
#line 1854 "/home/jens/Source/shotwell/src/Page.vala"
		view_collection_unselect_all (_tmp8_);
#line 1854 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp8_);
#line 1855 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1855 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = _tmp9_;
#line 1855 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = item;
#line 1855 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_OBJECT, DataObject));
#line 1855 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = _tmp12_;
#line 1855 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp10_);
#line 1855 "/home/jens/Source/shotwell/src/Page.vala"
		marker = _tmp13_;
#line 1856 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1856 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp15_ = _tmp14_;
#line 1856 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = marker;
#line 1856 "/home/jens/Source/shotwell/src/Page.vala"
		view_collection_select_marked (_tmp15_, _tmp16_);
#line 1856 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp15_);
#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (marker);
#line 11883 "Page.c"
	}
#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = self->priv->layout;
#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp18_ = item;
#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_layout_set_cursor (_tmp17_, _tmp18_);
#line 1861 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp19_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
#line 1861 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp20_ = _g_object_ref0 (_tmp19_);
#line 1861 "/home/jens/Source/shotwell/src/Page.vala"
	vadj = _tmp20_;
#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp22_ = vadj;
#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp23_ = item;
#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp24_ = _tmp23_->allocation;
#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp25_ = _tmp24_.y;
#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp26_ = get_adjustment_relation (_tmp22_, _tmp25_);
#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp26_ == ADJUSTMENT_RELATION_IN_RANGE) {
#line 11909 "Page.c"
		GtkAdjustment* _tmp27_;
		CheckerboardItem* _tmp28_;
		GdkRectangle _tmp29_;
		gint _tmp30_;
		CheckerboardItem* _tmp31_;
		GdkRectangle _tmp32_;
		gint _tmp33_;
		AdjustmentRelation _tmp34_;
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp27_ = vadj;
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp28_ = item;
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp29_ = _tmp28_->allocation;
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp30_ = _tmp29_.y;
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp31_ = item;
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp32_ = _tmp31_->allocation;
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp33_ = _tmp32_.height;
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp34_ = get_adjustment_relation (_tmp27_, _tmp30_ + _tmp33_);
#line 1863 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = _tmp34_ == ADJUSTMENT_RELATION_IN_RANGE;
#line 11936 "Page.c"
	} else {
#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = FALSE;
#line 11940 "Page.c"
	}
#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp21_) {
#line 1864 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (vadj);
#line 1864 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 11948 "Page.c"
	}
#line 1867 "/home/jens/Source/shotwell/src/Page.vala"
	top = 0;
#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp35_ = item;
#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp36_ = _tmp35_->allocation;
#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp37_ = _tmp36_.y;
#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp38_ = vadj;
#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp39_ = gtk_adjustment_get_value (_tmp38_);
#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
	if (((gdouble) _tmp37_) < _tmp39_) {
#line 11964 "Page.c"
		CheckerboardItem* _tmp40_;
		GdkRectangle _tmp41_;
		gint _tmp42_;
		gint _tmp43_;
#line 1869 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp40_ = item;
#line 1869 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp41_ = _tmp40_->allocation;
#line 1869 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp42_ = _tmp41_.y;
#line 1869 "/home/jens/Source/shotwell/src/Page.vala"
		top = _tmp42_;
#line 1870 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp43_ = top;
#line 1870 "/home/jens/Source/shotwell/src/Page.vala"
		top = _tmp43_ - (CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING / 2);
#line 11981 "Page.c"
	} else {
		CheckerboardItem* _tmp44_;
		GdkRectangle _tmp45_;
		gint _tmp46_;
		CheckerboardItem* _tmp47_;
		GdkRectangle _tmp48_;
		gint _tmp49_;
		GtkAdjustment* _tmp50_;
		gdouble _tmp51_;
		gint _tmp52_;
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp44_ = item;
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp45_ = _tmp44_->allocation;
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp46_ = _tmp45_.y;
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp47_ = item;
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp48_ = _tmp47_->allocation;
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp49_ = _tmp48_.height;
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp50_ = vadj;
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp51_ = gtk_adjustment_get_page_size (_tmp50_);
#line 1872 "/home/jens/Source/shotwell/src/Page.vala"
		top = (_tmp46_ + _tmp49_) - ((gint) _tmp51_);
#line 1873 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp52_ = top;
#line 1873 "/home/jens/Source/shotwell/src/Page.vala"
		top = _tmp52_ + (CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING / 2);
#line 12014 "Page.c"
	}
#line 1876 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp53_ = vadj;
#line 1876 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp54_ = top;
#line 1876 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_adjustment_set_value (_tmp53_, (gdouble) _tmp54_);
#line 1848 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (vadj);
#line 12024 "Page.c"
}


void checkerboard_page_move_cursor (CheckerboardPage* self, CompassPoint point) {
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
	gint _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_ = FALSE;
	gboolean _tmp5_ = FALSE;
	CheckerboardItem* _tmp6_;
	CheckerboardItem* _tmp21_;
	CheckerboardItem* item = NULL;
	CheckerboardLayout* _tmp25_;
	CheckerboardItem* _tmp26_;
	CompassPoint _tmp27_;
	CheckerboardItem* _tmp28_;
	CheckerboardItem* _tmp29_;
#line 1879 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1881 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1881 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 1881 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
#line 1881 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_ == 0;
#line 1881 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp1_);
#line 1881 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_) {
#line 1882 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 12059 "Page.c"
	}
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = self->cursor;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp6_ == NULL) {
#line 12065 "Page.c"
		CheckerboardLayout* _tmp7_;
		CheckerboardItem* _tmp8_;
		CheckerboardItem* _tmp9_;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = self->priv->layout;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = checkerboard_layout_get_cursor (_tmp7_);
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _tmp8_;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = _tmp9_ == NULL;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp9_);
#line 12079 "Page.c"
	} else {
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = FALSE;
#line 12083 "Page.c"
	}
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp5_) {
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = TRUE;
#line 12089 "Page.c"
	} else {
		gboolean _tmp10_ = FALSE;
		CheckerboardItem* _tmp11_;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = self->cursor;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp11_ != NULL) {
#line 12097 "Page.c"
			ViewCollection* _tmp12_;
			ViewCollection* _tmp13_;
			CheckerboardItem* _tmp14_;
			gboolean _tmp15_;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = _tmp12_;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = self->cursor;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp15_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp10_ = !_tmp15_;
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
			_data_collection_unref0 (_tmp13_);
#line 12114 "Page.c"
		} else {
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp10_ = FALSE;
#line 12118 "Page.c"
		}
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _tmp10_;
#line 12122 "Page.c"
	}
#line 1887 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_) {
#line 12126 "Page.c"
		CheckerboardItem* item = NULL;
		CheckerboardLayout* _tmp16_;
		CheckerboardItem* _tmp17_;
		CheckerboardItem* _tmp18_;
		CheckerboardItem* _tmp19_;
		CheckerboardItem* _tmp20_;
#line 1888 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = self->priv->layout;
#line 1888 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp17_ = checkerboard_layout_get_item_at_coordinate (_tmp16_, 0, 0);
#line 1888 "/home/jens/Source/shotwell/src/Page.vala"
		item = _tmp17_;
#line 1889 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = item;
#line 1889 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_page_cursor_to_item (self, _tmp18_);
#line 1890 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp19_ = item;
#line 1890 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp20_ = _g_object_ref0 (_tmp19_);
#line 1890 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->anchor);
#line 1890 "/home/jens/Source/shotwell/src/Page.vala"
		self->anchor = _tmp20_;
#line 1892 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (item);
#line 1892 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 12155 "Page.c"
	}
#line 1895 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp21_ = self->cursor;
#line 1895 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp21_ == NULL) {
#line 12161 "Page.c"
		CheckerboardLayout* _tmp22_;
		CheckerboardItem* _tmp23_;
		CheckerboardItem* _tmp24_;
#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp22_ = self->priv->layout;
#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = checkerboard_layout_get_cursor (_tmp22_);
#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp24_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp23_, TYPE_CHECKERBOARD_ITEM) ? ((CheckerboardItem*) _tmp23_) : NULL;
#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp24_ == NULL) {
#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_tmp23_);
#line 12175 "Page.c"
		}
#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->cursor);
#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
		self->cursor = _tmp24_;
#line 12181 "Page.c"
	}
#line 1900 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp25_ = self->priv->layout;
#line 1900 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp26_ = self->cursor;
#line 1900 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp27_ = point;
#line 1900 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp28_ = checkerboard_layout_get_item_relative_to (_tmp25_, _tmp26_, _tmp27_);
#line 1900 "/home/jens/Source/shotwell/src/Page.vala"
	item = _tmp28_;
#line 1901 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp29_ = item;
#line 1901 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp29_ != NULL) {
#line 12197 "Page.c"
		CheckerboardItem* _tmp30_;
#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp30_ = item;
#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_page_cursor_to_item (self, _tmp30_);
#line 12203 "Page.c"
	}
#line 1879 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (item);
#line 12207 "Page.c"
}


void checkerboard_page_set_cursor (CheckerboardPage* self, CheckerboardItem* item) {
	Marker* marker = NULL;
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
	CheckerboardItem* _tmp2_;
	Marker* _tmp3_;
	Marker* _tmp4_;
	ViewCollection* _tmp5_;
	ViewCollection* _tmp6_;
	CheckerboardItem* _tmp7_;
	CheckerboardItem* _tmp8_;
	CheckerboardItem* _tmp9_;
	CheckerboardItem* _tmp10_;
#line 1905 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1905 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
#line 1906 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1906 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 1906 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = item;
#line 1906 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
#line 1906 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_;
#line 1906 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp1_);
#line 1906 "/home/jens/Source/shotwell/src/Page.vala"
	marker = _tmp4_;
#line 1907 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1907 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = _tmp5_;
#line 1907 "/home/jens/Source/shotwell/src/Page.vala"
	view_collection_select_marked (_tmp6_, marker);
#line 1907 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp6_);
#line 1909 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = item;
#line 1909 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = _g_object_ref0 (_tmp7_);
#line 1909 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->cursor);
#line 1909 "/home/jens/Source/shotwell/src/Page.vala"
	self->cursor = _tmp8_;
#line 1910 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = item;
#line 1910 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = _g_object_ref0 (_tmp9_);
#line 1910 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->anchor);
#line 1910 "/home/jens/Source/shotwell/src/Page.vala"
	self->anchor = _tmp10_;
#line 1905 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (marker);
#line 12268 "Page.c"
}


void checkerboard_page_select_between_items (CheckerboardPage* self, CheckerboardItem* item_start, CheckerboardItem* item_end) {
	Marker* marker = NULL;
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
	Marker* _tmp2_;
	Marker* _tmp3_;
	gboolean passed_start = FALSE;
	gboolean passed_end = FALSE;
	ViewCollection* _tmp28_;
	ViewCollection* _tmp29_;
	Marker* _tmp30_;
#line 1913 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1913 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_ITEM (item_start));
#line 1913 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_ITEM (item_end));
#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp1_);
#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
	marker = _tmp3_;
#line 1916 "/home/jens/Source/shotwell/src/Page.vala"
	passed_start = FALSE;
#line 1917 "/home/jens/Source/shotwell/src/Page.vala"
	passed_end = FALSE;
#line 12305 "Page.c"
	{
		GeeIterator* _object_it = NULL;
		ViewCollection* _tmp4_;
		ViewCollection* _tmp5_;
		GeeCollection* _tmp6_;
		GeeCollection* _tmp7_;
		GeeIterator* _tmp8_;
		GeeIterator* _tmp9_;
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = _tmp4_;
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection));
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = _tmp6_;
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _tmp8_;
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp7_);
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp5_);
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_object_it = _tmp9_;
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		while (TRUE) {
#line 12334 "Page.c"
			GeeIterator* _tmp10_;
			gboolean _tmp11_;
			DataObject* object = NULL;
			GeeIterator* _tmp12_;
			gpointer _tmp13_;
			CheckerboardItem* item = NULL;
			DataObject* _tmp14_;
			CheckerboardItem* _tmp15_;
			CheckerboardItem* _tmp16_;
			CheckerboardItem* _tmp17_;
			CheckerboardItem* _tmp18_;
			CheckerboardItem* _tmp19_;
			gboolean _tmp20_ = FALSE;
			gboolean _tmp21_;
			gboolean _tmp25_ = FALSE;
			gboolean _tmp26_;
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp10_ = _object_it;
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp11_ = gee_iterator_next (_tmp10_);
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
			if (!_tmp11_) {
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 12359 "Page.c"
			}
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = _object_it;
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = gee_iterator_get (_tmp12_);
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
			object = (DataObject*) _tmp13_;
#line 1920 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = object;
#line 1920 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp15_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
#line 1920 "/home/jens/Source/shotwell/src/Page.vala"
			item = _tmp15_;
#line 1922 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp16_ = item_start;
#line 1922 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp17_ = item;
#line 1922 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp16_ == _tmp17_) {
#line 1923 "/home/jens/Source/shotwell/src/Page.vala"
				passed_start = TRUE;
#line 12381 "Page.c"
			}
#line 1925 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp18_ = item_end;
#line 1925 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp19_ = item;
#line 1925 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp18_ == _tmp19_) {
#line 1926 "/home/jens/Source/shotwell/src/Page.vala"
				passed_end = TRUE;
#line 12391 "Page.c"
			}
#line 1928 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp21_ = passed_start;
#line 1928 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp21_) {
#line 1928 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp20_ = TRUE;
#line 12399 "Page.c"
			} else {
				gboolean _tmp22_;
#line 1928 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp22_ = passed_end;
#line 1928 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp20_ = _tmp22_;
#line 12406 "Page.c"
			}
#line 1928 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp20_) {
#line 12410 "Page.c"
				Marker* _tmp23_;
				DataObject* _tmp24_;
#line 1929 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp23_ = marker;
#line 1929 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp24_ = object;
#line 1929 "/home/jens/Source/shotwell/src/Page.vala"
				marker_mark (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_VIEW, DataView), TYPE_DATA_OBJECT, DataObject));
#line 12419 "Page.c"
			}
#line 1931 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp26_ = passed_start;
#line 1931 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp26_) {
#line 12425 "Page.c"
				gboolean _tmp27_;
#line 1931 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp27_ = passed_end;
#line 1931 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp25_ = _tmp27_;
#line 12431 "Page.c"
			} else {
#line 1931 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp25_ = FALSE;
#line 12435 "Page.c"
			}
#line 1931 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp25_) {
#line 1932 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (item);
#line 1932 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (object);
#line 1932 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 12445 "Page.c"
			}
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (item);
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (object);
#line 12451 "Page.c"
		}
#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_object_it);
#line 12455 "Page.c"
	}
#line 1935 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp28_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1935 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp29_ = _tmp28_;
#line 1935 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp30_ = marker;
#line 1935 "/home/jens/Source/shotwell/src/Page.vala"
	view_collection_select_marked (_tmp29_, _tmp30_);
#line 1935 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp29_);
#line 1913 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (marker);
#line 12469 "Page.c"
}


void checkerboard_page_select_anchor_to_cursor (CheckerboardPage* self, guint state) {
	gboolean _tmp0_ = FALSE;
	CheckerboardItem* _tmp1_;
	guint _tmp3_;
#line 1938 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->cursor;
#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ == NULL) {
#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = TRUE;
#line 12485 "Page.c"
	} else {
		CheckerboardItem* _tmp2_;
#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->anchor;
#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = _tmp2_ == NULL;
#line 12492 "Page.c"
	}
#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 1940 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 12498 "Page.c"
	}
#line 1942 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = state;
#line 1942 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_ == ((guint) GDK_SHIFT_MASK)) {
#line 12504 "Page.c"
		ViewCollection* _tmp4_;
		ViewCollection* _tmp5_;
		CheckerboardItem* _tmp6_;
		CheckerboardItem* _tmp7_;
#line 1943 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1943 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = _tmp4_;
#line 1943 "/home/jens/Source/shotwell/src/Page.vala"
		view_collection_unselect_all (_tmp5_);
#line 1943 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp5_);
#line 1944 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = self->anchor;
#line 1944 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = self->cursor;
#line 1944 "/home/jens/Source/shotwell/src/Page.vala"
		checkerboard_page_select_between_items (self, _tmp6_, _tmp7_);
#line 12523 "Page.c"
	} else {
		CheckerboardItem* _tmp8_;
		CheckerboardItem* _tmp9_;
#line 1946 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = self->cursor;
#line 1946 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _g_object_ref0 (_tmp8_);
#line 1946 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->anchor);
#line 1946 "/home/jens/Source/shotwell/src/Page.vala"
		self->anchor = _tmp9_;
#line 12535 "Page.c"
	}
}


static void checkerboard_page_real_set_display_titles (CheckerboardPage* self, gboolean display) {
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
	ViewCollection* _tmp2_;
	ViewCollection* _tmp3_;
	gboolean _tmp4_;
	GValue _tmp5_ = {0};
	ViewCollection* _tmp6_;
	ViewCollection* _tmp7_;
#line 1951 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1951 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 1951 "/home/jens/Source/shotwell/src/Page.vala"
	data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
#line 1951 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp1_);
#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = display;
#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
	g_value_init (&_tmp5_, G_TYPE_BOOLEAN);
#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
	g_value_set_boolean (&_tmp5_, _tmp4_);
#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
	data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), CHECKERBOARD_ITEM_PROP_SHOW_TITLES, &_tmp5_, NULL, NULL);
#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
	G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp3_);
#line 1953 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1953 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = _tmp6_;
#line 1953 "/home/jens/Source/shotwell/src/Page.vala"
	data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
#line 1953 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp7_);
#line 12581 "Page.c"
}


void checkerboard_page_set_display_titles (CheckerboardPage* self, gboolean display) {
#line 1950 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1950 "/home/jens/Source/shotwell/src/Page.vala"
	CHECKERBOARD_PAGE_GET_CLASS (self)->set_display_titles (self, display);
#line 12590 "Page.c"
}


static void checkerboard_page_real_set_display_comments (CheckerboardPage* self, gboolean display) {
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
	ViewCollection* _tmp2_;
	ViewCollection* _tmp3_;
	gboolean _tmp4_;
	GValue _tmp5_ = {0};
	ViewCollection* _tmp6_;
	ViewCollection* _tmp7_;
#line 1957 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1957 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 1957 "/home/jens/Source/shotwell/src/Page.vala"
	data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
#line 1957 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp1_);
#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = display;
#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
	g_value_init (&_tmp5_, G_TYPE_BOOLEAN);
#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
	g_value_set_boolean (&_tmp5_, _tmp4_);
#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
	data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS, &_tmp5_, NULL, NULL);
#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
	G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp3_);
#line 1959 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 1959 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = _tmp6_;
#line 1959 "/home/jens/Source/shotwell/src/Page.vala"
	data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
#line 1959 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp7_);
#line 12635 "Page.c"
}


void checkerboard_page_set_display_comments (CheckerboardPage* self, gboolean display) {
#line 1956 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
#line 1956 "/home/jens/Source/shotwell/src/Page.vala"
	CHECKERBOARD_PAGE_GET_CLASS (self)->set_display_comments (self, display);
#line 12644 "Page.c"
}


void checkerboard_page_keyboard_modifiers_init (CheckerboardPageKeyboardModifiers *self, Page* page) {
	Page* _tmp0_;
	gboolean _tmp1_;
	Page* _tmp2_;
	gboolean _tmp3_;
	Page* _tmp4_;
	gboolean _tmp5_;
	Page* _tmp6_;
	gboolean _tmp7_;
#line 1236 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_PAGE (page));
#line 1236 "/home/jens/Source/shotwell/src/Page.vala"
	memset (self, 0, sizeof (CheckerboardPageKeyboardModifiers));
#line 1237 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page;
#line 1237 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_ctrl_pressed (_tmp0_);
#line 1237 "/home/jens/Source/shotwell/src/Page.vala"
	(*self).ctrl_pressed = _tmp1_;
#line 1238 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page;
#line 1238 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = page_get_alt_pressed (_tmp2_);
#line 1238 "/home/jens/Source/shotwell/src/Page.vala"
	(*self).alt_pressed = _tmp3_;
#line 1239 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = page;
#line 1239 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = page_get_shift_pressed (_tmp4_);
#line 1239 "/home/jens/Source/shotwell/src/Page.vala"
	(*self).shift_pressed = _tmp5_;
#line 1240 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = page;
#line 1240 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = page_get_super_pressed (_tmp6_);
#line 1240 "/home/jens/Source/shotwell/src/Page.vala"
	(*self).super_pressed = _tmp7_;
#line 12685 "Page.c"
}


CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self) {
	CheckerboardPageKeyboardModifiers* dup;
#line 1235 "/home/jens/Source/shotwell/src/Page.vala"
	dup = g_new0 (CheckerboardPageKeyboardModifiers, 1);
#line 1235 "/home/jens/Source/shotwell/src/Page.vala"
	memcpy (dup, self, sizeof (CheckerboardPageKeyboardModifiers));
#line 1235 "/home/jens/Source/shotwell/src/Page.vala"
	return dup;
#line 12697 "Page.c"
}


void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self) {
#line 1235 "/home/jens/Source/shotwell/src/Page.vala"
	g_free (self);
#line 12704 "Page.c"
}


GType checkerboard_page_keyboard_modifiers_get_type (void) {
	static volatile gsize checkerboard_page_keyboard_modifiers_type_id__volatile = 0;
	if (g_once_init_enter (&checkerboard_page_keyboard_modifiers_type_id__volatile)) {
		GType checkerboard_page_keyboard_modifiers_type_id;
		checkerboard_page_keyboard_modifiers_type_id = g_boxed_type_register_static ("CheckerboardPageKeyboardModifiers", (GBoxedCopyFunc) checkerboard_page_keyboard_modifiers_dup, (GBoxedFreeFunc) checkerboard_page_keyboard_modifiers_free);
		g_once_init_leave (&checkerboard_page_keyboard_modifiers_type_id__volatile, checkerboard_page_keyboard_modifiers_type_id);
	}
	return checkerboard_page_keyboard_modifiers_type_id__volatile;
}


static void checkerboard_page_class_init (CheckerboardPageClass * klass) {
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	checkerboard_page_parent_class = g_type_class_peek_parent (klass);
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	g_type_class_add_private (klass, sizeof (CheckerboardPagePrivate));
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->get_item_context_menu = (GtkMenu* (*) (CheckerboardPage *)) checkerboard_page_real_get_item_context_menu;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->get_page_context_menu = (GtkMenu* (*) (Page *)) checkerboard_page_real_get_page_context_menu;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_context_keypress = (gboolean (*) (Page *)) checkerboard_page_real_on_context_keypress;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->get_view_empty_message = (gchar* (*) (CheckerboardPage *)) checkerboard_page_real_get_view_empty_message;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->get_filter_no_match_message = (gchar* (*) (CheckerboardPage *)) checkerboard_page_real_get_filter_no_match_message;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->on_item_activated = (void (*) (CheckerboardPage *, CheckerboardItem*, CheckerboardPageActivator, CheckerboardPageKeyboardModifiers*)) checkerboard_page_real_on_item_activated;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->get_search_view_filter = (SearchViewFilter* (*) (CheckerboardPage *)) checkerboard_page_real_get_search_view_filter;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->get_view_tracker = (CoreViewTracker* (*) (CheckerboardPage *)) checkerboard_page_real_get_view_tracker;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->switching_from = (void (*) (Page *)) checkerboard_page_real_switching_from;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->switched_to = (void (*) (Page *)) checkerboard_page_real_switched_to;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->set_page_name = (void (*) (Page *, const gchar*)) checkerboard_page_real_set_page_name;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((GtkWidgetClass *) klass)->key_press_event = (gboolean (*) (GtkWidget *, GdkEventKey*)) checkerboard_page_real_key_press_event;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_left_click = (gboolean (*) (Page *, GdkEventButton*)) checkerboard_page_real_on_left_click;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_left_released = (gboolean (*) (Page *, GdkEventButton*)) checkerboard_page_real_on_left_released;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_right_click = (gboolean (*) (Page *, GdkEventButton*)) checkerboard_page_real_on_right_click;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->on_mouse_over = (gboolean (*) (CheckerboardPage *, CheckerboardItem*, gint, gint, GdkModifierType)) checkerboard_page_real_on_mouse_over;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_motion = (gboolean (*) (Page *, GdkEventMotion*, gint, gint, GdkModifierType)) checkerboard_page_real_on_motion;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->set_display_titles = (void (*) (CheckerboardPage *, gboolean)) checkerboard_page_real_set_display_titles;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	((CheckerboardPageClass *) klass)->set_display_comments = (void (*) (CheckerboardPage *, gboolean)) checkerboard_page_real_set_display_comments;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	G_OBJECT_CLASS (klass)->finalize = checkerboard_page_finalize;
#line 12764 "Page.c"
}


static void checkerboard_page_instance_init (CheckerboardPage * self) {
	GtkViewport* _tmp0_;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv = CHECKERBOARD_PAGE_GET_PRIVATE (self);
#line 1220 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->item_context_menu_path = NULL;
#line 1221 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->page_context_menu_path = NULL;
#line 1222 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = (GtkViewport*) gtk_viewport_new (NULL, NULL);
#line 1222 "/home/jens/Source/shotwell/src/Page.vala"
	g_object_ref_sink (_tmp0_);
#line 1222 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->viewport = _tmp0_;
#line 1223 "/home/jens/Source/shotwell/src/Page.vala"
	self->anchor = NULL;
#line 1224 "/home/jens/Source/shotwell/src/Page.vala"
	self->cursor = NULL;
#line 1225 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->highlighted = NULL;
#line 1226 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->autoscroll_scheduled = FALSE;
#line 1227 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->activated_item = NULL;
#line 1228 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->previously_selected = NULL;
#line 12794 "Page.c"
}


static void checkerboard_page_finalize (GObject * obj) {
	CheckerboardPage * self;
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
#line 1219 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->layout);
#line 1220 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->item_context_menu_path);
#line 1221 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (self->priv->page_context_menu_path);
#line 1222 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->viewport);
#line 1223 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->anchor);
#line 1224 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->cursor);
#line 1225 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->highlighted);
#line 1227 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->activated_item);
#line 1228 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->previously_selected);
#line 1295 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->item_context_menu);
#line 1307 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->page_context_menu);
#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
	G_OBJECT_CLASS (checkerboard_page_parent_class)->finalize (obj);
#line 12826 "Page.c"
}


GType checkerboard_page_get_type (void) {
	static volatile gsize checkerboard_page_type_id__volatile = 0;
	if (g_once_init_enter (&checkerboard_page_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (CheckerboardPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) checkerboard_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CheckerboardPage), 0, (GInstanceInitFunc) checkerboard_page_instance_init, NULL };
		GType checkerboard_page_type_id;
		checkerboard_page_type_id = g_type_register_static (TYPE_PAGE, "CheckerboardPage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&checkerboard_page_type_id__volatile, checkerboard_page_type_id);
	}
	return checkerboard_page_type_id__volatile;
}


static void _single_photo_page_on_colors_changed_config_facade_colors_changed (ConfigFacade* _sender, gpointer self) {
#line 2026 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_on_colors_changed ((SinglePhotoPage*) self);
#line 12845 "Page.c"
}


GType single_photo_page_update_reason_get_type (void) {
	static volatile gsize single_photo_page_update_reason_type_id__volatile = 0;
	if (g_once_init_enter (&single_photo_page_update_reason_type_id__volatile)) {
		static const GEnumValue values[] = {{SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF, "SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF", "new-pixbuf"}, {SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT, "SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT", "quality-improvement"}, {SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS, "SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS", "resized-canvas"}, {0, NULL, NULL}};
		GType single_photo_page_update_reason_type_id;
		single_photo_page_update_reason_type_id = g_enum_register_static ("SinglePhotoPageUpdateReason", values);
		g_once_init_leave (&single_photo_page_update_reason_type_id__volatile, single_photo_page_update_reason_type_id);
	}
	return single_photo_page_update_reason_type_id__volatile;
}


static void _single_photo_page_on_viewport_resize_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self) {
#line 2018 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_on_viewport_resize ((SinglePhotoPage*) self);
#line 12864 "Page.c"
}


static gboolean _single_photo_page_on_canvas_exposed_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self) {
	gboolean result;
	result = single_photo_page_on_canvas_exposed ((SinglePhotoPage*) self, cr);
#line 2019 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 12873 "Page.c"
}


SinglePhotoPage* single_photo_page_construct (GType object_type, const gchar* page_name, gboolean scale_up_to_viewport) {
	SinglePhotoPage * self = NULL;
	const gchar* _tmp0_;
	gboolean _tmp1_;
	TransitionEffectsManager* _tmp2_;
	TransitionEffectsManager* _tmp3_;
	TransitionClock* _tmp4_;
	GtkViewport* _tmp5_;
	GtkViewport* _tmp6_;
	GtkViewport* _tmp7_;
	GtkDrawingArea* _tmp8_;
	GtkViewport* _tmp9_;
	GtkDrawingArea* _tmp10_;
	GtkViewport* _tmp11_;
	GtkDrawingArea* _tmp12_;
	GtkDrawingArea* _tmp13_;
	ConfigFacade* _tmp14_;
	ConfigFacade* _tmp15_;
#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (page_name != NULL, NULL);
#line 1996 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_name;
#line 1996 "/home/jens/Source/shotwell/src/Page.vala"
	self = (SinglePhotoPage*) page_construct (object_type, _tmp0_);
#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = scale_up_to_viewport;
#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->scale_up_to_viewport = _tmp1_;
#line 2000 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = transition_effects_manager_get_instance ();
#line 2000 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 2000 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = transition_effects_manager_create_null_transition_clock (_tmp3_);
#line 2000 "/home/jens/Source/shotwell/src/Page.vala"
	_transition_clock_unref0 (self->priv->transition_clock);
#line 2000 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->transition_clock = _tmp4_;
#line 2000 "/home/jens/Source/shotwell/src/Page.vala"
	_transition_effects_manager_unref0 (_tmp3_);
#line 2004 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_scrolled_window_set_policy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
#line 2006 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), (guint) 0);
#line 2007 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_scrolled_window_set_shadow_type (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_SHADOW_NONE);
#line 2009 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = self->viewport;
#line 2009 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_viewport_set_shadow_type (_tmp5_, GTK_SHADOW_NONE);
#line 2010 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = self->viewport;
#line 2010 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer), (guint) 0);
#line 2011 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = self->viewport;
#line 2011 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = self->canvas;
#line 2011 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
#line 2013 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = self->viewport;
#line 2013 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
#line 2015 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = self->canvas;
#line 2015 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), (gint) ((GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK) | GDK_SUBSTRUCTURE_MASK));
#line 2018 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = self->viewport;
#line 2018 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget), "size-allocate", (GCallback) _single_photo_page_on_viewport_resize_gtk_widget_size_allocate, self, 0);
#line 2019 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = self->canvas;
#line 2019 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), "draw", (GCallback) _single_photo_page_on_canvas_exposed_gtk_widget_draw, self, 0);
#line 2021 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = self->canvas;
#line 2021 "/home/jens/Source/shotwell/src/Page.vala"
	page_set_event_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget));
#line 2022 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = config_facade_get_instance ();
#line 2022 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = _tmp14_;
#line 2022 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect_object (_tmp15_, "colors-changed", (GCallback) _single_photo_page_on_colors_changed_config_facade_colors_changed, self, 0);
#line 2022 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp15_);
#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
	return self;
#line 12967 "Page.c"
}


gboolean single_photo_page_is_transition_in_progress (SinglePhotoPage* self) {
	gboolean result = FALSE;
	TransitionClock* _tmp0_;
	gboolean _tmp1_;
#line 2029 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), FALSE);
#line 2030 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->transition_clock;
#line 2030 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = transition_clock_is_in_progress (_tmp0_);
#line 2030 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 2030 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 12985 "Page.c"
}


void single_photo_page_cancel_transition (SinglePhotoPage* self) {
	TransitionClock* _tmp0_;
	gboolean _tmp1_;
#line 2033 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2034 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->transition_clock;
#line 2034 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = transition_clock_is_in_progress (_tmp0_);
#line 2034 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_) {
#line 13000 "Page.c"
		TransitionClock* _tmp2_;
#line 2035 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->priv->transition_clock;
#line 2035 "/home/jens/Source/shotwell/src/Page.vala"
		transition_clock_cancel (_tmp2_);
#line 13006 "Page.c"
	}
}


void single_photo_page_set_transition (SinglePhotoPage* self, const gchar* effect_id, gint duration_msec) {
	TransitionEffectsManager* _tmp0_;
	TransitionEffectsManager* _tmp1_;
	const gchar* _tmp2_;
	TransitionClock* _tmp3_;
	TransitionClock* _tmp4_;
	gint _tmp8_;
#line 2038 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2038 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (effect_id != NULL);
#line 2039 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_cancel_transition (self);
#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = transition_effects_manager_get_instance ();
#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = effect_id;
#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = transition_effects_manager_create_transition_clock (_tmp1_, _tmp2_);
#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
	_transition_clock_unref0 (self->priv->transition_clock);
#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->transition_clock = _tmp3_;
#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
	_transition_effects_manager_unref0 (_tmp1_);
#line 2042 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->transition_clock;
#line 2042 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ == NULL) {
#line 13042 "Page.c"
		TransitionEffectsManager* _tmp5_;
		TransitionEffectsManager* _tmp6_;
		TransitionClock* _tmp7_;
#line 2043 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = transition_effects_manager_get_instance ();
#line 2043 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = _tmp5_;
#line 2043 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = transition_effects_manager_create_null_transition_clock (_tmp6_);
#line 2043 "/home/jens/Source/shotwell/src/Page.vala"
		_transition_clock_unref0 (self->priv->transition_clock);
#line 2043 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->transition_clock = _tmp7_;
#line 2043 "/home/jens/Source/shotwell/src/Page.vala"
		_transition_effects_manager_unref0 (_tmp6_);
#line 13058 "Page.c"
	}
#line 2045 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = duration_msec;
#line 2045 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->transition_duration_msec = _tmp8_;
#line 13064 "Page.c"
}


static void single_photo_page_render_zoomed_to_pixmap (SinglePhotoPage* self, ZoomState* zoom_state) {
	gboolean _tmp0_;
	GdkRectangle view_rect = {0};
	GdkRectangle _tmp1_ = {0};
	GdkPixbuf* zoomed = NULL;
	ZoomBuffer* _tmp2_;
	ZoomBuffer* _tmp3_;
	gboolean _tmp4_;
	GdkPixbuf* _tmp34_;
	gint draw_x = 0;
	Dimensions _tmp35_;
	gint _tmp36_;
	GdkRectangle _tmp37_;
	gint _tmp38_;
	gint _tmp39_;
	gint _tmp40_;
	gint draw_y = 0;
	Dimensions _tmp41_;
	gint _tmp42_;
	GdkRectangle _tmp43_;
	gint _tmp44_;
	gint _tmp45_;
	gint _tmp46_;
	cairo_t* _tmp47_;
	GdkPixbuf* _tmp48_;
	gint _tmp49_;
	gint _tmp50_;
#line 2049 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2049 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (zoom_state != NULL);
#line 2050 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = single_photo_page_is_zoom_supported (self);
#line 2050 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp0_, "is_zoom_supported()");
#line 2052 "/home/jens/Source/shotwell/src/Page.vala"
	zoom_state_get_viewing_rectangle_wrt_content (zoom_state, &_tmp1_);
#line 2052 "/home/jens/Source/shotwell/src/Page.vala"
	view_rect = _tmp1_;
#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = single_photo_page_get_zoom_buffer (self);
#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_ != NULL;
#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp3_);
#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_) {
#line 13117 "Page.c"
		GdkPixbuf* _tmp5_ = NULL;
		gboolean _tmp6_;
		GdkPixbuf* _tmp15_;
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = self->priv->zoom_high_quality;
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp6_) {
#line 13125 "Page.c"
			ZoomBuffer* _tmp7_;
			ZoomBuffer* _tmp8_;
			ZoomState _tmp9_;
			GdkPixbuf* _tmp10_;
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp7_ = single_photo_page_get_zoom_buffer (self);
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp8_ = _tmp7_;
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp9_ = *zoom_state;
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp10_ = zoom_buffer_get_zoomed_image (_tmp8_, &_tmp9_);
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_tmp5_);
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp5_ = _tmp10_;
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_tmp8_);
#line 13144 "Page.c"
		} else {
			ZoomBuffer* _tmp11_;
			ZoomBuffer* _tmp12_;
			ZoomState _tmp13_;
			GdkPixbuf* _tmp14_;
#line 2057 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp11_ = single_photo_page_get_zoom_buffer (self);
#line 2057 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = _tmp11_;
#line 2057 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = *zoom_state;
#line 2057 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = zoom_buffer_get_zoom_preview_image (_tmp12_, &_tmp13_);
#line 2057 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_tmp5_);
#line 2057 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp5_ = _tmp14_;
#line 2057 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (_tmp12_);
#line 13164 "Page.c"
		}
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp15_ = _g_object_ref0 (_tmp5_);
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (zoomed);
#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
		zoomed = _tmp15_;
#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp5_);
#line 13174 "Page.c"
	} else {
		GdkRectangle view_rect_proj = {0};
		GdkPixbuf* _tmp16_;
		GdkRectangle _tmp17_ = {0};
		GdkPixbuf* proj_subpixbuf = NULL;
		GdkPixbuf* _tmp18_;
		GdkRectangle _tmp19_;
		gint _tmp20_;
		GdkRectangle _tmp21_;
		gint _tmp22_;
		GdkRectangle _tmp23_;
		gint _tmp24_;
		GdkRectangle _tmp25_;
		gint _tmp26_;
		GdkPixbuf* _tmp27_;
		GdkPixbuf* _tmp28_;
		GdkRectangle _tmp29_;
		gint _tmp30_;
		GdkRectangle _tmp31_;
		gint _tmp32_;
		GdkPixbuf* _tmp33_;
#line 2059 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = self->priv->unscaled;
#line 2059 "/home/jens/Source/shotwell/src/Page.vala"
		zoom_state_get_viewing_rectangle_projection (zoom_state, _tmp16_, &_tmp17_);
#line 2059 "/home/jens/Source/shotwell/src/Page.vala"
		view_rect_proj = _tmp17_;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = self->priv->unscaled;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp19_ = view_rect_proj;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp20_ = _tmp19_.x;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = view_rect_proj;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp22_ = _tmp21_.y;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = view_rect_proj;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp24_ = _tmp23_.width;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp25_ = view_rect_proj;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp26_ = _tmp25_.height;
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp27_ = gdk_pixbuf_new_subpixbuf (_tmp18_, _tmp20_, _tmp22_, _tmp24_, _tmp26_);
#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
		proj_subpixbuf = _tmp27_;
#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp28_ = proj_subpixbuf;
#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp29_ = view_rect;
#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp30_ = _tmp29_.width;
#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp31_ = view_rect;
#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp32_ = _tmp31_.height;
#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp33_ = gdk_pixbuf_scale_simple (_tmp28_, _tmp30_, _tmp32_, GDK_INTERP_BILINEAR);
#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (zoomed);
#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
		zoomed = _tmp33_;
#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (proj_subpixbuf);
#line 13242 "Page.c"
	}
#line 2068 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp34_ = zoomed;
#line 2068 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp34_ == NULL) {
#line 2069 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (zoomed);
#line 2069 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 13252 "Page.c"
	}
#line 2072 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp35_ = self->priv->pixmap_dim;
#line 2072 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp36_ = _tmp35_.width;
#line 2072 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp37_ = view_rect;
#line 2072 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp38_ = _tmp37_.width;
#line 2072 "/home/jens/Source/shotwell/src/Page.vala"
	draw_x = (_tmp36_ - _tmp38_) / 2;
#line 2073 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp39_ = draw_x;
#line 2073 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp40_ = CLAMP (_tmp39_, 0, G_MAXINT);
#line 2073 "/home/jens/Source/shotwell/src/Page.vala"
	draw_x = _tmp40_;
#line 2075 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp41_ = self->priv->pixmap_dim;
#line 2075 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp42_ = _tmp41_.height;
#line 2075 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp43_ = view_rect;
#line 2075 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp44_ = _tmp43_.height;
#line 2075 "/home/jens/Source/shotwell/src/Page.vala"
	draw_y = (_tmp42_ - _tmp44_) / 2;
#line 2076 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp45_ = draw_y;
#line 2076 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp46_ = CLAMP (_tmp45_, 0, G_MAXINT);
#line 2076 "/home/jens/Source/shotwell/src/Page.vala"
	draw_y = _tmp46_;
#line 2077 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp47_ = self->priv->pixmap_ctx;
#line 2077 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp48_ = zoomed;
#line 2077 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp49_ = draw_x;
#line 2077 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp50_ = draw_y;
#line 2077 "/home/jens/Source/shotwell/src/Page.vala"
	paint_pixmap_with_background (_tmp47_, _tmp48_, _tmp49_, _tmp50_);
#line 2049 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (zoomed);
#line 13298 "Page.c"
}


void single_photo_page_on_interactive_zoom (SinglePhotoPage* self, ZoomState* interactive_zoom_state) {
	gboolean _tmp0_;
	cairo_t* _tmp1_;
	cairo_t* _tmp2_;
	gboolean old_quality_setting = FALSE;
	gboolean _tmp3_;
	ZoomState _tmp4_;
	GtkDrawingArea* _tmp5_;
#line 2080 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2080 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (interactive_zoom_state != NULL);
#line 2081 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = single_photo_page_is_zoom_supported (self);
#line 2081 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp0_, "is_zoom_supported()");
#line 2083 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->pixmap_ctx;
#line 2083 "/home/jens/Source/shotwell/src/Page.vala"
	set_source_color_from_string (_tmp1_, "#000");
#line 2084 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->pixmap_ctx;
#line 2084 "/home/jens/Source/shotwell/src/Page.vala"
	cairo_paint (_tmp2_);
#line 2086 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = self->priv->zoom_high_quality;
#line 2086 "/home/jens/Source/shotwell/src/Page.vala"
	old_quality_setting = _tmp3_;
#line 2087 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->zoom_high_quality = FALSE;
#line 2088 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = *interactive_zoom_state;
#line 2088 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_render_zoomed_to_pixmap (self, &_tmp4_);
#line 2089 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->zoom_high_quality = old_quality_setting;
#line 2091 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = self->canvas;
#line 2091 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
#line 13342 "Page.c"
}


void single_photo_page_on_interactive_pan (SinglePhotoPage* self, ZoomState* interactive_zoom_state) {
	gboolean _tmp0_;
	cairo_t* _tmp1_;
	cairo_t* _tmp2_;
	gboolean old_quality_setting = FALSE;
	gboolean _tmp3_;
	ZoomState _tmp4_;
	GtkDrawingArea* _tmp5_;
#line 2094 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2094 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (interactive_zoom_state != NULL);
#line 2095 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = single_photo_page_is_zoom_supported (self);
#line 2095 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp0_, "is_zoom_supported()");
#line 2097 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->pixmap_ctx;
#line 2097 "/home/jens/Source/shotwell/src/Page.vala"
	set_source_color_from_string (_tmp1_, "#000");
#line 2098 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->pixmap_ctx;
#line 2098 "/home/jens/Source/shotwell/src/Page.vala"
	cairo_paint (_tmp2_);
#line 2100 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = self->priv->zoom_high_quality;
#line 2100 "/home/jens/Source/shotwell/src/Page.vala"
	old_quality_setting = _tmp3_;
#line 2101 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->zoom_high_quality = TRUE;
#line 2102 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = *interactive_zoom_state;
#line 2102 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_render_zoomed_to_pixmap (self, &_tmp4_);
#line 2103 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->zoom_high_quality = old_quality_setting;
#line 2105 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = self->canvas;
#line 2105 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
#line 13386 "Page.c"
}


static gboolean single_photo_page_real_is_zoom_supported (SinglePhotoPage* self) {
	gboolean result = FALSE;
#line 2109 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 2109 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 13396 "Page.c"
}


gboolean single_photo_page_is_zoom_supported (SinglePhotoPage* self) {
#line 2108 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), FALSE);
#line 2108 "/home/jens/Source/shotwell/src/Page.vala"
	return SINGLE_PHOTO_PAGE_GET_CLASS (self)->is_zoom_supported (self);
#line 13405 "Page.c"
}


static void single_photo_page_real_cancel_zoom (SinglePhotoPage* self) {
	cairo_surface_t* _tmp0_;
#line 2113 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->pixmap;
#line 2113 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ != NULL) {
#line 13415 "Page.c"
		cairo_t* _tmp1_;
		cairo_t* _tmp2_;
#line 2114 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = self->priv->pixmap_ctx;
#line 2114 "/home/jens/Source/shotwell/src/Page.vala"
		set_source_color_from_string (_tmp1_, "#000");
#line 2115 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->priv->pixmap_ctx;
#line 2115 "/home/jens/Source/shotwell/src/Page.vala"
		cairo_paint (_tmp2_);
#line 13426 "Page.c"
	}
}


void single_photo_page_cancel_zoom (SinglePhotoPage* self) {
#line 2112 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2112 "/home/jens/Source/shotwell/src/Page.vala"
	SINGLE_PHOTO_PAGE_GET_CLASS (self)->cancel_zoom (self);
#line 13436 "Page.c"
}


static void single_photo_page_real_save_zoom_state (SinglePhotoPage* self) {
	ZoomState _tmp0_;
#line 2120 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->static_zoom_state;
#line 2120 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->saved_zoom_state = _tmp0_;
#line 2121 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->has_saved_zoom_state = TRUE;
#line 13448 "Page.c"
}


void single_photo_page_save_zoom_state (SinglePhotoPage* self) {
#line 2119 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2119 "/home/jens/Source/shotwell/src/Page.vala"
	SINGLE_PHOTO_PAGE_GET_CLASS (self)->save_zoom_state (self);
#line 13457 "Page.c"
}


static void single_photo_page_real_restore_zoom_state (SinglePhotoPage* self) {
	gboolean _tmp0_;
	ZoomState _tmp1_;
#line 2125 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->has_saved_zoom_state;
#line 2125 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp0_) {
#line 2126 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 13470 "Page.c"
	}
#line 2128 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->saved_zoom_state;
#line 2128 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->static_zoom_state = _tmp1_;
#line 2129 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_repaint (self, NULL);
#line 2130 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->has_saved_zoom_state = FALSE;
#line 13480 "Page.c"
}


void single_photo_page_restore_zoom_state (SinglePhotoPage* self) {
#line 2124 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2124 "/home/jens/Source/shotwell/src/Page.vala"
	SINGLE_PHOTO_PAGE_GET_CLASS (self)->restore_zoom_state (self);
#line 13489 "Page.c"
}


static ZoomBuffer* single_photo_page_real_get_zoom_buffer (SinglePhotoPage* self) {
	ZoomBuffer* result = NULL;
#line 2134 "/home/jens/Source/shotwell/src/Page.vala"
	result = NULL;
#line 2134 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 13499 "Page.c"
}


ZoomBuffer* single_photo_page_get_zoom_buffer (SinglePhotoPage* self) {
#line 2133 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
#line 2133 "/home/jens/Source/shotwell/src/Page.vala"
	return SINGLE_PHOTO_PAGE_GET_CLASS (self)->get_zoom_buffer (self);
#line 13508 "Page.c"
}


void single_photo_page_get_saved_zoom_state (SinglePhotoPage* self, ZoomState* result) {
	ZoomState _tmp0_;
#line 2137 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2138 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->saved_zoom_state;
#line 2138 "/home/jens/Source/shotwell/src/Page.vala"
	*result = _tmp0_;
#line 2138 "/home/jens/Source/shotwell/src/Page.vala"
	return;
#line 13522 "Page.c"
}


void single_photo_page_set_zoom_state (SinglePhotoPage* self, ZoomState* zoom_state) {
	gboolean _tmp0_;
	ZoomState _tmp1_;
#line 2141 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2141 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (zoom_state != NULL);
#line 2142 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = single_photo_page_is_zoom_supported (self);
#line 2142 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp0_, "is_zoom_supported()");
#line 2144 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = *zoom_state;
#line 2144 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->static_zoom_state = _tmp1_;
#line 13541 "Page.c"
}


void single_photo_page_get_zoom_state (SinglePhotoPage* self, ZoomState* result) {
	gboolean _tmp0_;
	ZoomState _tmp1_;
#line 2147 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2148 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = single_photo_page_is_zoom_supported (self);
#line 2148 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp0_, "is_zoom_supported()");
#line 2150 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->static_zoom_state;
#line 2150 "/home/jens/Source/shotwell/src/Page.vala"
	*result = _tmp1_;
#line 2150 "/home/jens/Source/shotwell/src/Page.vala"
	return;
#line 13560 "Page.c"
}


static void single_photo_page_real_switched_to (Page* base) {
	SinglePhotoPage * self;
	GdkPixbuf* _tmp0_;
#line 2153 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
#line 2154 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_CLASS (single_photo_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 2156 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->unscaled;
#line 2156 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ != NULL) {
#line 2157 "/home/jens/Source/shotwell/src/Page.vala"
		single_photo_page_repaint (self, NULL);
#line 13577 "Page.c"
	}
}


static void single_photo_page_real_set_container (Page* base, GtkWindow* container) {
	SinglePhotoPage * self;
	GtkWindow* _tmp0_;
	GtkWindow* _tmp1_;
#line 2160 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
#line 2160 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GTK_IS_WINDOW (container));
#line 2161 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = container;
#line 2161 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_CLASS (single_photo_page_parent_class)->set_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp0_);
#line 2165 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = container;
#line 2165 "/home/jens/Source/shotwell/src/Page.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_FULLSCREEN_WINDOW)) {
#line 2166 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_scrolled_window_set_policy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
#line 13600 "Page.c"
	}
}


void single_photo_page_set_pixbuf (SinglePhotoPage* self, GdkPixbuf* unscaled, Dimensions* max_dim, Direction* direction) {
	Dimensions _tmp0_;
	Dimensions _tmp1_;
	gdouble _tmp2_;
	GdkPoint _tmp3_ = {0};
	GdkPixbuf* _tmp4_;
	GdkPixbuf* _tmp5_;
	Dimensions _tmp6_;
	GdkPixbuf* _tmp7_;
	GdkPixbuf* _tmp8_;
	GtkDrawingArea* _tmp9_;
	Direction* _tmp10_;
#line 2173 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2173 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GDK_IS_PIXBUF (unscaled));
#line 2173 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (max_dim != NULL);
#line 2174 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = *max_dim;
#line 2174 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->pixmap_dim;
#line 2174 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = zoom_state_get_interpolation_factor (&self->priv->static_zoom_state);
#line 2174 "/home/jens/Source/shotwell/src/Page.vala"
	zoom_state_get_viewport_center (&self->priv->static_zoom_state, &_tmp3_);
#line 2174 "/home/jens/Source/shotwell/src/Page.vala"
	zoom_state_init (&self->priv->static_zoom_state, &_tmp0_, &_tmp1_, _tmp2_, &_tmp3_);
#line 2178 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_cancel_transition (self);
#line 2180 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = unscaled;
#line 2180 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = _g_object_ref0 (_tmp4_);
#line 2180 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->unscaled);
#line 2180 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->unscaled = _tmp5_;
#line 2181 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = *max_dim;
#line 2181 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->max_dim = _tmp6_;
#line 2182 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = self->priv->scaled;
#line 2182 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = _g_object_ref0 (_tmp7_);
#line 2182 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->old_scaled);
#line 2182 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->old_scaled = _tmp8_;
#line 2183 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->scaled);
#line 2183 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->scaled = NULL;
#line 2186 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = self->canvas;
#line 2186 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_realize (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
#line 2188 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = direction;
#line 2188 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_repaint (self, _tmp10_);
#line 13667 "Page.c"
}


void single_photo_page_blank_display (SinglePhotoPage* self) {
	GtkDrawingArea* _tmp0_;
#line 2191 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2192 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->unscaled);
#line 2192 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->unscaled = NULL;
#line 2193 "/home/jens/Source/shotwell/src/Page.vala"
	dimensions_init (&self->priv->max_dim, 0, 0);
#line 2194 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->scaled);
#line 2194 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->scaled = NULL;
#line 2195 "/home/jens/Source/shotwell/src/Page.vala"
	_cairo_surface_destroy0 (self->priv->pixmap);
#line 2195 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->pixmap = NULL;
#line 2198 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->canvas;
#line 2198 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_realize (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
#line 2201 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_invalidate_all (self);
#line 13695 "Page.c"
}


static gpointer _cairo_surface_reference0 (gpointer self) {
#line 2205 "/home/jens/Source/shotwell/src/Page.vala"
	return self ? cairo_surface_reference (self) : NULL;
#line 13702 "Page.c"
}


cairo_surface_t* single_photo_page_get_surface (SinglePhotoPage* self) {
	cairo_surface_t* result = NULL;
	cairo_surface_t* _tmp0_;
	cairo_surface_t* _tmp1_;
#line 2204 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
#line 2205 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->pixmap;
#line 2205 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _cairo_surface_reference0 (_tmp0_);
#line 2205 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 2205 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 13720 "Page.c"
}


void single_photo_page_get_surface_dim (SinglePhotoPage* self, Dimensions* result) {
	Dimensions _tmp0_;
#line 2208 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2209 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->pixmap_dim;
#line 2209 "/home/jens/Source/shotwell/src/Page.vala"
	*result = _tmp0_;
#line 2209 "/home/jens/Source/shotwell/src/Page.vala"
	return;
#line 13734 "Page.c"
}


static gpointer _cairo_reference0 (gpointer self) {
#line 2213 "/home/jens/Source/shotwell/src/Page.vala"
	return self ? cairo_reference (self) : NULL;
#line 13741 "Page.c"
}


cairo_t* single_photo_page_get_cairo_context (SinglePhotoPage* self) {
	cairo_t* result = NULL;
	cairo_t* _tmp0_;
	cairo_t* _tmp1_;
#line 2212 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
#line 2213 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->pixmap_ctx;
#line 2213 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _cairo_reference0 (_tmp0_);
#line 2213 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 2213 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 13759 "Page.c"
}


void single_photo_page_paint_text (SinglePhotoPage* self, PangoLayout* pango_layout, gint x, gint y) {
	cairo_t* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	cairo_t* _tmp3_;
	PangoLayout* _tmp4_;
#line 2216 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2216 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (PANGO_IS_LAYOUT (pango_layout));
#line 2217 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->text_ctx;
#line 2217 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = x;
#line 2217 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = y;
#line 2217 "/home/jens/Source/shotwell/src/Page.vala"
	cairo_move_to (_tmp0_, (gdouble) _tmp1_, (gdouble) _tmp2_);
#line 2218 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = self->priv->text_ctx;
#line 2218 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = pango_layout;
#line 2218 "/home/jens/Source/shotwell/src/Page.vala"
	pango_cairo_show_layout (_tmp3_, _tmp4_);
#line 13787 "Page.c"
}


void single_photo_page_get_canvas_scaling (SinglePhotoPage* self, Scaling* result) {
	Scaling _tmp0_ = {0};
	GtkWindow* _tmp1_;
	GtkWindow* _tmp2_;
	gboolean _tmp3_;
#line 2221 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_FULLSCREEN_WINDOW);
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp2_);
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_) {
#line 13808 "Page.c"
		GtkWindow* _tmp4_;
		GtkWindow* _tmp5_;
		gboolean _tmp6_;
		Scaling _tmp7_ = {0};
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = _tmp4_;
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = self->priv->scale_up_to_viewport;
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
		scaling_for_screen (_tmp5_, _tmp6_, &_tmp7_);
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = _tmp7_;
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp5_);
#line 13825 "Page.c"
	} else {
		GtkViewport* _tmp8_;
		gboolean _tmp9_;
		Scaling _tmp10_ = {0};
#line 2223 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = self->viewport;
#line 2223 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = self->priv->scale_up_to_viewport;
#line 2223 "/home/jens/Source/shotwell/src/Page.vala"
		scaling_for_widget (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), _tmp9_, &_tmp10_);
#line 2223 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = _tmp10_;
#line 13838 "Page.c"
	}
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
	*result = _tmp0_;
#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
	return;
#line 13844 "Page.c"
}


GdkPixbuf* single_photo_page_get_unscaled_pixbuf (SinglePhotoPage* self) {
	GdkPixbuf* result = NULL;
	GdkPixbuf* _tmp0_;
	GdkPixbuf* _tmp1_;
#line 2226 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
#line 2227 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->unscaled;
#line 2227 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 2227 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 2227 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 13862 "Page.c"
}


GdkPixbuf* single_photo_page_get_scaled_pixbuf (SinglePhotoPage* self) {
	GdkPixbuf* result = NULL;
	GdkPixbuf* _tmp0_;
	GdkPixbuf* _tmp1_;
#line 2230 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
#line 2231 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->scaled;
#line 2231 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 2231 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp1_;
#line 2231 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 13880 "Page.c"
}


void single_photo_page_get_scaled_pixbuf_position (SinglePhotoPage* self, GdkRectangle* result) {
	GdkRectangle _tmp0_;
#line 2235 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2236 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->scaled_pos;
#line 2236 "/home/jens/Source/shotwell/src/Page.vala"
	*result = _tmp0_;
#line 2236 "/home/jens/Source/shotwell/src/Page.vala"
	return;
#line 13894 "Page.c"
}


gboolean single_photo_page_is_inside_pixbuf (SinglePhotoPage* self, gint x, gint y) {
	gboolean result = FALSE;
	gint _tmp0_;
	gint _tmp1_;
	GdkRectangle _tmp2_;
	gboolean _tmp3_;
#line 2239 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), FALSE);
#line 2240 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = x;
#line 2240 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = y;
#line 2240 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->scaled_pos;
#line 2240 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = coord_in_rectangle (_tmp0_, _tmp1_, &_tmp2_);
#line 2240 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp3_;
#line 2240 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 13918 "Page.c"
}


void single_photo_page_invalidate (SinglePhotoPage* self, GdkRectangle* rect) {
	GtkDrawingArea* _tmp0_;
	GdkWindow* _tmp1_;
#line 2243 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2243 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (rect != NULL);
#line 2244 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->canvas;
#line 2244 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
#line 2244 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ != NULL) {
#line 13935 "Page.c"
		GtkDrawingArea* _tmp2_;
		GdkWindow* _tmp3_;
		GdkRectangle _tmp4_;
#line 2245 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->canvas;
#line 2245 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
#line 2245 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = *rect;
#line 2245 "/home/jens/Source/shotwell/src/Page.vala"
		gdk_window_invalidate_rect (_tmp3_, &_tmp4_, FALSE);
#line 13947 "Page.c"
	}
}


void single_photo_page_invalidate_all (SinglePhotoPage* self) {
	GtkDrawingArea* _tmp0_;
	GdkWindow* _tmp1_;
#line 2248 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2249 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->canvas;
#line 2249 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
#line 2249 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_ != NULL) {
#line 13963 "Page.c"
		GtkDrawingArea* _tmp2_;
		GdkWindow* _tmp3_;
#line 2250 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->canvas;
#line 2250 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
#line 2250 "/home/jens/Source/shotwell/src/Page.vala"
		gdk_window_invalidate_rect (_tmp3_, NULL, FALSE);
#line 13972 "Page.c"
	}
}


static void single_photo_page_on_viewport_resize (SinglePhotoPage* self) {
#line 2253 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2255 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_internal_repaint (self, TRUE, NULL);
#line 13982 "Page.c"
}


static void single_photo_page_real_on_resize_finished (Page* base, GdkRectangle* rect) {
	SinglePhotoPage * self;
	GdkRectangle _tmp0_;
#line 2258 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
#line 2258 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (rect != NULL);
#line 2259 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = *rect;
#line 2259 "/home/jens/Source/shotwell/src/Page.vala"
	PAGE_CLASS (single_photo_page_parent_class)->on_resize_finished (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), &_tmp0_);
#line 2262 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_repaint (self, NULL);
#line 13999 "Page.c"
}


static gboolean single_photo_page_on_canvas_exposed (SinglePhotoPage* self, cairo_t* exposed_ctx) {
	gboolean result = FALSE;
	cairo_surface_t* _tmp0_;
	cairo_t* _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	cairo_t* _tmp7_;
#line 2265 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), FALSE);
#line 2265 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (exposed_ctx != NULL, FALSE);
#line 2268 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->pixmap;
#line 2268 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ != NULL) {
#line 14018 "Page.c"
		cairo_t* _tmp1_;
		cairo_surface_t* _tmp2_;
#line 2269 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = exposed_ctx;
#line 2269 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = self->priv->pixmap;
#line 2269 "/home/jens/Source/shotwell/src/Page.vala"
		cairo_set_source_surface (_tmp1_, _tmp2_, (gdouble) 0, (gdouble) 0);
#line 14027 "Page.c"
	} else {
		cairo_t* _tmp3_;
#line 2271 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = exposed_ctx;
#line 2271 "/home/jens/Source/shotwell/src/Page.vala"
		set_source_color_from_string (_tmp3_, "#000");
#line 14034 "Page.c"
	}
#line 2273 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = exposed_ctx;
#line 2273 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = gtk_widget_get_allocated_width (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
#line 2273 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = gtk_widget_get_allocated_height (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
#line 2273 "/home/jens/Source/shotwell/src/Page.vala"
	cairo_rectangle (_tmp4_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp5_, (gdouble) _tmp6_);
#line 2274 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = exposed_ctx;
#line 2274 "/home/jens/Source/shotwell/src/Page.vala"
	cairo_paint (_tmp7_);
#line 2276 "/home/jens/Source/shotwell/src/Page.vala"
	result = TRUE;
#line 2276 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 14052 "Page.c"
}


static void single_photo_page_real_new_surface (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
#line 2279 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (ctx != NULL);
#line 2279 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (ctx_dim != NULL);
#line 14061 "Page.c"
}


void single_photo_page_new_surface (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
#line 2279 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2279 "/home/jens/Source/shotwell/src/Page.vala"
	SINGLE_PHOTO_PAGE_GET_CLASS (self)->new_surface (self, ctx, ctx_dim);
#line 14070 "Page.c"
}


static void single_photo_page_real_updated_pixbuf (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim) {
#line 2282 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
#line 2282 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (old_dim != NULL);
#line 14079 "Page.c"
}


void single_photo_page_updated_pixbuf (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim) {
#line 2282 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2282 "/home/jens/Source/shotwell/src/Page.vala"
	SINGLE_PHOTO_PAGE_GET_CLASS (self)->updated_pixbuf (self, pixbuf, reason, old_dim);
#line 14088 "Page.c"
}


static void single_photo_page_real_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_;
#line 2285 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (ctx != NULL);
#line 2285 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (ctx_dim != NULL);
#line 2286 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = single_photo_page_is_zoom_supported (self);
#line 2286 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_) {
#line 14103 "Page.c"
		gboolean _tmp2_;
#line 2286 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp2_ = zoom_state_is_default (&self->priv->static_zoom_state);
#line 2286 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = !_tmp2_;
#line 14109 "Page.c"
	} else {
#line 2286 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp0_ = FALSE;
#line 14113 "Page.c"
	}
#line 2286 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_) {
#line 14117 "Page.c"
		cairo_t* _tmp3_;
		cairo_t* _tmp4_;
		Dimensions _tmp5_;
		gint _tmp6_;
		Dimensions _tmp7_;
		gint _tmp8_;
		cairo_t* _tmp9_;
		ZoomState _tmp10_;
#line 2287 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = ctx;
#line 2287 "/home/jens/Source/shotwell/src/Page.vala"
		set_source_color_from_string (_tmp3_, "#000");
#line 2288 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = ctx;
#line 2288 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = self->priv->pixmap_dim;
#line 2288 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = _tmp5_.width;
#line 2288 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = self->priv->pixmap_dim;
#line 2288 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _tmp7_.height;
#line 2288 "/home/jens/Source/shotwell/src/Page.vala"
		cairo_rectangle (_tmp4_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp6_, (gdouble) _tmp8_);
#line 2289 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = ctx;
#line 2289 "/home/jens/Source/shotwell/src/Page.vala"
		cairo_fill (_tmp9_);
#line 2291 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = self->priv->static_zoom_state;
#line 2291 "/home/jens/Source/shotwell/src/Page.vala"
		single_photo_page_render_zoomed_to_pixmap (self, &_tmp10_);
#line 14150 "Page.c"
	} else {
		TransitionClock* _tmp11_;
		cairo_t* _tmp12_;
		Dimensions _tmp13_;
		gint _tmp14_;
		Dimensions _tmp15_;
		gint _tmp16_;
		gboolean _tmp17_;
#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = self->priv->transition_clock;
#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = ctx;
#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = *ctx_dim;
#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp14_ = _tmp13_.width;
#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp15_ = *ctx_dim;
#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = _tmp15_.height;
#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp17_ = transition_clock_paint (_tmp11_, _tmp12_, _tmp14_, _tmp16_);
#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
		if (!_tmp17_) {
#line 14175 "Page.c"
			cairo_t* _tmp18_;
			cairo_t* _tmp19_;
			Dimensions _tmp20_;
			gint _tmp21_;
			Dimensions _tmp22_;
			gint _tmp23_;
			cairo_t* _tmp24_;
			cairo_t* _tmp25_;
			GdkPixbuf* _tmp26_;
			GdkRectangle _tmp27_;
			gint _tmp28_;
			GdkRectangle _tmp29_;
			gint _tmp30_;
#line 2294 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp18_ = ctx;
#line 2294 "/home/jens/Source/shotwell/src/Page.vala"
			set_source_color_from_string (_tmp18_, "#000");
#line 2296 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp19_ = ctx;
#line 2296 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp20_ = self->priv->pixmap_dim;
#line 2296 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp21_ = _tmp20_.width;
#line 2296 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp22_ = self->priv->pixmap_dim;
#line 2296 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp23_ = _tmp22_.height;
#line 2296 "/home/jens/Source/shotwell/src/Page.vala"
			cairo_rectangle (_tmp19_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp21_, (gdouble) _tmp23_);
#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp24_ = ctx;
#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
			cairo_fill (_tmp24_);
#line 2299 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp25_ = ctx;
#line 2299 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp26_ = self->priv->scaled;
#line 2299 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp27_ = self->priv->scaled_pos;
#line 2299 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp28_ = _tmp27_.x;
#line 2299 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp29_ = self->priv->scaled_pos;
#line 2299 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp30_ = _tmp29_.y;
#line 2299 "/home/jens/Source/shotwell/src/Page.vala"
			paint_pixmap_with_background (_tmp25_, _tmp26_, _tmp28_, _tmp30_);
#line 14223 "Page.c"
		}
	}
}


void single_photo_page_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
#line 2285 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2285 "/home/jens/Source/shotwell/src/Page.vala"
	SINGLE_PHOTO_PAGE_GET_CLASS (self)->paint (self, ctx, ctx_dim);
#line 14234 "Page.c"
}


static void single_photo_page_repaint_pixmap (SinglePhotoPage* self) {
	cairo_t* _tmp0_;
	cairo_t* _tmp1_;
	Dimensions _tmp2_;
#line 2303 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2304 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->pixmap_ctx;
#line 2304 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ == NULL) {
#line 2305 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 14250 "Page.c"
	}
#line 2307 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->priv->pixmap_ctx;
#line 2307 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->pixmap_dim;
#line 2307 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_paint (self, _tmp1_, &_tmp2_);
#line 2308 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_invalidate_all (self);
#line 14260 "Page.c"
}


void single_photo_page_repaint (SinglePhotoPage* self, Direction* direction) {
	Direction* _tmp0_;
#line 2311 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2312 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = direction;
#line 2312 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_internal_repaint (self, FALSE, _tmp0_);
#line 14272 "Page.c"
}


static void _single_photo_page_repaint_pixmap_transition_clock_repaint_callback (gpointer self) {
#line 2400 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_repaint_pixmap ((SinglePhotoPage*) self);
#line 14279 "Page.c"
}


static void single_photo_page_internal_repaint (SinglePhotoPage* self, gboolean fast, Direction* direction) {
	gboolean _tmp0_;
	gboolean _tmp1_ = FALSE;
	GdkPixbuf* _tmp2_;
	GtkAllocation allocation = {0};
	GtkViewport* _tmp5_;
	GtkAllocation _tmp6_ = {0};
	gint width = 0;
	GtkAllocation _tmp7_;
	gint _tmp8_;
	gint height = 0;
	GtkAllocation _tmp9_;
	gint _tmp10_;
	gboolean _tmp11_ = FALSE;
	gint _tmp12_;
	gboolean new_pixbuf = FALSE;
	GdkPixbuf* _tmp14_;
	Dimensions old_scaled_dim = {0};
	GdkRectangle _tmp15_;
	Dimensions _tmp16_ = {0};
	GdkRectangle old_scaled_pos = {0};
	GdkRectangle _tmp17_;
	gboolean _tmp18_ = FALSE;
	Dimensions _tmp19_;
	gint _tmp20_;
	gint _tmp21_;
	gboolean new_pixmap = FALSE;
	cairo_surface_t* _tmp25_;
	gboolean _tmp28_ = FALSE;
	gboolean _tmp29_;
	GdkInterpType _tmp63_ = 0;
	gboolean _tmp64_;
	GdkInterpType interp = 0;
	GdkPixbuf* _tmp65_;
	gboolean _tmp82_;
	gboolean _tmp83_ = FALSE;
	Direction* _tmp84_;
	TransitionClock* _tmp98_;
	gboolean _tmp99_;
#line 2315 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2317 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_is_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 2317 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp0_) {
#line 2318 "/home/jens/Source/shotwell/src/Page.vala"
		_cairo_surface_destroy0 (self->priv->pixmap);
#line 2318 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->pixmap = NULL;
#line 2319 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->priv->scaled);
#line 2319 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->scaled = NULL;
#line 2321 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 14338 "Page.c"
	}
#line 2325 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->unscaled;
#line 2325 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp2_ == NULL) {
#line 2325 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = TRUE;
#line 14346 "Page.c"
	} else {
		GtkDrawingArea* _tmp3_;
		GdkWindow* _tmp4_;
#line 2325 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = self->canvas;
#line 2325 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
#line 2325 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = _tmp4_ == NULL;
#line 14356 "Page.c"
	}
#line 2325 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp1_) {
#line 2326 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 14362 "Page.c"
	}
#line 2329 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = self->viewport;
#line 2329 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), &_tmp6_);
#line 2329 "/home/jens/Source/shotwell/src/Page.vala"
	allocation = _tmp6_;
#line 2331 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = allocation;
#line 2331 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = _tmp7_.width;
#line 2331 "/home/jens/Source/shotwell/src/Page.vala"
	width = _tmp8_;
#line 2332 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = allocation;
#line 2332 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = _tmp9_.height;
#line 2332 "/home/jens/Source/shotwell/src/Page.vala"
	height = _tmp10_;
#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = width;
#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp12_ <= 0) {
#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = TRUE;
#line 14388 "Page.c"
	} else {
		gint _tmp13_;
#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp13_ = height;
#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = _tmp13_ <= 0;
#line 14395 "Page.c"
	}
#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp11_) {
#line 2335 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 14401 "Page.c"
	}
#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = self->priv->scaled;
#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
	new_pixbuf = _tmp14_ == NULL;
#line 2340 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = self->priv->scaled_pos;
#line 2340 "/home/jens/Source/shotwell/src/Page.vala"
	dimensions_for_rectangle (&_tmp15_, &_tmp16_);
#line 2340 "/home/jens/Source/shotwell/src/Page.vala"
	old_scaled_dim = _tmp16_;
#line 2341 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = self->priv->scaled_pos;
#line 2341 "/home/jens/Source/shotwell/src/Page.vala"
	old_scaled_pos = _tmp17_;
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp19_ = self->priv->pixmap_dim;
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp20_ = _tmp19_.width;
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp21_ = width;
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp20_ != _tmp21_) {
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = TRUE;
#line 14427 "Page.c"
	} else {
		Dimensions _tmp22_;
		gint _tmp23_;
		gint _tmp24_;
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp22_ = self->priv->pixmap_dim;
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = _tmp22_.height;
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp24_ = height;
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = _tmp23_ != _tmp24_;
#line 14440 "Page.c"
	}
#line 2344 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp18_) {
#line 2345 "/home/jens/Source/shotwell/src/Page.vala"
		_cairo_surface_destroy0 (self->priv->pixmap);
#line 2345 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->pixmap = NULL;
#line 14448 "Page.c"
	}
#line 2348 "/home/jens/Source/shotwell/src/Page.vala"
	new_pixmap = FALSE;
#line 2349 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp25_ = self->priv->pixmap;
#line 2349 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp25_ == NULL) {
#line 14456 "Page.c"
		gint _tmp26_;
		gint _tmp27_;
#line 2350 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp26_ = width;
#line 2350 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp27_ = height;
#line 2350 "/home/jens/Source/shotwell/src/Page.vala"
		single_photo_page_init_pixmap (self, _tmp26_, _tmp27_);
#line 2351 "/home/jens/Source/shotwell/src/Page.vala"
		new_pixmap = TRUE;
#line 14467 "Page.c"
	}
#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp29_ = new_pixbuf;
#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp29_) {
#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp28_ = TRUE;
#line 14475 "Page.c"
	} else {
		gboolean _tmp30_;
#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp30_ = new_pixmap;
#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp28_ = _tmp30_;
#line 14482 "Page.c"
	}
#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp28_) {
#line 14486 "Page.c"
		Dimensions unscaled_dim = {0};
		GdkPixbuf* _tmp31_;
		Dimensions _tmp32_ = {0};
		Dimensions scaled_dim = {0};
		gboolean _tmp33_ = FALSE;
		gboolean _tmp34_ = FALSE;
		gboolean _tmp35_ = FALSE;
		gboolean _tmp36_;
		gint _tmp47_;
		Dimensions _tmp48_;
		gint _tmp49_;
		gint _tmp50_;
		Dimensions _tmp51_;
		gint _tmp52_;
		gint _tmp53_;
		Dimensions _tmp54_;
		gint _tmp55_;
		gint _tmp56_;
		Dimensions _tmp57_;
		gint _tmp58_;
		Dimensions _tmp59_;
		gint _tmp60_;
		Dimensions _tmp61_;
		gint _tmp62_;
#line 2355 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp31_ = self->priv->unscaled;
#line 2355 "/home/jens/Source/shotwell/src/Page.vala"
		dimensions_for_pixbuf (_tmp31_, &_tmp32_);
#line 2355 "/home/jens/Source/shotwell/src/Page.vala"
		unscaled_dim = _tmp32_;
#line 2359 "/home/jens/Source/shotwell/src/Page.vala"
		dimensions_init (&scaled_dim, 0, 0);
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp36_ = self->priv->scale_up_to_viewport;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
		if (!_tmp36_) {
#line 14523 "Page.c"
			gboolean _tmp37_;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp37_ = dimensions_has_area (&self->priv->max_dim);
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp35_ = _tmp37_;
#line 14529 "Page.c"
		} else {
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp35_ = FALSE;
#line 14533 "Page.c"
		}
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp35_) {
#line 14537 "Page.c"
			Dimensions _tmp38_;
			gint _tmp39_;
			gint _tmp40_;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp38_ = self->priv->max_dim;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp39_ = _tmp38_.width;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp40_ = width;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp34_ = _tmp39_ < _tmp40_;
#line 14549 "Page.c"
		} else {
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp34_ = FALSE;
#line 14553 "Page.c"
		}
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp34_) {
#line 14557 "Page.c"
			Dimensions _tmp41_;
			gint _tmp42_;
			gint _tmp43_;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp41_ = self->priv->max_dim;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp42_ = _tmp41_.height;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp43_ = height;
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp33_ = _tmp42_ < _tmp43_;
#line 14569 "Page.c"
		} else {
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp33_ = FALSE;
#line 14573 "Page.c"
		}
#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp33_) {
#line 14577 "Page.c"
			Dimensions _tmp44_;
#line 2361 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp44_ = self->priv->max_dim;
#line 2361 "/home/jens/Source/shotwell/src/Page.vala"
			scaled_dim = _tmp44_;
#line 14583 "Page.c"
		} else {
			Dimensions _tmp45_;
			Dimensions _tmp46_ = {0};
#line 2363 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp45_ = self->priv->pixmap_dim;
#line 2363 "/home/jens/Source/shotwell/src/Page.vala"
			dimensions_get_scaled_proportional (&unscaled_dim, &_tmp45_, &_tmp46_);
#line 2363 "/home/jens/Source/shotwell/src/Page.vala"
			scaled_dim = _tmp46_;
#line 14593 "Page.c"
		}
#line 2365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp47_ = width;
#line 2365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp48_ = scaled_dim;
#line 2365 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp49_ = _tmp48_.width;
#line 2365 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_assert (_tmp47_ >= _tmp49_, "width >= scaled_dim.width");
#line 2366 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp50_ = height;
#line 2366 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp51_ = scaled_dim;
#line 2366 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp52_ = _tmp51_.height;
#line 2366 "/home/jens/Source/shotwell/src/Page.vala"
		_vala_assert (_tmp50_ >= _tmp52_, "height >= scaled_dim.height");
#line 2369 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp53_ = width;
#line 2369 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp54_ = scaled_dim;
#line 2369 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp55_ = _tmp54_.width;
#line 2369 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->scaled_pos.x = (_tmp53_ - _tmp55_) / 2;
#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp56_ = height;
#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp57_ = scaled_dim;
#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp58_ = _tmp57_.height;
#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->scaled_pos.y = (_tmp56_ - _tmp58_) / 2;
#line 2371 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp59_ = scaled_dim;
#line 2371 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp60_ = _tmp59_.width;
#line 2371 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->scaled_pos.width = _tmp60_;
#line 2372 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp61_ = scaled_dim;
#line 2372 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp62_ = _tmp61_.height;
#line 2372 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->scaled_pos.height = _tmp62_;
#line 14639 "Page.c"
	}
#line 2375 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp64_ = fast;
#line 2375 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp64_) {
#line 2375 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp63_ = SINGLE_PHOTO_PAGE_FAST_INTERP;
#line 14647 "Page.c"
	} else {
#line 2375 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp63_ = SINGLE_PHOTO_PAGE_QUALITY_INTERP;
#line 14651 "Page.c"
	}
#line 2375 "/home/jens/Source/shotwell/src/Page.vala"
	interp = _tmp63_;
#line 2378 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp65_ = self->priv->scaled;
#line 2378 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp65_ == NULL) {
#line 14659 "Page.c"
		GdkPixbuf* _tmp66_;
		GdkRectangle _tmp67_;
		Dimensions _tmp68_ = {0};
		GdkInterpType _tmp69_;
		GdkPixbuf* _tmp70_;
		SinglePhotoPageUpdateReason reason = 0;
		gboolean _tmp71_;
		Dimensions _tmp75_;
		Dimensions _tmp76_;
		gdouble _tmp77_;
		GdkPoint _tmp78_ = {0};
		GdkPixbuf* _tmp79_;
		SinglePhotoPageUpdateReason _tmp80_;
		Dimensions _tmp81_;
#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp66_ = self->priv->unscaled;
#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp67_ = self->priv->scaled_pos;
#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
		dimensions_for_rectangle (&_tmp67_, &_tmp68_);
#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp69_ = interp;
#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp70_ = resize_pixbuf (_tmp66_, &_tmp68_, _tmp69_);
#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (self->priv->scaled);
#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->scaled = _tmp70_;
#line 2381 "/home/jens/Source/shotwell/src/Page.vala"
		reason = SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS;
#line 2382 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp71_ = new_pixbuf;
#line 2382 "/home/jens/Source/shotwell/src/Page.vala"
		if (_tmp71_) {
#line 2383 "/home/jens/Source/shotwell/src/Page.vala"
			reason = SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF;
#line 14696 "Page.c"
		} else {
			gboolean _tmp72_ = FALSE;
			gboolean _tmp73_;
#line 2384 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp73_ = new_pixmap;
#line 2384 "/home/jens/Source/shotwell/src/Page.vala"
			if (!_tmp73_) {
#line 14704 "Page.c"
				GdkInterpType _tmp74_;
#line 2384 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp74_ = interp;
#line 2384 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp72_ = _tmp74_ == SINGLE_PHOTO_PAGE_QUALITY_INTERP;
#line 14710 "Page.c"
			} else {
#line 2384 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp72_ = FALSE;
#line 14714 "Page.c"
			}
#line 2384 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp72_) {
#line 2385 "/home/jens/Source/shotwell/src/Page.vala"
				reason = SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT;
#line 14720 "Page.c"
			}
		}
#line 2387 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp75_ = self->priv->max_dim;
#line 2387 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp76_ = self->priv->pixmap_dim;
#line 2387 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp77_ = zoom_state_get_interpolation_factor (&self->priv->static_zoom_state);
#line 2387 "/home/jens/Source/shotwell/src/Page.vala"
		zoom_state_get_viewport_center (&self->priv->static_zoom_state, &_tmp78_);
#line 2387 "/home/jens/Source/shotwell/src/Page.vala"
		zoom_state_init (&self->priv->static_zoom_state, &_tmp75_, &_tmp76_, _tmp77_, &_tmp78_);
#line 2391 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp79_ = self->priv->scaled;
#line 2391 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp80_ = reason;
#line 2391 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp81_ = old_scaled_dim;
#line 2391 "/home/jens/Source/shotwell/src/Page.vala"
		single_photo_page_updated_pixbuf (self, _tmp79_, _tmp80_, &_tmp81_);
#line 14741 "Page.c"
	}
#line 2394 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp82_ = fast;
#line 2394 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->zoom_high_quality = !_tmp82_;
#line 2396 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp84_ = direction;
#line 2396 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp84_ != NULL) {
#line 14751 "Page.c"
		TransitionClock* _tmp85_;
		gboolean _tmp86_;
#line 2396 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp85_ = self->priv->transition_clock;
#line 2396 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp86_ = transition_clock_is_in_progress (_tmp85_);
#line 2396 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp83_ = !_tmp86_;
#line 14760 "Page.c"
	} else {
#line 2396 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp83_ = FALSE;
#line 14764 "Page.c"
	}
#line 2396 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp83_) {
#line 14768 "Page.c"
		SpitTransitionsVisuals* visuals = NULL;
		GdkPixbuf* _tmp87_;
		GdkRectangle _tmp88_;
		GdkPixbuf* _tmp89_;
		GdkRectangle _tmp90_;
		GdkRGBA _tmp91_ = {0};
		SpitTransitionsVisuals* _tmp92_;
		TransitionClock* _tmp93_;
		SpitTransitionsVisuals* _tmp94_;
		Direction* _tmp95_;
		SpitTransitionsDirection _tmp96_;
		gint _tmp97_;
#line 2397 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp87_ = self->priv->old_scaled;
#line 2397 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp88_ = old_scaled_pos;
#line 2397 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp89_ = self->priv->scaled;
#line 2397 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp90_ = self->priv->scaled_pos;
#line 2397 "/home/jens/Source/shotwell/src/Page.vala"
		parse_color ("#000", &_tmp91_);
#line 2397 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp92_ = spit_transitions_visuals_new (_tmp87_, &_tmp88_, _tmp89_, &_tmp90_, &_tmp91_);
#line 2397 "/home/jens/Source/shotwell/src/Page.vala"
		visuals = _tmp92_;
#line 2400 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp93_ = self->priv->transition_clock;
#line 2400 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp94_ = visuals;
#line 2400 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp95_ = direction;
#line 2400 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp96_ = direction_to_transition_direction (*_tmp95_);
#line 2400 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp97_ = self->priv->transition_duration_msec;
#line 2400 "/home/jens/Source/shotwell/src/Page.vala"
		transition_clock_start (_tmp93_, _tmp94_, _tmp96_, _tmp97_, _single_photo_page_repaint_pixmap_transition_clock_repaint_callback, self);
#line 2396 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (visuals);
#line 14809 "Page.c"
	}
#line 2404 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp98_ = self->priv->transition_clock;
#line 2404 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp99_ = transition_clock_is_in_progress (_tmp98_);
#line 2404 "/home/jens/Source/shotwell/src/Page.vala"
	if (!_tmp99_) {
#line 2405 "/home/jens/Source/shotwell/src/Page.vala"
		single_photo_page_repaint_pixmap (self);
#line 14819 "Page.c"
	}
}


static void single_photo_page_init_pixmap (SinglePhotoPage* self, gint width, gint height) {
	GdkPixbuf* _tmp0_;
	GtkDrawingArea* _tmp1_;
	GdkWindow* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	cairo_surface_t* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	cairo_surface_t* _tmp8_;
	cairo_t* _tmp9_;
	cairo_surface_t* _tmp10_;
	cairo_t* _tmp11_;
	cairo_t* _tmp12_;
	cairo_t* _tmp13_;
	Dimensions _tmp14_;
#line 2408 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2409 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->unscaled;
#line 2409 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp0_ != NULL, "unscaled != null");
#line 2410 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = self->canvas;
#line 2410 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
#line 2410 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp2_ != NULL, "canvas.get_window() != null");
#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = width;
#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = height;
#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp3_, _tmp4_);
#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
	_cairo_surface_destroy0 (self->priv->pixmap);
#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->pixmap = _tmp5_;
#line 2414 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = width;
#line 2414 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp7_ = height;
#line 2414 "/home/jens/Source/shotwell/src/Page.vala"
	dimensions_init (&self->priv->pixmap_dim, _tmp6_, _tmp7_);
#line 2417 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = self->priv->pixmap;
#line 2417 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = cairo_create (_tmp8_);
#line 2417 "/home/jens/Source/shotwell/src/Page.vala"
	_cairo_destroy0 (self->priv->pixmap_ctx);
#line 2417 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->pixmap_ctx = _tmp9_;
#line 2420 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->scaled);
#line 2420 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->scaled = NULL;
#line 2423 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp10_ = self->priv->pixmap;
#line 2423 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = cairo_create (_tmp10_);
#line 2423 "/home/jens/Source/shotwell/src/Page.vala"
	_cairo_destroy0 (self->priv->text_ctx);
#line 2423 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->text_ctx = _tmp11_;
#line 2424 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = self->priv->text_ctx;
#line 2424 "/home/jens/Source/shotwell/src/Page.vala"
	set_source_color_from_string (_tmp12_, "#fff");
#line 2429 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = self->priv->pixmap_ctx;
#line 2429 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = self->priv->pixmap_dim;
#line 2429 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_new_surface (self, _tmp13_, &_tmp14_);
#line 14898 "Page.c"
}


static gboolean single_photo_page_real_on_context_keypress (Page* base) {
	SinglePhotoPage * self;
	gboolean result = FALSE;
	GtkMenu* _tmp0_;
	GtkMenu* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
#line 2432 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
#line 2433 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page_get_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 2433 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 2433 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp1_, NULL);
#line 2433 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = _tmp2_;
#line 2433 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp1_);
#line 2433 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp3_;
#line 2433 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 14925 "Page.c"
}


static void single_photo_page_real_on_previous_photo (SinglePhotoPage* self) {
}


void single_photo_page_on_previous_photo (SinglePhotoPage* self) {
#line 2436 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2436 "/home/jens/Source/shotwell/src/Page.vala"
	SINGLE_PHOTO_PAGE_GET_CLASS (self)->on_previous_photo (self);
#line 14938 "Page.c"
}


static void single_photo_page_real_on_next_photo (SinglePhotoPage* self) {
}


void single_photo_page_on_next_photo (SinglePhotoPage* self) {
#line 2439 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2439 "/home/jens/Source/shotwell/src/Page.vala"
	SINGLE_PHOTO_PAGE_GET_CLASS (self)->on_next_photo (self);
#line 14951 "Page.c"
}


static gboolean single_photo_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
	SinglePhotoPage * self;
	gboolean result = FALSE;
	gboolean nav_ok = FALSE;
	GdkEventKey* _tmp0_;
	guint32 _tmp1_;
	guint32 _tmp2_;
	gboolean handled = FALSE;
	GdkEventKey* _tmp3_;
	guint _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	GQuark _tmp8_ = 0U;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp7_label0 = 0;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp7_label1 = 0;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp7_label2 = 0;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp7_label3 = 0;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp7_label4 = 0;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	static GQuark _tmp7_label5 = 0;
#line 14980 "Page.c"
	gboolean _tmp15_;
	gboolean _tmp16_ = FALSE;
#line 2442 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
#line 2442 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 2446 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = event;
#line 2446 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_->time;
#line 2446 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = self->priv->last_nav_key;
#line 2446 "/home/jens/Source/shotwell/src/Page.vala"
	nav_ok = (_tmp1_ - _tmp2_) > ((guint32) SINGLE_PHOTO_PAGE_KEY_REPEAT_INTERVAL_MSEC);
#line 2448 "/home/jens/Source/shotwell/src/Page.vala"
	handled = TRUE;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = event;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = _tmp3_->keyval;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = gdk_keyval_name (_tmp4_);
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = _tmp5_;
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp8_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
	if (((_tmp8_ == ((0 != _tmp7_label0) ? _tmp7_label0 : (_tmp7_label0 = g_quark_from_static_string ("Left")))) || (_tmp8_ == ((0 != _tmp7_label1) ? _tmp7_label1 : (_tmp7_label1 = g_quark_from_static_string ("KP_Left"))))) || (_tmp8_ == ((0 != _tmp7_label2) ? _tmp7_label2 : (_tmp7_label2 = g_quark_from_static_string ("BackSpace"))))) {
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 15011 "Page.c"
			default:
			{
				gboolean _tmp9_;
#line 2453 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp9_ = nav_ok;
#line 2453 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp9_) {
#line 15019 "Page.c"
					GdkEventKey* _tmp10_;
					guint32 _tmp11_;
#line 2454 "/home/jens/Source/shotwell/src/Page.vala"
					single_photo_page_on_previous_photo (self);
#line 2455 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp10_ = event;
#line 2455 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp11_ = _tmp10_->time;
#line 2455 "/home/jens/Source/shotwell/src/Page.vala"
					self->priv->last_nav_key = _tmp11_;
#line 15030 "Page.c"
				}
#line 2457 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 15034 "Page.c"
			}
		}
	} else if (((_tmp8_ == ((0 != _tmp7_label3) ? _tmp7_label3 : (_tmp7_label3 = g_quark_from_static_string ("Right")))) || (_tmp8_ == ((0 != _tmp7_label4) ? _tmp7_label4 : (_tmp7_label4 = g_quark_from_static_string ("KP_Right"))))) || (_tmp8_ == ((0 != _tmp7_label5) ? _tmp7_label5 : (_tmp7_label5 = g_quark_from_static_string ("space"))))) {
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 15040 "Page.c"
			default:
			{
				gboolean _tmp12_;
#line 2462 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp12_ = nav_ok;
#line 2462 "/home/jens/Source/shotwell/src/Page.vala"
				if (_tmp12_) {
#line 15048 "Page.c"
					GdkEventKey* _tmp13_;
					guint32 _tmp14_;
#line 2463 "/home/jens/Source/shotwell/src/Page.vala"
					single_photo_page_on_next_photo (self);
#line 2464 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp13_ = event;
#line 2464 "/home/jens/Source/shotwell/src/Page.vala"
					_tmp14_ = _tmp13_->time;
#line 2464 "/home/jens/Source/shotwell/src/Page.vala"
					self->priv->last_nav_key = _tmp14_;
#line 15059 "Page.c"
				}
#line 2466 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 15063 "Page.c"
			}
		}
	} else {
#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
		switch (0) {
#line 15069 "Page.c"
			default:
			{
#line 2469 "/home/jens/Source/shotwell/src/Page.vala"
				handled = FALSE;
#line 2470 "/home/jens/Source/shotwell/src/Page.vala"
				break;
#line 15076 "Page.c"
			}
		}
	}
#line 2473 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = handled;
#line 2473 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp15_) {
#line 2474 "/home/jens/Source/shotwell/src/Page.vala"
		result = TRUE;
#line 2474 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 15088 "Page.c"
	}
#line 2476 "/home/jens/Source/shotwell/src/Page.vala"
	if (GTK_WIDGET_CLASS (single_photo_page_parent_class)->key_press_event != NULL) {
#line 15092 "Page.c"
		GdkEventKey* _tmp17_;
		gboolean _tmp18_;
#line 2476 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp17_ = event;
#line 2476 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = GTK_WIDGET_CLASS (single_photo_page_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), gtk_widget_get_type (), GtkWidget), _tmp17_);
#line 2476 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = _tmp18_;
#line 15101 "Page.c"
	} else {
#line 2476 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp16_ = TRUE;
#line 15105 "Page.c"
	}
#line 2476 "/home/jens/Source/shotwell/src/Page.vala"
	result = _tmp16_;
#line 2476 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 15111 "Page.c"
}


static void single_photo_page_on_colors_changed (SinglePhotoPage* self) {
#line 2479 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
#line 2480 "/home/jens/Source/shotwell/src/Page.vala"
	invalidate_transparent_background ();
#line 2481 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_repaint (self, NULL);
#line 15122 "Page.c"
}


static void single_photo_page_class_init (SinglePhotoPageClass * klass) {
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	single_photo_page_parent_class = g_type_class_peek_parent (klass);
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	g_type_class_add_private (klass, sizeof (SinglePhotoPagePrivate));
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->is_zoom_supported = (gboolean (*) (SinglePhotoPage *)) single_photo_page_real_is_zoom_supported;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->cancel_zoom = (void (*) (SinglePhotoPage *)) single_photo_page_real_cancel_zoom;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->save_zoom_state = (void (*) (SinglePhotoPage *)) single_photo_page_real_save_zoom_state;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->restore_zoom_state = (void (*) (SinglePhotoPage *)) single_photo_page_real_restore_zoom_state;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->get_zoom_buffer = (ZoomBuffer* (*) (SinglePhotoPage *)) single_photo_page_real_get_zoom_buffer;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->switched_to = (void (*) (Page *)) single_photo_page_real_switched_to;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->set_container = (void (*) (Page *, GtkWindow*)) single_photo_page_real_set_container;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_resize_finished = (void (*) (Page *, GdkRectangle*)) single_photo_page_real_on_resize_finished;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->new_surface = (void (*) (SinglePhotoPage *, cairo_t*, Dimensions*)) single_photo_page_real_new_surface;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->updated_pixbuf = (void (*) (SinglePhotoPage *, GdkPixbuf*, SinglePhotoPageUpdateReason, Dimensions*)) single_photo_page_real_updated_pixbuf;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->paint = (void (*) (SinglePhotoPage *, cairo_t*, Dimensions*)) single_photo_page_real_paint;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((PageClass *) klass)->on_context_keypress = (gboolean (*) (Page *)) single_photo_page_real_on_context_keypress;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->on_previous_photo = (void (*) (SinglePhotoPage *)) single_photo_page_real_on_previous_photo;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((SinglePhotoPageClass *) klass)->on_next_photo = (void (*) (SinglePhotoPage *)) single_photo_page_real_on_next_photo;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	((GtkWidgetClass *) klass)->key_press_event = (gboolean (*) (GtkWidget *, GdkEventKey*)) single_photo_page_real_key_press_event;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	G_OBJECT_CLASS (klass)->finalize = single_photo_page_finalize;
#line 15163 "Page.c"
}


static void single_photo_page_instance_init (SinglePhotoPage * self) {
	GtkDrawingArea* _tmp0_;
	GtkViewport* _tmp1_;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv = SINGLE_PHOTO_PAGE_GET_PRIVATE (self);
#line 1974 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = (GtkDrawingArea*) gtk_drawing_area_new ();
#line 1974 "/home/jens/Source/shotwell/src/Page.vala"
	g_object_ref_sink (_tmp0_);
#line 1974 "/home/jens/Source/shotwell/src/Page.vala"
	self->canvas = _tmp0_;
#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = (GtkViewport*) gtk_viewport_new (NULL, NULL);
#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
	g_object_ref_sink (_tmp1_);
#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
	self->viewport = _tmp1_;
#line 1979 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->transition_duration_msec = 0;
#line 1980 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->pixmap = NULL;
#line 1981 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->pixmap_ctx = NULL;
#line 1982 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->text_ctx = NULL;
#line 1983 "/home/jens/Source/shotwell/src/Page.vala"
	dimensions_init (&self->priv->pixmap_dim, 0, 0);
#line 1984 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->unscaled = NULL;
#line 1985 "/home/jens/Source/shotwell/src/Page.vala"
	dimensions_init (&self->priv->max_dim, 0, 0);
#line 1986 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->scaled = NULL;
#line 1987 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->old_scaled = NULL;
#line 1988 "/home/jens/Source/shotwell/src/Page.vala"
	memset (&self->priv->scaled_pos, 0, sizeof (GdkRectangle));
#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->zoom_high_quality = TRUE;
#line 1992 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->has_saved_zoom_state = FALSE;
#line 1993 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->last_nav_key = (guint32) 0;
#line 15210 "Page.c"
}


static void single_photo_page_finalize (GObject * obj) {
	SinglePhotoPage * self;
	ConfigFacade* _tmp0_;
	ConfigFacade* _tmp1_;
	guint _tmp2_;
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
#line 2026 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = config_facade_get_instance ();
#line 2026 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = _tmp0_;
#line 2026 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_parse_name ("colors-changed", CONFIG_TYPE_FACADE, &_tmp2_, NULL, FALSE);
#line 2026 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _single_photo_page_on_colors_changed_config_facade_colors_changed, self);
#line 2026 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp1_);
#line 1974 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->canvas);
#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->viewport);
#line 1978 "/home/jens/Source/shotwell/src/Page.vala"
	_transition_clock_unref0 (self->priv->transition_clock);
#line 1980 "/home/jens/Source/shotwell/src/Page.vala"
	_cairo_surface_destroy0 (self->priv->pixmap);
#line 1981 "/home/jens/Source/shotwell/src/Page.vala"
	_cairo_destroy0 (self->priv->pixmap_ctx);
#line 1982 "/home/jens/Source/shotwell/src/Page.vala"
	_cairo_destroy0 (self->priv->text_ctx);
#line 1984 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->unscaled);
#line 1986 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->scaled);
#line 1987 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->old_scaled);
#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
	G_OBJECT_CLASS (single_photo_page_parent_class)->finalize (obj);
#line 15251 "Page.c"
}


GType single_photo_page_get_type (void) {
	static volatile gsize single_photo_page_type_id__volatile = 0;
	if (g_once_init_enter (&single_photo_page_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SinglePhotoPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) single_photo_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SinglePhotoPage), 0, (GInstanceInitFunc) single_photo_page_instance_init, NULL };
		GType single_photo_page_type_id;
		single_photo_page_type_id = g_type_register_static (TYPE_PAGE, "SinglePhotoPage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&single_photo_page_type_id__volatile, single_photo_page_type_id);
	}
	return single_photo_page_type_id__volatile;
}


static void _drag_and_drop_handler_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
#line 2540 "/home/jens/Source/shotwell/src/Page.vala"
	drag_and_drop_handler_on_drag_begin ((DragAndDropHandler*) self, context);
#line 15270 "Page.c"
}


static void _drag_and_drop_handler_on_drag_data_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self) {
#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
	drag_and_drop_handler_on_drag_data_get ((DragAndDropHandler*) self, context, selection_data, info, time_);
#line 15277 "Page.c"
}


static void _drag_and_drop_handler_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
#line 2542 "/home/jens/Source/shotwell/src/Page.vala"
	drag_and_drop_handler_on_drag_end ((DragAndDropHandler*) self);
#line 15284 "Page.c"
}


static gboolean _drag_and_drop_handler_on_drag_failed_gtk_widget_drag_failed (GtkWidget* _sender, GdkDragContext* context, GtkDragResult _result_, gpointer self) {
	gboolean result;
	result = drag_and_drop_handler_on_drag_failed ((DragAndDropHandler*) self, context, _result_);
#line 2543 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 15293 "Page.c"
}


static GType drag_and_drop_handler_target_type_get_type (void) {
	static volatile gsize drag_and_drop_handler_target_type_type_id__volatile = 0;
	if (g_once_init_enter (&drag_and_drop_handler_target_type_type_id__volatile)) {
		static const GEnumValue values[] = {{DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS, "DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS", "xds"}, {DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST, "DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST", "media-list"}, {0, NULL, NULL}};
		GType drag_and_drop_handler_target_type_type_id;
		drag_and_drop_handler_target_type_type_id = g_enum_register_static ("DragAndDropHandlerTargetType", values);
		g_once_init_leave (&drag_and_drop_handler_target_type_type_id__volatile, drag_and_drop_handler_target_type_type_id);
	}
	return drag_and_drop_handler_target_type_type_id__volatile;
}


static GdkAtom* _gdk_atom_dup (GdkAtom* self) {
	GdkAtom* dup;
#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
	dup = g_new0 (GdkAtom, 1);
#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
	memcpy (dup, self, sizeof (GdkAtom));
#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
	return dup;
#line 15317 "Page.c"
}


static gpointer __gdk_atom_dup0 (gpointer self) {
#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
	return self ? _gdk_atom_dup (self) : NULL;
#line 15324 "Page.c"
}


DragAndDropHandler* drag_and_drop_handler_construct (GType object_type, Page* page) {
	DragAndDropHandler* self = NULL;
	Page* _tmp0_;
	Page* _tmp1_;
	GtkWidget* _tmp2_;
	GtkWidget* _tmp3_;
	GtkWidget* _tmp4_;
	gboolean _tmp5_;
	GdkAtom* _tmp6_;
	GdkAtom* _tmp9_;
	guint8* _tmp12_;
	gint _tmp12__length1;
	GtkWidget* _tmp15_;
	GtkWidget* _tmp16_;
	GtkWidget* _tmp17_;
	GtkWidget* _tmp18_;
	GtkWidget* _tmp19_;
#line 2510 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_PAGE (page), NULL);
#line 2510 "/home/jens/Source/shotwell/src/Page.vala"
	self = (DragAndDropHandler*) g_type_create_instance (object_type);
#line 2511 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = page;
#line 2511 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->page = _tmp0_;
#line 2512 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page;
#line 2512 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = page_get_event_source (_tmp1_);
#line 2512 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->event_source);
#line 2512 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->event_source = _tmp2_;
#line 2513 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = self->priv->event_source;
#line 2513 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp3_ != NULL, "event_source != null");
#line 2514 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->event_source;
#line 2514 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = gtk_widget_get_has_window (_tmp4_);
#line 2514 "/home/jens/Source/shotwell/src/Page.vala"
	_vala_assert (_tmp5_, "event_source.get_has_window()");
#line 2517 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = drag_and_drop_handler_XDS_ATOM;
#line 2517 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp6_ == NULL) {
#line 15375 "Page.c"
		GdkAtom _tmp7_;
		GdkAtom* _tmp8_;
#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = gdk_atom_intern_static_string ("XdndDirectSave0");
#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = __gdk_atom_dup0 (&_tmp7_);
#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (drag_and_drop_handler_XDS_ATOM);
#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_XDS_ATOM = _tmp8_;
#line 15386 "Page.c"
	}
#line 2520 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = drag_and_drop_handler_TEXT_ATOM;
#line 2520 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp9_ == NULL) {
#line 15392 "Page.c"
		GdkAtom _tmp10_;
		GdkAtom* _tmp11_;
#line 2521 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = gdk_atom_intern_static_string ("text/plain");
#line 2521 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = __gdk_atom_dup0 (&_tmp10_);
#line 2521 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (drag_and_drop_handler_TEXT_ATOM);
#line 2521 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_TEXT_ATOM = _tmp11_;
#line 15403 "Page.c"
	}
#line 2523 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = drag_and_drop_handler_XDS_FAKE_TARGET;
#line 2523 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12__length1 = drag_and_drop_handler_XDS_FAKE_TARGET_length1;
#line 2523 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp12_ == NULL) {
#line 15411 "Page.c"
		gint _tmp13_;
		guchar* _tmp14_;
#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp14_ = string_to_uchar_array ("shotwell.txt", &_tmp13_);
#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_XDS_FAKE_TARGET = (g_free (drag_and_drop_handler_XDS_FAKE_TARGET), NULL);
#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_XDS_FAKE_TARGET = _tmp14_;
#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_XDS_FAKE_TARGET_length1 = _tmp13_;
#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
		_drag_and_drop_handler_XDS_FAKE_TARGET_size_ = drag_and_drop_handler_XDS_FAKE_TARGET_length1;
#line 15424 "Page.c"
	}
#line 2527 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = self->priv->event_source;
#line 2527 "/home/jens/Source/shotwell/src/Page.vala"
	gtk_drag_source_set (_tmp15_, GDK_BUTTON1_MASK, DRAG_AND_DROP_HANDLER_SOURCE_TARGET_ENTRIES, G_N_ELEMENTS (DRAG_AND_DROP_HANDLER_SOURCE_TARGET_ENTRIES), GDK_ACTION_COPY);
#line 2532 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = self->priv->event_source;
#line 2532 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect (_tmp16_, "drag-begin", (GCallback) _drag_and_drop_handler_on_drag_begin_gtk_widget_drag_begin, self);
#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = self->priv->event_source;
#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect (_tmp17_, "drag-data-get", (GCallback) _drag_and_drop_handler_on_drag_data_get_gtk_widget_drag_data_get, self);
#line 2534 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp18_ = self->priv->event_source;
#line 2534 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect (_tmp18_, "drag-end", (GCallback) _drag_and_drop_handler_on_drag_end_gtk_widget_drag_end, self);
#line 2535 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp19_ = self->priv->event_source;
#line 2535 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_connect (_tmp19_, "drag-failed", (GCallback) _drag_and_drop_handler_on_drag_failed_gtk_widget_drag_failed, self);
#line 2510 "/home/jens/Source/shotwell/src/Page.vala"
	return self;
#line 15448 "Page.c"
}


DragAndDropHandler* drag_and_drop_handler_new (Page* page) {
#line 2510 "/home/jens/Source/shotwell/src/Page.vala"
	return drag_and_drop_handler_construct (TYPE_DRAG_AND_DROP_HANDLER, page);
#line 15455 "Page.c"
}


static void drag_and_drop_handler_on_drag_begin (DragAndDropHandler* self, GdkDragContext* context) {
	Page* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	Page* _tmp5_;
	ThumbnailSource* thumb = NULL;
	Page* _tmp11_;
	ViewCollection* _tmp12_;
	ViewCollection* _tmp13_;
	DataView* _tmp14_;
	DataView* _tmp15_;
	DataSource* _tmp16_;
	ThumbnailSource* _tmp17_;
	GdkDragContext* _tmp27_;
	GdkWindow* _tmp28_;
	GdkAtom* _tmp29_;
	GdkAtom* _tmp30_;
	guint8* _tmp31_;
	gint _tmp31__length1;
	GError * _inner_error_ = NULL;
#line 2550 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_DRAG_AND_DROP_HANDLER (self));
#line 2550 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->page;
#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_page_name (_tmp0_);
#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
	g_debug ("Page.vala:2551: on_drag_begin (%s)", _tmp2_);
#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp2_);
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp5_ = self->priv->page;
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp5_ == NULL) {
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = TRUE;
#line 15501 "Page.c"
	} else {
		Page* _tmp6_;
		ViewCollection* _tmp7_;
		ViewCollection* _tmp8_;
		gint _tmp9_;
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = self->priv->page;
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = page_get_view (_tmp6_);
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = _tmp7_;
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = view_collection_get_selected_count (_tmp8_);
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _tmp9_ == 0;
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp8_);
#line 15519 "Page.c"
	}
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_) {
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = TRUE;
#line 15525 "Page.c"
	} else {
		ExporterUI* _tmp10_;
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = self->priv->exporter;
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = _tmp10_ != NULL;
#line 15532 "Page.c"
	}
#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_) {
#line 2554 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 15538 "Page.c"
	}
#line 2556 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->drag_destination);
#line 2556 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->drag_destination = NULL;
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp11_ = self->priv->page;
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp12_ = page_get_view (_tmp11_);
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = _tmp12_;
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = view_collection_get_selected_at (_tmp13_, 0);
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = _tmp14_;
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = data_view_get_source (_tmp15_);
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource);
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (_tmp15_);
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	_data_collection_unref0 (_tmp13_);
#line 2559 "/home/jens/Source/shotwell/src/Page.vala"
	thumb = _tmp17_;
#line 15564 "Page.c"
	{
		GdkPixbuf* icon = NULL;
		ThumbnailSource* _tmp18_;
		GdkPixbuf* _tmp19_;
		GtkWidget* _tmp20_;
		GdkPixbuf* _tmp21_;
#line 2562 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp18_ = thumb;
#line 2562 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp19_ = thumbnail_source_get_thumbnail (_tmp18_, APP_WINDOW_DND_ICON_SCALE, &_inner_error_);
#line 2562 "/home/jens/Source/shotwell/src/Page.vala"
		icon = _tmp19_;
#line 2562 "/home/jens/Source/shotwell/src/Page.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 15579 "Page.c"
			goto __catch267_g_error;
		}
#line 2563 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp20_ = self->priv->event_source;
#line 2563 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = icon;
#line 2563 "/home/jens/Source/shotwell/src/Page.vala"
		gtk_drag_source_set_icon_pixbuf (_tmp20_, _tmp21_);
#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (icon);
#line 15590 "Page.c"
	}
	goto __finally267;
	__catch267_g_error:
	{
		GError* err = NULL;
		ThumbnailSource* _tmp22_;
		gchar* _tmp23_;
		gchar* _tmp24_;
		GError* _tmp25_;
		const gchar* _tmp26_;
#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
		err = _inner_error_;
#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
		_inner_error_ = NULL;
#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp22_ = thumb;
#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_OBJECT, DataObject));
#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp24_ = _tmp23_;
#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp25_ = err;
#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp26_ = _tmp25_->message;
#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
		g_warning ("Page.vala:2565: Unable to fetch icon for drag-and-drop from %s: %s", _tmp24_, _tmp26_);
#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
		_g_free0 (_tmp24_);
#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
		_g_error_free0 (err);
#line 15621 "Page.c"
	}
	__finally267:
#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (thumb);
#line 2561 "/home/jens/Source/shotwell/src/Page.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 2561 "/home/jens/Source/shotwell/src/Page.vala"
		g_clear_error (&_inner_error_);
#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 15634 "Page.c"
	}
#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp27_ = context;
#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp28_ = gdk_drag_context_get_source_window (_tmp27_);
#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp29_ = drag_and_drop_handler_XDS_ATOM;
#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp30_ = drag_and_drop_handler_TEXT_ATOM;
#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp31_ = drag_and_drop_handler_XDS_FAKE_TARGET;
#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp31__length1 = drag_and_drop_handler_XDS_FAKE_TARGET_length1;
#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
	gdk_property_change (_tmp28_, *_tmp29_, *_tmp30_, 8, GDK_PROP_MODE_REPLACE, (const guchar*) _tmp31_, 1);
#line 2550 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (thumb);
#line 15652 "Page.c"
}


static void drag_and_drop_handler_on_drag_data_get (DragAndDropHandler* self, GdkDragContext* context, GtkSelectionData* selection_data, guint target_type, guint time) {
	Page* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_ = FALSE;
	Page* _tmp4_;
	guint _tmp9_;
#line 2579 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_DRAG_AND_DROP_HANDLER (self));
#line 2579 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
#line 2579 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (selection_data != NULL);
#line 2581 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->page;
#line 2581 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_page_name (_tmp0_);
#line 2581 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 2581 "/home/jens/Source/shotwell/src/Page.vala"
	g_debug ("Page.vala:2581: on_drag_data_get (%s)", _tmp2_);
#line 2581 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp2_);
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->page;
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ == NULL) {
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = TRUE;
#line 15685 "Page.c"
	} else {
		Page* _tmp5_;
		ViewCollection* _tmp6_;
		ViewCollection* _tmp7_;
		gint _tmp8_;
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = self->priv->page;
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp6_ = page_get_view (_tmp5_);
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = _tmp6_;
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = view_collection_get_selected_count (_tmp7_);
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = _tmp8_ == 0;
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp7_);
#line 15703 "Page.c"
	}
#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_) {
#line 2584 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 15709 "Page.c"
	}
#line 2586 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp9_ = target_type;
#line 2586 "/home/jens/Source/shotwell/src/Page.vala"
	switch (_tmp9_) {
#line 2586 "/home/jens/Source/shotwell/src/Page.vala"
		case DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS:
#line 15717 "Page.c"
		{
			guchar* data = NULL;
			guchar* _tmp10_;
			gint data_length1;
			gint _data_size_;
			GdkAtom actual_type = 0U;
			gint actual_format = 0;
			gboolean fetched = FALSE;
			GdkDragContext* _tmp11_;
			GdkWindow* _tmp12_;
			GdkAtom* _tmp13_;
			GdkAtom* _tmp14_;
			guchar* _tmp15_;
			gint _tmp15__length1;
			GdkAtom _tmp16_ = 0U;
			gint _tmp17_ = 0;
			guint8* _tmp18_ = NULL;
			gint _tmp19_;
			gboolean _tmp20_;
			gboolean _tmp21_ = FALSE;
			gboolean _tmp22_ = FALSE;
			gboolean _tmp23_;
			gchar* _tmp32_ = NULL;
			GFile* _tmp33_;
			Page* _tmp37_;
			gchar* _tmp38_;
			gchar* _tmp39_;
			const gchar* _tmp40_ = NULL;
			GFile* _tmp41_;
			GtkSelectionData* _tmp42_;
			GdkAtom* _tmp43_;
			gint _tmp44_;
			guchar* _tmp45_;
			guchar* _tmp46_;
			gint _tmp46__length1;
#line 2589 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp10_ = g_new0 (guchar, 4096);
#line 2589 "/home/jens/Source/shotwell/src/Page.vala"
			data = _tmp10_;
#line 2589 "/home/jens/Source/shotwell/src/Page.vala"
			data_length1 = 4096;
#line 2589 "/home/jens/Source/shotwell/src/Page.vala"
			_data_size_ = data_length1;
#line 2591 "/home/jens/Source/shotwell/src/Page.vala"
			actual_format = 0;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp11_ = context;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp12_ = gdk_drag_context_get_source_window (_tmp11_);
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp13_ = drag_and_drop_handler_XDS_ATOM;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp14_ = drag_and_drop_handler_TEXT_ATOM;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp15_ = data;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp15__length1 = data_length1;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp20_ = gdk_property_get (_tmp12_, *_tmp13_, *_tmp14_, (gulong) 0, (gulong) _tmp15__length1, 0, &_tmp16_, &_tmp17_, &_tmp19_, &_tmp18_);
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			actual_type = _tmp16_;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			actual_format = _tmp17_;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			data = (g_free (data), NULL);
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			data = _tmp18_;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			data_length1 = _tmp19_;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			_data_size_ = data_length1;
#line 2592 "/home/jens/Source/shotwell/src/Page.vala"
			fetched = _tmp20_;
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp23_ = fetched;
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp23_) {
#line 15795 "Page.c"
				guchar* _tmp24_;
				gint _tmp24__length1;
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp24_ = data;
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp24__length1 = data_length1;
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp22_ = _tmp24_ != NULL;
#line 15804 "Page.c"
			} else {
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp22_ = FALSE;
#line 15808 "Page.c"
			}
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp22_) {
#line 15812 "Page.c"
				guchar* _tmp25_;
				gint _tmp25__length1;
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp25_ = data;
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp25__length1 = data_length1;
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp21_ = _tmp25__length1 > 0;
#line 15821 "Page.c"
			} else {
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp21_ = FALSE;
#line 15825 "Page.c"
			}
#line 2597 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp21_) {
#line 15829 "Page.c"
				guchar* _tmp26_;
				gint _tmp26__length1;
				gchar* _tmp27_;
				gchar* _tmp28_;
				GFile* _tmp29_;
				GFile* _tmp30_;
				GFile* _tmp31_;
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp26_ = data;
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp26__length1 = data_length1;
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp27_ = uchar_array_to_string (_tmp26_, _tmp26__length1, -1);
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp28_ = _tmp27_;
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp29_ = g_file_new_for_uri (_tmp28_);
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp30_ = _tmp29_;
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp31_ = g_file_get_parent (_tmp30_);
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (self->priv->drag_destination);
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				self->priv->drag_destination = _tmp31_;
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_g_object_unref0 (_tmp30_);
#line 2598 "/home/jens/Source/shotwell/src/Page.vala"
				_g_free0 (_tmp28_);
#line 15859 "Page.c"
			}
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp33_ = self->priv->drag_destination;
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp33_ != NULL) {
#line 15865 "Page.c"
				GFile* _tmp34_;
				gchar* _tmp35_;
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp34_ = self->priv->drag_destination;
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp35_ = g_file_get_path (_tmp34_);
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
				_g_free0 (_tmp32_);
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp32_ = _tmp35_;
#line 15876 "Page.c"
			} else {
				gchar* _tmp36_;
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp36_ = g_strdup ("(no path)");
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
				_g_free0 (_tmp32_);
#line 2601 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp32_ = _tmp36_;
#line 15885 "Page.c"
			}
#line 2600 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp37_ = self->priv->page;
#line 2600 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp38_ = page_get_page_name (_tmp37_);
#line 2600 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp39_ = _tmp38_;
#line 2600 "/home/jens/Source/shotwell/src/Page.vala"
			g_debug ("Page.vala:2600: on_drag_data_get (%s): %s", _tmp39_, _tmp32_);
#line 2600 "/home/jens/Source/shotwell/src/Page.vala"
			_g_free0 (_tmp39_);
#line 2605 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp41_ = self->priv->drag_destination;
#line 2605 "/home/jens/Source/shotwell/src/Page.vala"
			if (_tmp41_ != NULL) {
#line 2605 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp40_ = "S";
#line 15903 "Page.c"
			} else {
#line 2605 "/home/jens/Source/shotwell/src/Page.vala"
				_tmp40_ = "E";
#line 15907 "Page.c"
			}
#line 2604 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp42_ = selection_data;
#line 2604 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp43_ = drag_and_drop_handler_XDS_ATOM;
#line 2604 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp45_ = string_to_uchar_array (_tmp40_, &_tmp44_);
#line 2604 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp46_ = _tmp45_;
#line 2604 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp46__length1 = _tmp44_;
#line 2604 "/home/jens/Source/shotwell/src/Page.vala"
			gtk_selection_data_set (_tmp42_, *_tmp43_, 8, _tmp46_, _tmp44_);
#line 2604 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp46_ = (g_free (_tmp46_), NULL);
#line 2606 "/home/jens/Source/shotwell/src/Page.vala"
			_g_free0 (_tmp32_);
#line 2606 "/home/jens/Source/shotwell/src/Page.vala"
			data = (g_free (data), NULL);
#line 2606 "/home/jens/Source/shotwell/src/Page.vala"
			break;
#line 15929 "Page.c"
		}
#line 2586 "/home/jens/Source/shotwell/src/Page.vala"
		case DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST:
#line 15933 "Page.c"
		{
			GeeCollection* sources = NULL;
			Page* _tmp47_;
			ViewCollection* _tmp48_;
			ViewCollection* _tmp49_;
			GeeList* _tmp50_;
			GeeCollection* _tmp51_;
			GtkSelectionData* _tmp52_;
			GdkAtom _tmp53_;
			GeeCollection* _tmp54_;
			gint _tmp55_;
			guchar* _tmp56_;
			guchar* _tmp57_;
			gint _tmp57__length1;
#line 2609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp47_ = self->priv->page;
#line 2609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp48_ = page_get_view (_tmp47_);
#line 2609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp49_ = _tmp48_;
#line 2609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp50_ = view_collection_get_selected_sources (_tmp49_);
#line 2609 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp51_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_COLLECTION, GeeCollection);
#line 2609 "/home/jens/Source/shotwell/src/Page.vala"
			_data_collection_unref0 (_tmp49_);
#line 2609 "/home/jens/Source/shotwell/src/Page.vala"
			sources = _tmp51_;
#line 2614 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp52_ = selection_data;
#line 2614 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp53_ = gdk_atom_intern_static_string ("SourceIDAtom");
#line 2614 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp54_ = sources;
#line 2614 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp56_ = serialize_media_sources (_tmp54_, &_tmp55_);
#line 2614 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp57_ = _tmp56_;
#line 2614 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp57__length1 = _tmp55_;
#line 2614 "/home/jens/Source/shotwell/src/Page.vala"
			gtk_selection_data_set (_tmp52_, _tmp53_, (gint) sizeof (GdkAtom), _tmp57_, _tmp55_);
#line 2614 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp57_ = (g_free (_tmp57_), NULL);
#line 2616 "/home/jens/Source/shotwell/src/Page.vala"
			_g_object_unref0 (sources);
#line 2616 "/home/jens/Source/shotwell/src/Page.vala"
			break;
#line 15982 "Page.c"
		}
		default:
		{
			Page* _tmp58_;
			gchar* _tmp59_;
			gchar* _tmp60_;
			guint _tmp61_;
#line 2619 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp58_ = self->priv->page;
#line 2619 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp59_ = page_get_page_name (_tmp58_);
#line 2619 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp60_ = _tmp59_;
#line 2619 "/home/jens/Source/shotwell/src/Page.vala"
			_tmp61_ = target_type;
#line 2619 "/home/jens/Source/shotwell/src/Page.vala"
			g_warning ("Page.vala:2619: on_drag_data_get (%s): unknown target type %u", _tmp60_, _tmp61_);
#line 2619 "/home/jens/Source/shotwell/src/Page.vala"
			_g_free0 (_tmp60_);
#line 2621 "/home/jens/Source/shotwell/src/Page.vala"
			break;
#line 16004 "Page.c"
		}
	}
}


static void _drag_and_drop_handler_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self) {
#line 2642 "/home/jens/Source/shotwell/src/Page.vala"
	drag_and_drop_handler_on_export_completed ((DragAndDropHandler*) self);
#line 16013 "Page.c"
}


static void drag_and_drop_handler_on_drag_end (DragAndDropHandler* self) {
	Page* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	gboolean _tmp5_ = FALSE;
	Page* _tmp6_;
	GFile* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	GFile* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gboolean _tmp19_;
#line 2625 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_DRAG_AND_DROP_HANDLER (self));
#line 2626 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->page;
#line 2626 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_page_name (_tmp0_);
#line 2626 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 2626 "/home/jens/Source/shotwell/src/Page.vala"
	g_debug ("Page.vala:2626: on_drag_end (%s)", _tmp2_);
#line 2626 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp2_);
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp6_ = self->priv->page;
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp6_ == NULL) {
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = TRUE;
#line 16050 "Page.c"
	} else {
		Page* _tmp7_;
		ViewCollection* _tmp8_;
		ViewCollection* _tmp9_;
		gint _tmp10_;
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = self->priv->page;
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp8_ = page_get_view (_tmp7_);
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp9_ = _tmp8_;
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp10_ = view_collection_get_selected_count (_tmp9_);
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = _tmp10_ == 0;
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp9_);
#line 16068 "Page.c"
	}
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp5_) {
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = TRUE;
#line 16074 "Page.c"
	} else {
		GFile* _tmp11_;
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp11_ = self->priv->drag_destination;
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp4_ = _tmp11_ == NULL;
#line 16081 "Page.c"
	}
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_) {
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = TRUE;
#line 16087 "Page.c"
	} else {
		ExporterUI* _tmp12_;
#line 2629 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp12_ = self->priv->exporter;
#line 2629 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = _tmp12_ != NULL;
#line 16094 "Page.c"
	}
#line 2628 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp3_) {
#line 2630 "/home/jens/Source/shotwell/src/Page.vala"
		return;
#line 16100 "Page.c"
	}
#line 2633 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp13_ = self->priv->drag_destination;
#line 2633 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp14_ = g_file_get_path (_tmp13_);
#line 2633 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp15_ = _tmp14_;
#line 2633 "/home/jens/Source/shotwell/src/Page.vala"
	g_debug ("Page.vala:2633: Exporting to %s", _tmp15_);
#line 2633 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp15_);
#line 2638 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp16_ = self->priv->drag_destination;
#line 2638 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp17_ = g_file_get_path (_tmp16_);
#line 2638 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp18_ = _tmp17_;
#line 2638 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp19_ = _tmp18_ != NULL;
#line 2638 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp18_);
#line 2638 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp19_) {
#line 16124 "Page.c"
		Page* _tmp20_;
		ViewCollection* _tmp21_;
		ViewCollection* _tmp22_;
		GeeList* _tmp23_;
		GeeCollection* _tmp24_;
		GFile* _tmp25_;
		Scaling _tmp26_ = {0};
		ExportFormatParameters _tmp27_ = {0};
		Exporter* _tmp28_;
		Exporter* _tmp29_;
		ExporterUI* _tmp30_;
		ExporterUI* _tmp31_;
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp20_ = self->priv->page;
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp21_ = page_get_view (_tmp20_);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp22_ = _tmp21_;
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp23_ = view_collection_get_selected_sources (_tmp22_);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp24_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp25_ = self->priv->drag_destination;
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		scaling_for_original (&_tmp26_);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		export_format_parameters_current (&_tmp27_);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp28_ = exporter_new (_tmp24_, _tmp25_, &_tmp26_, &_tmp27_, FALSE);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp29_ = _tmp28_;
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp30_ = exporter_ui_new (_tmp29_);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_exporter_ui_unref0 (self->priv->exporter);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		self->priv->exporter = _tmp30_;
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp29_);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_g_object_unref0 (_tmp24_);
#line 2639 "/home/jens/Source/shotwell/src/Page.vala"
		_data_collection_unref0 (_tmp22_);
#line 2642 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp31_ = self->priv->exporter;
#line 2642 "/home/jens/Source/shotwell/src/Page.vala"
		exporter_ui_export (_tmp31_, _drag_and_drop_handler_on_export_completed_exporter_completion_callback, self);
#line 16173 "Page.c"
	} else {
#line 2644 "/home/jens/Source/shotwell/src/Page.vala"
		app_window_error_message (_ ("Photos cannot be exported to this directory."), NULL);
#line 16177 "Page.c"
	}
#line 2647 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->drag_destination);
#line 2647 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->drag_destination = NULL;
#line 16183 "Page.c"
}


static gboolean drag_and_drop_handler_on_drag_failed (DragAndDropHandler* self, GdkDragContext* context, GtkDragResult drag_result) {
	gboolean result = FALSE;
	Page* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	GtkDragResult _tmp3_;
	Page* _tmp4_;
#line 2650 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (IS_DRAG_AND_DROP_HANDLER (self), FALSE);
#line 2650 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
#line 2651 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->page;
#line 2651 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp1_ = page_get_page_name (_tmp0_);
#line 2651 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp2_ = _tmp1_;
#line 2651 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp3_ = drag_result;
#line 2651 "/home/jens/Source/shotwell/src/Page.vala"
	g_debug ("Page.vala:2651: on_drag_failed (%s): %d", _tmp2_, (gint) _tmp3_);
#line 2651 "/home/jens/Source/shotwell/src/Page.vala"
	_g_free0 (_tmp2_);
#line 2653 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp4_ = self->priv->page;
#line 2653 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp4_ == NULL) {
#line 2654 "/home/jens/Source/shotwell/src/Page.vala"
		result = FALSE;
#line 2654 "/home/jens/Source/shotwell/src/Page.vala"
		return result;
#line 16218 "Page.c"
	}
#line 2656 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->drag_destination);
#line 2656 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->drag_destination = NULL;
#line 2658 "/home/jens/Source/shotwell/src/Page.vala"
	result = FALSE;
#line 2658 "/home/jens/Source/shotwell/src/Page.vala"
	return result;
#line 16228 "Page.c"
}


static void drag_and_drop_handler_on_export_completed (DragAndDropHandler* self) {
#line 2661 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (IS_DRAG_AND_DROP_HANDLER (self));
#line 2662 "/home/jens/Source/shotwell/src/Page.vala"
	_exporter_ui_unref0 (self->priv->exporter);
#line 2662 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->exporter = NULL;
#line 16239 "Page.c"
}


static void value_drag_and_drop_handler_init (GValue* value) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	value->data[0].v_pointer = NULL;
#line 16246 "Page.c"
}


static void value_drag_and_drop_handler_free_value (GValue* value) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (value->data[0].v_pointer) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_unref (value->data[0].v_pointer);
#line 16255 "Page.c"
	}
}


static void value_drag_and_drop_handler_copy_value (const GValue* src_value, GValue* dest_value) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (src_value->data[0].v_pointer) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		dest_value->data[0].v_pointer = drag_and_drop_handler_ref (src_value->data[0].v_pointer);
#line 16265 "Page.c"
	} else {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		dest_value->data[0].v_pointer = NULL;
#line 16269 "Page.c"
	}
}


static gpointer value_drag_and_drop_handler_peek_pointer (const GValue* value) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	return value->data[0].v_pointer;
#line 16277 "Page.c"
}


static gchar* value_drag_and_drop_handler_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (collect_values[0].v_pointer) {
#line 16284 "Page.c"
		DragAndDropHandler * object;
		object = collect_values[0].v_pointer;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		if (object->parent_instance.g_class == NULL) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 16291 "Page.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 16295 "Page.c"
		}
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = drag_and_drop_handler_ref (object);
#line 16299 "Page.c"
	} else {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 16303 "Page.c"
	}
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	return NULL;
#line 16307 "Page.c"
}


static gchar* value_drag_and_drop_handler_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	DragAndDropHandler ** object_p;
	object_p = collect_values[0].v_pointer;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (!object_p) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 16318 "Page.c"
	}
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (!value->data[0].v_pointer) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = NULL;
#line 16324 "Page.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = value->data[0].v_pointer;
#line 16328 "Page.c"
	} else {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		*object_p = drag_and_drop_handler_ref (value->data[0].v_pointer);
#line 16332 "Page.c"
	}
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	return NULL;
#line 16336 "Page.c"
}


GParamSpec* param_spec_drag_and_drop_handler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	ParamSpecDragAndDropHandler* spec;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (g_type_is_a (object_type, TYPE_DRAG_AND_DROP_HANDLER), NULL);
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	return G_PARAM_SPEC (spec);
#line 16350 "Page.c"
}


gpointer value_get_drag_and_drop_handler (const GValue* value) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DRAG_AND_DROP_HANDLER), NULL);
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	return value->data[0].v_pointer;
#line 16359 "Page.c"
}


void value_set_drag_and_drop_handler (GValue* value, gpointer v_object) {
	DragAndDropHandler * old;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DRAG_AND_DROP_HANDLER));
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	old = value->data[0].v_pointer;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (v_object) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DRAG_AND_DROP_HANDLER));
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = v_object;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_ref (value->data[0].v_pointer);
#line 16379 "Page.c"
	} else {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 16383 "Page.c"
	}
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (old) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_unref (old);
#line 16389 "Page.c"
	}
}


void value_take_drag_and_drop_handler (GValue* value, gpointer v_object) {
	DragAndDropHandler * old;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DRAG_AND_DROP_HANDLER));
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	old = value->data[0].v_pointer;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (v_object) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DRAG_AND_DROP_HANDLER));
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = v_object;
#line 16408 "Page.c"
	} else {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		value->data[0].v_pointer = NULL;
#line 16412 "Page.c"
	}
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (old) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		drag_and_drop_handler_unref (old);
#line 16418 "Page.c"
	}
}


static void drag_and_drop_handler_class_init (DragAndDropHandlerClass * klass) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	drag_and_drop_handler_parent_class = g_type_class_peek_parent (klass);
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	((DragAndDropHandlerClass *) klass)->finalize = drag_and_drop_handler_finalize;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	g_type_class_add_private (klass, sizeof (DragAndDropHandlerPrivate));
#line 16430 "Page.c"
}


static void drag_and_drop_handler_instance_init (DragAndDropHandler * self) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv = DRAG_AND_DROP_HANDLER_GET_PRIVATE (self);
#line 2507 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->drag_destination = NULL;
#line 2508 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->exporter = NULL;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	self->ref_count = 1;
#line 16443 "Page.c"
}


static void drag_and_drop_handler_finalize (DragAndDropHandler * obj) {
	DragAndDropHandler * self;
	GtkWidget* _tmp0_;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandler);
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	g_signal_handlers_destroy (self);
#line 2539 "/home/jens/Source/shotwell/src/Page.vala"
	_tmp0_ = self->priv->event_source;
#line 2539 "/home/jens/Source/shotwell/src/Page.vala"
	if (_tmp0_ != NULL) {
#line 16458 "Page.c"
		GtkWidget* _tmp1_;
		guint _tmp2_;
		GtkWidget* _tmp3_;
		guint _tmp4_;
		GtkWidget* _tmp5_;
		guint _tmp6_;
		GtkWidget* _tmp7_;
		guint _tmp8_;
#line 2540 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp1_ = self->priv->event_source;
#line 2540 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_parse_name ("drag-begin", gtk_widget_get_type (), &_tmp2_, NULL, FALSE);
#line 2540 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _drag_and_drop_handler_on_drag_begin_gtk_widget_drag_begin, self);
#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp3_ = self->priv->event_source;
#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_parse_name ("drag-data-get", gtk_widget_get_type (), &_tmp4_, NULL, FALSE);
#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _drag_and_drop_handler_on_drag_data_get_gtk_widget_drag_data_get, self);
#line 2542 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp5_ = self->priv->event_source;
#line 2542 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_parse_name ("drag-end", gtk_widget_get_type (), &_tmp6_, NULL, FALSE);
#line 2542 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _drag_and_drop_handler_on_drag_end_gtk_widget_drag_end, self);
#line 2543 "/home/jens/Source/shotwell/src/Page.vala"
		_tmp7_ = self->priv->event_source;
#line 2543 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_parse_name ("drag-failed", gtk_widget_get_type (), &_tmp8_, NULL, FALSE);
#line 2543 "/home/jens/Source/shotwell/src/Page.vala"
		g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _drag_and_drop_handler_on_drag_failed_gtk_widget_drag_failed, self);
#line 16491 "Page.c"
	}
#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->page = NULL;
#line 2547 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->event_source);
#line 2547 "/home/jens/Source/shotwell/src/Page.vala"
	self->priv->event_source = NULL;
#line 2506 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->event_source);
#line 2507 "/home/jens/Source/shotwell/src/Page.vala"
	_g_object_unref0 (self->priv->drag_destination);
#line 2508 "/home/jens/Source/shotwell/src/Page.vala"
	_exporter_ui_unref0 (self->priv->exporter);
#line 16505 "Page.c"
}


GType drag_and_drop_handler_get_type (void) {
	static volatile gsize drag_and_drop_handler_type_id__volatile = 0;
	if (g_once_init_enter (&drag_and_drop_handler_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { value_drag_and_drop_handler_init, value_drag_and_drop_handler_free_value, value_drag_and_drop_handler_copy_value, value_drag_and_drop_handler_peek_pointer, "p", value_drag_and_drop_handler_collect_value, "p", value_drag_and_drop_handler_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (DragAndDropHandlerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) drag_and_drop_handler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DragAndDropHandler), 0, (GInstanceInitFunc) drag_and_drop_handler_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType drag_and_drop_handler_type_id;
		drag_and_drop_handler_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DragAndDropHandler", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&drag_and_drop_handler_type_id__volatile, drag_and_drop_handler_type_id);
	}
	return drag_and_drop_handler_type_id__volatile;
}


gpointer drag_and_drop_handler_ref (gpointer instance) {
	DragAndDropHandler * self;
	self = instance;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	g_atomic_int_inc (&self->ref_count);
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	return instance;
#line 16530 "Page.c"
}


void drag_and_drop_handler_unref (gpointer instance) {
	DragAndDropHandler * self;
	self = instance;
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		DRAG_AND_DROP_HANDLER_GET_CLASS (self)->finalize (self);
#line 2490 "/home/jens/Source/shotwell/src/Page.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 16543 "Page.c"
	}
}


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);
}