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

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */
/* This file is the master unit file for the EditingTools unit.  It should be edited to include
 * whatever code is deemed necessary.
 *
 * The init() and terminate() methods are mandatory.
 *
 * If the unit needs to be configured prior to initialization, add the proper parameters to
 * the preconfigure() method, implement it, and ensure in init() that it's been called.
 */


#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>
#include <cairo.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib/gi18n-lib.h>
#include <gee.h>
#include "shotwell-graphics-processor.h"
#include <gobject/gvaluecollector.h>


#define EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW (editing_tools_editing_tool_window_get_type ())
#define EDITING_TOOLS_EDITING_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow))
#define EDITING_TOOLS_EDITING_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowClass))
#define EDITING_TOOLS_IS_EDITING_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW))
#define EDITING_TOOLS_IS_EDITING_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW))
#define EDITING_TOOLS_EDITING_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowClass))

typedef struct _EditingToolsEditingToolWindow EditingToolsEditingToolWindow;
typedef struct _EditingToolsEditingToolWindowClass EditingToolsEditingToolWindowClass;
typedef struct _EditingToolsEditingToolWindowPrivate EditingToolsEditingToolWindowPrivate;
enum  {
	EDITING_TOOLS_EDITING_TOOL_WINDOW_0_PROPERTY,
	EDITING_TOOLS_EDITING_TOOL_WINDOW_NUM_PROPERTIES
};
static GParamSpec* editing_tools_editing_tool_window_properties[EDITING_TOOLS_EDITING_TOOL_WINDOW_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#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_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 EDITING_TOOLS_TYPE_PHOTO_CANVAS (editing_tools_photo_canvas_get_type ())
#define EDITING_TOOLS_PHOTO_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvas))
#define EDITING_TOOLS_PHOTO_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasClass))
#define EDITING_TOOLS_IS_PHOTO_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS))
#define EDITING_TOOLS_IS_PHOTO_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_PHOTO_CANVAS))
#define EDITING_TOOLS_PHOTO_CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasClass))

typedef struct _EditingToolsPhotoCanvas EditingToolsPhotoCanvas;
typedef struct _EditingToolsPhotoCanvasClass EditingToolsPhotoCanvasClass;
typedef struct _EditingToolsPhotoCanvasPrivate EditingToolsPhotoCanvasPrivate;

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

typedef struct _DataObject DataObject;
typedef struct _DataObjectClass DataObjectClass;

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

typedef struct _DataSource DataSource;
typedef struct _DataSourceClass DataSourceClass;

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

typedef struct _ThumbnailSource ThumbnailSource;
typedef struct _ThumbnailSourceClass ThumbnailSourceClass;

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

typedef struct _MediaSource MediaSource;
typedef struct _MediaSourceClass MediaSourceClass;

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

typedef struct _PhotoSource PhotoSource;
typedef struct _PhotoSourceClass PhotoSourceClass;

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

typedef struct _Photo Photo;
typedef struct _PhotoClass PhotoClass;

#define TYPE_DIMENSIONS (dimensions_get_type ())
typedef struct _Dimensions Dimensions;
#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))

#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())

#define TYPE_SCALING (scaling_get_type ())

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

#define TYPE_BOX (box_get_type ())
typedef struct _Box Box;
typedef struct _EditingToolsParamSpecPhotoCanvas EditingToolsParamSpecPhotoCanvas;
enum  {
	EDITING_TOOLS_PHOTO_CANVAS_NEW_SURFACE_SIGNAL,
	EDITING_TOOLS_PHOTO_CANVAS_RESIZED_SCALED_PIXBUF_SIGNAL,
	EDITING_TOOLS_PHOTO_CANVAS_NUM_SIGNALS
};
static guint editing_tools_photo_canvas_signals[EDITING_TOOLS_PHOTO_CANVAS_NUM_SIGNALS] = {0};

#define EDITING_TOOLS_TYPE_EDITING_TOOL (editing_tools_editing_tool_get_type ())
#define EDITING_TOOLS_EDITING_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool))
#define EDITING_TOOLS_EDITING_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolClass))
#define EDITING_TOOLS_IS_EDITING_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL))
#define EDITING_TOOLS_IS_EDITING_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL))
#define EDITING_TOOLS_EDITING_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolClass))

typedef struct _EditingToolsEditingTool EditingToolsEditingTool;
typedef struct _EditingToolsEditingToolClass EditingToolsEditingToolClass;
typedef struct _EditingToolsEditingToolPrivate EditingToolsEditingToolPrivate;
#define _editing_tools_photo_canvas_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_photo_canvas_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_COMMAND (command_get_type ())
#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))

typedef struct _Command Command;
typedef struct _CommandClass CommandClass;
typedef struct _EditingToolsParamSpecEditingTool EditingToolsParamSpecEditingTool;
enum  {
	EDITING_TOOLS_EDITING_TOOL_ACTIVATED_SIGNAL,
	EDITING_TOOLS_EDITING_TOOL_DEACTIVATED_SIGNAL,
	EDITING_TOOLS_EDITING_TOOL_APPLIED_SIGNAL,
	EDITING_TOOLS_EDITING_TOOL_CANCELLED_SIGNAL,
	EDITING_TOOLS_EDITING_TOOL_ABORTED_SIGNAL,
	EDITING_TOOLS_EDITING_TOOL_NUM_SIGNALS
};
static guint editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_NUM_SIGNALS] = {0};

#define EDITING_TOOLS_TYPE_CROP_TOOL (editing_tools_crop_tool_get_type ())
#define EDITING_TOOLS_CROP_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool))
#define EDITING_TOOLS_CROP_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropToolClass))
#define EDITING_TOOLS_IS_CROP_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_CROP_TOOL))
#define EDITING_TOOLS_IS_CROP_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_CROP_TOOL))
#define EDITING_TOOLS_CROP_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropToolClass))

typedef struct _EditingToolsCropTool EditingToolsCropTool;
typedef struct _EditingToolsCropToolClass EditingToolsCropToolClass;
typedef struct _EditingToolsCropToolPrivate EditingToolsCropToolPrivate;

#define EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW (editing_tools_crop_tool_crop_tool_window_get_type ())
#define EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, EditingToolsCropToolCropToolWindow))
#define EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, EditingToolsCropToolCropToolWindowClass))
#define EDITING_TOOLS_CROP_TOOL_IS_CROP_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW))
#define EDITING_TOOLS_CROP_TOOL_IS_CROP_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW))
#define EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, EditingToolsCropToolCropToolWindowClass))

typedef struct _EditingToolsCropToolCropToolWindow EditingToolsCropToolCropToolWindow;
typedef struct _EditingToolsCropToolCropToolWindowClass EditingToolsCropToolCropToolWindowClass;

#define TYPE_BOX_LOCATION (box_location_get_type ())

#define EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION (editing_tools_crop_tool_constraint_description_get_type ())
#define EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, EditingToolsCropToolConstraintDescription))
#define EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, EditingToolsCropToolConstraintDescriptionClass))
#define EDITING_TOOLS_CROP_TOOL_IS_CONSTRAINT_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION))
#define EDITING_TOOLS_CROP_TOOL_IS_CONSTRAINT_DESCRIPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION))
#define EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, EditingToolsCropToolConstraintDescriptionClass))

typedef struct _EditingToolsCropToolConstraintDescription EditingToolsCropToolConstraintDescription;
typedef struct _EditingToolsCropToolConstraintDescriptionClass EditingToolsCropToolConstraintDescriptionClass;

#define EDITING_TOOLS_CROP_TOOL_TYPE_RETICLE_ORIENTATION (editing_tools_crop_tool_reticle_orientation_get_type ())

#define EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_MODE (editing_tools_crop_tool_constraint_mode_get_type ())
typedef struct _EditingToolsCropToolConstraintDescriptionPrivate EditingToolsCropToolConstraintDescriptionPrivate;
#define _editing_tools_crop_tool_constraint_description_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_crop_tool_constraint_description_unref (var), NULL)))
typedef struct _EditingToolsCropToolCropToolWindowPrivate EditingToolsCropToolCropToolWindowPrivate;

#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 TYPE_BACKING_FETCH_MODE (backing_fetch_mode_get_type ())

#define TYPE_PAGE_COMMAND (page_command_get_type ())
#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))

typedef struct _PageCommand PageCommand;
typedef struct _PageCommandClass PageCommandClass;

#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))

typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;

#define TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND (generic_photo_transformation_command_get_type ())
#define GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand))
#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))

typedef struct _GenericPhotoTransformationCommand GenericPhotoTransformationCommand;
typedef struct _GenericPhotoTransformationCommandClass GenericPhotoTransformationCommandClass;

#define TYPE_CROP_COMMAND (crop_command_get_type ())
#define CROP_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CROP_COMMAND, CropCommand))
#define CROP_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CROP_COMMAND, CropCommandClass))
#define IS_CROP_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CROP_COMMAND))
#define IS_CROP_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CROP_COMMAND))
#define CROP_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CROP_COMMAND, CropCommandClass))

typedef struct _CropCommand CropCommand;
typedef struct _CropCommandClass CropCommandClass;

#define TYPE_BOX_COMPLEMENTS (box_complements_get_type ())
typedef struct _EditingToolsCropToolParamSpecConstraintDescription EditingToolsCropToolParamSpecConstraintDescription;
enum  {
	EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_0_PROPERTY,
	EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_NUM_PROPERTIES
};
static GParamSpec* editing_tools_crop_tool_crop_tool_window_properties[EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_NUM_PROPERTIES];

#define EDITING_TOOLS_TYPE_REDEYE_INSTANCE (editing_tools_redeye_instance_get_type ())
typedef struct _EditingToolsRedeyeInstance EditingToolsRedeyeInstance;

#define EDITING_TOOLS_TYPE_REDEYE_TOOL (editing_tools_redeye_tool_get_type ())
#define EDITING_TOOLS_REDEYE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool))
#define EDITING_TOOLS_REDEYE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeToolClass))
#define EDITING_TOOLS_IS_REDEYE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL))
#define EDITING_TOOLS_IS_REDEYE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_REDEYE_TOOL))
#define EDITING_TOOLS_REDEYE_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeToolClass))

typedef struct _EditingToolsRedeyeTool EditingToolsRedeyeTool;
typedef struct _EditingToolsRedeyeToolClass EditingToolsRedeyeToolClass;
typedef struct _EditingToolsRedeyeToolPrivate EditingToolsRedeyeToolPrivate;

#define EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW (editing_tools_redeye_tool_redeye_tool_window_get_type ())
#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindow))
#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindowClass))
#define EDITING_TOOLS_REDEYE_TOOL_IS_REDEYE_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW))
#define EDITING_TOOLS_REDEYE_TOOL_IS_REDEYE_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW))
#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindowClass))

typedef struct _EditingToolsRedeyeToolRedeyeToolWindow EditingToolsRedeyeToolRedeyeToolWindow;
typedef struct _EditingToolsRedeyeToolRedeyeToolWindowClass EditingToolsRedeyeToolRedeyeToolWindowClass;
typedef struct _EditingToolsRedeyeToolRedeyeToolWindowPrivate EditingToolsRedeyeToolRedeyeToolWindowPrivate;

#define TYPE_REDEYE_COMMAND (redeye_command_get_type ())
#define REDEYE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REDEYE_COMMAND, RedeyeCommand))
#define REDEYE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REDEYE_COMMAND, RedeyeCommandClass))
#define IS_REDEYE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REDEYE_COMMAND))
#define IS_REDEYE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REDEYE_COMMAND))
#define REDEYE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REDEYE_COMMAND, RedeyeCommandClass))

typedef struct _RedeyeCommand RedeyeCommand;
typedef struct _RedeyeCommandClass RedeyeCommandClass;

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

#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;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#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 _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
enum  {
	EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_0_PROPERTY,
	EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_NUM_PROPERTIES
};
static GParamSpec* editing_tools_redeye_tool_redeye_tool_window_properties[EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_NUM_PROPERTIES];

#define EDITING_TOOLS_TYPE_ADJUST_TOOL (editing_tools_adjust_tool_get_type ())
#define EDITING_TOOLS_ADJUST_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool))
#define EDITING_TOOLS_ADJUST_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustToolClass))
#define EDITING_TOOLS_IS_ADJUST_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL))
#define EDITING_TOOLS_IS_ADJUST_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_ADJUST_TOOL))
#define EDITING_TOOLS_ADJUST_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustToolClass))

typedef struct _EditingToolsAdjustTool EditingToolsAdjustTool;
typedef struct _EditingToolsAdjustToolClass EditingToolsAdjustToolClass;
typedef struct _EditingToolsAdjustToolPrivate EditingToolsAdjustToolPrivate;

#define EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW (editing_tools_adjust_tool_adjust_tool_window_get_type ())
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, EditingToolsAdjustToolAdjustToolWindow))
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, EditingToolsAdjustToolAdjustToolWindowClass))
#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW))
#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW))
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, EditingToolsAdjustToolAdjustToolWindowClass))

typedef struct _EditingToolsAdjustToolAdjustToolWindow EditingToolsAdjustToolAdjustToolWindow;
typedef struct _EditingToolsAdjustToolAdjustToolWindowClass EditingToolsAdjustToolAdjustToolWindowClass;

#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 _pixel_transformer_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformer_unref (var), NULL)))
#define _pixel_transformation_bundle_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_bundle_unref (var), NULL)))
#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
typedef struct _EditingToolsAdjustToolAdjustToolWindowPrivate EditingToolsAdjustToolAdjustToolWindowPrivate;

#define TYPE_RGB_HISTOGRAM_MANIPULATOR (rgb_histogram_manipulator_get_type ())
#define RGB_HISTOGRAM_MANIPULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulator))
#define RGB_HISTOGRAM_MANIPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulatorClass))
#define IS_RGB_HISTOGRAM_MANIPULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR))
#define IS_RGB_HISTOGRAM_MANIPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RGB_HISTOGRAM_MANIPULATOR))
#define RGB_HISTOGRAM_MANIPULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulatorClass))

typedef struct _RGBHistogramManipulator RGBHistogramManipulator;
typedef struct _RGBHistogramManipulatorClass RGBHistogramManipulatorClass;
#define _pixel_transformation_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_unref (var), NULL)))

#define EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND (editing_tools_adjust_tool_adjust_tool_command_get_type ())
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand))
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommandClass))
#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND))
#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND))
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommandClass))

typedef struct _EditingToolsAdjustToolAdjustToolCommand EditingToolsAdjustToolAdjustToolCommand;
typedef struct _EditingToolsAdjustToolAdjustToolCommandClass EditingToolsAdjustToolAdjustToolCommandClass;

#define EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND (editing_tools_adjust_tool_adjust_reset_command_get_type ())
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand))
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommandClass))
#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_RESET_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND))
#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_RESET_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND))
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommandClass))

typedef struct _EditingToolsAdjustToolAdjustResetCommand EditingToolsAdjustToolAdjustResetCommand;
typedef struct _EditingToolsAdjustToolAdjustResetCommandClass EditingToolsAdjustToolAdjustResetCommandClass;

#define TYPE_ADJUST_COLORS_SINGLE_COMMAND (adjust_colors_single_command_get_type ())
#define ADJUST_COLORS_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommand))
#define ADJUST_COLORS_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandClass))
#define IS_ADJUST_COLORS_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND))
#define IS_ADJUST_COLORS_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_COLORS_SINGLE_COMMAND))
#define ADJUST_COLORS_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandClass))

typedef struct _AdjustColorsSingleCommand AdjustColorsSingleCommand;
typedef struct _AdjustColorsSingleCommandClass AdjustColorsSingleCommandClass;

#define EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND (editing_tools_adjust_tool_slider_adjustment_command_get_type ())
#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand))
#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommandClass))
#define EDITING_TOOLS_ADJUST_TOOL_IS_SLIDER_ADJUSTMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND))
#define EDITING_TOOLS_ADJUST_TOOL_IS_SLIDER_ADJUSTMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND))
#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommandClass))

typedef struct _EditingToolsAdjustToolSliderAdjustmentCommand EditingToolsAdjustToolSliderAdjustmentCommand;
typedef struct _EditingToolsAdjustToolSliderAdjustmentCommandClass EditingToolsAdjustToolSliderAdjustmentCommandClass;

#define EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND (editing_tools_adjust_tool_adjust_enhance_command_get_type ())
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand))
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommandClass))
#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_ENHANCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND))
#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_ENHANCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND))
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommandClass))

typedef struct _EditingToolsAdjustToolAdjustEnhanceCommand EditingToolsAdjustToolAdjustEnhanceCommand;
typedef struct _EditingToolsAdjustToolAdjustEnhanceCommandClass EditingToolsAdjustToolAdjustEnhanceCommandClass;
enum  {
	EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW_0_PROPERTY,
	EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW_NUM_PROPERTIES
};
static GParamSpec* editing_tools_adjust_tool_adjust_tool_window_properties[EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW_NUM_PROPERTIES];

#define TYPE_COMMAND_DESCRIPTION (command_description_get_type ())
#define COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescription))
#define IS_COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_DESCRIPTION))
#define COMMAND_DESCRIPTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescriptionIface))

typedef struct _CommandDescription CommandDescription;
typedef struct _CommandDescriptionIface CommandDescriptionIface;
typedef struct _CommandPrivate CommandPrivate;
typedef struct _EditingToolsAdjustToolAdjustToolCommandPrivate EditingToolsAdjustToolAdjustToolCommandPrivate;
enum  {
	EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND_0_PROPERTY,
	EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND_NUM_PROPERTIES
};
static GParamSpec* editing_tools_adjust_tool_adjust_tool_command_properties[EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND_NUM_PROPERTIES];
typedef struct _EditingToolsAdjustToolAdjustResetCommandPrivate EditingToolsAdjustToolAdjustResetCommandPrivate;
enum  {
	EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_0_PROPERTY,
	EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_NUM_PROPERTIES
};
static GParamSpec* editing_tools_adjust_tool_adjust_reset_command_properties[EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_NUM_PROPERTIES];
typedef struct _EditingToolsAdjustToolSliderAdjustmentCommandPrivate EditingToolsAdjustToolSliderAdjustmentCommandPrivate;
enum  {
	EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_0_PROPERTY,
	EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_NUM_PROPERTIES
};
static GParamSpec* editing_tools_adjust_tool_slider_adjustment_command_properties[EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_NUM_PROPERTIES];
typedef struct _EditingToolsAdjustToolAdjustEnhanceCommandPrivate EditingToolsAdjustToolAdjustEnhanceCommandPrivate;
enum  {
	EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_0_PROPERTY,
	EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_NUM_PROPERTIES
};
static GParamSpec* editing_tools_adjust_tool_adjust_enhance_command_properties[EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_NUM_PROPERTIES];

#define TYPE_ENHANCE_SINGLE_COMMAND (enhance_single_command_get_type ())
#define ENHANCE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommand))
#define ENHANCE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommandClass))
#define IS_ENHANCE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ENHANCE_SINGLE_COMMAND))
#define IS_ENHANCE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ENHANCE_SINGLE_COMMAND))
#define ENHANCE_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommandClass))

typedef struct _EnhanceSingleCommand EnhanceSingleCommand;
typedef struct _EnhanceSingleCommandClass EnhanceSingleCommandClass;
#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 _EditingToolsEditingToolWindow {
	GtkWindow parent_instance;
	EditingToolsEditingToolWindowPrivate * priv;
};

struct _EditingToolsEditingToolWindowClass {
	GtkWindowClass parent_class;
};

struct _EditingToolsEditingToolWindowPrivate {
	GtkFrame* layout_frame;
	gboolean user_moved;
};

struct _EditingToolsPhotoCanvas {
	GTypeInstance parent_instance;
	volatile int ref_count;
	EditingToolsPhotoCanvasPrivate * priv;
};

struct _EditingToolsPhotoCanvasClass {
	GTypeClass parent_class;
	void (*finalize) (EditingToolsPhotoCanvas *self);
	void (*repaint) (EditingToolsPhotoCanvas* self);
};

struct _Dimensions {
	gint width;
	gint height;
};

struct _EditingToolsPhotoCanvasPrivate {
	GtkWindow* container;
	GdkWindow* drawing_window;
	Photo* photo;
	cairo_t* default_ctx;
	Dimensions surface_dim;
	cairo_surface_t* scaled;
	GdkPixbuf* scaled_pixbuf;
	GdkRectangle scaled_position;
};

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

typedef enum  {
	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;
};

struct _Box {
	gint left;
	gint top;
	gint right;
	gint bottom;
};

struct _EditingToolsParamSpecPhotoCanvas {
	GParamSpec parent_instance;
};

struct _EditingToolsEditingTool {
	GTypeInstance parent_instance;
	volatile int ref_count;
	EditingToolsEditingToolPrivate * priv;
	EditingToolsPhotoCanvas* canvas;
	cairo_surface_t* surface;
	gchar* name;
};

struct _EditingToolsEditingToolClass {
	GTypeClass parent_class;
	void (*finalize) (EditingToolsEditingTool *self);
	void (*activate) (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas);
	void (*deactivate) (EditingToolsEditingTool* self);
	EditingToolsEditingToolWindow* (*get_tool_window) (EditingToolsEditingTool* self);
	GdkPixbuf* (*get_display_pixbuf) (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
	void (*on_left_click) (EditingToolsEditingTool* self, gint x, gint y);
	void (*on_left_released) (EditingToolsEditingTool* self, gint x, gint y);
	void (*on_motion) (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask);
	gboolean (*on_leave_notify_event) (EditingToolsEditingTool* self);
	gboolean (*on_keypress) (EditingToolsEditingTool* self, GdkEventKey* event);
	void (*paint) (EditingToolsEditingTool* self, cairo_t* ctx);
};

struct _EditingToolsEditingToolPrivate {
	EditingToolsEditingToolWindow* tool_window;
};

typedef EditingToolsEditingTool* (*EditingToolsEditingToolFactory) ();
struct _EditingToolsParamSpecEditingTool {
	GParamSpec parent_instance;
};

struct _EditingToolsCropTool {
	EditingToolsEditingTool parent_instance;
	EditingToolsCropToolPrivate * priv;
};

struct _EditingToolsCropToolClass {
	EditingToolsEditingToolClass parent_class;
};

typedef enum  {
	BOX_LOCATION_OUTSIDE,
	BOX_LOCATION_INSIDE,
	BOX_LOCATION_TOP_SIDE,
	BOX_LOCATION_LEFT_SIDE,
	BOX_LOCATION_RIGHT_SIDE,
	BOX_LOCATION_BOTTOM_SIDE,
	BOX_LOCATION_TOP_LEFT,
	BOX_LOCATION_BOTTOM_LEFT,
	BOX_LOCATION_TOP_RIGHT,
	BOX_LOCATION_BOTTOM_RIGHT
} BoxLocation;

typedef enum  {
	EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE,
	EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT
} EditingToolsCropToolReticleOrientation;

typedef enum  {
	EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL,
	EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM
} EditingToolsCropToolConstraintMode;

struct _EditingToolsCropToolPrivate {
	EditingToolsCropToolCropToolWindow* crop_tool_window;
	GdkCursorType current_cursor_type;
	BoxLocation in_manipulation;
	cairo_t* wide_black_ctx;
	cairo_t* wide_white_ctx;
	cairo_t* thin_white_ctx;
	cairo_t* text_ctx;
	cairo_surface_t* crop_surface;
	Box scaled_crop;
	gint last_grab_x;
	gint last_grab_y;
	EditingToolsCropToolConstraintDescription** constraints;
	gint constraints_length1;
	gint _constraints_size_;
	GtkListStore* constraint_list;
	EditingToolsCropToolReticleOrientation reticle_orientation;
	EditingToolsCropToolConstraintMode constraint_mode;
	gboolean entry_insert_in_progress;
	gfloat custom_aspect_ratio;
	gint custom_width;
	gint custom_height;
	gint custom_init_width;
	gint custom_init_height;
	gfloat pre_aspect_ratio;
};

struct _EditingToolsCropToolConstraintDescription {
	GTypeInstance parent_instance;
	volatile int ref_count;
	EditingToolsCropToolConstraintDescriptionPrivate * priv;
	gchar* name;
	gint basis_width;
	gint basis_height;
	gboolean is_pivotable;
	gfloat aspect_ratio;
};

struct _EditingToolsCropToolConstraintDescriptionClass {
	GTypeClass parent_class;
	void (*finalize) (EditingToolsCropToolConstraintDescription *self);
};

struct _EditingToolsCropToolCropToolWindow {
	EditingToolsEditingToolWindow parent_instance;
	EditingToolsCropToolCropToolWindowPrivate * priv;
	GtkButton* ok_button;
	GtkButton* cancel_button;
	GtkComboBox* constraint_combo;
	GtkButton* pivot_reticle_button;
	GtkEntry* custom_width_entry;
	GtkEntry* custom_height_entry;
	GtkLabel* custom_mulsign_label;
	GtkEntry* most_recently_edited;
	GtkBox* response_layout;
	GtkBox* layout;
	gint normal_width;
	gint normal_height;
};

struct _EditingToolsCropToolCropToolWindowClass {
	EditingToolsEditingToolWindowClass parent_class;
};

typedef enum  {
	BACKING_FETCH_MODE_SOURCE,
	BACKING_FETCH_MODE_BASELINE,
	BACKING_FETCH_MODE_MASTER,
	BACKING_FETCH_MODE_UNMODIFIED
} BackingFetchMode;

typedef enum  {
	BOX_COMPLEMENTS_NONE,
	BOX_COMPLEMENTS_VERTICAL,
	BOX_COMPLEMENTS_HORIZONTAL,
	BOX_COMPLEMENTS_BOTH
} BoxComplements;

struct _EditingToolsCropToolParamSpecConstraintDescription {
	GParamSpec parent_instance;
};

struct _EditingToolsRedeyeInstance {
	GdkPoint center;
	gint radius;
};

struct _EditingToolsRedeyeTool {
	EditingToolsEditingTool parent_instance;
	EditingToolsRedeyeToolPrivate * priv;
};

struct _EditingToolsRedeyeToolClass {
	EditingToolsEditingToolClass parent_class;
};

struct _EditingToolsRedeyeToolPrivate {
	cairo_t* thin_white_ctx;
	cairo_t* wider_gray_ctx;
	EditingToolsRedeyeToolRedeyeToolWindow* redeye_tool_window;
	EditingToolsRedeyeInstance user_interaction_instance;
	gboolean is_reticle_move_in_progress;
	GdkPoint reticle_move_mouse_start_point;
	GdkPoint reticle_move_anchor;
	GdkCursor* cached_arrow_cursor;
	GdkCursor* cached_grab_cursor;
	GdkRectangle old_scaled_pixbuf_position;
	GdkPixbuf* current_pixbuf;
};

struct _EditingToolsRedeyeToolRedeyeToolWindow {
	EditingToolsEditingToolWindow parent_instance;
	EditingToolsRedeyeToolRedeyeToolWindowPrivate * priv;
	GtkButton* apply_button;
	GtkButton* close_button;
	GtkScale* slider;
};

struct _EditingToolsRedeyeToolRedeyeToolWindowClass {
	EditingToolsEditingToolWindowClass parent_class;
};

struct _EditingToolsRedeyeToolRedeyeToolWindowPrivate {
	GtkLabel* slider_label;
};

struct _EditingToolsAdjustTool {
	EditingToolsEditingTool parent_instance;
	EditingToolsAdjustToolPrivate * priv;
};

struct _EditingToolsAdjustToolClass {
	EditingToolsEditingToolClass parent_class;
};

struct _EditingToolsAdjustToolPrivate {
	EditingToolsAdjustToolAdjustToolWindow* adjust_tool_window;
	gboolean suppress_effect_redraw;
	GdkPixbuf* draw_to_pixbuf;
	GdkPixbuf* histogram_pixbuf;
	GdkPixbuf* virgin_histogram_pixbuf;
	PixelTransformer* transformer;
	PixelTransformer* histogram_transformer;
	PixelTransformationBundle* transformations;
	gfloat* fp_pixel_cache;
	gint fp_pixel_cache_length1;
	gint _fp_pixel_cache_size_;
	gboolean disable_histogram_refresh;
	OneShotScheduler* temperature_scheduler;
	OneShotScheduler* tint_scheduler;
	OneShotScheduler* contrast_scheduler;
	OneShotScheduler* saturation_scheduler;
	OneShotScheduler* exposure_scheduler;
	OneShotScheduler* shadows_scheduler;
	OneShotScheduler* highlights_scheduler;
};

struct _EditingToolsAdjustToolAdjustToolWindow {
	EditingToolsEditingToolWindow parent_instance;
	EditingToolsAdjustToolAdjustToolWindowPrivate * priv;
	GtkScale* exposure_slider;
	GtkScale* contrast_slider;
	GtkScale* saturation_slider;
	GtkScale* tint_slider;
	GtkScale* temperature_slider;
	GtkScale* shadows_slider;
	GtkScale* highlights_slider;
	GtkButton* ok_button;
	GtkButton* reset_button;
	GtkButton* cancel_button;
	RGBHistogramManipulator* histogram_manipulator;
};

struct _EditingToolsAdjustToolAdjustToolWindowClass {
	EditingToolsEditingToolWindowClass parent_class;
};

typedef void (*OneShotCallback) (void* user_data);
struct _CommandDescriptionIface {
	GTypeInterface parent_iface;
	gchar* (*get_name) (CommandDescription* self);
	gchar* (*get_explanation) (CommandDescription* self);
};

struct _Command {
	GObject parent_instance;
	CommandPrivate * priv;
};

struct _CommandClass {
	GObjectClass parent_class;
	void (*prepare) (Command* self);
	void (*execute) (Command* self);
	void (*undo) (Command* self);
	void (*redo) (Command* self);
	gboolean (*compress) (Command* self, Command* command);
	gchar* (*get_name) (Command* self);
	gchar* (*get_explanation) (Command* self);
};

struct _EditingToolsAdjustToolAdjustToolCommand {
	Command parent_instance;
	EditingToolsAdjustToolAdjustToolCommandPrivate * priv;
	EditingToolsAdjustTool* owner;
};

struct _EditingToolsAdjustToolAdjustToolCommandClass {
	CommandClass parent_class;
};

struct _EditingToolsAdjustToolAdjustResetCommand {
	EditingToolsAdjustToolAdjustToolCommand parent_instance;
	EditingToolsAdjustToolAdjustResetCommandPrivate * priv;
};

struct _EditingToolsAdjustToolAdjustResetCommandClass {
	EditingToolsAdjustToolAdjustToolCommandClass parent_class;
};

struct _EditingToolsAdjustToolAdjustResetCommandPrivate {
	PixelTransformationBundle* original;
	PixelTransformationBundle* reset;
};

struct _EditingToolsAdjustToolSliderAdjustmentCommand {
	EditingToolsAdjustToolAdjustToolCommand parent_instance;
	EditingToolsAdjustToolSliderAdjustmentCommandPrivate * priv;
};

struct _EditingToolsAdjustToolSliderAdjustmentCommandClass {
	EditingToolsAdjustToolAdjustToolCommandClass parent_class;
};

struct _EditingToolsAdjustToolSliderAdjustmentCommandPrivate {
	PixelTransformationType transformation_type;
	PixelTransformation* new_transformation;
	PixelTransformation* old_transformation;
};

struct _EditingToolsAdjustToolAdjustEnhanceCommand {
	EditingToolsAdjustToolAdjustToolCommand parent_instance;
	EditingToolsAdjustToolAdjustEnhanceCommandPrivate * priv;
};

struct _EditingToolsAdjustToolAdjustEnhanceCommandClass {
	EditingToolsAdjustToolAdjustToolCommandClass parent_class;
};

struct _EditingToolsAdjustToolAdjustEnhanceCommandPrivate {
	Photo* photo;
	PixelTransformationBundle* original;
	PixelTransformationBundle* enhanced;
};


static gpointer editing_tools_editing_tool_window_parent_class = NULL;
static gpointer editing_tools_photo_canvas_parent_class = NULL;
static gpointer editing_tools_editing_tool_parent_class = NULL;
static gpointer editing_tools_crop_tool_parent_class = NULL;
static gpointer editing_tools_crop_tool_constraint_description_parent_class = NULL;
static gpointer editing_tools_crop_tool_crop_tool_window_parent_class = NULL;
static gpointer editing_tools_redeye_tool_parent_class = NULL;
static gpointer editing_tools_redeye_tool_redeye_tool_window_parent_class = NULL;
static gpointer editing_tools_adjust_tool_parent_class = NULL;
static gpointer editing_tools_adjust_tool_adjust_tool_window_parent_class = NULL;
static gpointer editing_tools_adjust_tool_adjust_tool_command_parent_class = NULL;
static gpointer editing_tools_adjust_tool_adjust_reset_command_parent_class = NULL;
static gpointer editing_tools_adjust_tool_slider_adjustment_command_parent_class = NULL;
static gpointer editing_tools_adjust_tool_adjust_enhance_command_parent_class = NULL;

void editing_tools_preconfigure (void);
void editing_tools_init (GError** error);
void editing_tools_terminate (void);
GType editing_tools_editing_tool_window_get_type (void) G_GNUC_CONST;
#define EDITING_TOOLS_EDITING_TOOL_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowPrivate))
#define EDITING_TOOLS_EDITING_TOOL_WINDOW_FRAME_BORDER 6
EditingToolsEditingToolWindow* editing_tools_editing_tool_window_construct (GType object_type,
                                                                            GtkWindow* container);
static void editing_tools_editing_tool_window_suppress_warnings (EditingToolsEditingToolWindow* self,
                                                          const gchar* log_domain,
                                                          GLogLevelFlags log_levels,
                                                          const gchar* message);
static void _editing_tools_editing_tool_window_suppress_warnings_glog_func (const gchar* log_domain,
                                                                     GLogLevelFlags log_levels,
                                                                     const gchar* message,
                                                                     gpointer self);
static void editing_tools_editing_tool_window_real_add (GtkContainer* base,
                                                 GtkWidget* widget);
gboolean editing_tools_editing_tool_window_has_user_moved (EditingToolsEditingToolWindow* self);
static gboolean editing_tools_editing_tool_window_real_key_press_event (GtkWidget* base,
                                                                 GdkEventKey* event);
GType page_window_get_type (void) G_GNUC_CONST;
GType app_window_get_type (void) G_GNUC_CONST;
AppWindow* app_window_get_instance (void);
static gboolean editing_tools_editing_tool_window_real_button_press_event (GtkWidget* base,
                                                                    GdkEventButton* event);
static void editing_tools_editing_tool_window_real_realize (GtkWidget* base);
#define RESOURCES_TRANSIENT_WINDOW_OPACITY 0.90
static void editing_tools_editing_tool_window_finalize (GObject * obj);
gpointer editing_tools_photo_canvas_ref (gpointer instance);
void editing_tools_photo_canvas_unref (gpointer instance);
GParamSpec* editing_tools_param_spec_photo_canvas (const gchar* name,
                                                   const gchar* nick,
                                                   const gchar* blurb,
                                                   GType object_type,
                                                   GParamFlags flags);
void editing_tools_value_set_photo_canvas (GValue* value,
                                           gpointer v_object);
void editing_tools_value_take_photo_canvas (GValue* value,
                                            gpointer v_object);
gpointer editing_tools_value_get_photo_canvas (const GValue* value);
GType editing_tools_photo_canvas_get_type (void) G_GNUC_CONST;
GType data_object_get_type (void) G_GNUC_CONST;
GType data_source_get_type (void) G_GNUC_CONST;
GType thumbnail_source_get_type (void) G_GNUC_CONST;
GType media_source_get_type (void) G_GNUC_CONST;
GType photo_source_get_type (void) G_GNUC_CONST;
GType photo_get_type (void) G_GNUC_CONST;
GType dimensions_get_type (void) G_GNUC_CONST;
Dimensions* dimensions_dup (const Dimensions* self);
void dimensions_free (Dimensions* self);
#define EDITING_TOOLS_PHOTO_CANVAS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasPrivate))
EditingToolsPhotoCanvas* editing_tools_photo_canvas_construct (GType object_type,
                                                               GtkWindow* container,
                                                               GdkWindow* drawing_window,
                                                               Photo* photo,
                                                               cairo_t* default_ctx,
                                                               Dimensions* surface_dim,
                                                               GdkPixbuf* scaled,
                                                               GdkRectangle* scaled_position);
static cairo_surface_t* editing_tools_photo_canvas_pixbuf_to_surface (EditingToolsPhotoCanvas* self,
                                                               cairo_t* default_ctx,
                                                               GdkPixbuf* pixbuf,
                                                               GdkRectangle* pos);
void editing_tools_photo_canvas_unscaled_to_raw_rect (EditingToolsPhotoCanvas* self,
                                                      GdkRectangle* rectangle,
                                                      GdkRectangle* result);
void photo_unscaled_to_raw_rect (Photo* self,
                                 GdkRectangle* unscaled_rect,
                                 GdkRectangle* result);
void editing_tools_photo_canvas_active_to_unscaled_point (EditingToolsPhotoCanvas* self,
                                                          GdkPoint* active_point,
                                                          GdkPoint* result);
void editing_tools_photo_canvas_get_scaled_pixbuf_position (EditingToolsPhotoCanvas* self,
                                                            GdkRectangle* result);
GType photo_exception_get_type (void) G_GNUC_CONST;
void media_source_get_dimensions (MediaSource* self,
                                  PhotoException disallowed_steps,
                                  Dimensions* result);
void editing_tools_photo_canvas_active_to_unscaled_rect (EditingToolsPhotoCanvas* self,
                                                         GdkRectangle* active_rect,
                                                         GdkRectangle* result);
void editing_tools_photo_canvas_user_to_active_point (EditingToolsPhotoCanvas* self,
                                                      GdkPoint* user_point,
                                                      GdkPoint* result);
void editing_tools_photo_canvas_user_to_active_rect (EditingToolsPhotoCanvas* self,
                                                     GdkRectangle* user_rect,
                                                     GdkRectangle* result);
Photo* editing_tools_photo_canvas_get_photo (EditingToolsPhotoCanvas* self);
GtkWindow* editing_tools_photo_canvas_get_container (EditingToolsPhotoCanvas* self);
GdkWindow* editing_tools_photo_canvas_get_drawing_window (EditingToolsPhotoCanvas* self);
cairo_t* editing_tools_photo_canvas_get_default_ctx (EditingToolsPhotoCanvas* self);
void editing_tools_photo_canvas_get_surface_dim (EditingToolsPhotoCanvas* self,
                                                 Dimensions* result);
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 editing_tools_photo_canvas_get_scaling (EditingToolsPhotoCanvas* self,
                                             Scaling* result);
void scaling_for_viewport (Dimensions* viewport,
                           gboolean scale_up,
                           Scaling* result);
void editing_tools_photo_canvas_set_surface (EditingToolsPhotoCanvas* self,
                                             cairo_t* default_ctx,
                                             Dimensions* surface_dim);
cairo_surface_t* editing_tools_photo_canvas_get_scaled_surface (EditingToolsPhotoCanvas* self);
GdkPixbuf* editing_tools_photo_canvas_get_scaled_pixbuf (EditingToolsPhotoCanvas* self);
void editing_tools_photo_canvas_resized_pixbuf (EditingToolsPhotoCanvas* self,
                                                Dimensions* old_dim,
                                                GdkPixbuf* scaled,
                                                GdkRectangle* scaled_position);
void editing_tools_photo_canvas_repaint (EditingToolsPhotoCanvas* self);
static void editing_tools_photo_canvas_real_repaint (EditingToolsPhotoCanvas* self);
void editing_tools_photo_canvas_paint_pixbuf (EditingToolsPhotoCanvas* self,
                                              GdkPixbuf* pixbuf);
void set_source_color_from_string (cairo_t* ctx,
                                   const gchar* spec);
void paint_pixmap_with_background (cairo_t* ctx,
                                   GdkPixbuf* pixbuf,
                                   gint x,
                                   gint y);
void editing_tools_photo_canvas_paint_surface (EditingToolsPhotoCanvas* self,
                                               cairo_surface_t* surface,
                                               gboolean over);
GType box_get_type (void) G_GNUC_CONST;
Box* box_dup (const Box* self);
void box_free (Box* self);
void editing_tools_photo_canvas_paint_surface_area (EditingToolsPhotoCanvas* self,
                                                    cairo_surface_t* surface,
                                                    Box* source_area,
                                                    gboolean over);
gint box_get_width (Box *self);
gint box_get_height (Box *self);
void editing_tools_photo_canvas_draw_box (EditingToolsPhotoCanvas* self,
                                          cairo_t* ctx,
                                          Box* box);
void box_get_rectangle (Box *self,
                        GdkRectangle* result);
void editing_tools_photo_canvas_draw_text (EditingToolsPhotoCanvas* self,
                                           cairo_t* ctx,
                                           const gchar* text,
                                           gint x,
                                           gint y,
                                           gboolean use_scaled_pos);
#define RESOURCES_ONIMAGE_FONT_BACKGROUND "rgba(255,255,255,0.5)"
#define RESOURCES_ONIMAGE_FONT_COLOR "#000000"
void editing_tools_photo_canvas_draw_horizontal_line (EditingToolsPhotoCanvas* self,
                                                      cairo_t* ctx,
                                                      gint x,
                                                      gint y,
                                                      gint width,
                                                      gboolean use_scaled_pos);
void editing_tools_photo_canvas_draw_vertical_line (EditingToolsPhotoCanvas* self,
                                                    cairo_t* ctx,
                                                    gint x,
                                                    gint y,
                                                    gint height,
                                                    gboolean use_scaled_pos);
void editing_tools_photo_canvas_erase_horizontal_line (EditingToolsPhotoCanvas* self,
                                                       gint x,
                                                       gint y,
                                                       gint width);
void editing_tools_photo_canvas_draw_circle (EditingToolsPhotoCanvas* self,
                                             cairo_t* ctx,
                                             gint active_center_x,
                                             gint active_center_y,
                                             gint radius);
void editing_tools_photo_canvas_erase_vertical_line (EditingToolsPhotoCanvas* self,
                                                     gint x,
                                                     gint y,
                                                     gint height);
void editing_tools_photo_canvas_erase_box (EditingToolsPhotoCanvas* self,
                                           Box* box);
void editing_tools_photo_canvas_invalidate_area (EditingToolsPhotoCanvas* self,
                                                 Box* area);
static void g_cclosure_user_marshal_VOID__POINTER_BOXED (GClosure * closure,
                                                  GValue * return_value,
                                                  guint n_param_values,
                                                  const GValue * param_values,
                                                  gpointer invocation_hint,
                                                  gpointer marshal_data);
static void g_cclosure_user_marshal_VOID__BOXED_OBJECT_BOXED (GClosure * closure,
                                                       GValue * return_value,
                                                       guint n_param_values,
                                                       const GValue * param_values,
                                                       gpointer invocation_hint,
                                                       gpointer marshal_data);
static void editing_tools_photo_canvas_finalize (EditingToolsPhotoCanvas * obj);
gpointer editing_tools_editing_tool_ref (gpointer instance);
void editing_tools_editing_tool_unref (gpointer instance);
GParamSpec* editing_tools_param_spec_editing_tool (const gchar* name,
                                                   const gchar* nick,
                                                   const gchar* blurb,
                                                   GType object_type,
                                                   GParamFlags flags);
void editing_tools_value_set_editing_tool (GValue* value,
                                           gpointer v_object);
void editing_tools_value_take_editing_tool (GValue* value,
                                            gpointer v_object);
gpointer editing_tools_value_get_editing_tool (const GValue* value);
GType editing_tools_editing_tool_get_type (void) G_GNUC_CONST;
#define EDITING_TOOLS_EDITING_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolPrivate))
EditingToolsEditingTool* editing_tools_editing_tool_construct (GType object_type,
                                                               const gchar* name);
void editing_tools_editing_tool_activate (EditingToolsEditingTool* self,
                                          EditingToolsPhotoCanvas* canvas);
static void editing_tools_editing_tool_real_activate (EditingToolsEditingTool* self,
                                               EditingToolsPhotoCanvas* canvas);
EditingToolsEditingToolWindow* editing_tools_editing_tool_get_tool_window (EditingToolsEditingTool* self);
gboolean editing_tools_editing_tool_on_keypress (EditingToolsEditingTool* self,
                                                 GdkEventKey* event);
static gboolean _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event (GtkWidget* _sender,
                                                                             GdkEventKey* event,
                                                                             gpointer self);
void editing_tools_editing_tool_deactivate (EditingToolsEditingTool* self);
static void editing_tools_editing_tool_real_deactivate (EditingToolsEditingTool* self);
gboolean editing_tools_editing_tool_is_activated (EditingToolsEditingTool* self);
static EditingToolsEditingToolWindow* editing_tools_editing_tool_real_get_tool_window (EditingToolsEditingTool* self);
GdkPixbuf* editing_tools_editing_tool_get_display_pixbuf (EditingToolsEditingTool* self,
                                                          Scaling* scaling,
                                                          Photo* photo,
                                                          Dimensions* max_dim,
                                                          GError** error);
static GdkPixbuf* editing_tools_editing_tool_real_get_display_pixbuf (EditingToolsEditingTool* self,
                                                               Scaling* scaling,
                                                               Photo* photo,
                                                               Dimensions* max_dim,
                                                               GError** error);
void dimensions_init (Dimensions *self,
                      gint width,
                      gint height);
void editing_tools_editing_tool_on_left_click (EditingToolsEditingTool* self,
                                               gint x,
                                               gint y);
static void editing_tools_editing_tool_real_on_left_click (EditingToolsEditingTool* self,
                                                    gint x,
                                                    gint y);
void editing_tools_editing_tool_on_left_released (EditingToolsEditingTool* self,
                                                  gint x,
                                                  gint y);
static void editing_tools_editing_tool_real_on_left_released (EditingToolsEditingTool* self,
                                                       gint x,
                                                       gint y);
void editing_tools_editing_tool_on_motion (EditingToolsEditingTool* self,
                                           gint x,
                                           gint y,
                                           GdkModifierType mask);
static void editing_tools_editing_tool_real_on_motion (EditingToolsEditingTool* self,
                                                gint x,
                                                gint y,
                                                GdkModifierType mask);
gboolean editing_tools_editing_tool_on_leave_notify_event (EditingToolsEditingTool* self);
static gboolean editing_tools_editing_tool_real_on_leave_notify_event (EditingToolsEditingTool* self);
static gboolean editing_tools_editing_tool_real_on_keypress (EditingToolsEditingTool* self,
                                                      GdkEventKey* event);
void editing_tools_editing_tool_notify_cancel (EditingToolsEditingTool* self);
void editing_tools_editing_tool_paint (EditingToolsEditingTool* self,
                                       cairo_t* ctx);
static void editing_tools_editing_tool_real_paint (EditingToolsEditingTool* self,
                                            cairo_t* ctx);
GType command_get_type (void) G_GNUC_CONST;
static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOXED_BOOLEAN (GClosure * closure,
                                                                GValue * return_value,
                                                                guint n_param_values,
                                                                const GValue * param_values,
                                                                gpointer invocation_hint,
                                                                gpointer marshal_data);
static void editing_tools_editing_tool_finalize (EditingToolsEditingTool * obj);
GType editing_tools_crop_tool_get_type (void) G_GNUC_CONST;
static GType editing_tools_crop_tool_crop_tool_window_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
GType box_location_get_type (void) G_GNUC_CONST;
static gpointer editing_tools_crop_tool_constraint_description_ref (gpointer instance);
static void editing_tools_crop_tool_constraint_description_unref (gpointer instance);
static GParamSpec* editing_tools_crop_tool_param_spec_constraint_description (const gchar* name,
                                                                       const gchar* nick,
                                                                       const gchar* blurb,
                                                                       GType object_type,
                                                                       GParamFlags flags) G_GNUC_UNUSED;
static void editing_tools_crop_tool_value_set_constraint_description (GValue* value,
                                                               gpointer v_object) G_GNUC_UNUSED;
static void editing_tools_crop_tool_value_take_constraint_description (GValue* value,
                                                                gpointer v_object) G_GNUC_UNUSED;
static gpointer editing_tools_crop_tool_value_get_constraint_description (const GValue* value) G_GNUC_UNUSED;
static GType editing_tools_crop_tool_constraint_description_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static GType editing_tools_crop_tool_reticle_orientation_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static GType editing_tools_crop_tool_constraint_mode_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
#define EDITING_TOOLS_CROP_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropToolPrivate))
static EditingToolsCropToolReticleOrientation editing_tools_crop_tool_reticle_orientation_toggle (EditingToolsCropToolReticleOrientation self);
static EditingToolsCropToolConstraintDescription** editing_tools_crop_tool_create_constraints (int* result_length1);
static GtkListStore* editing_tools_crop_tool_create_constraint_list (EditingToolsCropToolConstraintDescription** constraint_data,
                                                              int constraint_data_length1);
#define EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO (-1.0f)
#define EDITING_TOOLS_CROP_TOOL_CROP_INIT_X_PCT 0.15
#define EDITING_TOOLS_CROP_TOOL_CROP_INIT_Y_PCT 0.15
#define EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE 8
#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_SATURATION 0.00f
#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_RED_SHIFT -32
#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_GREEN_SHIFT -32
#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_BLUE_SHIFT -32
#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_ALPHA_SHIFT 0
#define EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO (-2.0f)
#define EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO (-3.0f)
#define EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO (-4.0f)
#define EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS (-5.0f)
#define EDITING_TOOLS_CROP_TOOL_SEPARATOR (-6.0f)
#define EDITING_TOOLS_CROP_TOOL_MIN_ASPECT_RATIO (1.0f / 64.0f)
#define EDITING_TOOLS_CROP_TOOL_MAX_ASPECT_RATIO 64.0f
static EditingToolsCropTool* editing_tools_crop_tool_new (void);
static EditingToolsCropTool* editing_tools_crop_tool_construct (GType object_type);
EditingToolsCropTool* editing_tools_crop_tool_factory (void);
gboolean editing_tools_crop_tool_is_available (Photo* photo,
                                               Scaling* scaling);
void scaling_get_scaled_dimensions (Scaling *self,
                                    Dimensions* original,
                                    Dimensions* result);
void photo_get_original_dimensions (Photo* self,
                                    Dimensions* result);
static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_constraint_description_new (const gchar* new_name,
                                                                                               gint new_basis_width,
                                                                                               gint new_basis_height,
                                                                                               gboolean new_pivotable,
                                                                                               gfloat new_aspect_ratio);
static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_constraint_description_construct (GType object_type,
                                                                                                     const gchar* new_name,
                                                                                                     gint new_basis_width,
                                                                                                     gint new_basis_height,
                                                                                                     gboolean new_pivotable,
                                                                                                     gfloat new_aspect_ratio);
static void _vala_array_add7 (EditingToolsCropToolConstraintDescription** * array,
                       int* length,
                       int* size,
                       EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add8 (EditingToolsCropToolConstraintDescription** * array,
                       int* length,
                       int* size,
                       EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add9 (EditingToolsCropToolConstraintDescription** * array,
                       int* length,
                       int* size,
                       EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add10 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add11 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add12 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add13 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add14 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add15 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add16 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add17 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add18 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add19 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add20 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add21 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add22 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add23 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add24 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add25 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add26 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add27 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add28 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add29 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add30 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add31 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add32 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add33 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add34 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void _vala_array_add35 (EditingToolsCropToolConstraintDescription** * array,
                        int* length,
                        int* size,
                        EditingToolsCropToolConstraintDescription* value);
static void editing_tools_crop_tool_update_pivot_button_state (EditingToolsCropTool* self);
static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_get_selected_constraint (EditingToolsCropTool* self);
static gboolean editing_tools_crop_tool_on_width_entry_focus_out (EditingToolsCropTool* self,
                                                           GdkEventFocus* event);
static gboolean editing_tools_crop_tool_on_custom_entry_focus_out (EditingToolsCropTool* self,
                                                            GdkEventFocus* event);
static gboolean editing_tools_crop_tool_on_height_entry_focus_out (EditingToolsCropTool* self,
                                                            GdkEventFocus* event);
static void editing_tools_crop_tool_constrain_crop (EditingToolsCropTool* self,
                                             Box* crop,
                                             Box* result);
static void editing_tools_crop_tool_crop_resized (EditingToolsCropTool* self,
                                           Box* new_crop);
static void editing_tools_crop_tool_on_width_insert_text (EditingToolsCropTool* self,
                                                   const gchar* text,
                                                   gint length,
                                                   gint* position);
static void editing_tools_crop_tool_on_entry_insert_text (EditingToolsCropTool* self,
                                                   GtkEntry* sender,
                                                   const gchar* text,
                                                   gint length,
                                                   gint* position);
static void editing_tools_crop_tool_on_height_insert_text (EditingToolsCropTool* self,
                                                    const gchar* text,
                                                    gint length,
                                                    gint* position);
static gfloat editing_tools_crop_tool_get_constraint_aspect_ratio (EditingToolsCropTool* self);
static gfloat editing_tools_crop_tool_get_constraint_aspect_ratio_for_constraint (EditingToolsCropTool* self,
                                                                           EditingToolsCropToolConstraintDescription* constraint,
                                                                           Photo* photo);
static void editing_tools_crop_tool_constraint_changed (EditingToolsCropTool* self);
static void editing_tools_crop_tool_set_custom_constraint_mode (EditingToolsCropTool* self);
static void editing_tools_crop_tool_set_normal_constraint_mode (EditingToolsCropTool* self);
GType configuration_facade_get_type (void) G_GNUC_CONST;
GType config_facade_get_type (void) G_GNUC_CONST;
ConfigFacade* config_facade_get_instance (void);
gint configuration_facade_get_last_crop_width (ConfigurationFacade* self);
gint configuration_facade_get_last_crop_height (ConfigurationFacade* self);
void box_adjust_height (Box *self,
                        gint height);
void box_adjust_width (Box *self,
                       gint width);
static void editing_tools_crop_tool_get_photo_dimensions (EditingToolsCropTool* self,
                                                   Dimensions* result);
gboolean photo_get_straighten (Photo* self,
                               gdouble* theta);
void clamp_inside_rotated_image (Box* src,
                                 gint img_w,
                                 gint img_h,
                                 gdouble angle_deg,
                                 gboolean preserve_geom,
                                 Box* result);
static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_get_last_constraint (EditingToolsCropTool* self,
                                                                                        gint* index);
gint configuration_facade_get_last_crop_menu_choice (ConfigurationFacade* self);
static void editing_tools_crop_tool_real_activate (EditingToolsEditingTool* base,
                                            EditingToolsPhotoCanvas* canvas);
static void editing_tools_crop_tool_bind_canvas_handlers (EditingToolsCropTool* self,
                                                   EditingToolsPhotoCanvas* canvas);
static void editing_tools_crop_tool_prepare_ctx (EditingToolsCropTool* self,
                                          cairo_t* ctx,
                                          Dimensions* dim);
static EditingToolsCropToolCropToolWindow* editing_tools_crop_tool_crop_tool_window_new (GtkWindow* container);
static EditingToolsCropToolCropToolWindow* editing_tools_crop_tool_crop_tool_window_construct (GType object_type,
                                                                                        GtkWindow* container);
gboolean photo_has_crop (Photo* self);
static gboolean editing_tools_crop_tool_constraint_description_is_separator (EditingToolsCropToolConstraintDescription* self);
static void editing_tools_crop_tool_bind_window_handlers (EditingToolsCropTool* self);
gboolean photo_get_crop (Photo* self,
                         Box* crop,
                         PhotoException exceptions);
void box_init (Box *self,
               gint left,
               gint top,
               gint right,
               gint bottom);
void box_get_scaled_similar (Box *self,
                             Dimensions* original,
                             Dimensions* scaled,
                             Box* result);
void dimensions_for_rectangle (GdkRectangle* rect,
                               Dimensions* result);
static void _editing_tools_crop_tool_prepare_ctx_editing_tools_photo_canvas_new_surface (EditingToolsPhotoCanvas* _sender,
                                                                                  cairo_t* ctx,
                                                                                  Dimensions* dim,
                                                                                  gpointer self);
static void editing_tools_crop_tool_on_resized_pixbuf (EditingToolsCropTool* self,
                                                Dimensions* old_dim,
                                                GdkPixbuf* scaled,
                                                GdkRectangle* scaled_position);
static void _editing_tools_crop_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender,
                                                                                                  Dimensions* old_dim,
                                                                                                  GdkPixbuf* scaled,
                                                                                                  GdkRectangle* scaled_position,
                                                                                                  gpointer self);
static void editing_tools_crop_tool_unbind_canvas_handlers (EditingToolsCropTool* self,
                                                     EditingToolsPhotoCanvas* canvas);
static void editing_tools_crop_tool_on_crop_ok (EditingToolsCropTool* self);
static void _editing_tools_crop_tool_on_crop_ok_gtk_button_clicked (GtkButton* _sender,
                                                             gpointer self);
static void _editing_tools_editing_tool_notify_cancel_gtk_button_clicked (GtkButton* _sender,
                                                                   gpointer self);
static void _editing_tools_crop_tool_constraint_changed_gtk_combo_box_changed (GtkComboBox* _sender,
                                                                        gpointer self);
static void editing_tools_crop_tool_on_pivot_button_clicked (EditingToolsCropTool* self);
static void _editing_tools_crop_tool_on_pivot_button_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                          gpointer self);
static gboolean _editing_tools_crop_tool_on_width_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender,
                                                                                       GdkEventFocus* event,
                                                                                       gpointer self);
static gboolean _editing_tools_crop_tool_on_height_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender,
                                                                                        GdkEventFocus* event,
                                                                                        gpointer self);
static void _editing_tools_crop_tool_on_width_insert_text_gtk_editable_insert_text (GtkEditable* _sender,
                                                                             const gchar* new_text,
                                                                             gint new_text_length,
                                                                             gint* position,
                                                                             gpointer self);
static void _editing_tools_crop_tool_on_height_insert_text_gtk_editable_insert_text (GtkEditable* _sender,
                                                                              const gchar* new_text,
                                                                              gint new_text_length,
                                                                              gint* position,
                                                                              gpointer self);
static void editing_tools_crop_tool_unbind_window_handlers (EditingToolsCropTool* self);
static gboolean editing_tools_crop_tool_real_on_keypress (EditingToolsEditingTool* base,
                                                   GdkEventKey* event);
static void editing_tools_crop_tool_real_deactivate (EditingToolsEditingTool* base);
static EditingToolsEditingToolWindow* editing_tools_crop_tool_real_get_tool_window (EditingToolsEditingTool* base);
static GdkPixbuf* editing_tools_crop_tool_real_get_display_pixbuf (EditingToolsEditingTool* base,
                                                            Scaling* scaling,
                                                            Photo* photo,
                                                            Dimensions* max_dim,
                                                            GError** error);
GType backing_fetch_mode_get_type (void) G_GNUC_CONST;
GdkPixbuf* photo_get_pixbuf_with_options (Photo* self,
                                          Scaling* scaling,
                                          PhotoException exceptions,
                                          BackingFetchMode fetch_mode,
                                          GError** error);
void dimensions_for_pixbuf (GdkPixbuf* pixbuf,
                            Dimensions* result);
static void editing_tools_crop_tool_real_on_left_click (EditingToolsEditingTool* base,
                                                 gint x,
                                                 gint y);
void box_get_offset (Box *self,
                     gint xofs,
                     gint yofs,
                     Box* result);
BoxLocation box_approx_location (Box *self,
                                 gint x,
                                 gint y);
static void editing_tools_crop_tool_real_on_left_released (EditingToolsEditingTool* base,
                                                    gint x,
                                                    gint y);
static void editing_tools_crop_tool_update_cursor (EditingToolsCropTool* self,
                                            gint x,
                                            gint y);
static void editing_tools_crop_tool_real_on_motion (EditingToolsEditingTool* base,
                                             gint x,
                                             gint y,
                                             GdkModifierType mask);
static gboolean editing_tools_crop_tool_on_canvas_manipulation (EditingToolsCropTool* self,
                                                         gint x,
                                                         gint y);
static void editing_tools_crop_tool_real_paint (EditingToolsEditingTool* base,
                                         cairo_t* default_ctx);
static void editing_tools_crop_tool_paint_crop_tool (EditingToolsCropTool* self,
                                              Box* crop);
void configuration_facade_set_last_crop_menu_choice (ConfigurationFacade* self,
                                                     gint choice);
void configuration_facade_set_last_crop_width (ConfigurationFacade* self,
                                               gint choice);
void configuration_facade_set_last_crop_height (ConfigurationFacade* self,
                                                gint choice);
#define RESOURCES_CROP_LABEL _ ("Crop")
#define RESOURCES_CROP_TOOLTIP _ ("Crop the photo’s size")
CropCommand* crop_command_new (Photo* photo,
                               Box* crop,
                               const gchar* name,
                               const gchar* explanation);
CropCommand* crop_command_construct (GType object_type,
                                     Photo* photo,
                                     Box* crop,
                                     const gchar* name,
                                     const gchar* explanation);
GType page_command_get_type (void) G_GNUC_CONST;
GType single_data_source_command_get_type (void) G_GNUC_CONST;
GType generic_photo_transformation_command_get_type (void) G_GNUC_CONST;
GType crop_command_get_type (void) G_GNUC_CONST;
void box_get_dimensions (Box *self,
                         Dimensions* result);
static gint editing_tools_crop_tool_eval_radial_line (EditingToolsCropTool* self,
                                               gdouble center_x,
                                               gdouble center_y,
                                               gdouble bounds_x,
                                               gdouble bounds_y,
                                               gdouble user_x);
static gboolean _box_equal (const Box * s1,
                     const Box * s2);
static void editing_tools_crop_tool_crop_moved (EditingToolsCropTool* self,
                                         Box* new_crop);
gboolean box_equals (Box *self,
                     Box* box);
GType box_complements_get_type (void) G_GNUC_CONST;
BoxComplements box_resized_complements (Box *self,
                                        Box* resized,
                                        Box* horizontal,
                                        gboolean* horizontal_enlarged,
                                        Box* vertical,
                                        gboolean* vertical_enlarged);
static void editing_tools_crop_tool_set_area_alpha (EditingToolsCropTool* self,
                                             Box* area,
                                             gdouble alpha);
void box_get_reduced (Box *self,
                      gint amount,
                      Box* result);
static void editing_tools_crop_tool_constraint_description_finalize (EditingToolsCropToolConstraintDescription * obj);
#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
#define EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_CONTROL_SPACING 8
static gboolean editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func (GtkTreeModel* model,
                                                                                   GtkTreeIter* iter);
static gboolean _editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func_gtk_tree_view_row_separator_func (GtkTreeModel* model,
                                                                                                                     GtkTreeIter* iter,
                                                                                                                     gpointer self);
static void editing_tools_crop_tool_crop_tool_window_finalize (GObject * obj);
static void editing_tools_crop_tool_finalize (EditingToolsEditingTool * obj);
GType editing_tools_redeye_instance_get_type (void) G_GNUC_CONST;
EditingToolsRedeyeInstance* editing_tools_redeye_instance_dup (const EditingToolsRedeyeInstance* self);
void editing_tools_redeye_instance_free (EditingToolsRedeyeInstance* self);
#define EDITING_TOOLS_REDEYE_INSTANCE_MIN_RADIUS 4
#define EDITING_TOOLS_REDEYE_INSTANCE_MAX_RADIUS 32
#define EDITING_TOOLS_REDEYE_INSTANCE_DEFAULT_RADIUS 10
static void editing_tools_redeye_instance_init (EditingToolsRedeyeInstance *self);
void editing_tools_redeye_instance_to_bounds_rect (EditingToolsRedeyeInstance* inst,
                                                   GdkRectangle* result);
void editing_tools_redeye_instance_from_bounds_rect (GdkRectangle* rect,
                                                     EditingToolsRedeyeInstance* result);
GType editing_tools_redeye_tool_get_type (void) G_GNUC_CONST;
static GType editing_tools_redeye_tool_redeye_tool_window_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
#define EDITING_TOOLS_REDEYE_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeToolPrivate))
static EditingToolsRedeyeTool* editing_tools_redeye_tool_new (void);
static EditingToolsRedeyeTool* editing_tools_redeye_tool_construct (GType object_type);
EditingToolsRedeyeTool* editing_tools_redeye_tool_factory (void);
gboolean editing_tools_redeye_tool_is_available (Photo* photo,
                                                 Scaling* scaling);
static void editing_tools_redeye_tool_new_interaction_instance (EditingToolsRedeyeTool* self,
                                                         EditingToolsPhotoCanvas* canvas,
                                                         EditingToolsRedeyeInstance* result);
static void editing_tools_redeye_tool_prepare_ctx (EditingToolsRedeyeTool* self,
                                            cairo_t* ctx,
                                            Dimensions* dim);
static void editing_tools_redeye_tool_draw_redeye_instance (EditingToolsRedeyeTool* self,
                                                     EditingToolsRedeyeInstance* inst);
static gboolean editing_tools_redeye_tool_on_size_slider_adjust (EditingToolsRedeyeTool* self,
                                                          GtkScrollType type);
static void editing_tools_redeye_tool_on_apply (EditingToolsRedeyeTool* self);
void derotate_point_arb (GdkPoint* source_point,
                         gint img_w,
                         gint img_h,
                         gdouble angle,
                         GdkPoint* result);
GType redeye_command_get_type (void) G_GNUC_CONST;
#define RESOURCES_RED_EYE_LABEL _ ("Red-eye")
#define RESOURCES_RED_EYE_TOOLTIP _ ("Reduce or eliminate any red-eye effects in the photo")
RedeyeCommand* redeye_command_new (Photo* photo,
                                   EditingToolsRedeyeInstance* redeye_instance,
                                   const gchar* name,
                                   const gchar* explanation);
RedeyeCommand* redeye_command_construct (GType object_type,
                                         Photo* photo,
                                         EditingToolsRedeyeInstance* redeye_instance,
                                         const gchar* name,
                                         const gchar* explanation);
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* app_window_get_command_manager (void);
void command_manager_execute (CommandManager* self,
                              Command* command);
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;
static void editing_tools_redeye_tool_on_photos_altered (EditingToolsRedeyeTool* self,
                                                  GeeMap* map);
GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self,
                                    Scaling* scaling,
                                    GError** error);
static void editing_tools_redeye_tool_on_close (EditingToolsRedeyeTool* self);
static void editing_tools_redeye_tool_on_canvas_resize (EditingToolsRedeyeTool* self);
static void editing_tools_redeye_tool_real_activate (EditingToolsEditingTool* base,
                                              EditingToolsPhotoCanvas* canvas);
static void editing_tools_redeye_tool_bind_canvas_handlers (EditingToolsRedeyeTool* self,
                                                     EditingToolsPhotoCanvas* canvas);
static EditingToolsRedeyeToolRedeyeToolWindow* editing_tools_redeye_tool_redeye_tool_window_new (GtkWindow* container);
static EditingToolsRedeyeToolRedeyeToolWindow* editing_tools_redeye_tool_redeye_tool_window_construct (GType object_type,
                                                                                                GtkWindow* container);
static void editing_tools_redeye_tool_bind_window_handlers (EditingToolsRedeyeTool* self);
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;
DataCollection* data_object_get_membership (DataObject* self);
static void _editing_tools_redeye_tool_on_photos_altered_data_collection_items_altered (DataCollection* _sender,
                                                                                 GeeMap* items,
                                                                                 gpointer self);
static void editing_tools_redeye_tool_real_deactivate (EditingToolsEditingTool* base);
static void editing_tools_redeye_tool_unbind_canvas_handlers (EditingToolsRedeyeTool* self,
                                                       EditingToolsPhotoCanvas* canvas);
static void editing_tools_redeye_tool_unbind_window_handlers (EditingToolsRedeyeTool* self);
static void _editing_tools_redeye_tool_prepare_ctx_editing_tools_photo_canvas_new_surface (EditingToolsPhotoCanvas* _sender,
                                                                                    cairo_t* ctx,
                                                                                    Dimensions* dim,
                                                                                    gpointer self);
static void _editing_tools_redeye_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender,
                                                                                                   Dimensions* old_dim,
                                                                                                   GdkPixbuf* scaled,
                                                                                                   GdkRectangle* scaled_position,
                                                                                                   gpointer self);
static void _editing_tools_redeye_tool_on_apply_gtk_button_clicked (GtkButton* _sender,
                                                             gpointer self);
static void _editing_tools_redeye_tool_on_close_gtk_button_clicked (GtkButton* _sender,
                                                             gpointer self);
static gboolean _editing_tools_redeye_tool_on_size_slider_adjust_gtk_range_change_value (GtkRange* _sender,
                                                                                  GtkScrollType scroll,
                                                                                  gdouble new_value,
                                                                                  gpointer self);
static EditingToolsEditingToolWindow* editing_tools_redeye_tool_real_get_tool_window (EditingToolsEditingTool* base);
static void editing_tools_redeye_tool_real_paint (EditingToolsEditingTool* base,
                                           cairo_t* ctx);
static void editing_tools_redeye_tool_real_on_left_click (EditingToolsEditingTool* base,
                                                   gint x,
                                                   gint y);
gboolean coord_in_rectangle (gint x,
                             gint y,
                             GdkRectangle* rect);
static void editing_tools_redeye_tool_real_on_left_released (EditingToolsEditingTool* base,
                                                      gint x,
                                                      gint y);
static void editing_tools_redeye_tool_real_on_motion (EditingToolsEditingTool* base,
                                               gint x,
                                               gint y,
                                               GdkModifierType mask);
static gboolean editing_tools_redeye_tool_real_on_keypress (EditingToolsEditingTool* base,
                                                     GdkEventKey* event);
#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindowPrivate))
#define RESOURCES_APPLY_LABEL _ ("_Apply")
#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_CONTROL_SPACING 8
static void editing_tools_redeye_tool_redeye_tool_window_finalize (GObject * obj);
static void editing_tools_redeye_tool_finalize (EditingToolsEditingTool * obj);
GType editing_tools_adjust_tool_get_type (void) G_GNUC_CONST;
static GType editing_tools_adjust_tool_adjust_tool_window_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
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 EDITING_TOOLS_ADJUST_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustToolPrivate))
#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH 200
#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC ((guint) 100)
static EditingToolsAdjustTool* editing_tools_adjust_tool_new (void);
static EditingToolsAdjustTool* editing_tools_adjust_tool_construct (GType object_type);
EditingToolsAdjustTool* editing_tools_adjust_tool_factory (void);
gboolean editing_tools_adjust_tool_is_available (Photo* photo,
                                                 Scaling* scaling);
static void editing_tools_adjust_tool_real_activate (EditingToolsEditingTool* base,
                                              EditingToolsPhotoCanvas* canvas);
static EditingToolsAdjustToolAdjustToolWindow* editing_tools_adjust_tool_adjust_tool_window_new (GtkWindow* container);
static EditingToolsAdjustToolAdjustToolWindow* editing_tools_adjust_tool_adjust_tool_window_construct (GType object_type,
                                                                                                GtkWindow* container);
PixelTransformationBundle* photo_get_color_adjustments (Photo* self);
GType rgb_histogram_manipulator_get_type (void) G_GNUC_CONST;
void rgb_histogram_manipulator_set_left_nub_position (RGBHistogramManipulator* self,
                                                      gint user_nub_pos);
void rgb_histogram_manipulator_set_right_nub_position (RGBHistogramManipulator* self,
                                                       gint user_nub_pos);
static void editing_tools_adjust_tool_bind_canvas_handlers (EditingToolsAdjustTool* self,
                                                     EditingToolsPhotoCanvas* canvas);
static void editing_tools_adjust_tool_bind_window_handlers (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_init_fp_pixel_cache (EditingToolsAdjustTool* self,
                                                    GdkPixbuf* source);
static void editing_tools_adjust_tool_on_photos_altered (EditingToolsAdjustTool* self,
                                                  GeeMap* map);
static void _editing_tools_adjust_tool_on_photos_altered_data_collection_items_altered (DataCollection* _sender,
                                                                                 GeeMap* items,
                                                                                 gpointer self);
static EditingToolsEditingToolWindow* editing_tools_adjust_tool_real_get_tool_window (EditingToolsEditingTool* base);
static void editing_tools_adjust_tool_real_deactivate (EditingToolsEditingTool* base);
static void editing_tools_adjust_tool_unbind_canvas_handlers (EditingToolsAdjustTool* self,
                                                       EditingToolsPhotoCanvas* canvas);
static void editing_tools_adjust_tool_unbind_window_handlers (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_real_paint (EditingToolsEditingTool* base,
                                           cairo_t* ctx);
void rgb_histogram_manipulator_update_histogram (RGBHistogramManipulator* self,
                                                 GdkPixbuf* source_pixbuf);
static GdkPixbuf* editing_tools_adjust_tool_real_get_display_pixbuf (EditingToolsEditingTool* base,
                                                              Scaling* scaling,
                                                              Photo* photo,
                                                              Dimensions* max_dim,
                                                              GError** error);
gboolean photo_has_color_adjustments (Photo* self);
static void editing_tools_adjust_tool_on_reset (EditingToolsAdjustTool* self);
static GType editing_tools_adjust_tool_adjust_tool_command_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static GType editing_tools_adjust_tool_adjust_reset_command_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static EditingToolsAdjustToolAdjustResetCommand* editing_tools_adjust_tool_adjust_reset_command_new (EditingToolsAdjustTool* owner,
                                                                                              PixelTransformationBundle* current);
static EditingToolsAdjustToolAdjustResetCommand* editing_tools_adjust_tool_adjust_reset_command_construct (GType object_type,
                                                                                                    EditingToolsAdjustTool* owner,
                                                                                                    PixelTransformationBundle* current);
static void editing_tools_adjust_tool_on_ok (EditingToolsAdjustTool* self);
#define RESOURCES_ADJUST_LABEL _ ("Adjust")
#define RESOURCES_ADJUST_TOOLTIP _ ("Adjust the photo’s color and tone")
AdjustColorsSingleCommand* adjust_colors_single_command_new (Photo* photo,
                                                             PixelTransformationBundle* transformations,
                                                             const gchar* name,
                                                             const gchar* explanation);
AdjustColorsSingleCommand* adjust_colors_single_command_construct (GType object_type,
                                                                   Photo* photo,
                                                                   PixelTransformationBundle* transformations,
                                                                   const gchar* name,
                                                                   const gchar* explanation);
GType adjust_colors_single_command_get_type (void) G_GNUC_CONST;
static void editing_tools_adjust_tool_update_transformations (EditingToolsAdjustTool* self,
                                                       PixelTransformationBundle* new_transformations);
static void editing_tools_adjust_tool_update_transformation (EditingToolsAdjustTool* self,
                                                      PixelTransformation* new_transformation);
static void editing_tools_adjust_tool_slider_updated (EditingToolsAdjustTool* self,
                                               PixelTransformation* new_transformation,
                                               const gchar* name);
static GType editing_tools_adjust_tool_slider_adjustment_command_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static EditingToolsAdjustToolSliderAdjustmentCommand* editing_tools_adjust_tool_slider_adjustment_command_new (EditingToolsAdjustTool* owner,
                                                                                                        PixelTransformation* old_transformation,
                                                                                                        PixelTransformation* new_transformation,
                                                                                                        const gchar* name);
static EditingToolsAdjustToolSliderAdjustmentCommand* editing_tools_adjust_tool_slider_adjustment_command_construct (GType object_type,
                                                                                                              EditingToolsAdjustTool* owner,
                                                                                                              PixelTransformation* old_transformation,
                                                                                                              PixelTransformation* new_transformation,
                                                                                                              const gchar* name);
static void editing_tools_adjust_tool_on_temperature_adjustment (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_on_delayed_temperature_adjustment (EditingToolsAdjustTool* self);
static void _editing_tools_adjust_tool_on_delayed_temperature_adjustment_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_after_timeout (OneShotScheduler* self,
                                       guint msec,
                                       gboolean reschedule);
static void editing_tools_adjust_tool_on_tint_adjustment (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_on_delayed_tint_adjustment (EditingToolsAdjustTool* self);
static void _editing_tools_adjust_tool_on_delayed_tint_adjustment_one_shot_callback (gpointer self);
static void editing_tools_adjust_tool_on_contrast_adjustment (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_on_delayed_contrast_adjustment (EditingToolsAdjustTool* self);
static void _editing_tools_adjust_tool_on_delayed_contrast_adjustment_one_shot_callback (gpointer self);
static void editing_tools_adjust_tool_on_saturation_adjustment (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_on_delayed_saturation_adjustment (EditingToolsAdjustTool* self);
static void _editing_tools_adjust_tool_on_delayed_saturation_adjustment_one_shot_callback (gpointer self);
static void editing_tools_adjust_tool_on_exposure_adjustment (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_on_delayed_exposure_adjustment (EditingToolsAdjustTool* self);
static void _editing_tools_adjust_tool_on_delayed_exposure_adjustment_one_shot_callback (gpointer self);
static void editing_tools_adjust_tool_on_shadows_adjustment (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_on_delayed_shadows_adjustment (EditingToolsAdjustTool* self);
static void _editing_tools_adjust_tool_on_delayed_shadows_adjustment_one_shot_callback (gpointer self);
static void editing_tools_adjust_tool_on_highlights_adjustment (EditingToolsAdjustTool* self);
static void editing_tools_adjust_tool_on_delayed_highlights_adjustment (EditingToolsAdjustTool* self);
static void _editing_tools_adjust_tool_on_delayed_highlights_adjustment_one_shot_callback (gpointer self);
static void editing_tools_adjust_tool_on_histogram_constraint (EditingToolsAdjustTool* self);
gint rgb_histogram_manipulator_get_left_nub_position (RGBHistogramManipulator* self);
gint rgb_histogram_manipulator_get_right_nub_position (RGBHistogramManipulator* self);
static void editing_tools_adjust_tool_on_canvas_resize (EditingToolsAdjustTool* self);
static gboolean editing_tools_adjust_tool_on_hscale_reset (EditingToolsAdjustTool* self,
                                                    GtkWidget* widget,
                                                    GdkEventButton* event);
gboolean has_only_key_modifier (GdkModifierType field,
                                GdkModifierType mask);
static void _editing_tools_adjust_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender,
                                                                                                   Dimensions* old_dim,
                                                                                                   GdkPixbuf* scaled,
                                                                                                   GdkRectangle* scaled_position,
                                                                                                   gpointer self);
static void _editing_tools_adjust_tool_on_ok_gtk_button_clicked (GtkButton* _sender,
                                                          gpointer self);
static void _editing_tools_adjust_tool_on_reset_gtk_button_clicked (GtkButton* _sender,
                                                             gpointer self);
static void _editing_tools_adjust_tool_on_exposure_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                                gpointer self);
static void _editing_tools_adjust_tool_on_contrast_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                                gpointer self);
static void _editing_tools_adjust_tool_on_saturation_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                                  gpointer self);
static void _editing_tools_adjust_tool_on_tint_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                            gpointer self);
static void _editing_tools_adjust_tool_on_temperature_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                                   gpointer self);
static void _editing_tools_adjust_tool_on_shadows_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                               gpointer self);
static void _editing_tools_adjust_tool_on_highlights_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                                  gpointer self);
static void _editing_tools_adjust_tool_on_histogram_constraint_rgb_histogram_manipulator_nub_position_changed (RGBHistogramManipulator* _sender,
                                                                                                        gpointer self);
static gboolean _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event (GtkWidget* _sender,
                                                                                   GdkEventButton* event,
                                                                                   gpointer self);
gboolean editing_tools_adjust_tool_enhance (EditingToolsAdjustTool* self);
static GType editing_tools_adjust_tool_adjust_enhance_command_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static EditingToolsAdjustToolAdjustEnhanceCommand* editing_tools_adjust_tool_adjust_enhance_command_new (EditingToolsAdjustTool* owner,
                                                                                                  Photo* photo);
static EditingToolsAdjustToolAdjustEnhanceCommand* editing_tools_adjust_tool_adjust_enhance_command_construct (GType object_type,
                                                                                                        EditingToolsAdjustTool* owner,
                                                                                                        Photo* photo);
static void editing_tools_adjust_tool_set_adjustments (EditingToolsAdjustTool* self,
                                                PixelTransformationBundle* new_adjustments);
static void editing_tools_adjust_tool_update_slider (EditingToolsAdjustTool* self,
                                              PixelTransformation* transformation);
static gboolean editing_tools_adjust_tool_real_on_keypress (EditingToolsEditingTool* base,
                                                     GdkEventKey* event);
#define RESOURCES_OK_LABEL _ ("_OK")
RGBHistogramManipulator* rgb_histogram_manipulator_new (void);
RGBHistogramManipulator* rgb_histogram_manipulator_construct (GType object_type);
static void editing_tools_adjust_tool_adjust_tool_window_finalize (GObject * obj);
GType command_description_get_type (void) G_GNUC_CONST;
static void editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated (EditingToolsAdjustToolAdjustToolCommand* self);
static void _editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated_editing_tools_editing_tool_deactivated (EditingToolsEditingTool* _sender,
                                                                                                                 gpointer self);
static EditingToolsAdjustToolAdjustToolCommand* editing_tools_adjust_tool_adjust_tool_command_construct (GType object_type,
                                                                                                  EditingToolsAdjustTool* owner,
                                                                                                  const gchar* name,
                                                                                                  const gchar* explanation);
Command* command_construct (GType object_type,
                            const gchar* name,
                            const gchar* explanation);
void command_manager_reset (CommandManager* self);
static void editing_tools_adjust_tool_adjust_tool_command_finalize (GObject * obj);
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommandPrivate))
static void editing_tools_adjust_tool_adjust_reset_command_real_execute (Command* base);
static void editing_tools_adjust_tool_adjust_reset_command_real_undo (Command* base);
static gboolean editing_tools_adjust_tool_adjust_reset_command_real_compress (Command* base,
                                                                       Command* command);
static void editing_tools_adjust_tool_adjust_reset_command_finalize (GObject * obj);
#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommandPrivate))
static void editing_tools_adjust_tool_slider_adjustment_command_real_execute (Command* base);
static void editing_tools_adjust_tool_slider_adjustment_command_real_undo (Command* base);
static void editing_tools_adjust_tool_slider_adjustment_command_real_redo (Command* base);
static gboolean editing_tools_adjust_tool_slider_adjustment_command_real_compress (Command* base,
                                                                            Command* command);
void command_execute (Command* self);
static void editing_tools_adjust_tool_slider_adjustment_command_finalize (GObject * obj);
#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommandPrivate))
#define RESOURCES_ENHANCE_LABEL _ ("Enhance")
#define RESOURCES_ENHANCE_TOOLTIP _ ("Automatically improve the photo’s appearance")
static void editing_tools_adjust_tool_adjust_enhance_command_real_execute (Command* base);
PixelTransformationBundle* photo_get_enhance_transformations (Photo* self);
static void editing_tools_adjust_tool_adjust_enhance_command_real_undo (Command* base);
static gboolean editing_tools_adjust_tool_adjust_enhance_command_real_compress (Command* base,
                                                                         Command* command);
GType enhance_single_command_get_type (void) G_GNUC_CONST;
DataSource* single_data_source_command_get_source (SingleDataSourceCommand* self);
gboolean data_source_equals (DataSource* self,
                             DataSource* source);
static void editing_tools_adjust_tool_adjust_enhance_command_finalize (GObject * obj);
static void editing_tools_adjust_tool_finalize (EditingToolsEditingTool * 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);


void
editing_tools_preconfigure (void)
{
}


void
editing_tools_init (GError** error)
{
}


void
editing_tools_terminate (void)
{
}


static void
_editing_tools_editing_tool_window_suppress_warnings_glog_func (const gchar* log_domain,
                                                                GLogLevelFlags log_levels,
                                                                const gchar* message,
                                                                gpointer self)
{
#line 56 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_window_suppress_warnings ((EditingToolsEditingToolWindow*) self, log_domain, log_levels, message);
#line 2023 "EditingTools.c"
}


EditingToolsEditingToolWindow*
editing_tools_editing_tool_window_construct (GType object_type,
                                             GtkWindow* container)
{
	EditingToolsEditingToolWindow * self = NULL;
	GtkFrame* outer_frame = NULL;
	GtkFrame* _tmp0_;
	GtkFrame* _tmp1_;
	GtkFrame* _tmp2_;
	GtkFrame* _tmp3_;
#line 34 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
#line 34 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsEditingToolWindow*) g_object_new (object_type, NULL);
#line 35 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_window_set_decorated (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
#line 36 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), container);
#line 38 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = (GtkFrame*) gtk_frame_new (NULL);
#line 38 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp0_);
#line 38 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	outer_frame = _tmp0_;
#line 39 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (outer_frame, gtk_container_get_type (), GtkContainer), (guint) 0);
#line 40 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_frame_set_shadow_type (outer_frame, GTK_SHADOW_OUT);
#line 42 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->layout_frame;
#line 42 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer), (guint) EDITING_TOOLS_EDITING_TOOL_WINDOW_FRAME_BORDER);
#line 43 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->layout_frame;
#line 43 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_frame_set_shadow_type (_tmp2_, GTK_SHADOW_NONE);
#line 45 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->layout_frame;
#line 45 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (outer_frame, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
#line 46 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	GTK_CONTAINER_CLASS (editing_tools_editing_tool_window_parent_class)->add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (outer_frame, gtk_widget_get_type (), GtkWidget));
#line 48 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), (gint) (GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK));
#line 49 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_window_set_focus_on_map (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
#line 50 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_window_set_accept_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
#line 51 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), TRUE);
#line 56 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_log_set_handler ("Gdk", G_LOG_LEVEL_WARNING, _editing_tools_editing_tool_window_suppress_warnings_glog_func, self);
#line 34 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (outer_frame);
#line 34 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 2083 "EditingTools.c"
}


static void
editing_tools_editing_tool_window_real_add (GtkContainer* base,
                                            GtkWidget* widget)
{
	EditingToolsEditingToolWindow * self;
	GtkFrame* _tmp0_;
#line 63 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
#line 63 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (GTK_IS_WIDGET (widget));
#line 64 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->layout_frame;
#line 64 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_container_get_type (), GtkContainer), widget);
#line 2101 "EditingTools.c"
}


gboolean
editing_tools_editing_tool_window_has_user_moved (EditingToolsEditingToolWindow* self)
{
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 67 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL_WINDOW (self), FALSE);
#line 68 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->user_moved;
#line 68 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp0_;
#line 68 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 2118 "EditingTools.c"
}


static gboolean
editing_tools_editing_tool_window_real_key_press_event (GtkWidget* base,
                                                        GdkEventKey* event)
{
	EditingToolsEditingToolWindow * self;
	gboolean result = FALSE;
	AppWindow* _tmp0_;
	AppWindow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_;
#line 71 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
#line 71 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 72 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (GTK_WIDGET_CLASS (editing_tools_editing_tool_window_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), event)) {
#line 73 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = TRUE;
#line 73 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 2142 "EditingTools.c"
	}
#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = app_window_get_instance ();
#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), "key-press-event", event, &_tmp2_);
#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_;
#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp1_);
#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp3_;
#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 2158 "EditingTools.c"
}


static gboolean
editing_tools_editing_tool_window_real_button_press_event (GtkWidget* base,
                                                           GdkEventButton* event)
{
	EditingToolsEditingToolWindow * self;
	gboolean result = FALSE;
	guint _tmp0_;
	guint _tmp2_;
	gdouble _tmp3_;
	gdouble _tmp4_;
	guint32 _tmp5_;
#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 80 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = event->button;
#line 80 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ != ((guint) 1)) {
#line 2181 "EditingTools.c"
		gboolean _tmp1_ = FALSE;
#line 81 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (GTK_WIDGET_CLASS (editing_tools_editing_tool_window_parent_class)->button_press_event != NULL) {
#line 81 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp1_ = GTK_WIDGET_CLASS (editing_tools_editing_tool_window_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), event);
#line 2187 "EditingTools.c"
		} else {
#line 81 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp1_ = TRUE;
#line 2191 "EditingTools.c"
		}
#line 81 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = _tmp1_;
#line 81 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 2197 "EditingTools.c"
	}
#line 83 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = event->button;
#line 83 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = event->x_root;
#line 83 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = event->y_root;
#line 83 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = event->time;
#line 83 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_window_begin_move_drag (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), (gint) _tmp2_, (gint) _tmp3_, (gint) _tmp4_, _tmp5_);
#line 84 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_moved = TRUE;
#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = TRUE;
#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 2215 "EditingTools.c"
}


static void
editing_tools_editing_tool_window_real_realize (GtkWidget* base)
{
	EditingToolsEditingToolWindow * self;
#line 89 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
#line 90 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_opacity (G_TYPE_CHECK_INSTANCE_TYPE (self, gtk_widget_get_type ()) ? ((GtkWidget*) self) : NULL, RESOURCES_TRANSIENT_WINDOW_OPACITY);
#line 92 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	GTK_WIDGET_CLASS (editing_tools_editing_tool_window_parent_class)->realize (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget));
#line 2229 "EditingTools.c"
}


static void
editing_tools_editing_tool_window_suppress_warnings (EditingToolsEditingToolWindow* self,
                                                     const gchar* log_domain,
                                                     GLogLevelFlags log_levels,
                                                     const gchar* message)
{
#line 95 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL_WINDOW (self));
#line 95 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (message != NULL);
#line 2243 "EditingTools.c"
}


static void
editing_tools_editing_tool_window_class_init (EditingToolsEditingToolWindowClass * klass)
{
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_window_parent_class = g_type_class_peek_parent (klass);
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsEditingToolWindowPrivate));
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((GtkContainerClass *) klass)->add = (void (*) (GtkContainer *, GtkWidget*)) editing_tools_editing_tool_window_real_add;
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((GtkWidgetClass *) klass)->key_press_event = (gboolean (*) (GtkWidget *, GdkEventKey*)) editing_tools_editing_tool_window_real_key_press_event;
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((GtkWidgetClass *) klass)->button_press_event = (gboolean (*) (GtkWidget *, GdkEventButton*)) editing_tools_editing_tool_window_real_button_press_event;
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((GtkWidgetClass *) klass)->realize = (void (*) (GtkWidget *)) editing_tools_editing_tool_window_real_realize;
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (klass)->finalize = editing_tools_editing_tool_window_finalize;
#line 2264 "EditingTools.c"
}


static void
editing_tools_editing_tool_window_instance_init (EditingToolsEditingToolWindow * self)
{
	GtkFrame* _tmp0_;
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_EDITING_TOOL_WINDOW_GET_PRIVATE (self);
#line 31 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = (GtkFrame*) gtk_frame_new (NULL);
#line 31 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp0_);
#line 31 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->layout_frame = _tmp0_;
#line 32 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_moved = FALSE;
#line 2282 "EditingTools.c"
}


static void
editing_tools_editing_tool_window_finalize (GObject * obj)
{
	EditingToolsEditingToolWindow * self;
	GLogFunc _tmp0_;
	void* _tmp0__target;
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
#line 60 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = g_log_default_handler;
#line 60 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0__target = NULL;
#line 60 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_log_set_handler ("Gdk", G_LOG_LEVEL_WARNING, _tmp0_, _tmp0__target);
#line 31 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->layout_frame);
#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (editing_tools_editing_tool_window_parent_class)->finalize (obj);
#line 2304 "EditingTools.c"
}


GType
editing_tools_editing_tool_window_get_type (void)
{
	static volatile gsize editing_tools_editing_tool_window_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_editing_tool_window_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsEditingToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_editing_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsEditingToolWindow), 0, (GInstanceInitFunc) editing_tools_editing_tool_window_instance_init, NULL };
		GType editing_tools_editing_tool_window_type_id;
		editing_tools_editing_tool_window_type_id = g_type_register_static (gtk_window_get_type (), "EditingToolsEditingToolWindow", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&editing_tools_editing_tool_window_type_id__volatile, editing_tools_editing_tool_window_type_id);
	}
	return editing_tools_editing_tool_window_type_id__volatile;
}


static gpointer
_g_object_ref0 (gpointer self)
{
#line 115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self ? g_object_ref (self) : NULL;
#line 2327 "EditingTools.c"
}


static gpointer
_cairo_reference0 (gpointer self)
{
#line 118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self ? cairo_reference (self) : NULL;
#line 2336 "EditingTools.c"
}


EditingToolsPhotoCanvas*
editing_tools_photo_canvas_construct (GType object_type,
                                      GtkWindow* container,
                                      GdkWindow* drawing_window,
                                      Photo* photo,
                                      cairo_t* default_ctx,
                                      Dimensions* surface_dim,
                                      GdkPixbuf* scaled,
                                      GdkRectangle* scaled_position)
{
	EditingToolsPhotoCanvas* self = NULL;
	GtkWindow* _tmp0_;
	GdkWindow* _tmp1_;
	Photo* _tmp2_;
	cairo_t* _tmp3_;
	Dimensions _tmp4_;
	GdkRectangle _tmp5_;
	GdkPixbuf* _tmp6_;
	GdkRectangle _tmp7_;
	cairo_surface_t* _tmp8_;
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GDK_IS_WINDOW (drawing_window), NULL);
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), NULL);
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (default_ctx != NULL, NULL);
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (surface_dim != NULL, NULL);
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GDK_IS_PIXBUF (scaled), NULL);
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (scaled_position != NULL, NULL);
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsPhotoCanvas*) g_type_create_instance (object_type);
#line 115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = _g_object_ref0 (container);
#line 115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->container);
#line 115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->container = _tmp0_;
#line 116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _g_object_ref0 (drawing_window);
#line 116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->drawing_window);
#line 116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->drawing_window = _tmp1_;
#line 117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _g_object_ref0 (photo);
#line 117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->photo);
#line 117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->photo = _tmp2_;
#line 118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _cairo_reference0 (default_ctx);
#line 118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->default_ctx);
#line 118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->default_ctx = _tmp3_;
#line 119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = *surface_dim;
#line 119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->surface_dim = _tmp4_;
#line 120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = *scaled_position;
#line 120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_position = _tmp5_;
#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _g_object_ref0 (scaled);
#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->scaled_pixbuf);
#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_pixbuf = _tmp6_;
#line 122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = *scaled_position;
#line 122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = editing_tools_photo_canvas_pixbuf_to_surface (self, default_ctx, scaled, &_tmp7_);
#line 122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_surface_destroy0 (self->priv->scaled);
#line 122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled = _tmp8_;
#line 113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 2424 "EditingTools.c"
}


void
editing_tools_photo_canvas_unscaled_to_raw_rect (EditingToolsPhotoCanvas* self,
                                                 GdkRectangle* rectangle,
                                                 GdkRectangle* result)
{
	Photo* _tmp0_;
	GdkRectangle _tmp1_;
	GdkRectangle _tmp2_ = {0};
#line 130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (rectangle != NULL);
#line 131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->photo;
#line 131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = *rectangle;
#line 131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_unscaled_to_raw_rect (_tmp0_, &_tmp1_, &_tmp2_);
#line 131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _tmp2_;
#line 131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 2450 "EditingTools.c"
}


void
editing_tools_photo_canvas_active_to_unscaled_point (EditingToolsPhotoCanvas* self,
                                                     GdkPoint* active_point,
                                                     GdkPoint* result)
{
	GdkRectangle scaled_position = {0};
	GdkRectangle _tmp0_ = {0};
	Dimensions unscaled_dims = {0};
	Photo* _tmp1_;
	Dimensions _tmp2_ = {0};
	gdouble scale_factor_x = 0.0;
	Dimensions _tmp3_;
	gint _tmp4_;
	GdkRectangle _tmp5_;
	gint _tmp6_;
	gdouble scale_factor_y = 0.0;
	Dimensions _tmp7_;
	gint _tmp8_;
	GdkRectangle _tmp9_;
	gint _tmp10_;
	GdkPoint _result_ = {0};
	GdkPoint _tmp11_ = {0};
	GdkPoint _tmp12_;
	gint _tmp13_;
	GdkPoint _tmp14_;
	gint _tmp15_;
#line 134 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 134 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (active_point != NULL);
#line 135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (self, &_tmp0_);
#line 135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scaled_position = _tmp0_;
#line 136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->photo;
#line 136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp2_);
#line 136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	unscaled_dims = _tmp2_;
#line 138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = unscaled_dims;
#line 138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.width;
#line 138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = scaled_position;
#line 138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.width;
#line 138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scale_factor_x = ((gdouble) _tmp4_) / ((gdouble) _tmp6_);
#line 140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = unscaled_dims;
#line 140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_.height;
#line 140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = scaled_position;
#line 140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.height;
#line 140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scale_factor_y = ((gdouble) _tmp8_) / ((gdouble) _tmp10_);
#line 143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_.x = 0;
#line 143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_ = _tmp11_;
#line 144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = *active_point;
#line 144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.x;
#line 144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.x = (gint) ((((gdouble) _tmp13_) * scale_factor_x) + 0.5);
#line 145 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = *active_point;
#line 145 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_.y;
#line 145 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.y = (gint) ((((gdouble) _tmp15_) * scale_factor_y) + 0.5);
#line 147 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _result_;
#line 147 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 2534 "EditingTools.c"
}


void
editing_tools_photo_canvas_active_to_unscaled_rect (EditingToolsPhotoCanvas* self,
                                                    GdkRectangle* active_rect,
                                                    GdkRectangle* result)
{
	GdkPoint upper_left = {0};
	GdkPoint _tmp0_ = {0};
	GdkPoint lower_right = {0};
	GdkPoint _tmp1_ = {0};
	GdkRectangle _tmp2_;
	gint _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	GdkPoint _tmp6_;
	gint _tmp7_;
	GdkRectangle _tmp8_;
	gint _tmp9_;
	GdkPoint _tmp10_;
	gint _tmp11_;
	GdkRectangle _tmp12_;
	gint _tmp13_;
	GdkPoint _tmp14_;
	GdkPoint _tmp15_ = {0};
	GdkPoint _tmp16_;
	GdkPoint _tmp17_ = {0};
	GdkRectangle unscaled_rect = {0};
	GdkPoint _tmp18_;
	gint _tmp19_;
	GdkPoint _tmp20_;
	gint _tmp21_;
	GdkPoint _tmp22_;
	gint _tmp23_;
	GdkPoint _tmp24_;
	gint _tmp25_;
	GdkPoint _tmp26_;
	gint _tmp27_;
	GdkPoint _tmp28_;
	gint _tmp29_;
#line 150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (active_rect != NULL);
#line 151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_.x = 0;
#line 151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	upper_left = _tmp0_;
#line 152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_.x = 0;
#line 152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	lower_right = _tmp1_;
#line 153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *active_rect;
#line 153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	upper_left.x = _tmp3_;
#line 154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = *active_rect;
#line 154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.y;
#line 154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	upper_left.y = _tmp5_;
#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = upper_left;
#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.x;
#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = *active_rect;
#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.width;
#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	lower_right.x = _tmp7_ + _tmp9_;
#line 156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = upper_left;
#line 156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_.y;
#line 156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = *active_rect;
#line 156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.height;
#line 156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	lower_right.y = _tmp11_ + _tmp13_;
#line 158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = upper_left;
#line 158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_active_to_unscaled_point (self, &_tmp14_, &_tmp15_);
#line 158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	upper_left = _tmp15_;
#line 159 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = lower_right;
#line 159 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_active_to_unscaled_point (self, &_tmp16_, &_tmp17_);
#line 159 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	lower_right = _tmp17_;
#line 161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	memset (&unscaled_rect, 0, sizeof (GdkRectangle));
#line 162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = upper_left;
#line 162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = _tmp18_.x;
#line 162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	unscaled_rect.x = _tmp19_;
#line 163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = upper_left;
#line 163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _tmp20_.y;
#line 163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	unscaled_rect.y = _tmp21_;
#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = lower_right;
#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _tmp22_.x;
#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = upper_left;
#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = _tmp24_.x;
#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	unscaled_rect.width = _tmp23_ - _tmp25_;
#line 165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = lower_right;
#line 165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = _tmp26_.y;
#line 165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = upper_left;
#line 165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = _tmp28_.y;
#line 165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	unscaled_rect.height = _tmp27_ - _tmp29_;
#line 167 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = unscaled_rect;
#line 167 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 2670 "EditingTools.c"
}


void
editing_tools_photo_canvas_user_to_active_point (EditingToolsPhotoCanvas* self,
                                                 GdkPoint* user_point,
                                                 GdkPoint* result)
{
	GdkRectangle active_offsets = {0};
	GdkRectangle _tmp0_ = {0};
	GdkPoint _result_ = {0};
	GdkPoint _tmp1_ = {0};
	GdkPoint _tmp2_;
	gint _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	GdkPoint _tmp6_;
	gint _tmp7_;
	GdkRectangle _tmp8_;
	gint _tmp9_;
#line 170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (user_point != NULL);
#line 171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (self, &_tmp0_);
#line 171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	active_offsets = _tmp0_;
#line 173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_.x = 0;
#line 173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_ = _tmp1_;
#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *user_point;
#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = active_offsets;
#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.x;
#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.x = _tmp3_ - _tmp5_;
#line 175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = *user_point;
#line 175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.y;
#line 175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = active_offsets;
#line 175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.y;
#line 175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.y = _tmp7_ - _tmp9_;
#line 177 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _result_;
#line 177 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 2727 "EditingTools.c"
}


void
editing_tools_photo_canvas_user_to_active_rect (EditingToolsPhotoCanvas* self,
                                                GdkRectangle* user_rect,
                                                GdkRectangle* result)
{
	GdkPoint upper_left = {0};
	GdkPoint _tmp0_ = {0};
	GdkPoint lower_right = {0};
	GdkPoint _tmp1_ = {0};
	GdkRectangle _tmp2_;
	gint _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	GdkPoint _tmp6_;
	gint _tmp7_;
	GdkRectangle _tmp8_;
	gint _tmp9_;
	GdkPoint _tmp10_;
	gint _tmp11_;
	GdkRectangle _tmp12_;
	gint _tmp13_;
	GdkPoint _tmp14_;
	GdkPoint _tmp15_ = {0};
	GdkPoint _tmp16_;
	GdkPoint _tmp17_ = {0};
	GdkRectangle active_rect = {0};
	GdkPoint _tmp18_;
	gint _tmp19_;
	GdkPoint _tmp20_;
	gint _tmp21_;
	GdkPoint _tmp22_;
	gint _tmp23_;
	GdkPoint _tmp24_;
	gint _tmp25_;
	GdkPoint _tmp26_;
	gint _tmp27_;
	GdkPoint _tmp28_;
	gint _tmp29_;
#line 180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (user_rect != NULL);
#line 181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_.x = 0;
#line 181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	upper_left = _tmp0_;
#line 182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_.x = 0;
#line 182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	lower_right = _tmp1_;
#line 183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *user_rect;
#line 183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	upper_left.x = _tmp3_;
#line 184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = *user_rect;
#line 184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.y;
#line 184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	upper_left.y = _tmp5_;
#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = upper_left;
#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.x;
#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = *user_rect;
#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.width;
#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	lower_right.x = _tmp7_ + _tmp9_;
#line 186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = upper_left;
#line 186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_.y;
#line 186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = *user_rect;
#line 186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.height;
#line 186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	lower_right.y = _tmp11_ + _tmp13_;
#line 188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = upper_left;
#line 188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_user_to_active_point (self, &_tmp14_, &_tmp15_);
#line 188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	upper_left = _tmp15_;
#line 189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = lower_right;
#line 189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_user_to_active_point (self, &_tmp16_, &_tmp17_);
#line 189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	lower_right = _tmp17_;
#line 191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	memset (&active_rect, 0, sizeof (GdkRectangle));
#line 192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = upper_left;
#line 192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = _tmp18_.x;
#line 192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	active_rect.x = _tmp19_;
#line 193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = upper_left;
#line 193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _tmp20_.y;
#line 193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	active_rect.y = _tmp21_;
#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = lower_right;
#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _tmp22_.x;
#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = upper_left;
#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = _tmp24_.x;
#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	active_rect.width = _tmp23_ - _tmp25_;
#line 195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = lower_right;
#line 195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = _tmp26_.y;
#line 195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = upper_left;
#line 195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = _tmp28_.y;
#line 195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	active_rect.height = _tmp27_ - _tmp29_;
#line 197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = active_rect;
#line 197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 2863 "EditingTools.c"
}


Photo*
editing_tools_photo_canvas_get_photo (EditingToolsPhotoCanvas* self)
{
	Photo* result = NULL;
	Photo* _tmp0_;
	Photo* _tmp1_;
#line 200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
#line 201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->photo;
#line 201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 2883 "EditingTools.c"
}


GtkWindow*
editing_tools_photo_canvas_get_container (EditingToolsPhotoCanvas* self)
{
	GtkWindow* result = NULL;
	GtkWindow* _tmp0_;
	GtkWindow* _tmp1_;
#line 204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
#line 205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->container;
#line 205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 2903 "EditingTools.c"
}


GdkWindow*
editing_tools_photo_canvas_get_drawing_window (EditingToolsPhotoCanvas* self)
{
	GdkWindow* result = NULL;
	GdkWindow* _tmp0_;
	GdkWindow* _tmp1_;
#line 208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
#line 209 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->drawing_window;
#line 209 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 209 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 209 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 2923 "EditingTools.c"
}


cairo_t*
editing_tools_photo_canvas_get_default_ctx (EditingToolsPhotoCanvas* self)
{
	cairo_t* result = NULL;
	cairo_t* _tmp0_;
	cairo_t* _tmp1_;
#line 212 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
#line 213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->default_ctx;
#line 213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _cairo_reference0 (_tmp0_);
#line 213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 2943 "EditingTools.c"
}


void
editing_tools_photo_canvas_get_surface_dim (EditingToolsPhotoCanvas* self,
                                            Dimensions* result)
{
	Dimensions _tmp0_;
#line 216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->surface_dim;
#line 217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _tmp0_;
#line 217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 2960 "EditingTools.c"
}


void
editing_tools_photo_canvas_get_scaling (EditingToolsPhotoCanvas* self,
                                        Scaling* result)
{
	Dimensions _tmp0_;
	Scaling _tmp1_ = {0};
#line 220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->surface_dim;
#line 221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scaling_for_viewport (&_tmp0_, FALSE, &_tmp1_);
#line 221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _tmp1_;
#line 221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 2980 "EditingTools.c"
}


void
editing_tools_photo_canvas_set_surface (EditingToolsPhotoCanvas* self,
                                        cairo_t* default_ctx,
                                        Dimensions* surface_dim)
{
	cairo_t* _tmp0_;
	Dimensions _tmp1_;
	Dimensions _tmp2_;
#line 224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (default_ctx != NULL);
#line 224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (surface_dim != NULL);
#line 225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = _cairo_reference0 (default_ctx);
#line 225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->default_ctx);
#line 225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->default_ctx = _tmp0_;
#line 226 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = *surface_dim;
#line 226 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->surface_dim = _tmp1_;
#line 228 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *surface_dim;
#line 228 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit (self, editing_tools_photo_canvas_signals[EDITING_TOOLS_PHOTO_CANVAS_NEW_SURFACE_SIGNAL], 0, default_ctx, &_tmp2_);
#line 3012 "EditingTools.c"
}


static gpointer
_cairo_surface_reference0 (gpointer self)
{
#line 232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self ? cairo_surface_reference (self) : NULL;
#line 3021 "EditingTools.c"
}


cairo_surface_t*
editing_tools_photo_canvas_get_scaled_surface (EditingToolsPhotoCanvas* self)
{
	cairo_surface_t* result = NULL;
	cairo_surface_t* _tmp0_;
	cairo_surface_t* _tmp1_;
#line 231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
#line 232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->scaled;
#line 232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _cairo_surface_reference0 (_tmp0_);
#line 232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 3041 "EditingTools.c"
}


GdkPixbuf*
editing_tools_photo_canvas_get_scaled_pixbuf (EditingToolsPhotoCanvas* self)
{
	GdkPixbuf* result = NULL;
	GdkPixbuf* _tmp0_;
	GdkPixbuf* _tmp1_;
#line 235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
#line 236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->scaled_pixbuf;
#line 236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 3061 "EditingTools.c"
}


void
editing_tools_photo_canvas_get_scaled_pixbuf_position (EditingToolsPhotoCanvas* self,
                                                       GdkRectangle* result)
{
	GdkRectangle _tmp0_;
#line 239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 240 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->scaled_position;
#line 240 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _tmp0_;
#line 240 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 3078 "EditingTools.c"
}


void
editing_tools_photo_canvas_resized_pixbuf (EditingToolsPhotoCanvas* self,
                                           Dimensions* old_dim,
                                           GdkPixbuf* scaled,
                                           GdkRectangle* scaled_position)
{
	cairo_t* _tmp0_;
	GdkRectangle _tmp1_;
	cairo_surface_t* _tmp2_;
	GdkPixbuf* _tmp3_;
	GdkRectangle _tmp4_;
	Dimensions _tmp5_;
	GdkRectangle _tmp6_;
#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (old_dim != NULL);
#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (GDK_IS_PIXBUF (scaled));
#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (scaled_position != NULL);
#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->default_ctx;
#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = *scaled_position;
#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = editing_tools_photo_canvas_pixbuf_to_surface (self, _tmp0_, scaled, &_tmp1_);
#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_surface_destroy0 (self->priv->scaled);
#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled = _tmp2_;
#line 245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _g_object_ref0 (scaled);
#line 245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->scaled_pixbuf);
#line 245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_pixbuf = _tmp3_;
#line 246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = *scaled_position;
#line 246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_position = _tmp4_;
#line 248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = *old_dim;
#line 248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = *scaled_position;
#line 248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit (self, editing_tools_photo_canvas_signals[EDITING_TOOLS_PHOTO_CANVAS_RESIZED_SCALED_PIXBUF_SIGNAL], 0, &_tmp5_, scaled, &_tmp6_);
#line 3129 "EditingTools.c"
}


static void
editing_tools_photo_canvas_real_repaint (EditingToolsPhotoCanvas* self)
{
#line 251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_critical ("Type `%s' does not implement abstract method `editing_tools_photo_canvas_repaint'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
#line 251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 3140 "EditingTools.c"
}


void
editing_tools_photo_canvas_repaint (EditingToolsPhotoCanvas* self)
{
#line 251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_PHOTO_CANVAS_GET_CLASS (self)->repaint (self);
#line 3151 "EditingTools.c"
}


void
editing_tools_photo_canvas_paint_pixbuf (EditingToolsPhotoCanvas* self,
                                         GdkPixbuf* pixbuf)
{
	cairo_t* _tmp0_;
	cairo_t* _tmp1_;
	cairo_t* _tmp2_;
	Dimensions _tmp3_;
	gint _tmp4_;
	Dimensions _tmp5_;
	gint _tmp6_;
	cairo_t* _tmp7_;
	cairo_t* _tmp8_;
	GdkRectangle _tmp9_;
	gint _tmp10_;
	GdkRectangle _tmp11_;
	gint _tmp12_;
	cairo_t* _tmp13_;
#line 259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
#line 260 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->default_ctx;
#line 260 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_save (_tmp0_);
#line 263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->default_ctx;
#line 263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	set_source_color_from_string (_tmp1_, "#000");
#line 264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->default_ctx;
#line 264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->surface_dim;
#line 264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.width;
#line 264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->surface_dim;
#line 264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.height;
#line 264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (_tmp2_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp4_, (gdouble) _tmp6_);
#line 265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->default_ctx;
#line 265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (_tmp7_);
#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->priv->default_ctx;
#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->scaled_position;
#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.x;
#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->scaled_position;
#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.y;
#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	paint_pixmap_with_background (_tmp8_, pixbuf, _tmp10_, _tmp12_);
#line 269 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->priv->default_ctx;
#line 269 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_restore (_tmp13_);
#line 3217 "EditingTools.c"
}


void
editing_tools_photo_canvas_paint_surface (EditingToolsPhotoCanvas* self,
                                          cairo_surface_t* surface,
                                          gboolean over)
{
	cairo_t* _tmp0_;
	cairo_t* _tmp3_;
	cairo_surface_t* _tmp4_;
	GdkRectangle _tmp5_;
	gint _tmp6_;
	GdkRectangle _tmp7_;
	gint _tmp8_;
	cairo_t* _tmp9_;
	cairo_t* _tmp10_;
	GdkRectangle _tmp11_;
	gint _tmp12_;
	GdkRectangle _tmp13_;
	gint _tmp14_;
	cairo_t* _tmp15_;
	cairo_t* _tmp16_;
#line 273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (surface != NULL);
#line 274 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->default_ctx;
#line 274 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_save (_tmp0_);
#line 275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (over == FALSE) {
#line 3251 "EditingTools.c"
		cairo_t* _tmp1_;
#line 276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = self->priv->default_ctx;
#line 276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		cairo_set_operator (_tmp1_, CAIRO_OPERATOR_SOURCE);
#line 3257 "EditingTools.c"
	} else {
		cairo_t* _tmp2_;
#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->default_ctx;
#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		cairo_set_operator (_tmp2_, CAIRO_OPERATOR_OVER);
#line 3264 "EditingTools.c"
	}
#line 280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->default_ctx;
#line 280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->scaled;
#line 280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->scaled_position;
#line 280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.x;
#line 280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->scaled_position;
#line 280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_.y;
#line 280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_surface (_tmp3_, _tmp4_, (gdouble) _tmp6_, (gdouble) _tmp8_);
#line 281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->default_ctx;
#line 281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_paint (_tmp9_);
#line 282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->priv->default_ctx;
#line 282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->scaled_position;
#line 282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.x;
#line 282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->priv->scaled_position;
#line 282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_.y;
#line 282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_surface (_tmp10_, surface, (gdouble) _tmp12_, (gdouble) _tmp14_);
#line 283 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->priv->default_ctx;
#line 283 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_paint (_tmp15_);
#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = self->priv->default_ctx;
#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_restore (_tmp16_);
#line 3304 "EditingTools.c"
}


void
editing_tools_photo_canvas_paint_surface_area (EditingToolsPhotoCanvas* self,
                                               cairo_surface_t* surface,
                                               Box* source_area,
                                               gboolean over)
{
	cairo_t* _tmp0_;
	cairo_t* _tmp3_;
	cairo_surface_t* _tmp4_;
	GdkRectangle _tmp5_;
	gint _tmp6_;
	GdkRectangle _tmp7_;
	gint _tmp8_;
	cairo_t* _tmp9_;
	GdkRectangle _tmp10_;
	gint _tmp11_;
	Box _tmp12_;
	gint _tmp13_;
	GdkRectangle _tmp14_;
	gint _tmp15_;
	Box _tmp16_;
	gint _tmp17_;
	cairo_t* _tmp18_;
	cairo_t* _tmp19_;
	GdkRectangle _tmp20_;
	gint _tmp21_;
	GdkRectangle _tmp22_;
	gint _tmp23_;
	cairo_t* _tmp24_;
	GdkRectangle _tmp25_;
	gint _tmp26_;
	Box _tmp27_;
	gint _tmp28_;
	GdkRectangle _tmp29_;
	gint _tmp30_;
	Box _tmp31_;
	gint _tmp32_;
	cairo_t* _tmp33_;
	cairo_t* _tmp34_;
#line 287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (surface != NULL);
#line 287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (source_area != NULL);
#line 288 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->default_ctx;
#line 288 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_save (_tmp0_);
#line 289 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (over == FALSE) {
#line 3359 "EditingTools.c"
		cairo_t* _tmp1_;
#line 290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = self->priv->default_ctx;
#line 290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		cairo_set_operator (_tmp1_, CAIRO_OPERATOR_SOURCE);
#line 3365 "EditingTools.c"
	} else {
		cairo_t* _tmp2_;
#line 292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->default_ctx;
#line 292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		cairo_set_operator (_tmp2_, CAIRO_OPERATOR_OVER);
#line 3372 "EditingTools.c"
	}
#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->default_ctx;
#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->scaled;
#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->scaled_position;
#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.x;
#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->scaled_position;
#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_.y;
#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_surface (_tmp3_, _tmp4_, (gdouble) _tmp6_, (gdouble) _tmp8_);
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->default_ctx;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->priv->scaled_position;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_.x;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = *source_area;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.left;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->scaled_position;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_.y;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = *source_area;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _tmp16_.top;
#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (_tmp9_, (gdouble) (_tmp11_ + _tmp13_), (gdouble) (_tmp15_ + _tmp17_), (gdouble) box_get_width (source_area), (gdouble) box_get_height (source_area));
#line 298 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->priv->default_ctx;
#line 298 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (_tmp18_);
#line 300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = self->priv->default_ctx;
#line 300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = self->priv->scaled_position;
#line 300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _tmp20_.x;
#line 300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = self->priv->scaled_position;
#line 300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _tmp22_.y;
#line 300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_surface (_tmp19_, surface, (gdouble) _tmp21_, (gdouble) _tmp23_);
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = self->priv->default_ctx;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = self->priv->scaled_position;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = _tmp25_.x;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = *source_area;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = _tmp27_.left;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = self->priv->scaled_position;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = _tmp29_.y;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = *source_area;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = _tmp31_.top;
#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (_tmp24_, (gdouble) (_tmp26_ + _tmp28_), (gdouble) (_tmp30_ + _tmp32_), (gdouble) box_get_width (source_area), (gdouble) box_get_height (source_area));
#line 304 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = self->priv->default_ctx;
#line 304 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (_tmp33_);
#line 305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = self->priv->default_ctx;
#line 305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_restore (_tmp34_);
#line 3452 "EditingTools.c"
}


void
editing_tools_photo_canvas_draw_box (EditingToolsPhotoCanvas* self,
                                     cairo_t* ctx,
                                     Box* box)
{
	GdkRectangle rect = {0};
	GdkRectangle _tmp0_ = {0};
	gint _tmp1_;
	GdkRectangle _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	GdkRectangle _tmp5_;
	gint _tmp6_;
	GdkRectangle _tmp7_;
	gint _tmp8_;
	GdkRectangle _tmp9_;
	gint _tmp10_;
	GdkRectangle _tmp11_;
	gint _tmp12_;
	GdkRectangle _tmp13_;
	gint _tmp14_;
#line 308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (box != NULL);
#line 309 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_rectangle (box, &_tmp0_);
#line 309 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	rect = _tmp0_;
#line 310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = rect.x;
#line 310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->scaled_position;
#line 310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	rect.x = _tmp1_ + _tmp3_;
#line 311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = rect.y;
#line 311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->scaled_position;
#line 311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.y;
#line 311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	rect.y = _tmp4_ + _tmp6_;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = rect;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_.x;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = rect;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.y;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = rect;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.width;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = rect;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_.height;
#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (ctx, _tmp8_ + 0.5, _tmp10_ + 0.5, (gdouble) (_tmp12_ - 1), (gdouble) (_tmp14_ - 1));
#line 314 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_stroke (ctx);
#line 3523 "EditingTools.c"
}


void
editing_tools_photo_canvas_draw_text (EditingToolsPhotoCanvas* self,
                                      cairo_t* ctx,
                                      const gchar* text,
                                      gint x,
                                      gint y,
                                      gboolean use_scaled_pos)
{
	cairo_text_extents_t extents = {0};
	cairo_text_extents_t _tmp4_ = {0};
	cairo_text_extents_t _tmp5_;
	gdouble _tmp6_;
	gint pane_border = 0;
	cairo_text_extents_t _tmp7_;
	gdouble _tmp8_;
	cairo_text_extents_t _tmp9_;
	gdouble _tmp10_;
	cairo_text_extents_t _tmp11_;
	gdouble _tmp12_;
#line 317 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 317 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 317 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (text != NULL);
#line 318 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (use_scaled_pos) {
#line 3554 "EditingTools.c"
		GdkRectangle _tmp0_;
		gint _tmp1_;
		GdkRectangle _tmp2_;
		gint _tmp3_;
#line 319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = self->priv->scaled_position;
#line 319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = _tmp0_.x;
#line 319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		x = x + _tmp1_;
#line 320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->scaled_position;
#line 320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = _tmp2_.y;
#line 320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		y = y + _tmp3_;
#line 3571 "EditingTools.c"
	}
#line 323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_text_extents (ctx, text, &_tmp4_);
#line 323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	extents = _tmp4_;
#line 324 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = extents;
#line 324 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.width;
#line 324 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	x = x - (((gint) _tmp6_) / 2);
#line 326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	set_source_color_from_string (ctx, RESOURCES_ONIMAGE_FONT_BACKGROUND);
#line 328 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pane_border = 5;
#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = extents;
#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_.height;
#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = extents;
#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.width;
#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = extents;
#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.height;
#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (ctx, (gdouble) (x - pane_border), (y - pane_border) - _tmp8_, _tmp10_ + (2 * pane_border), _tmp12_ + (2 * pane_border));
#line 332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (ctx);
#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_move_to (ctx, (gdouble) x, (gdouble) y);
#line 335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	set_source_color_from_string (ctx, RESOURCES_ONIMAGE_FONT_COLOR);
#line 336 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_show_text (ctx, text);
#line 3609 "EditingTools.c"
}


/**
     * Draw a horizontal line into the specified Cairo context at the specified position, taking
     * into account the scaled position of the image unless directed otherwise.
     *
     * @param ctx The drawing context of the surface we're drawing to.
     * @param x The horizontal position to place the line at.
     * @param y The vertical position to place the line at.
     * @param width The length of the line.
     * @param use_scaled_pos Whether to use absolute window positioning or take into account the 
     *      position of the scaled image.
     */
void
editing_tools_photo_canvas_draw_horizontal_line (EditingToolsPhotoCanvas* self,
                                                 cairo_t* ctx,
                                                 gint x,
                                                 gint y,
                                                 gint width,
                                                 gboolean use_scaled_pos)
{
#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 351 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (use_scaled_pos) {
#line 3638 "EditingTools.c"
		GdkRectangle _tmp0_;
		gint _tmp1_;
		GdkRectangle _tmp2_;
		gint _tmp3_;
#line 352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = self->priv->scaled_position;
#line 352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = _tmp0_.x;
#line 352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		x = x + _tmp1_;
#line 353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->scaled_position;
#line 353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = _tmp2_.y;
#line 353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		y = y + _tmp3_;
#line 3655 "EditingTools.c"
	}
#line 356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_move_to (ctx, x + 0.5, y + 0.5);
#line 357 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_line_to (ctx, (gdouble) ((x + width) - 1), y + 0.5);
#line 358 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_stroke (ctx);
#line 3663 "EditingTools.c"
}


/**
     * Draw a vertical line into the specified Cairo context at the specified position, taking
     * into account the scaled position of the image unless directed otherwise.
     *
     * @param ctx The drawing context of the surface we're drawing to.
     * @param x The horizontal position to place the line at.
     * @param y The vertical position to place the line at.
     * @param width The length of the line.
     * @param use_scaled_pos Whether to use absolute window positioning or take into account the 
     *      position of the scaled image.
     */
void
editing_tools_photo_canvas_draw_vertical_line (EditingToolsPhotoCanvas* self,
                                               cairo_t* ctx,
                                               gint x,
                                               gint y,
                                               gint height,
                                               gboolean use_scaled_pos)
{
#line 372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (use_scaled_pos) {
#line 3692 "EditingTools.c"
		GdkRectangle _tmp0_;
		gint _tmp1_;
		GdkRectangle _tmp2_;
		gint _tmp3_;
#line 374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = self->priv->scaled_position;
#line 374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = _tmp0_.x;
#line 374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		x = x + _tmp1_;
#line 375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->scaled_position;
#line 375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = _tmp2_.y;
#line 375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		y = y + _tmp3_;
#line 3709 "EditingTools.c"
	}
#line 378 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_move_to (ctx, x + 0.5, y + 0.5);
#line 379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_line_to (ctx, x + 0.5, (gdouble) ((y + height) - 1));
#line 380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_stroke (ctx);
#line 3717 "EditingTools.c"
}


void
editing_tools_photo_canvas_erase_horizontal_line (EditingToolsPhotoCanvas* self,
                                                  gint x,
                                                  gint y,
                                                  gint width)
{
	cairo_t* _tmp0_;
	cairo_t* _tmp1_;
	cairo_t* _tmp2_;
	cairo_surface_t* _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	GdkRectangle _tmp6_;
	gint _tmp7_;
	cairo_t* _tmp8_;
	GdkRectangle _tmp9_;
	gint _tmp10_;
	GdkRectangle _tmp11_;
	gint _tmp12_;
	cairo_t* _tmp13_;
	cairo_t* _tmp14_;
#line 383 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 384 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->default_ctx;
#line 384 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_save (_tmp0_);
#line 386 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->default_ctx;
#line 386 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_operator (_tmp1_, CAIRO_OPERATOR_SOURCE);
#line 387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->default_ctx;
#line 387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->scaled;
#line 387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->scaled_position;
#line 387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.x;
#line 387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->scaled_position;
#line 387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.y;
#line 387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_surface (_tmp2_, _tmp3_, (gdouble) _tmp5_, (gdouble) _tmp7_);
#line 388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->priv->default_ctx;
#line 388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->scaled_position;
#line 388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.x;
#line 388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->scaled_position;
#line 388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.y;
#line 388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (_tmp8_, (gdouble) (_tmp10_ + x), (gdouble) (_tmp12_ + y), (gdouble) (width - 1), (gdouble) 1);
#line 390 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->priv->default_ctx;
#line 390 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (_tmp13_);
#line 392 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->default_ctx;
#line 392 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_restore (_tmp14_);
#line 3786 "EditingTools.c"
}


void
editing_tools_photo_canvas_draw_circle (EditingToolsPhotoCanvas* self,
                                        cairo_t* ctx,
                                        gint active_center_x,
                                        gint active_center_y,
                                        gint radius)
{
	gint center_x = 0;
	GdkRectangle _tmp0_;
	gint _tmp1_;
	gint center_y = 0;
	GdkRectangle _tmp2_;
	gint _tmp3_;
#line 395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->scaled_position;
#line 397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_.x;
#line 397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	center_x = active_center_x + _tmp1_;
#line 398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->scaled_position;
#line 398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.y;
#line 398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	center_y = active_center_y + _tmp3_;
#line 400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_arc (ctx, (gdouble) center_x, (gdouble) center_y, (gdouble) radius, (gdouble) 0, 2 * G_PI);
#line 401 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_stroke (ctx);
#line 3823 "EditingTools.c"
}


void
editing_tools_photo_canvas_erase_vertical_line (EditingToolsPhotoCanvas* self,
                                                gint x,
                                                gint y,
                                                gint height)
{
	cairo_t* _tmp0_;
	cairo_t* _tmp1_;
	cairo_t* _tmp2_;
	cairo_surface_t* _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	GdkRectangle _tmp6_;
	gint _tmp7_;
	cairo_t* _tmp8_;
	GdkRectangle _tmp9_;
	gint _tmp10_;
	GdkRectangle _tmp11_;
	gint _tmp12_;
	cairo_t* _tmp13_;
	cairo_t* _tmp14_;
#line 404 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->default_ctx;
#line 405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_save (_tmp0_);
#line 411 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->default_ctx;
#line 411 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_operator (_tmp1_, CAIRO_OPERATOR_SOURCE);
#line 412 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->default_ctx;
#line 412 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->scaled;
#line 412 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->scaled_position;
#line 412 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.x;
#line 412 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->scaled_position;
#line 412 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.y;
#line 412 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_surface (_tmp2_, _tmp3_, (gdouble) _tmp5_, (gdouble) _tmp7_);
#line 413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->priv->default_ctx;
#line 413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->scaled_position;
#line 413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.x;
#line 413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->scaled_position;
#line 413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.y;
#line 413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (_tmp8_, (gdouble) (_tmp10_ + x), (gdouble) (_tmp12_ + y), (gdouble) 1, (gdouble) height);
#line 415 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->priv->default_ctx;
#line 415 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (_tmp13_);
#line 417 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->default_ctx;
#line 417 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_restore (_tmp14_);
#line 3892 "EditingTools.c"
}


void
editing_tools_photo_canvas_erase_box (EditingToolsPhotoCanvas* self,
                                      Box* box)
{
	Box _tmp0_;
	gint _tmp1_;
	Box _tmp2_;
	gint _tmp3_;
	Box _tmp4_;
	gint _tmp5_;
	Box _tmp6_;
	gint _tmp7_;
	Box _tmp8_;
	gint _tmp9_;
	Box _tmp10_;
	gint _tmp11_;
	Box _tmp12_;
	gint _tmp13_;
	Box _tmp14_;
	gint _tmp15_;
#line 420 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 420 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (box != NULL);
#line 421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = *box;
#line 421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_.left;
#line 421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *box;
#line 421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.top;
#line 421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_erase_horizontal_line (self, _tmp1_, _tmp3_, box_get_width (box));
#line 422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = *box;
#line 422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.left;
#line 422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = *box;
#line 422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.bottom;
#line 422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_erase_horizontal_line (self, _tmp5_, _tmp7_, box_get_width (box));
#line 424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = *box;
#line 424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.left;
#line 424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = *box;
#line 424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_.top;
#line 424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_erase_vertical_line (self, _tmp9_, _tmp11_, box_get_height (box));
#line 425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = *box;
#line 425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.right;
#line 425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = *box;
#line 425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_.top;
#line 425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_erase_vertical_line (self, _tmp13_, _tmp15_, box_get_height (box));
#line 3960 "EditingTools.c"
}


void
editing_tools_photo_canvas_invalidate_area (EditingToolsPhotoCanvas* self,
                                            Box* area)
{
	GdkRectangle rect = {0};
	GdkRectangle _tmp0_ = {0};
	gint _tmp1_;
	GdkRectangle _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	GdkRectangle _tmp5_;
	gint _tmp6_;
	GdkWindow* _tmp7_;
	GdkRectangle _tmp8_;
#line 428 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
#line 428 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (area != NULL);
#line 429 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_rectangle (area, &_tmp0_);
#line 429 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	rect = _tmp0_;
#line 430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = rect.x;
#line 430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->scaled_position;
#line 430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	rect.x = _tmp1_ + _tmp3_;
#line 431 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = rect.y;
#line 431 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->scaled_position;
#line 431 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.y;
#line 431 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	rect.y = _tmp4_ + _tmp6_;
#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->drawing_window;
#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = rect;
#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gdk_window_invalidate_rect (_tmp7_, &_tmp8_, FALSE);
#line 4008 "EditingTools.c"
}


static cairo_surface_t*
editing_tools_photo_canvas_pixbuf_to_surface (EditingToolsPhotoCanvas* self,
                                              cairo_t* default_ctx,
                                              GdkPixbuf* pixbuf,
                                              GdkRectangle* pos)
{
	cairo_surface_t* result = NULL;
	cairo_surface_t* surface = NULL;
	cairo_surface_t* _tmp0_;
	GdkRectangle _tmp1_;
	gint _tmp2_;
	GdkRectangle _tmp3_;
	gint _tmp4_;
	cairo_surface_t* _tmp5_;
	cairo_t* ctx = NULL;
	cairo_t* _tmp6_;
#line 436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
#line 436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (default_ctx != NULL, NULL);
#line 436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
#line 436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (pos != NULL, NULL);
#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = cairo_get_target (default_ctx);
#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = *pos;
#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_.width;
#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = *pos;
#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.height;
#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = cairo_surface_create_similar (_tmp0_, CAIRO_CONTENT_COLOR_ALPHA, _tmp2_, _tmp4_);
#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	surface = _tmp5_;
#line 440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = cairo_create (surface);
#line 440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	ctx = _tmp6_;
#line 441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	paint_pixmap_with_background (ctx, pixbuf, 0, 0);
#line 442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_paint (ctx);
#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = surface;
#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (ctx);
#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 4064 "EditingTools.c"
}


static void
g_cclosure_user_marshal_VOID__POINTER_BOXED (GClosure * closure,
                                             GValue * return_value,
                                             guint n_param_values,
                                             const GValue * param_values,
                                             gpointer invocation_hint,
                                             gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__POINTER_BOXED) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
	register GMarshalFunc_VOID__POINTER_BOXED callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (n_param_values == 3);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data1 = closure->data;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data2 = param_values->data[0].v_pointer;
#line 4090 "EditingTools.c"
	} else {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data1 = param_values->data[0].v_pointer;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data2 = closure->data;
#line 4096 "EditingTools.c"
	}
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	callback = (GMarshalFunc_VOID__POINTER_BOXED) (marshal_data ? marshal_data : cc->callback);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	callback (data1, g_value_get_pointer (param_values + 1), g_value_get_boxed (param_values + 2), data2);
#line 4102 "EditingTools.c"
}


static void
g_cclosure_user_marshal_VOID__BOXED_OBJECT_BOXED (GClosure * closure,
                                                  GValue * return_value,
                                                  guint n_param_values,
                                                  const GValue * param_values,
                                                  gpointer invocation_hint,
                                                  gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__BOXED_OBJECT_BOXED) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
	register GMarshalFunc_VOID__BOXED_OBJECT_BOXED callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (n_param_values == 4);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data1 = closure->data;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data2 = param_values->data[0].v_pointer;
#line 4128 "EditingTools.c"
	} else {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data1 = param_values->data[0].v_pointer;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data2 = closure->data;
#line 4134 "EditingTools.c"
	}
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	callback = (GMarshalFunc_VOID__BOXED_OBJECT_BOXED) (marshal_data ? marshal_data : cc->callback);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	callback (data1, g_value_get_boxed (param_values + 1), g_value_get_object (param_values + 2), g_value_get_boxed (param_values + 3), data2);
#line 4140 "EditingTools.c"
}


static void
editing_tools_value_photo_canvas_init (GValue* value)
{
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	value->data[0].v_pointer = NULL;
#line 4149 "EditingTools.c"
}


static void
editing_tools_value_photo_canvas_free_value (GValue* value)
{
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (value->data[0].v_pointer) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_unref (value->data[0].v_pointer);
#line 4160 "EditingTools.c"
	}
}


static void
editing_tools_value_photo_canvas_copy_value (const GValue* src_value,
                                             GValue* dest_value)
{
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (src_value->data[0].v_pointer) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		dest_value->data[0].v_pointer = editing_tools_photo_canvas_ref (src_value->data[0].v_pointer);
#line 4173 "EditingTools.c"
	} else {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		dest_value->data[0].v_pointer = NULL;
#line 4177 "EditingTools.c"
	}
}


static gpointer
editing_tools_value_photo_canvas_peek_pointer (const GValue* value)
{
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return value->data[0].v_pointer;
#line 4187 "EditingTools.c"
}


static gchar*
editing_tools_value_photo_canvas_collect_value (GValue* value,
                                                guint n_collect_values,
                                                GTypeCValue* collect_values,
                                                guint collect_flags)
{
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (collect_values[0].v_pointer) {
#line 4199 "EditingTools.c"
		EditingToolsPhotoCanvas * object;
		object = collect_values[0].v_pointer;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (object->parent_instance.g_class == NULL) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 4206 "EditingTools.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.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 4210 "EditingTools.c"
		}
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = editing_tools_photo_canvas_ref (object);
#line 4214 "EditingTools.c"
	} else {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 4218 "EditingTools.c"
	}
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return NULL;
#line 4222 "EditingTools.c"
}


static gchar*
editing_tools_value_photo_canvas_lcopy_value (const GValue* value,
                                              guint n_collect_values,
                                              GTypeCValue* collect_values,
                                              guint collect_flags)
{
	EditingToolsPhotoCanvas ** object_p;
	object_p = collect_values[0].v_pointer;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!object_p) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 4238 "EditingTools.c"
	}
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!value->data[0].v_pointer) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = NULL;
#line 4244 "EditingTools.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = value->data[0].v_pointer;
#line 4248 "EditingTools.c"
	} else {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = editing_tools_photo_canvas_ref (value->data[0].v_pointer);
#line 4252 "EditingTools.c"
	}
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return NULL;
#line 4256 "EditingTools.c"
}


GParamSpec*
editing_tools_param_spec_photo_canvas (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags)
{
	EditingToolsParamSpecPhotoCanvas* spec;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (g_type_is_a (object_type, EDITING_TOOLS_TYPE_PHOTO_CANVAS), NULL);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return G_PARAM_SPEC (spec);
#line 4276 "EditingTools.c"
}


gpointer
editing_tools_value_get_photo_canvas (const GValue* value)
{
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_PHOTO_CANVAS), NULL);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return value->data[0].v_pointer;
#line 4287 "EditingTools.c"
}


void
editing_tools_value_set_photo_canvas (GValue* value,
                                      gpointer v_object)
{
	EditingToolsPhotoCanvas * old;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_PHOTO_CANVAS));
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old = value->data[0].v_pointer;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (v_object) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_TYPE_PHOTO_CANVAS));
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = v_object;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_ref (value->data[0].v_pointer);
#line 4310 "EditingTools.c"
	} else {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 4314 "EditingTools.c"
	}
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (old) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_unref (old);
#line 4320 "EditingTools.c"
	}
}


void
editing_tools_value_take_photo_canvas (GValue* value,
                                       gpointer v_object)
{
	EditingToolsPhotoCanvas * old;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_PHOTO_CANVAS));
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old = value->data[0].v_pointer;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (v_object) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_TYPE_PHOTO_CANVAS));
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = v_object;
#line 4342 "EditingTools.c"
	} else {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 4346 "EditingTools.c"
	}
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (old) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_unref (old);
#line 4352 "EditingTools.c"
	}
}


static void
editing_tools_photo_canvas_class_init (EditingToolsPhotoCanvasClass * klass)
{
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_parent_class = g_type_class_peek_parent (klass);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsPhotoCanvasClass *) klass)->finalize = editing_tools_photo_canvas_finalize;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsPhotoCanvasPrivate));
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsPhotoCanvasClass *) klass)->repaint = (void (*) (EditingToolsPhotoCanvas *)) editing_tools_photo_canvas_real_repaint;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_signals[EDITING_TOOLS_PHOTO_CANVAS_NEW_SURFACE_SIGNAL] = g_signal_new ("new-surface", EDITING_TOOLS_TYPE_PHOTO_CANVAS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__POINTER_BOXED, G_TYPE_NONE, 2, G_TYPE_POINTER, TYPE_DIMENSIONS);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_signals[EDITING_TOOLS_PHOTO_CANVAS_RESIZED_SCALED_PIXBUF_SIGNAL] = g_signal_new ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOXED_OBJECT_BOXED, G_TYPE_NONE, 3, TYPE_DIMENSIONS, gdk_pixbuf_get_type (), gdk_rectangle_get_type ());
#line 4372 "EditingTools.c"
}


static void
editing_tools_photo_canvas_instance_init (EditingToolsPhotoCanvas * self)
{
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_PHOTO_CANVAS_GET_PRIVATE (self);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->ref_count = 1;
#line 4383 "EditingTools.c"
}


static void
editing_tools_photo_canvas_finalize (EditingToolsPhotoCanvas * obj)
{
	EditingToolsPhotoCanvas * self;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvas);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_destroy (self);
#line 104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->container);
#line 105 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->drawing_window);
#line 106 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->photo);
#line 107 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->default_ctx);
#line 109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_surface_destroy0 (self->priv->scaled);
#line 110 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->scaled_pixbuf);
#line 4407 "EditingTools.c"
}


GType
editing_tools_photo_canvas_get_type (void)
{
	static volatile gsize editing_tools_photo_canvas_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_photo_canvas_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { editing_tools_value_photo_canvas_init, editing_tools_value_photo_canvas_free_value, editing_tools_value_photo_canvas_copy_value, editing_tools_value_photo_canvas_peek_pointer, "p", editing_tools_value_photo_canvas_collect_value, "p", editing_tools_value_photo_canvas_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsPhotoCanvasClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_photo_canvas_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsPhotoCanvas), 0, (GInstanceInitFunc) editing_tools_photo_canvas_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 editing_tools_photo_canvas_type_id;
		editing_tools_photo_canvas_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EditingToolsPhotoCanvas", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&editing_tools_photo_canvas_type_id__volatile, editing_tools_photo_canvas_type_id);
	}
	return editing_tools_photo_canvas_type_id__volatile;
}


gpointer
editing_tools_photo_canvas_ref (gpointer instance)
{
	EditingToolsPhotoCanvas * self;
	self = instance;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_atomic_int_inc (&self->ref_count);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return instance;
#line 4436 "EditingTools.c"
}


void
editing_tools_photo_canvas_unref (gpointer instance)
{
	EditingToolsPhotoCanvas * self;
	self = instance;
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		EDITING_TOOLS_PHOTO_CANVAS_GET_CLASS (self)->finalize (self);
#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 4451 "EditingTools.c"
	}
}


EditingToolsEditingTool*
editing_tools_editing_tool_construct (GType object_type,
                                      const gchar* name)
{
	EditingToolsEditingTool* self = NULL;
	gchar* _tmp0_;
#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsEditingTool*) g_type_create_instance (object_type);
#line 469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = g_strdup (name);
#line 469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_free0 (self->name);
#line 469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->name = _tmp0_;
#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 4474 "EditingTools.c"
}


static gpointer
_editing_tools_photo_canvas_ref0 (gpointer self)
{
#line 481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self ? editing_tools_photo_canvas_ref (self) : NULL;
#line 4483 "EditingTools.c"
}


static gboolean
_editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event (GtkWidget* _sender,
                                                                    GdkEventKey* event,
                                                                    gpointer self)
{
	gboolean result;
	result = editing_tools_editing_tool_on_keypress ((EditingToolsEditingTool*) self, event);
#line 485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 4496 "EditingTools.c"
}


static void
editing_tools_editing_tool_real_activate (EditingToolsEditingTool* self,
                                          EditingToolsPhotoCanvas* canvas)
{
	EditingToolsPhotoCanvas* _tmp0_;
	EditingToolsEditingToolWindow* _tmp1_;
	EditingToolsPhotoCanvas* _tmp2_;
	EditingToolsEditingToolWindow* _tmp3_;
	EditingToolsEditingToolWindow* _tmp4_;
#line 476 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->canvas;
#line 478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_assert (_tmp0_ == NULL, "this.canvas == null");
#line 479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->tool_window;
#line 479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_assert (_tmp1_ == NULL, "tool_window == null");
#line 481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _editing_tools_photo_canvas_ref0 (canvas);
#line 481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_editing_tools_photo_canvas_unref0 (self->canvas);
#line 481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->canvas = _tmp2_;
#line 483 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = editing_tools_editing_tool_get_tool_window (self);
#line 483 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->tool_window);
#line 483 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->tool_window = _tmp3_;
#line 484 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->tool_window;
#line 484 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp4_ != NULL) {
#line 4535 "EditingTools.c"
		EditingToolsEditingToolWindow* _tmp5_;
#line 485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = self->priv->tool_window;
#line 485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), "key-press-event", (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, self);
#line 4541 "EditingTools.c"
	}
#line 487 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit (self, editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_ACTIVATED_SIGNAL], 0);
#line 4545 "EditingTools.c"
}


void
editing_tools_editing_tool_activate (EditingToolsEditingTool* self,
                                     EditingToolsPhotoCanvas* canvas)
{
#line 476 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
#line 476 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->activate (self, canvas);
#line 4557 "EditingTools.c"
}


static void
editing_tools_editing_tool_real_deactivate (EditingToolsEditingTool* self)
{
	gboolean _tmp0_ = FALSE;
	EditingToolsPhotoCanvas* _tmp1_;
	EditingToolsEditingToolWindow* _tmp3_;
#line 493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->canvas;
#line 493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_ == NULL) {
#line 4571 "EditingTools.c"
		EditingToolsEditingToolWindow* _tmp2_;
#line 493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->tool_window;
#line 493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = _tmp2_ == NULL;
#line 4577 "EditingTools.c"
	} else {
#line 493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = FALSE;
#line 4581 "EditingTools.c"
	}
#line 493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_) {
#line 494 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 4587 "EditingTools.c"
	}
#line 496 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_editing_tools_photo_canvas_unref0 (self->canvas);
#line 496 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->canvas = NULL;
#line 498 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->tool_window;
#line 498 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_ != NULL) {
#line 4597 "EditingTools.c"
		EditingToolsEditingToolWindow* _tmp4_;
		guint _tmp5_;
#line 499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = self->priv->tool_window;
#line 499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_parse_name ("key-press-event", gtk_widget_get_type (), &_tmp5_, NULL, FALSE);
#line 499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, self);
#line 500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (self->priv->tool_window);
#line 500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->tool_window = NULL;
#line 4610 "EditingTools.c"
	}
#line 503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit (self, editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_DEACTIVATED_SIGNAL], 0);
#line 4614 "EditingTools.c"
}


void
editing_tools_editing_tool_deactivate (EditingToolsEditingTool* self)
{
#line 491 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
#line 491 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->deactivate (self);
#line 4625 "EditingTools.c"
}


gboolean
editing_tools_editing_tool_is_activated (EditingToolsEditingTool* self)
{
	gboolean result = FALSE;
	EditingToolsPhotoCanvas* _tmp0_;
#line 506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), FALSE);
#line 507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->canvas;
#line 507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp0_ != NULL;
#line 507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 4642 "EditingTools.c"
}


static EditingToolsEditingToolWindow*
editing_tools_editing_tool_real_get_tool_window (EditingToolsEditingTool* self)
{
	EditingToolsEditingToolWindow* result = NULL;
#line 511 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = NULL;
#line 511 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 4654 "EditingTools.c"
}


EditingToolsEditingToolWindow*
editing_tools_editing_tool_get_tool_window (EditingToolsEditingTool* self)
{
#line 510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), NULL);
#line 510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->get_tool_window (self);
#line 4665 "EditingTools.c"
}


static GdkPixbuf*
editing_tools_editing_tool_real_get_display_pixbuf (EditingToolsEditingTool* self,
                                                    Scaling* scaling,
                                                    Photo* photo,
                                                    Dimensions* max_dim,
                                                    GError** error)
{
	Dimensions _vala_max_dim = {0};
	GdkPixbuf* result = NULL;
#line 525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (scaling != NULL, NULL);
#line 525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), NULL);
#line 527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	dimensions_init (&_vala_max_dim, 0, 0);
#line 529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = NULL;
#line 529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (max_dim) {
#line 529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*max_dim = _vala_max_dim;
#line 4690 "EditingTools.c"
	}
#line 529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 4694 "EditingTools.c"
}


GdkPixbuf*
editing_tools_editing_tool_get_display_pixbuf (EditingToolsEditingTool* self,
                                               Scaling* scaling,
                                               Photo* photo,
                                               Dimensions* max_dim,
                                               GError** error)
{
#line 525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), NULL);
#line 525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->get_display_pixbuf (self, scaling, photo, max_dim, error);
#line 4709 "EditingTools.c"
}


static void
editing_tools_editing_tool_real_on_left_click (EditingToolsEditingTool* self,
                                               gint x,
                                               gint y)
{
}


void
editing_tools_editing_tool_on_left_click (EditingToolsEditingTool* self,
                                          gint x,
                                          gint y)
{
#line 532 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
#line 532 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_left_click (self, x, y);
#line 4730 "EditingTools.c"
}


static void
editing_tools_editing_tool_real_on_left_released (EditingToolsEditingTool* self,
                                                  gint x,
                                                  gint y)
{
}


void
editing_tools_editing_tool_on_left_released (EditingToolsEditingTool* self,
                                             gint x,
                                             gint y)
{
#line 535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
#line 535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_left_released (self, x, y);
#line 4751 "EditingTools.c"
}


static void
editing_tools_editing_tool_real_on_motion (EditingToolsEditingTool* self,
                                           gint x,
                                           gint y,
                                           GdkModifierType mask)
{
}


void
editing_tools_editing_tool_on_motion (EditingToolsEditingTool* self,
                                      gint x,
                                      gint y,
                                      GdkModifierType mask)
{
#line 538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
#line 538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_motion (self, x, y, mask);
#line 4774 "EditingTools.c"
}


static gboolean
editing_tools_editing_tool_real_on_leave_notify_event (EditingToolsEditingTool* self)
{
	gboolean result = FALSE;
#line 542 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = FALSE;
#line 542 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 4786 "EditingTools.c"
}


gboolean
editing_tools_editing_tool_on_leave_notify_event (EditingToolsEditingTool* self)
{
#line 541 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), FALSE);
#line 541 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_leave_notify_event (self);
#line 4797 "EditingTools.c"
}


static gboolean
editing_tools_editing_tool_real_on_keypress (EditingToolsEditingTool* self,
                                             GdkEventKey* event)
{
	gboolean result = FALSE;
	guint _tmp0_;
	const gchar* _tmp1_;
#line 545 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = event->keyval;
#line 547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = gdk_keyval_name (_tmp0_);
#line 547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (g_strcmp0 (_tmp1_, "Escape") == 0) {
#line 548 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_editing_tool_notify_cancel (self);
#line 550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = TRUE;
#line 550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 4822 "EditingTools.c"
	}
#line 553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = FALSE;
#line 553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 4828 "EditingTools.c"
}


gboolean
editing_tools_editing_tool_on_keypress (EditingToolsEditingTool* self,
                                        GdkEventKey* event)
{
#line 545 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), FALSE);
#line 545 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_keypress (self, event);
#line 4840 "EditingTools.c"
}


static void
editing_tools_editing_tool_real_paint (EditingToolsEditingTool* self,
                                       cairo_t* ctx)
{
#line 556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 4850 "EditingTools.c"
}


void
editing_tools_editing_tool_paint (EditingToolsEditingTool* self,
                                  cairo_t* ctx)
{
#line 556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
#line 556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->paint (self, ctx);
#line 4862 "EditingTools.c"
}


void
editing_tools_editing_tool_notify_cancel (EditingToolsEditingTool* self)
{
#line 560 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
#line 561 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit (self, editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_CANCELLED_SIGNAL], 0);
#line 4873 "EditingTools.c"
}


static void
g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOXED_BOOLEAN (GClosure * closure,
                                                           GValue * return_value,
                                                           guint n_param_values,
                                                           const GValue * param_values,
                                                           gpointer invocation_hint,
                                                           gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_BOXED_BOOLEAN) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gboolean arg_4, gpointer data2);
	register GMarshalFunc_VOID__OBJECT_OBJECT_BOXED_BOOLEAN callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (n_param_values == 5);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data1 = closure->data;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data2 = param_values->data[0].v_pointer;
#line 4899 "EditingTools.c"
	} else {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data1 = param_values->data[0].v_pointer;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		data2 = closure->data;
#line 4905 "EditingTools.c"
	}
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	callback = (GMarshalFunc_VOID__OBJECT_OBJECT_BOXED_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_boxed (param_values + 3), g_value_get_boolean (param_values + 4), data2);
#line 4911 "EditingTools.c"
}


static void
editing_tools_value_editing_tool_init (GValue* value)
{
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	value->data[0].v_pointer = NULL;
#line 4920 "EditingTools.c"
}


static void
editing_tools_value_editing_tool_free_value (GValue* value)
{
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (value->data[0].v_pointer) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_editing_tool_unref (value->data[0].v_pointer);
#line 4931 "EditingTools.c"
	}
}


static void
editing_tools_value_editing_tool_copy_value (const GValue* src_value,
                                             GValue* dest_value)
{
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (src_value->data[0].v_pointer) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		dest_value->data[0].v_pointer = editing_tools_editing_tool_ref (src_value->data[0].v_pointer);
#line 4944 "EditingTools.c"
	} else {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		dest_value->data[0].v_pointer = NULL;
#line 4948 "EditingTools.c"
	}
}


static gpointer
editing_tools_value_editing_tool_peek_pointer (const GValue* value)
{
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return value->data[0].v_pointer;
#line 4958 "EditingTools.c"
}


static gchar*
editing_tools_value_editing_tool_collect_value (GValue* value,
                                                guint n_collect_values,
                                                GTypeCValue* collect_values,
                                                guint collect_flags)
{
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (collect_values[0].v_pointer) {
#line 4970 "EditingTools.c"
		EditingToolsEditingTool * object;
		object = collect_values[0].v_pointer;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (object->parent_instance.g_class == NULL) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 4977 "EditingTools.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.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 4981 "EditingTools.c"
		}
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = editing_tools_editing_tool_ref (object);
#line 4985 "EditingTools.c"
	} else {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 4989 "EditingTools.c"
	}
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return NULL;
#line 4993 "EditingTools.c"
}


static gchar*
editing_tools_value_editing_tool_lcopy_value (const GValue* value,
                                              guint n_collect_values,
                                              GTypeCValue* collect_values,
                                              guint collect_flags)
{
	EditingToolsEditingTool ** object_p;
	object_p = collect_values[0].v_pointer;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!object_p) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 5009 "EditingTools.c"
	}
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!value->data[0].v_pointer) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = NULL;
#line 5015 "EditingTools.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = value->data[0].v_pointer;
#line 5019 "EditingTools.c"
	} else {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = editing_tools_editing_tool_ref (value->data[0].v_pointer);
#line 5023 "EditingTools.c"
	}
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return NULL;
#line 5027 "EditingTools.c"
}


GParamSpec*
editing_tools_param_spec_editing_tool (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags)
{
	EditingToolsParamSpecEditingTool* spec;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (g_type_is_a (object_type, EDITING_TOOLS_TYPE_EDITING_TOOL), NULL);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return G_PARAM_SPEC (spec);
#line 5047 "EditingTools.c"
}


gpointer
editing_tools_value_get_editing_tool (const GValue* value)
{
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_EDITING_TOOL), NULL);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return value->data[0].v_pointer;
#line 5058 "EditingTools.c"
}


void
editing_tools_value_set_editing_tool (GValue* value,
                                      gpointer v_object)
{
	EditingToolsEditingTool * old;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_EDITING_TOOL));
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old = value->data[0].v_pointer;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (v_object) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_TYPE_EDITING_TOOL));
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = v_object;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_editing_tool_ref (value->data[0].v_pointer);
#line 5081 "EditingTools.c"
	} else {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 5085 "EditingTools.c"
	}
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (old) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_editing_tool_unref (old);
#line 5091 "EditingTools.c"
	}
}


void
editing_tools_value_take_editing_tool (GValue* value,
                                       gpointer v_object)
{
	EditingToolsEditingTool * old;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_EDITING_TOOL));
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old = value->data[0].v_pointer;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (v_object) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_TYPE_EDITING_TOOL));
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = v_object;
#line 5113 "EditingTools.c"
	} else {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 5117 "EditingTools.c"
	}
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (old) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_editing_tool_unref (old);
#line 5123 "EditingTools.c"
	}
}


static void
editing_tools_editing_tool_class_init (EditingToolsEditingToolClass * klass)
{
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_parent_class = g_type_class_peek_parent (klass);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_editing_tool_finalize;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsEditingToolPrivate));
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->activate = (void (*) (EditingToolsEditingTool *, EditingToolsPhotoCanvas*)) editing_tools_editing_tool_real_activate;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->deactivate = (void (*) (EditingToolsEditingTool *)) editing_tools_editing_tool_real_deactivate;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->get_tool_window = (EditingToolsEditingToolWindow* (*) (EditingToolsEditingTool *)) editing_tools_editing_tool_real_get_tool_window;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->get_display_pixbuf = (GdkPixbuf* (*) (EditingToolsEditingTool *, Scaling*, Photo*, Dimensions*, GError**)) editing_tools_editing_tool_real_get_display_pixbuf;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_left_click = (void (*) (EditingToolsEditingTool *, gint, gint)) editing_tools_editing_tool_real_on_left_click;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_left_released = (void (*) (EditingToolsEditingTool *, gint, gint)) editing_tools_editing_tool_real_on_left_released;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_motion = (void (*) (EditingToolsEditingTool *, gint, gint, GdkModifierType)) editing_tools_editing_tool_real_on_motion;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_leave_notify_event = (gboolean (*) (EditingToolsEditingTool *)) editing_tools_editing_tool_real_on_leave_notify_event;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_keypress = (gboolean (*) (EditingToolsEditingTool *, GdkEventKey*)) editing_tools_editing_tool_real_on_keypress;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->paint = (void (*) (EditingToolsEditingTool *, cairo_t*)) editing_tools_editing_tool_real_paint;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_ACTIVATED_SIGNAL] = g_signal_new ("activated", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_DEACTIVATED_SIGNAL] = g_signal_new ("deactivated", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_APPLIED_SIGNAL] = g_signal_new ("applied", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOXED_BOOLEAN, G_TYPE_NONE, 4, TYPE_COMMAND, gdk_pixbuf_get_type (), TYPE_DIMENSIONS, G_TYPE_BOOLEAN);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_CANCELLED_SIGNAL] = g_signal_new ("cancelled", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_ABORTED_SIGNAL] = g_signal_new ("aborted", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 5167 "EditingTools.c"
}


static void
editing_tools_editing_tool_instance_init (EditingToolsEditingTool * self)
{
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_EDITING_TOOL_GET_PRIVATE (self);
#line 448 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->canvas = NULL;
#line 450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->tool_window = NULL;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->ref_count = 1;
#line 5182 "EditingTools.c"
}


static void
editing_tools_editing_tool_finalize (EditingToolsEditingTool * obj)
{
	EditingToolsEditingTool * self;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_destroy (self);
#line 448 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_editing_tools_photo_canvas_unref0 (self->canvas);
#line 450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->tool_window);
#line 451 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_surface_destroy0 (self->surface);
#line 452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_free0 (self->name);
#line 5202 "EditingTools.c"
}


GType
editing_tools_editing_tool_get_type (void)
{
	static volatile gsize editing_tools_editing_tool_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_editing_tool_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { editing_tools_value_editing_tool_init, editing_tools_value_editing_tool_free_value, editing_tools_value_editing_tool_copy_value, editing_tools_value_editing_tool_peek_pointer, "p", editing_tools_value_editing_tool_collect_value, "p", editing_tools_value_editing_tool_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsEditingToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_editing_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsEditingTool), 0, (GInstanceInitFunc) editing_tools_editing_tool_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 editing_tools_editing_tool_type_id;
		editing_tools_editing_tool_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EditingToolsEditingTool", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&editing_tools_editing_tool_type_id__volatile, editing_tools_editing_tool_type_id);
	}
	return editing_tools_editing_tool_type_id__volatile;
}


gpointer
editing_tools_editing_tool_ref (gpointer instance)
{
	EditingToolsEditingTool * self;
	self = instance;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_atomic_int_inc (&self->ref_count);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return instance;
#line 5231 "EditingTools.c"
}


void
editing_tools_editing_tool_unref (gpointer instance)
{
	EditingToolsEditingTool * self;
	self = instance;
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->finalize (self);
#line 447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 5246 "EditingTools.c"
	}
}


static EditingToolsCropToolReticleOrientation
editing_tools_crop_tool_reticle_orientation_toggle (EditingToolsCropToolReticleOrientation self)
{
	EditingToolsCropToolReticleOrientation result = 0;
	EditingToolsCropToolReticleOrientation _tmp0_ = 0;
#line 615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (self == EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE) {
#line 615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT;
#line 5260 "EditingTools.c"
	} else {
#line 616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE;
#line 5264 "EditingTools.c"
	}
#line 615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp0_;
#line 615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 5270 "EditingTools.c"
}


static GType
editing_tools_crop_tool_reticle_orientation_get_type (void)
{
	static volatile gsize editing_tools_crop_tool_reticle_orientation_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_crop_tool_reticle_orientation_type_id__volatile)) {
		static const GEnumValue values[] = {{EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE, "EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE", "landscape"}, {EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT, "EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT", "portrait"}, {0, NULL, NULL}};
		GType editing_tools_crop_tool_reticle_orientation_type_id;
		editing_tools_crop_tool_reticle_orientation_type_id = g_enum_register_static ("EditingToolsCropToolReticleOrientation", values);
		g_once_init_leave (&editing_tools_crop_tool_reticle_orientation_type_id__volatile, editing_tools_crop_tool_reticle_orientation_type_id);
	}
	return editing_tools_crop_tool_reticle_orientation_type_id__volatile;
}


static GType
editing_tools_crop_tool_constraint_mode_get_type (void)
{
	static volatile gsize editing_tools_crop_tool_constraint_mode_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_crop_tool_constraint_mode_type_id__volatile)) {
		static const GEnumValue values[] = {{EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL, "EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL", "normal"}, {EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM, "EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM", "custom"}, {0, NULL, NULL}};
		GType editing_tools_crop_tool_constraint_mode_type_id;
		editing_tools_crop_tool_constraint_mode_type_id = g_enum_register_static ("EditingToolsCropToolConstraintMode", values);
		g_once_init_leave (&editing_tools_crop_tool_constraint_mode_type_id__volatile, editing_tools_crop_tool_constraint_mode_type_id);
	}
	return editing_tools_crop_tool_constraint_mode_type_id__volatile;
}


static EditingToolsCropTool*
editing_tools_crop_tool_construct (GType object_type)
{
	EditingToolsCropTool* self = NULL;
#line 716 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsCropTool*) editing_tools_editing_tool_construct (object_type, "CropTool");
#line 715 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 5310 "EditingTools.c"
}


static EditingToolsCropTool*
editing_tools_crop_tool_new (void)
{
#line 715 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_crop_tool_construct (EDITING_TOOLS_TYPE_CROP_TOOL);
#line 5319 "EditingTools.c"
}


EditingToolsCropTool*
editing_tools_crop_tool_factory (void)
{
	EditingToolsCropTool* result = NULL;
	EditingToolsCropTool* _tmp0_;
#line 720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_crop_tool_new ();
#line 720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp0_;
#line 720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 5334 "EditingTools.c"
}


gboolean
editing_tools_crop_tool_is_available (Photo* photo,
                                      Scaling* scaling)
{
	gboolean result = FALSE;
	Dimensions dim = {0};
	Dimensions _tmp0_ = {0};
	Dimensions _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	Dimensions _tmp3_;
	gint _tmp4_;
#line 723 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), FALSE);
#line 723 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (scaling != NULL, FALSE);
#line 724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_get_original_dimensions (photo, &_tmp0_);
#line 724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scaling_get_scaled_dimensions (scaling, &_tmp0_, &_tmp1_);
#line 724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	dim = _tmp1_;
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = dim;
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.width;
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp4_ > EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
#line 5365 "EditingTools.c"
		Dimensions _tmp5_;
		gint _tmp6_;
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = dim;
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = _tmp5_.height;
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = _tmp6_ > EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
#line 5374 "EditingTools.c"
	} else {
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = FALSE;
#line 5378 "EditingTools.c"
	}
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp2_;
#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 5384 "EditingTools.c"
}


static void
_vala_array_add7 (EditingToolsCropToolConstraintDescription** * array,
                  int* length,
                  int* size,
                  EditingToolsCropToolConstraintDescription* value)
{
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5400 "EditingTools.c"
	}
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5406 "EditingTools.c"
}


static void
_vala_array_add8 (EditingToolsCropToolConstraintDescription** * array,
                  int* length,
                  int* size,
                  EditingToolsCropToolConstraintDescription* value)
{
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5422 "EditingTools.c"
	}
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5428 "EditingTools.c"
}


static void
_vala_array_add9 (EditingToolsCropToolConstraintDescription** * array,
                  int* length,
                  int* size,
                  EditingToolsCropToolConstraintDescription* value)
{
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5444 "EditingTools.c"
	}
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5450 "EditingTools.c"
}


static void
_vala_array_add10 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5466 "EditingTools.c"
	}
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5472 "EditingTools.c"
}


static void
_vala_array_add11 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5488 "EditingTools.c"
	}
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5494 "EditingTools.c"
}


static void
_vala_array_add12 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5510 "EditingTools.c"
	}
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5516 "EditingTools.c"
}


static void
_vala_array_add13 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5532 "EditingTools.c"
	}
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5538 "EditingTools.c"
}


static void
_vala_array_add14 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5554 "EditingTools.c"
	}
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5560 "EditingTools.c"
}


static void
_vala_array_add15 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5576 "EditingTools.c"
	}
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5582 "EditingTools.c"
}


static void
_vala_array_add16 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5598 "EditingTools.c"
	}
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5604 "EditingTools.c"
}


static void
_vala_array_add17 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5620 "EditingTools.c"
	}
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5626 "EditingTools.c"
}


static void
_vala_array_add18 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5642 "EditingTools.c"
	}
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5648 "EditingTools.c"
}


static void
_vala_array_add19 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5664 "EditingTools.c"
	}
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5670 "EditingTools.c"
}


static void
_vala_array_add20 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5686 "EditingTools.c"
	}
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5692 "EditingTools.c"
}


static void
_vala_array_add21 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5708 "EditingTools.c"
	}
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5714 "EditingTools.c"
}


static void
_vala_array_add22 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5730 "EditingTools.c"
	}
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5736 "EditingTools.c"
}


static void
_vala_array_add23 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5752 "EditingTools.c"
	}
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5758 "EditingTools.c"
}


static void
_vala_array_add24 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5774 "EditingTools.c"
	}
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5780 "EditingTools.c"
}


static void
_vala_array_add25 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5796 "EditingTools.c"
	}
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5802 "EditingTools.c"
}


static void
_vala_array_add26 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5818 "EditingTools.c"
	}
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5824 "EditingTools.c"
}


static void
_vala_array_add27 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5840 "EditingTools.c"
	}
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5846 "EditingTools.c"
}


static void
_vala_array_add28 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5862 "EditingTools.c"
	}
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5868 "EditingTools.c"
}


static void
_vala_array_add29 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5884 "EditingTools.c"
	}
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5890 "EditingTools.c"
}


static void
_vala_array_add30 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5906 "EditingTools.c"
	}
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5912 "EditingTools.c"
}


static void
_vala_array_add31 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5928 "EditingTools.c"
	}
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5934 "EditingTools.c"
}


static void
_vala_array_add32 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5950 "EditingTools.c"
	}
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5956 "EditingTools.c"
}


static void
_vala_array_add33 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5972 "EditingTools.c"
	}
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 5978 "EditingTools.c"
}


static void
_vala_array_add34 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 5994 "EditingTools.c"
	}
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 6000 "EditingTools.c"
}


static void
_vala_array_add35 (EditingToolsCropToolConstraintDescription** * array,
                   int* length,
                   int* size,
                   EditingToolsCropToolConstraintDescription* value)
{
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((*length) == (*size)) {
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
#line 6016 "EditingTools.c"
	}
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[(*length)++] = value;
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*array)[*length] = NULL;
#line 6022 "EditingTools.c"
}


static EditingToolsCropToolConstraintDescription**
editing_tools_crop_tool_create_constraints (int* result_length1)
{
	EditingToolsCropToolConstraintDescription** result = NULL;
	EditingToolsCropToolConstraintDescription** _result_ = NULL;
	EditingToolsCropToolConstraintDescription** _tmp0_;
	gint _result__length1;
	gint __result__size_;
	EditingToolsCropToolConstraintDescription** _tmp1_;
	gint _tmp1__length1;
	EditingToolsCropToolConstraintDescription* _tmp2_;
	EditingToolsCropToolConstraintDescription** _tmp3_;
	gint _tmp3__length1;
	EditingToolsCropToolConstraintDescription* _tmp4_;
	EditingToolsCropToolConstraintDescription** _tmp5_;
	gint _tmp5__length1;
	EditingToolsCropToolConstraintDescription* _tmp6_;
	EditingToolsCropToolConstraintDescription** _tmp7_;
	gint _tmp7__length1;
	EditingToolsCropToolConstraintDescription* _tmp8_;
	EditingToolsCropToolConstraintDescription** _tmp9_;
	gint _tmp9__length1;
	EditingToolsCropToolConstraintDescription* _tmp10_;
	EditingToolsCropToolConstraintDescription** _tmp11_;
	gint _tmp11__length1;
	EditingToolsCropToolConstraintDescription* _tmp12_;
	EditingToolsCropToolConstraintDescription** _tmp13_;
	gint _tmp13__length1;
	EditingToolsCropToolConstraintDescription* _tmp14_;
	EditingToolsCropToolConstraintDescription** _tmp15_;
	gint _tmp15__length1;
	EditingToolsCropToolConstraintDescription* _tmp16_;
	EditingToolsCropToolConstraintDescription** _tmp17_;
	gint _tmp17__length1;
	EditingToolsCropToolConstraintDescription* _tmp18_;
	EditingToolsCropToolConstraintDescription** _tmp19_;
	gint _tmp19__length1;
	EditingToolsCropToolConstraintDescription* _tmp20_;
	EditingToolsCropToolConstraintDescription** _tmp21_;
	gint _tmp21__length1;
	EditingToolsCropToolConstraintDescription* _tmp22_;
	EditingToolsCropToolConstraintDescription** _tmp23_;
	gint _tmp23__length1;
	EditingToolsCropToolConstraintDescription* _tmp24_;
	EditingToolsCropToolConstraintDescription** _tmp25_;
	gint _tmp25__length1;
	EditingToolsCropToolConstraintDescription* _tmp26_;
	EditingToolsCropToolConstraintDescription** _tmp27_;
	gint _tmp27__length1;
	EditingToolsCropToolConstraintDescription* _tmp28_;
	EditingToolsCropToolConstraintDescription** _tmp29_;
	gint _tmp29__length1;
	EditingToolsCropToolConstraintDescription* _tmp30_;
	EditingToolsCropToolConstraintDescription** _tmp31_;
	gint _tmp31__length1;
	EditingToolsCropToolConstraintDescription* _tmp32_;
	EditingToolsCropToolConstraintDescription** _tmp33_;
	gint _tmp33__length1;
	EditingToolsCropToolConstraintDescription* _tmp34_;
	EditingToolsCropToolConstraintDescription** _tmp35_;
	gint _tmp35__length1;
	EditingToolsCropToolConstraintDescription* _tmp36_;
	EditingToolsCropToolConstraintDescription** _tmp37_;
	gint _tmp37__length1;
	EditingToolsCropToolConstraintDescription* _tmp38_;
	EditingToolsCropToolConstraintDescription** _tmp39_;
	gint _tmp39__length1;
	EditingToolsCropToolConstraintDescription* _tmp40_;
	EditingToolsCropToolConstraintDescription** _tmp41_;
	gint _tmp41__length1;
	EditingToolsCropToolConstraintDescription* _tmp42_;
	EditingToolsCropToolConstraintDescription** _tmp43_;
	gint _tmp43__length1;
	EditingToolsCropToolConstraintDescription* _tmp44_;
	EditingToolsCropToolConstraintDescription** _tmp45_;
	gint _tmp45__length1;
	EditingToolsCropToolConstraintDescription* _tmp46_;
	EditingToolsCropToolConstraintDescription** _tmp47_;
	gint _tmp47__length1;
	EditingToolsCropToolConstraintDescription* _tmp48_;
	EditingToolsCropToolConstraintDescription** _tmp49_;
	gint _tmp49__length1;
	EditingToolsCropToolConstraintDescription* _tmp50_;
	EditingToolsCropToolConstraintDescription** _tmp51_;
	gint _tmp51__length1;
	EditingToolsCropToolConstraintDescription* _tmp52_;
	EditingToolsCropToolConstraintDescription** _tmp53_;
	gint _tmp53__length1;
	EditingToolsCropToolConstraintDescription* _tmp54_;
	EditingToolsCropToolConstraintDescription** _tmp55_;
	gint _tmp55__length1;
	EditingToolsCropToolConstraintDescription* _tmp56_;
	EditingToolsCropToolConstraintDescription** _tmp57_;
	gint _tmp57__length1;
	EditingToolsCropToolConstraintDescription* _tmp58_;
	EditingToolsCropToolConstraintDescription** _tmp59_;
	gint _tmp59__length1;
#line 730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = g_new0 (EditingToolsCropToolConstraintDescription*, 0 + 1);
#line 730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_ = _tmp0_;
#line 730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result__length1 = 0;
#line 730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	__result__size_ = _result__length1;
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _result_;
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1__length1 = _result__length1;
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = editing_tools_crop_tool_constraint_description_new (_ ("Unconstrained"), 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO);
#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add7 (&_result_, &_result__length1, &__result__size_, _tmp2_);
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _result_;
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3__length1 = _result__length1;
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = editing_tools_crop_tool_constraint_description_new (_ ("Square"), 1, 1, FALSE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add8 (&_result_, &_result__length1, &__result__size_, _tmp4_);
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _result_;
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5__length1 = _result__length1;
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = editing_tools_crop_tool_constraint_description_new (_ ("Screen"), 0, 0, TRUE, EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO);
#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add9 (&_result_, &_result__length1, &__result__size_, _tmp6_);
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _result_;
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7__length1 = _result__length1;
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = editing_tools_crop_tool_constraint_description_new (_ ("Original Size"), 0, 0, TRUE, EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO);
#line 735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add10 (&_result_, &_result__length1, &__result__size_, _tmp8_);
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _result_;
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9__length1 = _result__length1;
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = editing_tools_crop_tool_constraint_description_new (_ ("-"), 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_SEPARATOR);
#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add11 (&_result_, &_result__length1, &__result__size_, _tmp10_);
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _result_;
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11__length1 = _result__length1;
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = editing_tools_crop_tool_constraint_description_new (_ ("SD Video (4 ∶ 3)"), 4, 3, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add12 (&_result_, &_result__length1, &__result__size_, _tmp12_);
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _result_;
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13__length1 = _result__length1;
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = editing_tools_crop_tool_constraint_description_new (_ ("HD Video (16 ∶ 9)"), 16, 9, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add13 (&_result_, &_result__length1, &__result__size_, _tmp14_);
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _result_;
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15__length1 = _result__length1;
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = editing_tools_crop_tool_constraint_description_new (_ ("-"), 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_SEPARATOR);
#line 739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add14 (&_result_, &_result__length1, &__result__size_, _tmp16_);
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _result_;
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17__length1 = _result__length1;
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = editing_tools_crop_tool_constraint_description_new (_ ("Wallet (2 × 3 in.)"), 3, 2, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add15 (&_result_, &_result__length1, &__result__size_, _tmp18_);
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = _result_;
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19__length1 = _result__length1;
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = editing_tools_crop_tool_constraint_description_new (_ ("Notecard (3 × 5 in.)"), 5, 3, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add16 (&_result_, &_result__length1, &__result__size_, _tmp20_);
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _result_;
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21__length1 = _result__length1;
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = editing_tools_crop_tool_constraint_description_new (_ ("4 × 6 in."), 6, 4, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add17 (&_result_, &_result__length1, &__result__size_, _tmp22_);
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _result_;
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23__length1 = _result__length1;
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = editing_tools_crop_tool_constraint_description_new (_ ("5 × 7 in."), 7, 5, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add18 (&_result_, &_result__length1, &__result__size_, _tmp24_);
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = _result_;
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25__length1 = _result__length1;
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = editing_tools_crop_tool_constraint_description_new (_ ("8 × 10 in."), 10, 8, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add19 (&_result_, &_result__length1, &__result__size_, _tmp26_);
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = _result_;
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27__length1 = _result__length1;
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = editing_tools_crop_tool_constraint_description_new (_ ("Letter (8.5 × 11 in.)"), 85, 110, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add20 (&_result_, &_result__length1, &__result__size_, _tmp28_);
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = _result_;
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29__length1 = _result__length1;
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = editing_tools_crop_tool_constraint_description_new (_ ("11 × 14 in."), 14, 11, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add21 (&_result_, &_result__length1, &__result__size_, _tmp30_);
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = _result_;
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31__length1 = _result__length1;
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = editing_tools_crop_tool_constraint_description_new (_ ("Tabloid (11 × 17 in.)"), 17, 11, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add22 (&_result_, &_result__length1, &__result__size_, _tmp32_);
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = _result_;
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33__length1 = _result__length1;
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = editing_tools_crop_tool_constraint_description_new (_ ("16 × 20 in."), 20, 16, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add23 (&_result_, &_result__length1, &__result__size_, _tmp34_);
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp35_ = _result_;
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp35__length1 = _result__length1;
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp36_ = editing_tools_crop_tool_constraint_description_new (_ ("-"), 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_SEPARATOR);
#line 749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add24 (&_result_, &_result__length1, &__result__size_, _tmp36_);
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp37_ = _result_;
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp37__length1 = _result__length1;
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp38_ = editing_tools_crop_tool_constraint_description_new (_ ("Metric Wallet (9 × 13 cm)"), 13, 9, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add25 (&_result_, &_result__length1, &__result__size_, _tmp38_);
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp39_ = _result_;
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp39__length1 = _result__length1;
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp40_ = editing_tools_crop_tool_constraint_description_new (_ ("Postcard (10 × 15 cm)"), 15, 10, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add26 (&_result_, &_result__length1, &__result__size_, _tmp40_);
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp41_ = _result_;
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp41__length1 = _result__length1;
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp42_ = editing_tools_crop_tool_constraint_description_new (_ ("13 × 18 cm"), 18, 13, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add27 (&_result_, &_result__length1, &__result__size_, _tmp42_);
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp43_ = _result_;
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp43__length1 = _result__length1;
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp44_ = editing_tools_crop_tool_constraint_description_new (_ ("18 × 24 cm"), 24, 18, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add28 (&_result_, &_result__length1, &__result__size_, _tmp44_);
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp45_ = _result_;
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp45__length1 = _result__length1;
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp46_ = editing_tools_crop_tool_constraint_description_new (_ ("A4 (210 × 297 mm)"), 210, 297, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add29 (&_result_, &_result__length1, &__result__size_, _tmp46_);
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp47_ = _result_;
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp47__length1 = _result__length1;
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp48_ = editing_tools_crop_tool_constraint_description_new (_ ("20 × 30 cm"), 30, 20, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add30 (&_result_, &_result__length1, &__result__size_, _tmp48_);
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp49_ = _result_;
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp49__length1 = _result__length1;
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp50_ = editing_tools_crop_tool_constraint_description_new (_ ("24 × 40 cm"), 40, 24, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add31 (&_result_, &_result__length1, &__result__size_, _tmp50_);
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp51_ = _result_;
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp51__length1 = _result__length1;
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp52_ = editing_tools_crop_tool_constraint_description_new (_ ("30 × 40 cm"), 40, 30, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add32 (&_result_, &_result__length1, &__result__size_, _tmp52_);
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp53_ = _result_;
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp53__length1 = _result__length1;
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp54_ = editing_tools_crop_tool_constraint_description_new (_ ("A3 (297 × 420 mm)"), 420, 297, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add33 (&_result_, &_result__length1, &__result__size_, _tmp54_);
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp55_ = _result_;
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp55__length1 = _result__length1;
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp56_ = editing_tools_crop_tool_constraint_description_new (_ ("-"), 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_SEPARATOR);
#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add34 (&_result_, &_result__length1, &__result__size_, _tmp56_);
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp57_ = _result_;
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp57__length1 = _result__length1;
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp58_ = editing_tools_crop_tool_constraint_description_new (_ ("Custom"), 0, 0, TRUE, EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO);
#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_array_add35 (&_result_, &_result__length1, &__result__size_, _tmp58_);
#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp59_ = _result_;
#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp59__length1 = _result__length1;
#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (result_length1) {
#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*result_length1 = _tmp59__length1;
#line 6371 "EditingTools.c"
	}
#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp59_;
#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 6377 "EditingTools.c"
}


static gpointer
_editing_tools_crop_tool_constraint_description_ref0 (gpointer self)
{
#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self ? editing_tools_crop_tool_constraint_description_ref (self) : NULL;
#line 6386 "EditingTools.c"
}


static GtkListStore*
editing_tools_crop_tool_create_constraint_list (EditingToolsCropToolConstraintDescription** constraint_data,
                                                int constraint_data_length1)
{
	GtkListStore* result = NULL;
	GtkListStore* _result_ = NULL;
	GtkListStore* _tmp0_;
	GtkTreeIter iter = {0};
#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = gtk_list_store_new (1, G_TYPE_STRING, G_TYPE_STRING, -1);
#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_ = _tmp0_;
#line 6402 "EditingTools.c"
	{
		EditingToolsCropToolConstraintDescription** constraint_collection = NULL;
		gint constraint_collection_length1 = 0;
		gint _constraint_collection_size_ = 0;
		gint constraint_it = 0;
#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		constraint_collection = constraint_data;
#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		constraint_collection_length1 = constraint_data_length1;
#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		for (constraint_it = 0; constraint_it < constraint_data_length1; constraint_it = constraint_it + 1) {
#line 6414 "EditingTools.c"
			EditingToolsCropToolConstraintDescription* _tmp1_;
			EditingToolsCropToolConstraintDescription* constraint = NULL;
#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp1_ = _editing_tools_crop_tool_constraint_description_ref0 (constraint_collection[constraint_it]);
#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			constraint = _tmp1_;
#line 6421 "EditingTools.c"
			{
				GtkListStore* _tmp2_;
				GtkTreeIter _tmp3_ = {0};
				GtkListStore* _tmp4_;
				GtkTreeIter _tmp5_;
				EditingToolsCropToolConstraintDescription* _tmp6_;
				const gchar* _tmp7_;
				GValue _tmp8_ = {0};
#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp2_ = _result_;
#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				gtk_list_store_append (_tmp2_, &_tmp3_);
#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				iter = _tmp3_;
#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp4_ = _result_;
#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp5_ = iter;
#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp6_ = constraint;
#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp7_ = _tmp6_->name;
#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				g_value_init (&_tmp8_, G_TYPE_STRING);
#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				g_value_set_string (&_tmp8_, _tmp7_);
#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				gtk_list_store_set_value (_tmp4_, &_tmp5_, 0, &_tmp8_);
#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				G_IS_VALUE (&_tmp8_) ? (g_value_unset (&_tmp8_), NULL) : NULL;
#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_editing_tools_crop_tool_constraint_description_unref0 (constraint);
#line 6454 "EditingTools.c"
			}
		}
	}
#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _result_;
#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 6462 "EditingTools.c"
}


static void
editing_tools_crop_tool_update_pivot_button_state (EditingToolsCropTool* self)
{
	EditingToolsCropToolCropToolWindow* _tmp0_;
	GtkButton* _tmp1_;
	EditingToolsCropToolConstraintDescription* _tmp2_;
	EditingToolsCropToolConstraintDescription* _tmp3_;
	gboolean _tmp4_;
#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->pivot_reticle_button;
#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = editing_tools_crop_tool_get_selected_constraint (self);
#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_;
#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_->is_pivotable;
#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), _tmp4_);
#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_editing_tools_crop_tool_constraint_description_unref0 (_tmp3_);
#line 6490 "EditingTools.c"
}


static EditingToolsCropToolConstraintDescription*
editing_tools_crop_tool_get_selected_constraint (EditingToolsCropTool* self)
{
	EditingToolsCropToolConstraintDescription* result = NULL;
	EditingToolsCropToolConstraintDescription* _result_ = NULL;
	EditingToolsCropToolConstraintDescription** _tmp0_;
	gint _tmp0__length1;
	EditingToolsCropToolCropToolWindow* _tmp1_;
	GtkComboBox* _tmp2_;
	EditingToolsCropToolConstraintDescription* _tmp3_;
	EditingToolsCropToolConstraintDescription* _tmp4_;
	EditingToolsCropToolConstraintDescription* _tmp5_;
	gfloat _tmp6_;
#line 782 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), NULL);
#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->constraints;
#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0__length1 = self->priv->constraints_length1;
#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->crop_tool_window;
#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_->constraint_combo;
#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp0_[gtk_combo_box_get_active (_tmp2_)];
#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _editing_tools_crop_tool_constraint_description_ref0 (_tmp3_);
#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_ = _tmp4_;
#line 785 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _result_;
#line 785 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_->aspect_ratio;
#line 785 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp6_ == EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO) {
#line 6529 "EditingTools.c"
		EditingToolsCropToolConstraintDescription* _tmp7_;
		EditingToolsPhotoCanvas* _tmp8_;
		GdkRectangle _tmp9_ = {0};
		gint _tmp10_;
		EditingToolsCropToolConstraintDescription* _tmp11_;
		EditingToolsPhotoCanvas* _tmp12_;
		GdkRectangle _tmp13_ = {0};
		gint _tmp14_;
#line 786 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = _result_;
#line 786 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 786 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp8_, &_tmp9_);
#line 786 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = _tmp9_.width;
#line 786 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_->basis_width = _tmp10_;
#line 787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = _result_;
#line 787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp12_, &_tmp13_);
#line 787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp14_ = _tmp13_.height;
#line 787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_->basis_height = _tmp14_;
#line 6558 "EditingTools.c"
	} else {
		EditingToolsCropToolConstraintDescription* _tmp15_;
		gfloat _tmp16_;
#line 788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp15_ = _result_;
#line 788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = _tmp15_->aspect_ratio;
#line 788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp16_ == EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO) {
#line 6568 "EditingTools.c"
			GdkScreen* screen = NULL;
			GdkScreen* _tmp17_;
			GdkScreen* _tmp18_;
			EditingToolsCropToolConstraintDescription* _tmp19_;
			GdkScreen* _tmp20_;
			EditingToolsCropToolConstraintDescription* _tmp21_;
			GdkScreen* _tmp22_;
#line 789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp17_ = gdk_screen_get_default ();
#line 789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp18_ = _g_object_ref0 (_tmp17_);
#line 789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			screen = _tmp18_;
#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp19_ = _result_;
#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp20_ = screen;
#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp19_->basis_width = gdk_screen_get_width (_tmp20_);
#line 791 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp21_ = _result_;
#line 791 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp22_ = screen;
#line 791 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp21_->basis_height = gdk_screen_get_height (_tmp22_);
#line 788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_object_unref0 (screen);
#line 6596 "EditingTools.c"
		}
	}
#line 794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _result_;
#line 794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 6603 "EditingTools.c"
}


static gboolean
editing_tools_crop_tool_on_width_entry_focus_out (EditingToolsCropTool* self,
                                                  GdkEventFocus* event)
{
	gboolean result = FALSE;
	EditingToolsCropToolCropToolWindow* _tmp0_;
	EditingToolsCropToolCropToolWindow* _tmp1_;
	GtkEntry* _tmp2_;
	GtkEntry* _tmp3_;
#line 797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), FALSE);
#line 797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->crop_tool_window;
#line 798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_->custom_width_entry;
#line 798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp0_->most_recently_edited);
#line 798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_->most_recently_edited = _tmp3_;
#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = editing_tools_crop_tool_on_custom_entry_focus_out (self, event);
#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 6636 "EditingTools.c"
}


static gboolean
editing_tools_crop_tool_on_height_entry_focus_out (EditingToolsCropTool* self,
                                                   GdkEventFocus* event)
{
	gboolean result = FALSE;
	EditingToolsCropToolCropToolWindow* _tmp0_;
	EditingToolsCropToolCropToolWindow* _tmp1_;
	GtkEntry* _tmp2_;
	GtkEntry* _tmp3_;
#line 802 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), FALSE);
#line 802 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->crop_tool_window;
#line 803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_->custom_height_entry;
#line 803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp0_->most_recently_edited);
#line 803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_->most_recently_edited = _tmp3_;
#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = editing_tools_crop_tool_on_custom_entry_focus_out (self, event);
#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 6669 "EditingTools.c"
}


static gboolean
editing_tools_crop_tool_on_custom_entry_focus_out (EditingToolsCropTool* self,
                                                   GdkEventFocus* event)
{
	gboolean result = FALSE;
	gint width = 0;
	EditingToolsCropToolCropToolWindow* _tmp0_;
	GtkEntry* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gint height = 0;
	EditingToolsCropToolCropToolWindow* _tmp4_;
	GtkEntry* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	gint _tmp8_;
	gint _tmp14_;
	gboolean _tmp20_ = FALSE;
	gint _tmp21_;
	gint _tmp22_;
	gint _tmp25_;
	gint _tmp26_;
	gfloat _tmp27_;
	gint _tmp61_;
	gint _tmp62_;
	Box new_crop = {0};
	Box _tmp63_;
	Box _tmp64_ = {0};
	Box _tmp65_;
	Box _tmp66_;
	EditingToolsPhotoCanvas* _tmp67_;
	Box _tmp68_;
	EditingToolsPhotoCanvas* _tmp69_;
	gint _tmp70_;
	gint _tmp71_;
#line 807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), FALSE);
#line 807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->custom_width_entry;
#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = gtk_entry_get_text (_tmp1_);
#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_;
#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	width = atoi (_tmp3_);
#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->crop_tool_window;
#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_->custom_height_entry;
#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = gtk_entry_get_text (_tmp5_);
#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_;
#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	height = atoi (_tmp7_);
#line 811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = width;
#line 811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp8_ < 1) {
#line 6736 "EditingTools.c"
		EditingToolsCropToolCropToolWindow* _tmp9_;
		GtkEntry* _tmp10_;
		gint _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
#line 812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		width = 1;
#line 813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = self->priv->crop_tool_window;
#line 813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = _tmp9_->custom_width_entry;
#line 813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = width;
#line 813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = g_strdup_printf ("%d", _tmp11_);
#line 813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp13_ = _tmp12_;
#line 813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_entry_set_text (_tmp10_, _tmp13_);
#line 813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp13_);
#line 6758 "EditingTools.c"
	}
#line 816 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = height;
#line 816 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp14_ < 1) {
#line 6764 "EditingTools.c"
		EditingToolsCropToolCropToolWindow* _tmp15_;
		GtkEntry* _tmp16_;
		gint _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
#line 817 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		height = 1;
#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp15_ = self->priv->crop_tool_window;
#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = _tmp15_->custom_height_entry;
#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp17_ = height;
#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp18_ = g_strdup_printf ("%d", _tmp17_);
#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = _tmp18_;
#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_entry_set_text (_tmp16_, _tmp19_);
#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp19_);
#line 6786 "EditingTools.c"
	}
#line 821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = width;
#line 821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = self->priv->custom_width;
#line 821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp21_ == _tmp22_) {
#line 6794 "EditingTools.c"
		gint _tmp23_;
		gint _tmp24_;
#line 821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp23_ = height;
#line 821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp24_ = self->priv->custom_height;
#line 821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp20_ = _tmp23_ == _tmp24_;
#line 6803 "EditingTools.c"
	} else {
#line 821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp20_ = FALSE;
#line 6807 "EditingTools.c"
	}
#line 821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp20_) {
#line 822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = FALSE;
#line 822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 6815 "EditingTools.c"
	}
#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = width;
#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = height;
#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_aspect_ratio = ((gfloat) _tmp25_) / ((gfloat) _tmp26_);
#line 826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = self->priv->custom_aspect_ratio;
#line 826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp27_ < EDITING_TOOLS_CROP_TOOL_MIN_ASPECT_RATIO) {
#line 6827 "EditingTools.c"
		EditingToolsCropToolCropToolWindow* _tmp28_;
		GtkEntry* _tmp29_;
		EditingToolsCropToolCropToolWindow* _tmp30_;
		GtkEntry* _tmp31_;
#line 827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp28_ = self->priv->crop_tool_window;
#line 827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp29_ = _tmp28_->most_recently_edited;
#line 827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp30_ = self->priv->crop_tool_window;
#line 827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp31_ = _tmp30_->custom_height_entry;
#line 827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp29_ == _tmp31_) {
#line 6842 "EditingTools.c"
			gint _tmp32_;
			EditingToolsCropToolCropToolWindow* _tmp33_;
			GtkEntry* _tmp34_;
			gint _tmp35_;
			gchar* _tmp36_;
			gchar* _tmp37_;
#line 828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp32_ = width;
#line 828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			height = (gint) (_tmp32_ / EDITING_TOOLS_CROP_TOOL_MIN_ASPECT_RATIO);
#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp33_ = self->priv->crop_tool_window;
#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp34_ = _tmp33_->custom_height_entry;
#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp35_ = height;
#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp36_ = g_strdup_printf ("%d", _tmp35_);
#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp37_ = _tmp36_;
#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_entry_set_text (_tmp34_, _tmp37_);
#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_free0 (_tmp37_);
#line 6867 "EditingTools.c"
		} else {
			gint _tmp38_;
			EditingToolsCropToolCropToolWindow* _tmp39_;
			GtkEntry* _tmp40_;
			gint _tmp41_;
			gchar* _tmp42_;
			gchar* _tmp43_;
#line 831 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp38_ = height;
#line 831 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			width = (gint) (_tmp38_ * EDITING_TOOLS_CROP_TOOL_MIN_ASPECT_RATIO);
#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp39_ = self->priv->crop_tool_window;
#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp40_ = _tmp39_->custom_width_entry;
#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp41_ = width;
#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp42_ = g_strdup_printf ("%d", _tmp41_);
#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp43_ = _tmp42_;
#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_entry_set_text (_tmp40_, _tmp43_);
#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_free0 (_tmp43_);
#line 6893 "EditingTools.c"
		}
	} else {
		gfloat _tmp44_;
#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp44_ = self->priv->custom_aspect_ratio;
#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp44_ > EDITING_TOOLS_CROP_TOOL_MAX_ASPECT_RATIO) {
#line 6901 "EditingTools.c"
			EditingToolsCropToolCropToolWindow* _tmp45_;
			GtkEntry* _tmp46_;
			EditingToolsCropToolCropToolWindow* _tmp47_;
			GtkEntry* _tmp48_;
#line 835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp45_ = self->priv->crop_tool_window;
#line 835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp46_ = _tmp45_->most_recently_edited;
#line 835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp47_ = self->priv->crop_tool_window;
#line 835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp48_ = _tmp47_->custom_height_entry;
#line 835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp46_ == _tmp48_) {
#line 6916 "EditingTools.c"
				gint _tmp49_;
				EditingToolsCropToolCropToolWindow* _tmp50_;
				GtkEntry* _tmp51_;
				gint _tmp52_;
				gchar* _tmp53_;
				gchar* _tmp54_;
#line 836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp49_ = width;
#line 836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				height = (gint) (_tmp49_ / EDITING_TOOLS_CROP_TOOL_MAX_ASPECT_RATIO);
#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp50_ = self->priv->crop_tool_window;
#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp51_ = _tmp50_->custom_height_entry;
#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp52_ = height;
#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp53_ = g_strdup_printf ("%d", _tmp52_);
#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp54_ = _tmp53_;
#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				gtk_entry_set_text (_tmp51_, _tmp54_);
#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_g_free0 (_tmp54_);
#line 6941 "EditingTools.c"
			} else {
				gint _tmp55_;
				EditingToolsCropToolCropToolWindow* _tmp56_;
				GtkEntry* _tmp57_;
				gint _tmp58_;
				gchar* _tmp59_;
				gchar* _tmp60_;
#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp55_ = height;
#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				width = (gint) (_tmp55_ * EDITING_TOOLS_CROP_TOOL_MAX_ASPECT_RATIO);
#line 840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp56_ = self->priv->crop_tool_window;
#line 840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp57_ = _tmp56_->custom_width_entry;
#line 840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp58_ = width;
#line 840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp59_ = g_strdup_printf ("%d", _tmp58_);
#line 840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp60_ = _tmp59_;
#line 840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				gtk_entry_set_text (_tmp57_, _tmp60_);
#line 840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_g_free0 (_tmp60_);
#line 6967 "EditingTools.c"
			}
		}
	}
#line 844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp61_ = width;
#line 844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp62_ = height;
#line 844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_aspect_ratio = ((gfloat) _tmp61_) / ((gfloat) _tmp62_);
#line 846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp63_ = self->priv->scaled_crop;
#line 846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_constrain_crop (self, &_tmp63_, &_tmp64_);
#line 846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_crop = _tmp64_;
#line 848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp65_ = new_crop;
#line 848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_crop_resized (self, &_tmp65_);
#line 849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp66_ = new_crop;
#line 849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_crop = _tmp66_;
#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp67_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp68_ = new_crop;
#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_invalidate_area (_tmp67_, &_tmp68_);
#line 851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp69_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp69_);
#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp70_ = width;
#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_width = _tmp70_;
#line 854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp71_ = height;
#line 854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_height = _tmp71_;
#line 856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = FALSE;
#line 856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 7013 "EditingTools.c"
}


static void
editing_tools_crop_tool_on_width_insert_text (EditingToolsCropTool* self,
                                              const gchar* text,
                                              gint length,
                                              gint* position)
{
	EditingToolsCropToolCropToolWindow* _tmp0_;
	GtkEntry* _tmp1_;
#line 859 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 859 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (text != NULL);
#line 860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->custom_width_entry;
#line 860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_on_entry_insert_text (self, _tmp1_, text, length, position);
#line 7035 "EditingTools.c"
}


static void
editing_tools_crop_tool_on_height_insert_text (EditingToolsCropTool* self,
                                               const gchar* text,
                                               gint length,
                                               gint* position)
{
	EditingToolsCropToolCropToolWindow* _tmp0_;
	GtkEntry* _tmp1_;
#line 863 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 863 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (text != NULL);
#line 864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->custom_height_entry;
#line 864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_on_entry_insert_text (self, _tmp1_, text, length, position);
#line 7057 "EditingTools.c"
}


static gchar
string_get (const gchar* self,
            glong index)
{
	gchar result = '\0';
	gchar _tmp0_;
#line 1124 "/usr/share/vala-0.40/vapi/glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, '\0');
#line 1125 "/usr/share/vala-0.40/vapi/glib-2.0.vapi"
	_tmp0_ = ((gchar*) self)[index];
#line 1125 "/usr/share/vala-0.40/vapi/glib-2.0.vapi"
	result = _tmp0_;
#line 1125 "/usr/share/vala-0.40/vapi/glib-2.0.vapi"
	return result;
#line 7075 "EditingTools.c"
}


static void
editing_tools_crop_tool_on_entry_insert_text (EditingToolsCropTool* self,
                                              GtkEntry* sender,
                                              const gchar* text,
                                              gint length,
                                              gint* position)
{
	gboolean _tmp0_;
	gchar* new_text = NULL;
	gchar* _tmp3_;
	const gchar* _tmp13_;
	gint _tmp14_;
	gint _tmp15_;
#line 867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (GTK_IS_ENTRY (sender));
#line 867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (text != NULL);
#line 868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->entry_insert_in_progress;
#line 868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_) {
#line 869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 7104 "EditingTools.c"
	}
#line 871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->entry_insert_in_progress = TRUE;
#line 873 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (length == -1) {
#line 7110 "EditingTools.c"
		gint _tmp1_;
		gint _tmp2_;
#line 874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = strlen (text);
#line 874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = _tmp1_;
#line 874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		length = (gint) _tmp2_;
#line 7119 "EditingTools.c"
	}
#line 877 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = g_strdup ("");
#line 877 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_text = _tmp3_;
#line 7125 "EditingTools.c"
	{
		gint ctr = 0;
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		ctr = 0;
#line 7130 "EditingTools.c"
		{
			gboolean _tmp4_ = FALSE;
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp4_ = TRUE;
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			while (TRUE) {
#line 7137 "EditingTools.c"
				gint _tmp6_;
				gint _tmp7_;
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (!_tmp4_) {
#line 7142 "EditingTools.c"
					gint _tmp5_;
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp5_ = ctr;
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					ctr = _tmp5_ + 1;
#line 7148 "EditingTools.c"
				}
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp4_ = FALSE;
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp6_ = ctr;
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (!(_tmp6_ < length)) {
#line 878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					break;
#line 7158 "EditingTools.c"
				}
#line 879 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp7_ = ctr;
#line 879 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (g_ascii_isdigit (string_get (text, (glong) _tmp7_))) {
#line 7164 "EditingTools.c"
					const gchar* _tmp8_;
					gint _tmp9_;
					gchar* _tmp10_;
					gchar* _tmp11_;
					gchar* _tmp12_;
#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp8_ = new_text;
#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp9_ = ctr;
#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp10_ = g_strdup_printf ("%c", (gchar) string_get (text, (glong) _tmp9_));
#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp11_ = _tmp10_;
#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp12_ = g_strconcat (_tmp8_, _tmp11_, NULL);
#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_g_free0 (new_text);
#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_text = _tmp12_;
#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_g_free0 (_tmp11_);
#line 7186 "EditingTools.c"
				}
			}
		}
	}
#line 884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = new_text;
#line 884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = strlen (_tmp13_);
#line 884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_;
#line 884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp15_ > 0) {
#line 7199 "EditingTools.c"
		const gchar* _tmp16_;
		const gchar* _tmp17_;
		gint _tmp18_;
		gint _tmp19_;
#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = new_text;
#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp17_ = new_text;
#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp18_ = strlen (_tmp17_);
#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = _tmp18_;
#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (sender, gtk_editable_get_type (), GtkEditable), "insert-text", _tmp16_, (gint) _tmp19_, position);
#line 7214 "EditingTools.c"
	}
#line 887 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_stop_emission_by_name (sender, "insert-text");
#line 889 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->entry_insert_in_progress = FALSE;
#line 867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_free0 (new_text);
#line 7222 "EditingTools.c"
}


static gfloat
editing_tools_crop_tool_get_constraint_aspect_ratio (EditingToolsCropTool* self)
{
	gfloat result = 0.0F;
	gfloat _result_ = 0.0F;
	EditingToolsCropToolConstraintDescription* _tmp0_;
	EditingToolsCropToolConstraintDescription* _tmp1_;
	gfloat _tmp2_;
	gfloat _tmp3_;
	gfloat _tmp4_;
	EditingToolsCropToolReticleOrientation _tmp18_;
#line 892 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), 0.0F);
#line 893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_crop_tool_get_selected_constraint (self);
#line 893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_->aspect_ratio;
#line 893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_;
#line 893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_editing_tools_crop_tool_constraint_description_unref0 (_tmp1_);
#line 893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_ = _tmp3_;
#line 895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _result_;
#line 895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp4_ == EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO) {
#line 7255 "EditingTools.c"
		EditingToolsPhotoCanvas* _tmp5_;
		GdkRectangle _tmp6_ = {0};
		gint _tmp7_;
		EditingToolsPhotoCanvas* _tmp8_;
		GdkRectangle _tmp9_ = {0};
		gint _tmp10_;
#line 896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp5_, &_tmp6_);
#line 896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = _tmp6_.width;
#line 896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp8_, &_tmp9_);
#line 896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = _tmp9_.height;
#line 896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_result_ = ((gfloat) _tmp7_) / ((gfloat) _tmp10_);
#line 7276 "EditingTools.c"
	} else {
		gfloat _tmp11_;
#line 898 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = _result_;
#line 898 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp11_ == EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO) {
#line 7283 "EditingTools.c"
			GdkScreen* screen = NULL;
			GdkScreen* _tmp12_;
			GdkScreen* _tmp13_;
			GdkScreen* _tmp14_;
			GdkScreen* _tmp15_;
#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp12_ = gdk_screen_get_default ();
#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp13_ = _g_object_ref0 (_tmp12_);
#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			screen = _tmp13_;
#line 900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp14_ = screen;
#line 900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp15_ = screen;
#line 900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_result_ = ((gfloat) gdk_screen_get_width (_tmp14_)) / ((gfloat) gdk_screen_get_height (_tmp15_));
#line 898 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_object_unref0 (screen);
#line 7303 "EditingTools.c"
		} else {
			gfloat _tmp16_;
#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp16_ = _result_;
#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp16_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO) {
#line 7310 "EditingTools.c"
				gfloat _tmp17_;
#line 902 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp17_ = self->priv->custom_aspect_ratio;
#line 902 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_result_ = _tmp17_;
#line 7316 "EditingTools.c"
			}
		}
	}
#line 904 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->priv->reticle_orientation;
#line 904 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp18_ == EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT) {
#line 7324 "EditingTools.c"
		gfloat _tmp19_;
#line 905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = _result_;
#line 905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_result_ = 1.0f / _tmp19_;
#line 7330 "EditingTools.c"
	}
#line 907 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _result_;
#line 907 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 7336 "EditingTools.c"
}


static gfloat
editing_tools_crop_tool_get_constraint_aspect_ratio_for_constraint (EditingToolsCropTool* self,
                                                                    EditingToolsCropToolConstraintDescription* constraint,
                                                                    Photo* photo)
{
	gfloat result = 0.0F;
	gfloat _result_ = 0.0F;
	gfloat _tmp0_;
	gfloat _tmp1_;
	EditingToolsCropToolReticleOrientation _tmp14_;
#line 910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), 0.0F);
#line 910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_CROP_TOOL_IS_CONSTRAINT_DESCRIPTION (constraint), 0.0F);
#line 910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), 0.0F);
#line 911 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = constraint->aspect_ratio;
#line 911 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_ = _tmp0_;
#line 913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _result_;
#line 913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_ == EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO) {
#line 7364 "EditingTools.c"
		Dimensions orig_dim = {0};
		Dimensions _tmp2_ = {0};
		Dimensions _tmp3_;
		gint _tmp4_;
		Dimensions _tmp5_;
		gint _tmp6_;
#line 914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		photo_get_original_dimensions (photo, &_tmp2_);
#line 914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		orig_dim = _tmp2_;
#line 915 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = orig_dim;
#line 915 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = _tmp3_.width;
#line 915 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = orig_dim;
#line 915 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = _tmp5_.height;
#line 915 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_result_ = ((gfloat) _tmp4_) / ((gfloat) _tmp6_);
#line 7385 "EditingTools.c"
	} else {
		gfloat _tmp7_;
#line 916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = _result_;
#line 916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp7_ == EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO) {
#line 7392 "EditingTools.c"
			GdkScreen* screen = NULL;
			GdkScreen* _tmp8_;
			GdkScreen* _tmp9_;
			GdkScreen* _tmp10_;
			GdkScreen* _tmp11_;
#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp8_ = gdk_screen_get_default ();
#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp9_ = _g_object_ref0 (_tmp8_);
#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			screen = _tmp9_;
#line 918 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp10_ = screen;
#line 918 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp11_ = screen;
#line 918 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_result_ = ((gfloat) gdk_screen_get_width (_tmp10_)) / ((gfloat) gdk_screen_get_height (_tmp11_));
#line 916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_object_unref0 (screen);
#line 7412 "EditingTools.c"
		} else {
			gfloat _tmp12_;
#line 919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp12_ = _result_;
#line 919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp12_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO) {
#line 7419 "EditingTools.c"
				gfloat _tmp13_;
#line 920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp13_ = self->priv->custom_aspect_ratio;
#line 920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_result_ = _tmp13_;
#line 7425 "EditingTools.c"
			}
		}
	}
#line 922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->reticle_orientation;
#line 922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp14_ == EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT) {
#line 7433 "EditingTools.c"
		gfloat _tmp15_;
#line 923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp15_ = _result_;
#line 923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_result_ = 1.0f / _tmp15_;
#line 7439 "EditingTools.c"
	}
#line 925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _result_;
#line 925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 7445 "EditingTools.c"
}


static void
editing_tools_crop_tool_constraint_changed (EditingToolsCropTool* self)
{
	EditingToolsCropToolConstraintDescription* selected_constraint = NULL;
	EditingToolsCropToolConstraintDescription* _tmp0_;
	EditingToolsCropToolConstraintDescription* _tmp1_;
	gfloat _tmp2_;
	EditingToolsCropToolConstraintDescription* _tmp11_;
	EditingToolsCropToolConstraintDescription* _tmp12_;
	gboolean _tmp13_;
	gboolean _tmp14_;
	gfloat _tmp15_;
#line 929 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 930 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_crop_tool_get_selected_constraint (self);
#line 930 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	selected_constraint = _tmp0_;
#line 931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = selected_constraint;
#line 931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_->aspect_ratio;
#line 931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp2_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO) {
#line 932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_set_custom_constraint_mode (self);
#line 7475 "EditingTools.c"
	} else {
		EditingToolsCropToolConstraintDescription* _tmp3_;
		gfloat _tmp4_;
#line 934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_set_normal_constraint_mode (self);
#line 936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = selected_constraint;
#line 936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = _tmp3_->aspect_ratio;
#line 936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp4_ != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 7487 "EditingTools.c"
			ConfigFacade* _tmp5_;
			ConfigFacade* _tmp6_;
			ConfigFacade* _tmp7_;
			ConfigFacade* _tmp8_;
			gint _tmp9_;
			gint _tmp10_;
#line 940 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp5_ = config_facade_get_instance ();
#line 940 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp6_ = _tmp5_;
#line 940 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			self->priv->custom_init_width = configuration_facade_get_last_crop_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 940 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_object_unref0 (_tmp6_);
#line 941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp7_ = config_facade_get_instance ();
#line 941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp8_ = _tmp7_;
#line 941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			self->priv->custom_init_height = configuration_facade_get_last_crop_height (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_object_unref0 (_tmp8_);
#line 942 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp9_ = self->priv->custom_init_width;
#line 942 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp10_ = self->priv->custom_init_height;
#line 942 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			self->priv->custom_aspect_ratio = ((gfloat) _tmp9_) / ((gfloat) _tmp10_);
#line 7516 "EditingTools.c"
		}
	}
#line 946 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_update_pivot_button_state (self);
#line 948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = editing_tools_crop_tool_get_selected_constraint (self);
#line 948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_;
#line 948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_->is_pivotable;
#line 948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = !_tmp13_;
#line 948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_editing_tools_crop_tool_constraint_description_unref0 (_tmp12_);
#line 948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp14_) {
#line 949 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->reticle_orientation = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE;
#line 7535 "EditingTools.c"
	}
#line 951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->priv->pre_aspect_ratio;
#line 951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) != _tmp15_) {
#line 7541 "EditingTools.c"
		Box new_crop = {0};
		Box _tmp16_;
		Box _tmp17_ = {0};
		Box _tmp18_;
		Box _tmp19_;
		EditingToolsPhotoCanvas* _tmp20_;
		Box _tmp21_;
		EditingToolsPhotoCanvas* _tmp22_;
#line 952 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = self->priv->scaled_crop;
#line 952 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_constrain_crop (self, &_tmp16_, &_tmp17_);
#line 952 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		new_crop = _tmp17_;
#line 954 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp18_ = new_crop;
#line 954 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_crop_resized (self, &_tmp18_);
#line 955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = new_crop;
#line 955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->scaled_crop = _tmp19_;
#line 956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp20_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp21_ = new_crop;
#line 956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_invalidate_area (_tmp20_, &_tmp21_);
#line 957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_repaint (_tmp22_);
#line 959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->pre_aspect_ratio = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 7576 "EditingTools.c"
	}
#line 929 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_editing_tools_crop_tool_constraint_description_unref0 (selected_constraint);
#line 7580 "EditingTools.c"
}


static void
editing_tools_crop_tool_set_custom_constraint_mode (EditingToolsCropTool* self)
{
	EditingToolsCropToolConstraintMode _tmp0_;
	gboolean _tmp1_ = FALSE;
	EditingToolsCropToolCropToolWindow* _tmp2_;
	gint _tmp3_;
	EditingToolsCropToolCropToolWindow* _tmp11_;
	GtkBox* _tmp12_;
	EditingToolsCropToolCropToolWindow* _tmp13_;
	GtkComboBox* _tmp14_;
	EditingToolsCropToolCropToolWindow* _tmp15_;
	GtkBox* _tmp16_;
	EditingToolsCropToolCropToolWindow* _tmp17_;
	GtkButton* _tmp18_;
	EditingToolsCropToolCropToolWindow* _tmp19_;
	GtkBox* _tmp20_;
	EditingToolsCropToolCropToolWindow* _tmp21_;
	GtkBox* _tmp22_;
	EditingToolsCropToolCropToolWindow* _tmp23_;
	GtkBox* _tmp24_;
	EditingToolsCropToolCropToolWindow* _tmp25_;
	GtkComboBox* _tmp26_;
	EditingToolsCropToolCropToolWindow* _tmp27_;
	GtkBox* _tmp28_;
	EditingToolsCropToolCropToolWindow* _tmp29_;
	GtkEntry* _tmp30_;
	EditingToolsCropToolCropToolWindow* _tmp31_;
	GtkBox* _tmp32_;
	EditingToolsCropToolCropToolWindow* _tmp33_;
	GtkLabel* _tmp34_;
	EditingToolsCropToolCropToolWindow* _tmp35_;
	GtkBox* _tmp36_;
	EditingToolsCropToolCropToolWindow* _tmp37_;
	GtkEntry* _tmp38_;
	EditingToolsCropToolCropToolWindow* _tmp39_;
	GtkBox* _tmp40_;
	EditingToolsCropToolCropToolWindow* _tmp41_;
	GtkButton* _tmp42_;
	EditingToolsCropToolCropToolWindow* _tmp43_;
	GtkBox* _tmp44_;
	EditingToolsCropToolCropToolWindow* _tmp45_;
	GtkBox* _tmp46_;
	EditingToolsCropToolReticleOrientation _tmp47_;
	gint _tmp68_;
	gint _tmp69_;
	EditingToolsCropToolCropToolWindow* _tmp70_;
#line 963 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 964 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->constraint_mode;
#line 964 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM) {
#line 965 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 7639 "EditingTools.c"
	}
#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->crop_tool_window;
#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_->normal_width;
#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_ == -1) {
#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = TRUE;
#line 7649 "EditingTools.c"
	} else {
		EditingToolsCropToolCropToolWindow* _tmp4_;
		gint _tmp5_;
#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = self->priv->crop_tool_window;
#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = _tmp4_->normal_height;
#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = _tmp5_ == -1;
#line 7659 "EditingTools.c"
	}
#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_) {
#line 7663 "EditingTools.c"
		EditingToolsCropToolCropToolWindow* _tmp6_;
		EditingToolsCropToolCropToolWindow* _tmp7_;
		EditingToolsCropToolCropToolWindow* _tmp8_;
		gint _tmp9_ = 0;
		gint _tmp10_ = 0;
#line 968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = self->priv->crop_tool_window;
#line 968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = self->priv->crop_tool_window;
#line 968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = self->priv->crop_tool_window;
#line 968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_window_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_window_get_type (), GtkWindow), &_tmp9_, &_tmp10_);
#line 968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_->normal_width = _tmp9_;
#line 968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_->normal_height = _tmp10_;
#line 7681 "EditingTools.c"
	}
#line 971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->crop_tool_window;
#line 971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_->layout;
#line 971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->priv->crop_tool_window;
#line 971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_->constraint_combo;
#line 971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget));
#line 972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->priv->crop_tool_window;
#line 972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = _tmp15_->layout;
#line 972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = self->priv->crop_tool_window;
#line 972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = _tmp17_->pivot_reticle_button;
#line 972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget));
#line 973 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = self->priv->crop_tool_window;
#line 973 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = _tmp19_->layout;
#line 973 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = self->priv->crop_tool_window;
#line 973 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = _tmp21_->response_layout;
#line 973 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget));
#line 975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = self->priv->crop_tool_window;
#line 975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = _tmp23_->layout;
#line 975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = self->priv->crop_tool_window;
#line 975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = _tmp25_->constraint_combo;
#line 975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget));
#line 976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = self->priv->crop_tool_window;
#line 976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = _tmp27_->layout;
#line 976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = self->priv->crop_tool_window;
#line 976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = _tmp29_->custom_width_entry;
#line 976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_widget_get_type (), GtkWidget));
#line 977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = self->priv->crop_tool_window;
#line 977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = _tmp31_->layout;
#line 977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = self->priv->crop_tool_window;
#line 977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = _tmp33_->custom_mulsign_label;
#line 977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget));
#line 978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp35_ = self->priv->crop_tool_window;
#line 978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp36_ = _tmp35_->layout;
#line 978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp37_ = self->priv->crop_tool_window;
#line 978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp38_ = _tmp37_->custom_height_entry;
#line 978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_widget_get_type (), GtkWidget));
#line 979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp39_ = self->priv->crop_tool_window;
#line 979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp40_ = _tmp39_->layout;
#line 979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp41_ = self->priv->crop_tool_window;
#line 979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp42_ = _tmp41_->pivot_reticle_button;
#line 979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_widget_get_type (), GtkWidget));
#line 980 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp43_ = self->priv->crop_tool_window;
#line 980 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp44_ = _tmp43_->layout;
#line 980 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp45_ = self->priv->crop_tool_window;
#line 980 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp46_ = _tmp45_->response_layout;
#line 980 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget));
#line 982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp47_ = self->priv->reticle_orientation;
#line 982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp47_ == EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE) {
#line 7777 "EditingTools.c"
		EditingToolsCropToolCropToolWindow* _tmp48_;
		GtkEntry* _tmp49_;
		gint _tmp50_;
		gchar* _tmp51_;
		gchar* _tmp52_;
		EditingToolsCropToolCropToolWindow* _tmp53_;
		GtkEntry* _tmp54_;
		gint _tmp55_;
		gchar* _tmp56_;
		gchar* _tmp57_;
#line 983 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp48_ = self->priv->crop_tool_window;
#line 983 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp49_ = _tmp48_->custom_width_entry;
#line 983 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp50_ = self->priv->custom_init_width;
#line 983 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp51_ = g_strdup_printf ("%d", _tmp50_);
#line 983 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp52_ = _tmp51_;
#line 983 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_entry_set_text (_tmp49_, _tmp52_);
#line 983 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp52_);
#line 984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp53_ = self->priv->crop_tool_window;
#line 984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp54_ = _tmp53_->custom_height_entry;
#line 984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp55_ = self->priv->custom_init_height;
#line 984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp56_ = g_strdup_printf ("%d", _tmp55_);
#line 984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp57_ = _tmp56_;
#line 984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_entry_set_text (_tmp54_, _tmp57_);
#line 984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp57_);
#line 7816 "EditingTools.c"
	} else {
		EditingToolsCropToolCropToolWindow* _tmp58_;
		GtkEntry* _tmp59_;
		gint _tmp60_;
		gchar* _tmp61_;
		gchar* _tmp62_;
		EditingToolsCropToolCropToolWindow* _tmp63_;
		GtkEntry* _tmp64_;
		gint _tmp65_;
		gchar* _tmp66_;
		gchar* _tmp67_;
#line 986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp58_ = self->priv->crop_tool_window;
#line 986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp59_ = _tmp58_->custom_width_entry;
#line 986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp60_ = self->priv->custom_init_height;
#line 986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp61_ = g_strdup_printf ("%d", _tmp60_);
#line 986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp62_ = _tmp61_;
#line 986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_entry_set_text (_tmp59_, _tmp62_);
#line 986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp62_);
#line 987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp63_ = self->priv->crop_tool_window;
#line 987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp64_ = _tmp63_->custom_height_entry;
#line 987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp65_ = self->priv->custom_init_width;
#line 987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp66_ = g_strdup_printf ("%d", _tmp65_);
#line 987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp67_ = _tmp66_;
#line 987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_entry_set_text (_tmp64_, _tmp67_);
#line 987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp67_);
#line 7856 "EditingTools.c"
	}
#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp68_ = self->priv->custom_init_width;
#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp69_ = self->priv->custom_init_height;
#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_aspect_ratio = ((gfloat) _tmp68_) / ((gfloat) _tmp69_);
#line 991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp70_ = self->priv->crop_tool_window;
#line 991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, gtk_widget_get_type (), GtkWidget));
#line 993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->constraint_mode = EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM;
#line 7870 "EditingTools.c"
}


static void
editing_tools_crop_tool_set_normal_constraint_mode (EditingToolsCropTool* self)
{
	EditingToolsCropToolConstraintMode _tmp0_;
	EditingToolsCropToolCropToolWindow* _tmp1_;
	GtkBox* _tmp2_;
	EditingToolsCropToolCropToolWindow* _tmp3_;
	GtkComboBox* _tmp4_;
	EditingToolsCropToolCropToolWindow* _tmp5_;
	GtkBox* _tmp6_;
	EditingToolsCropToolCropToolWindow* _tmp7_;
	GtkEntry* _tmp8_;
	EditingToolsCropToolCropToolWindow* _tmp9_;
	GtkBox* _tmp10_;
	EditingToolsCropToolCropToolWindow* _tmp11_;
	GtkLabel* _tmp12_;
	EditingToolsCropToolCropToolWindow* _tmp13_;
	GtkBox* _tmp14_;
	EditingToolsCropToolCropToolWindow* _tmp15_;
	GtkEntry* _tmp16_;
	EditingToolsCropToolCropToolWindow* _tmp17_;
	GtkBox* _tmp18_;
	EditingToolsCropToolCropToolWindow* _tmp19_;
	GtkButton* _tmp20_;
	EditingToolsCropToolCropToolWindow* _tmp21_;
	GtkBox* _tmp22_;
	EditingToolsCropToolCropToolWindow* _tmp23_;
	GtkBox* _tmp24_;
	EditingToolsCropToolCropToolWindow* _tmp25_;
	GtkBox* _tmp26_;
	EditingToolsCropToolCropToolWindow* _tmp27_;
	GtkComboBox* _tmp28_;
	EditingToolsCropToolCropToolWindow* _tmp29_;
	GtkBox* _tmp30_;
	EditingToolsCropToolCropToolWindow* _tmp31_;
	GtkButton* _tmp32_;
	EditingToolsCropToolCropToolWindow* _tmp33_;
	GtkBox* _tmp34_;
	EditingToolsCropToolCropToolWindow* _tmp35_;
	GtkBox* _tmp36_;
	EditingToolsCropToolCropToolWindow* _tmp37_;
	EditingToolsCropToolCropToolWindow* _tmp38_;
	gint _tmp39_;
	EditingToolsCropToolCropToolWindow* _tmp40_;
	gint _tmp41_;
	EditingToolsCropToolCropToolWindow* _tmp42_;
#line 996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->constraint_mode;
#line 997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL) {
#line 998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 7928 "EditingTools.c"
	}
#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->crop_tool_window;
#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_->layout;
#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->crop_tool_window;
#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_->constraint_combo;
#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->crop_tool_window;
#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_->layout;
#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->crop_tool_window;
#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_->custom_width_entry;
#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
#line 1002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->crop_tool_window;
#line 1002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_->layout;
#line 1002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->crop_tool_window;
#line 1002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_->custom_mulsign_label;
#line 1002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
#line 1003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->priv->crop_tool_window;
#line 1003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_->layout;
#line 1003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->priv->crop_tool_window;
#line 1003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = _tmp15_->custom_height_entry;
#line 1003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget));
#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = self->priv->crop_tool_window;
#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = _tmp17_->layout;
#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = self->priv->crop_tool_window;
#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = _tmp19_->pivot_reticle_button;
#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget));
#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = self->priv->crop_tool_window;
#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = _tmp21_->layout;
#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = self->priv->crop_tool_window;
#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = _tmp23_->response_layout;
#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget));
#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = self->priv->crop_tool_window;
#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = _tmp25_->layout;
#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = self->priv->crop_tool_window;
#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = _tmp27_->constraint_combo;
#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget));
#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = self->priv->crop_tool_window;
#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = _tmp29_->layout;
#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = self->priv->crop_tool_window;
#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = _tmp31_->pivot_reticle_button;
#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget));
#line 1009 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = self->priv->crop_tool_window;
#line 1009 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = _tmp33_->layout;
#line 1009 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp35_ = self->priv->crop_tool_window;
#line 1009 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp36_ = _tmp35_->response_layout;
#line 1009 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_widget_get_type (), GtkWidget));
#line 1011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp37_ = self->priv->crop_tool_window;
#line 1011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp38_ = self->priv->crop_tool_window;
#line 1011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp39_ = _tmp38_->normal_width;
#line 1011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp40_ = self->priv->crop_tool_window;
#line 1011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp41_ = _tmp40_->normal_height;
#line 1011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_window_resize (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_window_get_type (), GtkWindow), _tmp39_, _tmp41_);
#line 1014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp42_ = self->priv->crop_tool_window;
#line 1014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_widget_get_type (), GtkWidget));
#line 1016 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->constraint_mode = EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL;
#line 8038 "EditingTools.c"
}


static void
editing_tools_crop_tool_constrain_crop (EditingToolsCropTool* self,
                                        Box* crop,
                                        Box* result)
{
	gfloat user_aspect_ratio = 0.0F;
	gfloat _tmp0_;
	gfloat old_area = 0.0F;
	gfloat _tmp2_;
	gfloat _tmp3_;
	gfloat _tmp4_;
	gfloat _tmp5_;
	Dimensions image_size = {0};
	Dimensions _tmp6_ = {0};
	gdouble angle = 0.0;
	EditingToolsPhotoCanvas* _tmp7_;
	Photo* _tmp8_;
	Photo* _tmp9_;
	gdouble _tmp10_ = 0.0;
	Box _tmp11_;
	Dimensions _tmp12_;
	gint _tmp13_;
	Dimensions _tmp14_;
	gint _tmp15_;
	gdouble _tmp16_;
	Box _tmp17_ = {0};
	gfloat _tmp18_;
	Box _tmp21_;
#line 1019 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1019 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (crop != NULL);
#line 1020 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	user_aspect_ratio = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1021 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = user_aspect_ratio;
#line 1021 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 8080 "EditingTools.c"
		Box _tmp1_;
#line 1022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = *crop;
#line 1022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*result = _tmp1_;
#line 1022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 8088 "EditingTools.c"
	}
#line 1025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old_area = (gfloat) (box_get_width (crop) * box_get_height (crop));
#line 1026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = old_area;
#line 1026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = user_aspect_ratio;
#line 1026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_adjust_height (crop, (gint) sqrt ((gdouble) (_tmp2_ / _tmp3_)));
#line 1027 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = old_area;
#line 1027 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = user_aspect_ratio;
#line 1027 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_adjust_width (crop, (gint) sqrt ((gdouble) (_tmp4_ * _tmp5_)));
#line 1030 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_get_photo_dimensions (self, &_tmp6_);
#line 1030 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	image_size = _tmp6_;
#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = editing_tools_photo_canvas_get_photo (_tmp7_);
#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_;
#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_get_straighten (_tmp9_, &_tmp10_);
#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	angle = _tmp10_;
#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp9_);
#line 1033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = *crop;
#line 1033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = image_size;
#line 1033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.width;
#line 1033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = image_size;
#line 1033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_.height;
#line 1033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = angle;
#line 1033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	clamp_inside_rotated_image (&_tmp11_, _tmp13_, _tmp15_, _tmp16_, FALSE, &_tmp17_);
#line 1033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*crop = _tmp17_;
#line 1036 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = user_aspect_ratio;
#line 1036 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (((gfloat) box_get_width (crop)) >= (box_get_height (crop) * _tmp18_)) {
#line 8140 "EditingTools.c"
		gfloat _tmp19_;
#line 1037 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = user_aspect_ratio;
#line 1037 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		box_adjust_width (crop, (gint) (box_get_height (crop) * _tmp19_));
#line 8146 "EditingTools.c"
	} else {
		gfloat _tmp20_;
#line 1039 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp20_ = user_aspect_ratio;
#line 1039 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		box_adjust_height (crop, (gint) (box_get_width (crop) / _tmp20_));
#line 8153 "EditingTools.c"
	}
#line 1041 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = *crop;
#line 1041 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _tmp21_;
#line 1041 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 8161 "EditingTools.c"
}


static EditingToolsCropToolConstraintDescription*
editing_tools_crop_tool_get_last_constraint (EditingToolsCropTool* self,
                                             gint* index)
{
	gint _vala_index = 0;
	EditingToolsCropToolConstraintDescription* result = NULL;
	ConfigFacade* _tmp0_;
	ConfigFacade* _tmp1_;
	EditingToolsCropToolConstraintDescription* _tmp2_ = NULL;
	gint _tmp3_;
	EditingToolsCropToolConstraintDescription** _tmp4_;
	gint _tmp4__length1;
	EditingToolsCropToolConstraintDescription* _tmp8_;
#line 1044 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), NULL);
#line 1045 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = config_facade_get_instance ();
#line 1045 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 1045 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_index = configuration_facade_get_last_crop_menu_choice (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 1045 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp1_);
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _vala_index;
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->constraints;
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4__length1 = self->priv->constraints_length1;
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_ < _tmp4__length1) {
#line 8196 "EditingTools.c"
		EditingToolsCropToolConstraintDescription** _tmp5_;
		gint _tmp5__length1;
		gint _tmp6_;
		EditingToolsCropToolConstraintDescription* _tmp7_;
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = self->priv->constraints;
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5__length1 = self->priv->constraints_length1;
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = _vala_index;
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = _tmp5_[_tmp6_];
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = _tmp7_;
#line 8211 "EditingTools.c"
	} else {
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = NULL;
#line 8215 "EditingTools.c"
	}
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _editing_tools_crop_tool_constraint_description_ref0 (_tmp2_);
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp8_;
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (index) {
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*index = _vala_index;
#line 8225 "EditingTools.c"
	}
#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 8229 "EditingTools.c"
}


static void
editing_tools_crop_tool_real_activate (EditingToolsEditingTool* base,
                                       EditingToolsPhotoCanvas* canvas)
{
	EditingToolsCropTool * self;
	cairo_t* _tmp0_;
	cairo_t* _tmp1_;
	Dimensions _tmp2_ = {0};
	cairo_surface_t* _tmp3_;
	GdkRectangle _tmp4_ = {0};
	gint _tmp5_;
	GdkRectangle _tmp6_ = {0};
	gint _tmp7_;
	cairo_surface_t* _tmp8_;
	cairo_t* ctx = NULL;
	cairo_surface_t* _tmp9_;
	cairo_t* _tmp10_;
	cairo_t* _tmp11_;
	cairo_t* _tmp12_;
	GtkWindow* _tmp13_;
	GtkWindow* _tmp14_;
	EditingToolsCropToolCropToolWindow* _tmp15_;
	EditingToolsCropToolCropToolWindow* _tmp16_;
	GtkComboBox* _tmp17_;
	GtkListStore* _tmp18_;
	Photo* _tmp19_;
	Photo* _tmp20_;
	gboolean _tmp21_;
	Dimensions uncropped_dim = {0};
	Photo* _tmp49_;
	Photo* _tmp50_;
	Dimensions _tmp51_ = {0};
	Dimensions _tmp52_;
	Box crop = {0};
	Photo* _tmp53_;
	Photo* _tmp54_;
	Box _tmp55_ = {0};
	gboolean _tmp56_;
	gboolean _tmp57_;
	Dimensions _tmp70_;
	GdkRectangle _tmp71_ = {0};
	Dimensions _tmp72_ = {0};
	Box _tmp73_ = {0};
	ConfigFacade* _tmp74_;
	ConfigFacade* _tmp75_;
	ConfigFacade* _tmp76_;
	ConfigFacade* _tmp77_;
	gint _tmp78_;
	gint _tmp79_;
	gint _tmp80_;
	gint _tmp81_;
	EditingToolsCropToolCropToolWindow* _tmp82_;
	Photo* _tmp83_;
	Photo* _tmp84_;
	gboolean _tmp85_;
	Box new_crop = {0};
	Box _tmp93_;
	Box _tmp94_ = {0};
	Box _tmp95_;
	Box _tmp96_;
	Box _tmp97_;
#line 1050 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1050 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 1051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_bind_canvas_handlers (self, canvas);
#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_photo_canvas_get_default_ctx (canvas);
#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_surface_dim (canvas, &_tmp2_);
#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_prepare_ctx (self, _tmp1_, &_tmp2_);
#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (_tmp1_);
#line 1055 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->crop_surface;
#line 1055 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_ != NULL) {
#line 1056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_cairo_surface_destroy0 (self->priv->crop_surface);
#line 1056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->crop_surface = NULL;
#line 8318 "EditingTools.c"
	}
#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (canvas, &_tmp4_);
#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.width;
#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (canvas, &_tmp6_);
#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.height;
#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp5_, _tmp7_);
#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_surface_destroy0 (self->priv->crop_surface);
#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->crop_surface = _tmp8_;
#line 1062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->crop_surface;
#line 1062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = cairo_create (_tmp9_);
#line 1062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	ctx = _tmp10_;
#line 1063 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = ctx;
#line 1063 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_rgba (_tmp11_, 0.0, 0.0, 0.0, 1.0);
#line 1064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = ctx;
#line 1064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_paint (_tmp12_);
#line 1067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = editing_tools_photo_canvas_get_container (canvas);
#line 1067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_;
#line 1067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = editing_tools_crop_tool_crop_tool_window_new (_tmp14_);
#line 1067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp15_);
#line 1067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->crop_tool_window);
#line 1067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->crop_tool_window = _tmp15_;
#line 1067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp14_);
#line 1070 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = self->priv->crop_tool_window;
#line 1070 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _tmp16_->constraint_combo;
#line 1070 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->priv->constraint_list;
#line 1070 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_combo_box_set_model (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_tree_model_get_type (), GtkTreeModel));
#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = editing_tools_photo_canvas_get_photo (canvas);
#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = _tmp19_;
#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = !photo_has_crop (_tmp20_);
#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp20_);
#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp21_) {
#line 8380 "EditingTools.c"
		gint index = 0;
		EditingToolsCropToolConstraintDescription* desc = NULL;
		gint _tmp22_ = 0;
		EditingToolsCropToolConstraintDescription* _tmp23_;
		gboolean _tmp24_ = FALSE;
		EditingToolsCropToolConstraintDescription* _tmp25_;
#line 1073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp23_ = editing_tools_crop_tool_get_last_constraint (self, &_tmp22_);
#line 1073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		index = _tmp22_;
#line 1073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		desc = _tmp23_;
#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp25_ = desc;
#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp25_ != NULL) {
#line 8397 "EditingTools.c"
			EditingToolsCropToolConstraintDescription* _tmp26_;
#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp26_ = desc;
#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp24_ = !editing_tools_crop_tool_constraint_description_is_separator (_tmp26_);
#line 8403 "EditingTools.c"
		} else {
#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp24_ = FALSE;
#line 8407 "EditingTools.c"
		}
#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp24_) {
#line 8411 "EditingTools.c"
			EditingToolsCropToolCropToolWindow* _tmp27_;
			GtkComboBox* _tmp28_;
			gint _tmp29_;
#line 1075 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp27_ = self->priv->crop_tool_window;
#line 1075 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp28_ = _tmp27_->constraint_combo;
#line 1075 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp29_ = index;
#line 1075 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_combo_box_set_active (_tmp28_, _tmp29_);
#line 8423 "EditingTools.c"
		}
#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_editing_tools_crop_tool_constraint_description_unref0 (desc);
#line 8427 "EditingTools.c"
	} else {
		Photo* photo = NULL;
		Photo* _tmp30_;
		Dimensions cropped_dim = {0};
		Photo* _tmp31_;
		Dimensions _tmp32_ = {0};
		gfloat ratio = 0.0F;
		Dimensions _tmp33_;
		gint _tmp34_;
		Dimensions _tmp35_;
		gint _tmp36_;
#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp30_ = editing_tools_photo_canvas_get_photo (canvas);
#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		photo = _tmp30_;
#line 1080 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp31_ = photo;
#line 1080 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp32_);
#line 1080 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		cropped_dim = _tmp32_;
#line 1081 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp33_ = cropped_dim;
#line 1081 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp34_ = _tmp33_.width;
#line 1081 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp35_ = cropped_dim;
#line 1081 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp36_ = _tmp35_.height;
#line 1081 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		ratio = ((gfloat) _tmp34_) / ((gfloat) _tmp36_);
#line 8459 "EditingTools.c"
		{
			gint index = 0;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			index = 1;
#line 8464 "EditingTools.c"
			{
				gboolean _tmp37_ = FALSE;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp37_ = TRUE;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				while (TRUE) {
#line 8471 "EditingTools.c"
					gint _tmp39_;
					EditingToolsCropToolConstraintDescription** _tmp40_;
					gint _tmp40__length1;
					gfloat _tmp41_;
					EditingToolsCropToolConstraintDescription** _tmp42_;
					gint _tmp42__length1;
					gint _tmp43_;
					EditingToolsCropToolConstraintDescription* _tmp44_;
					Photo* _tmp45_;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					if (!_tmp37_) {
#line 8483 "EditingTools.c"
						gint _tmp38_;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						_tmp38_ = index;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						index = _tmp38_ + 1;
#line 8489 "EditingTools.c"
					}
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp37_ = FALSE;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp39_ = index;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp40_ = self->priv->constraints;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp40__length1 = self->priv->constraints_length1;
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					if (!(_tmp39_ < _tmp40__length1)) {
#line 1082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						break;
#line 8503 "EditingTools.c"
					}
#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp41_ = ratio;
#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp42_ = self->priv->constraints;
#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp42__length1 = self->priv->constraints_length1;
#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp43_ = index;
#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp44_ = _tmp42_[_tmp43_];
#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp45_ = photo;
#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					if (fabs ((gdouble) (_tmp41_ - editing_tools_crop_tool_get_constraint_aspect_ratio_for_constraint (self, _tmp44_, _tmp45_))) < 0.005) {
#line 8519 "EditingTools.c"
						EditingToolsCropToolCropToolWindow* _tmp46_;
						GtkComboBox* _tmp47_;
						gint _tmp48_;
#line 1084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						_tmp46_ = self->priv->crop_tool_window;
#line 1084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						_tmp47_ = _tmp46_->constraint_combo;
#line 1084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						_tmp48_ = index;
#line 1084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						gtk_combo_box_set_active (_tmp47_, _tmp48_);
#line 8531 "EditingTools.c"
					}
				}
			}
		}
#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (photo);
#line 8538 "EditingTools.c"
	}
#line 1089 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_update_pivot_button_state (self);
#line 1090 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->reticle_orientation = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE;
#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_bind_window_handlers (self);
#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp49_ = editing_tools_photo_canvas_get_photo (canvas);
#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp50_ = _tmp49_;
#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp51_);
#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp52_ = _tmp51_;
#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp50_);
#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	uncropped_dim = _tmp52_;
#line 1098 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp53_ = editing_tools_photo_canvas_get_photo (canvas);
#line 1098 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp54_ = _tmp53_;
#line 1098 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp56_ = photo_get_crop (_tmp54_, &_tmp55_, PHOTO_EXCEPTION_NONE);
#line 1098 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	crop = _tmp55_;
#line 1098 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp57_ = !_tmp56_;
#line 1098 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp54_);
#line 1098 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp57_) {
#line 8572 "EditingTools.c"
		gint xofs = 0;
		Dimensions _tmp58_;
		gint _tmp59_;
		gint yofs = 0;
		Dimensions _tmp60_;
		gint _tmp61_;
		gint _tmp62_;
		gint _tmp63_;
		Dimensions _tmp64_;
		gint _tmp65_;
		gint _tmp66_;
		Dimensions _tmp67_;
		gint _tmp68_;
		gint _tmp69_;
#line 1099 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp58_ = uncropped_dim;
#line 1099 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp59_ = _tmp58_.width;
#line 1099 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		xofs = (gint) (_tmp59_ * EDITING_TOOLS_CROP_TOOL_CROP_INIT_X_PCT);
#line 1100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp60_ = uncropped_dim;
#line 1100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp61_ = _tmp60_.height;
#line 1100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		yofs = (gint) (_tmp61_ * EDITING_TOOLS_CROP_TOOL_CROP_INIT_Y_PCT);
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp62_ = xofs;
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp63_ = yofs;
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp64_ = uncropped_dim;
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp65_ = _tmp64_.width;
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp66_ = xofs;
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp67_ = uncropped_dim;
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp68_ = _tmp67_.height;
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp69_ = yofs;
#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		box_init (&crop, _tmp62_, _tmp63_, _tmp65_ - _tmp66_, _tmp68_ - _tmp69_);
#line 8617 "EditingTools.c"
	}
#line 1109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp70_ = uncropped_dim;
#line 1109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (canvas, &_tmp71_);
#line 1109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	dimensions_for_rectangle (&_tmp71_, &_tmp72_);
#line 1109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_scaled_similar (&crop, &_tmp70_, &_tmp72_, &_tmp73_);
#line 1109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_crop = _tmp73_;
#line 1114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp74_ = config_facade_get_instance ();
#line 1114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp75_ = _tmp74_;
#line 1114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_width = configuration_facade_get_last_crop_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 1114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp75_);
#line 1115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp76_ = config_facade_get_instance ();
#line 1115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp77_ = _tmp76_;
#line 1115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_height = configuration_facade_get_last_crop_height (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 1115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp77_);
#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp78_ = self->priv->custom_width;
#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_init_width = _tmp78_;
#line 1117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp79_ = self->priv->custom_height;
#line 1117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_init_height = _tmp79_;
#line 1118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp80_ = self->priv->custom_init_width;
#line 1118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp81_ = self->priv->custom_init_height;
#line 1118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->pre_aspect_ratio = ((gfloat) _tmp80_) / ((gfloat) _tmp81_);
#line 1120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->constraint_mode = EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL;
#line 1122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_crop_tool_parent_class)->activate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), canvas);
#line 1124 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp82_ = self->priv->crop_tool_window;
#line 1124 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, gtk_widget_get_type (), GtkWidget));
#line 1127 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp83_ = editing_tools_photo_canvas_get_photo (canvas);
#line 1127 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp84_ = _tmp83_;
#line 1127 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp85_ = !photo_has_crop (_tmp84_);
#line 1127 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp84_);
#line 1127 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp85_) {
#line 8677 "EditingTools.c"
		EditingToolsCropToolConstraintDescription* desc = NULL;
		EditingToolsCropToolConstraintDescription* _tmp86_;
		gboolean _tmp87_ = FALSE;
		gboolean _tmp88_ = FALSE;
		EditingToolsCropToolConstraintDescription* _tmp89_;
#line 1128 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp86_ = editing_tools_crop_tool_get_last_constraint (self, NULL);
#line 1128 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		desc = _tmp86_;
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp89_ = desc;
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp89_ != NULL) {
#line 8691 "EditingTools.c"
			EditingToolsCropToolConstraintDescription* _tmp90_;
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp90_ = desc;
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp88_ = !editing_tools_crop_tool_constraint_description_is_separator (_tmp90_);
#line 8697 "EditingTools.c"
		} else {
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp88_ = FALSE;
#line 8701 "EditingTools.c"
		}
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp88_) {
#line 8705 "EditingTools.c"
			EditingToolsCropToolConstraintDescription* _tmp91_;
			gfloat _tmp92_;
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp91_ = desc;
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp92_ = _tmp91_->aspect_ratio;
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp87_ = _tmp92_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO;
#line 8714 "EditingTools.c"
		} else {
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp87_ = FALSE;
#line 8718 "EditingTools.c"
		}
#line 1129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp87_) {
#line 1130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			editing_tools_crop_tool_set_custom_constraint_mode (self);
#line 8724 "EditingTools.c"
		}
#line 1127 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_editing_tools_crop_tool_constraint_description_unref0 (desc);
#line 8728 "EditingTools.c"
	}
#line 1137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp93_ = self->priv->scaled_crop;
#line 1137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_constrain_crop (self, &_tmp93_, &_tmp94_);
#line 1137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_crop = _tmp94_;
#line 1139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp95_ = new_crop;
#line 1139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_crop_resized (self, &_tmp95_);
#line 1140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp96_ = new_crop;
#line 1140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_crop = _tmp96_;
#line 1141 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp97_ = new_crop;
#line 1141 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_invalidate_area (canvas, &_tmp97_);
#line 1142 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (canvas);
#line 1144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->pre_aspect_ratio = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1050 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (ctx);
#line 8754 "EditingTools.c"
}


static void
_editing_tools_crop_tool_prepare_ctx_editing_tools_photo_canvas_new_surface (EditingToolsPhotoCanvas* _sender,
                                                                             cairo_t* ctx,
                                                                             Dimensions* dim,
                                                                             gpointer self)
{
#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_prepare_ctx ((EditingToolsCropTool*) self, ctx, dim);
#line 8766 "EditingTools.c"
}


static void
_editing_tools_crop_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender,
                                                                                             Dimensions* old_dim,
                                                                                             GdkPixbuf* scaled,
                                                                                             GdkRectangle* scaled_position,
                                                                                             gpointer self)
{
#line 1149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_on_resized_pixbuf ((EditingToolsCropTool*) self, old_dim, scaled, scaled_position);
#line 8779 "EditingTools.c"
}


static void
editing_tools_crop_tool_bind_canvas_handlers (EditingToolsCropTool* self,
                                              EditingToolsPhotoCanvas* canvas)
{
#line 1147 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1147 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (canvas, "new-surface", (GCallback) _editing_tools_crop_tool_prepare_ctx_editing_tools_photo_canvas_new_surface, self);
#line 1149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (canvas, "resized-scaled-pixbuf", (GCallback) _editing_tools_crop_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
#line 8795 "EditingTools.c"
}


static void
editing_tools_crop_tool_unbind_canvas_handlers (EditingToolsCropTool* self,
                                                EditingToolsPhotoCanvas* canvas)
{
	guint _tmp0_;
	guint _tmp1_;
#line 1152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 1153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("new-surface", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp0_, NULL, FALSE);
#line 1153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (canvas, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _editing_tools_crop_tool_prepare_ctx_editing_tools_photo_canvas_new_surface, self);
#line 1154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp1_, NULL, FALSE);
#line 1154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (canvas, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
#line 8817 "EditingTools.c"
}


static void
_editing_tools_crop_tool_on_crop_ok_gtk_button_clicked (GtkButton* _sender,
                                                        gpointer self)
{
#line 1159 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_on_crop_ok ((EditingToolsCropTool*) self);
#line 8827 "EditingTools.c"
}


static void
_editing_tools_editing_tool_notify_cancel_gtk_button_clicked (GtkButton* _sender,
                                                              gpointer self)
{
#line 1160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_editing_tool_notify_cancel ((EditingToolsEditingTool*) self);
#line 8837 "EditingTools.c"
}


static void
_editing_tools_crop_tool_constraint_changed_gtk_combo_box_changed (GtkComboBox* _sender,
                                                                   gpointer self)
{
#line 1161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_constraint_changed ((EditingToolsCropTool*) self);
#line 8847 "EditingTools.c"
}


static void
_editing_tools_crop_tool_on_pivot_button_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                     gpointer self)
{
#line 1162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_on_pivot_button_clicked ((EditingToolsCropTool*) self);
#line 8857 "EditingTools.c"
}


static gboolean
_editing_tools_crop_tool_on_width_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender,
                                                                              GdkEventFocus* event,
                                                                              gpointer self)
{
	gboolean result;
	result = editing_tools_crop_tool_on_width_entry_focus_out ((EditingToolsCropTool*) self, event);
#line 1165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 8870 "EditingTools.c"
}


static gboolean
_editing_tools_crop_tool_on_height_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender,
                                                                               GdkEventFocus* event,
                                                                               gpointer self)
{
	gboolean result;
	result = editing_tools_crop_tool_on_height_entry_focus_out ((EditingToolsCropTool*) self, event);
#line 1166 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 8883 "EditingTools.c"
}


static void
_editing_tools_crop_tool_on_width_insert_text_gtk_editable_insert_text (GtkEditable* _sender,
                                                                        const gchar* new_text,
                                                                        gint new_text_length,
                                                                        gint* position,
                                                                        gpointer self)
{
#line 1167 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_on_width_insert_text ((EditingToolsCropTool*) self, new_text, new_text_length, position);
#line 8896 "EditingTools.c"
}


static void
_editing_tools_crop_tool_on_height_insert_text_gtk_editable_insert_text (GtkEditable* _sender,
                                                                         const gchar* new_text,
                                                                         gint new_text_length,
                                                                         gint* position,
                                                                         gpointer self)
{
#line 1168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_on_height_insert_text ((EditingToolsCropTool*) self, new_text, new_text_length, position);
#line 8909 "EditingTools.c"
}


static void
editing_tools_crop_tool_bind_window_handlers (EditingToolsCropTool* self)
{
	EditingToolsCropToolCropToolWindow* _tmp0_;
	EditingToolsCropToolCropToolWindow* _tmp1_;
	GtkButton* _tmp2_;
	EditingToolsCropToolCropToolWindow* _tmp3_;
	GtkButton* _tmp4_;
	EditingToolsCropToolCropToolWindow* _tmp5_;
	GtkComboBox* _tmp6_;
	EditingToolsCropToolCropToolWindow* _tmp7_;
	GtkButton* _tmp8_;
	EditingToolsCropToolCropToolWindow* _tmp9_;
	GtkEntry* _tmp10_;
	EditingToolsCropToolCropToolWindow* _tmp11_;
	GtkEntry* _tmp12_;
	EditingToolsCropToolCropToolWindow* _tmp13_;
	GtkEntry* _tmp14_;
	EditingToolsCropToolCropToolWindow* _tmp15_;
	GtkEntry* _tmp16_;
#line 1157 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 1158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), "key-press-event", (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 1159 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->crop_tool_window;
#line 1159 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_->ok_button;
#line 1159 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp2_, "clicked", (GCallback) _editing_tools_crop_tool_on_crop_ok_gtk_button_clicked, self);
#line 1160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->crop_tool_window;
#line 1160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_->cancel_button;
#line 1160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp4_, "clicked", (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 1161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->crop_tool_window;
#line 1161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_->constraint_combo;
#line 1161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp6_, "changed", (GCallback) _editing_tools_crop_tool_constraint_changed_gtk_combo_box_changed, self);
#line 1162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->crop_tool_window;
#line 1162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_->pivot_reticle_button;
#line 1162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp8_, "clicked", (GCallback) _editing_tools_crop_tool_on_pivot_button_clicked_gtk_button_clicked, self);
#line 1165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->crop_tool_window;
#line 1165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_->custom_width_entry;
#line 1165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _editing_tools_crop_tool_on_width_entry_focus_out_gtk_widget_focus_out_event, self);
#line 1166 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->crop_tool_window;
#line 1166 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_->custom_height_entry;
#line 1166 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _editing_tools_crop_tool_on_height_entry_focus_out_gtk_widget_focus_out_event, self);
#line 1167 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->priv->crop_tool_window;
#line 1167 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_->custom_width_entry;
#line 1167 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_editable_get_type (), GtkEditable), "insert-text", (GCallback) _editing_tools_crop_tool_on_width_insert_text_gtk_editable_insert_text, self);
#line 1168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->priv->crop_tool_window;
#line 1168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = _tmp15_->custom_height_entry;
#line 1168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_editable_get_type (), GtkEditable), "insert-text", (GCallback) _editing_tools_crop_tool_on_height_insert_text_gtk_editable_insert_text, self);
#line 8987 "EditingTools.c"
}


static void
editing_tools_crop_tool_unbind_window_handlers (EditingToolsCropTool* self)
{
	EditingToolsCropToolCropToolWindow* _tmp0_;
	guint _tmp1_;
	EditingToolsCropToolCropToolWindow* _tmp2_;
	GtkButton* _tmp3_;
	guint _tmp4_;
	EditingToolsCropToolCropToolWindow* _tmp5_;
	GtkButton* _tmp6_;
	guint _tmp7_;
	EditingToolsCropToolCropToolWindow* _tmp8_;
	GtkComboBox* _tmp9_;
	guint _tmp10_;
	EditingToolsCropToolCropToolWindow* _tmp11_;
	GtkButton* _tmp12_;
	guint _tmp13_;
	EditingToolsCropToolCropToolWindow* _tmp14_;
	GtkEntry* _tmp15_;
	guint _tmp16_;
	EditingToolsCropToolCropToolWindow* _tmp17_;
	GtkEntry* _tmp18_;
	guint _tmp19_;
	EditingToolsCropToolCropToolWindow* _tmp20_;
	GtkEntry* _tmp21_;
	guint _tmp22_;
#line 1171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1172 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 1172 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("key-press-event", gtk_widget_get_type (), &_tmp1_, NULL, FALSE);
#line 1172 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 1173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->crop_tool_window;
#line 1173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_->ok_button;
#line 1173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp4_, NULL, FALSE);
#line 1173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_crop_ok_gtk_button_clicked, self);
#line 1174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->crop_tool_window;
#line 1174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_->cancel_button;
#line 1174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp7_, NULL, FALSE);
#line 1174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 1175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->priv->crop_tool_window;
#line 1175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_->constraint_combo;
#line 1175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp10_, NULL, FALSE);
#line 1175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _editing_tools_crop_tool_constraint_changed_gtk_combo_box_changed, self);
#line 1176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->crop_tool_window;
#line 1176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_->pivot_reticle_button;
#line 1176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp13_, NULL, FALSE);
#line 1176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_pivot_button_clicked_gtk_button_clicked, self);
#line 1179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->crop_tool_window;
#line 1179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_->custom_width_entry;
#line 1179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("focus-out-event", gtk_widget_get_type (), &_tmp16_, NULL, FALSE);
#line 1179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_width_entry_focus_out_gtk_widget_focus_out_event, self);
#line 1180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = self->priv->crop_tool_window;
#line 1180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = _tmp17_->custom_height_entry;
#line 1180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("focus-out-event", gtk_widget_get_type (), &_tmp19_, NULL, FALSE);
#line 1180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp19_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_height_entry_focus_out_gtk_widget_focus_out_event, self);
#line 1181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = self->priv->crop_tool_window;
#line 1181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _tmp20_->custom_width_entry;
#line 1181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("insert-text", gtk_editable_get_type (), &_tmp22_, NULL, FALSE);
#line 1181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_editable_get_type (), GtkEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp22_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_width_insert_text_gtk_editable_insert_text, self);
#line 9081 "EditingTools.c"
}


static gboolean
editing_tools_crop_tool_real_on_keypress (EditingToolsEditingTool* base,
                                          GdkEventKey* event)
{
	EditingToolsCropTool * self;
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	guint _tmp2_;
	const gchar* _tmp3_;
#line 1184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = event->keyval;
#line 1185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = gdk_keyval_name (_tmp2_);
#line 1185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (g_strcmp0 (_tmp3_, "KP_Enter") == 0) {
#line 1185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = TRUE;
#line 9107 "EditingTools.c"
	} else {
		guint _tmp4_;
		const gchar* _tmp5_;
#line 1186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = event->keyval;
#line 1186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = gdk_keyval_name (_tmp4_);
#line 1186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = g_strcmp0 (_tmp5_, "Enter") == 0;
#line 9117 "EditingTools.c"
	}
#line 1185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_) {
#line 1185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = TRUE;
#line 9123 "EditingTools.c"
	} else {
		guint _tmp6_;
		const gchar* _tmp7_;
#line 1187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = event->keyval;
#line 1187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = gdk_keyval_name (_tmp6_);
#line 1187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = g_strcmp0 (_tmp7_, "Return") == 0;
#line 9133 "EditingTools.c"
	}
#line 1185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_) {
#line 1188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_on_crop_ok (self);
#line 1189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = TRUE;
#line 1189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 9143 "EditingTools.c"
	}
#line 1192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_crop_tool_parent_class)->on_keypress (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), event);
#line 1192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 9149 "EditingTools.c"
}


static void
editing_tools_crop_tool_on_pivot_button_clicked (EditingToolsCropTool* self)
{
	EditingToolsCropToolConstraintDescription* _tmp0_;
	EditingToolsCropToolConstraintDescription* _tmp1_;
	gfloat _tmp2_;
	gboolean _tmp3_;
	EditingToolsCropToolReticleOrientation _tmp21_;
#line 1195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_crop_tool_get_selected_constraint (self);
#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_->aspect_ratio;
#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO;
#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_editing_tools_crop_tool_constraint_description_unref0 (_tmp1_);
#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_) {
#line 9175 "EditingTools.c"
		gchar* width_text = NULL;
		EditingToolsCropToolCropToolWindow* _tmp4_;
		GtkEntry* _tmp5_;
		const gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* height_text = NULL;
		EditingToolsCropToolCropToolWindow* _tmp8_;
		GtkEntry* _tmp9_;
		const gchar* _tmp10_;
		gchar* _tmp11_;
		EditingToolsCropToolCropToolWindow* _tmp12_;
		GtkEntry* _tmp13_;
		const gchar* _tmp14_;
		EditingToolsCropToolCropToolWindow* _tmp15_;
		GtkEntry* _tmp16_;
		const gchar* _tmp17_;
		gint temp = 0;
		gint _tmp18_;
		gint _tmp19_;
		gint _tmp20_;
#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = self->priv->crop_tool_window;
#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = _tmp4_->custom_width_entry;
#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = gtk_entry_get_text (_tmp5_);
#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = g_strdup (_tmp6_);
#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		width_text = _tmp7_;
#line 1198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = self->priv->crop_tool_window;
#line 1198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = _tmp8_->custom_height_entry;
#line 1198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = gtk_entry_get_text (_tmp9_);
#line 1198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = g_strdup (_tmp10_);
#line 1198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		height_text = _tmp11_;
#line 1199 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = self->priv->crop_tool_window;
#line 1199 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp13_ = _tmp12_->custom_width_entry;
#line 1199 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp14_ = height_text;
#line 1199 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_entry_set_text (_tmp13_, _tmp14_);
#line 1200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp15_ = self->priv->crop_tool_window;
#line 1200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = _tmp15_->custom_height_entry;
#line 1200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp17_ = width_text;
#line 1200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_entry_set_text (_tmp16_, _tmp17_);
#line 1202 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp18_ = self->priv->custom_width;
#line 1202 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		temp = _tmp18_;
#line 1203 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = self->priv->custom_height;
#line 1203 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->custom_width = _tmp19_;
#line 1204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp20_ = temp;
#line 1204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->custom_height = _tmp20_;
#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (height_text);
#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (width_text);
#line 9248 "EditingTools.c"
	}
#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = self->priv->reticle_orientation;
#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->reticle_orientation = editing_tools_crop_tool_reticle_orientation_toggle (_tmp21_);
#line 1207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_constraint_changed (self);
#line 9256 "EditingTools.c"
}


static void
editing_tools_crop_tool_real_deactivate (EditingToolsEditingTool* base)
{
	EditingToolsCropTool * self;
	EditingToolsPhotoCanvas* _tmp0_;
	EditingToolsCropToolCropToolWindow* _tmp2_;
	EditingToolsPhotoCanvas* _tmp5_;
#line 1210 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ != NULL) {
#line 9273 "EditingTools.c"
		EditingToolsPhotoCanvas* _tmp1_;
#line 1212 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1212 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_unbind_canvas_handlers (self, _tmp1_);
#line 9279 "EditingTools.c"
	}
#line 1214 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->crop_tool_window;
#line 1214 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp2_ != NULL) {
#line 9285 "EditingTools.c"
		EditingToolsCropToolCropToolWindow* _tmp3_;
		EditingToolsCropToolCropToolWindow* _tmp4_;
#line 1215 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_unbind_window_handlers (self);
#line 1216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = self->priv->crop_tool_window;
#line 1216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = self->priv->crop_tool_window;
#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
#line 1218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (self->priv->crop_tool_window);
#line 1218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->crop_tool_window = NULL;
#line 9302 "EditingTools.c"
	}
#line 1222 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1222 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp5_ != NULL) {
#line 9308 "EditingTools.c"
		GdkWindow* drawing_window = NULL;
		EditingToolsPhotoCanvas* _tmp6_;
		GdkWindow* _tmp7_;
		GdkDisplay* display = NULL;
		GdkWindow* _tmp8_;
		GdkDisplay* _tmp9_;
		GdkDisplay* _tmp10_;
		GdkCursor* cursor = NULL;
		GdkDisplay* _tmp11_;
		GdkCursor* _tmp12_;
		GdkWindow* _tmp13_;
		GdkCursor* _tmp14_;
#line 1223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = editing_tools_photo_canvas_get_drawing_window (_tmp6_);
#line 1223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		drawing_window = _tmp7_;
#line 1224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = drawing_window;
#line 1224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = gdk_window_get_display (_tmp8_);
#line 1224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = _g_object_ref0 (_tmp9_);
#line 1224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		display = _tmp10_;
#line 1225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = display;
#line 1225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = gdk_cursor_new_for_display (_tmp11_, GDK_LEFT_PTR);
#line 1225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		cursor = _tmp12_;
#line 1227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp13_ = drawing_window;
#line 1227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp14_ = cursor;
#line 1227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gdk_window_set_cursor (_tmp13_, _tmp14_);
#line 1222 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (cursor);
#line 1222 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (display);
#line 1222 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (drawing_window);
#line 9353 "EditingTools.c"
	}
#line 1230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_surface_destroy0 (self->priv->crop_surface);
#line 1230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->crop_surface = NULL;
#line 1232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_crop_tool_parent_class)->deactivate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 9361 "EditingTools.c"
}


static EditingToolsEditingToolWindow*
editing_tools_crop_tool_real_get_tool_window (EditingToolsEditingTool* base)
{
	EditingToolsCropTool * self;
	EditingToolsEditingToolWindow* result = NULL;
	EditingToolsCropToolCropToolWindow* _tmp0_;
	EditingToolsEditingToolWindow* _tmp1_;
#line 1235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_tool_window;
#line 1236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow));
#line 1236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 1236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 9382 "EditingTools.c"
}


static GdkPixbuf*
editing_tools_crop_tool_real_get_display_pixbuf (EditingToolsEditingTool* base,
                                                 Scaling* scaling,
                                                 Photo* photo,
                                                 Dimensions* max_dim,
                                                 GError** error)
{
	EditingToolsCropTool * self;
	Dimensions _vala_max_dim = {0};
	GdkPixbuf* result = NULL;
	Dimensions _tmp0_ = {0};
	GdkPixbuf* _tmp1_ = NULL;
	Scaling _tmp2_;
	GdkPixbuf* _tmp3_;
	GdkPixbuf* _tmp4_;
	GError * _inner_error_ = NULL;
#line 1239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (scaling != NULL, NULL);
#line 1239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), NULL);
#line 1241 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (photo, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp0_);
#line 1241 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_max_dim = _tmp0_;
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *scaling;
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = photo_get_pixbuf_with_options (photo, &_tmp2_, PHOTO_EXCEPTION_CROP, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp3_;
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_propagate_error (error, _inner_error_);
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return NULL;
#line 9424 "EditingTools.c"
	}
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp1_;
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = NULL;
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp4_;
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp1_);
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (max_dim) {
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*max_dim = _vala_max_dim;
#line 9438 "EditingTools.c"
	}
#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 9442 "EditingTools.c"
}


static void
editing_tools_crop_tool_prepare_ctx (EditingToolsCropTool* self,
                                     cairo_t* ctx,
                                     Dimensions* dim)
{
	cairo_surface_t* _tmp0_;
	cairo_t* _tmp1_;
	cairo_t* _tmp2_;
	cairo_t* _tmp3_;
	cairo_surface_t* _tmp4_;
	cairo_t* _tmp5_;
	cairo_t* _tmp6_;
	cairo_t* _tmp7_;
	cairo_surface_t* _tmp8_;
	cairo_t* _tmp9_;
	cairo_t* _tmp10_;
	cairo_t* _tmp11_;
	cairo_surface_t* _tmp12_;
	cairo_t* _tmp13_;
	cairo_t* _tmp14_;
#line 1246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 1246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (dim != NULL);
#line 1247 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = cairo_get_target (ctx);
#line 1247 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = cairo_create (_tmp0_);
#line 1247 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->wide_black_ctx);
#line 1247 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->wide_black_ctx = _tmp1_;
#line 1248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->wide_black_ctx;
#line 1248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	set_source_color_from_string (_tmp2_, "#000");
#line 1249 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->wide_black_ctx;
#line 1249 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_line_width (_tmp3_, (gdouble) 1);
#line 1251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = cairo_get_target (ctx);
#line 1251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = cairo_create (_tmp4_);
#line 1251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->wide_white_ctx);
#line 1251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->wide_white_ctx = _tmp5_;
#line 1252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->wide_white_ctx;
#line 1252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	set_source_color_from_string (_tmp6_, "#FFF");
#line 1253 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->wide_white_ctx;
#line 1253 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_line_width (_tmp7_, (gdouble) 1);
#line 1255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = cairo_get_target (ctx);
#line 1255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = cairo_create (_tmp8_);
#line 1255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->thin_white_ctx);
#line 1255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->thin_white_ctx = _tmp9_;
#line 1256 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->priv->thin_white_ctx;
#line 1256 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	set_source_color_from_string (_tmp10_, "#FFF");
#line 1257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->thin_white_ctx;
#line 1257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_line_width (_tmp11_, 0.5);
#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = cairo_get_target (ctx);
#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = cairo_create (_tmp12_);
#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->text_ctx);
#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->text_ctx = _tmp13_;
#line 1260 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->text_ctx;
#line 1260 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_select_font_face (_tmp14_, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
#line 9532 "EditingTools.c"
}


static void
editing_tools_crop_tool_on_resized_pixbuf (EditingToolsCropTool* self,
                                           Dimensions* old_dim,
                                           GdkPixbuf* scaled,
                                           GdkRectangle* scaled_position)
{
	Dimensions new_dim = {0};
	Dimensions _tmp0_ = {0};
	Dimensions uncropped_dim = {0};
	EditingToolsPhotoCanvas* _tmp1_;
	Photo* _tmp2_;
	Photo* _tmp3_;
	Dimensions _tmp4_ = {0};
	Dimensions _tmp5_;
	Box crop = {0};
	Dimensions _tmp6_;
	Dimensions _tmp7_;
	Box _tmp8_ = {0};
	Dimensions _tmp9_;
	Dimensions _tmp10_;
	Box _tmp11_ = {0};
	cairo_surface_t* _tmp12_;
	gint _tmp13_;
	gint _tmp14_;
	gint _tmp15_;
	gint _tmp16_;
	cairo_surface_t* _tmp17_;
	cairo_t* ctx = NULL;
	cairo_surface_t* _tmp18_;
	cairo_t* _tmp19_;
#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (old_dim != NULL);
#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (GDK_IS_PIXBUF (scaled));
#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (scaled_position != NULL);
#line 1264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	dimensions_for_pixbuf (scaled, &_tmp0_);
#line 1264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_dim = _tmp0_;
#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_;
#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp4_);
#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_;
#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp3_);
#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	uncropped_dim = _tmp5_;
#line 1268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = *old_dim;
#line 1268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = uncropped_dim;
#line 1268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_scaled_similar (&self->priv->scaled_crop, &_tmp6_, &_tmp7_, &_tmp8_);
#line 1268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	crop = _tmp8_;
#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = uncropped_dim;
#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = new_dim;
#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_scaled_similar (&crop, &_tmp9_, &_tmp10_, &_tmp11_);
#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_crop = _tmp11_;
#line 1272 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = self->priv->crop_surface;
#line 1272 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp12_ != NULL) {
#line 1273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_cairo_surface_destroy0 (self->priv->crop_surface);
#line 1273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->crop_surface = NULL;
#line 9616 "EditingTools.c"
	}
#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = gdk_pixbuf_get_width (scaled);
#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_;
#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = gdk_pixbuf_get_height (scaled);
#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = _tmp15_;
#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp14_, _tmp16_);
#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_surface_destroy0 (self->priv->crop_surface);
#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->crop_surface = _tmp17_;
#line 1276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->priv->crop_surface;
#line 1276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = cairo_create (_tmp18_);
#line 1276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	ctx = _tmp19_;
#line 1277 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_rgba (ctx, 0.0, 0.0, 0.0, 1.0);
#line 1278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_paint (ctx);
#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (ctx);
#line 9644 "EditingTools.c"
}


static void
editing_tools_crop_tool_real_on_left_click (EditingToolsEditingTool* base,
                                            gint x,
                                            gint y)
{
	EditingToolsCropTool * self;
	GdkRectangle scaled_pixbuf_pos = {0};
	EditingToolsPhotoCanvas* _tmp0_;
	GdkRectangle _tmp1_ = {0};
	Box offset_scaled_crop = {0};
	GdkRectangle _tmp2_;
	gint _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	Box _tmp6_ = {0};
	GdkRectangle _tmp7_;
	gint _tmp8_;
	GdkRectangle _tmp9_;
	gint _tmp10_;
	EditingToolsPhotoCanvas* _tmp11_;
#line 1282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1283 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1283 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
#line 1283 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scaled_pixbuf_pos = _tmp1_;
#line 1286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = scaled_pixbuf_pos;
#line 1286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 1286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = scaled_pixbuf_pos;
#line 1286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.y;
#line 1286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_offset (&self->priv->scaled_crop, _tmp3_, _tmp5_, &_tmp6_);
#line 1286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	offset_scaled_crop = _tmp6_;
#line 1289 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->in_manipulation = box_approx_location (&offset_scaled_crop, x, y);
#line 1290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = scaled_pixbuf_pos;
#line 1290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_.x;
#line 1290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	x = x - _tmp8_;
#line 1290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->last_grab_x = x;
#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = scaled_pixbuf_pos;
#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.y;
#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	y = y - _tmp10_;
#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->last_grab_y = y;
#line 1294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp11_);
#line 9710 "EditingTools.c"
}


static void
editing_tools_crop_tool_real_on_left_released (EditingToolsEditingTool* base,
                                               gint x,
                                               gint y)
{
	EditingToolsCropTool * self;
	BoxLocation _tmp0_;
	EditingToolsPhotoCanvas* _tmp1_;
#line 1297 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->in_manipulation;
#line 1299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == BOX_LOCATION_OUTSIDE) {
#line 1300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 9730 "EditingTools.c"
	}
#line 1303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->in_manipulation = BOX_LOCATION_OUTSIDE;
#line 1304 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->last_grab_x = -1;
#line 1305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->last_grab_y = -1;
#line 1307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_update_cursor (self, x, y);
#line 1310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp1_);
#line 9744 "EditingTools.c"
}


static void
editing_tools_crop_tool_real_on_motion (EditingToolsEditingTool* base,
                                        gint x,
                                        gint y,
                                        GdkModifierType mask)
{
	EditingToolsCropTool * self;
	BoxLocation _tmp0_;
	EditingToolsPhotoCanvas* _tmp1_;
#line 1313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->in_manipulation;
#line 1316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ != BOX_LOCATION_OUTSIDE) {
#line 1317 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_on_canvas_manipulation (self, x, y);
#line 9765 "EditingTools.c"
	}
#line 1319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_update_cursor (self, x, y);
#line 1320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp1_);
#line 9773 "EditingTools.c"
}


static void
editing_tools_crop_tool_real_paint (EditingToolsEditingTool* base,
                                    cairo_t* default_ctx)
{
	EditingToolsCropTool * self;
	gint w = 0;
	EditingToolsPhotoCanvas* _tmp0_;
	GdkWindow* _tmp1_;
	GdkWindow* _tmp2_;
	gint _tmp3_;
	gint h = 0;
	EditingToolsPhotoCanvas* _tmp4_;
	GdkWindow* _tmp5_;
	GdkWindow* _tmp6_;
	gint _tmp7_;
	cairo_t* ctx = NULL;
	cairo_surface_t* _tmp8_;
	cairo_t* _tmp9_;
	Box _tmp10_;
	gint _tmp11_;
	Box _tmp12_;
	gint _tmp13_;
	EditingToolsPhotoCanvas* _tmp14_;
	cairo_surface_t* _tmp15_;
	Box _tmp16_;
#line 1323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 1323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (default_ctx != NULL);
#line 1325 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1325 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_photo_canvas_get_drawing_window (_tmp0_);
#line 1325 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_;
#line 1325 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = gdk_window_get_width (_tmp2_);
#line 1325 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp2_);
#line 1325 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	w = _tmp3_;
#line 1326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = editing_tools_photo_canvas_get_drawing_window (_tmp4_);
#line 1326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_;
#line 1326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = gdk_window_get_height (_tmp6_);
#line 1326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp6_);
#line 1326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	h = _tmp7_;
#line 1328 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_rgba (default_ctx, 0.0, 0.0, 0.0, 1.0);
#line 1329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (default_ctx, (gdouble) 0, (gdouble) 0, (gdouble) w, (gdouble) h);
#line 1330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (default_ctx);
#line 1331 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_paint (default_ctx);
#line 1333 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->priv->crop_surface;
#line 1333 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = cairo_create (_tmp8_);
#line 1333 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	ctx = _tmp9_;
#line 1334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_operator (ctx, CAIRO_OPERATOR_SOURCE);
#line 1335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_rgba (ctx, 0.0, 0.0, 0.0, 0.5);
#line 1336 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_paint (ctx);
#line 1339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_rgba (ctx, 0.0, 0.0, 0.0, 0.0);
#line 1340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->priv->scaled_crop;
#line 1340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_.left;
#line 1340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = self->priv->scaled_crop;
#line 1340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.top;
#line 1340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (ctx, (gdouble) _tmp11_, (gdouble) _tmp13_, (gdouble) box_get_width (&self->priv->scaled_crop), (gdouble) box_get_height (&self->priv->scaled_crop));
#line 1342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (ctx);
#line 1343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->priv->crop_surface;
#line 1343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_paint_surface (_tmp14_, _tmp15_, TRUE);
#line 1346 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = self->priv->scaled_crop;
#line 1346 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_paint_crop_tool (self, &_tmp16_);
#line 1323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (ctx);
#line 9876 "EditingTools.c"
}


static void
editing_tools_crop_tool_on_crop_ok (EditingToolsCropTool* self)
{
	ConfigFacade* _tmp0_;
	ConfigFacade* _tmp1_;
	EditingToolsCropToolCropToolWindow* _tmp2_;
	GtkComboBox* _tmp3_;
	ConfigFacade* _tmp4_;
	ConfigFacade* _tmp5_;
	gint _tmp6_;
	ConfigFacade* _tmp7_;
	ConfigFacade* _tmp8_;
	gint _tmp9_;
	Box crop = {0};
	EditingToolsPhotoCanvas* _tmp10_;
	GdkRectangle _tmp11_ = {0};
	Dimensions _tmp12_ = {0};
	EditingToolsPhotoCanvas* _tmp13_;
	Photo* _tmp14_;
	Photo* _tmp15_;
	Dimensions _tmp16_ = {0};
	Box _tmp17_ = {0};
	Box _tmp18_;
	GdkPixbuf* cropped = NULL;
	EditingToolsPhotoCanvas* _tmp19_;
	GdkPixbuf* _tmp20_;
	GdkPixbuf* _tmp21_;
	Box _tmp22_;
	gint _tmp23_;
	Box _tmp24_;
	gint _tmp25_;
	GdkPixbuf* _tmp26_;
	GdkPixbuf* _tmp27_;
	EditingToolsPhotoCanvas* _tmp28_;
	Photo* _tmp29_;
	Photo* _tmp30_;
	Box _tmp31_;
	CropCommand* _tmp32_;
	CropCommand* _tmp33_;
	Dimensions _tmp34_ = {0};
#line 1349 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = config_facade_get_instance ();
#line 1353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 1353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->crop_tool_window;
#line 1353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_->constraint_combo;
#line 1353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	configuration_facade_set_last_crop_menu_choice (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), gtk_combo_box_get_active (_tmp3_));
#line 1353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp1_);
#line 1355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = config_facade_get_instance ();
#line 1355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_;
#line 1355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->custom_width;
#line 1355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	configuration_facade_set_last_crop_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp6_);
#line 1355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp5_);
#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = config_facade_get_instance ();
#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_;
#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->custom_height;
#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	configuration_facade_set_last_crop_height (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp9_);
#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp8_);
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp10_, &_tmp11_);
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	dimensions_for_rectangle (&_tmp11_, &_tmp12_);
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = editing_tools_photo_canvas_get_photo (_tmp13_);
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_;
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp16_);
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_scaled_similar (&self->priv->scaled_crop, &_tmp12_, &_tmp16_, &_tmp17_);
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = _tmp17_;
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp15_);
#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	crop = _tmp18_;
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp19_);
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _tmp20_;
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = self->priv->scaled_crop;
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _tmp22_.left;
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = self->priv->scaled_crop;
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = _tmp24_.top;
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = gdk_pixbuf_new_subpixbuf (_tmp21_, _tmp23_, _tmp25_, box_get_width (&self->priv->scaled_crop), box_get_height (&self->priv->scaled_crop));
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = _tmp26_;
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp21_);
#line 1364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cropped = _tmp27_;
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = editing_tools_photo_canvas_get_photo (_tmp28_);
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = _tmp29_;
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = crop;
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = crop_command_new (_tmp30_, &_tmp31_, RESOURCES_CROP_LABEL, RESOURCES_CROP_TOOLTIP);
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = _tmp32_;
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_dimensions (&crop, &_tmp34_);
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_APPLIED_SIGNAL], 0, G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_COMMAND, Command), cropped, &_tmp34_, TRUE);
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp33_);
#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp30_);
#line 1349 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (cropped);
#line 10020 "EditingTools.c"
}


static void
editing_tools_crop_tool_update_cursor (EditingToolsCropTool* self,
                                       gint x,
                                       gint y)
{
	GdkRectangle scaled_pos = {0};
	EditingToolsPhotoCanvas* _tmp0_;
	GdkRectangle _tmp1_ = {0};
	Box offset_scaled_crop = {0};
	GdkRectangle _tmp2_;
	gint _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	Box _tmp6_ = {0};
	GdkCursorType cursor_type = 0;
	GdkCursorType _tmp7_;
	GdkCursorType _tmp8_;
#line 1373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scaled_pos = _tmp1_;
#line 1376 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = scaled_pos;
#line 1376 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 1376 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = scaled_pos;
#line 1376 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.y;
#line 1376 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_offset (&self->priv->scaled_crop, _tmp3_, _tmp5_, &_tmp6_);
#line 1376 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	offset_scaled_crop = _tmp6_;
#line 1378 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cursor_type = GDK_LEFT_PTR;
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	switch (box_approx_location (&offset_scaled_crop, x, y)) {
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_LEFT_SIDE:
#line 10067 "EditingTools.c"
		{
#line 1381 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_LEFT_SIDE;
#line 1382 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10073 "EditingTools.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_TOP_SIDE:
#line 10077 "EditingTools.c"
		{
#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_TOP_SIDE;
#line 1386 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10083 "EditingTools.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_RIGHT_SIDE:
#line 10087 "EditingTools.c"
		{
#line 1389 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_RIGHT_SIDE;
#line 1390 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10093 "EditingTools.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_BOTTOM_SIDE:
#line 10097 "EditingTools.c"
		{
#line 1393 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_BOTTOM_SIDE;
#line 1394 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10103 "EditingTools.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_TOP_LEFT:
#line 10107 "EditingTools.c"
		{
#line 1397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_TOP_LEFT_CORNER;
#line 1398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10113 "EditingTools.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_BOTTOM_LEFT:
#line 10117 "EditingTools.c"
		{
#line 1401 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_BOTTOM_LEFT_CORNER;
#line 1402 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10123 "EditingTools.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_TOP_RIGHT:
#line 10127 "EditingTools.c"
		{
#line 1405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_TOP_RIGHT_CORNER;
#line 1406 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10133 "EditingTools.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_BOTTOM_RIGHT:
#line 10137 "EditingTools.c"
		{
#line 1409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_BOTTOM_RIGHT_CORNER;
#line 1410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10143 "EditingTools.c"
		}
#line 1379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_INSIDE:
#line 10147 "EditingTools.c"
		{
#line 1413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			cursor_type = GDK_FLEUR;
#line 1414 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10153 "EditingTools.c"
		}
		default:
		{
#line 1418 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10159 "EditingTools.c"
		}
	}
#line 1421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = cursor_type;
#line 1421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->priv->current_cursor_type;
#line 1421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp7_ != _tmp8_) {
#line 10168 "EditingTools.c"
		GdkWindow* drawing_window = NULL;
		EditingToolsPhotoCanvas* _tmp9_;
		GdkWindow* _tmp10_;
		GdkDisplay* display = NULL;
		GdkWindow* _tmp11_;
		GdkDisplay* _tmp12_;
		GdkDisplay* _tmp13_;
		GdkCursor* cursor = NULL;
		GdkDisplay* _tmp14_;
		GdkCursorType _tmp15_;
		GdkCursor* _tmp16_;
		GdkWindow* _tmp17_;
		GdkCursor* _tmp18_;
		GdkCursorType _tmp19_;
#line 1422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = editing_tools_photo_canvas_get_drawing_window (_tmp9_);
#line 1422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		drawing_window = _tmp10_;
#line 1423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = drawing_window;
#line 1423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = gdk_window_get_display (_tmp11_);
#line 1423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp13_ = _g_object_ref0 (_tmp12_);
#line 1423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		display = _tmp13_;
#line 1424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp14_ = display;
#line 1424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp15_ = cursor_type;
#line 1424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = gdk_cursor_new_for_display (_tmp14_, _tmp15_);
#line 1424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		cursor = _tmp16_;
#line 1425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp17_ = drawing_window;
#line 1425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp18_ = cursor;
#line 1425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gdk_window_set_cursor (_tmp17_, _tmp18_);
#line 1426 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = cursor_type;
#line 1426 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->current_cursor_type = _tmp19_;
#line 1421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (cursor);
#line 1421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (display);
#line 1421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (drawing_window);
#line 10221 "EditingTools.c"
	}
}


static gint
editing_tools_crop_tool_eval_radial_line (EditingToolsCropTool* self,
                                          gdouble center_x,
                                          gdouble center_y,
                                          gdouble bounds_x,
                                          gdouble bounds_y,
                                          gdouble user_x)
{
	gint result = 0;
	gdouble decision_slope = 0.0;
	gdouble decision_intercept = 0.0;
#line 1430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), 0);
#line 1432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	decision_slope = (bounds_y - center_y) / (bounds_x - center_x);
#line 1433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	decision_intercept = bounds_y - (decision_slope * bounds_x);
#line 1435 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = (gint) ((decision_slope * user_x) + decision_intercept);
#line 1435 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 10247 "EditingTools.c"
}


static void
editing_tools_crop_tool_get_photo_dimensions (EditingToolsCropTool* self,
                                              Dimensions* result)
{
	Dimensions photo_dims = {0};
	EditingToolsPhotoCanvas* _tmp0_;
	Photo* _tmp1_;
	Photo* _tmp2_;
	Dimensions _tmp3_ = {0};
	Dimensions _tmp4_;
	Dimensions surface_dims = {0};
	EditingToolsPhotoCanvas* _tmp5_;
	Dimensions _tmp6_ = {0};
	gdouble scale_factor = 0.0;
	Dimensions _tmp7_;
	gint _tmp8_;
	Dimensions _tmp9_;
	gint _tmp10_;
	Dimensions _tmp11_;
	gint _tmp12_;
	Dimensions _tmp13_;
	gint _tmp14_;
	gdouble _tmp15_;
	EditingToolsPhotoCanvas* _tmp16_;
	Photo* _tmp17_;
	Photo* _tmp18_;
	Dimensions _tmp19_ = {0};
	Dimensions _tmp20_;
	gint _tmp21_;
	gdouble _tmp22_;
	Dimensions _tmp23_;
	gint _tmp24_;
	gdouble _tmp25_;
	Dimensions _tmp26_ = {0};
#line 1439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_photo_canvas_get_photo (_tmp0_);
#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_;
#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp3_);
#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_;
#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp2_);
#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_dims = _tmp4_;
#line 1441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_surface_dim (_tmp5_, &_tmp6_);
#line 1441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	surface_dims = _tmp6_;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = surface_dims;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_.width;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = photo_dims;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.width;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = surface_dims;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.height;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = photo_dims;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_.height;
#line 1442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scale_factor = MIN (((gdouble) _tmp8_) / _tmp10_, ((gdouble) _tmp12_) / _tmp14_);
#line 1444 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = scale_factor;
#line 1444 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scale_factor = MIN (_tmp15_, 1.0);
#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = editing_tools_photo_canvas_get_photo (_tmp16_);
#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = _tmp17_;
#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP | PHOTO_EXCEPTION_STRAIGHTEN, &_tmp19_);
#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_dims = _tmp19_;
#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp18_);
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = photo_dims;
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _tmp20_.width;
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = scale_factor;
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = photo_dims;
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = _tmp23_.height;
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = scale_factor;
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_.width = (gint) (_tmp21_ * _tmp22_);
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_.height = (gint) (_tmp24_ * _tmp25_);
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _tmp26_;
#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 10361 "EditingTools.c"
}


static gboolean
_box_equal (const Box * s1,
            const Box * s2)
{
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (s1 == s2) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return TRUE;
#line 10373 "EditingTools.c"
	}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (s1 == NULL) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return FALSE;
#line 10379 "EditingTools.c"
	}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (s2 == NULL) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return FALSE;
#line 10385 "EditingTools.c"
	}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (s1->left != s2->left) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return FALSE;
#line 10391 "EditingTools.c"
	}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (s1->top != s2->top) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return FALSE;
#line 10397 "EditingTools.c"
	}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (s1->right != s2->right) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return FALSE;
#line 10403 "EditingTools.c"
	}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (s1->bottom != s2->bottom) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return FALSE;
#line 10409 "EditingTools.c"
	}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return TRUE;
#line 10413 "EditingTools.c"
}


static gboolean
editing_tools_crop_tool_on_canvas_manipulation (EditingToolsCropTool* self,
                                                gint x,
                                                gint y)
{
	gboolean result = FALSE;
	GdkRectangle scaled_pos = {0};
	EditingToolsPhotoCanvas* _tmp0_;
	GdkRectangle _tmp1_ = {0};
	GdkRectangle _tmp2_;
	gint _tmp3_;
	GdkRectangle _tmp8_;
	gint _tmp9_;
	gint left = 0;
	Box _tmp14_;
	gint _tmp15_;
	gint top = 0;
	Box _tmp16_;
	gint _tmp17_;
	gint right = 0;
	Box _tmp18_;
	gint _tmp19_;
	gint bottom = 0;
	Box _tmp20_;
	gint _tmp21_;
	gint center_x = 0;
	gint _tmp22_;
	gint _tmp23_;
	gint center_y = 0;
	gint _tmp24_;
	gint _tmp25_;
	BoxLocation _tmp26_;
	gint width = 0;
	gint _tmp137_;
	gint _tmp138_;
	gint height = 0;
	gint _tmp139_;
	gint _tmp140_;
	Dimensions photo_dims = {0};
	Dimensions _tmp141_ = {0};
	gdouble angle = 0.0;
	EditingToolsPhotoCanvas* _tmp142_;
	Photo* _tmp143_;
	Photo* _tmp144_;
	gdouble _tmp145_ = 0.0;
	Box new_crop = {0};
	BoxLocation _tmp191_;
	Box _tmp194_;
#line 1453 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), FALSE);
#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scaled_pos = _tmp1_;
#line 1458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = scaled_pos;
#line 1458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 1458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	x = x - _tmp3_;
#line 1459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (x < 0) {
#line 1460 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		x = 0;
#line 10483 "EditingTools.c"
	} else {
		GdkRectangle _tmp4_;
		gint _tmp5_;
#line 1461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = scaled_pos;
#line 1461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = _tmp4_.width;
#line 1461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (x >= _tmp5_) {
#line 10493 "EditingTools.c"
			GdkRectangle _tmp6_;
			gint _tmp7_;
#line 1462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp6_ = scaled_pos;
#line 1462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp7_ = _tmp6_.width;
#line 1462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			x = _tmp7_ - 1;
#line 10502 "EditingTools.c"
		}
	}
#line 1464 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = scaled_pos;
#line 1464 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.y;
#line 1464 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	y = y - _tmp9_;
#line 1465 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (y < 0) {
#line 1466 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		y = 0;
#line 10515 "EditingTools.c"
	} else {
		GdkRectangle _tmp10_;
		gint _tmp11_;
#line 1467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = scaled_pos;
#line 1467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = _tmp10_.height;
#line 1467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (y >= _tmp11_) {
#line 10525 "EditingTools.c"
			GdkRectangle _tmp12_;
			gint _tmp13_;
#line 1468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp12_ = scaled_pos;
#line 1468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp13_ = _tmp12_.height;
#line 1468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			y = _tmp13_ - 1;
#line 10534 "EditingTools.c"
		}
	}
#line 1472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->scaled_crop;
#line 1472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_.left;
#line 1472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	left = _tmp15_;
#line 1473 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = self->priv->scaled_crop;
#line 1473 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _tmp16_.top;
#line 1473 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	top = _tmp17_;
#line 1474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->priv->scaled_crop;
#line 1474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = _tmp18_.right;
#line 1474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	right = _tmp19_;
#line 1475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = self->priv->scaled_crop;
#line 1475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _tmp20_.bottom;
#line 1475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	bottom = _tmp21_;
#line 1478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = left;
#line 1478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = right;
#line 1478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	center_x = (_tmp22_ + _tmp23_) / 2;
#line 1479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = top;
#line 1479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = bottom;
#line 1479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	center_y = (_tmp24_ + _tmp25_) / 2;
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = self->priv->in_manipulation;
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	switch (_tmp26_) {
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_LEFT_SIDE:
#line 10579 "EditingTools.c"
		{
#line 1483 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			left = x;
#line 1484 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 10585 "EditingTools.c"
				gfloat new_height = 0.0F;
				gint _tmp27_;
				gint _tmp28_;
				gint _tmp29_;
				gfloat _tmp30_;
#line 1485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp27_ = right;
#line 1485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp28_ = left;
#line 1485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				new_height = ((gfloat) (_tmp27_ - _tmp28_)) / editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp29_ = top;
#line 1486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp30_ = new_height;
#line 1486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				bottom = _tmp29_ + ((gint) _tmp30_);
#line 10603 "EditingTools.c"
			}
#line 1488 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10607 "EditingTools.c"
		}
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_TOP_SIDE:
#line 10611 "EditingTools.c"
		{
#line 1491 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			top = y;
#line 1492 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 10617 "EditingTools.c"
				gfloat new_width = 0.0F;
				gint _tmp31_;
				gint _tmp32_;
				gint _tmp33_;
				gfloat _tmp34_;
#line 1493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp31_ = bottom;
#line 1493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp32_ = top;
#line 1493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				new_width = ((gfloat) (_tmp31_ - _tmp32_)) * editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1494 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp33_ = left;
#line 1494 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp34_ = new_width;
#line 1494 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				right = _tmp33_ + ((gint) _tmp34_);
#line 10635 "EditingTools.c"
			}
#line 1496 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10639 "EditingTools.c"
		}
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_RIGHT_SIDE:
#line 10643 "EditingTools.c"
		{
#line 1499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			right = x;
#line 1500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 10649 "EditingTools.c"
				gfloat new_height = 0.0F;
				gint _tmp35_;
				gint _tmp36_;
				gint _tmp37_;
				gfloat _tmp38_;
#line 1501 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp35_ = right;
#line 1501 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp36_ = left;
#line 1501 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				new_height = ((gfloat) (_tmp35_ - _tmp36_)) / editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp37_ = top;
#line 1502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp38_ = new_height;
#line 1502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				bottom = _tmp37_ + ((gint) _tmp38_);
#line 10667 "EditingTools.c"
			}
#line 1504 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10671 "EditingTools.c"
		}
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_BOTTOM_SIDE:
#line 10675 "EditingTools.c"
		{
#line 1507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			bottom = y;
#line 1508 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 10681 "EditingTools.c"
				gfloat new_width = 0.0F;
				gint _tmp39_;
				gint _tmp40_;
				gint _tmp41_;
				gfloat _tmp42_;
#line 1509 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp39_ = bottom;
#line 1509 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp40_ = top;
#line 1509 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				new_width = ((gfloat) (_tmp39_ - _tmp40_)) * editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp41_ = left;
#line 1510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp42_ = new_width;
#line 1510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				right = _tmp41_ + ((gint) _tmp42_);
#line 10699 "EditingTools.c"
			}
#line 1512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10703 "EditingTools.c"
		}
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_TOP_LEFT:
#line 10707 "EditingTools.c"
		{
#line 1515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 1516 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				top = y;
#line 1517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				left = x;
#line 10715 "EditingTools.c"
			} else {
				gint _tmp43_;
				gint _tmp44_;
				gint _tmp45_;
				gint _tmp46_;
#line 1519 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp43_ = center_x;
#line 1519 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp44_ = center_y;
#line 1519 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp45_ = left;
#line 1519 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp46_ = top;
#line 1519 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (y < editing_tools_crop_tool_eval_radial_line (self, (gdouble) _tmp43_, (gdouble) _tmp44_, (gdouble) _tmp45_, (gdouble) _tmp46_, (gdouble) x)) {
#line 10731 "EditingTools.c"
					gfloat new_width = 0.0F;
					gint _tmp47_;
					gint _tmp48_;
					gint _tmp49_;
					gfloat _tmp50_;
#line 1520 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					top = y;
#line 1521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp47_ = bottom;
#line 1521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp48_ = top;
#line 1521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_width = ((gfloat) (_tmp47_ - _tmp48_)) * editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1522 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp49_ = right;
#line 1522 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp50_ = new_width;
#line 1522 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					left = _tmp49_ - ((gint) _tmp50_);
#line 10751 "EditingTools.c"
				} else {
					gfloat new_height = 0.0F;
					gint _tmp51_;
					gint _tmp52_;
					gint _tmp53_;
					gfloat _tmp54_;
#line 1524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					left = x;
#line 1525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp51_ = right;
#line 1525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp52_ = left;
#line 1525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_height = ((gfloat) (_tmp51_ - _tmp52_)) / editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1526 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp53_ = bottom;
#line 1526 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp54_ = new_height;
#line 1526 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					top = _tmp53_ - ((gint) _tmp54_);
#line 10772 "EditingTools.c"
				}
			}
#line 1529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10777 "EditingTools.c"
		}
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_BOTTOM_LEFT:
#line 10781 "EditingTools.c"
		{
#line 1532 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				bottom = y;
#line 1534 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				left = x;
#line 10789 "EditingTools.c"
			} else {
				gint _tmp55_;
				gint _tmp56_;
				gint _tmp57_;
				gint _tmp58_;
#line 1536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp55_ = center_x;
#line 1536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp56_ = center_y;
#line 1536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp57_ = left;
#line 1536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp58_ = bottom;
#line 1536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (y < editing_tools_crop_tool_eval_radial_line (self, (gdouble) _tmp55_, (gdouble) _tmp56_, (gdouble) _tmp57_, (gdouble) _tmp58_, (gdouble) x)) {
#line 10805 "EditingTools.c"
					gfloat new_height = 0.0F;
					gint _tmp59_;
					gint _tmp60_;
					gint _tmp61_;
					gfloat _tmp62_;
#line 1537 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					left = x;
#line 1538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp59_ = right;
#line 1538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp60_ = left;
#line 1538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_height = ((gfloat) (_tmp59_ - _tmp60_)) / editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp61_ = top;
#line 1539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp62_ = new_height;
#line 1539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					bottom = _tmp61_ + ((gint) _tmp62_);
#line 10825 "EditingTools.c"
				} else {
					gfloat new_width = 0.0F;
					gint _tmp63_;
					gint _tmp64_;
					gint _tmp65_;
					gfloat _tmp66_;
#line 1541 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					bottom = y;
#line 1542 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp63_ = bottom;
#line 1542 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp64_ = top;
#line 1542 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_width = ((gfloat) (_tmp63_ - _tmp64_)) * editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1543 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp65_ = right;
#line 1543 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp66_ = new_width;
#line 1543 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					left = _tmp65_ - ((gint) _tmp66_);
#line 10846 "EditingTools.c"
				}
			}
#line 1546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10851 "EditingTools.c"
		}
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_TOP_RIGHT:
#line 10855 "EditingTools.c"
		{
#line 1549 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				top = y;
#line 1551 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				right = x;
#line 10863 "EditingTools.c"
			} else {
				gint _tmp67_;
				gint _tmp68_;
				gint _tmp69_;
				gint _tmp70_;
#line 1553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp67_ = center_x;
#line 1553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp68_ = center_y;
#line 1553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp69_ = right;
#line 1553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp70_ = top;
#line 1553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (y < editing_tools_crop_tool_eval_radial_line (self, (gdouble) _tmp67_, (gdouble) _tmp68_, (gdouble) _tmp69_, (gdouble) _tmp70_, (gdouble) x)) {
#line 10879 "EditingTools.c"
					gfloat new_width = 0.0F;
					gint _tmp71_;
					gint _tmp72_;
					gint _tmp73_;
					gfloat _tmp74_;
#line 1554 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					top = y;
#line 1555 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp71_ = bottom;
#line 1555 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp72_ = top;
#line 1555 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_width = ((gfloat) (_tmp71_ - _tmp72_)) * editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp73_ = left;
#line 1556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp74_ = new_width;
#line 1556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					right = _tmp73_ + ((gint) _tmp74_);
#line 10899 "EditingTools.c"
				} else {
					gfloat new_height = 0.0F;
					gint _tmp75_;
					gint _tmp76_;
					gint _tmp77_;
					gfloat _tmp78_;
#line 1558 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					right = x;
#line 1559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp75_ = right;
#line 1559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp76_ = left;
#line 1559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_height = ((gfloat) (_tmp75_ - _tmp76_)) / editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1560 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp77_ = bottom;
#line 1560 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp78_ = new_height;
#line 1560 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					top = _tmp77_ - ((gint) _tmp78_);
#line 10920 "EditingTools.c"
				}
			}
#line 1563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10925 "EditingTools.c"
		}
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_BOTTOM_RIGHT:
#line 10929 "EditingTools.c"
		{
#line 1566 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				bottom = y;
#line 1568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				right = x;
#line 10937 "EditingTools.c"
			} else {
				gint _tmp79_;
				gint _tmp80_;
				gint _tmp81_;
				gint _tmp82_;
#line 1570 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp79_ = center_x;
#line 1570 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp80_ = center_y;
#line 1570 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp81_ = right;
#line 1570 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp82_ = bottom;
#line 1570 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (y < editing_tools_crop_tool_eval_radial_line (self, (gdouble) _tmp79_, (gdouble) _tmp80_, (gdouble) _tmp81_, (gdouble) _tmp82_, (gdouble) x)) {
#line 10953 "EditingTools.c"
					gfloat new_height = 0.0F;
					gint _tmp83_;
					gint _tmp84_;
					gint _tmp85_;
					gfloat _tmp86_;
#line 1571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					right = x;
#line 1572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp83_ = right;
#line 1572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp84_ = left;
#line 1572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_height = ((gfloat) (_tmp83_ - _tmp84_)) / editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp85_ = top;
#line 1573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp86_ = new_height;
#line 1573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					bottom = _tmp85_ + ((gint) _tmp86_);
#line 10973 "EditingTools.c"
				} else {
					gfloat new_width = 0.0F;
					gint _tmp87_;
					gint _tmp88_;
					gint _tmp89_;
					gfloat _tmp90_;
#line 1575 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					bottom = y;
#line 1576 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp87_ = bottom;
#line 1576 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp88_ = top;
#line 1576 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					new_width = ((gfloat) (_tmp87_ - _tmp88_)) * editing_tools_crop_tool_get_constraint_aspect_ratio (self);
#line 1577 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp89_ = left;
#line 1577 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp90_ = new_width;
#line 1577 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					right = _tmp89_ + ((gint) _tmp90_);
#line 10994 "EditingTools.c"
				}
			}
#line 1580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 10999 "EditingTools.c"
		}
#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case BOX_LOCATION_INSIDE:
#line 11003 "EditingTools.c"
		{
			gint _tmp91_;
			gint _tmp92_;
			gint delta_x = 0;
			gint _tmp93_;
			gint delta_y = 0;
			gint _tmp94_;
			gint width = 0;
			gint _tmp95_;
			gint _tmp96_;
			gint height = 0;
			gint _tmp97_;
			gint _tmp98_;
			gint _tmp99_;
			gint _tmp100_;
			gint _tmp101_;
			gint _tmp102_;
			gint _tmp103_;
			gint _tmp104_;
			gint _tmp105_;
			gint _tmp106_;
			gint _tmp107_;
			gint _tmp108_;
			gint _tmp109_;
			GdkRectangle _tmp110_;
			gint _tmp111_;
			gint _tmp114_;
			GdkRectangle _tmp115_;
			gint _tmp116_;
			gint adj_width = 0;
			gint _tmp119_;
			gint _tmp120_;
			gint adj_height = 0;
			gint _tmp121_;
			gint _tmp122_;
			gint _tmp123_;
			gint _tmp124_;
			gint _tmp130_;
			gint _tmp131_;
#line 1583 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp91_ = self->priv->last_grab_x;
#line 1583 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_vala_assert (_tmp91_ >= 0, "last_grab_x >= 0");
#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp92_ = self->priv->last_grab_y;
#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_vala_assert (_tmp92_ >= 0, "last_grab_y >= 0");
#line 1586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp93_ = self->priv->last_grab_x;
#line 1586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			delta_x = x - _tmp93_;
#line 1587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp94_ = self->priv->last_grab_y;
#line 1587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			delta_y = y - _tmp94_;
#line 1589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			self->priv->last_grab_x = x;
#line 1590 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			self->priv->last_grab_y = y;
#line 1592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp95_ = right;
#line 1592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp96_ = left;
#line 1592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			width = (_tmp95_ - _tmp96_) + 1;
#line 1593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp97_ = bottom;
#line 1593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp98_ = top;
#line 1593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			height = (_tmp97_ - _tmp98_) + 1;
#line 1595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp99_ = left;
#line 1595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp100_ = delta_x;
#line 1595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			left = _tmp99_ + _tmp100_;
#line 1596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp101_ = top;
#line 1596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp102_ = delta_y;
#line 1596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			top = _tmp101_ + _tmp102_;
#line 1597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp103_ = right;
#line 1597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp104_ = delta_x;
#line 1597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			right = _tmp103_ + _tmp104_;
#line 1598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp105_ = bottom;
#line 1598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp106_ = delta_y;
#line 1598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			bottom = _tmp105_ + _tmp106_;
#line 1601 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp107_ = left;
#line 1601 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp107_ < 0) {
#line 1602 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				left = 0;
#line 11105 "EditingTools.c"
			}
#line 1604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp108_ = top;
#line 1604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp108_ < 0) {
#line 1605 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				top = 0;
#line 11113 "EditingTools.c"
			}
#line 1607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp109_ = right;
#line 1607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp110_ = scaled_pos;
#line 1607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp111_ = _tmp110_.width;
#line 1607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp109_ >= _tmp111_) {
#line 11123 "EditingTools.c"
				GdkRectangle _tmp112_;
				gint _tmp113_;
#line 1608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp112_ = scaled_pos;
#line 1608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp113_ = _tmp112_.width;
#line 1608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				right = _tmp113_ - 1;
#line 11132 "EditingTools.c"
			}
#line 1610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp114_ = bottom;
#line 1610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp115_ = scaled_pos;
#line 1610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp116_ = _tmp115_.height;
#line 1610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp114_ >= _tmp116_) {
#line 11142 "EditingTools.c"
				GdkRectangle _tmp117_;
				gint _tmp118_;
#line 1611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp117_ = scaled_pos;
#line 1611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp118_ = _tmp117_.height;
#line 1611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				bottom = _tmp118_ - 1;
#line 11151 "EditingTools.c"
			}
#line 1613 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp119_ = right;
#line 1613 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp120_ = left;
#line 1613 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			adj_width = (_tmp119_ - _tmp120_) + 1;
#line 1614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp121_ = bottom;
#line 1614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp122_ = top;
#line 1614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			adj_height = (_tmp121_ - _tmp122_) + 1;
#line 1617 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp123_ = adj_width;
#line 1617 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp124_ = width;
#line 1617 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp123_ != _tmp124_) {
#line 11171 "EditingTools.c"
				gint _tmp125_;
#line 1618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp125_ = delta_x;
#line 1618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (_tmp125_ < 0) {
#line 11177 "EditingTools.c"
					gint _tmp126_;
					gint _tmp127_;
#line 1619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp126_ = left;
#line 1619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp127_ = width;
#line 1619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					right = (_tmp126_ + _tmp127_) - 1;
#line 11186 "EditingTools.c"
				} else {
					gint _tmp128_;
					gint _tmp129_;
#line 1621 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp128_ = right;
#line 1621 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp129_ = width;
#line 1621 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					left = (_tmp128_ - _tmp129_) + 1;
#line 11196 "EditingTools.c"
				}
			}
#line 1624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp130_ = adj_height;
#line 1624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp131_ = height;
#line 1624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (_tmp130_ != _tmp131_) {
#line 11205 "EditingTools.c"
				gint _tmp132_;
#line 1625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp132_ = delta_y;
#line 1625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (_tmp132_ < 0) {
#line 11211 "EditingTools.c"
					gint _tmp133_;
					gint _tmp134_;
#line 1626 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp133_ = top;
#line 1626 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp134_ = height;
#line 1626 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					bottom = (_tmp133_ + _tmp134_) - 1;
#line 11220 "EditingTools.c"
				} else {
					gint _tmp135_;
					gint _tmp136_;
#line 1628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp135_ = bottom;
#line 1628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp136_ = height;
#line 1628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					top = (_tmp135_ - _tmp136_) + 1;
#line 11230 "EditingTools.c"
				}
			}
#line 1630 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 11235 "EditingTools.c"
		}
		default:
		{
#line 1634 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			result = FALSE;
#line 1634 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			return result;
#line 11243 "EditingTools.c"
		}
	}
#line 1644 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp137_ = right;
#line 1644 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp138_ = left;
#line 1644 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	width = (_tmp137_ - _tmp138_) + 1;
#line 1645 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp139_ = bottom;
#line 1645 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp140_ = top;
#line 1645 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	height = (_tmp139_ - _tmp140_) + 1;
#line 1647 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_get_photo_dimensions (self, &_tmp141_);
#line 1647 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_dims = _tmp141_;
#line 1649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp142_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp143_ = editing_tools_photo_canvas_get_photo (_tmp142_);
#line 1649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp144_ = _tmp143_;
#line 1649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_get_straighten (_tmp144_, &_tmp145_);
#line 1649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	angle = _tmp145_;
#line 1649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp144_);
#line 1652 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 11276 "EditingTools.c"
		gint _tmp146_;
		gint _tmp147_;
		gint _tmp148_;
		gint _tmp149_;
		BoxLocation _tmp150_;
		BoxLocation _tmp155_;
		gint _tmp160_;
		gint _tmp161_;
		gint _tmp162_;
		gint _tmp163_;
		Box _tmp164_ = {0};
		Dimensions _tmp165_;
		gint _tmp166_;
		Dimensions _tmp167_;
		gint _tmp168_;
		gdouble _tmp169_;
		BoxLocation _tmp170_;
		Box _tmp171_ = {0};
#line 1653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp146_ = right;
#line 1653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp147_ = left;
#line 1653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		width = (_tmp146_ - _tmp147_) + 1;
#line 1654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp148_ = bottom;
#line 1654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp149_ = top;
#line 1654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		height = (_tmp148_ - _tmp149_) + 1;
#line 1656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp150_ = self->priv->in_manipulation;
#line 1656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		switch (_tmp150_) {
#line 1656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_LEFT_SIDE:
#line 1656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_TOP_LEFT:
#line 1656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_BOTTOM_LEFT:
#line 11317 "EditingTools.c"
			{
				gint _tmp151_;
#line 1660 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp151_ = width;
#line 1660 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (_tmp151_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
#line 11324 "EditingTools.c"
					gint _tmp152_;
#line 1661 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp152_ = right;
#line 1661 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					left = _tmp152_ - EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
#line 11330 "EditingTools.c"
				}
#line 1662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				break;
#line 11334 "EditingTools.c"
			}
#line 1656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_RIGHT_SIDE:
#line 1656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_TOP_RIGHT:
#line 1656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_BOTTOM_RIGHT:
#line 11342 "EditingTools.c"
			{
				gint _tmp153_;
#line 1667 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp153_ = width;
#line 1667 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (_tmp153_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
#line 11349 "EditingTools.c"
					gint _tmp154_;
#line 1668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp154_ = left;
#line 1668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					right = _tmp154_ + EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
#line 11355 "EditingTools.c"
				}
#line 1669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				break;
#line 11359 "EditingTools.c"
			}
			default:
			{
#line 1672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				break;
#line 11365 "EditingTools.c"
			}
		}
#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp155_ = self->priv->in_manipulation;
#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		switch (_tmp155_) {
#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_TOP_SIDE:
#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_TOP_LEFT:
#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_TOP_RIGHT:
#line 11378 "EditingTools.c"
			{
				gint _tmp156_;
#line 1679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp156_ = height;
#line 1679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (_tmp156_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
#line 11385 "EditingTools.c"
					gint _tmp157_;
#line 1680 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp157_ = bottom;
#line 1680 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					top = _tmp157_ - EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
#line 11391 "EditingTools.c"
				}
#line 1681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				break;
#line 11395 "EditingTools.c"
			}
#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_BOTTOM_SIDE:
#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_BOTTOM_LEFT:
#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			case BOX_LOCATION_BOTTOM_RIGHT:
#line 11403 "EditingTools.c"
			{
				gint _tmp158_;
#line 1686 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp158_ = height;
#line 1686 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (_tmp158_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
#line 11410 "EditingTools.c"
					gint _tmp159_;
#line 1687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp159_ = top;
#line 1687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					bottom = _tmp159_ + EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
#line 11416 "EditingTools.c"
				}
#line 1688 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				break;
#line 11420 "EditingTools.c"
			}
			default:
			{
#line 1691 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				break;
#line 11426 "EditingTools.c"
			}
		}
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp160_ = left;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp161_ = top;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp162_ = right;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp163_ = bottom;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		box_init (&_tmp164_, _tmp160_, _tmp161_, _tmp162_, _tmp163_);
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp165_ = photo_dims;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp166_ = _tmp165_.width;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp167_ = photo_dims;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp168_ = _tmp167_.height;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp169_ = angle;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp170_ = self->priv->in_manipulation;
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		clamp_inside_rotated_image (&_tmp164_, _tmp166_, _tmp168_, _tmp169_, _tmp170_ == BOX_LOCATION_INSIDE, &_tmp171_);
#line 1697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		new_crop = _tmp171_;
#line 11455 "EditingTools.c"
	} else {
		gint _tmp172_;
		gint _tmp173_;
		gint _tmp174_;
		gint _tmp175_;
		Box adjusted = {0};
		Box _tmp176_;
		Dimensions _tmp177_;
		gint _tmp178_;
		Dimensions _tmp179_;
		gint _tmp180_;
		gdouble _tmp181_;
		BoxLocation _tmp182_;
		Box _tmp183_ = {0};
		gboolean _tmp184_ = FALSE;
		gboolean _tmp185_ = FALSE;
		Box _tmp186_;
		Box _tmp187_;
#line 1706 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp172_ = left;
#line 1706 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp173_ = top;
#line 1706 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp174_ = right;
#line 1706 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp175_ = bottom;
#line 1706 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		box_init (&new_crop, _tmp172_, _tmp173_, _tmp174_, _tmp175_);
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp176_ = new_crop;
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp177_ = photo_dims;
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp178_ = _tmp177_.width;
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp179_ = photo_dims;
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp180_ = _tmp179_.height;
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp181_ = angle;
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp182_ = self->priv->in_manipulation;
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		clamp_inside_rotated_image (&_tmp176_, _tmp178_, _tmp180_, _tmp181_, _tmp182_ == BOX_LOCATION_INSIDE, &_tmp183_);
#line 1707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		adjusted = _tmp183_;
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp186_ = adjusted;
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp187_ = new_crop;
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_box_equal (&_tmp186_, &_tmp187_) != TRUE) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp185_ = TRUE;
#line 11510 "EditingTools.c"
		} else {
			gint _tmp188_;
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp188_ = width;
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp185_ = _tmp188_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
#line 11517 "EditingTools.c"
		}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp185_) {
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp184_ = TRUE;
#line 11523 "EditingTools.c"
		} else {
			gint _tmp189_;
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp189_ = height;
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp184_ = _tmp189_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
#line 11530 "EditingTools.c"
		}
#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp184_) {
#line 11534 "EditingTools.c"
			Box _tmp190_;
#line 1712 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp190_ = self->priv->scaled_crop;
#line 1712 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			new_crop = _tmp190_;
#line 11540 "EditingTools.c"
		}
	}
#line 1716 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp191_ = self->priv->in_manipulation;
#line 1716 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp191_ != BOX_LOCATION_INSIDE) {
#line 11547 "EditingTools.c"
		Box _tmp192_;
#line 1717 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp192_ = new_crop;
#line 1717 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_crop_resized (self, &_tmp192_);
#line 11553 "EditingTools.c"
	} else {
		Box _tmp193_;
#line 1719 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp193_ = new_crop;
#line 1719 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_crop_moved (self, &_tmp193_);
#line 11560 "EditingTools.c"
	}
#line 1722 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp194_ = new_crop;
#line 1722 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->scaled_crop = _tmp194_;
#line 1724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (editing_tools_crop_tool_get_constraint_aspect_ratio (self) == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
#line 11568 "EditingTools.c"
		gint _tmp195_;
		gint _tmp196_;
#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->custom_init_width = box_get_width (&self->priv->scaled_crop);
#line 1726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->custom_init_height = box_get_height (&self->priv->scaled_crop);
#line 1727 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp195_ = self->priv->custom_init_width;
#line 1727 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp196_ = self->priv->custom_init_height;
#line 1727 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->custom_aspect_ratio = ((gfloat) _tmp195_) / ((gfloat) _tmp196_);
#line 11581 "EditingTools.c"
	}
#line 1730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = FALSE;
#line 1730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 11587 "EditingTools.c"
}


static void
editing_tools_crop_tool_crop_resized (EditingToolsCropTool* self,
                                      Box* new_crop)
{
	Box _tmp0_;
	EditingToolsPhotoCanvas* _tmp1_;
	Box _tmp2_;
	Box horizontal = {0};
	gboolean horizontal_enlarged = FALSE;
	Box vertical = {0};
	gboolean vertical_enlarged = FALSE;
	BoxComplements complements = 0;
	Box _tmp3_;
	Box _tmp4_ = {0};
	gboolean _tmp5_ = FALSE;
	Box _tmp6_ = {0};
	gboolean _tmp7_ = FALSE;
	BoxComplements _tmp8_;
	BoxComplements _tmp9_;
	gboolean _tmp10_ = FALSE;
	BoxComplements _tmp11_;
	gboolean _tmp16_ = FALSE;
	BoxComplements _tmp17_;
	Box _tmp22_;
	EditingToolsPhotoCanvas* _tmp23_;
	Box _tmp24_;
#line 1733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (new_crop != NULL);
#line 1734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = *new_crop;
#line 1734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (box_equals (&self->priv->scaled_crop, &_tmp0_)) {
#line 1736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 11627 "EditingTools.c"
	}
#line 1739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->scaled_crop;
#line 1739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_invalidate_area (_tmp1_, &_tmp2_);
#line 1745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = *new_crop;
#line 1745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = box_resized_complements (&self->priv->scaled_crop, &_tmp3_, &_tmp4_, &_tmp5_, &_tmp6_, &_tmp7_);
#line 1745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	horizontal = _tmp4_;
#line 1745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	horizontal_enlarged = _tmp5_;
#line 1745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	vertical = _tmp6_;
#line 1745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	vertical_enlarged = _tmp7_;
#line 1745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	complements = _tmp8_;
#line 1749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = complements;
#line 1749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_assert (_tmp9_ != BOX_COMPLEMENTS_NONE, "complements != BoxComplements.NONE");
#line 1751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = complements;
#line 1751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp11_ == BOX_COMPLEMENTS_HORIZONTAL) {
#line 1751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = TRUE;
#line 11659 "EditingTools.c"
	} else {
		BoxComplements _tmp12_;
#line 1751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = complements;
#line 1751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = _tmp12_ == BOX_COMPLEMENTS_BOTH;
#line 11666 "EditingTools.c"
	}
#line 1751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp10_) {
#line 11670 "EditingTools.c"
		gdouble _tmp13_ = 0.0;
		gboolean _tmp14_;
		Box _tmp15_;
#line 1752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp14_ = horizontal_enlarged;
#line 1752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp14_) {
#line 1752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp13_ = 0.0;
#line 11680 "EditingTools.c"
		} else {
#line 1752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp13_ = 0.5;
#line 11684 "EditingTools.c"
		}
#line 1752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp15_ = horizontal;
#line 1752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_set_area_alpha (self, &_tmp15_, _tmp13_);
#line 11690 "EditingTools.c"
	}
#line 1754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = complements;
#line 1754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp17_ == BOX_COMPLEMENTS_VERTICAL) {
#line 1754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = TRUE;
#line 11698 "EditingTools.c"
	} else {
		BoxComplements _tmp18_;
#line 1754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp18_ = complements;
#line 1754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = _tmp18_ == BOX_COMPLEMENTS_BOTH;
#line 11705 "EditingTools.c"
	}
#line 1754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp16_) {
#line 11709 "EditingTools.c"
		gdouble _tmp19_ = 0.0;
		gboolean _tmp20_;
		Box _tmp21_;
#line 1755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp20_ = vertical_enlarged;
#line 1755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp20_) {
#line 1755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp19_ = 0.0;
#line 11719 "EditingTools.c"
		} else {
#line 1755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp19_ = 0.5;
#line 11723 "EditingTools.c"
		}
#line 1755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp21_ = vertical;
#line 1755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_set_area_alpha (self, &_tmp21_, _tmp19_);
#line 11729 "EditingTools.c"
	}
#line 1757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = *new_crop;
#line 1757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_paint_crop_tool (self, &_tmp22_);
#line 1758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = *new_crop;
#line 1758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_invalidate_area (_tmp23_, &_tmp24_);
#line 11741 "EditingTools.c"
}


static void
editing_tools_crop_tool_crop_moved (EditingToolsCropTool* self,
                                    Box* new_crop)
{
	Box _tmp0_;
	EditingToolsPhotoCanvas* _tmp1_;
	Box _tmp2_;
	Box _tmp3_;
	Box _tmp4_;
	Box _tmp5_;
	EditingToolsPhotoCanvas* _tmp6_;
	Box _tmp7_;
#line 1761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (new_crop != NULL);
#line 1762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = *new_crop;
#line 1762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (box_equals (&self->priv->scaled_crop, &_tmp0_)) {
#line 1764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 11767 "EditingTools.c"
	}
#line 1767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->scaled_crop;
#line 1767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_invalidate_area (_tmp1_, &_tmp2_);
#line 1769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->scaled_crop;
#line 1769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_set_area_alpha (self, &_tmp3_, 0.5);
#line 1770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = *new_crop;
#line 1770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_set_area_alpha (self, &_tmp4_, 0.0);
#line 1774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = *new_crop;
#line 1774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_paint_crop_tool (self, &_tmp5_);
#line 1775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = *new_crop;
#line 1775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_invalidate_area (_tmp6_, &_tmp7_);
#line 11793 "EditingTools.c"
}


static void
editing_tools_crop_tool_set_area_alpha (EditingToolsCropTool* self,
                                        Box* area,
                                        gdouble alpha)
{
	cairo_t* ctx = NULL;
	cairo_surface_t* _tmp0_;
	cairo_t* _tmp1_;
	Box _tmp2_;
	gint _tmp3_;
	Box _tmp4_;
	gint _tmp5_;
	EditingToolsPhotoCanvas* _tmp6_;
	cairo_surface_t* _tmp7_;
	Box _tmp8_;
#line 1778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (area != NULL);
#line 1779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->crop_surface;
#line 1779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = cairo_create (_tmp0_);
#line 1779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	ctx = _tmp1_;
#line 1780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_operator (ctx, CAIRO_OPERATOR_SOURCE);
#line 1781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_source_rgba (ctx, 0.0, 0.0, 0.0, alpha);
#line 1782 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *area;
#line 1782 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.left;
#line 1782 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = *area;
#line 1782 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.top;
#line 1782 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_rectangle (ctx, (gdouble) _tmp3_, (gdouble) _tmp5_, (gdouble) box_get_width (area), (gdouble) box_get_height (area));
#line 1783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_fill (ctx);
#line 1784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->crop_surface;
#line 1784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = *area;
#line 1784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_paint_surface_area (_tmp6_, _tmp7_, &_tmp8_, TRUE);
#line 1778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (ctx);
#line 11848 "EditingTools.c"
}


static void
editing_tools_crop_tool_paint_crop_tool (EditingToolsCropTool* self,
                                         Box* crop)
{
	BoxLocation _tmp0_;
	EditingToolsPhotoCanvas* _tmp55_;
	cairo_t* _tmp56_;
	Box _tmp57_;
	EditingToolsPhotoCanvas* _tmp58_;
	cairo_t* _tmp59_;
	Box _tmp60_ = {0};
	EditingToolsPhotoCanvas* _tmp61_;
	cairo_t* _tmp62_;
	Box _tmp63_ = {0};
#line 1787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
#line 1787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (crop != NULL);
#line 1789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->in_manipulation;
#line 1789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ != BOX_LOCATION_OUTSIDE) {
#line 11874 "EditingTools.c"
		gint one_third_x = 0;
		gint one_third_y = 0;
		EditingToolsPhotoCanvas* _tmp1_;
		cairo_t* _tmp2_;
		Box _tmp3_;
		gint _tmp4_;
		Box _tmp5_;
		gint _tmp6_;
		gint _tmp7_;
		EditingToolsPhotoCanvas* _tmp8_;
		cairo_t* _tmp9_;
		Box _tmp10_;
		gint _tmp11_;
		Box _tmp12_;
		gint _tmp13_;
		gint _tmp14_;
		EditingToolsPhotoCanvas* _tmp15_;
		cairo_t* _tmp16_;
		Box _tmp17_;
		gint _tmp18_;
		gint _tmp19_;
		Box _tmp20_;
		gint _tmp21_;
		EditingToolsPhotoCanvas* _tmp22_;
		cairo_t* _tmp23_;
		Box _tmp24_;
		gint _tmp25_;
		gint _tmp26_;
		Box _tmp27_;
		gint _tmp28_;
		Box adj_crop = {0};
		EditingToolsPhotoCanvas* _tmp29_;
		GdkRectangle _tmp30_ = {0};
		Dimensions _tmp31_ = {0};
		EditingToolsPhotoCanvas* _tmp32_;
		Photo* _tmp33_;
		Photo* _tmp34_;
		Dimensions _tmp35_ = {0};
		Box _tmp36_ = {0};
		Box _tmp37_;
		gchar* text = NULL;
		gchar* _tmp38_;
		gchar* _tmp39_;
		gchar* _tmp40_;
		gchar* _tmp41_;
		gchar* _tmp42_;
		gchar* _tmp43_;
		gchar* _tmp44_;
		gchar* _tmp45_;
		gint x = 0;
		Box _tmp46_;
		gint _tmp47_;
		gint y = 0;
		Box _tmp48_;
		gint _tmp49_;
		EditingToolsPhotoCanvas* _tmp50_;
		cairo_t* _tmp51_;
		const gchar* _tmp52_;
		gint _tmp53_;
		gint _tmp54_;
#line 1790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		one_third_x = box_get_width (crop) / 3;
#line 1791 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		one_third_y = box_get_height (crop) / 3;
#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->thin_white_ctx;
#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = *crop;
#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = _tmp3_.left;
#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = *crop;
#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = _tmp5_.top;
#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = one_third_y;
#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_draw_horizontal_line (_tmp1_, _tmp2_, _tmp4_, _tmp6_ + _tmp7_, box_get_width (crop), TRUE);
#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = self->priv->thin_white_ctx;
#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = *crop;
#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = _tmp10_.left;
#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = *crop;
#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp13_ = _tmp12_.top;
#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp14_ = one_third_y;
#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_draw_horizontal_line (_tmp8_, _tmp9_, _tmp11_, _tmp13_ + (_tmp14_ * 2), box_get_width (crop), TRUE);
#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = self->priv->thin_white_ctx;
#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp17_ = *crop;
#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp18_ = _tmp17_.left;
#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = one_third_x;
#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp20_ = *crop;
#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp21_ = _tmp20_.top;
#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_draw_vertical_line (_tmp15_, _tmp16_, _tmp18_ + _tmp19_, _tmp21_, box_get_height (crop), TRUE);
#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp23_ = self->priv->thin_white_ctx;
#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp24_ = *crop;
#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp25_ = _tmp24_.left;
#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp26_ = one_third_x;
#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp27_ = *crop;
#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp28_ = _tmp27_.top;
#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_draw_vertical_line (_tmp22_, _tmp23_, _tmp25_ + (_tmp26_ * 2), _tmp28_, box_get_height (crop), TRUE);
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp29_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp29_, &_tmp30_);
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		dimensions_for_rectangle (&_tmp30_, &_tmp31_);
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp32_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp33_ = editing_tools_photo_canvas_get_photo (_tmp32_);
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp34_ = _tmp33_;
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp35_);
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		box_get_scaled_similar (&self->priv->scaled_crop, &_tmp31_, &_tmp35_, &_tmp36_);
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp37_ = _tmp36_;
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp34_);
#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		adj_crop = _tmp37_;
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp38_ = g_strdup_printf ("%i", box_get_width (&adj_crop));
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp39_ = _tmp38_;
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp40_ = g_strconcat (_tmp39_, "x", NULL);
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp41_ = _tmp40_;
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp42_ = g_strdup_printf ("%i", box_get_height (&adj_crop));
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp43_ = _tmp42_;
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp44_ = g_strconcat (_tmp41_, _tmp43_, NULL);
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp45_ = _tmp44_;
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp43_);
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp41_);
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (_tmp39_);
#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		text = _tmp45_;
#line 1805 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp46_ = *crop;
#line 1805 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp47_ = _tmp46_.left;
#line 1805 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		x = _tmp47_ + (box_get_width (crop) / 2);
#line 1806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp48_ = *crop;
#line 1806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp49_ = _tmp48_.top;
#line 1806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		y = _tmp49_ + (box_get_height (crop) / 2);
#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp50_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp51_ = self->priv->text_ctx;
#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp52_ = text;
#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp53_ = x;
#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp54_ = y;
#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_draw_text (_tmp50_, _tmp51_, _tmp52_, _tmp53_, _tmp54_, TRUE);
#line 1789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_free0 (text);
#line 12075 "EditingTools.c"
	}
#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp55_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp56_ = self->priv->wide_black_ctx;
#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp57_ = *crop;
#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_draw_box (_tmp55_, _tmp56_, &_tmp57_);
#line 1812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp58_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp59_ = self->priv->wide_white_ctx;
#line 1812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_reduced (crop, 1, &_tmp60_);
#line 1812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_draw_box (_tmp58_, _tmp59_, &_tmp60_);
#line 1813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp61_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp62_ = self->priv->wide_white_ctx;
#line 1813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	box_get_reduced (crop, 2, &_tmp63_);
#line 1813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_draw_box (_tmp61_, _tmp62_, &_tmp63_);
#line 12101 "EditingTools.c"
}


static EditingToolsCropToolConstraintDescription*
editing_tools_crop_tool_constraint_description_construct (GType object_type,
                                                          const gchar* new_name,
                                                          gint new_basis_width,
                                                          gint new_basis_height,
                                                          gboolean new_pivotable,
                                                          gfloat new_aspect_ratio)
{
	EditingToolsCropToolConstraintDescription* self = NULL;
	gchar* _tmp0_;
#line 593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (new_name != NULL, NULL);
#line 593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsCropToolConstraintDescription*) g_type_create_instance (object_type);
#line 595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = g_strdup (new_name);
#line 595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_free0 (self->name);
#line 595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->name = _tmp0_;
#line 596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->basis_width = new_basis_width;
#line 597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->basis_height = new_basis_height;
#line 598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (new_aspect_ratio == EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS) {
#line 12131 "EditingTools.c"
		gint _tmp1_;
		gint _tmp2_;
#line 599 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = self->basis_width;
#line 599 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->basis_height;
#line 599 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->aspect_ratio = ((gfloat) _tmp1_) / ((gfloat) _tmp2_);
#line 12140 "EditingTools.c"
	} else {
#line 601 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->aspect_ratio = new_aspect_ratio;
#line 12144 "EditingTools.c"
	}
#line 602 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->is_pivotable = new_pivotable;
#line 593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 12150 "EditingTools.c"
}


static EditingToolsCropToolConstraintDescription*
editing_tools_crop_tool_constraint_description_new (const gchar* new_name,
                                                    gint new_basis_width,
                                                    gint new_basis_height,
                                                    gboolean new_pivotable,
                                                    gfloat new_aspect_ratio)
{
#line 593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_crop_tool_constraint_description_construct (EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, new_name, new_basis_width, new_basis_height, new_pivotable, new_aspect_ratio);
#line 12163 "EditingTools.c"
}


static gboolean
editing_tools_crop_tool_constraint_description_is_separator (EditingToolsCropToolConstraintDescription* self)
{
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_;
#line 605 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_CROP_TOOL_IS_CONSTRAINT_DESCRIPTION (self), FALSE);
#line 606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->is_pivotable;
#line 606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!_tmp1_) {
#line 12179 "EditingTools.c"
		gfloat _tmp2_;
#line 606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->aspect_ratio;
#line 606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = _tmp2_ == EDITING_TOOLS_CROP_TOOL_SEPARATOR;
#line 12185 "EditingTools.c"
	} else {
#line 606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = FALSE;
#line 12189 "EditingTools.c"
	}
#line 606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp0_;
#line 606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 12195 "EditingTools.c"
}


static void
editing_tools_crop_tool_value_constraint_description_init (GValue* value)
{
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	value->data[0].v_pointer = NULL;
#line 12204 "EditingTools.c"
}


static void
editing_tools_crop_tool_value_constraint_description_free_value (GValue* value)
{
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (value->data[0].v_pointer) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_constraint_description_unref (value->data[0].v_pointer);
#line 12215 "EditingTools.c"
	}
}


static void
editing_tools_crop_tool_value_constraint_description_copy_value (const GValue* src_value,
                                                                 GValue* dest_value)
{
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (src_value->data[0].v_pointer) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		dest_value->data[0].v_pointer = editing_tools_crop_tool_constraint_description_ref (src_value->data[0].v_pointer);
#line 12228 "EditingTools.c"
	} else {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		dest_value->data[0].v_pointer = NULL;
#line 12232 "EditingTools.c"
	}
}


static gpointer
editing_tools_crop_tool_value_constraint_description_peek_pointer (const GValue* value)
{
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return value->data[0].v_pointer;
#line 12242 "EditingTools.c"
}


static gchar*
editing_tools_crop_tool_value_constraint_description_collect_value (GValue* value,
                                                                    guint n_collect_values,
                                                                    GTypeCValue* collect_values,
                                                                    guint collect_flags)
{
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (collect_values[0].v_pointer) {
#line 12254 "EditingTools.c"
		EditingToolsCropToolConstraintDescription * object;
		object = collect_values[0].v_pointer;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (object->parent_instance.g_class == NULL) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 12261 "EditingTools.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.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 12265 "EditingTools.c"
		}
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = editing_tools_crop_tool_constraint_description_ref (object);
#line 12269 "EditingTools.c"
	} else {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 12273 "EditingTools.c"
	}
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return NULL;
#line 12277 "EditingTools.c"
}


static gchar*
editing_tools_crop_tool_value_constraint_description_lcopy_value (const GValue* value,
                                                                  guint n_collect_values,
                                                                  GTypeCValue* collect_values,
                                                                  guint collect_flags)
{
	EditingToolsCropToolConstraintDescription ** object_p;
	object_p = collect_values[0].v_pointer;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!object_p) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 12293 "EditingTools.c"
	}
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!value->data[0].v_pointer) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = NULL;
#line 12299 "EditingTools.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = value->data[0].v_pointer;
#line 12303 "EditingTools.c"
	} else {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*object_p = editing_tools_crop_tool_constraint_description_ref (value->data[0].v_pointer);
#line 12307 "EditingTools.c"
	}
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return NULL;
#line 12311 "EditingTools.c"
}


static GParamSpec*
editing_tools_crop_tool_param_spec_constraint_description (const gchar* name,
                                                           const gchar* nick,
                                                           const gchar* blurb,
                                                           GType object_type,
                                                           GParamFlags flags)
{
	EditingToolsCropToolParamSpecConstraintDescription* spec;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (g_type_is_a (object_type, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION), NULL);
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return G_PARAM_SPEC (spec);
#line 12331 "EditingTools.c"
}


static gpointer
editing_tools_crop_tool_value_get_constraint_description (const GValue* value)
{
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION), NULL);
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return value->data[0].v_pointer;
#line 12342 "EditingTools.c"
}


static void
editing_tools_crop_tool_value_set_constraint_description (GValue* value,
                                                          gpointer v_object)
{
	EditingToolsCropToolConstraintDescription * old;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION));
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old = value->data[0].v_pointer;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (v_object) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION));
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = v_object;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_constraint_description_ref (value->data[0].v_pointer);
#line 12365 "EditingTools.c"
	} else {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 12369 "EditingTools.c"
	}
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (old) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_constraint_description_unref (old);
#line 12375 "EditingTools.c"
	}
}


static void
editing_tools_crop_tool_value_take_constraint_description (GValue* value,
                                                           gpointer v_object)
{
	EditingToolsCropToolConstraintDescription * old;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION));
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old = value->data[0].v_pointer;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (v_object) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION));
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = v_object;
#line 12397 "EditingTools.c"
	} else {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		value->data[0].v_pointer = NULL;
#line 12401 "EditingTools.c"
	}
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (old) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_crop_tool_constraint_description_unref (old);
#line 12407 "EditingTools.c"
	}
}


static void
editing_tools_crop_tool_constraint_description_class_init (EditingToolsCropToolConstraintDescriptionClass * klass)
{
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_constraint_description_parent_class = g_type_class_peek_parent (klass);
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsCropToolConstraintDescriptionClass *) klass)->finalize = editing_tools_crop_tool_constraint_description_finalize;
#line 12419 "EditingTools.c"
}


static void
editing_tools_crop_tool_constraint_description_instance_init (EditingToolsCropToolConstraintDescription * self)
{
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->ref_count = 1;
#line 12428 "EditingTools.c"
}


static void
editing_tools_crop_tool_constraint_description_finalize (EditingToolsCropToolConstraintDescription * obj)
{
	EditingToolsCropToolConstraintDescription * self;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, EditingToolsCropToolConstraintDescription);
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_destroy (self);
#line 587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_free0 (self->name);
#line 12442 "EditingTools.c"
}


static GType
editing_tools_crop_tool_constraint_description_get_type (void)
{
	static volatile gsize editing_tools_crop_tool_constraint_description_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_crop_tool_constraint_description_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { editing_tools_crop_tool_value_constraint_description_init, editing_tools_crop_tool_value_constraint_description_free_value, editing_tools_crop_tool_value_constraint_description_copy_value, editing_tools_crop_tool_value_constraint_description_peek_pointer, "p", editing_tools_crop_tool_value_constraint_description_collect_value, "p", editing_tools_crop_tool_value_constraint_description_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsCropToolConstraintDescriptionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_crop_tool_constraint_description_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsCropToolConstraintDescription), 0, (GInstanceInitFunc) editing_tools_crop_tool_constraint_description_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 editing_tools_crop_tool_constraint_description_type_id;
		editing_tools_crop_tool_constraint_description_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EditingToolsCropToolConstraintDescription", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&editing_tools_crop_tool_constraint_description_type_id__volatile, editing_tools_crop_tool_constraint_description_type_id);
	}
	return editing_tools_crop_tool_constraint_description_type_id__volatile;
}


static gpointer
editing_tools_crop_tool_constraint_description_ref (gpointer instance)
{
	EditingToolsCropToolConstraintDescription * self;
	self = instance;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_atomic_int_inc (&self->ref_count);
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return instance;
#line 12471 "EditingTools.c"
}


static void
editing_tools_crop_tool_constraint_description_unref (gpointer instance)
{
	EditingToolsCropToolConstraintDescription * self;
	self = instance;
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION_GET_CLASS (self)->finalize (self);
#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 12486 "EditingTools.c"
	}
}


static gboolean
_editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func_gtk_tree_view_row_separator_func (GtkTreeModel* model,
                                                                                                            GtkTreeIter* iter,
                                                                                                            gpointer self)
{
	gboolean result;
	result = editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func (model, iter);
#line 654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 12500 "EditingTools.c"
}


static EditingToolsCropToolCropToolWindow*
editing_tools_crop_tool_crop_tool_window_construct (GType object_type,
                                                    GtkWindow* container)
{
	EditingToolsCropToolCropToolWindow * self = NULL;
	GtkButton* _tmp0_;
	GtkButton* _tmp1_;
	GtkButton* _tmp2_;
	GtkButton* _tmp3_;
	GtkComboBox* _tmp4_;
	GtkCellRendererText* combo_text_renderer = NULL;
	GtkCellRendererText* _tmp5_;
	GtkComboBox* _tmp6_;
	GtkComboBox* _tmp7_;
	GtkComboBox* _tmp8_;
	GtkComboBox* _tmp9_;
	GtkImage* image = NULL;
	GtkImage* _tmp10_;
	GtkButton* _tmp11_;
	GtkButton* _tmp12_;
	GtkEntry* _tmp13_;
	GtkEntry* _tmp14_;
	GtkEntry* _tmp15_;
	GtkEntry* _tmp16_;
	GtkBox* _tmp17_;
	GtkBox* _tmp18_;
	GtkBox* _tmp19_;
	GtkButton* _tmp20_;
	GtkBox* _tmp21_;
	GtkButton* _tmp22_;
	GtkBox* _tmp23_;
	GtkBox* _tmp24_;
	GtkComboBox* _tmp25_;
	GtkBox* _tmp26_;
	GtkButton* _tmp27_;
	GtkBox* _tmp28_;
	GtkBox* _tmp29_;
	GtkBox* _tmp30_;
#line 641 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
#line 642 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsCropToolCropToolWindow*) editing_tools_editing_tool_window_construct (object_type, container);
#line 644 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->cancel_button;
#line 644 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), _ ("Return to current photo dimensions"));
#line 645 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->cancel_button;
#line 645 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_button_set_image_position (_tmp1_, GTK_POS_LEFT);
#line 647 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->ok_button;
#line 647 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), _ ("Set the crop for this photo"));
#line 648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->ok_button;
#line 648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_button_set_image_position (_tmp3_, GTK_POS_LEFT);
#line 650 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = (GtkComboBox*) gtk_combo_box_new ();
#line 650 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp4_);
#line 650 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->constraint_combo);
#line 650 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->constraint_combo = _tmp4_;
#line 651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
#line 651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp5_);
#line 651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	combo_text_renderer = _tmp5_;
#line 652 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->constraint_combo;
#line 652 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_cell_layout_get_type (), GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (combo_text_renderer, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
#line 653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->constraint_combo;
#line 653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_cell_layout_get_type (), GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (combo_text_renderer, gtk_cell_renderer_get_type (), GtkCellRenderer), "text", 0);
#line 654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->constraint_combo;
#line 654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_combo_box_set_row_separator_func (_tmp8_, _editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func_gtk_tree_view_row_separator_func, NULL, NULL);
#line 655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->constraint_combo;
#line 655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_combo_box_set_active (_tmp9_, 0);
#line 657 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = (GtkImage*) gtk_image_new_from_icon_name ("crop-pivot-reticle", (GtkIconSize) GTK_ICON_SIZE_LARGE_TOOLBAR);
#line 657 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp10_);
#line 657 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	image = _tmp10_;
#line 658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->pivot_reticle_button;
#line 658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_button_set_image (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (image, gtk_widget_get_type (), GtkWidget));
#line 659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = self->pivot_reticle_button;
#line 659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), _ ("Pivot the crop rectangle between portrait and landscape orientations"));
#line 661 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->custom_width_entry;
#line 661 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_entry_set_width_chars (_tmp13_, 4);
#line 662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->custom_width_entry;
#line 662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_set (_tmp14_, "editable", TRUE, NULL);
#line 663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->custom_height_entry;
#line 663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_entry_set_width_chars (_tmp15_, 4);
#line 664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = self->custom_height_entry;
#line 664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_set (_tmp16_, "editable", TRUE, NULL);
#line 666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_CONTROL_SPACING);
#line 666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp17_);
#line 666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->response_layout);
#line 666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->response_layout = _tmp17_;
#line 667 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->response_layout;
#line 667 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_box_set_homogeneous (_tmp18_, TRUE);
#line 668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = self->response_layout;
#line 668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = self->cancel_button;
#line 668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget));
#line 669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = self->response_layout;
#line 669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = self->ok_button;
#line 669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget));
#line 671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_CONTROL_SPACING);
#line 671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp23_);
#line 671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->layout);
#line 671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->layout = _tmp23_;
#line 672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = self->layout;
#line 672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = self->constraint_combo;
#line 672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget));
#line 673 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = self->layout;
#line 673 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = self->pivot_reticle_button;
#line 673 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget));
#line 674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = self->layout;
#line 674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = self->response_layout;
#line 674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget));
#line 676 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = self->layout;
#line 676 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_widget_get_type (), GtkWidget));
#line 641 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (image);
#line 641 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (combo_text_renderer);
#line 641 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 12682 "EditingTools.c"
}


static EditingToolsCropToolCropToolWindow*
editing_tools_crop_tool_crop_tool_window_new (GtkWindow* container)
{
#line 641 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_crop_tool_crop_tool_window_construct (EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, container);
#line 12691 "EditingTools.c"
}


static gboolean
editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func (GtkTreeModel* model,
                                                                          GtkTreeIter* iter)
{
	gboolean result = FALSE;
	GValue val = {0};
	GtkTreeIter _tmp0_;
	GValue _tmp1_ = {0};
	gchar* _tmp2_;
	gchar* _tmp3_;
	gboolean _tmp4_;
#line 679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
#line 679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (iter != NULL, FALSE);
#line 681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = *iter;
#line 681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_tree_model_get_value (model, &_tmp0_, 0, &_tmp1_);
#line 681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
#line 681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	val = _tmp1_;
#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = g_value_dup_string (&val);
#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_;
#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = g_strcmp0 (_tmp3_, "-") == 0;
#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_free0 (_tmp3_);
#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp4_;
#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 12732 "EditingTools.c"
}


static void
editing_tools_crop_tool_crop_tool_window_class_init (EditingToolsCropToolCropToolWindowClass * klass)
{
#line 625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_crop_tool_window_parent_class = g_type_class_peek_parent (klass);
#line 625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (klass)->finalize = editing_tools_crop_tool_crop_tool_window_finalize;
#line 12743 "EditingTools.c"
}


static void
editing_tools_crop_tool_crop_tool_window_instance_init (EditingToolsCropToolCropToolWindow * self)
{
	GtkButton* _tmp0_;
	GtkButton* _tmp1_;
	GtkButton* _tmp2_;
	GtkEntry* _tmp3_;
	GtkEntry* _tmp4_;
	GtkLabel* _tmp5_;
#line 628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = (GtkButton*) gtk_button_new_with_label (RESOURCES_CROP_LABEL);
#line 628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp0_);
#line 628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->ok_button = _tmp0_;
#line 629 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL);
#line 629 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp1_);
#line 629 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->cancel_button = _tmp1_;
#line 631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = (GtkButton*) gtk_button_new ();
#line 631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp2_);
#line 631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->pivot_reticle_button = _tmp2_;
#line 632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = (GtkEntry*) gtk_entry_new ();
#line 632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp3_);
#line 632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->custom_width_entry = _tmp3_;
#line 633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = (GtkEntry*) gtk_entry_new ();
#line 633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp4_);
#line 633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->custom_height_entry = _tmp4_;
#line 634 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = (GtkLabel*) gtk_label_new_with_mnemonic ("x");
#line 634 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp5_);
#line 634 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->custom_mulsign_label = _tmp5_;
#line 635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->most_recently_edited = NULL;
#line 636 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->response_layout = NULL;
#line 637 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->layout = NULL;
#line 638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->normal_width = -1;
#line 639 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->normal_height = -1;
#line 12802 "EditingTools.c"
}


static void
editing_tools_crop_tool_crop_tool_window_finalize (GObject * obj)
{
	EditingToolsCropToolCropToolWindow * self;
#line 625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, EditingToolsCropToolCropToolWindow);
#line 628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->ok_button);
#line 629 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->cancel_button);
#line 630 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->constraint_combo);
#line 631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->pivot_reticle_button);
#line 632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->custom_width_entry);
#line 633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->custom_height_entry);
#line 634 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->custom_mulsign_label);
#line 635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->most_recently_edited);
#line 636 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->response_layout);
#line 637 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->layout);
#line 625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (editing_tools_crop_tool_crop_tool_window_parent_class)->finalize (obj);
#line 12834 "EditingTools.c"
}


static GType
editing_tools_crop_tool_crop_tool_window_get_type (void)
{
	static volatile gsize editing_tools_crop_tool_crop_tool_window_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_crop_tool_crop_tool_window_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsCropToolCropToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_crop_tool_crop_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsCropToolCropToolWindow), 0, (GInstanceInitFunc) editing_tools_crop_tool_crop_tool_window_instance_init, NULL };
		GType editing_tools_crop_tool_crop_tool_window_type_id;
		editing_tools_crop_tool_crop_tool_window_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, "EditingToolsCropToolCropToolWindow", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_crop_tool_crop_tool_window_type_id__volatile, editing_tools_crop_tool_crop_tool_window_type_id);
	}
	return editing_tools_crop_tool_crop_tool_window_type_id__volatile;
}


static void
editing_tools_crop_tool_class_init (EditingToolsCropToolClass * klass)
{
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_crop_tool_parent_class = g_type_class_peek_parent (klass);
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_crop_tool_finalize;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsCropToolPrivate));
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->activate = (void (*) (EditingToolsEditingTool *, EditingToolsPhotoCanvas*)) editing_tools_crop_tool_real_activate;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_keypress = (gboolean (*) (EditingToolsEditingTool *, GdkEventKey*)) editing_tools_crop_tool_real_on_keypress;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->deactivate = (void (*) (EditingToolsEditingTool *)) editing_tools_crop_tool_real_deactivate;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->get_tool_window = (EditingToolsEditingToolWindow* (*) (EditingToolsEditingTool *)) editing_tools_crop_tool_real_get_tool_window;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->get_display_pixbuf = (GdkPixbuf* (*) (EditingToolsEditingTool *, Scaling*, Photo*, Dimensions*, GError**)) editing_tools_crop_tool_real_get_display_pixbuf;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_left_click = (void (*) (EditingToolsEditingTool *, gint, gint)) editing_tools_crop_tool_real_on_left_click;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_left_released = (void (*) (EditingToolsEditingTool *, gint, gint)) editing_tools_crop_tool_real_on_left_released;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_motion = (void (*) (EditingToolsEditingTool *, gint, gint, GdkModifierType)) editing_tools_crop_tool_real_on_motion;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->paint = (void (*) (EditingToolsEditingTool *, cairo_t*)) editing_tools_crop_tool_real_paint;
#line 12879 "EditingTools.c"
}


static void
editing_tools_crop_tool_instance_init (EditingToolsCropTool * self)
{
	gint _tmp0_;
	EditingToolsCropToolConstraintDescription** _tmp1_;
	gint _tmp2_;
	EditingToolsCropToolConstraintDescription** _tmp3_;
	EditingToolsCropToolConstraintDescription** _tmp4_;
	gint _tmp4__length1;
	GtkListStore* _tmp5_;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_CROP_TOOL_GET_PRIVATE (self);
#line 687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->crop_tool_window = NULL;
#line 688 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->current_cursor_type = GDK_LEFT_PTR;
#line 689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->in_manipulation = BOX_LOCATION_OUTSIDE;
#line 690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->wide_black_ctx = NULL;
#line 691 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->wide_white_ctx = NULL;
#line 692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->thin_white_ctx = NULL;
#line 693 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->text_ctx = NULL;
#line 696 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->crop_surface = NULL;
#line 700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->last_grab_x = -1;
#line 701 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->last_grab_y = -1;
#line 703 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_crop_tool_create_constraints (&_tmp0_);
#line 703 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->constraints = _tmp1_;
#line 703 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->constraints_length1 = _tmp0_;
#line 703 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->_constraints_size_ = self->priv->constraints_length1;
#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = editing_tools_crop_tool_create_constraints (&_tmp2_);
#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_;
#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4__length1 = _tmp2_;
#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = editing_tools_crop_tool_create_constraint_list (_tmp4_, _tmp2_);
#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->constraint_list = _tmp5_;
#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) editing_tools_crop_tool_constraint_description_unref), NULL);
#line 705 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->reticle_orientation = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE;
#line 706 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->constraint_mode = EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL;
#line 707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->entry_insert_in_progress = FALSE;
#line 708 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_aspect_ratio = 1.0f;
#line 709 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_width = -1;
#line 710 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_height = -1;
#line 711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_init_width = -1;
#line 712 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->custom_init_height = -1;
#line 713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->pre_aspect_ratio = EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO;
#line 12953 "EditingTools.c"
}


static void
editing_tools_crop_tool_finalize (EditingToolsEditingTool * obj)
{
	EditingToolsCropTool * self;
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
#line 687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->crop_tool_window);
#line 690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->wide_black_ctx);
#line 691 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->wide_white_ctx);
#line 692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->thin_white_ctx);
#line 693 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->text_ctx);
#line 696 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_surface_destroy0 (self->priv->crop_surface);
#line 703 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->constraints = (_vala_array_free (self->priv->constraints, self->priv->constraints_length1, (GDestroyNotify) editing_tools_crop_tool_constraint_description_unref), NULL);
#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->constraint_list);
#line 565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_crop_tool_parent_class)->finalize (obj);
#line 12981 "EditingTools.c"
}


GType
editing_tools_crop_tool_get_type (void)
{
	static volatile gsize editing_tools_crop_tool_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_crop_tool_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsCropToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_crop_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsCropTool), 0, (GInstanceInitFunc) editing_tools_crop_tool_instance_init, NULL };
		GType editing_tools_crop_tool_type_id;
		editing_tools_crop_tool_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL, "EditingToolsCropTool", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_crop_tool_type_id__volatile, editing_tools_crop_tool_type_id);
	}
	return editing_tools_crop_tool_type_id__volatile;
}


static void
editing_tools_redeye_instance_init (EditingToolsRedeyeInstance *self)
{
	GdkPoint default_center = {0};
	GdkPoint _tmp0_;
#line 1826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	memset (self, 0, sizeof (EditingToolsRedeyeInstance));
#line 1827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	memset (&default_center, 0, sizeof (GdkPoint));
#line 1828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = default_center;
#line 1828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*self).center = _tmp0_;
#line 1829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	(*self).radius = EDITING_TOOLS_REDEYE_INSTANCE_DEFAULT_RADIUS;
#line 13014 "EditingTools.c"
}


void
editing_tools_redeye_instance_to_bounds_rect (EditingToolsRedeyeInstance* inst,
                                              GdkRectangle* result)
{
	GdkRectangle _result_ = {0};
	EditingToolsRedeyeInstance _tmp0_;
	GdkPoint _tmp1_;
	gint _tmp2_;
	EditingToolsRedeyeInstance _tmp3_;
	gint _tmp4_;
	EditingToolsRedeyeInstance _tmp5_;
	GdkPoint _tmp6_;
	gint _tmp7_;
	EditingToolsRedeyeInstance _tmp8_;
	gint _tmp9_;
	EditingToolsRedeyeInstance _tmp10_;
	gint _tmp11_;
	GdkRectangle _tmp12_;
	gint _tmp13_;
#line 1832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (inst != NULL);
#line 1833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	memset (&_result_, 0, sizeof (GdkRectangle));
#line 1834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = *inst;
#line 1834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_.center;
#line 1834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_.x;
#line 1834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = *inst;
#line 1834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.radius;
#line 1834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.x = _tmp2_ - _tmp4_;
#line 1835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = *inst;
#line 1835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.center;
#line 1835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.y;
#line 1835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = *inst;
#line 1835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.radius;
#line 1835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.y = _tmp7_ - _tmp9_;
#line 1836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = *inst;
#line 1836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_.radius;
#line 1836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.width = 2 * _tmp11_;
#line 1837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _result_;
#line 1837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.width;
#line 1837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.height = _tmp13_;
#line 1839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _result_;
#line 1839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 13081 "EditingTools.c"
}


void
editing_tools_redeye_instance_from_bounds_rect (GdkRectangle* rect,
                                                EditingToolsRedeyeInstance* result)
{
	GdkRectangle in_rect = {0};
	GdkRectangle _tmp0_;
	EditingToolsRedeyeInstance _result_ = {0};
	GdkRectangle _tmp1_;
	gint _tmp2_;
	GdkRectangle _tmp3_;
	gint _tmp4_;
	GdkRectangle _tmp5_;
	gint _tmp6_;
	EditingToolsRedeyeInstance _tmp7_;
	gint _tmp8_;
	GdkRectangle _tmp9_;
	gint _tmp10_;
	EditingToolsRedeyeInstance _tmp11_;
	gint _tmp12_;
#line 1842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (rect != NULL);
#line 1843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = *rect;
#line 1843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	in_rect = _tmp0_;
#line 1845 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_instance_init (&_result_);
#line 1846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = in_rect;
#line 1846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_.width;
#line 1846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = in_rect;
#line 1846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.height;
#line 1846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.radius = (_tmp2_ + _tmp4_) / 4;
#line 1847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = in_rect;
#line 1847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.x;
#line 1847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _result_;
#line 1847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_.radius;
#line 1847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.center.x = _tmp6_ + _tmp8_;
#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = in_rect;
#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.y;
#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _result_;
#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.radius;
#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.center.y = _tmp10_ + _tmp12_;
#line 1850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _result_;
#line 1850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 13146 "EditingTools.c"
}


EditingToolsRedeyeInstance*
editing_tools_redeye_instance_dup (const EditingToolsRedeyeInstance* self)
{
	EditingToolsRedeyeInstance* dup;
#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	dup = g_new0 (EditingToolsRedeyeInstance, 1);
#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	memcpy (dup, self, sizeof (EditingToolsRedeyeInstance));
#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return dup;
#line 13160 "EditingTools.c"
}


void
editing_tools_redeye_instance_free (EditingToolsRedeyeInstance* self)
{
#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_free (self);
#line 13169 "EditingTools.c"
}


GType
editing_tools_redeye_instance_get_type (void)
{
	static volatile gsize editing_tools_redeye_instance_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_redeye_instance_type_id__volatile)) {
		GType editing_tools_redeye_instance_type_id;
		editing_tools_redeye_instance_type_id = g_boxed_type_register_static ("EditingToolsRedeyeInstance", (GBoxedCopyFunc) editing_tools_redeye_instance_dup, (GBoxedFreeFunc) editing_tools_redeye_instance_free);
		g_once_init_leave (&editing_tools_redeye_instance_type_id__volatile, editing_tools_redeye_instance_type_id);
	}
	return editing_tools_redeye_instance_type_id__volatile;
}


static EditingToolsRedeyeTool*
editing_tools_redeye_tool_construct (GType object_type)
{
	EditingToolsRedeyeTool* self = NULL;
#line 1902 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsRedeyeTool*) editing_tools_editing_tool_construct (object_type, "RedeyeTool");
#line 1901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 13194 "EditingTools.c"
}


static EditingToolsRedeyeTool*
editing_tools_redeye_tool_new (void)
{
#line 1901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_redeye_tool_construct (EDITING_TOOLS_TYPE_REDEYE_TOOL);
#line 13203 "EditingTools.c"
}


EditingToolsRedeyeTool*
editing_tools_redeye_tool_factory (void)
{
	EditingToolsRedeyeTool* result = NULL;
	EditingToolsRedeyeTool* _tmp0_;
#line 1906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_redeye_tool_new ();
#line 1906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp0_;
#line 1906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 13218 "EditingTools.c"
}


gboolean
editing_tools_redeye_tool_is_available (Photo* photo,
                                        Scaling* scaling)
{
	gboolean result = FALSE;
	Dimensions dim = {0};
	Dimensions _tmp0_ = {0};
	Dimensions _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	Dimensions _tmp3_;
	gint _tmp4_;
#line 1909 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), FALSE);
#line 1909 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (scaling != NULL, FALSE);
#line 1910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (photo, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp0_);
#line 1910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scaling_get_scaled_dimensions (scaling, &_tmp0_, &_tmp1_);
#line 1910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	dim = _tmp1_;
#line 1912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = dim;
#line 1912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.width;
#line 1912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp4_ >= (EDITING_TOOLS_REDEYE_INSTANCE_MAX_RADIUS * 2)) {
#line 13249 "EditingTools.c"
		Dimensions _tmp5_;
		gint _tmp6_;
#line 1913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = dim;
#line 1913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = _tmp5_.height;
#line 1913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = _tmp6_ >= (EDITING_TOOLS_REDEYE_INSTANCE_MAX_RADIUS * 2);
#line 13258 "EditingTools.c"
	} else {
#line 1912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = FALSE;
#line 13262 "EditingTools.c"
	}
#line 1912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp2_;
#line 1912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 13268 "EditingTools.c"
}


static void
editing_tools_redeye_tool_new_interaction_instance (EditingToolsRedeyeTool* self,
                                                    EditingToolsPhotoCanvas* canvas,
                                                    EditingToolsRedeyeInstance* result)
{
	GdkRectangle photo_bounds = {0};
	GdkRectangle _tmp0_ = {0};
	GdkPoint photo_center = {0};
	GdkPoint _tmp1_ = {0};
	GdkRectangle _tmp2_;
	gint _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	GdkRectangle _tmp6_;
	gint _tmp7_;
	GdkRectangle _tmp8_;
	gint _tmp9_;
	EditingToolsRedeyeInstance _result_ = {0};
	GdkPoint _tmp10_;
	gint _tmp11_;
	GdkPoint _tmp12_;
	gint _tmp13_;
#line 1916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 1916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 1917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (canvas, &_tmp0_);
#line 1917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_bounds = _tmp0_;
#line 1918 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_.x = 0;
#line 1918 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_center = _tmp1_;
#line 1919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = photo_bounds;
#line 1919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.x;
#line 1919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = photo_bounds;
#line 1919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_.width;
#line 1919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_center.x = _tmp3_ + (_tmp5_ / 2);
#line 1920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = photo_bounds;
#line 1920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.y;
#line 1920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = photo_bounds;
#line 1920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.height;
#line 1920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_center.y = _tmp7_ + (_tmp9_ / 2);
#line 1922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_instance_init (&_result_);
#line 1923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = photo_center;
#line 1923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_.x;
#line 1923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.center.x = _tmp11_;
#line 1924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = photo_center;
#line 1924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.y;
#line 1924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.center.y = _tmp13_;
#line 1925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_result_.radius = EDITING_TOOLS_REDEYE_INSTANCE_DEFAULT_RADIUS;
#line 1927 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	*result = _result_;
#line 1927 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return;
#line 13346 "EditingTools.c"
}


static void
editing_tools_redeye_tool_prepare_ctx (EditingToolsRedeyeTool* self,
                                       cairo_t* ctx,
                                       Dimensions* dim)
{
	cairo_surface_t* _tmp0_;
	cairo_t* _tmp1_;
	cairo_t* _tmp2_;
	cairo_t* _tmp3_;
	cairo_surface_t* _tmp4_;
	cairo_t* _tmp5_;
	cairo_t* _tmp6_;
	cairo_t* _tmp7_;
#line 1930 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 1930 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 1930 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (dim != NULL);
#line 1931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = cairo_get_target (ctx);
#line 1931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = cairo_create (_tmp0_);
#line 1931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->wider_gray_ctx);
#line 1931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->wider_gray_ctx = _tmp1_;
#line 1932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->wider_gray_ctx;
#line 1932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	set_source_color_from_string (_tmp2_, "#111");
#line 1933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->wider_gray_ctx;
#line 1933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_line_width (_tmp3_, (gdouble) 3);
#line 1935 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = cairo_get_target (ctx);
#line 1935 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = cairo_create (_tmp4_);
#line 1935 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->thin_white_ctx);
#line 1935 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->thin_white_ctx = _tmp5_;
#line 1936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->thin_white_ctx;
#line 1936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	set_source_color_from_string (_tmp6_, "#FFF");
#line 1937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->thin_white_ctx;
#line 1937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cairo_set_line_width (_tmp7_, (gdouble) 1);
#line 13401 "EditingTools.c"
}


static void
editing_tools_redeye_tool_draw_redeye_instance (EditingToolsRedeyeTool* self,
                                                EditingToolsRedeyeInstance* inst)
{
	EditingToolsPhotoCanvas* _tmp0_;
	cairo_t* _tmp1_;
	EditingToolsRedeyeInstance _tmp2_;
	GdkPoint _tmp3_;
	gint _tmp4_;
	EditingToolsRedeyeInstance _tmp5_;
	GdkPoint _tmp6_;
	gint _tmp7_;
	EditingToolsRedeyeInstance _tmp8_;
	gint _tmp9_;
	EditingToolsPhotoCanvas* _tmp10_;
	cairo_t* _tmp11_;
	EditingToolsRedeyeInstance _tmp12_;
	GdkPoint _tmp13_;
	gint _tmp14_;
	EditingToolsRedeyeInstance _tmp15_;
	GdkPoint _tmp16_;
	gint _tmp17_;
	EditingToolsRedeyeInstance _tmp18_;
	gint _tmp19_;
#line 1940 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 1940 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (inst != NULL);
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->wider_gray_ctx;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *inst;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_.center;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.x;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = *inst;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_.center;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.y;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = *inst;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.radius;
#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_draw_circle (_tmp0_, _tmp1_, _tmp4_, _tmp7_, _tmp9_);
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->thin_white_ctx;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = *inst;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.center;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_.x;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = *inst;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = _tmp15_.center;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _tmp16_.y;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = *inst;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = _tmp18_.radius;
#line 1943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_draw_circle (_tmp10_, _tmp11_, _tmp14_, _tmp17_, _tmp19_);
#line 13477 "EditingTools.c"
}


static gboolean
editing_tools_redeye_tool_on_size_slider_adjust (EditingToolsRedeyeTool* self,
                                                 GtkScrollType type)
{
	gboolean result = FALSE;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp0_;
	GtkScale* _tmp1_;
	EditingToolsPhotoCanvas* _tmp2_;
#line 1947 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self), FALSE);
#line 1948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->redeye_tool_window;
#line 1948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->slider;
#line 1948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_interaction_instance.radius = (gint) gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
#line 1951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp2_);
#line 1953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = FALSE;
#line 1953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 13505 "EditingTools.c"
}


static void
editing_tools_redeye_tool_on_apply (EditingToolsRedeyeTool* self)
{
	GdkRectangle bounds_rect_user = {0};
	EditingToolsRedeyeInstance _tmp0_;
	GdkRectangle _tmp1_ = {0};
	GdkRectangle bounds_rect_active = {0};
	EditingToolsPhotoCanvas* _tmp2_;
	GdkRectangle _tmp3_;
	GdkRectangle _tmp4_ = {0};
	GdkRectangle bounds_rect_unscaled = {0};
	EditingToolsPhotoCanvas* _tmp5_;
	GdkRectangle _tmp6_;
	GdkRectangle _tmp7_ = {0};
	GdkRectangle bounds_rect_raw = {0};
	EditingToolsPhotoCanvas* _tmp8_;
	GdkRectangle _tmp9_;
	GdkRectangle _tmp10_ = {0};
	EditingToolsRedeyeInstance instance_raw = {0};
	GdkRectangle _tmp11_;
	EditingToolsRedeyeInstance _tmp12_ = {0};
	Dimensions dimensions = {0};
	EditingToolsPhotoCanvas* _tmp13_;
	Photo* _tmp14_;
	Photo* _tmp15_;
	Dimensions _tmp16_ = {0};
	Dimensions _tmp17_;
	gdouble theta = 0.0;
	EditingToolsPhotoCanvas* _tmp18_;
	Photo* _tmp19_;
	Photo* _tmp20_;
	gdouble _tmp21_ = 0.0;
	EditingToolsRedeyeInstance _tmp22_;
	GdkPoint _tmp23_;
	Dimensions _tmp24_;
	gint _tmp25_;
	Dimensions _tmp26_;
	gint _tmp27_;
	gdouble _tmp28_;
	GdkPoint _tmp29_ = {0};
	RedeyeCommand* command = NULL;
	EditingToolsPhotoCanvas* _tmp30_;
	Photo* _tmp31_;
	Photo* _tmp32_;
	EditingToolsRedeyeInstance _tmp33_;
	RedeyeCommand* _tmp34_;
	RedeyeCommand* _tmp35_;
	CommandManager* _tmp36_;
	CommandManager* _tmp37_;
#line 1956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->user_interaction_instance;
#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_instance_to_bounds_rect (&_tmp0_, &_tmp1_);
#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	bounds_rect_user = _tmp1_;
#line 1960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = bounds_rect_user;
#line 1960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_user_to_active_rect (_tmp2_, &_tmp3_, &_tmp4_);
#line 1960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	bounds_rect_active = _tmp4_;
#line 1962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = bounds_rect_active;
#line 1962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_active_to_unscaled_rect (_tmp5_, &_tmp6_, &_tmp7_);
#line 1962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	bounds_rect_unscaled = _tmp7_;
#line 1964 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1964 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = bounds_rect_unscaled;
#line 1964 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_unscaled_to_raw_rect (_tmp8_, &_tmp9_, &_tmp10_);
#line 1964 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	bounds_rect_raw = _tmp10_;
#line 1967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = bounds_rect_raw;
#line 1967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_instance_from_bounds_rect (&_tmp11_, &_tmp12_);
#line 1967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	instance_raw = _tmp12_;
#line 1972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = editing_tools_photo_canvas_get_photo (_tmp13_);
#line 1972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_;
#line 1972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_STRAIGHTEN | PHOTO_EXCEPTION_CROP, &_tmp16_);
#line 1972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _tmp16_;
#line 1972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp15_);
#line 1972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	dimensions = _tmp17_;
#line 1975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	theta = 0.0;
#line 1977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = editing_tools_photo_canvas_get_photo (_tmp18_);
#line 1977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = _tmp19_;
#line 1977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo_get_straighten (_tmp20_, &_tmp21_);
#line 1977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	theta = _tmp21_;
#line 1977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp20_);
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = instance_raw;
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _tmp22_.center;
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = dimensions;
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = _tmp24_.width;
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = dimensions;
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = _tmp26_.height;
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = theta;
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	derotate_point_arb (&_tmp23_, _tmp25_, _tmp27_, _tmp28_, &_tmp29_);
#line 1979 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	instance_raw.center = _tmp29_;
#line 1982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = editing_tools_photo_canvas_get_photo (_tmp30_);
#line 1982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = _tmp31_;
#line 1982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = instance_raw;
#line 1982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = redeye_command_new (_tmp32_, &_tmp33_, RESOURCES_RED_EYE_LABEL, RESOURCES_RED_EYE_TOOLTIP);
#line 1982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp35_ = _tmp34_;
#line 1982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp32_);
#line 1982 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command = _tmp35_;
#line 1984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp36_ = app_window_get_command_manager ();
#line 1984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp37_ = _tmp36_;
#line 1984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command_manager_execute (_tmp37_, G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command));
#line 1984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_command_manager_unref0 (_tmp37_);
#line 1956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (command);
#line 13668 "EditingTools.c"
}


static void
editing_tools_redeye_tool_on_photos_altered (EditingToolsRedeyeTool* self,
                                             GeeMap* map)
{
	EditingToolsPhotoCanvas* _tmp0_;
	Photo* _tmp1_;
	Photo* _tmp2_;
	gboolean _tmp3_;
	EditingToolsPhotoCanvas* _tmp15_;
	GError * _inner_error_ = NULL;
#line 1987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 1987 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (GEE_IS_MAP (map));
#line 1988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_photo_canvas_get_photo (_tmp0_);
#line 1988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_;
#line 1988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = !gee_map_has_key (map, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
#line 1988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp2_);
#line 1988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_) {
#line 1989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 13700 "EditingTools.c"
	}
	{
		GdkPixbuf* _tmp4_ = NULL;
		EditingToolsPhotoCanvas* _tmp5_;
		Photo* _tmp6_;
		Photo* _tmp7_;
		EditingToolsPhotoCanvas* _tmp8_;
		Scaling _tmp9_ = {0};
		GdkPixbuf* _tmp10_;
		GdkPixbuf* _tmp11_;
		GdkPixbuf* _tmp12_;
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = editing_tools_photo_canvas_get_photo (_tmp5_);
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = _tmp6_;
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_get_scaling (_tmp8_, &_tmp9_);
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp9_, &_inner_error_);
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = _tmp10_;
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp7_);
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = _tmp11_;
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 13732 "EditingTools.c"
			goto __catch26_g_error;
		}
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = _tmp4_;
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = NULL;
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (self->priv->current_pixbuf);
#line 1992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->current_pixbuf = _tmp12_;
#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp4_);
#line 13745 "EditingTools.c"
	}
	goto __finally26;
	__catch26_g_error:
	{
		GError* err = NULL;
		GError* _tmp13_;
		const gchar* _tmp14_;
#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		err = _inner_error_;
#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_inner_error_ = NULL;
#line 1994 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp13_ = err;
#line 1994 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp14_ = _tmp13_->message;
#line 1994 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_warning ("EditingTools.vala:1994: %s", _tmp14_);
#line 1995 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_emit (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_ABORTED_SIGNAL], 0);
#line 1997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_error_free0 (err);
#line 1997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 13769 "EditingTools.c"
	}
	__finally26:
#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.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 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_clear_error (&_inner_error_);
#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 13780 "EditingTools.c"
	}
#line 2000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp15_);
#line 13786 "EditingTools.c"
}


static void
editing_tools_redeye_tool_on_close (EditingToolsRedeyeTool* self)
{
	GdkPixbuf* _tmp0_;
	EditingToolsPhotoCanvas* _tmp1_;
	Photo* _tmp2_;
	Photo* _tmp3_;
	Dimensions _tmp4_ = {0};
#line 2003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 2004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->current_pixbuf;
#line 2004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
#line 2004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_;
#line 2004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp4_);
#line 2004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_APPLIED_SIGNAL], 0, NULL, _tmp0_, &_tmp4_, FALSE);
#line 2004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp3_);
#line 13814 "EditingTools.c"
}


static void
editing_tools_redeye_tool_on_canvas_resize (EditingToolsRedeyeTool* self)
{
	GdkRectangle scaled_pixbuf_position = {0};
	EditingToolsPhotoCanvas* _tmp0_;
	GdkRectangle _tmp1_ = {0};
	gint _tmp2_;
	GdkRectangle _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	GdkRectangle _tmp6_;
	gint _tmp7_;
	gdouble scale_factor = 0.0;
	GdkRectangle _tmp8_;
	gint _tmp9_;
	GdkRectangle _tmp10_;
	gint _tmp11_;
	EditingToolsRedeyeInstance _tmp12_;
	GdkPoint _tmp13_;
	gint _tmp14_;
	EditingToolsRedeyeInstance _tmp15_;
	GdkPoint _tmp16_;
	gint _tmp17_;
	gint _tmp18_;
	GdkRectangle _tmp19_;
	gint _tmp20_;
	gint _tmp21_;
	GdkRectangle _tmp22_;
	gint _tmp23_;
	GdkRectangle _tmp24_;
#line 2007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 2008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
#line 2008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scaled_pixbuf_position = _tmp1_;
#line 2011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->user_interaction_instance.center.x;
#line 2011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->old_scaled_pixbuf_position;
#line 2011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_.x;
#line 2011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_interaction_instance.center.x = _tmp2_ - _tmp4_;
#line 2012 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->user_interaction_instance.center.y;
#line 2012 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->old_scaled_pixbuf_position;
#line 2012 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_.y;
#line 2012 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_interaction_instance.center.y = _tmp5_ - _tmp7_;
#line 2014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = scaled_pixbuf_position;
#line 2014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_.width;
#line 2014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->priv->old_scaled_pixbuf_position;
#line 2014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_.width;
#line 2014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	scale_factor = ((gdouble) _tmp9_) / ((gdouble) _tmp11_);
#line 2017 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = self->priv->user_interaction_instance;
#line 2017 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_.center;
#line 2017 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_.x;
#line 2017 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_interaction_instance.center.x = (gint) ((((gdouble) _tmp14_) * scale_factor) + 0.5);
#line 2020 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->priv->user_interaction_instance;
#line 2020 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = _tmp15_.center;
#line 2020 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _tmp16_.y;
#line 2020 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_interaction_instance.center.y = (gint) ((((gdouble) _tmp17_) * scale_factor) + 0.5);
#line 2024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->priv->user_interaction_instance.center.x;
#line 2024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = scaled_pixbuf_position;
#line 2024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = _tmp19_.x;
#line 2024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_interaction_instance.center.x = _tmp18_ + _tmp20_;
#line 2025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = self->priv->user_interaction_instance.center.y;
#line 2025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = scaled_pixbuf_position;
#line 2025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _tmp22_.y;
#line 2025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_interaction_instance.center.y = _tmp21_ + _tmp23_;
#line 2027 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = scaled_pixbuf_position;
#line 2027 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->old_scaled_pixbuf_position = _tmp24_;
#line 2029 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->current_pixbuf);
#line 2029 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->current_pixbuf = NULL;
#line 13922 "EditingTools.c"
}


static void
_editing_tools_redeye_tool_on_photos_altered_data_collection_items_altered (DataCollection* _sender,
                                                                            GeeMap* items,
                                                                            gpointer self)
{
#line 2053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_on_photos_altered ((EditingToolsRedeyeTool*) self, items);
#line 13933 "EditingTools.c"
}


static void
editing_tools_redeye_tool_real_activate (EditingToolsEditingTool* base,
                                         EditingToolsPhotoCanvas* canvas)
{
	EditingToolsRedeyeTool * self;
	EditingToolsRedeyeInstance _tmp0_ = {0};
	cairo_t* _tmp1_;
	cairo_t* _tmp2_;
	Dimensions _tmp3_ = {0};
	GdkRectangle _tmp4_ = {0};
	GdkPixbuf* _tmp5_;
	GtkWindow* _tmp6_;
	GtkWindow* _tmp7_;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp8_;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp9_;
	GtkScale* _tmp10_;
	EditingToolsRedeyeInstance _tmp11_;
	gint _tmp12_;
	GdkDisplay* display = NULL;
	GdkWindow* _tmp13_;
	GdkWindow* _tmp14_;
	GdkDisplay* _tmp15_;
	GdkDisplay* _tmp16_;
	GdkDisplay* _tmp17_;
	GdkDisplay* _tmp18_;
	GdkCursor* _tmp19_;
	GdkDisplay* _tmp20_;
	GdkCursor* _tmp21_;
	DataCollection* owner = NULL;
	Photo* _tmp22_;
	Photo* _tmp23_;
	DataCollection* _tmp24_;
	DataCollection* _tmp25_;
	DataCollection* _tmp26_;
#line 2032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 2032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 2033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_new_interaction_instance (self, canvas, &_tmp0_);
#line 2033 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->user_interaction_instance = _tmp0_;
#line 2035 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_photo_canvas_get_default_ctx (canvas);
#line 2035 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_;
#line 2035 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_surface_dim (canvas, &_tmp3_);
#line 2035 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_prepare_ctx (self, _tmp2_, &_tmp3_);
#line 2035 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (_tmp2_);
#line 2037 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_bind_canvas_handlers (self, canvas);
#line 2039 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_get_scaled_pixbuf_position (canvas, &_tmp4_);
#line 2039 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->old_scaled_pixbuf_position = _tmp4_;
#line 2040 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = editing_tools_photo_canvas_get_scaled_pixbuf (canvas);
#line 2040 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->current_pixbuf);
#line 2040 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->current_pixbuf = _tmp5_;
#line 2042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = editing_tools_photo_canvas_get_container (canvas);
#line 2042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_;
#line 2042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = editing_tools_redeye_tool_redeye_tool_window_new (_tmp7_);
#line 2042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp8_);
#line 2042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->redeye_tool_window);
#line 2042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->redeye_tool_window = _tmp8_;
#line 2042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp7_);
#line 2043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->redeye_tool_window;
#line 2043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_->slider;
#line 2043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->user_interaction_instance;
#line 2043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_.radius;
#line 2043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_range_get_type (), GtkRange), (gdouble) _tmp12_);
#line 2045 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_bind_window_handlers (self);
#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = editing_tools_photo_canvas_get_drawing_window (canvas);
#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = _tmp13_;
#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = gdk_window_get_display (_tmp14_);
#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = _g_object_ref0 (_tmp15_);
#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _tmp16_;
#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp14_);
#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	display = _tmp17_;
#line 2048 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = display;
#line 2048 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = gdk_cursor_new_for_display (_tmp18_, GDK_LEFT_PTR);
#line 2048 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->cached_arrow_cursor);
#line 2048 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->cached_arrow_cursor = _tmp19_;
#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = display;
#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = gdk_cursor_new_for_display (_tmp20_, GDK_FLEUR);
#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->cached_grab_cursor);
#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->cached_grab_cursor = _tmp21_;
#line 2051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = editing_tools_photo_canvas_get_photo (canvas);
#line 2051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _tmp22_;
#line 2051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_DATA_OBJECT, DataObject));
#line 2051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = _tmp24_;
#line 2051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp23_);
#line 2051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	owner = _tmp25_;
#line 2052 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = owner;
#line 2052 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp26_ != NULL) {
#line 14073 "EditingTools.c"
		DataCollection* _tmp27_;
#line 2053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp27_ = owner;
#line 2053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_connect (_tmp27_, "items-altered", (GCallback) _editing_tools_redeye_tool_on_photos_altered_data_collection_items_altered, self);
#line 14079 "EditingTools.c"
	}
#line 2055 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_redeye_tool_parent_class)->activate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), canvas);
#line 2032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_data_collection_unref0 (owner);
#line 2032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (display);
#line 14087 "EditingTools.c"
}


static void
editing_tools_redeye_tool_real_deactivate (EditingToolsEditingTool* base)
{
	EditingToolsRedeyeTool * self;
	EditingToolsPhotoCanvas* _tmp0_;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp10_;
#line 2058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 2059 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2059 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ != NULL) {
#line 14103 "EditingTools.c"
		DataCollection* owner = NULL;
		EditingToolsPhotoCanvas* _tmp1_;
		Photo* _tmp2_;
		Photo* _tmp3_;
		DataCollection* _tmp4_;
		DataCollection* _tmp5_;
		DataCollection* _tmp6_;
		EditingToolsPhotoCanvas* _tmp9_;
#line 2060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
#line 2060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = _tmp2_;
#line 2060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
#line 2060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = _tmp4_;
#line 2060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp3_);
#line 2060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		owner = _tmp5_;
#line 2061 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = owner;
#line 2061 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp6_ != NULL) {
#line 14130 "EditingTools.c"
			DataCollection* _tmp7_;
			guint _tmp8_;
#line 2062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp7_ = owner;
#line 2062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp8_, NULL, FALSE);
#line 2062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_photos_altered_data_collection_items_altered, self);
#line 14139 "EditingTools.c"
		}
#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_redeye_tool_unbind_canvas_handlers (self, _tmp9_);
#line 2059 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_data_collection_unref0 (owner);
#line 14147 "EditingTools.c"
	}
#line 2067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->priv->redeye_tool_window;
#line 2067 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp10_ != NULL) {
#line 14153 "EditingTools.c"
		EditingToolsRedeyeToolRedeyeToolWindow* _tmp11_;
		EditingToolsRedeyeToolRedeyeToolWindow* _tmp12_;
#line 2068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_redeye_tool_unbind_window_handlers (self);
#line 2069 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = self->priv->redeye_tool_window;
#line 2069 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
#line 2070 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = self->priv->redeye_tool_window;
#line 2070 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
#line 2071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (self->priv->redeye_tool_window);
#line 2071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->redeye_tool_window = NULL;
#line 14170 "EditingTools.c"
	}
#line 2074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_redeye_tool_parent_class)->deactivate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 14174 "EditingTools.c"
}


static void
_editing_tools_redeye_tool_prepare_ctx_editing_tools_photo_canvas_new_surface (EditingToolsPhotoCanvas* _sender,
                                                                               cairo_t* ctx,
                                                                               Dimensions* dim,
                                                                               gpointer self)
{
#line 2078 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_prepare_ctx ((EditingToolsRedeyeTool*) self, ctx, dim);
#line 14186 "EditingTools.c"
}


static void
_editing_tools_redeye_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender,
                                                                                              Dimensions* old_dim,
                                                                                              GdkPixbuf* scaled,
                                                                                              GdkRectangle* scaled_position,
                                                                                              gpointer self)
{
#line 2079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_on_canvas_resize ((EditingToolsRedeyeTool*) self);
#line 14199 "EditingTools.c"
}


static void
editing_tools_redeye_tool_bind_canvas_handlers (EditingToolsRedeyeTool* self,
                                                EditingToolsPhotoCanvas* canvas)
{
#line 2077 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 2077 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 2078 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (canvas, "new-surface", (GCallback) _editing_tools_redeye_tool_prepare_ctx_editing_tools_photo_canvas_new_surface, self);
#line 2079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (canvas, "resized-scaled-pixbuf", (GCallback) _editing_tools_redeye_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
#line 14215 "EditingTools.c"
}


static void
editing_tools_redeye_tool_unbind_canvas_handlers (EditingToolsRedeyeTool* self,
                                                  EditingToolsPhotoCanvas* canvas)
{
	guint _tmp0_;
	guint _tmp1_;
#line 2082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 2082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 2083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("new-surface", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp0_, NULL, FALSE);
#line 2083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (canvas, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _editing_tools_redeye_tool_prepare_ctx_editing_tools_photo_canvas_new_surface, self);
#line 2084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp1_, NULL, FALSE);
#line 2084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (canvas, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
#line 14237 "EditingTools.c"
}


static void
_editing_tools_redeye_tool_on_apply_gtk_button_clicked (GtkButton* _sender,
                                                        gpointer self)
{
#line 2088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_on_apply ((EditingToolsRedeyeTool*) self);
#line 14247 "EditingTools.c"
}


static void
_editing_tools_redeye_tool_on_close_gtk_button_clicked (GtkButton* _sender,
                                                        gpointer self)
{
#line 2089 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_on_close ((EditingToolsRedeyeTool*) self);
#line 14257 "EditingTools.c"
}


static gboolean
_editing_tools_redeye_tool_on_size_slider_adjust_gtk_range_change_value (GtkRange* _sender,
                                                                         GtkScrollType scroll,
                                                                         gdouble new_value,
                                                                         gpointer self)
{
	gboolean result;
	result = editing_tools_redeye_tool_on_size_slider_adjust ((EditingToolsRedeyeTool*) self, scroll);
#line 2090 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 14271 "EditingTools.c"
}


static void
editing_tools_redeye_tool_bind_window_handlers (EditingToolsRedeyeTool* self)
{
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp0_;
	GtkButton* _tmp1_;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp2_;
	GtkButton* _tmp3_;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp4_;
	GtkScale* _tmp5_;
#line 2087 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 2088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->redeye_tool_window;
#line 2088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->apply_button;
#line 2088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp1_, "clicked", (GCallback) _editing_tools_redeye_tool_on_apply_gtk_button_clicked, self);
#line 2089 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->redeye_tool_window;
#line 2089 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_->close_button;
#line 2089 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp3_, "clicked", (GCallback) _editing_tools_redeye_tool_on_close_gtk_button_clicked, self);
#line 2090 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->redeye_tool_window;
#line 2090 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_->slider;
#line 2090 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_range_get_type (), GtkRange), "change-value", (GCallback) _editing_tools_redeye_tool_on_size_slider_adjust_gtk_range_change_value, self);
#line 14304 "EditingTools.c"
}


static void
editing_tools_redeye_tool_unbind_window_handlers (EditingToolsRedeyeTool* self)
{
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp0_;
	GtkButton* _tmp1_;
	guint _tmp2_;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp3_;
	GtkButton* _tmp4_;
	guint _tmp5_;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp6_;
	GtkScale* _tmp7_;
	guint _tmp8_;
#line 2093 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
#line 2094 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->redeye_tool_window;
#line 2094 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->apply_button;
#line 2094 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp2_, NULL, FALSE);
#line 2094 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_apply_gtk_button_clicked, self);
#line 2095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->redeye_tool_window;
#line 2095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_->close_button;
#line 2095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp5_, NULL, FALSE);
#line 2095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_close_gtk_button_clicked, self);
#line 2096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->redeye_tool_window;
#line 2096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_->slider;
#line 2096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("change-value", gtk_range_get_type (), &_tmp8_, NULL, FALSE);
#line 2096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_size_slider_adjust_gtk_range_change_value, self);
#line 14346 "EditingTools.c"
}


static EditingToolsEditingToolWindow*
editing_tools_redeye_tool_real_get_tool_window (EditingToolsEditingTool* base)
{
	EditingToolsRedeyeTool * self;
	EditingToolsEditingToolWindow* result = NULL;
	EditingToolsRedeyeToolRedeyeToolWindow* _tmp0_;
	EditingToolsEditingToolWindow* _tmp1_;
#line 2099 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 2100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->redeye_tool_window;
#line 2100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow));
#line 2100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 2100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 14367 "EditingTools.c"
}


static void
editing_tools_redeye_tool_real_paint (EditingToolsEditingTool* base,
                                      cairo_t* ctx)
{
	EditingToolsRedeyeTool * self;
	GdkPixbuf* _tmp0_ = NULL;
	GdkPixbuf* _tmp1_;
	EditingToolsPhotoCanvas* _tmp6_;
	EditingToolsRedeyeInstance active_inst = {0};
	EditingToolsRedeyeInstance _tmp7_;
	EditingToolsPhotoCanvas* _tmp8_;
	EditingToolsRedeyeInstance _tmp9_;
	GdkPoint _tmp10_;
	GdkPoint _tmp11_ = {0};
	EditingToolsRedeyeInstance _tmp12_;
#line 2103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 2103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->current_pixbuf;
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_ != NULL) {
#line 14394 "EditingTools.c"
		GdkPixbuf* _tmp2_;
		GdkPixbuf* _tmp3_;
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->current_pixbuf;
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = _g_object_ref0 (_tmp2_);
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp0_);
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = _tmp3_;
#line 14405 "EditingTools.c"
	} else {
		EditingToolsPhotoCanvas* _tmp4_;
		GdkPixbuf* _tmp5_;
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp4_);
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp0_);
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = _tmp5_;
#line 14417 "EditingTools.c"
	}
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_paint_pixbuf (_tmp6_, _tmp0_);
#line 2108 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->user_interaction_instance;
#line 2108 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	active_inst = _tmp7_;
#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->user_interaction_instance;
#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_.center;
#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_user_to_active_point (_tmp8_, &_tmp10_, &_tmp11_);
#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	active_inst.center = _tmp11_;
#line 2111 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = active_inst;
#line 2111 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_draw_redeye_instance (self, &_tmp12_);
#line 2103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp0_);
#line 14443 "EditingTools.c"
}


static void
editing_tools_redeye_tool_real_on_left_click (EditingToolsEditingTool* base,
                                              gint x,
                                              gint y)
{
	EditingToolsRedeyeTool * self;
	GdkRectangle bounds_rect = {0};
	EditingToolsRedeyeInstance _tmp0_;
	GdkRectangle _tmp1_ = {0};
	GdkRectangle _tmp2_;
#line 2114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 2115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->user_interaction_instance;
#line 2115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_instance_to_bounds_rect (&_tmp0_, &_tmp1_);
#line 2115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	bounds_rect = _tmp1_;
#line 2118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = bounds_rect;
#line 2118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (coord_in_rectangle (x, y, &_tmp2_)) {
#line 14469 "EditingTools.c"
		EditingToolsRedeyeInstance _tmp3_;
		GdkPoint _tmp4_;
#line 2119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->is_reticle_move_in_progress = TRUE;
#line 2120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->reticle_move_mouse_start_point.x = x;
#line 2121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->reticle_move_mouse_start_point.y = y;
#line 2122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = self->priv->user_interaction_instance;
#line 2122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = _tmp3_.center;
#line 2122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->reticle_move_anchor = _tmp4_;
#line 14484 "EditingTools.c"
	}
}


static void
editing_tools_redeye_tool_real_on_left_released (EditingToolsEditingTool* base,
                                                 gint x,
                                                 gint y)
{
	EditingToolsRedeyeTool * self;
#line 2126 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 2127 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->is_reticle_move_in_progress = FALSE;
#line 14499 "EditingTools.c"
}


static void
editing_tools_redeye_tool_real_on_motion (EditingToolsEditingTool* base,
                                          gint x,
                                          gint y,
                                          GdkModifierType mask)
{
	EditingToolsRedeyeTool * self;
	gboolean _tmp0_;
#line 2130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 2131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->is_reticle_move_in_progress;
#line 2131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_) {
#line 14517 "EditingTools.c"
		GdkRectangle active_region_rect = {0};
		EditingToolsPhotoCanvas* _tmp1_;
		GdkRectangle _tmp2_ = {0};
		gint x_clamp_low = 0;
		GdkRectangle _tmp3_;
		gint _tmp4_;
		EditingToolsRedeyeInstance _tmp5_;
		gint _tmp6_;
		gint y_clamp_low = 0;
		GdkRectangle _tmp7_;
		gint _tmp8_;
		EditingToolsRedeyeInstance _tmp9_;
		gint _tmp10_;
		gint x_clamp_high = 0;
		GdkRectangle _tmp11_;
		gint _tmp12_;
		GdkRectangle _tmp13_;
		gint _tmp14_;
		EditingToolsRedeyeInstance _tmp15_;
		gint _tmp16_;
		gint y_clamp_high = 0;
		GdkRectangle _tmp17_;
		gint _tmp18_;
		GdkRectangle _tmp19_;
		gint _tmp20_;
		EditingToolsRedeyeInstance _tmp21_;
		gint _tmp22_;
		gint delta_x = 0;
		GdkPoint _tmp23_;
		gint _tmp24_;
		gint delta_y = 0;
		GdkPoint _tmp25_;
		gint _tmp26_;
		GdkPoint _tmp27_;
		gint _tmp28_;
		gint _tmp29_;
		GdkPoint _tmp30_;
		gint _tmp31_;
		gint _tmp32_;
		GdkPoint _tmp33_;
		gint _tmp34_;
		gint _tmp35_;
		gint _tmp36_;
		gint _tmp37_;
		GdkPoint _tmp38_;
		gint _tmp39_;
		gint _tmp40_;
		gint _tmp41_;
		gint _tmp42_;
		EditingToolsPhotoCanvas* _tmp43_;
#line 2133 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2133 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp1_, &_tmp2_);
#line 2133 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		active_region_rect = _tmp2_;
#line 2136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = active_region_rect;
#line 2136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = _tmp3_.x;
#line 2136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = self->priv->user_interaction_instance;
#line 2136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = _tmp5_.radius;
#line 2136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		x_clamp_low = (_tmp4_ + _tmp6_) + 1;
#line 2138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = active_region_rect;
#line 2138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = _tmp7_.y;
#line 2138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = self->priv->user_interaction_instance;
#line 2138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp10_ = _tmp9_.radius;
#line 2138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		y_clamp_low = (_tmp8_ + _tmp10_) + 1;
#line 2140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = active_region_rect;
#line 2140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = _tmp11_.x;
#line 2140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp13_ = active_region_rect;
#line 2140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp14_ = _tmp13_.width;
#line 2140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp15_ = self->priv->user_interaction_instance;
#line 2140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp16_ = _tmp15_.radius;
#line 2140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		x_clamp_high = ((_tmp12_ + _tmp14_) - _tmp16_) - 1;
#line 2143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp17_ = active_region_rect;
#line 2143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp18_ = _tmp17_.y;
#line 2143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp19_ = active_region_rect;
#line 2143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp20_ = _tmp19_.height;
#line 2143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp21_ = self->priv->user_interaction_instance;
#line 2143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp22_ = _tmp21_.radius;
#line 2143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		y_clamp_high = ((_tmp18_ + _tmp20_) - _tmp22_) - 1;
#line 2147 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp23_ = self->priv->reticle_move_mouse_start_point;
#line 2147 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp24_ = _tmp23_.x;
#line 2147 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		delta_x = x - _tmp24_;
#line 2148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp25_ = self->priv->reticle_move_mouse_start_point;
#line 2148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp26_ = _tmp25_.y;
#line 2148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		delta_y = y - _tmp26_;
#line 2150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp27_ = self->priv->reticle_move_anchor;
#line 2150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp28_ = _tmp27_.x;
#line 2150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp29_ = delta_x;
#line 2150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->user_interaction_instance.center.x = _tmp28_ + _tmp29_;
#line 2152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp30_ = self->priv->reticle_move_anchor;
#line 2152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp31_ = _tmp30_.y;
#line 2152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp32_ = delta_y;
#line 2152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->user_interaction_instance.center.y = _tmp31_ + _tmp32_;
#line 2155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp33_ = self->priv->reticle_move_anchor;
#line 2155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp34_ = _tmp33_.x;
#line 2155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp35_ = delta_x;
#line 2155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp36_ = x_clamp_low;
#line 2155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp37_ = x_clamp_high;
#line 2155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->user_interaction_instance.center.x = CLAMP (_tmp34_ + _tmp35_, _tmp36_, _tmp37_);
#line 2158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp38_ = self->priv->reticle_move_anchor;
#line 2158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp39_ = _tmp38_.y;
#line 2158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp40_ = delta_y;
#line 2158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp41_ = y_clamp_low;
#line 2158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp42_ = y_clamp_high;
#line 2158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->user_interaction_instance.center.y = CLAMP (_tmp39_ + _tmp40_, _tmp41_, _tmp42_);
#line 2162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp43_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_photo_canvas_repaint (_tmp43_);
#line 14678 "EditingTools.c"
	} else {
		GdkRectangle bounds = {0};
		EditingToolsRedeyeInstance _tmp44_;
		GdkRectangle _tmp45_ = {0};
		GdkRectangle _tmp46_;
#line 2164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp44_ = self->priv->user_interaction_instance;
#line 2164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_redeye_instance_to_bounds_rect (&_tmp44_, &_tmp45_);
#line 2164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		bounds = _tmp45_;
#line 2167 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp46_ = bounds;
#line 2167 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (coord_in_rectangle (x, y, &_tmp46_)) {
#line 14694 "EditingTools.c"
			EditingToolsPhotoCanvas* _tmp47_;
			GdkWindow* _tmp48_;
			GdkWindow* _tmp49_;
			GdkCursor* _tmp50_;
#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp47_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp48_ = editing_tools_photo_canvas_get_drawing_window (_tmp47_);
#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp49_ = _tmp48_;
#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp50_ = self->priv->cached_grab_cursor;
#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gdk_window_set_cursor (_tmp49_, _tmp50_);
#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_object_unref0 (_tmp49_);
#line 14711 "EditingTools.c"
		} else {
			EditingToolsPhotoCanvas* _tmp51_;
			GdkWindow* _tmp52_;
			GdkWindow* _tmp53_;
			GdkCursor* _tmp54_;
#line 2170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp51_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp52_ = editing_tools_photo_canvas_get_drawing_window (_tmp51_);
#line 2170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp53_ = _tmp52_;
#line 2170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp54_ = self->priv->cached_arrow_cursor;
#line 2170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gdk_window_set_cursor (_tmp53_, _tmp54_);
#line 2170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_g_object_unref0 (_tmp53_);
#line 14729 "EditingTools.c"
		}
	}
}


static gboolean
editing_tools_redeye_tool_real_on_keypress (EditingToolsEditingTool* base,
                                            GdkEventKey* event)
{
	EditingToolsRedeyeTool * self;
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	guint _tmp2_;
	const gchar* _tmp3_;
#line 2175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 2175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 2176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = event->keyval;
#line 2176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = gdk_keyval_name (_tmp2_);
#line 2176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (g_strcmp0 (_tmp3_, "KP_Enter") == 0) {
#line 2176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = TRUE;
#line 14757 "EditingTools.c"
	} else {
		guint _tmp4_;
		const gchar* _tmp5_;
#line 2177 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = event->keyval;
#line 2177 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = gdk_keyval_name (_tmp4_);
#line 2177 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = g_strcmp0 (_tmp5_, "Enter") == 0;
#line 14767 "EditingTools.c"
	}
#line 2176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_) {
#line 2176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = TRUE;
#line 14773 "EditingTools.c"
	} else {
		guint _tmp6_;
		const gchar* _tmp7_;
#line 2178 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = event->keyval;
#line 2178 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = gdk_keyval_name (_tmp6_);
#line 2178 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = g_strcmp0 (_tmp7_, "Return") == 0;
#line 14783 "EditingTools.c"
	}
#line 2176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_) {
#line 2179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_redeye_tool_on_close (self);
#line 2180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = TRUE;
#line 2180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 14793 "EditingTools.c"
	}
#line 2183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_redeye_tool_parent_class)->on_keypress (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), event);
#line 2183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 14799 "EditingTools.c"
}


static EditingToolsRedeyeToolRedeyeToolWindow*
editing_tools_redeye_tool_redeye_tool_window_construct (GType object_type,
                                                        GtkWindow* container)
{
	EditingToolsRedeyeToolRedeyeToolWindow * self = NULL;
	GtkScale* _tmp0_;
	GtkScale* _tmp1_;
	GtkButton* _tmp2_;
	GtkButton* _tmp3_;
	GtkButton* _tmp4_;
	GtkButton* _tmp5_;
	GtkBox* layout = NULL;
	GtkBox* _tmp6_;
	GtkLabel* _tmp7_;
	GtkScale* _tmp8_;
	GtkButton* _tmp9_;
	GtkButton* _tmp10_;
#line 1867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsRedeyeToolRedeyeToolWindow*) editing_tools_editing_tool_window_construct (object_type, container);
#line 1870 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->slider;
#line 1870 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), 80, -1);
#line 1871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->slider;
#line 1871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_scale_set_draw_value (_tmp1_, FALSE);
#line 1873 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->close_button;
#line 1873 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), _ ("Close the red-eye tool"));
#line 1874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->close_button;
#line 1874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_button_set_image_position (_tmp3_, GTK_POS_LEFT);
#line 1876 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->apply_button;
#line 1876 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), _ ("Remove any red-eye effects in the selected region"));
#line 1877 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->apply_button;
#line 1877 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_button_set_image_position (_tmp5_, GTK_POS_LEFT);
#line 1879 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_CONTROL_SPACING);
#line 1879 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp6_);
#line 1879 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	layout = _tmp6_;
#line 1880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->slider_label;
#line 1880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
#line 1881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->slider;
#line 1881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
#line 1882 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->close_button;
#line 1882 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
#line 1883 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->apply_button;
#line 1883 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
#line 1885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_widget_get_type (), GtkWidget));
#line 1867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (layout);
#line 1867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 14876 "EditingTools.c"
}


static EditingToolsRedeyeToolRedeyeToolWindow*
editing_tools_redeye_tool_redeye_tool_window_new (GtkWindow* container)
{
#line 1867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_redeye_tool_redeye_tool_window_construct (EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, container);
#line 14885 "EditingTools.c"
}


static void
editing_tools_redeye_tool_redeye_tool_window_class_init (EditingToolsRedeyeToolRedeyeToolWindowClass * klass)
{
#line 1855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_redeye_tool_window_parent_class = g_type_class_peek_parent (klass);
#line 1855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsRedeyeToolRedeyeToolWindowPrivate));
#line 1855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (klass)->finalize = editing_tools_redeye_tool_redeye_tool_window_finalize;
#line 14898 "EditingTools.c"
}


static void
editing_tools_redeye_tool_redeye_tool_window_instance_init (EditingToolsRedeyeToolRedeyeToolWindow * self)
{
	GtkLabel* _tmp0_;
	GtkButton* _tmp1_;
	GtkButton* _tmp2_;
	GtkScale* _tmp3_;
#line 1855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_GET_PRIVATE (self);
#line 1858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = (GtkLabel*) gtk_label_new_with_mnemonic (_ ("Size:"));
#line 1858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp0_);
#line 1858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->slider_label = _tmp0_;
#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_APPLY_LABEL);
#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp1_);
#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->apply_button = _tmp1_;
#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL);
#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp2_);
#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->close_button = _tmp2_;
#line 1864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) EDITING_TOOLS_REDEYE_INSTANCE_MIN_RADIUS, (gdouble) EDITING_TOOLS_REDEYE_INSTANCE_MAX_RADIUS, 1.0);
#line 1864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp3_);
#line 1864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->slider = _tmp3_;
#line 14935 "EditingTools.c"
}


static void
editing_tools_redeye_tool_redeye_tool_window_finalize (GObject * obj)
{
	EditingToolsRedeyeToolRedeyeToolWindow * self;
#line 1855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindow);
#line 1858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->slider_label);
#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->apply_button);
#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->close_button);
#line 1864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->slider);
#line 1855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (editing_tools_redeye_tool_redeye_tool_window_parent_class)->finalize (obj);
#line 14955 "EditingTools.c"
}


static GType
editing_tools_redeye_tool_redeye_tool_window_get_type (void)
{
	static volatile gsize editing_tools_redeye_tool_redeye_tool_window_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_redeye_tool_redeye_tool_window_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsRedeyeToolRedeyeToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_redeye_tool_redeye_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsRedeyeToolRedeyeToolWindow), 0, (GInstanceInitFunc) editing_tools_redeye_tool_redeye_tool_window_instance_init, NULL };
		GType editing_tools_redeye_tool_redeye_tool_window_type_id;
		editing_tools_redeye_tool_redeye_tool_window_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, "EditingToolsRedeyeToolRedeyeToolWindow", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_redeye_tool_redeye_tool_window_type_id__volatile, editing_tools_redeye_tool_redeye_tool_window_type_id);
	}
	return editing_tools_redeye_tool_redeye_tool_window_type_id__volatile;
}


static void
editing_tools_redeye_tool_class_init (EditingToolsRedeyeToolClass * klass)
{
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_redeye_tool_parent_class = g_type_class_peek_parent (klass);
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_redeye_tool_finalize;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsRedeyeToolPrivate));
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->activate = (void (*) (EditingToolsEditingTool *, EditingToolsPhotoCanvas*)) editing_tools_redeye_tool_real_activate;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->deactivate = (void (*) (EditingToolsEditingTool *)) editing_tools_redeye_tool_real_deactivate;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->get_tool_window = (EditingToolsEditingToolWindow* (*) (EditingToolsEditingTool *)) editing_tools_redeye_tool_real_get_tool_window;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->paint = (void (*) (EditingToolsEditingTool *, cairo_t*)) editing_tools_redeye_tool_real_paint;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_left_click = (void (*) (EditingToolsEditingTool *, gint, gint)) editing_tools_redeye_tool_real_on_left_click;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_left_released = (void (*) (EditingToolsEditingTool *, gint, gint)) editing_tools_redeye_tool_real_on_left_released;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_motion = (void (*) (EditingToolsEditingTool *, gint, gint, GdkModifierType)) editing_tools_redeye_tool_real_on_motion;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_keypress = (gboolean (*) (EditingToolsEditingTool *, GdkEventKey*)) editing_tools_redeye_tool_real_on_keypress;
#line 14998 "EditingTools.c"
}


static void
editing_tools_redeye_tool_instance_init (EditingToolsRedeyeTool * self)
{
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_REDEYE_TOOL_GET_PRIVATE (self);
#line 1889 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->thin_white_ctx = NULL;
#line 1890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->wider_gray_ctx = NULL;
#line 1891 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->redeye_tool_window = NULL;
#line 1893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->is_reticle_move_in_progress = FALSE;
#line 1899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->current_pixbuf = NULL;
#line 15017 "EditingTools.c"
}


static void
editing_tools_redeye_tool_finalize (EditingToolsEditingTool * obj)
{
	EditingToolsRedeyeTool * self;
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
#line 1889 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->thin_white_ctx);
#line 1890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_cairo_destroy0 (self->priv->wider_gray_ctx);
#line 1891 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->redeye_tool_window);
#line 1896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->cached_arrow_cursor);
#line 1897 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->cached_grab_cursor);
#line 1899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->current_pixbuf);
#line 1854 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_redeye_tool_parent_class)->finalize (obj);
#line 15041 "EditingTools.c"
}


GType
editing_tools_redeye_tool_get_type (void)
{
	static volatile gsize editing_tools_redeye_tool_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_redeye_tool_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsRedeyeToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_redeye_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsRedeyeTool), 0, (GInstanceInitFunc) editing_tools_redeye_tool_instance_init, NULL };
		GType editing_tools_redeye_tool_type_id;
		editing_tools_redeye_tool_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL, "EditingToolsRedeyeTool", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_redeye_tool_type_id__volatile, editing_tools_redeye_tool_type_id);
	}
	return editing_tools_redeye_tool_type_id__volatile;
}


static EditingToolsAdjustTool*
editing_tools_adjust_tool_construct (GType object_type)
{
	EditingToolsAdjustTool* self = NULL;
#line 2501 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsAdjustTool*) editing_tools_editing_tool_construct (object_type, "AdjustTool");
#line 2500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 15067 "EditingTools.c"
}


static EditingToolsAdjustTool*
editing_tools_adjust_tool_new (void)
{
#line 2500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_adjust_tool_construct (EDITING_TOOLS_TYPE_ADJUST_TOOL);
#line 15076 "EditingTools.c"
}


EditingToolsAdjustTool*
editing_tools_adjust_tool_factory (void)
{
	EditingToolsAdjustTool* result = NULL;
	EditingToolsAdjustTool* _tmp0_;
#line 2505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_adjust_tool_new ();
#line 2505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp0_;
#line 2505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 15091 "EditingTools.c"
}


gboolean
editing_tools_adjust_tool_is_available (Photo* photo,
                                        Scaling* scaling)
{
	gboolean result = FALSE;
#line 2508 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), FALSE);
#line 2508 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (scaling != NULL, FALSE);
#line 2509 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = TRUE;
#line 2509 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 15108 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_photos_altered_data_collection_items_altered (DataCollection* _sender,
                                                                            GeeMap* items,
                                                                            gpointer self)
{
#line 2598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_photos_altered ((EditingToolsAdjustTool*) self, items);
#line 15119 "EditingTools.c"
}


static void
editing_tools_adjust_tool_real_activate (EditingToolsEditingTool* base,
                                         EditingToolsPhotoCanvas* canvas)
{
	EditingToolsAdjustTool * self;
	GtkWindow* _tmp0_;
	GtkWindow* _tmp1_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp2_;
	Photo* photo = NULL;
	Photo* _tmp3_;
	Photo* _tmp4_;
	PixelTransformationBundle* _tmp5_;
	PixelTransformationBundle* _tmp6_;
	PixelTransformer* _tmp7_;
	PixelTransformer* _tmp8_;
	ExpansionTransformation* expansion_trans = NULL;
	PixelTransformationBundle* _tmp9_;
	PixelTransformation* _tmp10_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp11_;
	RGBHistogramManipulator* _tmp12_;
	ExpansionTransformation* _tmp13_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp14_;
	RGBHistogramManipulator* _tmp15_;
	ExpansionTransformation* _tmp16_;
	ShadowDetailTransformation* shadows_trans = NULL;
	PixelTransformationBundle* _tmp17_;
	PixelTransformation* _tmp18_;
	PixelTransformer* _tmp19_;
	ShadowDetailTransformation* _tmp20_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp21_;
	GtkScale* _tmp22_;
	ShadowDetailTransformation* _tmp23_;
	HighlightDetailTransformation* highlights_trans = NULL;
	PixelTransformationBundle* _tmp24_;
	PixelTransformation* _tmp25_;
	PixelTransformer* _tmp26_;
	HighlightDetailTransformation* _tmp27_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp28_;
	GtkScale* _tmp29_;
	HighlightDetailTransformation* _tmp30_;
	TemperatureTransformation* temp_trans = NULL;
	PixelTransformationBundle* _tmp31_;
	PixelTransformation* _tmp32_;
	PixelTransformer* _tmp33_;
	TemperatureTransformation* _tmp34_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp35_;
	GtkScale* _tmp36_;
	TemperatureTransformation* _tmp37_;
	TintTransformation* tint_trans = NULL;
	PixelTransformationBundle* _tmp38_;
	PixelTransformation* _tmp39_;
	PixelTransformer* _tmp40_;
	TintTransformation* _tmp41_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp42_;
	GtkScale* _tmp43_;
	TintTransformation* _tmp44_;
	SaturationTransformation* sat_trans = NULL;
	PixelTransformationBundle* _tmp45_;
	PixelTransformation* _tmp46_;
	PixelTransformer* _tmp47_;
	SaturationTransformation* _tmp48_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp49_;
	GtkScale* _tmp50_;
	SaturationTransformation* _tmp51_;
	ExposureTransformation* exposure_trans = NULL;
	PixelTransformationBundle* _tmp52_;
	PixelTransformation* _tmp53_;
	PixelTransformer* _tmp54_;
	ExposureTransformation* _tmp55_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp56_;
	GtkScale* _tmp57_;
	ExposureTransformation* _tmp58_;
	ContrastTransformation* contrast_trans = NULL;
	PixelTransformationBundle* _tmp59_;
	PixelTransformation* _tmp60_;
	PixelTransformer* _tmp61_;
	ContrastTransformation* _tmp62_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp63_;
	GtkScale* _tmp64_;
	ContrastTransformation* _tmp65_;
	GdkPixbuf* _tmp66_;
	GdkPixbuf* _tmp67_;
	GdkPixbuf* _tmp68_;
	GdkPixbuf* _tmp69_;
	GdkPixbuf* _tmp70_;
	gboolean _tmp71_ = FALSE;
	GdkPixbuf* _tmp72_;
	gint _tmp73_;
	gint _tmp74_;
	gboolean _tmp78_ = FALSE;
	gboolean _tmp79_ = FALSE;
	GdkPixbuf* _tmp80_;
	gint _tmp81_;
	gint _tmp82_;
	GdkPixbuf* _tmp83_;
	gint _tmp84_;
	gint _tmp85_;
	GdkPixbuf* _tmp102_;
	GdkPixbuf* _tmp103_;
	DataCollection* owner = NULL;
	Photo* _tmp104_;
	Photo* _tmp105_;
	DataCollection* _tmp106_;
	DataCollection* _tmp107_;
	DataCollection* _tmp108_;
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_photo_canvas_get_container (canvas);
#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = editing_tools_adjust_tool_adjust_tool_window_new (_tmp1_);
#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp2_);
#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->adjust_tool_window);
#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->adjust_tool_window = _tmp2_;
#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp1_);
#line 2515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = editing_tools_photo_canvas_get_photo (canvas);
#line 2515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	photo = _tmp3_;
#line 2516 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = photo;
#line 2516 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = photo_get_color_adjustments (_tmp4_);
#line 2516 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->transformations);
#line 2516 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->transformations = _tmp5_;
#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->transformations;
#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = pixel_transformation_bundle_generate_transformer (_tmp6_);
#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformer_unref0 (self->priv->transformer);
#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->transformer = _tmp7_;
#line 2520 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = pixel_transformer_new ();
#line 2520 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformer_unref0 (self->priv->histogram_transformer);
#line 2520 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->histogram_transformer = _tmp8_;
#line 2523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->transformations;
#line 2523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = pixel_transformation_bundle_get_transformation (_tmp9_, PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION);
#line 2523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	expansion_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation);
#line 2525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->adjust_tool_window;
#line 2525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = _tmp11_->histogram_manipulator;
#line 2525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = expansion_trans;
#line 2525 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	rgb_histogram_manipulator_set_left_nub_position (_tmp12_, expansion_transformation_get_black_point (_tmp13_));
#line 2527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->adjust_tool_window;
#line 2527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_->histogram_manipulator;
#line 2527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = expansion_trans;
#line 2527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	rgb_histogram_manipulator_set_right_nub_position (_tmp15_, expansion_transformation_get_white_point (_tmp16_));
#line 2531 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = self->priv->transformations;
#line 2531 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = pixel_transformation_bundle_get_transformation (_tmp17_, PIXEL_TRANSFORMATION_TYPE_SHADOWS);
#line 2531 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	shadows_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation);
#line 2533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = self->priv->histogram_transformer;
#line 2533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = shadows_trans;
#line 2533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformer_attach_transformation (_tmp19_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
#line 2534 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = self->priv->adjust_tool_window;
#line 2534 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = _tmp21_->shadows_slider;
#line 2534 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = shadows_trans;
#line 2534 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_range_get_type (), GtkRange), (gdouble) shadow_detail_transformation_get_parameter (_tmp23_));
#line 2537 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = self->priv->transformations;
#line 2537 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = pixel_transformation_bundle_get_transformation (_tmp24_, PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS);
#line 2537 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	highlights_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation);
#line 2539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = self->priv->histogram_transformer;
#line 2539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = highlights_trans;
#line 2539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformer_attach_transformation (_tmp26_, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
#line 2540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = self->priv->adjust_tool_window;
#line 2540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = _tmp28_->highlights_slider;
#line 2540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = highlights_trans;
#line 2540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_range_get_type (), GtkRange), (gdouble) highlight_detail_transformation_get_parameter (_tmp30_));
#line 2543 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = self->priv->transformations;
#line 2543 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = pixel_transformation_bundle_get_transformation (_tmp31_, PIXEL_TRANSFORMATION_TYPE_TEMPERATURE);
#line 2543 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	temp_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformation);
#line 2545 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = self->priv->histogram_transformer;
#line 2545 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = temp_trans;
#line 2545 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformer_attach_transformation (_tmp33_, G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
#line 2546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp35_ = self->priv->adjust_tool_window;
#line 2546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp36_ = _tmp35_->temperature_slider;
#line 2546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp37_ = temp_trans;
#line 2546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_range_get_type (), GtkRange), (gdouble) temperature_transformation_get_parameter (_tmp37_));
#line 2548 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp38_ = self->priv->transformations;
#line 2548 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp39_ = pixel_transformation_bundle_get_transformation (_tmp38_, PIXEL_TRANSFORMATION_TYPE_TINT);
#line 2548 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	tint_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_TINT_TRANSFORMATION, TintTransformation);
#line 2550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp40_ = self->priv->histogram_transformer;
#line 2550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp41_ = tint_trans;
#line 2550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformer_attach_transformation (_tmp40_, G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
#line 2551 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp42_ = self->priv->adjust_tool_window;
#line 2551 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp43_ = _tmp42_->tint_slider;
#line 2551 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp44_ = tint_trans;
#line 2551 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_range_get_type (), GtkRange), (gdouble) tint_transformation_get_parameter (_tmp44_));
#line 2554 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp45_ = self->priv->transformations;
#line 2554 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp46_ = pixel_transformation_bundle_get_transformation (_tmp45_, PIXEL_TRANSFORMATION_TYPE_SATURATION);
#line 2554 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	sat_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_SATURATION_TRANSFORMATION, SaturationTransformation);
#line 2556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp47_ = self->priv->histogram_transformer;
#line 2556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp48_ = sat_trans;
#line 2556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformer_attach_transformation (_tmp47_, G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
#line 2557 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp49_ = self->priv->adjust_tool_window;
#line 2557 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp50_ = _tmp49_->saturation_slider;
#line 2557 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp51_ = sat_trans;
#line 2557 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_range_get_type (), GtkRange), (gdouble) saturation_transformation_get_parameter (_tmp51_));
#line 2560 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp52_ = self->priv->transformations;
#line 2560 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp53_ = pixel_transformation_bundle_get_transformation (_tmp52_, PIXEL_TRANSFORMATION_TYPE_EXPOSURE);
#line 2560 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	exposure_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformation);
#line 2562 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp54_ = self->priv->histogram_transformer;
#line 2562 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp55_ = exposure_trans;
#line 2562 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformer_attach_transformation (_tmp54_, G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
#line 2563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp56_ = self->priv->adjust_tool_window;
#line 2563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp57_ = _tmp56_->exposure_slider;
#line 2563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp58_ = exposure_trans;
#line 2563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, gtk_range_get_type (), GtkRange), (gdouble) exposure_transformation_get_parameter (_tmp58_));
#line 2566 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp59_ = self->priv->transformations;
#line 2566 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp60_ = pixel_transformation_bundle_get_transformation (_tmp59_, PIXEL_TRANSFORMATION_TYPE_CONTRAST);
#line 2566 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	contrast_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_CONTRAST_TRANSFORMATION, ContrastTransformation);
#line 2568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp61_ = self->priv->histogram_transformer;
#line 2568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp62_ = contrast_trans;
#line 2568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformer_attach_transformation (_tmp61_, G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
#line 2569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp63_ = self->priv->adjust_tool_window;
#line 2569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp64_ = _tmp63_->contrast_slider;
#line 2569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp65_ = contrast_trans;
#line 2569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_range_get_type (), GtkRange), (gdouble) contrast_transformation_get_parameter (_tmp65_));
#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_bind_canvas_handlers (self, canvas);
#line 2572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_bind_window_handlers (self);
#line 2574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp66_ = editing_tools_photo_canvas_get_scaled_pixbuf (canvas);
#line 2574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp67_ = _tmp66_;
#line 2574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp68_ = gdk_pixbuf_copy (_tmp67_);
#line 2574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->draw_to_pixbuf);
#line 2574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->draw_to_pixbuf = _tmp68_;
#line 2574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp67_);
#line 2575 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp69_ = editing_tools_photo_canvas_get_scaled_pixbuf (canvas);
#line 2575 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp70_ = _tmp69_;
#line 2575 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_init_fp_pixel_cache (self, _tmp70_);
#line 2575 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp70_);
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp72_ = self->priv->draw_to_pixbuf;
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp73_ = gdk_pixbuf_get_width (_tmp72_);
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp74_ = _tmp73_;
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp74_ == 1) {
#line 15466 "EditingTools.c"
		GdkPixbuf* _tmp75_;
		gint _tmp76_;
		gint _tmp77_;
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp75_ = self->priv->draw_to_pixbuf;
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp76_ = gdk_pixbuf_get_height (_tmp75_);
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp77_ = _tmp76_;
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp71_ = _tmp77_ == 1;
#line 15478 "EditingTools.c"
	} else {
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp71_ = FALSE;
#line 15482 "EditingTools.c"
	}
#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp71_) {
#line 2582 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->disable_histogram_refresh = TRUE;
#line 15488 "EditingTools.c"
	}
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp80_ = self->priv->draw_to_pixbuf;
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp81_ = gdk_pixbuf_get_width (_tmp80_);
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp82_ = _tmp81_;
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp83_ = self->priv->draw_to_pixbuf;
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp84_ = gdk_pixbuf_get_height (_tmp83_);
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp85_ = _tmp84_;
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if ((_tmp82_ * _tmp85_) > 8192) {
#line 15504 "EditingTools.c"
		GdkPixbuf* _tmp86_;
		gint _tmp87_;
		gint _tmp88_;
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp86_ = self->priv->draw_to_pixbuf;
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp87_ = gdk_pixbuf_get_width (_tmp86_);
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp88_ = _tmp87_;
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp79_ = _tmp88_ > 1;
#line 15516 "EditingTools.c"
	} else {
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp79_ = FALSE;
#line 15520 "EditingTools.c"
	}
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp79_) {
#line 15524 "EditingTools.c"
		GdkPixbuf* _tmp89_;
		gint _tmp90_;
		gint _tmp91_;
#line 2588 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp89_ = self->priv->draw_to_pixbuf;
#line 2588 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp90_ = gdk_pixbuf_get_height (_tmp89_);
#line 2588 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp91_ = _tmp90_;
#line 2588 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp78_ = _tmp91_ > 1;
#line 15536 "EditingTools.c"
	} else {
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp78_ = FALSE;
#line 15540 "EditingTools.c"
	}
#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp78_) {
#line 15544 "EditingTools.c"
		GdkPixbuf* _tmp92_;
		GdkPixbuf* _tmp93_;
		gint _tmp94_;
		gint _tmp95_;
		GdkPixbuf* _tmp96_;
		gint _tmp97_;
		gint _tmp98_;
		GdkPixbuf* _tmp99_;
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp92_ = self->priv->draw_to_pixbuf;
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp93_ = self->priv->draw_to_pixbuf;
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp94_ = gdk_pixbuf_get_width (_tmp93_);
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp95_ = _tmp94_;
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp96_ = self->priv->draw_to_pixbuf;
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp97_ = gdk_pixbuf_get_height (_tmp96_);
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp98_ = _tmp97_;
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp99_ = gdk_pixbuf_scale_simple (_tmp92_, _tmp95_ / 2, _tmp98_ / 2, GDK_INTERP_HYPER);
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (self->priv->histogram_pixbuf);
#line 2589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->histogram_pixbuf = _tmp99_;
#line 15573 "EditingTools.c"
	} else {
		GdkPixbuf* _tmp100_;
		GdkPixbuf* _tmp101_;
#line 2592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp100_ = self->priv->draw_to_pixbuf;
#line 2592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp101_ = gdk_pixbuf_copy (_tmp100_);
#line 2592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (self->priv->histogram_pixbuf);
#line 2592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->histogram_pixbuf = _tmp101_;
#line 15585 "EditingTools.c"
	}
#line 2594 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp102_ = self->priv->histogram_pixbuf;
#line 2594 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp103_ = gdk_pixbuf_copy (_tmp102_);
#line 2594 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->virgin_histogram_pixbuf);
#line 2594 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->virgin_histogram_pixbuf = _tmp103_;
#line 2596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp104_ = editing_tools_photo_canvas_get_photo (canvas);
#line 2596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp105_ = _tmp104_;
#line 2596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp106_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp105_, TYPE_DATA_OBJECT, DataObject));
#line 2596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp107_ = _tmp106_;
#line 2596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp105_);
#line 2596 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	owner = _tmp107_;
#line 2597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp108_ = owner;
#line 2597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp108_ != NULL) {
#line 15611 "EditingTools.c"
		DataCollection* _tmp109_;
#line 2598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp109_ = owner;
#line 2598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_connect (_tmp109_, "items-altered", (GCallback) _editing_tools_adjust_tool_on_photos_altered_data_collection_items_altered, self);
#line 15617 "EditingTools.c"
	}
#line 2600 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_adjust_tool_parent_class)->activate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), canvas);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_data_collection_unref0 (owner);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (contrast_trans);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (exposure_trans);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (sat_trans);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (tint_trans);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (temp_trans);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (highlights_trans);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (shadows_trans);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (expansion_trans);
#line 2512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (photo);
#line 15641 "EditingTools.c"
}


static EditingToolsEditingToolWindow*
editing_tools_adjust_tool_real_get_tool_window (EditingToolsEditingTool* base)
{
	EditingToolsAdjustTool * self;
	EditingToolsEditingToolWindow* result = NULL;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	EditingToolsEditingToolWindow* _tmp1_;
#line 2603 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
#line 2604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow));
#line 2604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp1_;
#line 2604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 15662 "EditingTools.c"
}


static void
editing_tools_adjust_tool_real_deactivate (EditingToolsEditingTool* base)
{
	EditingToolsAdjustTool * self;
	EditingToolsPhotoCanvas* _tmp0_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp10_;
#line 2607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
#line 2608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ != NULL) {
#line 15678 "EditingTools.c"
		DataCollection* owner = NULL;
		EditingToolsPhotoCanvas* _tmp1_;
		Photo* _tmp2_;
		Photo* _tmp3_;
		DataCollection* _tmp4_;
		DataCollection* _tmp5_;
		DataCollection* _tmp6_;
		EditingToolsPhotoCanvas* _tmp9_;
#line 2609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
#line 2609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = _tmp2_;
#line 2609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
#line 2609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = _tmp4_;
#line 2609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp3_);
#line 2609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		owner = _tmp5_;
#line 2610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = owner;
#line 2610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (_tmp6_ != NULL) {
#line 15705 "EditingTools.c"
			DataCollection* _tmp7_;
			guint _tmp8_;
#line 2611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp7_ = owner;
#line 2611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp8_, NULL, FALSE);
#line 2611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_photos_altered_data_collection_items_altered, self);
#line 15714 "EditingTools.c"
		}
#line 2613 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2613 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_adjust_tool_unbind_canvas_handlers (self, _tmp9_);
#line 2608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_data_collection_unref0 (owner);
#line 15722 "EditingTools.c"
	}
#line 2616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->priv->adjust_tool_window;
#line 2616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp10_ != NULL) {
#line 15728 "EditingTools.c"
		EditingToolsAdjustToolAdjustToolWindow* _tmp11_;
		EditingToolsAdjustToolAdjustToolWindow* _tmp12_;
#line 2617 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_adjust_tool_unbind_window_handlers (self);
#line 2618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp11_ = self->priv->adjust_tool_window;
#line 2618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
#line 2619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp12_ = self->priv->adjust_tool_window;
#line 2619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
#line 2620 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (self->priv->adjust_tool_window);
#line 2620 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->adjust_tool_window = NULL;
#line 15745 "EditingTools.c"
	}
#line 2623 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->draw_to_pixbuf);
#line 2623 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->draw_to_pixbuf = NULL;
#line 2624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache = (g_free (self->priv->fp_pixel_cache), NULL);
#line 2624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache = NULL;
#line 2624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache_length1 = 0;
#line 2624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->_fp_pixel_cache_size_ = self->priv->fp_pixel_cache_length1;
#line 2626 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_adjust_tool_parent_class)->deactivate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 15761 "EditingTools.c"
}


static void
editing_tools_adjust_tool_real_paint (EditingToolsEditingTool* base,
                                      cairo_t* ctx)
{
	EditingToolsAdjustTool * self;
	gboolean _tmp0_;
	EditingToolsPhotoCanvas* _tmp10_;
	GdkPixbuf* _tmp11_;
#line 2629 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
#line 2629 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (ctx != NULL);
#line 2630 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->suppress_effect_redraw;
#line 2630 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!_tmp0_) {
#line 15781 "EditingTools.c"
		PixelTransformer* _tmp1_;
		GdkPixbuf* _tmp2_;
		PixelTransformer* _tmp3_;
		GdkPixbuf* _tmp4_;
		GdkPixbuf* _tmp5_;
		gboolean _tmp6_;
#line 2631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = self->priv->transformer;
#line 2631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = self->priv->draw_to_pixbuf;
#line 2631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		pixel_transformer_transform_from_fp (_tmp1_, &self->priv->fp_pixel_cache, &self->priv->fp_pixel_cache_length1, _tmp2_);
#line 2632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = self->priv->histogram_transformer;
#line 2632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = self->priv->virgin_histogram_pixbuf;
#line 2632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = self->priv->histogram_pixbuf;
#line 2632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		pixel_transformer_transform_to_other_pixbuf (_tmp3_, _tmp4_, _tmp5_, NULL, -1);
#line 2634 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = self->priv->disable_histogram_refresh;
#line 2634 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (!_tmp6_) {
#line 15806 "EditingTools.c"
			EditingToolsAdjustToolAdjustToolWindow* _tmp7_;
			RGBHistogramManipulator* _tmp8_;
			GdkPixbuf* _tmp9_;
#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp7_ = self->priv->adjust_tool_window;
#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp8_ = _tmp7_->histogram_manipulator;
#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp9_ = self->priv->histogram_pixbuf;
#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			rgb_histogram_manipulator_update_histogram (_tmp8_, _tmp9_);
#line 15818 "EditingTools.c"
		}
	}
#line 2638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = self->priv->draw_to_pixbuf;
#line 2638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_paint_pixbuf (_tmp10_, _tmp11_);
#line 15827 "EditingTools.c"
}


static GdkPixbuf*
editing_tools_adjust_tool_real_get_display_pixbuf (EditingToolsEditingTool* base,
                                                   Scaling* scaling,
                                                   Photo* photo,
                                                   Dimensions* max_dim,
                                                   GError** error)
{
	EditingToolsAdjustTool * self;
	Dimensions _vala_max_dim = {0};
	GdkPixbuf* result = NULL;
	Dimensions _tmp0_ = {0};
	GdkPixbuf* _tmp1_ = NULL;
	Scaling _tmp2_;
	GdkPixbuf* _tmp3_;
	GdkPixbuf* _tmp4_;
	GError * _inner_error_ = NULL;
#line 2641 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
#line 2641 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (scaling != NULL, NULL);
#line 2641 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), NULL);
#line 2643 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (!photo_has_color_adjustments (photo)) {
#line 2644 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		dimensions_init (&_vala_max_dim, 0, 0);
#line 2646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = NULL;
#line 2646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		if (max_dim) {
#line 2646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			*max_dim = _vala_max_dim;
#line 15863 "EditingTools.c"
		}
#line 2646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 15867 "EditingTools.c"
	}
#line 2649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (photo, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp0_);
#line 2649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_max_dim = _tmp0_;
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = *scaling;
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = photo_get_pixbuf_with_options (photo, &_tmp2_, PHOTO_EXCEPTION_ADJUST, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp3_;
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_propagate_error (error, _inner_error_);
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return NULL;
#line 15885 "EditingTools.c"
	}
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp1_;
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = NULL;
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = _tmp4_;
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp1_);
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (max_dim) {
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		*max_dim = _vala_max_dim;
#line 15899 "EditingTools.c"
	}
#line 2651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 15903 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_reset (EditingToolsAdjustTool* self)
{
	EditingToolsAdjustToolAdjustResetCommand* command = NULL;
	PixelTransformationBundle* _tmp0_;
	EditingToolsAdjustToolAdjustResetCommand* _tmp1_;
	CommandManager* _tmp2_;
	CommandManager* _tmp3_;
#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->transformations;
#line 2655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_adjust_tool_adjust_reset_command_new (self, _tmp0_);
#line 2655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command = _tmp1_;
#line 2656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = app_window_get_command_manager ();
#line 2656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_;
#line 2656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command_manager_execute (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command));
#line 2656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_command_manager_unref0 (_tmp3_);
#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (command);
#line 15933 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_ok (EditingToolsAdjustTool* self)
{
	EditingToolsEditingToolWindow* _tmp0_;
	EditingToolsEditingToolWindow* _tmp1_;
	EditingToolsPhotoCanvas* _tmp2_;
	Photo* _tmp3_;
	Photo* _tmp4_;
	PixelTransformationBundle* _tmp5_;
	AdjustColorsSingleCommand* _tmp6_;
	AdjustColorsSingleCommand* _tmp7_;
	GdkPixbuf* _tmp8_;
	EditingToolsPhotoCanvas* _tmp9_;
	Photo* _tmp10_;
	Photo* _tmp11_;
	Dimensions _tmp12_ = {0};
#line 2659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2660 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->suppress_effect_redraw = TRUE;
#line 2662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = editing_tools_editing_tool_get_tool_window (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 2662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 2662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
#line 2662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp1_);
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = editing_tools_photo_canvas_get_photo (_tmp2_);
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_;
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->priv->transformations;
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = adjust_colors_single_command_new (_tmp4_, _tmp5_, RESOURCES_ADJUST_LABEL, RESOURCES_ADJUST_TOOLTIP);
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_;
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->priv->draw_to_pixbuf;
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = editing_tools_photo_canvas_get_photo (_tmp9_);
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_;
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp12_);
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_emit (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), editing_tools_editing_tool_signals[EDITING_TOOLS_EDITING_TOOL_APPLIED_SIGNAL], 0, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_COMMAND, Command), _tmp8_, &_tmp12_, FALSE);
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp11_);
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp7_);
#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp4_);
#line 15995 "EditingTools.c"
}


static void
editing_tools_adjust_tool_update_transformations (EditingToolsAdjustTool* self,
                                                  PixelTransformationBundle* new_transformations)
{
#line 2669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (new_transformations));
#line 16007 "EditingTools.c"
	{
		GeeIterator* _transformation_it = NULL;
		GeeIterable* _tmp0_;
		GeeIterable* _tmp1_;
		GeeIterator* _tmp2_;
		GeeIterator* _tmp3_;
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = pixel_transformation_bundle_get_transformations (new_transformations);
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = _tmp0_;
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = gee_iterable_iterator (_tmp1_);
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = _tmp2_;
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp1_);
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_transformation_it = _tmp3_;
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		while (TRUE) {
#line 16028 "EditingTools.c"
			GeeIterator* _tmp4_;
			PixelTransformation* transformation = NULL;
			GeeIterator* _tmp5_;
			gpointer _tmp6_;
			PixelTransformation* _tmp7_;
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp4_ = _transformation_it;
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (!gee_iterator_next (_tmp4_)) {
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				break;
#line 16040 "EditingTools.c"
			}
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp5_ = _transformation_it;
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp6_ = gee_iterator_get (_tmp5_);
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			transformation = (PixelTransformation*) _tmp6_;
#line 2671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp7_ = transformation;
#line 2671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			editing_tools_adjust_tool_update_transformation (self, _tmp7_);
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_pixel_transformation_unref0 (transformation);
#line 16054 "EditingTools.c"
		}
#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_transformation_it);
#line 16058 "EditingTools.c"
	}
}


static void
editing_tools_adjust_tool_update_transformation (EditingToolsAdjustTool* self,
                                                 PixelTransformation* new_transformation)
{
	PixelTransformation* old_transformation = NULL;
	PixelTransformationBundle* _tmp0_;
	PixelTransformation* _tmp1_;
	PixelTransformer* _tmp2_;
	PixelTransformation* _tmp3_;
	PixelTransformationBundle* _tmp6_;
#line 2674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (IS_PIXEL_TRANSFORMATION (new_transformation));
#line 2675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->transformations;
#line 2675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = pixel_transformation_bundle_get_transformation (_tmp0_, pixel_transformation_get_transformation_type (new_transformation));
#line 2675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old_transformation = _tmp1_;
#line 2678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->transformer;
#line 2678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = old_transformation;
#line 2678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformer_replace_transformation (_tmp2_, _tmp3_, new_transformation);
#line 2679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (pixel_transformation_get_transformation_type (new_transformation) != PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION) {
#line 16091 "EditingTools.c"
		PixelTransformer* _tmp4_;
		PixelTransformation* _tmp5_;
#line 2680 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = self->priv->histogram_transformer;
#line 2680 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = old_transformation;
#line 2680 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		pixel_transformer_replace_transformation (_tmp4_, _tmp5_, new_transformation);
#line 16100 "EditingTools.c"
	}
#line 2682 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->transformations;
#line 2682 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformation_bundle_set (_tmp6_, new_transformation);
#line 2674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (old_transformation);
#line 16108 "EditingTools.c"
}


static void
editing_tools_adjust_tool_slider_updated (EditingToolsAdjustTool* self,
                                          PixelTransformation* new_transformation,
                                          const gchar* name)
{
	PixelTransformation* old_transformation = NULL;
	PixelTransformationBundle* _tmp0_;
	PixelTransformation* _tmp1_;
	EditingToolsAdjustToolSliderAdjustmentCommand* command = NULL;
	EditingToolsAdjustToolSliderAdjustmentCommand* _tmp2_;
	CommandManager* _tmp3_;
	CommandManager* _tmp4_;
#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (IS_PIXEL_TRANSFORMATION (new_transformation));
#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (name != NULL);
#line 2686 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->transformations;
#line 2686 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = pixel_transformation_bundle_get_transformation (_tmp0_, pixel_transformation_get_transformation_type (new_transformation));
#line 2686 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	old_transformation = _tmp1_;
#line 2688 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = editing_tools_adjust_tool_slider_adjustment_command_new (self, old_transformation, new_transformation, name);
#line 2688 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command = _tmp2_;
#line 2690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = app_window_get_command_manager ();
#line 2690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_;
#line 2690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command_manager_execute (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command));
#line 2690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_command_manager_unref0 (_tmp4_);
#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (command);
#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (old_transformation);
#line 16152 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_delayed_temperature_adjustment_one_shot_callback (gpointer self)
{
#line 2695 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_delayed_temperature_adjustment ((EditingToolsAdjustTool*) self);
#line 16161 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_temperature_adjustment (EditingToolsAdjustTool* self)
{
	OneShotScheduler* _tmp0_;
	OneShotScheduler* _tmp2_;
#line 2693 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->temperature_scheduler;
#line 2694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == NULL) {
#line 16176 "EditingTools.c"
		OneShotScheduler* _tmp1_;
#line 2695 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = one_shot_scheduler_new ("temperature", _editing_tools_adjust_tool_on_delayed_temperature_adjustment_one_shot_callback, self);
#line 2695 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_one_shot_scheduler_unref0 (self->priv->temperature_scheduler);
#line 2695 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->temperature_scheduler = _tmp1_;
#line 16184 "EditingTools.c"
	}
#line 2697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->temperature_scheduler;
#line 2697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
#line 16190 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_delayed_temperature_adjustment (EditingToolsAdjustTool* self)
{
	TemperatureTransformation* new_temp_trans = NULL;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkScale* _tmp1_;
	TemperatureTransformation* _tmp2_;
#line 2700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2701 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2701 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->temperature_slider;
#line 2701 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = temperature_transformation_new ((gfloat) gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange)));
#line 2701 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_temp_trans = _tmp2_;
#line 2703 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_temp_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _ ("Temperature"));
#line 2700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (new_temp_trans);
#line 16215 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_delayed_tint_adjustment_one_shot_callback (gpointer self)
{
#line 2708 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_delayed_tint_adjustment ((EditingToolsAdjustTool*) self);
#line 16224 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_tint_adjustment (EditingToolsAdjustTool* self)
{
	OneShotScheduler* _tmp0_;
	OneShotScheduler* _tmp2_;
#line 2706 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->tint_scheduler;
#line 2707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == NULL) {
#line 16239 "EditingTools.c"
		OneShotScheduler* _tmp1_;
#line 2708 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = one_shot_scheduler_new ("tint", _editing_tools_adjust_tool_on_delayed_tint_adjustment_one_shot_callback, self);
#line 2708 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_one_shot_scheduler_unref0 (self->priv->tint_scheduler);
#line 2708 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->tint_scheduler = _tmp1_;
#line 16247 "EditingTools.c"
	}
#line 2709 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->tint_scheduler;
#line 2709 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
#line 16253 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_delayed_tint_adjustment (EditingToolsAdjustTool* self)
{
	TintTransformation* new_tint_trans = NULL;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkScale* _tmp1_;
	TintTransformation* _tmp2_;
#line 2712 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->tint_slider;
#line 2713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = tint_transformation_new ((gfloat) gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange)));
#line 2713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_tint_trans = _tmp2_;
#line 2715 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_tint_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _ ("Tint"));
#line 2712 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (new_tint_trans);
#line 16278 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_delayed_contrast_adjustment_one_shot_callback (gpointer self)
{
#line 2720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_delayed_contrast_adjustment ((EditingToolsAdjustTool*) self);
#line 16287 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_contrast_adjustment (EditingToolsAdjustTool* self)
{
	OneShotScheduler* _tmp0_;
	OneShotScheduler* _tmp2_;
#line 2718 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2719 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->contrast_scheduler;
#line 2719 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == NULL) {
#line 16302 "EditingTools.c"
		OneShotScheduler* _tmp1_;
#line 2720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = one_shot_scheduler_new ("contrast", _editing_tools_adjust_tool_on_delayed_contrast_adjustment_one_shot_callback, self);
#line 2720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_one_shot_scheduler_unref0 (self->priv->contrast_scheduler);
#line 2720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->contrast_scheduler = _tmp1_;
#line 16310 "EditingTools.c"
	}
#line 2721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->contrast_scheduler;
#line 2721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
#line 16316 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_delayed_contrast_adjustment (EditingToolsAdjustTool* self)
{
	ContrastTransformation* new_exp_trans = NULL;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkScale* _tmp1_;
	ContrastTransformation* _tmp2_;
#line 2724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->contrast_slider;
#line 2725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = contrast_transformation_new ((gfloat) gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange)));
#line 2725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_exp_trans = _tmp2_;
#line 2727 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_exp_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _ ("Contrast"));
#line 2724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (new_exp_trans);
#line 16341 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_delayed_saturation_adjustment_one_shot_callback (gpointer self)
{
#line 2733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_delayed_saturation_adjustment ((EditingToolsAdjustTool*) self);
#line 16350 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_saturation_adjustment (EditingToolsAdjustTool* self)
{
	OneShotScheduler* _tmp0_;
	OneShotScheduler* _tmp2_;
#line 2731 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->saturation_scheduler;
#line 2732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == NULL) {
#line 16365 "EditingTools.c"
		OneShotScheduler* _tmp1_;
#line 2733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = one_shot_scheduler_new ("saturation", _editing_tools_adjust_tool_on_delayed_saturation_adjustment_one_shot_callback, self);
#line 2733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_one_shot_scheduler_unref0 (self->priv->saturation_scheduler);
#line 2733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->saturation_scheduler = _tmp1_;
#line 16373 "EditingTools.c"
	}
#line 2735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->saturation_scheduler;
#line 2735 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
#line 16379 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_delayed_saturation_adjustment (EditingToolsAdjustTool* self)
{
	SaturationTransformation* new_sat_trans = NULL;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkScale* _tmp1_;
	SaturationTransformation* _tmp2_;
#line 2738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->saturation_slider;
#line 2739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = saturation_transformation_new ((gfloat) gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange)));
#line 2739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_sat_trans = _tmp2_;
#line 2741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_sat_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _ ("Saturation"));
#line 2738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (new_sat_trans);
#line 16404 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_delayed_exposure_adjustment_one_shot_callback (gpointer self)
{
#line 2746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_delayed_exposure_adjustment ((EditingToolsAdjustTool*) self);
#line 16413 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_exposure_adjustment (EditingToolsAdjustTool* self)
{
	OneShotScheduler* _tmp0_;
	OneShotScheduler* _tmp2_;
#line 2744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->exposure_scheduler;
#line 2745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == NULL) {
#line 16428 "EditingTools.c"
		OneShotScheduler* _tmp1_;
#line 2746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = one_shot_scheduler_new ("exposure", _editing_tools_adjust_tool_on_delayed_exposure_adjustment_one_shot_callback, self);
#line 2746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_one_shot_scheduler_unref0 (self->priv->exposure_scheduler);
#line 2746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->exposure_scheduler = _tmp1_;
#line 16436 "EditingTools.c"
	}
#line 2748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->exposure_scheduler;
#line 2748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
#line 16442 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_delayed_exposure_adjustment (EditingToolsAdjustTool* self)
{
	ExposureTransformation* new_exp_trans = NULL;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkScale* _tmp1_;
	ExposureTransformation* _tmp2_;
#line 2751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->exposure_slider;
#line 2752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = exposure_transformation_new ((gfloat) gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange)));
#line 2752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_exp_trans = _tmp2_;
#line 2754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_exp_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _ ("Exposure"));
#line 2751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (new_exp_trans);
#line 16467 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_delayed_shadows_adjustment_one_shot_callback (gpointer self)
{
#line 2759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_delayed_shadows_adjustment ((EditingToolsAdjustTool*) self);
#line 16476 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_shadows_adjustment (EditingToolsAdjustTool* self)
{
	OneShotScheduler* _tmp0_;
	OneShotScheduler* _tmp2_;
#line 2757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->shadows_scheduler;
#line 2758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == NULL) {
#line 16491 "EditingTools.c"
		OneShotScheduler* _tmp1_;
#line 2759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = one_shot_scheduler_new ("shadows", _editing_tools_adjust_tool_on_delayed_shadows_adjustment_one_shot_callback, self);
#line 2759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_one_shot_scheduler_unref0 (self->priv->shadows_scheduler);
#line 2759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->shadows_scheduler = _tmp1_;
#line 16499 "EditingTools.c"
	}
#line 2761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->shadows_scheduler;
#line 2761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
#line 16505 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_delayed_shadows_adjustment (EditingToolsAdjustTool* self)
{
	ShadowDetailTransformation* new_shadows_trans = NULL;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkScale* _tmp1_;
	ShadowDetailTransformation* _tmp2_;
#line 2764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->shadows_slider;
#line 2765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = shadow_detail_transformation_new ((gfloat) gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange)));
#line 2765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_shadows_trans = _tmp2_;
#line 2767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_shadows_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _ ("Shadows"));
#line 2764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (new_shadows_trans);
#line 16530 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_delayed_highlights_adjustment_one_shot_callback (gpointer self)
{
#line 2772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_delayed_highlights_adjustment ((EditingToolsAdjustTool*) self);
#line 16539 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_highlights_adjustment (EditingToolsAdjustTool* self)
{
	OneShotScheduler* _tmp0_;
	OneShotScheduler* _tmp2_;
#line 2770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->highlights_scheduler;
#line 2771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == NULL) {
#line 16554 "EditingTools.c"
		OneShotScheduler* _tmp1_;
#line 2772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = one_shot_scheduler_new ("highlights", _editing_tools_adjust_tool_on_delayed_highlights_adjustment_one_shot_callback, self);
#line 2772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_one_shot_scheduler_unref0 (self->priv->highlights_scheduler);
#line 2772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->highlights_scheduler = _tmp1_;
#line 16562 "EditingTools.c"
	}
#line 2774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->highlights_scheduler;
#line 2774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
#line 16568 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_delayed_highlights_adjustment (EditingToolsAdjustTool* self)
{
	HighlightDetailTransformation* new_highlights_trans = NULL;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkScale* _tmp1_;
	HighlightDetailTransformation* _tmp2_;
#line 2777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->highlights_slider;
#line 2778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = highlight_detail_transformation_new ((gfloat) gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange)));
#line 2778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_highlights_trans = _tmp2_;
#line 2780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_highlights_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _ ("Highlights"));
#line 2777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (new_highlights_trans);
#line 16593 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_histogram_constraint (EditingToolsAdjustTool* self)
{
	gint expansion_black_point = 0;
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	RGBHistogramManipulator* _tmp1_;
	gint expansion_white_point = 0;
	EditingToolsAdjustToolAdjustToolWindow* _tmp2_;
	RGBHistogramManipulator* _tmp3_;
	ExpansionTransformation* new_exp_trans = NULL;
	ExpansionTransformation* _tmp4_;
#line 2783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->histogram_manipulator;
#line 2784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	expansion_black_point = rgb_histogram_manipulator_get_left_nub_position (_tmp1_);
#line 2786 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->adjust_tool_window;
#line 2786 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_->histogram_manipulator;
#line 2786 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	expansion_white_point = rgb_histogram_manipulator_get_right_nub_position (_tmp3_);
#line 2788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = expansion_transformation_new_from_extrema (expansion_black_point, expansion_white_point);
#line 2788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	new_exp_trans = _tmp4_;
#line 2790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_exp_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _ ("Contrast Expansion"));
#line 2783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (new_exp_trans);
#line 16630 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_canvas_resize (EditingToolsAdjustTool* self)
{
	EditingToolsPhotoCanvas* _tmp0_;
	GdkPixbuf* _tmp1_;
	GdkPixbuf* _tmp2_;
	GdkPixbuf* _tmp3_;
	EditingToolsPhotoCanvas* _tmp4_;
	GdkPixbuf* _tmp5_;
	GdkPixbuf* _tmp6_;
#line 2793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp0_);
#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_;
#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = gdk_pixbuf_copy (_tmp2_);
#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->draw_to_pixbuf);
#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->draw_to_pixbuf = _tmp3_;
#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp2_);
#line 2795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp4_);
#line 2795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_;
#line 2795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_init_fp_pixel_cache (self, _tmp6_);
#line 2795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp6_);
#line 16670 "EditingTools.c"
}


static gboolean
editing_tools_adjust_tool_on_hscale_reset (EditingToolsAdjustTool* self,
                                           GtkWidget* widget,
                                           GdkEventButton* event)
{
	gboolean result = FALSE;
	GtkScale* source = NULL;
	GtkScale* _tmp0_;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	guint _tmp3_;
#line 2798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self), FALSE);
#line 2798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
#line 2798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 2799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (widget, gtk_scale_get_type (), GtkScale));
#line 2799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	source = _tmp0_;
#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = event->button;
#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_ == ((guint) 1)) {
#line 16699 "EditingTools.c"
		GdkEventType _tmp4_;
#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = event->type;
#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = _tmp4_ == GDK_BUTTON_PRESS;
#line 16705 "EditingTools.c"
	} else {
#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = FALSE;
#line 16709 "EditingTools.c"
	}
#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp2_) {
#line 16713 "EditingTools.c"
		GdkModifierType _tmp5_;
#line 2802 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = event->state;
#line 2802 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = has_only_key_modifier (_tmp5_, GDK_CONTROL_MASK);
#line 16719 "EditingTools.c"
	} else {
#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = FALSE;
#line 16723 "EditingTools.c"
	}
#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_) {
#line 16727 "EditingTools.c"
		GtkScale* _tmp6_;
#line 2804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = source;
#line 2804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_range_get_type (), GtkRange), (gdouble) 0);
#line 2806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = TRUE;
#line 2806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (source);
#line 2806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 16739 "EditingTools.c"
	}
#line 2809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = FALSE;
#line 2809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (source);
#line 2809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 16747 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender,
                                                                                              Dimensions* old_dim,
                                                                                              GdkPixbuf* scaled,
                                                                                              GdkRectangle* scaled_position,
                                                                                              gpointer self)
{
#line 2813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_canvas_resize ((EditingToolsAdjustTool*) self);
#line 16760 "EditingTools.c"
}


static void
editing_tools_adjust_tool_bind_canvas_handlers (EditingToolsAdjustTool* self,
                                                EditingToolsPhotoCanvas* canvas)
{
#line 2812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 2813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (canvas, "resized-scaled-pixbuf", (GCallback) _editing_tools_adjust_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
#line 16774 "EditingTools.c"
}


static void
editing_tools_adjust_tool_unbind_canvas_handlers (EditingToolsAdjustTool* self,
                                                  EditingToolsPhotoCanvas* canvas)
{
	guint _tmp0_;
#line 2816 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2816 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
#line 2817 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp0_, NULL, FALSE);
#line 2817 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (canvas, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
#line 16791 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_ok_gtk_button_clicked (GtkButton* _sender,
                                                     gpointer self)
{
#line 2821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_ok ((EditingToolsAdjustTool*) self);
#line 16801 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_reset_gtk_button_clicked (GtkButton* _sender,
                                                        gpointer self)
{
#line 2822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_reset ((EditingToolsAdjustTool*) self);
#line 16811 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_exposure_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                           gpointer self)
{
#line 2824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_exposure_adjustment ((EditingToolsAdjustTool*) self);
#line 16821 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_contrast_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                           gpointer self)
{
#line 2825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_contrast_adjustment ((EditingToolsAdjustTool*) self);
#line 16831 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_saturation_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                             gpointer self)
{
#line 2826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_saturation_adjustment ((EditingToolsAdjustTool*) self);
#line 16841 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_tint_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                       gpointer self)
{
#line 2827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_tint_adjustment ((EditingToolsAdjustTool*) self);
#line 16851 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_temperature_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                              gpointer self)
{
#line 2828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_temperature_adjustment ((EditingToolsAdjustTool*) self);
#line 16861 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_shadows_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                          gpointer self)
{
#line 2829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_shadows_adjustment ((EditingToolsAdjustTool*) self);
#line 16871 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_highlights_adjustment_gtk_range_value_changed (GtkRange* _sender,
                                                                             gpointer self)
{
#line 2830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_highlights_adjustment ((EditingToolsAdjustTool*) self);
#line 16881 "EditingTools.c"
}


static void
_editing_tools_adjust_tool_on_histogram_constraint_rgb_histogram_manipulator_nub_position_changed (RGBHistogramManipulator* _sender,
                                                                                                   gpointer self)
{
#line 2831 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_on_histogram_constraint ((EditingToolsAdjustTool*) self);
#line 16891 "EditingTools.c"
}


static gboolean
_editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event (GtkWidget* _sender,
                                                                          GdkEventButton* event,
                                                                          gpointer self)
{
	gboolean result;
	result = editing_tools_adjust_tool_on_hscale_reset ((EditingToolsAdjustTool*) self, _sender, event);
#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 16904 "EditingTools.c"
}


static void
editing_tools_adjust_tool_bind_window_handlers (EditingToolsAdjustTool* self)
{
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkButton* _tmp1_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp2_;
	GtkButton* _tmp3_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp4_;
	GtkButton* _tmp5_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp6_;
	GtkScale* _tmp7_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp8_;
	GtkScale* _tmp9_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp10_;
	GtkScale* _tmp11_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp12_;
	GtkScale* _tmp13_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp14_;
	GtkScale* _tmp15_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp16_;
	GtkScale* _tmp17_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp18_;
	GtkScale* _tmp19_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp20_;
	RGBHistogramManipulator* _tmp21_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp22_;
	GtkScale* _tmp23_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp24_;
	GtkScale* _tmp25_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp26_;
	GtkScale* _tmp27_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp28_;
	GtkScale* _tmp29_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp30_;
	GtkScale* _tmp31_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp32_;
	GtkScale* _tmp33_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp34_;
	GtkScale* _tmp35_;
#line 2820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->ok_button;
#line 2821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp1_, "clicked", (GCallback) _editing_tools_adjust_tool_on_ok_gtk_button_clicked, self);
#line 2822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->adjust_tool_window;
#line 2822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = _tmp2_->reset_button;
#line 2822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp3_, "clicked", (GCallback) _editing_tools_adjust_tool_on_reset_gtk_button_clicked, self);
#line 2823 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->adjust_tool_window;
#line 2823 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = _tmp4_->cancel_button;
#line 2823 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp5_, "clicked", (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 2824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->adjust_tool_window;
#line 2824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_->exposure_slider;
#line 2824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_exposure_adjustment_gtk_range_value_changed, self);
#line 2825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->priv->adjust_tool_window;
#line 2825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = _tmp8_->contrast_slider;
#line 2825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_contrast_adjustment_gtk_range_value_changed, self);
#line 2826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->priv->adjust_tool_window;
#line 2826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _tmp10_->saturation_slider;
#line 2826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_saturation_adjustment_gtk_range_value_changed, self);
#line 2827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = self->priv->adjust_tool_window;
#line 2827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_->tint_slider;
#line 2827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_tint_adjustment_gtk_range_value_changed, self);
#line 2828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->priv->adjust_tool_window;
#line 2828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = _tmp14_->temperature_slider;
#line 2828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_temperature_adjustment_gtk_range_value_changed, self);
#line 2829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = self->priv->adjust_tool_window;
#line 2829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = _tmp16_->shadows_slider;
#line 2829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_shadows_adjustment_gtk_range_value_changed, self);
#line 2830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->priv->adjust_tool_window;
#line 2830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = _tmp18_->highlights_slider;
#line 2830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_highlights_adjustment_gtk_range_value_changed, self);
#line 2831 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = self->priv->adjust_tool_window;
#line 2831 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = _tmp20_->histogram_manipulator;
#line 2831 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (_tmp21_, "nub-position-changed", (GCallback) _editing_tools_adjust_tool_on_histogram_constraint_rgb_histogram_manipulator_nub_position_changed, self);
#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = self->priv->adjust_tool_window;
#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = _tmp22_->saturation_slider;
#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = self->priv->adjust_tool_window;
#line 2834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = _tmp24_->exposure_slider;
#line 2834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = self->priv->adjust_tool_window;
#line 2835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = _tmp26_->contrast_slider;
#line 2835 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = self->priv->adjust_tool_window;
#line 2836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = _tmp28_->tint_slider;
#line 2836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = self->priv->adjust_tool_window;
#line 2837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = _tmp30_->temperature_slider;
#line 2837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2838 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = self->priv->adjust_tool_window;
#line 2838 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = _tmp32_->shadows_slider;
#line 2838 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = self->priv->adjust_tool_window;
#line 2839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp35_ = _tmp34_->highlights_slider;
#line 2839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 17057 "EditingTools.c"
}


static void
editing_tools_adjust_tool_unbind_window_handlers (EditingToolsAdjustTool* self)
{
	EditingToolsAdjustToolAdjustToolWindow* _tmp0_;
	GtkButton* _tmp1_;
	guint _tmp2_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp3_;
	GtkButton* _tmp4_;
	guint _tmp5_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp6_;
	GtkButton* _tmp7_;
	guint _tmp8_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp9_;
	GtkScale* _tmp10_;
	guint _tmp11_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp12_;
	GtkScale* _tmp13_;
	guint _tmp14_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp15_;
	GtkScale* _tmp16_;
	guint _tmp17_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp18_;
	GtkScale* _tmp19_;
	guint _tmp20_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp21_;
	GtkScale* _tmp22_;
	guint _tmp23_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp24_;
	GtkScale* _tmp25_;
	guint _tmp26_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp27_;
	GtkScale* _tmp28_;
	guint _tmp29_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp30_;
	RGBHistogramManipulator* _tmp31_;
	guint _tmp32_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp33_;
	GtkScale* _tmp34_;
	guint _tmp35_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp36_;
	GtkScale* _tmp37_;
	guint _tmp38_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp39_;
	GtkScale* _tmp40_;
	guint _tmp41_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp42_;
	GtkScale* _tmp43_;
	guint _tmp44_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp45_;
	GtkScale* _tmp46_;
	guint _tmp47_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp48_;
	GtkScale* _tmp49_;
	guint _tmp50_;
	EditingToolsAdjustToolAdjustToolWindow* _tmp51_;
	GtkScale* _tmp52_;
	guint _tmp53_;
#line 2842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->adjust_tool_window;
#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_->ok_button;
#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp2_, NULL, FALSE);
#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_ok_gtk_button_clicked, self);
#line 2844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->priv->adjust_tool_window;
#line 2844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_->reset_button;
#line 2844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp5_, NULL, FALSE);
#line 2844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_reset_gtk_button_clicked, self);
#line 2845 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = self->priv->adjust_tool_window;
#line 2845 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = _tmp6_->cancel_button;
#line 2845 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp8_, NULL, FALSE);
#line 2845 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
#line 2846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->priv->adjust_tool_window;
#line 2846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_->exposure_slider;
#line 2846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp11_, NULL, FALSE);
#line 2846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_exposure_adjustment_gtk_range_value_changed, self);
#line 2847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = self->priv->adjust_tool_window;
#line 2847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = _tmp12_->contrast_slider;
#line 2847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp14_, NULL, FALSE);
#line 2847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_contrast_adjustment_gtk_range_value_changed, self);
#line 2848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->priv->adjust_tool_window;
#line 2848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = _tmp15_->saturation_slider;
#line 2848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp17_, NULL, FALSE);
#line 2848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp17_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_saturation_adjustment_gtk_range_value_changed, self);
#line 2849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->priv->adjust_tool_window;
#line 2849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = _tmp18_->tint_slider;
#line 2849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp20_, NULL, FALSE);
#line 2849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp20_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_tint_adjustment_gtk_range_value_changed, self);
#line 2850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = self->priv->adjust_tool_window;
#line 2850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = _tmp21_->temperature_slider;
#line 2850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp23_, NULL, FALSE);
#line 2850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp23_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_temperature_adjustment_gtk_range_value_changed, self);
#line 2851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = self->priv->adjust_tool_window;
#line 2851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = _tmp24_->shadows_slider;
#line 2851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp26_, NULL, FALSE);
#line 2851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp26_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_shadows_adjustment_gtk_range_value_changed, self);
#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = self->priv->adjust_tool_window;
#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = _tmp27_->highlights_slider;
#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp29_, NULL, FALSE);
#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp29_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_highlights_adjustment_gtk_range_value_changed, self);
#line 2853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = self->priv->adjust_tool_window;
#line 2853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = _tmp30_->histogram_manipulator;
#line 2853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("nub-position-changed", TYPE_RGB_HISTOGRAM_MANIPULATOR, &_tmp32_, NULL, FALSE);
#line 2853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (_tmp31_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp32_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_histogram_constraint_rgb_histogram_manipulator_nub_position_changed, self);
#line 2855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = self->priv->adjust_tool_window;
#line 2855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = _tmp33_->saturation_slider;
#line 2855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp35_, NULL, FALSE);
#line 2855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp35_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp36_ = self->priv->adjust_tool_window;
#line 2856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp37_ = _tmp36_->exposure_slider;
#line 2856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp38_, NULL, FALSE);
#line 2856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp38_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2857 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp39_ = self->priv->adjust_tool_window;
#line 2857 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp40_ = _tmp39_->contrast_slider;
#line 2857 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp41_, NULL, FALSE);
#line 2857 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp41_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp42_ = self->priv->adjust_tool_window;
#line 2858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp43_ = _tmp42_->tint_slider;
#line 2858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp44_, NULL, FALSE);
#line 2858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp44_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2859 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp45_ = self->priv->adjust_tool_window;
#line 2859 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp46_ = _tmp45_->temperature_slider;
#line 2859 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp47_, NULL, FALSE);
#line 2859 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp47_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp48_ = self->priv->adjust_tool_window;
#line 2860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp49_ = _tmp48_->shadows_slider;
#line 2860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp50_, NULL, FALSE);
#line 2860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp50_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 2861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp51_ = self->priv->adjust_tool_window;
#line 2861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp52_ = _tmp51_->highlights_slider;
#line 2861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp53_, NULL, FALSE);
#line 2861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp53_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
#line 17264 "EditingTools.c"
}


gboolean
editing_tools_adjust_tool_enhance (EditingToolsAdjustTool* self)
{
	gboolean result = FALSE;
	EditingToolsAdjustToolAdjustEnhanceCommand* command = NULL;
	EditingToolsPhotoCanvas* _tmp0_;
	Photo* _tmp1_;
	Photo* _tmp2_;
	EditingToolsAdjustToolAdjustEnhanceCommand* _tmp3_;
	EditingToolsAdjustToolAdjustEnhanceCommand* _tmp4_;
	CommandManager* _tmp5_;
	CommandManager* _tmp6_;
#line 2864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self), FALSE);
#line 2865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_photo_canvas_get_photo (_tmp0_);
#line 2865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_;
#line 2865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = editing_tools_adjust_tool_adjust_enhance_command_new (self, _tmp2_);
#line 2865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = _tmp3_;
#line 2865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp2_);
#line 2865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command = _tmp4_;
#line 2866 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = app_window_get_command_manager ();
#line 2866 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_;
#line 2866 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command_manager_execute (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command));
#line 2866 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_command_manager_unref0 (_tmp6_);
#line 2868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = TRUE;
#line 2868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (command);
#line 2868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 17310 "EditingTools.c"
}


static void
editing_tools_adjust_tool_on_photos_altered (EditingToolsAdjustTool* self,
                                             GeeMap* map)
{
	EditingToolsPhotoCanvas* _tmp0_;
	Photo* _tmp1_;
	Photo* _tmp2_;
	gboolean _tmp3_;
	PixelTransformationBundle* adjustments = NULL;
	EditingToolsPhotoCanvas* _tmp4_;
	Photo* _tmp5_;
	Photo* _tmp6_;
	PixelTransformationBundle* _tmp7_;
	PixelTransformationBundle* _tmp8_;
	PixelTransformationBundle* _tmp9_;
#line 2871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (GEE_IS_MAP (map));
#line 2872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = editing_tools_photo_canvas_get_photo (_tmp0_);
#line 2872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = _tmp1_;
#line 2872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = !gee_map_has_key (map, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
#line 2872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp2_);
#line 2872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_) {
#line 2873 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return;
#line 17347 "EditingTools.c"
	}
#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = editing_tools_photo_canvas_get_photo (_tmp4_);
#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_;
#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = photo_get_color_adjustments (_tmp6_);
#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = _tmp7_;
#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (_tmp6_);
#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	adjustments = _tmp8_;
#line 2876 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = adjustments;
#line 2876 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_set_adjustments (self, _tmp9_);
#line 2871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (adjustments);
#line 17369 "EditingTools.c"
}


static void
editing_tools_adjust_tool_set_adjustments (EditingToolsAdjustTool* self,
                                           PixelTransformationBundle* new_adjustments)
{
	EditingToolsPhotoCanvas* _tmp8_;
#line 2879 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2879 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (new_adjustments));
#line 2880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_unbind_window_handlers (self);
#line 2882 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_update_transformations (self, new_adjustments);
#line 17386 "EditingTools.c"
	{
		GeeIterator* _adjustment_it = NULL;
		GeeIterable* _tmp0_;
		GeeIterable* _tmp1_;
		GeeIterator* _tmp2_;
		GeeIterator* _tmp3_;
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = pixel_transformation_bundle_get_transformations (new_adjustments);
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = _tmp0_;
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = gee_iterable_iterator (_tmp1_);
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = _tmp2_;
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp1_);
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_adjustment_it = _tmp3_;
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		while (TRUE) {
#line 17407 "EditingTools.c"
			GeeIterator* _tmp4_;
			PixelTransformation* adjustment = NULL;
			GeeIterator* _tmp5_;
			gpointer _tmp6_;
			PixelTransformation* _tmp7_;
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp4_ = _adjustment_it;
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (!gee_iterator_next (_tmp4_)) {
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				break;
#line 17419 "EditingTools.c"
			}
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp5_ = _adjustment_it;
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp6_ = gee_iterator_get (_tmp5_);
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			adjustment = (PixelTransformation*) _tmp6_;
#line 2885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp7_ = adjustment;
#line 2885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			editing_tools_adjust_tool_update_slider (self, _tmp7_);
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_pixel_transformation_unref0 (adjustment);
#line 17433 "EditingTools.c"
		}
#line 2884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_adjustment_it);
#line 17437 "EditingTools.c"
	}
#line 2887 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_bind_window_handlers (self);
#line 2888 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2888 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp8_);
#line 17445 "EditingTools.c"
}


static gpointer
_pixel_transformation_ref0 (gpointer self)
{
#line 2896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self ? pixel_transformation_ref (self) : NULL;
#line 17454 "EditingTools.c"
}


static void
editing_tools_adjust_tool_update_slider (EditingToolsAdjustTool* self,
                                         PixelTransformation* transformation)
{
#line 2893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (IS_PIXEL_TRANSFORMATION (transformation));
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	switch (pixel_transformation_get_transformation_type (transformation)) {
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION:
#line 17470 "EditingTools.c"
		{
			ExpansionTransformation* expansion = NULL;
			ExpansionTransformation* _tmp0_;
			gboolean _tmp1_;
#line 2896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp0_ = _pixel_transformation_ref0 (G_TYPE_CHECK_INSTANCE_CAST (transformation, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation));
#line 2896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			expansion = _tmp0_;
#line 2898 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp1_ = self->priv->disable_histogram_refresh;
#line 2898 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			if (!_tmp1_) {
#line 17483 "EditingTools.c"
				EditingToolsAdjustToolAdjustToolWindow* _tmp2_;
				RGBHistogramManipulator* _tmp3_;
				ExpansionTransformation* _tmp4_;
				EditingToolsAdjustToolAdjustToolWindow* _tmp5_;
				RGBHistogramManipulator* _tmp6_;
				ExpansionTransformation* _tmp7_;
#line 2899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp2_ = self->priv->adjust_tool_window;
#line 2899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp3_ = _tmp2_->histogram_manipulator;
#line 2899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp4_ = expansion;
#line 2899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				rgb_histogram_manipulator_set_left_nub_position (_tmp3_, expansion_transformation_get_black_point (_tmp4_));
#line 2901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp5_ = self->priv->adjust_tool_window;
#line 2901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp6_ = _tmp5_->histogram_manipulator;
#line 2901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp7_ = expansion;
#line 2901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				rgb_histogram_manipulator_set_right_nub_position (_tmp6_, expansion_transformation_get_white_point (_tmp7_));
#line 17506 "EditingTools.c"
			}
#line 2904 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_pixel_transformation_unref0 (expansion);
#line 2904 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 17512 "EditingTools.c"
		}
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case PIXEL_TRANSFORMATION_TYPE_SHADOWS:
#line 17516 "EditingTools.c"
		{
			EditingToolsAdjustToolAdjustToolWindow* _tmp8_;
			GtkScale* _tmp9_;
#line 2907 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp8_ = self->priv->adjust_tool_window;
#line 2907 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp9_ = _tmp8_->shadows_slider;
#line 2907 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_range_get_type (), GtkRange), (gdouble) shadow_detail_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (transformation, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation)));
#line 2909 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 17528 "EditingTools.c"
		}
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case PIXEL_TRANSFORMATION_TYPE_CONTRAST:
#line 17532 "EditingTools.c"
		{
			EditingToolsAdjustToolAdjustToolWindow* _tmp10_;
			GtkScale* _tmp11_;
#line 2912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp10_ = self->priv->adjust_tool_window;
#line 2912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp11_ = _tmp10_->contrast_slider;
#line 2912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_range_get_type (), GtkRange), (gdouble) contrast_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (transformation, TYPE_CONTRAST_TRANSFORMATION, ContrastTransformation)));
#line 2914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 17544 "EditingTools.c"
		}
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS:
#line 17548 "EditingTools.c"
		{
			EditingToolsAdjustToolAdjustToolWindow* _tmp12_;
			GtkScale* _tmp13_;
#line 2917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp12_ = self->priv->adjust_tool_window;
#line 2917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp13_ = _tmp12_->highlights_slider;
#line 2917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_range_get_type (), GtkRange), (gdouble) highlight_detail_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (transformation, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation)));
#line 2919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 17560 "EditingTools.c"
		}
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case PIXEL_TRANSFORMATION_TYPE_EXPOSURE:
#line 17564 "EditingTools.c"
		{
			EditingToolsAdjustToolAdjustToolWindow* _tmp14_;
			GtkScale* _tmp15_;
#line 2922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp14_ = self->priv->adjust_tool_window;
#line 2922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp15_ = _tmp14_->exposure_slider;
#line 2922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_range_get_type (), GtkRange), (gdouble) exposure_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (transformation, TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformation)));
#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 17576 "EditingTools.c"
		}
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case PIXEL_TRANSFORMATION_TYPE_SATURATION:
#line 17580 "EditingTools.c"
		{
			EditingToolsAdjustToolAdjustToolWindow* _tmp16_;
			GtkScale* _tmp17_;
#line 2927 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp16_ = self->priv->adjust_tool_window;
#line 2927 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp17_ = _tmp16_->saturation_slider;
#line 2927 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_range_get_type (), GtkRange), (gdouble) saturation_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (transformation, TYPE_SATURATION_TRANSFORMATION, SaturationTransformation)));
#line 2929 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 17592 "EditingTools.c"
		}
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case PIXEL_TRANSFORMATION_TYPE_TINT:
#line 17596 "EditingTools.c"
		{
			EditingToolsAdjustToolAdjustToolWindow* _tmp18_;
			GtkScale* _tmp19_;
#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp18_ = self->priv->adjust_tool_window;
#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp19_ = _tmp18_->tint_slider;
#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_range_get_type (), GtkRange), (gdouble) tint_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (transformation, TYPE_TINT_TRANSFORMATION, TintTransformation)));
#line 2934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 17608 "EditingTools.c"
		}
#line 2894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		case PIXEL_TRANSFORMATION_TYPE_TEMPERATURE:
#line 17612 "EditingTools.c"
		{
			EditingToolsAdjustToolAdjustToolWindow* _tmp20_;
			GtkScale* _tmp21_;
#line 2937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp20_ = self->priv->adjust_tool_window;
#line 2937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp21_ = _tmp20_->temperature_slider;
#line 2937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_range_get_type (), GtkRange), (gdouble) temperature_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (transformation, TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformation)));
#line 2939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			break;
#line 17624 "EditingTools.c"
		}
		default:
		{
#line 2942 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			g_error ("EditingTools.vala:2942: Unknown adjustment: %d", (gint) pixel_transformation_get_transformation_type (transformation));
#line 17630 "EditingTools.c"
		}
	}
}


static void
editing_tools_adjust_tool_init_fp_pixel_cache (EditingToolsAdjustTool* self,
                                               GdkPixbuf* source)
{
	gint source_width = 0;
	gint source_height = 0;
	gint source_num_channels = 0;
	gint source_rowstride = 0;
	guchar* source_pixels = NULL;
	guint8* _tmp0_;
	gint source_pixels_length1;
	gint _source_pixels_size_;
	gint _tmp1_;
	gint _tmp2_;
	gfloat* _tmp3_;
	gint cache_pixel_index = 0;
#line 2946 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
#line 2946 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (GDK_IS_PIXBUF (source));
#line 2947 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	source_width = gdk_pixbuf_get_width (source);
#line 2948 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	source_height = gdk_pixbuf_get_height (source);
#line 2949 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	source_num_channels = gdk_pixbuf_get_n_channels (source);
#line 2950 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	source_rowstride = gdk_pixbuf_get_rowstride (source);
#line 2951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = gdk_pixbuf_get_pixels (source);
#line 2951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	source_pixels = _tmp0_;
#line 2951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	source_pixels_length1 = -1;
#line 2951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_source_pixels_size_ = source_pixels_length1;
#line 2953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = source_width;
#line 2953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = source_height;
#line 2953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = g_new0 (gfloat, (3 * _tmp1_) * _tmp2_);
#line 2953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache = (g_free (self->priv->fp_pixel_cache), NULL);
#line 2953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache = _tmp3_;
#line 2953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache_length1 = (3 * _tmp1_) * _tmp2_;
#line 2953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->_fp_pixel_cache_size_ = self->priv->fp_pixel_cache_length1;
#line 2954 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	cache_pixel_index = 0;
#line 17688 "EditingTools.c"
	{
		gint j = 0;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		j = 0;
#line 17693 "EditingTools.c"
		{
			gboolean _tmp4_ = FALSE;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			_tmp4_ = TRUE;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
			while (TRUE) {
#line 17700 "EditingTools.c"
				gint _tmp6_;
				gint _tmp7_;
				gint row_start_index = 0;
				gint _tmp8_;
				gint _tmp9_;
				gint row_end_index = 0;
				gint _tmp10_;
				gint _tmp11_;
				gint _tmp12_;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (!_tmp4_) {
#line 17712 "EditingTools.c"
					gint _tmp5_;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp5_ = j;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					j = _tmp5_ + 1;
#line 17718 "EditingTools.c"
				}
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp4_ = FALSE;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp6_ = j;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp7_ = source_height;
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				if (!(_tmp6_ < _tmp7_)) {
#line 2956 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					break;
#line 17730 "EditingTools.c"
				}
#line 2957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp8_ = j;
#line 2957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp9_ = source_rowstride;
#line 2957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				row_start_index = _tmp8_ * _tmp9_;
#line 2958 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp10_ = row_start_index;
#line 2958 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp11_ = source_width;
#line 2958 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				_tmp12_ = source_num_channels;
#line 2958 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
				row_end_index = _tmp10_ + (_tmp11_ * _tmp12_);
#line 17746 "EditingTools.c"
				{
					gint i = 0;
					gint _tmp13_;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					_tmp13_ = row_start_index;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
					i = _tmp13_;
#line 17754 "EditingTools.c"
					{
						gboolean _tmp14_ = FALSE;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						_tmp14_ = TRUE;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
						while (TRUE) {
#line 17761 "EditingTools.c"
							gint _tmp17_;
							gint _tmp18_;
							gfloat* _tmp19_;
							gint _tmp19__length1;
							gint _tmp20_;
							guchar* _tmp21_;
							gint _tmp21__length1;
							gint _tmp22_;
							guchar _tmp23_;
							gfloat _tmp24_;
							gfloat _tmp25_;
							gfloat* _tmp26_;
							gint _tmp26__length1;
							gint _tmp27_;
							guchar* _tmp28_;
							gint _tmp28__length1;
							gint _tmp29_;
							guchar _tmp30_;
							gfloat _tmp31_;
							gfloat _tmp32_;
							gfloat* _tmp33_;
							gint _tmp33__length1;
							gint _tmp34_;
							guchar* _tmp35_;
							gint _tmp35__length1;
							gint _tmp36_;
							guchar _tmp37_;
							gfloat _tmp38_;
							gfloat _tmp39_;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							if (!_tmp14_) {
#line 17793 "EditingTools.c"
								gint _tmp15_;
								gint _tmp16_;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
								_tmp15_ = i;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
								_tmp16_ = source_num_channels;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
								i = _tmp15_ + _tmp16_;
#line 17802 "EditingTools.c"
							}
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp14_ = FALSE;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp17_ = i;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp18_ = row_end_index;
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							if (!(_tmp17_ < _tmp18_)) {
#line 2959 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
								break;
#line 17814 "EditingTools.c"
							}
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp19_ = self->priv->fp_pixel_cache;
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp19__length1 = self->priv->fp_pixel_cache_length1;
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp20_ = cache_pixel_index;
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							cache_pixel_index = _tmp20_ + 1;
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp21_ = source_pixels;
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp21__length1 = source_pixels_length1;
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp22_ = i;
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp23_ = _tmp21_[_tmp22_];
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp24_ = rgb_lookup_table[_tmp23_];
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp19_[_tmp20_] = _tmp24_;
#line 2960 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp25_ = _tmp19_[_tmp20_];
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp26_ = self->priv->fp_pixel_cache;
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp26__length1 = self->priv->fp_pixel_cache_length1;
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp27_ = cache_pixel_index;
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							cache_pixel_index = _tmp27_ + 1;
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp28_ = source_pixels;
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp28__length1 = source_pixels_length1;
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp29_ = i;
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp30_ = _tmp28_[_tmp29_ + 1];
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp31_ = rgb_lookup_table[_tmp30_];
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp26_[_tmp27_] = _tmp31_;
#line 2961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp32_ = _tmp26_[_tmp27_];
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp33_ = self->priv->fp_pixel_cache;
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp33__length1 = self->priv->fp_pixel_cache_length1;
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp34_ = cache_pixel_index;
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							cache_pixel_index = _tmp34_ + 1;
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp35_ = source_pixels;
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp35__length1 = source_pixels_length1;
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp36_ = i;
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp37_ = _tmp35_[_tmp36_ + 2];
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp38_ = rgb_lookup_table[_tmp37_];
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp33_[_tmp34_] = _tmp38_;
#line 2962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
							_tmp39_ = _tmp33_[_tmp34_];
#line 17882 "EditingTools.c"
						}
					}
				}
			}
		}
	}
}


static gboolean
editing_tools_adjust_tool_real_on_keypress (EditingToolsEditingTool* base,
                                            GdkEventKey* event)
{
	EditingToolsAdjustTool * self;
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	guint _tmp2_;
	const gchar* _tmp3_;
#line 2967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
#line 2967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 2968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = event->keyval;
#line 2968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = gdk_keyval_name (_tmp2_);
#line 2968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (g_strcmp0 (_tmp3_, "KP_Enter") == 0) {
#line 2968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = TRUE;
#line 17914 "EditingTools.c"
	} else {
		guint _tmp4_;
		const gchar* _tmp5_;
#line 2969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = event->keyval;
#line 2969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = gdk_keyval_name (_tmp4_);
#line 2969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = g_strcmp0 (_tmp5_, "Enter") == 0;
#line 17924 "EditingTools.c"
	}
#line 2968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_) {
#line 2968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = TRUE;
#line 17930 "EditingTools.c"
	} else {
		guint _tmp6_;
		const gchar* _tmp7_;
#line 2970 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = event->keyval;
#line 2970 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = gdk_keyval_name (_tmp6_);
#line 2970 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp0_ = g_strcmp0 (_tmp7_, "Return") == 0;
#line 17940 "EditingTools.c"
	}
#line 2968 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_) {
#line 2971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		editing_tools_adjust_tool_on_ok (self);
#line 2972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = TRUE;
#line 2972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 17950 "EditingTools.c"
	}
#line 2975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_adjust_tool_parent_class)->on_keypress (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), event);
#line 2975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 17956 "EditingTools.c"
}


static EditingToolsAdjustToolAdjustToolWindow*
editing_tools_adjust_tool_adjust_tool_window_construct (GType object_type,
                                                        GtkWindow* container)
{
	EditingToolsAdjustToolAdjustToolWindow * self = NULL;
	GtkGrid* slider_organizer = NULL;
	GtkGrid* _tmp0_;
	GtkLabel* exposure_label = NULL;
	GtkLabel* _tmp1_;
	GtkScale* _tmp2_;
	GtkScale* _tmp3_;
	GtkScale* _tmp4_;
	GtkScale* _tmp5_;
	GtkLabel* contrast_label = NULL;
	GtkLabel* _tmp6_;
	GtkScale* _tmp7_;
	GtkScale* _tmp8_;
	GtkScale* _tmp9_;
	GtkScale* _tmp10_;
	GtkLabel* saturation_label = NULL;
	GtkLabel* _tmp11_;
	GtkScale* _tmp12_;
	GtkScale* _tmp13_;
	GtkScale* _tmp14_;
	GtkScale* _tmp15_;
	GtkLabel* tint_label = NULL;
	GtkLabel* _tmp16_;
	GtkScale* _tmp17_;
	GtkScale* _tmp18_;
	GtkScale* _tmp19_;
	GtkScale* _tmp20_;
	GtkLabel* temperature_label = NULL;
	GtkLabel* _tmp21_;
	GtkScale* _tmp22_;
	GtkScale* _tmp23_;
	GtkScale* _tmp24_;
	GtkScale* _tmp25_;
	GtkLabel* shadows_label = NULL;
	GtkLabel* _tmp26_;
	GtkScale* _tmp27_;
	GtkScale* _tmp28_;
	GtkScale* _tmp29_;
	GtkScale* _tmp30_;
	GtkLabel* highlights_label = NULL;
	GtkLabel* _tmp31_;
	GtkScale* _tmp32_;
	GtkScale* _tmp33_;
	GtkScale* _tmp34_;
	GtkScale* _tmp35_;
	GtkBox* button_layouter = NULL;
	GtkBox* _tmp36_;
	GtkButton* _tmp37_;
	GtkButton* _tmp38_;
	GtkButton* _tmp39_;
	RGBHistogramManipulator* _tmp40_;
	RGBHistogramManipulator* _tmp41_;
	RGBHistogramManipulator* _tmp42_;
	RGBHistogramManipulator* _tmp43_;
	GtkBox* pane_layouter = NULL;
	GtkBox* _tmp44_;
	RGBHistogramManipulator* _tmp45_;
	RGBHistogramManipulator* _tmp46_;
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
#line 2221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsAdjustToolAdjustToolWindow*) editing_tools_editing_tool_window_construct (object_type, container);
#line 2223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = (GtkGrid*) gtk_grid_new ();
#line 2223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp0_);
#line 2223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	slider_organizer = _tmp0_;
#line 2224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_set_column_homogeneous (slider_organizer, FALSE);
#line 2225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_set_row_spacing (slider_organizer, (guint) 12);
#line 2226 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_set_column_spacing (slider_organizer, (guint) 12);
#line 2227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (slider_organizer, gtk_widget_get_type (), GtkWidget), 12);
#line 2228 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_bottom (G_TYPE_CHECK_INSTANCE_CAST (slider_organizer, gtk_widget_get_type (), GtkWidget), 12);
#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = (GtkLabel*) gtk_label_new_with_mnemonic (_ ("Exposure:"));
#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp1_);
#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	exposure_label = _tmp1_;
#line 2231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (exposure_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
#line 2232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (exposure_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
#line 2233 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (exposure_label, gtk_widget_get_type (), GtkWidget), 0, 0, 1, 1);
#line 2234 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->exposure_slider;
#line 2234 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), 1, 0, 1, 1);
#line 2235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = self->exposure_slider;
#line 2235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
#line 2236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->exposure_slider;
#line 2236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_scale_set_value_pos (_tmp4_, GTK_POS_RIGHT);
#line 2237 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = self->exposure_slider;
#line 2237 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), 0);
#line 2239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = (GtkLabel*) gtk_label_new_with_mnemonic (_ ("Contrast:"));
#line 2239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp6_);
#line 2239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	contrast_label = _tmp6_;
#line 2240 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (contrast_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
#line 2241 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (contrast_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
#line 2242 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (contrast_label, gtk_widget_get_type (), GtkWidget), 0, 1, 1, 1);
#line 2243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->contrast_slider;
#line 2243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), 1, 1, 1, 1);
#line 2244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = self->contrast_slider;
#line 2244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
#line 2245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = self->contrast_slider;
#line 2245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_scale_set_value_pos (_tmp9_, GTK_POS_RIGHT);
#line 2246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = self->contrast_slider;
#line 2246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), 0);
#line 2248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = (GtkLabel*) gtk_label_new_with_mnemonic (_ ("Saturation:"));
#line 2248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp11_);
#line 2248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	saturation_label = _tmp11_;
#line 2249 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (saturation_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
#line 2250 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (saturation_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
#line 2251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (saturation_label, gtk_widget_get_type (), GtkWidget), 0, 2, 1, 1);
#line 2252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = self->saturation_slider;
#line 2252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), 1, 2, 1, 1);
#line 2253 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = self->saturation_slider;
#line 2253 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
#line 2254 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = self->saturation_slider;
#line 2254 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_scale_set_value_pos (_tmp14_, GTK_POS_RIGHT);
#line 2255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp15_ = self->saturation_slider;
#line 2255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), 0);
#line 2257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp16_ = (GtkLabel*) gtk_label_new_with_mnemonic (_ ("Tint:"));
#line 2257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp16_);
#line 2257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	tint_label = _tmp16_;
#line 2258 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (tint_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
#line 2259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (tint_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
#line 2260 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (tint_label, gtk_widget_get_type (), GtkWidget), 0, 3, 1, 1);
#line 2261 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp17_ = self->tint_slider;
#line 2261 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget), 1, 3, 1, 1);
#line 2262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp18_ = self->tint_slider;
#line 2262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
#line 2263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp19_ = self->tint_slider;
#line 2263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_scale_set_value_pos (_tmp19_, GTK_POS_RIGHT);
#line 2264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp20_ = self->tint_slider;
#line 2264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget), 0);
#line 2266 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp21_ = (GtkLabel*) gtk_label_new_with_mnemonic (_ ("Temperature:"));
#line 2266 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp21_);
#line 2266 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	temperature_label = _tmp21_;
#line 2268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (temperature_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
#line 2269 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (temperature_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
#line 2270 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (temperature_label, gtk_widget_get_type (), GtkWidget), 0, 4, 1, 1);
#line 2271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp22_ = self->temperature_slider;
#line 2271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget), 1, 4, 1, 1);
#line 2272 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp23_ = self->temperature_slider;
#line 2272 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
#line 2273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp24_ = self->temperature_slider;
#line 2273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_scale_set_value_pos (_tmp24_, GTK_POS_RIGHT);
#line 2274 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp25_ = self->temperature_slider;
#line 2274 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), 0);
#line 2276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp26_ = (GtkLabel*) gtk_label_new_with_mnemonic (_ ("Shadows:"));
#line 2276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp26_);
#line 2276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	shadows_label = _tmp26_;
#line 2277 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (shadows_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
#line 2278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (shadows_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
#line 2279 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (shadows_label, gtk_widget_get_type (), GtkWidget), 0, 5, 1, 1);
#line 2280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp27_ = self->shadows_slider;
#line 2280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), 1, 5, 1, 1);
#line 2281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp28_ = self->shadows_slider;
#line 2281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
#line 2282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp29_ = self->shadows_slider;
#line 2282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_scale_set_value_pos (_tmp29_, GTK_POS_RIGHT);
#line 2285 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp30_ = self->shadows_slider;
#line 2285 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_widget_get_type (), GtkWidget), 5);
#line 2287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp31_ = (GtkLabel*) gtk_label_new_with_mnemonic (_ ("Highlights:"));
#line 2287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp31_);
#line 2287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	highlights_label = _tmp31_;
#line 2288 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (highlights_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
#line 2289 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (highlights_label, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
#line 2290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (highlights_label, gtk_widget_get_type (), GtkWidget), 0, 6, 1, 1);
#line 2291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp32_ = self->highlights_slider;
#line 2291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget), 1, 6, 1, 1);
#line 2292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp33_ = self->highlights_slider;
#line 2292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
#line 2293 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp34_ = self->highlights_slider;
#line 2293 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_scale_set_value_pos (_tmp34_, GTK_POS_RIGHT);
#line 2294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp35_ = self->highlights_slider;
#line 2294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_widget_get_type (), GtkWidget), 0);
#line 2296 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp36_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
#line 2296 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp36_);
#line 2296 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	button_layouter = _tmp36_;
#line 2297 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_box_set_homogeneous (button_layouter, TRUE);
#line 2298 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp37_ = self->cancel_button;
#line 2298 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_box_pack_start (button_layouter, G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 1);
#line 2299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp38_ = self->reset_button;
#line 2299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_box_pack_start (button_layouter, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 1);
#line 2300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp39_ = self->ok_button;
#line 2300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_box_pack_start (button_layouter, G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 1);
#line 2302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp40_ = self->histogram_manipulator;
#line 2302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_widget_get_type (), GtkWidget), 12);
#line 2303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp41_ = self->histogram_manipulator;
#line 2303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_widget_get_type (), GtkWidget), 12);
#line 2304 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp42_ = self->histogram_manipulator;
#line 2304 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_top (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_widget_get_type (), GtkWidget), 12);
#line 2305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp43_ = self->histogram_manipulator;
#line 2305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_widget_set_margin_bottom (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_widget_get_type (), GtkWidget), 8);
#line 2307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp44_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
#line 2307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp44_);
#line 2307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pane_layouter = _tmp44_;
#line 2308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp45_ = self->histogram_manipulator;
#line 2308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (pane_layouter, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, gtk_widget_get_type (), GtkWidget));
#line 2309 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (pane_layouter, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (slider_organizer, gtk_widget_get_type (), GtkWidget));
#line 2310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (pane_layouter, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (button_layouter, gtk_widget_get_type (), GtkWidget));
#line 2311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp46_ = self->histogram_manipulator;
#line 2311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_box_set_child_packing (pane_layouter, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget), FALSE, TRUE, (guint) 0, GTK_PACK_START);
#line 2313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (pane_layouter, gtk_widget_get_type (), GtkWidget));
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (pane_layouter);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (button_layouter);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (highlights_label);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (shadows_label);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (temperature_label);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (tint_label);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (saturation_label);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (contrast_label);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (exposure_label);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (slider_organizer);
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 18316 "EditingTools.c"
}


static EditingToolsAdjustToolAdjustToolWindow*
editing_tools_adjust_tool_adjust_tool_window_new (GtkWindow* container)
{
#line 2220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_adjust_tool_adjust_tool_window_construct (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, container);
#line 18325 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_tool_window_class_init (EditingToolsAdjustToolAdjustToolWindowClass * klass)
{
#line 2191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_adjust_tool_window_parent_class = g_type_class_peek_parent (klass);
#line 2191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_adjust_tool_window_finalize;
#line 18336 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_tool_window_instance_init (EditingToolsAdjustToolAdjustToolWindow * self)
{
	GtkScale* _tmp0_;
	GtkScale* _tmp1_;
	GtkScale* _tmp2_;
	GtkScale* _tmp3_;
	GtkScale* _tmp4_;
	GtkScale* _tmp5_;
	GtkScale* _tmp6_;
	GtkButton* _tmp7_;
	GtkButton* _tmp8_;
	GtkButton* _tmp9_;
	RGBHistogramManipulator* _tmp10_;
#line 2192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) EXPOSURE_TRANSFORMATION_MIN_PARAMETER, (gdouble) EXPOSURE_TRANSFORMATION_MAX_PARAMETER, 1.0);
#line 2192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp0_);
#line 2192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->exposure_slider = _tmp0_;
#line 2195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) CONTRAST_TRANSFORMATION_MIN_PARAMETER, (gdouble) CONTRAST_TRANSFORMATION_MAX_PARAMETER, 1.0);
#line 2195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp1_);
#line 2195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->contrast_slider = _tmp1_;
#line 2198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) SATURATION_TRANSFORMATION_MIN_PARAMETER, (gdouble) SATURATION_TRANSFORMATION_MAX_PARAMETER, 1.0);
#line 2198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp2_);
#line 2198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->saturation_slider = _tmp2_;
#line 2201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) TINT_TRANSFORMATION_MIN_PARAMETER, (gdouble) TINT_TRANSFORMATION_MAX_PARAMETER, 1.0);
#line 2201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp3_);
#line 2201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->tint_slider = _tmp3_;
#line 2203 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) TEMPERATURE_TRANSFORMATION_MIN_PARAMETER, (gdouble) TEMPERATURE_TRANSFORMATION_MAX_PARAMETER, 1.0);
#line 2203 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp4_);
#line 2203 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->temperature_slider = _tmp4_;
#line 2207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) SHADOW_DETAIL_TRANSFORMATION_MIN_PARAMETER, (gdouble) SHADOW_DETAIL_TRANSFORMATION_MAX_PARAMETER, 1.0);
#line 2207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp5_);
#line 2207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->shadows_slider = _tmp5_;
#line 2211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) HIGHLIGHT_DETAIL_TRANSFORMATION_MIN_PARAMETER, (gdouble) HIGHLIGHT_DETAIL_TRANSFORMATION_MAX_PARAMETER, 1.0);
#line 2211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp6_);
#line 2211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->highlights_slider = _tmp6_;
#line 2215 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_OK_LABEL);
#line 2215 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp7_);
#line 2215 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->ok_button = _tmp7_;
#line 2216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = (GtkButton*) gtk_button_new_with_mnemonic (_ ("_Reset"));
#line 2216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp8_);
#line 2216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->reset_button = _tmp8_;
#line 2217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL);
#line 2217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp9_);
#line 2217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->cancel_button = _tmp9_;
#line 2218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = rgb_histogram_manipulator_new ();
#line 2218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_object_ref_sink (_tmp10_);
#line 2218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->histogram_manipulator = _tmp10_;
#line 18420 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_tool_window_finalize (GObject * obj)
{
	EditingToolsAdjustToolAdjustToolWindow * self;
#line 2191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, EditingToolsAdjustToolAdjustToolWindow);
#line 2192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->exposure_slider);
#line 2195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->contrast_slider);
#line 2198 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->saturation_slider);
#line 2201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->tint_slider);
#line 2203 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->temperature_slider);
#line 2207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->shadows_slider);
#line 2211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->highlights_slider);
#line 2215 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->ok_button);
#line 2216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->reset_button);
#line 2217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->cancel_button);
#line 2218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->histogram_manipulator);
#line 2191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (editing_tools_adjust_tool_adjust_tool_window_parent_class)->finalize (obj);
#line 18454 "EditingTools.c"
}


static GType
editing_tools_adjust_tool_adjust_tool_window_get_type (void)
{
	static volatile gsize editing_tools_adjust_tool_adjust_tool_window_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_adjust_tool_adjust_tool_window_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolAdjustToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_adjust_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolAdjustToolWindow), 0, (GInstanceInitFunc) editing_tools_adjust_tool_adjust_tool_window_instance_init, NULL };
		GType editing_tools_adjust_tool_adjust_tool_window_type_id;
		editing_tools_adjust_tool_adjust_tool_window_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, "EditingToolsAdjustToolAdjustToolWindow", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_adjust_tool_adjust_tool_window_type_id__volatile, editing_tools_adjust_tool_adjust_tool_window_type_id);
	}
	return editing_tools_adjust_tool_adjust_tool_window_type_id__volatile;
}


static void
_editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated_editing_tools_editing_tool_deactivated (EditingToolsEditingTool* _sender,
                                                                                                            gpointer self)
{
#line 2329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated ((EditingToolsAdjustToolAdjustToolCommand*) self);
#line 18478 "EditingTools.c"
}


static EditingToolsAdjustToolAdjustToolCommand*
editing_tools_adjust_tool_adjust_tool_command_construct (GType object_type,
                                                         EditingToolsAdjustTool* owner,
                                                         const gchar* name,
                                                         const gchar* explanation)
{
	EditingToolsAdjustToolAdjustToolCommand * self = NULL;
#line 2320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (owner), NULL);
#line 2320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 2320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (explanation != NULL, NULL);
#line 2321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsAdjustToolAdjustToolCommand*) command_construct (object_type, name, explanation);
#line 2323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->owner = owner;
#line 2324 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (owner, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), "deactivated", (GCallback) _editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated_editing_tools_editing_tool_deactivated, self, 0);
#line 2320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 18503 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated (EditingToolsAdjustToolAdjustToolCommand* self)
{
	CommandManager* _tmp0_;
	CommandManager* _tmp1_;
#line 2332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_if_fail (EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_COMMAND (self));
#line 2335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = app_window_get_command_manager ();
#line 2335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _tmp0_;
#line 2335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command_manager_reset (_tmp1_);
#line 2335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_command_manager_unref0 (_tmp1_);
#line 18522 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_tool_command_class_init (EditingToolsAdjustToolAdjustToolCommandClass * klass)
{
#line 2317 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_adjust_tool_command_parent_class = g_type_class_peek_parent (klass);
#line 2317 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_adjust_tool_command_finalize;
#line 18533 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_tool_command_instance_init (EditingToolsAdjustToolAdjustToolCommand * self)
{
}


static void
editing_tools_adjust_tool_adjust_tool_command_finalize (GObject * obj)
{
	EditingToolsAdjustToolAdjustToolCommand * self;
	EditingToolsAdjustTool* _tmp0_;
#line 2317 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand);
#line 2328 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->owner;
#line 2328 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ != NULL) {
#line 18554 "EditingTools.c"
		EditingToolsAdjustTool* _tmp1_;
		guint _tmp2_;
#line 2329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = self->owner;
#line 2329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_parse_name ("deactivated", EDITING_TOOLS_TYPE_EDITING_TOOL, &_tmp2_, NULL, FALSE);
#line 2329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated_editing_tools_editing_tool_deactivated, self);
#line 18563 "EditingTools.c"
	}
#line 2317 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (editing_tools_adjust_tool_adjust_tool_command_parent_class)->finalize (obj);
#line 18567 "EditingTools.c"
}


static GType
editing_tools_adjust_tool_adjust_tool_command_get_type (void)
{
	static volatile gsize editing_tools_adjust_tool_adjust_tool_command_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_adjust_tool_adjust_tool_command_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolAdjustToolCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_adjust_tool_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolAdjustToolCommand), 0, (GInstanceInitFunc) editing_tools_adjust_tool_adjust_tool_command_instance_init, NULL };
		GType editing_tools_adjust_tool_adjust_tool_command_type_id;
		editing_tools_adjust_tool_adjust_tool_command_type_id = g_type_register_static (TYPE_COMMAND, "EditingToolsAdjustToolAdjustToolCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&editing_tools_adjust_tool_adjust_tool_command_type_id__volatile, editing_tools_adjust_tool_adjust_tool_command_type_id);
	}
	return editing_tools_adjust_tool_adjust_tool_command_type_id__volatile;
}


static EditingToolsAdjustToolAdjustResetCommand*
editing_tools_adjust_tool_adjust_reset_command_construct (GType object_type,
                                                          EditingToolsAdjustTool* owner,
                                                          PixelTransformationBundle* current)
{
	EditingToolsAdjustToolAdjustResetCommand * self = NULL;
	PixelTransformationBundle* _tmp0_;
	PixelTransformationBundle* _tmp1_;
	PixelTransformationBundle* _tmp2_;
#line 2343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (owner), NULL);
#line 2343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (current), NULL);
#line 2344 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsAdjustToolAdjustResetCommand*) editing_tools_adjust_tool_adjust_tool_command_construct (object_type, owner, _ ("Reset Colors"), _ ("Reset all color adjustments to original"));
#line 2346 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = pixel_transformation_bundle_copy (current);
#line 2346 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->original);
#line 2346 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->original = _tmp0_;
#line 2347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = pixel_transformation_bundle_new ();
#line 2347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->reset);
#line 2347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->reset = _tmp1_;
#line 2348 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->reset;
#line 2348 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	pixel_transformation_bundle_set_to_identity (_tmp2_);
#line 2343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 18618 "EditingTools.c"
}


static EditingToolsAdjustToolAdjustResetCommand*
editing_tools_adjust_tool_adjust_reset_command_new (EditingToolsAdjustTool* owner,
                                                    PixelTransformationBundle* current)
{
#line 2343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_adjust_tool_adjust_reset_command_construct (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, owner, current);
#line 18628 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_reset_command_real_execute (Command* base)
{
	EditingToolsAdjustToolAdjustResetCommand * self;
	EditingToolsAdjustTool* _tmp0_;
	PixelTransformationBundle* _tmp1_;
#line 2351 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand);
#line 2352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->reset;
#line 2352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_set_adjustments (_tmp0_, _tmp1_);
#line 18646 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_reset_command_real_undo (Command* base)
{
	EditingToolsAdjustToolAdjustResetCommand * self;
	EditingToolsAdjustTool* _tmp0_;
	PixelTransformationBundle* _tmp1_;
#line 2355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand);
#line 2356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->original;
#line 2356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_set_adjustments (_tmp0_, _tmp1_);
#line 18664 "EditingTools.c"
}


static gboolean
editing_tools_adjust_tool_adjust_reset_command_real_compress (Command* base,
                                                              Command* command)
{
	EditingToolsAdjustToolAdjustResetCommand * self;
	gboolean result = FALSE;
	EditingToolsAdjustToolAdjustResetCommand* reset_command = NULL;
	EditingToolsAdjustToolAdjustResetCommand* _tmp0_;
	EditingToolsAdjustToolAdjustResetCommand* _tmp1_;
	EditingToolsAdjustToolAdjustResetCommand* _tmp2_;
	EditingToolsAdjustTool* _tmp3_;
	EditingToolsAdjustTool* _tmp4_;
#line 2359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand);
#line 2359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_COMMAND (command), FALSE);
#line 2360 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (command, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND) ? ((EditingToolsAdjustToolAdjustResetCommand*) command) : NULL);
#line 2360 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	reset_command = _tmp0_;
#line 2361 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = reset_command;
#line 2361 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_ == NULL) {
#line 2362 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = FALSE;
#line 2362 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (reset_command);
#line 2362 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 18698 "EditingTools.c"
	}
#line 2364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = reset_command;
#line 2364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2364 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_ != _tmp4_) {
#line 2365 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = FALSE;
#line 2365 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (reset_command);
#line 2365 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 18714 "EditingTools.c"
	}
#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = TRUE;
#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (reset_command);
#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 18722 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_reset_command_class_init (EditingToolsAdjustToolAdjustResetCommandClass * klass)
{
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_adjust_reset_command_parent_class = g_type_class_peek_parent (klass);
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsAdjustToolAdjustResetCommandPrivate));
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->execute = (void (*) (Command *)) editing_tools_adjust_tool_adjust_reset_command_real_execute;
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->undo = (void (*) (Command *)) editing_tools_adjust_tool_adjust_reset_command_real_undo;
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->compress = (gboolean (*) (Command *, Command*)) editing_tools_adjust_tool_adjust_reset_command_real_compress;
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_adjust_reset_command_finalize;
#line 18741 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_reset_command_instance_init (EditingToolsAdjustToolAdjustResetCommand * self)
{
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_GET_PRIVATE (self);
#line 18750 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_reset_command_finalize (GObject * obj)
{
	EditingToolsAdjustToolAdjustResetCommand * self;
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand);
#line 2340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->original);
#line 2341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->reset);
#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (editing_tools_adjust_tool_adjust_reset_command_parent_class)->finalize (obj);
#line 18766 "EditingTools.c"
}


static GType
editing_tools_adjust_tool_adjust_reset_command_get_type (void)
{
	static volatile gsize editing_tools_adjust_tool_adjust_reset_command_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_adjust_tool_adjust_reset_command_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolAdjustResetCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_adjust_reset_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolAdjustResetCommand), 0, (GInstanceInitFunc) editing_tools_adjust_tool_adjust_reset_command_instance_init, NULL };
		GType editing_tools_adjust_tool_adjust_reset_command_type_id;
		editing_tools_adjust_tool_adjust_reset_command_type_id = g_type_register_static (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, "EditingToolsAdjustToolAdjustResetCommand", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_adjust_tool_adjust_reset_command_type_id__volatile, editing_tools_adjust_tool_adjust_reset_command_type_id);
	}
	return editing_tools_adjust_tool_adjust_reset_command_type_id__volatile;
}


static EditingToolsAdjustToolSliderAdjustmentCommand*
editing_tools_adjust_tool_slider_adjustment_command_construct (GType object_type,
                                                               EditingToolsAdjustTool* owner,
                                                               PixelTransformation* old_transformation,
                                                               PixelTransformation* new_transformation,
                                                               const gchar* name)
{
	EditingToolsAdjustToolSliderAdjustmentCommand * self = NULL;
	PixelTransformation* _tmp0_;
	PixelTransformation* _tmp1_;
	PixelTransformationType _tmp2_;
#line 2377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (owner), NULL);
#line 2377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (old_transformation), NULL);
#line 2377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (new_transformation), NULL);
#line 2377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 2379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsAdjustToolSliderAdjustmentCommand*) editing_tools_adjust_tool_adjust_tool_command_construct (object_type, owner, name, name);
#line 2381 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = _pixel_transformation_ref0 (old_transformation);
#line 2381 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (self->priv->old_transformation);
#line 2381 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->old_transformation = _tmp0_;
#line 2382 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = _pixel_transformation_ref0 (new_transformation);
#line 2382 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (self->priv->new_transformation);
#line 2382 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->new_transformation = _tmp1_;
#line 2383 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->transformation_type = pixel_transformation_get_transformation_type (old_transformation);
#line 2384 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = self->priv->transformation_type;
#line 2384 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_vala_assert (pixel_transformation_get_transformation_type (new_transformation) == _tmp2_, "new_transformation.get_transformation_type() == transformation_type");
#line 2377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 18825 "EditingTools.c"
}


static EditingToolsAdjustToolSliderAdjustmentCommand*
editing_tools_adjust_tool_slider_adjustment_command_new (EditingToolsAdjustTool* owner,
                                                         PixelTransformation* old_transformation,
                                                         PixelTransformation* new_transformation,
                                                         const gchar* name)
{
#line 2377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_adjust_tool_slider_adjustment_command_construct (EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, owner, old_transformation, new_transformation, name);
#line 18837 "EditingTools.c"
}


static void
editing_tools_adjust_tool_slider_adjustment_command_real_execute (Command* base)
{
	EditingToolsAdjustToolSliderAdjustmentCommand * self;
	EditingToolsAdjustTool* _tmp0_;
	PixelTransformation* _tmp1_;
	EditingToolsAdjustTool* _tmp2_;
	EditingToolsPhotoCanvas* _tmp3_;
#line 2387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
#line 2389 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2389 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->new_transformation;
#line 2389 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_update_transformation (_tmp0_, _tmp1_);
#line 2390 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2390 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2390 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp3_);
#line 18863 "EditingTools.c"
}


static void
editing_tools_adjust_tool_slider_adjustment_command_real_undo (Command* base)
{
	EditingToolsAdjustToolSliderAdjustmentCommand * self;
	EditingToolsAdjustTool* _tmp0_;
	PixelTransformation* _tmp1_;
	EditingToolsAdjustTool* _tmp2_;
	EditingToolsAdjustTool* _tmp3_;
	PixelTransformation* _tmp4_;
	EditingToolsAdjustTool* _tmp5_;
	EditingToolsAdjustTool* _tmp6_;
	EditingToolsPhotoCanvas* _tmp7_;
#line 2393 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
#line 2394 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2394 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->old_transformation;
#line 2394 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_update_transformation (_tmp0_, _tmp1_);
#line 2396 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2396 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_unbind_window_handlers (_tmp2_);
#line 2397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->old_transformation;
#line 2397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_update_slider (_tmp3_, _tmp4_);
#line 2398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_bind_window_handlers (_tmp5_);
#line 2400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp7_);
#line 18907 "EditingTools.c"
}


static void
editing_tools_adjust_tool_slider_adjustment_command_real_redo (Command* base)
{
	EditingToolsAdjustToolSliderAdjustmentCommand * self;
	EditingToolsAdjustTool* _tmp0_;
	PixelTransformation* _tmp1_;
	EditingToolsAdjustTool* _tmp2_;
	EditingToolsAdjustTool* _tmp3_;
	PixelTransformation* _tmp4_;
	EditingToolsAdjustTool* _tmp5_;
	EditingToolsAdjustTool* _tmp6_;
	EditingToolsPhotoCanvas* _tmp7_;
#line 2403 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
#line 2404 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2404 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->new_transformation;
#line 2404 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_update_transformation (_tmp0_, _tmp1_);
#line 2406 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2406 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_unbind_window_handlers (_tmp2_);
#line 2407 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2407 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->new_transformation;
#line 2407 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_update_slider (_tmp3_, _tmp4_);
#line 2408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_bind_window_handlers (_tmp5_);
#line 2410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_photo_canvas_repaint (_tmp7_);
#line 18951 "EditingTools.c"
}


static gboolean
editing_tools_adjust_tool_slider_adjustment_command_real_compress (Command* base,
                                                                   Command* command)
{
	EditingToolsAdjustToolSliderAdjustmentCommand * self;
	gboolean result = FALSE;
	EditingToolsAdjustToolSliderAdjustmentCommand* slider_adjustment = NULL;
	EditingToolsAdjustToolSliderAdjustmentCommand* _tmp0_;
	EditingToolsAdjustToolSliderAdjustmentCommand* _tmp1_;
	EditingToolsAdjustToolSliderAdjustmentCommand* _tmp2_;
	EditingToolsAdjustTool* _tmp3_;
	EditingToolsAdjustTool* _tmp4_;
	EditingToolsAdjustToolSliderAdjustmentCommand* _tmp5_;
	PixelTransformationType _tmp6_;
	PixelTransformationType _tmp7_;
	EditingToolsAdjustToolSliderAdjustmentCommand* _tmp8_;
	EditingToolsAdjustToolSliderAdjustmentCommand* _tmp9_;
	PixelTransformation* _tmp10_;
	PixelTransformation* _tmp11_;
#line 2413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
#line 2413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_COMMAND (command), FALSE);
#line 2414 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (command, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND) ? ((EditingToolsAdjustToolSliderAdjustmentCommand*) command) : NULL);
#line 2414 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	slider_adjustment = _tmp0_;
#line 2415 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = slider_adjustment;
#line 2415 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_ == NULL) {
#line 2416 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = FALSE;
#line 2416 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (slider_adjustment);
#line 2416 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 18992 "EditingTools.c"
	}
#line 2419 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp2_ = slider_adjustment;
#line 2419 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2419 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2419 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp3_ != _tmp4_) {
#line 2420 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = FALSE;
#line 2420 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (slider_adjustment);
#line 2420 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 19008 "EditingTools.c"
	}
#line 2423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp5_ = slider_adjustment;
#line 2423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp6_ = _tmp5_->priv->transformation_type;
#line 2423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp7_ = self->priv->transformation_type;
#line 2423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp6_ != _tmp7_) {
#line 2424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = FALSE;
#line 2424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (slider_adjustment);
#line 2424 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 19024 "EditingTools.c"
	}
#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp8_ = slider_adjustment;
#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	command_execute (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_COMMAND, Command));
#line 2430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp9_ = slider_adjustment;
#line 2430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _tmp9_->priv->new_transformation;
#line 2430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = _pixel_transformation_ref0 (_tmp10_);
#line 2430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (self->priv->new_transformation);
#line 2430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->new_transformation = _tmp11_;
#line 2432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = TRUE;
#line 2432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (slider_adjustment);
#line 2432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 19046 "EditingTools.c"
}


static void
editing_tools_adjust_tool_slider_adjustment_command_class_init (EditingToolsAdjustToolSliderAdjustmentCommandClass * klass)
{
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_slider_adjustment_command_parent_class = g_type_class_peek_parent (klass);
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsAdjustToolSliderAdjustmentCommandPrivate));
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->execute = (void (*) (Command *)) editing_tools_adjust_tool_slider_adjustment_command_real_execute;
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->undo = (void (*) (Command *)) editing_tools_adjust_tool_slider_adjustment_command_real_undo;
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->redo = (void (*) (Command *)) editing_tools_adjust_tool_slider_adjustment_command_real_redo;
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->compress = (gboolean (*) (Command *, Command*)) editing_tools_adjust_tool_slider_adjustment_command_real_compress;
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_slider_adjustment_command_finalize;
#line 19067 "EditingTools.c"
}


static void
editing_tools_adjust_tool_slider_adjustment_command_instance_init (EditingToolsAdjustToolSliderAdjustmentCommand * self)
{
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_GET_PRIVATE (self);
#line 19076 "EditingTools.c"
}


static void
editing_tools_adjust_tool_slider_adjustment_command_finalize (GObject * obj)
{
	EditingToolsAdjustToolSliderAdjustmentCommand * self;
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
#line 2374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (self->priv->new_transformation);
#line 2375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_unref0 (self->priv->old_transformation);
#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (editing_tools_adjust_tool_slider_adjustment_command_parent_class)->finalize (obj);
#line 19092 "EditingTools.c"
}


static GType
editing_tools_adjust_tool_slider_adjustment_command_get_type (void)
{
	static volatile gsize editing_tools_adjust_tool_slider_adjustment_command_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_adjust_tool_slider_adjustment_command_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolSliderAdjustmentCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_slider_adjustment_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolSliderAdjustmentCommand), 0, (GInstanceInitFunc) editing_tools_adjust_tool_slider_adjustment_command_instance_init, NULL };
		GType editing_tools_adjust_tool_slider_adjustment_command_type_id;
		editing_tools_adjust_tool_slider_adjustment_command_type_id = g_type_register_static (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, "EditingToolsAdjustToolSliderAdjustmentCommand", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_adjust_tool_slider_adjustment_command_type_id__volatile, editing_tools_adjust_tool_slider_adjustment_command_type_id);
	}
	return editing_tools_adjust_tool_slider_adjustment_command_type_id__volatile;
}


static EditingToolsAdjustToolAdjustEnhanceCommand*
editing_tools_adjust_tool_adjust_enhance_command_construct (GType object_type,
                                                            EditingToolsAdjustTool* owner,
                                                            Photo* photo)
{
	EditingToolsAdjustToolAdjustEnhanceCommand * self = NULL;
	Photo* _tmp0_;
	PixelTransformationBundle* _tmp1_;
#line 2441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (owner), NULL);
#line 2441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_PHOTO (photo), NULL);
#line 2442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = (EditingToolsAdjustToolAdjustEnhanceCommand*) editing_tools_adjust_tool_adjust_tool_command_construct (object_type, owner, RESOURCES_ENHANCE_LABEL, RESOURCES_ENHANCE_TOOLTIP);
#line 2444 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = _g_object_ref0 (photo);
#line 2444 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->photo);
#line 2444 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->photo = _tmp0_;
#line 2445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = photo_get_color_adjustments (photo);
#line 2445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->original);
#line 2445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->original = _tmp1_;
#line 2441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return self;
#line 19138 "EditingTools.c"
}


static EditingToolsAdjustToolAdjustEnhanceCommand*
editing_tools_adjust_tool_adjust_enhance_command_new (EditingToolsAdjustTool* owner,
                                                      Photo* photo)
{
#line 2441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return editing_tools_adjust_tool_adjust_enhance_command_construct (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, owner, photo);
#line 19148 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_enhance_command_real_execute (Command* base)
{
	EditingToolsAdjustToolAdjustEnhanceCommand * self;
	PixelTransformationBundle* _tmp0_;
	EditingToolsAdjustTool* _tmp3_;
	PixelTransformationBundle* _tmp4_;
#line 2448 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand);
#line 2449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = self->priv->enhanced;
#line 2449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp0_ == NULL) {
#line 19165 "EditingTools.c"
		Photo* _tmp1_;
		PixelTransformationBundle* _tmp2_;
#line 2450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp1_ = self->priv->photo;
#line 2450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = photo_get_enhance_transformations (_tmp1_);
#line 2450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_pixel_transformation_bundle_unref0 (self->priv->enhanced);
#line 2450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		self->priv->enhanced = _tmp2_;
#line 19176 "EditingTools.c"
	}
#line 2452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp4_ = self->priv->enhanced;
#line 2452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_set_adjustments (_tmp3_, _tmp4_);
#line 19184 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_enhance_command_real_undo (Command* base)
{
	EditingToolsAdjustToolAdjustEnhanceCommand * self;
	EditingToolsAdjustTool* _tmp0_;
	PixelTransformationBundle* _tmp1_;
#line 2455 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand);
#line 2456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = self->priv->original;
#line 2456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_set_adjustments (_tmp0_, _tmp1_);
#line 19202 "EditingTools.c"
}


static gboolean
editing_tools_adjust_tool_adjust_enhance_command_real_compress (Command* base,
                                                                Command* command)
{
	EditingToolsAdjustToolAdjustEnhanceCommand * self;
	gboolean result = FALSE;
	EnhanceSingleCommand* enhance_single = NULL;
	EnhanceSingleCommand* _tmp0_;
	EnhanceSingleCommand* _tmp1_;
	EditingToolsAdjustToolAdjustEnhanceCommand* enhance_command = NULL;
	EditingToolsAdjustToolAdjustEnhanceCommand* _tmp10_;
	EditingToolsAdjustToolAdjustEnhanceCommand* _tmp11_;
	EditingToolsAdjustToolAdjustEnhanceCommand* _tmp12_;
	EditingToolsAdjustTool* _tmp13_;
	EditingToolsAdjustTool* _tmp14_;
#line 2459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand);
#line 2459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_return_val_if_fail (IS_COMMAND (command), FALSE);
#line 2461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp0_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (command, TYPE_ENHANCE_SINGLE_COMMAND) ? ((EnhanceSingleCommand*) command) : NULL);
#line 2461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	enhance_single = _tmp0_;
#line 2462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp1_ = enhance_single;
#line 2462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp1_ != NULL) {
#line 19233 "EditingTools.c"
		Photo* photo = NULL;
		EnhanceSingleCommand* _tmp2_;
		DataSource* _tmp3_;
		Photo* _tmp4_;
		EditingToolsAdjustTool* _tmp5_;
		EditingToolsPhotoCanvas* _tmp6_;
		Photo* _tmp7_;
		Photo* _tmp8_;
		gboolean _tmp9_;
#line 2463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp2_ = enhance_single;
#line 2463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp3_ = single_data_source_command_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand));
#line 2463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PHOTO, Photo);
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp4_ = photo;
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp7_ = editing_tools_photo_canvas_get_photo (_tmp6_);
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp8_ = _tmp7_;
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_tmp9_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_SOURCE, DataSource));
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (_tmp8_);
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = _tmp9_;
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (photo);
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (enhance_single);
#line 2467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 19271 "EditingTools.c"
	}
#line 2470 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (command, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND) ? ((EditingToolsAdjustToolAdjustEnhanceCommand*) command) : NULL);
#line 2470 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	enhance_command = _tmp10_;
#line 2471 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp11_ = enhance_command;
#line 2471 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp11_ == NULL) {
#line 2472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = FALSE;
#line 2472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (enhance_command);
#line 2472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (enhance_single);
#line 2472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 19289 "EditingTools.c"
	}
#line 2474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp12_ = enhance_command;
#line 2474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_tmp14_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
#line 2474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	if (_tmp13_ != _tmp14_) {
#line 2475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		result = FALSE;
#line 2475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (enhance_command);
#line 2475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		_g_object_unref0 (enhance_single);
#line 2475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
		return result;
#line 19307 "EditingTools.c"
	}
#line 2478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	result = TRUE;
#line 2478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (enhance_command);
#line 2478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (enhance_single);
#line 2478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	return result;
#line 19317 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_enhance_command_class_init (EditingToolsAdjustToolAdjustEnhanceCommandClass * klass)
{
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_adjust_enhance_command_parent_class = g_type_class_peek_parent (klass);
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsAdjustToolAdjustEnhanceCommandPrivate));
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->execute = (void (*) (Command *)) editing_tools_adjust_tool_adjust_enhance_command_real_execute;
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->undo = (void (*) (Command *)) editing_tools_adjust_tool_adjust_enhance_command_real_undo;
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((CommandClass *) klass)->compress = (gboolean (*) (Command *, Command*)) editing_tools_adjust_tool_adjust_enhance_command_real_compress;
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_adjust_enhance_command_finalize;
#line 19336 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_enhance_command_instance_init (EditingToolsAdjustToolAdjustEnhanceCommand * self)
{
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_GET_PRIVATE (self);
#line 2439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->enhanced = NULL;
#line 19347 "EditingTools.c"
}


static void
editing_tools_adjust_tool_adjust_enhance_command_finalize (GObject * obj)
{
	EditingToolsAdjustToolAdjustEnhanceCommand * self;
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand);
#line 2437 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->photo);
#line 2438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->original);
#line 2439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->enhanced);
#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	G_OBJECT_CLASS (editing_tools_adjust_tool_adjust_enhance_command_parent_class)->finalize (obj);
#line 19365 "EditingTools.c"
}


static GType
editing_tools_adjust_tool_adjust_enhance_command_get_type (void)
{
	static volatile gsize editing_tools_adjust_tool_adjust_enhance_command_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_adjust_tool_adjust_enhance_command_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolAdjustEnhanceCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_adjust_enhance_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolAdjustEnhanceCommand), 0, (GInstanceInitFunc) editing_tools_adjust_tool_adjust_enhance_command_instance_init, NULL };
		GType editing_tools_adjust_tool_adjust_enhance_command_type_id;
		editing_tools_adjust_tool_adjust_enhance_command_type_id = g_type_register_static (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, "EditingToolsAdjustToolAdjustEnhanceCommand", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_adjust_tool_adjust_enhance_command_type_id__volatile, editing_tools_adjust_tool_adjust_enhance_command_type_id);
	}
	return editing_tools_adjust_tool_adjust_enhance_command_type_id__volatile;
}


static void
editing_tools_adjust_tool_class_init (EditingToolsAdjustToolClass * klass)
{
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	editing_tools_adjust_tool_parent_class = g_type_class_peek_parent (klass);
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_adjust_tool_finalize;
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	g_type_class_add_private (klass, sizeof (EditingToolsAdjustToolPrivate));
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->activate = (void (*) (EditingToolsEditingTool *, EditingToolsPhotoCanvas*)) editing_tools_adjust_tool_real_activate;
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->get_tool_window = (EditingToolsEditingToolWindow* (*) (EditingToolsEditingTool *)) editing_tools_adjust_tool_real_get_tool_window;
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->deactivate = (void (*) (EditingToolsEditingTool *)) editing_tools_adjust_tool_real_deactivate;
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->paint = (void (*) (EditingToolsEditingTool *, cairo_t*)) editing_tools_adjust_tool_real_paint;
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->get_display_pixbuf = (GdkPixbuf* (*) (EditingToolsEditingTool *, Scaling*, Photo*, Dimensions*, GError**)) editing_tools_adjust_tool_real_get_display_pixbuf;
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	((EditingToolsEditingToolClass *) klass)->on_keypress = (gboolean (*) (EditingToolsEditingTool *, GdkEventKey*)) editing_tools_adjust_tool_real_on_keypress;
#line 19404 "EditingTools.c"
}


static void
editing_tools_adjust_tool_instance_init (EditingToolsAdjustTool * self)
{
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv = EDITING_TOOLS_ADJUST_TOOL_GET_PRIVATE (self);
#line 2482 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->adjust_tool_window = NULL;
#line 2483 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->suppress_effect_redraw = FALSE;
#line 2484 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->draw_to_pixbuf = NULL;
#line 2485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->histogram_pixbuf = NULL;
#line 2486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->virgin_histogram_pixbuf = NULL;
#line 2487 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->transformer = NULL;
#line 2488 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->histogram_transformer = NULL;
#line 2489 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->transformations = NULL;
#line 2490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache = NULL;
#line 2490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache_length1 = 0;
#line 2490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->_fp_pixel_cache_size_ = self->priv->fp_pixel_cache_length1;
#line 2491 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->disable_histogram_refresh = FALSE;
#line 2492 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->temperature_scheduler = NULL;
#line 2493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->tint_scheduler = NULL;
#line 2494 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->contrast_scheduler = NULL;
#line 2495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->saturation_scheduler = NULL;
#line 2496 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->exposure_scheduler = NULL;
#line 2497 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->shadows_scheduler = NULL;
#line 2498 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->highlights_scheduler = NULL;
#line 19451 "EditingTools.c"
}


static void
editing_tools_adjust_tool_finalize (EditingToolsEditingTool * obj)
{
	EditingToolsAdjustTool * self;
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
#line 2482 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->adjust_tool_window);
#line 2484 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->draw_to_pixbuf);
#line 2485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->histogram_pixbuf);
#line 2486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_g_object_unref0 (self->priv->virgin_histogram_pixbuf);
#line 2487 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformer_unref0 (self->priv->transformer);
#line 2488 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformer_unref0 (self->priv->histogram_transformer);
#line 2489 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_pixel_transformation_bundle_unref0 (self->priv->transformations);
#line 2490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	self->priv->fp_pixel_cache = (g_free (self->priv->fp_pixel_cache), NULL);
#line 2492 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_one_shot_scheduler_unref0 (self->priv->temperature_scheduler);
#line 2493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_one_shot_scheduler_unref0 (self->priv->tint_scheduler);
#line 2494 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_one_shot_scheduler_unref0 (self->priv->contrast_scheduler);
#line 2495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_one_shot_scheduler_unref0 (self->priv->saturation_scheduler);
#line 2496 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_one_shot_scheduler_unref0 (self->priv->exposure_scheduler);
#line 2497 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_one_shot_scheduler_unref0 (self->priv->shadows_scheduler);
#line 2498 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	_one_shot_scheduler_unref0 (self->priv->highlights_scheduler);
#line 2187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
	EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_adjust_tool_parent_class)->finalize (obj);
#line 19493 "EditingTools.c"
}


GType
editing_tools_adjust_tool_get_type (void)
{
	static volatile gsize editing_tools_adjust_tool_type_id__volatile = 0;
	if (g_once_init_enter (&editing_tools_adjust_tool_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustTool), 0, (GInstanceInitFunc) editing_tools_adjust_tool_instance_init, NULL };
		GType editing_tools_adjust_tool_type_id;
		editing_tools_adjust_tool_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL, "EditingToolsAdjustTool", &g_define_type_info, 0);
		g_once_init_leave (&editing_tools_adjust_tool_type_id__volatile, editing_tools_adjust_tool_type_id);
	}
	return editing_tools_adjust_tool_type_id__volatile;
}


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


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



