diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-08-20 15:09:31 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-08-20 15:09:31 +0200 |
commit | 143bfc9f801c84428074312d661f8e08803df83b (patch) | |
tree | 59a8a447529bd9ce3807aa8bacef861dc5aafd70 /src/editing_tools/StraightenTool.c | |
parent | 29a7aef998e975b42401cfa96d1b750d91eadf06 (diff) |
Imported Upstream version 0.23.5upstream/0.23.5
Diffstat (limited to 'src/editing_tools/StraightenTool.c')
-rw-r--r-- | src/editing_tools/StraightenTool.c | 3547 |
1 files changed, 3547 insertions, 0 deletions
diff --git a/src/editing_tools/StraightenTool.c b/src/editing_tools/StraightenTool.c new file mode 100644 index 0000000..14b6c61 --- /dev/null +++ b/src/editing_tools/StraightenTool.c @@ -0,0 +1,3547 @@ +/* StraightenTool.c generated by valac 0.32.1, the Vala compiler + * generated from StraightenTool.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. + */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gdk/gdk.h> +#include <cairo.h> +#include <stdlib.h> +#include <string.h> +#include <float.h> +#include <math.h> +#include <glib/gi18n-lib.h> +#include <gobject/gvaluecollector.h> + + +#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_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; + +#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; + +#define TYPE_SCALING (scaling_get_type ()) + +#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ()) + +#define TYPE_DIMENSIONS (dimensions_get_type ()) +typedef struct _Dimensions Dimensions; +typedef struct _Scaling Scaling; + +#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 EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL (editing_tools_straighten_tool_get_type ()) +#define EDITING_TOOLS_STRAIGHTEN_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenToolClass)) +#define EDITING_TOOLS_IS_STRAIGHTEN_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL)) +#define EDITING_TOOLS_IS_STRAIGHTEN_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenToolClass)) + +typedef struct _EditingToolsStraightenTool EditingToolsStraightenTool; +typedef struct _EditingToolsStraightenToolClass EditingToolsStraightenToolClass; +typedef struct _EditingToolsStraightenToolPrivate EditingToolsStraightenToolPrivate; + +#define EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW (editing_tools_straighten_tool_straighten_tool_window_get_type ()) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, EditingToolsStraightenToolStraightenToolWindow)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, EditingToolsStraightenToolStraightenToolWindowClass)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, EditingToolsStraightenToolStraightenToolWindowClass)) + +typedef struct _EditingToolsStraightenToolStraightenToolWindow EditingToolsStraightenToolStraightenToolWindow; +typedef struct _EditingToolsStraightenToolStraightenToolWindowClass EditingToolsStraightenToolStraightenToolWindowClass; + +#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 EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE (editing_tools_straighten_tool_straighten_guide_get_type ()) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuide)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuideClass)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE)) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuideClass)) + +typedef struct _EditingToolsStraightenToolStraightenGuide EditingToolsStraightenToolStraightenGuide; +typedef struct _EditingToolsStraightenToolStraightenGuideClass EditingToolsStraightenToolStraightenGuideClass; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL))) +#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) +#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL))) +#define _editing_tools_straighten_tool_straighten_guide_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_straighten_tool_straighten_guide_unref (var), NULL))) +typedef struct _EditingToolsEditingToolWindowPrivate EditingToolsEditingToolWindowPrivate; +typedef struct _EditingToolsStraightenToolStraightenToolWindowPrivate EditingToolsStraightenToolStraightenToolWindowPrivate; + +#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; + +#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_STRAIGHTEN_COMMAND (straighten_command_get_type ()) +#define STRAIGHTEN_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_STRAIGHTEN_COMMAND, StraightenCommand)) +#define STRAIGHTEN_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_STRAIGHTEN_COMMAND, StraightenCommandClass)) +#define IS_STRAIGHTEN_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_STRAIGHTEN_COMMAND)) +#define IS_STRAIGHTEN_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_STRAIGHTEN_COMMAND)) +#define STRAIGHTEN_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_STRAIGHTEN_COMMAND, StraightenCommandClass)) + +typedef struct _StraightenCommand StraightenCommand; +typedef struct _StraightenCommandClass StraightenCommandClass; + +#define TYPE_BOX (box_get_type ()) +typedef struct _Box Box; +#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) + +#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ()) + +#define TYPE_BACKING_FETCH_MODE (backing_fetch_mode_get_type ()) +#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) +#define _editing_tools_photo_canvas_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_photo_canvas_unref (var), NULL))) +typedef struct _EditingToolsStraightenToolStraightenGuidePrivate EditingToolsStraightenToolStraightenGuidePrivate; +typedef struct _EditingToolsStraightenToolParamSpecStraightenGuide EditingToolsStraightenToolParamSpecStraightenGuide; +#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); + +typedef enum { + SCALE_CONSTRAINT_ORIGINAL, + SCALE_CONSTRAINT_DIMENSIONS, + SCALE_CONSTRAINT_WIDTH, + SCALE_CONSTRAINT_HEIGHT, + SCALE_CONSTRAINT_FILL_VIEWPORT +} ScaleConstraint; + +struct _Dimensions { + gint width; + gint height; +}; + +struct _Scaling { + ScaleConstraint constraint; + gint scale; + Dimensions viewport; + gboolean scale_up; +}; + +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 _EditingToolsStraightenTool { + EditingToolsEditingTool parent_instance; + EditingToolsStraightenToolPrivate * priv; +}; + +struct _EditingToolsStraightenToolClass { + EditingToolsEditingToolClass parent_class; +}; + +struct _EditingToolsStraightenToolPrivate { + EditingToolsStraightenToolStraightenToolWindow* window; + cairo_surface_t* photo_surf; + Dimensions image_dims; + cairo_surface_t* rotate_surf; + cairo_t* rotate_ctx; + Dimensions last_viewport; + gint view_width; + gint view_height; + gdouble photo_angle; + gboolean use_high_qual; + OneShotScheduler* slider_sched; + GdkPoint crop_center; + gint crop_width; + gint crop_height; + EditingToolsStraightenToolStraightenGuide* guide; + GdkPoint rotated_center; + gdouble rotate_scale; + gdouble preview_scale; +}; + +struct _EditingToolsEditingToolWindow { + GtkWindow parent_instance; + EditingToolsEditingToolWindowPrivate * priv; +}; + +struct _EditingToolsEditingToolWindowClass { + GtkWindowClass parent_class; +}; + +struct _EditingToolsStraightenToolStraightenToolWindow { + EditingToolsEditingToolWindow parent_instance; + EditingToolsStraightenToolStraightenToolWindowPrivate * priv; + GtkScale* angle_slider; + GtkLabel* angle_label; + GtkLabel* description_label; + GtkButton* ok_button; + GtkButton* cancel_button; + GtkButton* reset_button; +}; + +struct _EditingToolsStraightenToolStraightenToolWindowClass { + EditingToolsEditingToolWindowClass parent_class; +}; + +struct _Box { + gint left; + gint top; + gint right; + gint bottom; +}; + +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 { + BACKING_FETCH_MODE_SOURCE, + BACKING_FETCH_MODE_BASELINE, + BACKING_FETCH_MODE_MASTER, + BACKING_FETCH_MODE_UNMODIFIED +} BackingFetchMode; + +typedef void (*OneShotCallback) (void* user_data); +struct _EditingToolsStraightenToolStraightenGuide { + GTypeInstance parent_instance; + volatile int ref_count; + EditingToolsStraightenToolStraightenGuidePrivate * priv; +}; + +struct _EditingToolsStraightenToolStraightenGuideClass { + GTypeClass parent_class; + void (*finalize) (EditingToolsStraightenToolStraightenGuide *self); +}; + +struct _EditingToolsStraightenToolStraightenGuidePrivate { + gboolean is_active; + gint x[2]; + gint y[2]; + gdouble angle0; +}; + +struct _EditingToolsStraightenToolParamSpecStraightenGuide { + GParamSpec parent_instance; +}; + + +static gpointer editing_tools_straighten_tool_parent_class = NULL; +static gpointer editing_tools_straighten_tool_straighten_guide_parent_class = NULL; +static gpointer editing_tools_straighten_tool_straighten_tool_window_parent_class = NULL; + +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; +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 editing_tools_editing_tool_window_get_type (void) G_GNUC_CONST; +GType scaling_get_type (void) G_GNUC_CONST; +GType scale_constraint_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); +Scaling* scaling_dup (const Scaling* self); +void scaling_free (Scaling* self); +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 editing_tools_straighten_tool_get_type (void) G_GNUC_CONST; +static GType editing_tools_straighten_tool_straighten_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; +static gpointer editing_tools_straighten_tool_straighten_guide_ref (gpointer instance); +static void editing_tools_straighten_tool_straighten_guide_unref (gpointer instance); +static GParamSpec* editing_tools_straighten_tool_param_spec_straighten_guide (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED; +static void editing_tools_straighten_tool_value_set_straighten_guide (GValue* value, gpointer v_object) G_GNUC_UNUSED; +static void editing_tools_straighten_tool_value_take_straighten_guide (GValue* value, gpointer v_object) G_GNUC_UNUSED; +static gpointer editing_tools_straighten_tool_value_get_straighten_guide (const GValue* value) G_GNUC_UNUSED; +static GType editing_tools_straighten_tool_straighten_guide_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +#define EDITING_TOOLS_STRAIGHTEN_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenToolPrivate)) +enum { + EDITING_TOOLS_STRAIGHTEN_TOOL_DUMMY_PROPERTY +}; +static EditingToolsStraightenToolStraightenGuide* editing_tools_straighten_tool_straighten_guide_new (void); +static EditingToolsStraightenToolStraightenGuide* editing_tools_straighten_tool_straighten_guide_construct (GType object_type); +#define EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_ANGLE (-15.0) +#define EDITING_TOOLS_STRAIGHTEN_TOOL_MAX_ANGLE 15.0 +#define EDITING_TOOLS_STRAIGHTEN_TOOL_INCREMENT 0.1 +#define EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_SLIDER_SIZE 160 +#define EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_LABEL_SIZE 100 +#define EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_BUTTON_SIZE 84 +#define EDITING_TOOLS_STRAIGHTEN_TOOL_TEMP_PIXBUF_SIZE 768 +#define EDITING_TOOLS_STRAIGHTEN_TOOL_REPAINT_ON_STOP_DELAY_MSEC 100 +static EditingToolsStraightenTool* editing_tools_straighten_tool_new (void); +static EditingToolsStraightenTool* editing_tools_straighten_tool_construct (GType object_type); +EditingToolsEditingTool* editing_tools_editing_tool_construct (GType object_type, const gchar* name); +EditingToolsStraightenTool* editing_tools_straighten_tool_factory (void); +gboolean editing_tools_straighten_tool_is_available (Photo* photo, Scaling* scaling); +static void editing_tools_straighten_tool_on_ok_clicked (EditingToolsStraightenTool* self); +Photo* editing_tools_photo_canvas_get_photo (EditingToolsPhotoCanvas* self); +void rotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, gboolean invert, GdkPoint* result); +GType command_get_type (void) G_GNUC_CONST; +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 straighten_command_get_type (void) G_GNUC_CONST; +GType box_get_type (void) G_GNUC_CONST; +Box* box_dup (const Box* self); +void box_free (Box* self); +void box_from_center (GdkPoint* center, gint width, gint height, Box* result); +#define RESOURCES_STRAIGHTEN_LABEL _ ("Straighten") +#define RESOURCES_STRAIGHTEN_TOOLTIP _ ("Straighten the photo") +StraightenCommand* straighten_command_new (Photo* photo, gdouble theta, Box* crop, const gchar* name, const gchar* explanation); +StraightenCommand* straighten_command_construct (GType object_type, Photo* photo, gdouble theta, Box* crop, const gchar* name, const gchar* explanation); +static void editing_tools_straighten_tool_high_qual_repaint (EditingToolsStraightenTool* self); +static void editing_tools_straighten_tool_update_rotated_surface (EditingToolsStraightenTool* self); +void editing_tools_photo_canvas_repaint (EditingToolsPhotoCanvas* self); +static void editing_tools_straighten_tool_on_slider_stopped_delayed (EditingToolsStraightenTool* self); +static void editing_tools_straighten_tool_real_on_left_click (EditingToolsEditingTool* base, gint x, gint y); +static void editing_tools_straighten_tool_straighten_guide_reset (EditingToolsStraightenToolStraightenGuide* self, gint x, gint y, gdouble angle); +static void editing_tools_straighten_tool_real_on_left_released (EditingToolsEditingTool* base, gint x, gint y); +static gboolean editing_tools_straighten_tool_straighten_guide_update (EditingToolsStraightenToolStraightenGuide* self, gint x, gint y); +static gdouble* editing_tools_straighten_tool_straighten_guide_get_angle (EditingToolsStraightenToolStraightenGuide* self); +static void editing_tools_straighten_tool_straighten_guide_clear (EditingToolsStraightenToolStraightenGuide* self); +static void editing_tools_straighten_tool_real_on_motion (EditingToolsEditingTool* base, gint x, gint y, GdkModifierType mask); +static gboolean editing_tools_straighten_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event); +void editing_tools_editing_tool_notify_cancel (EditingToolsEditingTool* self); +gboolean editing_tools_editing_tool_on_keypress (EditingToolsEditingTool* self, GdkEventKey* event); +static void editing_tools_straighten_tool_prepare_image (EditingToolsStraightenTool* self); +void editing_tools_photo_canvas_get_surface_dim (EditingToolsPhotoCanvas* self, Dimensions* result); +void dimensions_with_max (Dimensions *self, gint max_width, gint max_height, Dimensions* result); +static gboolean _dimensions_equal (const Dimensions* s1, const Dimensions* s2); +GType photo_exception_get_type (void) G_GNUC_CONST; +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 scaling_for_viewport (Dimensions* viewport, gboolean scale_up, Scaling* result); +gchar* data_object_to_string (DataObject* self); +static void editing_tools_straighten_tool_adjust_for_rotation (EditingToolsStraightenTool* self); +void compute_arb_rotated_size (gdouble src_width, gdouble src_height, gdouble angle, gdouble* dest_width, gdouble* dest_height); +static void editing_tools_straighten_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas); +void editing_tools_editing_tool_activate (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas); +static void editing_tools_straighten_tool_bind_canvas_handlers (EditingToolsStraightenTool* self, EditingToolsPhotoCanvas* canvas); +void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result); +gboolean photo_get_crop (Photo* self, Box* crop, PhotoException exceptions); +gboolean photo_get_straighten (Photo* self, gdouble* theta); +void derotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, GdkPoint* result); +void box_get_center (Box *self, GdkPoint* result); +gint box_get_width (Box *self); +gint box_get_height (Box *self); +GdkWindow* editing_tools_photo_canvas_get_drawing_window (EditingToolsPhotoCanvas* self); +GtkWindow* editing_tools_photo_canvas_get_container (EditingToolsPhotoCanvas* self); +static EditingToolsStraightenToolStraightenToolWindow* editing_tools_straighten_tool_straighten_tool_window_new (GtkWindow* container); +static EditingToolsStraightenToolStraightenToolWindow* editing_tools_straighten_tool_straighten_tool_window_construct (GType object_type, GtkWindow* container); +static void editing_tools_straighten_tool_bind_window_handlers (EditingToolsStraightenTool* self); +static void editing_tools_straighten_tool_real_deactivate (EditingToolsEditingTool* base); +static void editing_tools_straighten_tool_unbind_window_handlers (EditingToolsStraightenTool* self); +static void editing_tools_straighten_tool_unbind_canvas_handlers (EditingToolsStraightenTool* self, EditingToolsPhotoCanvas* canvas); +void editing_tools_editing_tool_deactivate (EditingToolsEditingTool* self); +static void editing_tools_straighten_tool_on_resized_pixbuf (EditingToolsStraightenTool* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position); +static void _editing_tools_straighten_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self); +static gboolean _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self); +static void _editing_tools_straighten_tool_on_ok_clicked_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_straighten_tool_on_angle_changed (EditingToolsStraightenTool* self); +static void _editing_tools_straighten_tool_on_angle_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self); +static void _editing_tools_straighten_tool_on_slider_stopped_delayed_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 EditingToolsEditingToolWindow* editing_tools_straighten_tool_real_get_tool_window (EditingToolsEditingTool* base); +static void editing_tools_straighten_tool_draw_rotated_source (EditingToolsStraightenTool* self, cairo_surface_t* src_surf, cairo_t* dest_ctx, gint src_width, gint src_height, gdouble angle); +static void editing_tools_straighten_tool_draw_superimposed_grid (EditingToolsStraightenTool* self, cairo_t* dest_ctx, gint width, gint height); +static void editing_tools_straighten_tool_real_paint (EditingToolsEditingTool* base, cairo_t* ctx); +cairo_t* editing_tools_photo_canvas_get_default_ctx (EditingToolsPhotoCanvas* self); +static void editing_tools_straighten_tool_straighten_guide_draw (EditingToolsStraightenToolStraightenGuide* self, cairo_t* ctx); +gdouble degrees_to_radians (gdouble theta); +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); +#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuidePrivate)) +enum { + EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_DUMMY_PROPERTY +}; +static gdouble* _double_dup (gdouble* self); +static void editing_tools_straighten_tool_straighten_guide_finalize (EditingToolsStraightenToolStraightenGuide* obj); +enum { + EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_DUMMY_PROPERTY +}; +#define RESOURCES_CANCEL_LABEL _ ("_Cancel") +#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CONTROL_SPACING 8 +EditingToolsEditingToolWindow* editing_tools_editing_tool_window_construct (GType object_type, GtkWindow* container); +static void editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked (EditingToolsStraightenToolStraightenToolWindow* self); +static void _editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self); +static void editing_tools_straighten_tool_straighten_tool_window_finalize (GObject* obj); +static void editing_tools_straighten_tool_finalize (EditingToolsEditingTool* obj); + +static const gdouble EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH[2] = {(gdouble) 10, (gdouble) 10}; + +static EditingToolsStraightenTool* editing_tools_straighten_tool_construct (GType object_type) { + EditingToolsStraightenTool* self = NULL; +#line 183 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = (EditingToolsStraightenTool*) editing_tools_editing_tool_construct (object_type, "StraightenTool"); +#line 182 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return self; +#line 556 "StraightenTool.c" +} + + +static EditingToolsStraightenTool* editing_tools_straighten_tool_new (void) { +#line 182 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return editing_tools_straighten_tool_construct (EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL); +#line 563 "StraightenTool.c" +} + + +EditingToolsStraightenTool* editing_tools_straighten_tool_factory (void) { + EditingToolsStraightenTool* result = NULL; + EditingToolsStraightenTool* _tmp0_ = NULL; +#line 187 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = editing_tools_straighten_tool_new (); +#line 187 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = _tmp0_; +#line 187 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 576 "StraightenTool.c" +} + + +gboolean editing_tools_straighten_tool_is_available (Photo* photo, Scaling* scaling) { + gboolean result = FALSE; +#line 190 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_val_if_fail (IS_PHOTO (photo), FALSE); +#line 190 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_val_if_fail (scaling != NULL, FALSE); +#line 191 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = TRUE; +#line 191 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 590 "StraightenTool.c" +} + + +/** + * @brief Signal handler for when the 'OK' button has been clicked. Computes where a previously- + * set crop region should have rotated to (to match the Photo's straightening angle). + * + * @note After this has been called against a Photo, it will always have a crop region; in the + * case of a previously-uncropped Photo, the crop region will be set to the original dimensions + * of the photo and centered at the Photo's center. + */ +static void editing_tools_straighten_tool_on_ok_clicked (EditingToolsStraightenTool* self) { + EditingToolsPhotoCanvas* _tmp0_ = NULL; + Photo* _tmp1_ = NULL; + Photo* _tmp2_ = NULL; + gdouble slider_val = 0.0; + EditingToolsStraightenToolStraightenToolWindow* _tmp3_ = NULL; + GtkScale* _tmp4_ = NULL; + gdouble _tmp5_ = 0.0; + GdkPoint new_crop_center = {0}; + GdkPoint _tmp6_ = {0}; + Dimensions _tmp7_ = {0}; + gint _tmp8_ = 0; + Dimensions _tmp9_ = {0}; + gint _tmp10_ = 0; + GdkPoint _tmp11_ = {0}; + StraightenCommand* command = NULL; + EditingToolsPhotoCanvas* _tmp12_ = NULL; + Photo* _tmp13_ = NULL; + Photo* _tmp14_ = NULL; + GdkPoint _tmp15_ = {0}; + gdouble _tmp16_ = 0.0; + gint _tmp17_ = 0; + gdouble _tmp18_ = 0.0; + gint _tmp19_ = 0; + Box _tmp20_ = {0}; + StraightenCommand* _tmp21_ = NULL; + StraightenCommand* _tmp22_ = NULL; + Dimensions _tmp23_ = {0}; +#line 202 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = editing_tools_photo_canvas_get_photo (_tmp0_); +#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = _tmp1_; +#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _vala_assert (_tmp2_ != NULL, "canvas.get_photo() != null"); +#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp2_); +#line 207 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = self->priv->window; +#line 207 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = _tmp3_->angle_slider; +#line 207 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_range_get_type (), GtkRange)); +#line 207 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + slider_val = _tmp5_; +#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = self->priv->rotated_center; +#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = self->priv->image_dims; +#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = _tmp7_.width; +#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = self->priv->image_dims; +#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = _tmp9_.height; +#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + rotate_point_arb (&_tmp6_, _tmp8_, _tmp10_, slider_val, FALSE, &_tmp11_); +#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + new_crop_center = _tmp11_; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = editing_tools_photo_canvas_get_photo (_tmp12_); +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = _tmp13_; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = new_crop_center; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = self->priv->rotate_scale; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = self->priv->crop_width; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = self->priv->rotate_scale; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = self->priv->crop_height; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + box_from_center (&_tmp15_, (gint) (_tmp16_ * _tmp17_), (gint) (_tmp18_ * _tmp19_), &_tmp20_); +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp21_ = straighten_command_new (_tmp14_, slider_val, &_tmp20_, RESOURCES_STRAIGHTEN_LABEL, RESOURCES_STRAIGHTEN_TOOLTIP); +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp22_ = _tmp21_; +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp14_); +#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + command = _tmp22_; +#line 217 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = self->priv->image_dims; +#line 217 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), "applied", G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command), NULL, &_tmp23_, TRUE); +#line 202 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (command); +#line 696 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_high_qual_repaint (EditingToolsStraightenTool* self) { + EditingToolsPhotoCanvas* _tmp0_ = NULL; +#line 220 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 221 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->use_high_qual = TRUE; +#line 222 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_update_rotated_surface (self); +#line 223 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 223 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_repaint (_tmp0_); +#line 712 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_on_slider_stopped_delayed (EditingToolsStraightenTool* self) { +#line 226 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 227 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_high_qual_repaint (self); +#line 721 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_real_on_left_click (EditingToolsEditingTool* base, gint x, gint y) { + EditingToolsStraightenTool * self; + EditingToolsStraightenToolStraightenGuide* _tmp0_ = NULL; + gint _tmp1_ = 0; + gint _tmp2_ = 0; + gdouble _tmp3_ = 0.0; +#line 230 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->guide; +#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = x; +#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = y; +#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = self->priv->photo_angle; +#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_reset (_tmp0_, _tmp1_, _tmp2_, _tmp3_); +#line 743 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_real_on_left_released (EditingToolsEditingTool* base, gint x, gint y) { + EditingToolsStraightenTool * self; + EditingToolsStraightenToolStraightenGuide* _tmp0_ = NULL; + gint _tmp1_ = 0; + gint _tmp2_ = 0; + gdouble* a = NULL; + EditingToolsStraightenToolStraightenGuide* _tmp3_ = NULL; + gdouble* _tmp4_ = NULL; + EditingToolsStraightenToolStraightenGuide* _tmp5_ = NULL; + gdouble* _tmp6_ = NULL; +#line 234 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 235 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->guide; +#line 235 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = x; +#line 235 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = y; +#line 235 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_update (_tmp0_, _tmp1_, _tmp2_); +#line 236 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = self->priv->guide; +#line 236 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = editing_tools_straighten_tool_straighten_guide_get_angle (_tmp3_); +#line 236 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + a = _tmp4_; +#line 237 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = self->priv->guide; +#line 237 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_clear (_tmp5_); +#line 238 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = a; +#line 238 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp6_ != NULL) { +#line 781 "StraightenTool.c" + EditingToolsStraightenToolStraightenToolWindow* _tmp7_ = NULL; + GtkScale* _tmp8_ = NULL; + gdouble* _tmp9_ = NULL; +#line 239 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = self->priv->window; +#line 239 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = _tmp7_->angle_slider; +#line 239 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = a; +#line 239 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_range_get_type (), GtkRange), *_tmp9_); +#line 240 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_high_qual_repaint (self); +#line 795 "StraightenTool.c" + } +#line 234 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_free0 (a); +#line 799 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_real_on_motion (EditingToolsEditingTool* base, gint x, gint y, GdkModifierType mask) { + EditingToolsStraightenTool * self; + EditingToolsStraightenToolStraightenGuide* _tmp0_ = NULL; + gint _tmp1_ = 0; + gint _tmp2_ = 0; + gboolean _tmp3_ = FALSE; +#line 244 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->guide; +#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = x; +#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = y; +#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = editing_tools_straighten_tool_straighten_guide_update (_tmp0_, _tmp1_, _tmp2_); +#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp3_) { +#line 821 "StraightenTool.c" + EditingToolsPhotoCanvas* _tmp4_ = NULL; +#line 246 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 246 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_repaint (_tmp4_); +#line 827 "StraightenTool.c" + } +} + + +static gboolean editing_tools_straighten_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event) { + EditingToolsStraightenTool * self; + gboolean result = FALSE; + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; + GdkEventKey* _tmp2_ = NULL; + guint _tmp3_ = 0U; + const gchar* _tmp4_ = NULL; + GdkEventKey* _tmp11_ = NULL; + guint _tmp12_ = 0U; + const gchar* _tmp13_ = NULL; + GdkEventKey* _tmp14_ = NULL; + gboolean _tmp15_ = FALSE; +#line 249 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 249 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_val_if_fail (event != NULL, FALSE); +#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = event; +#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = _tmp2_->keyval; +#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = gdk_keyval_name (_tmp3_); +#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (g_strcmp0 (_tmp4_, "KP_Enter") == 0) { +#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = TRUE; +#line 859 "StraightenTool.c" + } else { + GdkEventKey* _tmp5_ = NULL; + guint _tmp6_ = 0U; + const gchar* _tmp7_ = NULL; +#line 251 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = event; +#line 251 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = _tmp5_->keyval; +#line 251 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = gdk_keyval_name (_tmp6_); +#line 251 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = g_strcmp0 (_tmp7_, "Enter") == 0; +#line 872 "StraightenTool.c" + } +#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp1_) { +#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = TRUE; +#line 878 "StraightenTool.c" + } else { + GdkEventKey* _tmp8_ = NULL; + guint _tmp9_ = 0U; + const gchar* _tmp10_ = NULL; +#line 252 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = event; +#line 252 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = _tmp8_->keyval; +#line 252 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = gdk_keyval_name (_tmp9_); +#line 252 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = g_strcmp0 (_tmp10_, "Return") == 0; +#line 891 "StraightenTool.c" + } +#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp0_) { +#line 253 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_on_ok_clicked (self); +#line 254 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = TRUE; +#line 254 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 901 "StraightenTool.c" + } +#line 257 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = event; +#line 257 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = _tmp11_->keyval; +#line 257 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = gdk_keyval_name (_tmp12_); +#line 257 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (g_strcmp0 (_tmp13_, "Escape") == 0) { +#line 258 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_editing_tool_notify_cancel (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)); +#line 259 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = TRUE; +#line 259 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 917 "StraightenTool.c" + } +#line 262 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = event; +#line 262 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_straighten_tool_parent_class)->on_keypress (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp14_); +#line 262 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = _tmp15_; +#line 262 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 927 "StraightenTool.c" +} + + +static gboolean _dimensions_equal (const Dimensions* s1, const Dimensions* s2) { +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (s1 == s2) { +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return TRUE; +#line 936 "StraightenTool.c" + } +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (s1 == NULL) { +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return FALSE; +#line 942 "StraightenTool.c" + } +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (s2 == NULL) { +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return FALSE; +#line 948 "StraightenTool.c" + } +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (s1->width != s2->width) { +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return FALSE; +#line 954 "StraightenTool.c" + } +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (s1->height != s2->height) { +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return FALSE; +#line 960 "StraightenTool.c" + } +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return TRUE; +#line 964 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_prepare_image (EditingToolsStraightenTool* self) { + Dimensions canvas_dims = {0}; + EditingToolsPhotoCanvas* _tmp0_ = NULL; + Dimensions _tmp1_ = {0}; + Dimensions viewport = {0}; + Dimensions _tmp2_ = {0}; + Dimensions _tmp3_ = {0}; + Dimensions _tmp4_ = {0}; + Dimensions _tmp5_ = {0}; + GdkPixbuf* low_res_tmp = NULL; + GdkPixbuf* _tmp21_ = NULL; + gint _tmp22_ = 0; + gint _tmp23_ = 0; + Dimensions _tmp24_ = {0}; + gint _tmp25_ = 0; + GdkPixbuf* _tmp26_ = NULL; + gint _tmp27_ = 0; + gint _tmp28_ = 0; + GdkPixbuf* _tmp29_ = NULL; + gint _tmp30_ = 0; + gint _tmp31_ = 0; + cairo_surface_t* _tmp32_ = NULL; + cairo_t* ctx = NULL; + cairo_surface_t* _tmp33_ = NULL; + cairo_t* _tmp34_ = NULL; + cairo_t* _tmp35_ = NULL; + GdkPixbuf* _tmp36_ = NULL; + cairo_t* _tmp37_ = NULL; + GdkPixbuf* _tmp38_ = NULL; + gint _tmp39_ = 0; + gint _tmp40_ = 0; + GdkPixbuf* _tmp41_ = NULL; + gint _tmp42_ = 0; + gint _tmp43_ = 0; + cairo_t* _tmp44_ = NULL; + cairo_t* _tmp45_ = NULL; + gint _tmp46_ = 0; + gdouble _tmp47_ = 0.0; + gint _tmp48_ = 0; + gdouble _tmp49_ = 0.0; + gint _tmp50_ = 0; + gint _tmp51_ = 0; + cairo_surface_t* _tmp52_ = NULL; + cairo_surface_t* _tmp53_ = NULL; + cairo_t* _tmp54_ = NULL; + GError * _inner_error_ = NULL; +#line 265 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 266 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 266 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_get_surface_dim (_tmp0_, &_tmp1_); +#line 266 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + canvas_dims = _tmp1_; +#line 267 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + dimensions_with_max (&canvas_dims, EDITING_TOOLS_STRAIGHTEN_TOOL_TEMP_PIXBUF_SIZE, EDITING_TOOLS_STRAIGHTEN_TOOL_TEMP_PIXBUF_SIZE, &_tmp2_); +#line 267 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + viewport = _tmp2_; +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = viewport; +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = self->priv->last_viewport; +#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_dimensions_equal (&_tmp3_, &_tmp4_) == TRUE) { +#line 269 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return; +#line 1034 "StraightenTool.c" + } +#line 271 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = viewport; +#line 271 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->last_viewport = _tmp5_; +#line 273 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + low_res_tmp = NULL; +#line 1042 "StraightenTool.c" + { + GdkPixbuf* _tmp6_ = NULL; + EditingToolsPhotoCanvas* _tmp7_ = NULL; + Photo* _tmp8_ = NULL; + Photo* _tmp9_ = NULL; + Dimensions _tmp10_ = {0}; + Scaling _tmp11_ = {0}; + GdkPixbuf* _tmp12_ = NULL; + GdkPixbuf* _tmp13_ = NULL; + GdkPixbuf* _tmp14_ = NULL; +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = editing_tools_photo_canvas_get_photo (_tmp7_); +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = _tmp8_; +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = viewport; +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + scaling_for_viewport (&_tmp10_, FALSE, &_tmp11_); +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = photo_get_pixbuf_with_options (_tmp9_, &_tmp11_, PHOTO_EXCEPTION_STRAIGHTEN | PHOTO_EXCEPTION_CROP, BACKING_FETCH_MODE_BASELINE, &_inner_error_); +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = _tmp12_; +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp9_); +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = _tmp13_; +#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 1073 "StraightenTool.c" + goto __catch21_g_error; + } +#line 275 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = _tmp6_; +#line 275 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = NULL; +#line 275 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (low_res_tmp); +#line 275 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + low_res_tmp = _tmp14_; +#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp6_); +#line 1086 "StraightenTool.c" + } + goto __finally21; + __catch21_g_error: + { + GError* e = NULL; + EditingToolsPhotoCanvas* _tmp15_ = NULL; + Photo* _tmp16_ = NULL; + Photo* _tmp17_ = NULL; + gchar* _tmp18_ = NULL; + gchar* _tmp19_ = NULL; + GdkPixbuf* _tmp20_ = NULL; +#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + e = _inner_error_; +#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _inner_error_ = NULL; +#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = editing_tools_photo_canvas_get_photo (_tmp15_); +#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = _tmp16_; +#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_OBJECT, DataObject)); +#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = _tmp18_; +#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_warning ("StraightenTool.vala:279: A pixbuf for %s couldn't be fetched.", _tmp19_); +#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_free0 (_tmp19_); +#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp17_); +#line 280 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 1, 1); +#line 280 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (low_res_tmp); +#line 280 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + low_res_tmp = _tmp20_; +#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_error_free0 (e); +#line 1126 "StraightenTool.c" + } + __finally21: +#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (low_res_tmp); +#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.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 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_clear_error (&_inner_error_); +#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return; +#line 1139 "StraightenTool.c" + } +#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp21_ = low_res_tmp; +#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp22_ = gdk_pixbuf_get_width (_tmp21_); +#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = _tmp22_; +#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp24_ = self->priv->image_dims; +#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp25_ = _tmp24_.width; +#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->preview_scale = _tmp23_ / ((gdouble) _tmp25_); +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp26_ = low_res_tmp; +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp27_ = gdk_pixbuf_get_width (_tmp26_); +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp28_ = _tmp27_; +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp29_ = low_res_tmp; +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp30_ = gdk_pixbuf_get_height (_tmp29_); +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp31_ = _tmp30_; +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp32_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp28_, _tmp31_); +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_surface_destroy0 (self->priv->photo_surf); +#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->photo_surf = _tmp32_; +#line 287 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp33_ = self->priv->photo_surf; +#line 287 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp34_ = cairo_create (_tmp33_); +#line 287 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ctx = _tmp34_; +#line 288 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp35_ = ctx; +#line 288 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp36_ = low_res_tmp; +#line 288 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gdk_cairo_set_source_pixbuf (_tmp35_, _tmp36_, (gdouble) 0, (gdouble) 0); +#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp37_ = ctx; +#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp38_ = low_res_tmp; +#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp39_ = gdk_pixbuf_get_width (_tmp38_); +#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp40_ = _tmp39_; +#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp41_ = low_res_tmp; +#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp42_ = gdk_pixbuf_get_height (_tmp41_); +#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp43_ = _tmp42_; +#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_rectangle (_tmp37_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp40_, (gdouble) _tmp43_); +#line 290 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp44_ = ctx; +#line 290 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_fill (_tmp44_); +#line 291 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp45_ = ctx; +#line 291 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_paint (_tmp45_); +#line 295 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp46_ = self->priv->crop_width; +#line 295 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp47_ = self->priv->preview_scale; +#line 295 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->view_width = (gint) (_tmp46_ * _tmp47_); +#line 296 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp48_ = self->priv->crop_height; +#line 296 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp49_ = self->priv->preview_scale; +#line 296 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->view_height = (gint) (_tmp48_ * _tmp49_); +#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp50_ = self->priv->view_width; +#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp51_ = self->priv->view_height; +#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp52_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp50_, _tmp51_); +#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_surface_destroy0 (self->priv->rotate_surf); +#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->rotate_surf = _tmp52_; +#line 298 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp53_ = self->priv->rotate_surf; +#line 298 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp54_ = cairo_create (_tmp53_); +#line 298 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (self->priv->rotate_ctx); +#line 298 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->rotate_ctx = _tmp54_; +#line 265 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (ctx); +#line 265 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (low_res_tmp); +#line 1241 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_adjust_for_rotation (EditingToolsStraightenTool* self) { + gdouble width = 0.0; + gdouble height = 0.0; + gint _tmp0_ = 0; + gint _tmp1_ = 0; + gdouble _tmp2_ = 0.0; + gdouble _tmp3_ = 0.0; + gdouble _tmp4_ = 0.0; + Dimensions _tmp5_ = {0}; + gint _tmp6_ = 0; + Dimensions _tmp7_ = {0}; + gint _tmp8_ = 0; + gdouble _tmp9_ = 0.0; + gdouble _tmp10_ = 0.0; + gdouble _tmp11_ = 0.0; + GdkPoint _tmp12_ = {0}; + gint radius_x = 0; + gdouble _tmp13_ = 0.0; + gint radius_y = 0; + gdouble _tmp14_ = 0.0; + GdkPoint _tmp15_ = {0}; + gint _tmp16_ = 0; + Dimensions _tmp17_ = {0}; + gint _tmp18_ = 0; + gint _tmp19_ = 0; + GdkPoint _tmp20_ = {0}; + gint _tmp21_ = 0; + Dimensions _tmp22_ = {0}; + gint _tmp23_ = 0; + gint _tmp24_ = 0; +#line 302 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->crop_width; +#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = self->priv->crop_height; +#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = self->priv->photo_angle; +#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + compute_arb_rotated_size ((gdouble) _tmp0_, (gdouble) _tmp1_, _tmp2_, &_tmp3_, &_tmp4_); +#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + width = _tmp3_; +#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + height = _tmp4_; +#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = self->priv->image_dims; +#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = _tmp5_.width; +#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = self->priv->image_dims; +#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = _tmp7_.height; +#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = MIN (_tmp6_ / width, _tmp8_ / height); +#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->rotate_scale = _tmp9_; +#line 308 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = self->priv->rotate_scale; +#line 308 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = MIN (_tmp10_, 1.0); +#line 308 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->rotate_scale = _tmp11_; +#line 311 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = self->priv->crop_center; +#line 311 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->rotated_center = _tmp12_; +#line 312 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = self->priv->rotate_scale; +#line 312 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + radius_x = (gint) ((_tmp13_ * width) / 2); +#line 313 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = self->priv->rotate_scale; +#line 313 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + radius_y = (gint) ((_tmp14_ * height) / 2); +#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = self->priv->rotated_center; +#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = _tmp15_.x; +#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = self->priv->image_dims; +#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = _tmp17_.width; +#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = CLAMP (_tmp16_, radius_x, _tmp18_ - radius_x); +#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->rotated_center.x = _tmp19_; +#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = self->priv->rotated_center; +#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp21_ = _tmp20_.y; +#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp22_ = self->priv->image_dims; +#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = _tmp22_.height; +#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp24_ = CLAMP (_tmp21_, radius_y, _tmp23_ - radius_y); +#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->rotated_center.y = _tmp24_; +#line 1343 "StraightenTool.c" +} + + +/** + * @brief Spawn the tool window, set up the scratch surfaces and prepare the straightening + * tool for use. If a valid pixbuf of the incoming Photo can't be loaded for any + * reason, the tool will use a 1x1 temporary image instead to avoid crashing. + * + * @param canvas The PhotoCanvas the tool's output should be painted to. + */ +static gpointer _editing_tools_photo_canvas_ref0 (gpointer self) { +#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return self ? editing_tools_photo_canvas_ref (self) : NULL; +#line 1357 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas) { + EditingToolsStraightenTool * self; + EditingToolsPhotoCanvas* _tmp0_ = NULL; + EditingToolsPhotoCanvas* _tmp1_ = NULL; + EditingToolsPhotoCanvas* _tmp2_ = NULL; + EditingToolsPhotoCanvas* _tmp3_ = NULL; + EditingToolsPhotoCanvas* _tmp4_ = NULL; + Photo* _tmp5_ = NULL; + Photo* _tmp6_ = NULL; + Dimensions _tmp7_ = {0}; + Box crop_region = {0}; + EditingToolsPhotoCanvas* _tmp8_ = NULL; + Photo* _tmp9_ = NULL; + Photo* _tmp10_ = NULL; + Box _tmp11_ = {0}; + gboolean _tmp12_ = FALSE; + gboolean _tmp13_ = FALSE; + gdouble incoming_angle = 0.0; + EditingToolsPhotoCanvas* _tmp18_ = NULL; + Photo* _tmp19_ = NULL; + Photo* _tmp20_ = NULL; + gdouble _tmp21_ = 0.0; + GdkPoint _tmp22_ = {0}; + Dimensions _tmp23_ = {0}; + gint _tmp24_ = 0; + Dimensions _tmp25_ = {0}; + gint _tmp26_ = 0; + gdouble _tmp27_ = 0.0; + GdkPoint _tmp28_ = {0}; + gint _tmp29_ = 0; + gint _tmp30_ = 0; + EditingToolsPhotoCanvas* _tmp31_ = NULL; + GdkWindow* _tmp32_ = NULL; + GdkWindow* _tmp33_ = NULL; + GdkCursor* _tmp34_ = NULL; + GdkCursor* _tmp35_ = NULL; + EditingToolsPhotoCanvas* _tmp36_ = NULL; + GtkWindow* _tmp37_ = NULL; + GtkWindow* _tmp38_ = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp39_ = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp40_ = NULL; + GtkScale* _tmp41_ = NULL; + gdouble _tmp42_ = 0.0; + gdouble _tmp43_ = 0.0; + gchar* tmp = NULL; + gdouble _tmp44_ = 0.0; + gchar* _tmp45_ = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp46_ = NULL; + GtkLabel* _tmp47_ = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp48_ = NULL; +#line 325 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 325 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas)); +#line 326 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = canvas; +#line 326 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_straighten_tool_parent_class)->activate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp0_); +#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = canvas; +#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = _editing_tools_photo_canvas_ref0 (_tmp1_); +#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _editing_tools_photo_canvas_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas); +#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas = _tmp2_; +#line 328 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 328 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_bind_canvas_handlers (self, _tmp3_); +#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = canvas; +#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = editing_tools_photo_canvas_get_photo (_tmp4_); +#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = _tmp5_; +#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_STRAIGHTEN | PHOTO_EXCEPTION_CROP, &_tmp7_); +#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->image_dims = _tmp7_; +#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp6_); +#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = canvas; +#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = editing_tools_photo_canvas_get_photo (_tmp8_); +#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = _tmp9_; +#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = photo_get_crop (_tmp10_, &_tmp11_, PHOTO_EXCEPTION_NONE); +#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + crop_region = _tmp11_; +#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = !_tmp12_; +#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp10_); +#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp13_) { +#line 1459 "StraightenTool.c" + Dimensions _tmp14_ = {0}; + gint _tmp15_ = 0; + Dimensions _tmp16_ = {0}; + gint _tmp17_ = 0; +#line 335 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + crop_region.left = 0; +#line 336 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = self->priv->image_dims; +#line 336 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = _tmp14_.width; +#line 336 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + crop_region.right = _tmp15_; +#line 338 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + crop_region.top = 0; +#line 339 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = self->priv->image_dims; +#line 339 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = _tmp16_.height; +#line 339 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + crop_region.bottom = _tmp17_; +#line 1480 "StraightenTool.c" + } +#line 344 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + incoming_angle = 0.0; +#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = canvas; +#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = editing_tools_photo_canvas_get_photo (_tmp18_); +#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = _tmp19_; +#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + photo_get_straighten (_tmp20_, &_tmp21_); +#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + incoming_angle = _tmp21_; +#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp20_); +#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + box_get_center (&crop_region, &_tmp22_); +#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = self->priv->image_dims; +#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp24_ = _tmp23_.width; +#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp25_ = self->priv->image_dims; +#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp26_ = _tmp25_.height; +#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp27_ = incoming_angle; +#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + derotate_point_arb (&_tmp22_, _tmp24_, _tmp26_, _tmp27_, &_tmp28_); +#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->crop_center = _tmp28_; +#line 350 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp29_ = box_get_width (&crop_region); +#line 350 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->crop_width = _tmp29_; +#line 351 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp30_ = box_get_height (&crop_region); +#line 351 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->crop_height = _tmp30_; +#line 353 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_adjust_for_rotation (self); +#line 355 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_prepare_image (self); +#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp31_ = canvas; +#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp32_ = editing_tools_photo_canvas_get_drawing_window (_tmp31_); +#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp33_ = _tmp32_; +#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp34_ = gdk_cursor_new (GDK_CROSSHAIR); +#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp35_ = _tmp34_; +#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gdk_window_set_cursor (_tmp33_, _tmp35_); +#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp35_); +#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp33_); +#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp36_ = canvas; +#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp37_ = editing_tools_photo_canvas_get_container (_tmp36_); +#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp38_ = _tmp37_; +#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp39_ = editing_tools_straighten_tool_straighten_tool_window_new (_tmp38_); +#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp39_); +#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->priv->window); +#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->window = _tmp39_; +#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp38_); +#line 361 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_bind_window_handlers (self); +#line 364 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp40_ = self->priv->window; +#line 364 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp41_ = _tmp40_->angle_slider; +#line 364 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp42_ = incoming_angle; +#line 364 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_range_get_type (), GtkRange), _tmp42_); +#line 365 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp43_ = incoming_angle; +#line 365 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->photo_angle = _tmp43_; +#line 367 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp44_ = incoming_angle; +#line 367 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp45_ = g_strdup_printf ("%2.1f°", _tmp44_); +#line 367 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + tmp = _tmp45_; +#line 368 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp46_ = self->priv->window; +#line 368 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp47_ = _tmp46_->angle_label; +#line 368 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_label_set_text (_tmp47_, tmp); +#line 370 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_high_qual_repaint (self); +#line 371 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp48_ = self->priv->window; +#line 371 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_widget_get_type (), GtkWidget)); +#line 325 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_free0 (tmp); +#line 1590 "StraightenTool.c" +} + + +/** + * Tears down the tool window and frees resources. + */ +static void editing_tools_straighten_tool_real_deactivate (EditingToolsEditingTool* base) { + EditingToolsStraightenTool * self; + EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL; + EditingToolsPhotoCanvas* _tmp2_ = NULL; +#line 377 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 378 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->window; +#line 378 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp0_ != NULL) { +#line 1607 "StraightenTool.c" + EditingToolsStraightenToolStraightenToolWindow* _tmp1_ = NULL; +#line 380 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_unbind_window_handlers (self); +#line 382 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = self->priv->window; +#line 382 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget)); +#line 383 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->priv->window); +#line 383 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->window = NULL; +#line 1619 "StraightenTool.c" + } +#line 386 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 386 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp2_ != NULL) { +#line 1625 "StraightenTool.c" + EditingToolsPhotoCanvas* _tmp3_ = NULL; + EditingToolsPhotoCanvas* _tmp4_ = NULL; + GdkWindow* _tmp5_ = NULL; + GdkWindow* _tmp6_ = NULL; +#line 387 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 387 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_unbind_canvas_handlers (self, _tmp3_); +#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = editing_tools_photo_canvas_get_drawing_window (_tmp4_); +#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = _tmp5_; +#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gdk_window_set_cursor (_tmp6_, NULL); +#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp6_); +#line 1644 "StraightenTool.c" + } +#line 391 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_straighten_tool_parent_class)->deactivate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)); +#line 1648 "StraightenTool.c" +} + + +static void _editing_tools_straighten_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self) { +#line 395 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_on_resized_pixbuf ((EditingToolsStraightenTool*) self, old_dim, scaled, scaled_position); +#line 1655 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_bind_canvas_handlers (EditingToolsStraightenTool* self, EditingToolsPhotoCanvas* canvas) { + EditingToolsPhotoCanvas* _tmp0_ = NULL; +#line 394 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 394 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas)); +#line 395 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = canvas; +#line 395 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_connect (_tmp0_, "resized-scaled-pixbuf", (GCallback) _editing_tools_straighten_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf, self); +#line 1669 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_unbind_canvas_handlers (EditingToolsStraightenTool* self, EditingToolsPhotoCanvas* canvas) { + EditingToolsPhotoCanvas* _tmp0_ = NULL; + guint _tmp1_ = 0U; +#line 398 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 398 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas)); +#line 399 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = canvas; +#line 399 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_parse_name ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp1_, NULL, FALSE); +#line 399 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_straighten_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf, self); +#line 1686 "StraightenTool.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 403 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 1695 "StraightenTool.c" +} + + +static void _editing_tools_straighten_tool_on_ok_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) { +#line 404 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_on_ok_clicked ((EditingToolsStraightenTool*) self); +#line 1702 "StraightenTool.c" +} + + +static void _editing_tools_editing_tool_notify_cancel_gtk_button_clicked (GtkButton* _sender, gpointer self) { +#line 405 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_editing_tool_notify_cancel ((EditingToolsEditingTool*) self); +#line 1709 "StraightenTool.c" +} + + +static void _editing_tools_straighten_tool_on_angle_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self) { +#line 406 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_on_angle_changed ((EditingToolsStraightenTool*) self); +#line 1716 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_bind_window_handlers (EditingToolsStraightenTool* self) { + EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp1_ = NULL; + GtkButton* _tmp2_ = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp3_ = NULL; + GtkButton* _tmp4_ = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp5_ = NULL; + GtkScale* _tmp6_ = NULL; +#line 402 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 403 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->window; +#line 403 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.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 404 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = self->priv->window; +#line 404 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = _tmp1_->ok_button; +#line 404 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_connect (_tmp2_, "clicked", (GCallback) _editing_tools_straighten_tool_on_ok_clicked_gtk_button_clicked, self); +#line 405 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = self->priv->window; +#line 405 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = _tmp3_->cancel_button; +#line 405 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.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 406 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = self->priv->window; +#line 406 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = _tmp5_->angle_slider; +#line 406 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_straighten_tool_on_angle_changed_gtk_range_value_changed, self); +#line 1752 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_unbind_window_handlers (EditingToolsStraightenTool* self) { + EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL; + guint _tmp1_ = 0U; + EditingToolsStraightenToolStraightenToolWindow* _tmp2_ = NULL; + GtkButton* _tmp3_ = NULL; + guint _tmp4_ = 0U; + EditingToolsStraightenToolStraightenToolWindow* _tmp5_ = NULL; + GtkButton* _tmp6_ = NULL; + guint _tmp7_ = 0U; + EditingToolsStraightenToolStraightenToolWindow* _tmp8_ = NULL; + GtkScale* _tmp9_ = NULL; + guint _tmp10_ = 0U; +#line 409 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 410 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->window; +#line 410 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_parse_name ("key-press-event", gtk_widget_get_type (), &_tmp1_, NULL, FALSE); +#line 410 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.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 411 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = self->priv->window; +#line 411 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = _tmp2_->ok_button; +#line 411 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp4_, NULL, FALSE); +#line 411 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.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_straighten_tool_on_ok_clicked_gtk_button_clicked, self); +#line 412 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = self->priv->window; +#line 412 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = _tmp5_->cancel_button; +#line 412 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp7_, NULL, FALSE); +#line 412 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.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 413 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = self->priv->window; +#line 413 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = _tmp8_->angle_slider; +#line 413 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp10_, NULL, FALSE); +#line 413 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _editing_tools_straighten_tool_on_angle_changed_gtk_range_value_changed, self); +#line 1800 "StraightenTool.c" +} + + +static void _editing_tools_straighten_tool_on_slider_stopped_delayed_one_shot_callback (gpointer self) { +#line 422 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_on_slider_stopped_delayed ((EditingToolsStraightenTool*) self); +#line 1807 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_on_angle_changed (EditingToolsStraightenTool* self) { + EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL; + GtkScale* _tmp1_ = NULL; + gdouble _tmp2_ = 0.0; + gchar* tmp = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp3_ = NULL; + GtkScale* _tmp4_ = NULL; + gdouble _tmp5_ = 0.0; + gchar* _tmp6_ = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp7_ = NULL; + GtkLabel* _tmp8_ = NULL; + const gchar* _tmp9_ = NULL; + OneShotScheduler* _tmp10_ = NULL; + OneShotScheduler* _tmp12_ = NULL; + EditingToolsPhotoCanvas* _tmp13_ = NULL; +#line 416 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 417 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->window; +#line 417 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = _tmp0_->angle_slider; +#line 417 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange)); +#line 417 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->photo_angle = _tmp2_; +#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = self->priv->window; +#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = _tmp3_->angle_slider; +#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_range_get_type (), GtkRange)); +#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = g_strdup_printf ("%2.1f°", _tmp5_); +#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + tmp = _tmp6_; +#line 419 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = self->priv->window; +#line 419 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = _tmp7_->angle_label; +#line 419 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = tmp; +#line 419 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_label_set_text (_tmp8_, _tmp9_); +#line 421 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = self->priv->slider_sched; +#line 421 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp10_ == NULL) { +#line 1858 "StraightenTool.c" + OneShotScheduler* _tmp11_ = NULL; +#line 422 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = one_shot_scheduler_new ("straighten", _editing_tools_straighten_tool_on_slider_stopped_delayed_one_shot_callback, self); +#line 422 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _one_shot_scheduler_unref0 (self->priv->slider_sched); +#line 422 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->slider_sched = _tmp11_; +#line 1866 "StraightenTool.c" + } +#line 423 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = self->priv->slider_sched; +#line 423 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + one_shot_scheduler_after_timeout (_tmp12_, (guint) EDITING_TOOLS_STRAIGHTEN_TOOL_REPAINT_ON_STOP_DELAY_MSEC, TRUE); +#line 425 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->use_high_qual = FALSE; +#line 427 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_adjust_for_rotation (self); +#line 428 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_update_rotated_surface (self); +#line 429 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 429 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_repaint (_tmp13_); +#line 416 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_free0 (tmp); +#line 1884 "StraightenTool.c" +} + + +/** + * @brief Called by the EditingHostPage when a resize event occurs. + */ +static void editing_tools_straighten_tool_on_resized_pixbuf (EditingToolsStraightenTool* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position) { +#line 435 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 435 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (old_dim != NULL); +#line 435 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (GDK_IS_PIXBUF (scaled)); +#line 435 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (scaled_position != NULL); +#line 436 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_prepare_image (self); +#line 1902 "StraightenTool.c" +} + + +/** + * Returns a reference to the current StraightenTool instance's tool window; + * the PhotoPage uses this to control the tool window's positioning, etc. + */ +static gpointer _g_object_ref0 (gpointer self) { +#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return self ? g_object_ref (self) : NULL; +#line 1913 "StraightenTool.c" +} + + +static EditingToolsEditingToolWindow* editing_tools_straighten_tool_real_get_tool_window (EditingToolsEditingTool* base) { + EditingToolsStraightenTool * self; + EditingToolsEditingToolWindow* result = NULL; + EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL; + EditingToolsEditingToolWindow* _tmp1_ = NULL; +#line 443 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->window; +#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow)); +#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = _tmp1_; +#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 1932 "StraightenTool.c" +} + + +/** + * Draw the rotated photo and grid. + */ +static void editing_tools_straighten_tool_update_rotated_surface (EditingToolsStraightenTool* self) { + cairo_surface_t* _tmp0_ = NULL; + cairo_t* _tmp1_ = NULL; + gint _tmp2_ = 0; + gint _tmp3_ = 0; + gdouble _tmp4_ = 0.0; + cairo_t* _tmp5_ = NULL; + cairo_t* _tmp6_ = NULL; + gint _tmp7_ = 0; + gint _tmp8_ = 0; +#line 450 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->photo_surf; +#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = self->priv->rotate_ctx; +#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = self->priv->view_width; +#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = self->priv->view_height; +#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = self->priv->photo_angle; +#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_draw_rotated_source (self, _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_); +#line 452 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = self->priv->rotate_ctx; +#line 452 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_line_width (_tmp5_, 1.0); +#line 453 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = self->priv->rotate_ctx; +#line 453 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = self->priv->view_width; +#line 453 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = self->priv->view_height; +#line 453 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_draw_superimposed_grid (self, _tmp6_, _tmp7_, _tmp8_); +#line 1975 "StraightenTool.c" +} + + +/** + * Render a smaller, rotated version of the image, with a grid superimposed over it. + * + * @param ctx The rendering context of a 'scratch' Cairo surface. The tool makes its own + * surfaces and contexts so it can have things set up exactly like it wants them, so + * it's not used. + */ +static void editing_tools_straighten_tool_real_paint (EditingToolsEditingTool* base, cairo_t* ctx) { + EditingToolsStraightenTool * self; + gint w = 0; + EditingToolsPhotoCanvas* _tmp0_ = NULL; + GdkWindow* _tmp1_ = NULL; + GdkWindow* _tmp2_ = NULL; + gint _tmp3_ = 0; + gint _tmp4_ = 0; + gint h = 0; + EditingToolsPhotoCanvas* _tmp5_ = NULL; + GdkWindow* _tmp6_ = NULL; + GdkWindow* _tmp7_ = NULL; + gint _tmp8_ = 0; + gint _tmp9_ = 0; + EditingToolsPhotoCanvas* _tmp10_ = NULL; + cairo_t* _tmp11_ = NULL; + cairo_t* _tmp12_ = NULL; + EditingToolsPhotoCanvas* _tmp13_ = NULL; + cairo_t* _tmp14_ = NULL; + cairo_t* _tmp15_ = NULL; + EditingToolsPhotoCanvas* _tmp16_ = NULL; + cairo_t* _tmp17_ = NULL; + cairo_t* _tmp18_ = NULL; + EditingToolsPhotoCanvas* _tmp19_ = NULL; + cairo_t* _tmp20_ = NULL; + cairo_t* _tmp21_ = NULL; + EditingToolsPhotoCanvas* _tmp22_ = NULL; + cairo_t* _tmp23_ = NULL; + cairo_t* _tmp24_ = NULL; + gint _tmp25_ = 0; + gint _tmp26_ = 0; + EditingToolsPhotoCanvas* _tmp27_ = NULL; + cairo_t* _tmp28_ = NULL; + cairo_t* _tmp29_ = NULL; + cairo_surface_t* _tmp30_ = NULL; + EditingToolsPhotoCanvas* _tmp31_ = NULL; + cairo_t* _tmp32_ = NULL; + cairo_t* _tmp33_ = NULL; + gint _tmp34_ = 0; + gint _tmp35_ = 0; + EditingToolsPhotoCanvas* _tmp36_ = NULL; + cairo_t* _tmp37_ = NULL; + cairo_t* _tmp38_ = NULL; + EditingToolsPhotoCanvas* _tmp39_ = NULL; + cairo_t* _tmp40_ = NULL; + cairo_t* _tmp41_ = NULL; + EditingToolsPhotoCanvas* _tmp42_ = NULL; + cairo_t* _tmp43_ = NULL; + cairo_t* _tmp44_ = NULL; + EditingToolsStraightenToolStraightenGuide* _tmp45_ = NULL; + EditingToolsPhotoCanvas* _tmp46_ = NULL; + cairo_t* _tmp47_ = NULL; + cairo_t* _tmp48_ = NULL; +#line 463 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 463 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (ctx != NULL); +#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = editing_tools_photo_canvas_get_drawing_window (_tmp0_); +#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = _tmp1_; +#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = gdk_window_get_width (_tmp2_); +#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = _tmp3_; +#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp2_); +#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + w = _tmp4_; +#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = editing_tools_photo_canvas_get_drawing_window (_tmp5_); +#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = _tmp6_; +#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = gdk_window_get_height (_tmp7_); +#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = _tmp8_; +#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (_tmp7_); +#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + h = _tmp9_; +#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = editing_tools_photo_canvas_get_default_ctx (_tmp10_); +#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = _tmp11_; +#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_identity_matrix (_tmp12_); +#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp12_); +#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = editing_tools_photo_canvas_get_default_ctx (_tmp13_); +#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = _tmp14_; +#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_source_rgba (_tmp15_, 0.0, 0.0, 0.0, 1.0); +#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp15_); +#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = editing_tools_photo_canvas_get_default_ctx (_tmp16_); +#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = _tmp17_; +#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_rectangle (_tmp18_, (gdouble) 0, (gdouble) 0, (gdouble) w, (gdouble) h); +#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp18_); +#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = editing_tools_photo_canvas_get_default_ctx (_tmp19_); +#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp21_ = _tmp20_; +#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_fill (_tmp21_); +#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp21_); +#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = editing_tools_photo_canvas_get_default_ctx (_tmp22_); +#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp24_ = _tmp23_; +#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp25_ = self->priv->view_width; +#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp26_ = self->priv->view_height; +#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_translate (_tmp24_, (w - _tmp25_) / 2.0, (h - _tmp26_) / 2.0); +#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp24_); +#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp27_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp28_ = editing_tools_photo_canvas_get_default_ctx (_tmp27_); +#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp29_ = _tmp28_; +#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp30_ = self->priv->rotate_surf; +#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_source_surface (_tmp29_, _tmp30_, (gdouble) 0, (gdouble) 0); +#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp29_); +#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp31_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp32_ = editing_tools_photo_canvas_get_default_ctx (_tmp31_); +#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp33_ = _tmp32_; +#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp34_ = self->priv->view_width; +#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp35_ = self->priv->view_height; +#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_rectangle (_tmp33_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp34_, (gdouble) _tmp35_); +#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp33_); +#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp36_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp37_ = editing_tools_photo_canvas_get_default_ctx (_tmp36_); +#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp38_ = _tmp37_; +#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_fill (_tmp38_); +#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp38_); +#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp39_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp40_ = editing_tools_photo_canvas_get_default_ctx (_tmp39_); +#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp41_ = _tmp40_; +#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_paint (_tmp41_); +#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp41_); +#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp42_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp43_ = editing_tools_photo_canvas_get_default_ctx (_tmp42_); +#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp44_ = _tmp43_; +#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_identity_matrix (_tmp44_); +#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp44_); +#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp45_ = self->priv->guide; +#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp46_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp47_ = editing_tools_photo_canvas_get_default_ctx (_tmp46_); +#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp48_ = _tmp47_; +#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_draw (_tmp45_, _tmp48_); +#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (_tmp48_); +#line 2193 "StraightenTool.c" +} + + +/** + * Copy a rotated version of the source image onto the destination + * context. + * + * @param src_surf A Cairo surface containing the source image. + * @param dest_ctx The rendering context of the destination image. + * @param src_width The width of the image data in src_surf in pixels. + * @param src_height The height of the image data in src_surf in pixels. + * @param angle The angle the source image should be rotated by, in degrees. + */ +static void editing_tools_straighten_tool_draw_rotated_source (EditingToolsStraightenTool* self, cairo_surface_t* src_surf, cairo_t* dest_ctx, gint src_width, gint src_height, gdouble angle) { + gdouble angle_internal = 0.0; + gdouble _tmp0_ = 0.0; + gdouble _tmp1_ = 0.0; + cairo_t* _tmp2_ = NULL; + cairo_t* _tmp3_ = NULL; + cairo_t* _tmp4_ = NULL; + gint _tmp5_ = 0; + gint _tmp6_ = 0; + cairo_t* _tmp7_ = NULL; + cairo_t* _tmp8_ = NULL; + cairo_t* _tmp9_ = NULL; + gint _tmp10_ = 0; + gint _tmp11_ = 0; + cairo_t* _tmp12_ = NULL; + gdouble _tmp13_ = 0.0; + gdouble _tmp14_ = 0.0; + cairo_t* _tmp15_ = NULL; + gdouble _tmp16_ = 0.0; + cairo_t* _tmp17_ = NULL; + GdkPoint _tmp18_ = {0}; + gint _tmp19_ = 0; + gdouble _tmp20_ = 0.0; + GdkPoint _tmp21_ = {0}; + gint _tmp22_ = 0; + gdouble _tmp23_ = 0.0; + cairo_t* _tmp24_ = NULL; + cairo_surface_t* _tmp25_ = NULL; + cairo_filter_t _tmp26_ = 0; + gboolean _tmp27_ = FALSE; + cairo_t* _tmp28_ = NULL; + cairo_pattern_t* _tmp29_ = NULL; + cairo_t* _tmp30_ = NULL; + gint _tmp31_ = 0; + gint _tmp32_ = 0; + cairo_t* _tmp33_ = NULL; + cairo_t* _tmp34_ = NULL; +#line 497 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 497 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (src_surf != NULL); +#line 497 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (dest_ctx != NULL); +#line 499 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = angle; +#line 499 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = degrees_to_radians (_tmp0_); +#line 499 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + angle_internal = _tmp1_; +#line 503 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = dest_ctx; +#line 503 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_identity_matrix (_tmp2_); +#line 504 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = dest_ctx; +#line 504 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_source_rgba (_tmp3_, 0.0, 0.0, 0.0, 1.0); +#line 505 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = dest_ctx; +#line 505 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = self->priv->view_width; +#line 505 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = self->priv->view_height; +#line 505 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_rectangle (_tmp4_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp5_, (gdouble) _tmp6_); +#line 506 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = dest_ctx; +#line 506 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_fill (_tmp7_); +#line 511 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = dest_ctx; +#line 511 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_identity_matrix (_tmp8_); +#line 513 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = dest_ctx; +#line 513 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = self->priv->view_width; +#line 513 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = self->priv->view_height; +#line 513 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_translate (_tmp9_, (gdouble) (_tmp10_ / 2), (gdouble) (_tmp11_ / 2)); +#line 514 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = dest_ctx; +#line 514 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = self->priv->rotate_scale; +#line 514 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = self->priv->rotate_scale; +#line 514 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_scale (_tmp12_, 1.0 / _tmp13_, 1.0 / _tmp14_); +#line 515 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = dest_ctx; +#line 515 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = angle_internal; +#line 515 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_rotate (_tmp15_, _tmp16_); +#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = dest_ctx; +#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = self->priv->rotated_center; +#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = _tmp18_.x; +#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = self->priv->preview_scale; +#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp21_ = self->priv->rotated_center; +#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp22_ = _tmp21_.y; +#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = self->priv->preview_scale; +#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_translate (_tmp17_, (-_tmp19_) * _tmp20_, (-_tmp22_) * _tmp23_); +#line 518 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp24_ = dest_ctx; +#line 518 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp25_ = src_surf; +#line 518 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_source_surface (_tmp24_, _tmp25_, (gdouble) 0, (gdouble) 0); +#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp27_ = self->priv->use_high_qual; +#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp27_) { +#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp26_ = CAIRO_FILTER_BEST; +#line 2330 "StraightenTool.c" + } else { +#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp26_ = CAIRO_FILTER_NEAREST; +#line 2334 "StraightenTool.c" + } +#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp28_ = dest_ctx; +#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp29_ = cairo_get_source (_tmp28_); +#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_pattern_set_filter (_tmp29_, _tmp26_); +#line 520 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp30_ = dest_ctx; +#line 520 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp31_ = src_width; +#line 520 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp32_ = src_height; +#line 520 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_rectangle (_tmp30_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp31_, (gdouble) _tmp32_); +#line 521 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp33_ = dest_ctx; +#line 521 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_fill (_tmp33_); +#line 522 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp34_ = dest_ctx; +#line 522 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_paint (_tmp34_); +#line 2358 "StraightenTool.c" +} + + +/** + * Superimpose a faint grid over the supplied image. + * + * @param width The total width the grid should be drawn to. + * @param height The total height the grid should be drawn to. + * @param dest_ctx The rendering context of the destination image. + */ +static void editing_tools_straighten_tool_draw_superimposed_grid (EditingToolsStraightenTool* self, cairo_t* dest_ctx, gint width, gint height) { + gint half_width = 0; + gint _tmp0_ = 0; + gint quarter_width = 0; + gint _tmp1_ = 0; + gint half_height = 0; + gint _tmp2_ = 0; + gint quarter_height = 0; + gint _tmp3_ = 0; + cairo_t* _tmp4_ = NULL; + cairo_t* _tmp5_ = NULL; + EditingToolsPhotoCanvas* _tmp6_ = NULL; + cairo_t* _tmp7_ = NULL; + gint _tmp8_ = 0; + EditingToolsPhotoCanvas* _tmp9_ = NULL; + cairo_t* _tmp10_ = NULL; + gint _tmp11_ = 0; + EditingToolsPhotoCanvas* _tmp12_ = NULL; + cairo_t* _tmp13_ = NULL; + gint _tmp14_ = 0; + gint _tmp15_ = 0; + EditingToolsPhotoCanvas* _tmp16_ = NULL; + cairo_t* _tmp17_ = NULL; + gint _tmp18_ = 0; + EditingToolsPhotoCanvas* _tmp19_ = NULL; + cairo_t* _tmp20_ = NULL; + gint _tmp21_ = 0; + EditingToolsPhotoCanvas* _tmp22_ = NULL; + cairo_t* _tmp23_ = NULL; + gint _tmp24_ = 0; + gint _tmp25_ = 0; + cairo_t* _tmp26_ = NULL; + EditingToolsPhotoCanvas* _tmp27_ = NULL; + cairo_t* _tmp28_ = NULL; + gint _tmp29_ = 0; + EditingToolsPhotoCanvas* _tmp30_ = NULL; + cairo_t* _tmp31_ = NULL; + gint _tmp32_ = 0; + EditingToolsPhotoCanvas* _tmp33_ = NULL; + cairo_t* _tmp34_ = NULL; + gint _tmp35_ = 0; + EditingToolsPhotoCanvas* _tmp36_ = NULL; + cairo_t* _tmp37_ = NULL; + gint _tmp38_ = 0; +#line 532 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self)); +#line 532 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (dest_ctx != NULL); +#line 533 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = width; +#line 533 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + half_width = _tmp0_ / 2; +#line 534 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = width; +#line 534 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + quarter_width = _tmp1_ / 4; +#line 536 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = height; +#line 536 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + half_height = _tmp2_ / 2; +#line 537 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = height; +#line 537 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + quarter_height = _tmp3_ / 4; +#line 539 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = dest_ctx; +#line 539 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_identity_matrix (_tmp4_); +#line 540 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = dest_ctx; +#line 540 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_source_rgba (_tmp5_, 1.0, 1.0, 1.0, 1.0); +#line 542 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 542 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = dest_ctx; +#line 542 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = width; +#line 542 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_horizontal_line (_tmp6_, _tmp7_, 0, 0, _tmp8_, FALSE); +#line 543 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 543 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = dest_ctx; +#line 543 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = width; +#line 543 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_horizontal_line (_tmp9_, _tmp10_, 0, half_height, _tmp11_, FALSE); +#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = dest_ctx; +#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = self->priv->view_height; +#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = width; +#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_horizontal_line (_tmp12_, _tmp13_, 0, _tmp14_ - 1, _tmp15_, FALSE); +#line 546 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 546 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = dest_ctx; +#line 546 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = height; +#line 546 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_vertical_line (_tmp16_, _tmp17_, 0, 0, _tmp18_ + 1, FALSE); +#line 547 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 547 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = dest_ctx; +#line 547 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp21_ = height; +#line 547 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_vertical_line (_tmp19_, _tmp20_, half_width, 0, _tmp21_ + 1, FALSE); +#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = dest_ctx; +#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp24_ = width; +#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp25_ = height; +#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_vertical_line (_tmp22_, _tmp23_, _tmp24_ - 1, 0, _tmp25_ + 1, FALSE); +#line 550 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp26_ = dest_ctx; +#line 550 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_source_rgba (_tmp26_, 1.0, 1.0, 1.0, 0.33); +#line 552 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp27_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 552 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp28_ = dest_ctx; +#line 552 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp29_ = width; +#line 552 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_horizontal_line (_tmp27_, _tmp28_, 0, quarter_height, _tmp29_, FALSE); +#line 553 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 553 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp31_ = dest_ctx; +#line 553 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp32_ = width; +#line 553 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_horizontal_line (_tmp30_, _tmp31_, 0, half_height + quarter_height, _tmp32_, FALSE); +#line 554 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp33_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 554 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp34_ = dest_ctx; +#line 554 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp35_ = height; +#line 554 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_vertical_line (_tmp33_, _tmp34_, quarter_width, 0, _tmp35_, FALSE); +#line 555 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp36_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas; +#line 555 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp37_ = dest_ctx; +#line 555 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp38_ = height; +#line 555 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_photo_canvas_draw_vertical_line (_tmp36_, _tmp37_, half_width + quarter_width, 0, _tmp38_, FALSE); +#line 2529 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_guide_reset (EditingToolsStraightenToolStraightenGuide* self, gint x, gint y, gdouble angle) { + gint _tmp0_ = 0; + gint _tmp1_ = 0; + gint _tmp2_[2] = {0}; + gint _tmp3_ = 0; + gint _tmp4_ = 0; + gint _tmp5_[2] = {0}; + gdouble _tmp6_ = 0.0; +#line 31 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self)); +#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = x; +#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = x; +#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_[0] = _tmp0_; +#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_[1] = _tmp1_; +#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + memcpy (self->priv->x, _tmp2_, 2 * sizeof (gint)); +#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = y; +#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = y; +#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_[0] = _tmp3_; +#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_[1] = _tmp4_; +#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + memcpy (self->priv->y, _tmp5_, 2 * sizeof (gint)); +#line 34 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->is_active = TRUE; +#line 35 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = angle; +#line 35 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->angle0 = _tmp6_; +#line 2569 "StraightenTool.c" +} + + +static gboolean editing_tools_straighten_tool_straighten_guide_update (EditingToolsStraightenToolStraightenGuide* self, gint x, gint y) { + gboolean result = FALSE; + gboolean _tmp0_ = FALSE; +#line 38 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_val_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self), FALSE); +#line 39 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->is_active; +#line 39 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp0_) { +#line 2582 "StraightenTool.c" + gint _tmp1_ = 0; + gint _tmp2_ = 0; + gint _tmp3_ = 0; + gint _tmp4_ = 0; +#line 40 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = x; +#line 40 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->x[1] = _tmp1_; +#line 40 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = self->priv->x[1]; +#line 41 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = y; +#line 41 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->y[1] = _tmp3_; +#line 41 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = self->priv->y[1]; +#line 42 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = TRUE; +#line 42 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 2603 "StraightenTool.c" + } +#line 45 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = FALSE; +#line 45 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 2609 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_guide_clear (EditingToolsStraightenToolStraightenGuide* self) { +#line 48 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self)); +#line 49 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->is_active = FALSE; +#line 2618 "StraightenTool.c" +} + + +static gdouble* _double_dup (gdouble* self) { + gdouble* dup; +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + dup = g_new0 (gdouble, 1); +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + memcpy (dup, self, sizeof (gdouble)); +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return dup; +#line 2630 "StraightenTool.c" +} + + +static gpointer __double_dup0 (gpointer self) { +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return self ? _double_dup (self) : NULL; +#line 2637 "StraightenTool.c" +} + + +static gdouble* editing_tools_straighten_tool_straighten_guide_get_angle (EditingToolsStraightenToolStraightenGuide* self) { + gdouble* result = NULL; + gdouble dx = 0.0; + gint _tmp0_ = 0; + gint _tmp1_ = 0; + gdouble dy = 0.0; + gint _tmp2_ = 0; + gint _tmp3_ = 0; + gdouble _tmp4_ = 0.0; + gdouble _tmp5_ = 0.0; + gdouble _tmp6_ = 0.0; + gdouble _tmp7_ = 0.0; + gdouble _tmp8_ = 0.0; + gdouble _tmp9_ = 0.0; + gdouble _tmp10_ = 0.0; + gdouble _tmp11_ = 0.0; +#line 52 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_val_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self), NULL); +#line 53 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->x[1]; +#line 53 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = self->priv->x[0]; +#line 53 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + dx = (gdouble) (_tmp0_ - _tmp1_); +#line 54 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = self->priv->y[1]; +#line 54 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = self->priv->y[0]; +#line 54 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + dy = (gdouble) (_tmp2_ - _tmp3_); +#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = dy; +#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = dy; +#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = dx; +#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = dx; +#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (((_tmp4_ * _tmp5_) + (_tmp6_ * _tmp7_)) < ((gdouble) 40)) { +#line 58 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = NULL; +#line 58 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 2685 "StraightenTool.c" + } +#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = dy; +#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = fabs (_tmp8_); +#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = dx; +#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = fabs (_tmp10_); +#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp9_ > _tmp11_) { +#line 2697 "StraightenTool.c" + gdouble _tmp12_ = 0.0; + gdouble _tmp13_ = 0.0; + gdouble _tmp14_ = 0.0; + gdouble _tmp15_ = 0.0; + gdouble _tmp16_ = 0.0; + gdouble* _tmp17_ = NULL; +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = self->priv->angle0; +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = dx; +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = dy; +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = atan (_tmp13_ / _tmp14_); +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = _tmp12_ + ((_tmp15_ / G_PI) * 180); +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = __double_dup0 (&_tmp16_); +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = _tmp17_; +#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 2720 "StraightenTool.c" + } else { + gdouble _tmp18_ = 0.0; + gdouble _tmp19_ = 0.0; + gdouble _tmp20_ = 0.0; + gdouble _tmp21_ = 0.0; + gdouble _tmp22_ = 0.0; + gdouble* _tmp23_ = NULL; +#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = self->priv->angle0; +#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = dy; +#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = dx; +#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp21_ = atan (_tmp19_ / _tmp20_); +#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp22_ = _tmp18_ - ((_tmp21_ / G_PI) * 180); +#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = __double_dup0 (&_tmp22_); +#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + result = _tmp23_; +#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return result; +#line 2744 "StraightenTool.c" + } +} + + +static void editing_tools_straighten_tool_straighten_guide_draw (EditingToolsStraightenToolStraightenGuide* self, cairo_t* ctx) { + gboolean _tmp0_ = FALSE; + gdouble* _tmp1_ = NULL; + gdouble* _tmp2_ = NULL; + gdouble angle = 0.0; + gdouble* _tmp5_ = NULL; + gdouble* _tmp6_ = NULL; + gdouble _tmp7_ = 0.0; + gdouble _tmp8_ = 0.0; + gdouble alpha = 0.0; + gboolean _tmp9_ = FALSE; + gdouble _tmp10_ = 0.0; + cairo_t* _tmp12_ = NULL; + gdouble _tmp13_ = 0.0; + cairo_t* _tmp14_ = NULL; + gdouble _tmp15_ = 0.0; + cairo_t* _tmp16_ = NULL; + gint _tmp17_ = 0; + gint _tmp18_ = 0; + cairo_t* _tmp19_ = NULL; + gint _tmp20_ = 0; + gint _tmp21_ = 0; + cairo_t* _tmp22_ = NULL; + cairo_t* _tmp23_ = NULL; + gdouble _tmp24_ = 0.0; + cairo_t* _tmp25_ = NULL; + gdouble _tmp26_ = 0.0; + cairo_t* _tmp27_ = NULL; + gint _tmp28_ = 0; + gint _tmp29_ = 0; + cairo_t* _tmp30_ = NULL; + gint _tmp31_ = 0; + gint _tmp32_ = 0; + cairo_t* _tmp33_ = NULL; +#line 67 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self)); +#line 67 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (ctx != NULL); +#line 68 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->priv->is_active; +#line 68 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (!_tmp0_) { +#line 69 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return; +#line 2793 "StraightenTool.c" + } +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = editing_tools_straighten_tool_straighten_guide_get_angle (self); +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = _tmp2_; +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp1_ == NULL) { +#line 2801 "StraightenTool.c" + gdouble _tmp3_ = 0.0; + gdouble* _tmp4_ = NULL; +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = 0.0; +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = __double_dup0 (&_tmp3_); +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_free0 (_tmp1_); +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = _tmp4_; +#line 2812 "StraightenTool.c" + } +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = _tmp1_; +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = NULL; +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = _tmp5_; +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = *_tmp6_; +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_free0 (_tmp6_); +#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + angle = _tmp7_; +#line 72 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = angle; +#line 72 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp8_ == 0.0) { +#line 73 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_free0 (_tmp1_); +#line 73 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return; +#line 2834 "StraightenTool.c" + } +#line 75 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + alpha = 1.0; +#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = angle; +#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp10_ < EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_ANGLE) { +#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = TRUE; +#line 2844 "StraightenTool.c" + } else { + gdouble _tmp11_ = 0.0; +#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = angle; +#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = _tmp11_ > EDITING_TOOLS_STRAIGHTEN_TOOL_MAX_ANGLE; +#line 2851 "StraightenTool.c" + } +#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (_tmp9_) { +#line 77 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + alpha = 0.35; +#line 2857 "StraightenTool.c" + } +#line 81 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = ctx; +#line 81 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = alpha; +#line 81 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_source_rgba (_tmp12_, 0.0, 0.0, 0.0, _tmp13_); +#line 82 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = ctx; +#line 82 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH[0]; +#line 82 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_dash (_tmp14_, EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH, G_N_ELEMENTS (EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH), _tmp15_ / 2); +#line 83 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = ctx; +#line 83 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = self->priv->x[0]; +#line 83 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = self->priv->y[0]; +#line 83 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_move_to (_tmp16_, _tmp17_ + 0.5, _tmp18_ + 0.5); +#line 84 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = ctx; +#line 84 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = self->priv->x[1]; +#line 84 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp21_ = self->priv->y[1]; +#line 84 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_line_to (_tmp19_, _tmp20_ + 0.5, _tmp21_ + 0.5); +#line 85 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp22_ = ctx; +#line 85 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_stroke (_tmp22_); +#line 86 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp23_ = ctx; +#line 86 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp24_ = EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH[0]; +#line 86 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_dash (_tmp23_, EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH, G_N_ELEMENTS (EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH), (-_tmp24_) / 2); +#line 87 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp25_ = ctx; +#line 87 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp26_ = alpha; +#line 87 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_set_source_rgba (_tmp25_, 1.0, 1.0, 1.0, _tmp26_); +#line 88 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp27_ = ctx; +#line 88 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp28_ = self->priv->x[0]; +#line 88 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp29_ = self->priv->y[0]; +#line 88 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_move_to (_tmp27_, _tmp28_ + 0.5, _tmp29_ + 0.5); +#line 89 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp30_ = ctx; +#line 89 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp31_ = self->priv->x[1]; +#line 89 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp32_ = self->priv->y[1]; +#line 89 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_line_to (_tmp30_, _tmp31_ + 0.5, _tmp32_ + 0.5); +#line 90 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp33_ = ctx; +#line 90 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + cairo_stroke (_tmp33_); +#line 67 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_free0 (_tmp1_); +#line 2925 "StraightenTool.c" +} + + +static EditingToolsStraightenToolStraightenGuide* editing_tools_straighten_tool_straighten_guide_construct (GType object_type) { + EditingToolsStraightenToolStraightenGuide* self = NULL; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = (EditingToolsStraightenToolStraightenGuide*) g_type_create_instance (object_type); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return self; +#line 2935 "StraightenTool.c" +} + + +static EditingToolsStraightenToolStraightenGuide* editing_tools_straighten_tool_straighten_guide_new (void) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return editing_tools_straighten_tool_straighten_guide_construct (EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE); +#line 2942 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_value_straighten_guide_init (GValue* value) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + value->data[0].v_pointer = NULL; +#line 2949 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_value_straighten_guide_free_value (GValue* value) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (value->data[0].v_pointer) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_unref (value->data[0].v_pointer); +#line 2958 "StraightenTool.c" + } +} + + +static void editing_tools_straighten_tool_value_straighten_guide_copy_value (const GValue* src_value, GValue* dest_value) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (src_value->data[0].v_pointer) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + dest_value->data[0].v_pointer = editing_tools_straighten_tool_straighten_guide_ref (src_value->data[0].v_pointer); +#line 2968 "StraightenTool.c" + } else { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + dest_value->data[0].v_pointer = NULL; +#line 2972 "StraightenTool.c" + } +} + + +static gpointer editing_tools_straighten_tool_value_straighten_guide_peek_pointer (const GValue* value) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return value->data[0].v_pointer; +#line 2980 "StraightenTool.c" +} + + +static gchar* editing_tools_straighten_tool_value_straighten_guide_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (collect_values[0].v_pointer) { +#line 2987 "StraightenTool.c" + EditingToolsStraightenToolStraightenGuide* object; + object = collect_values[0].v_pointer; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (object->parent_instance.g_class == NULL) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 2994 "StraightenTool.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.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 2998 "StraightenTool.c" + } +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + value->data[0].v_pointer = editing_tools_straighten_tool_straighten_guide_ref (object); +#line 3002 "StraightenTool.c" + } else { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + value->data[0].v_pointer = NULL; +#line 3006 "StraightenTool.c" + } +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return NULL; +#line 3010 "StraightenTool.c" +} + + +static gchar* editing_tools_straighten_tool_value_straighten_guide_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { + EditingToolsStraightenToolStraightenGuide** object_p; + object_p = collect_values[0].v_pointer; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (!object_p) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 3021 "StraightenTool.c" + } +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (!value->data[0].v_pointer) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + *object_p = NULL; +#line 3027 "StraightenTool.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + *object_p = value->data[0].v_pointer; +#line 3031 "StraightenTool.c" + } else { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + *object_p = editing_tools_straighten_tool_straighten_guide_ref (value->data[0].v_pointer); +#line 3035 "StraightenTool.c" + } +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return NULL; +#line 3039 "StraightenTool.c" +} + + +static GParamSpec* editing_tools_straighten_tool_param_spec_straighten_guide (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { + EditingToolsStraightenToolParamSpecStraightenGuide* spec; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_val_if_fail (g_type_is_a (object_type, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE), NULL); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return G_PARAM_SPEC (spec); +#line 3053 "StraightenTool.c" +} + + +static gpointer editing_tools_straighten_tool_value_get_straighten_guide (const GValue* value) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE), NULL); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return value->data[0].v_pointer; +#line 3062 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_value_set_straighten_guide (GValue* value, gpointer v_object) { + EditingToolsStraightenToolStraightenGuide* old; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE)); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + old = value->data[0].v_pointer; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (v_object) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE)); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + value->data[0].v_pointer = v_object; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_ref (value->data[0].v_pointer); +#line 3082 "StraightenTool.c" + } else { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + value->data[0].v_pointer = NULL; +#line 3086 "StraightenTool.c" + } +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (old) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_unref (old); +#line 3092 "StraightenTool.c" + } +} + + +static void editing_tools_straighten_tool_value_take_straighten_guide (GValue* value, gpointer v_object) { + EditingToolsStraightenToolStraightenGuide* old; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE)); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + old = value->data[0].v_pointer; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (v_object) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE)); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + value->data[0].v_pointer = v_object; +#line 3111 "StraightenTool.c" + } else { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + value->data[0].v_pointer = NULL; +#line 3115 "StraightenTool.c" + } +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (old) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_unref (old); +#line 3121 "StraightenTool.c" + } +} + + +static void editing_tools_straighten_tool_straighten_guide_class_init (EditingToolsStraightenToolStraightenGuideClass * klass) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_guide_parent_class = g_type_class_peek_parent (klass); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsStraightenToolStraightenGuideClass *) klass)->finalize = editing_tools_straighten_tool_straighten_guide_finalize; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_type_class_add_private (klass, sizeof (EditingToolsStraightenToolStraightenGuidePrivate)); +#line 3133 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_guide_instance_init (EditingToolsStraightenToolStraightenGuide * self) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv = EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_GET_PRIVATE (self); +#line 26 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->is_active = FALSE; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->ref_count = 1; +#line 3144 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_guide_finalize (EditingToolsStraightenToolStraightenGuide* obj) { + EditingToolsStraightenToolStraightenGuide * self; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuide); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_handlers_destroy (self); +#line 3154 "StraightenTool.c" +} + + +static GType editing_tools_straighten_tool_straighten_guide_get_type (void) { + static volatile gsize editing_tools_straighten_tool_straighten_guide_type_id__volatile = 0; + if (g_once_init_enter (&editing_tools_straighten_tool_straighten_guide_type_id__volatile)) { + static const GTypeValueTable g_define_type_value_table = { editing_tools_straighten_tool_value_straighten_guide_init, editing_tools_straighten_tool_value_straighten_guide_free_value, editing_tools_straighten_tool_value_straighten_guide_copy_value, editing_tools_straighten_tool_value_straighten_guide_peek_pointer, "p", editing_tools_straighten_tool_value_straighten_guide_collect_value, "p", editing_tools_straighten_tool_value_straighten_guide_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (EditingToolsStraightenToolStraightenGuideClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_straighten_tool_straighten_guide_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsStraightenToolStraightenGuide), 0, (GInstanceInitFunc) editing_tools_straighten_tool_straighten_guide_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_straighten_tool_straighten_guide_type_id; + editing_tools_straighten_tool_straighten_guide_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EditingToolsStraightenToolStraightenGuide", &g_define_type_info, &g_define_type_fundamental_info, 0); + g_once_init_leave (&editing_tools_straighten_tool_straighten_guide_type_id__volatile, editing_tools_straighten_tool_straighten_guide_type_id); + } + return editing_tools_straighten_tool_straighten_guide_type_id__volatile; +} + + +static gpointer editing_tools_straighten_tool_straighten_guide_ref (gpointer instance) { + EditingToolsStraightenToolStraightenGuide* self; + self = instance; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_atomic_int_inc (&self->ref_count); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return instance; +#line 3179 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_guide_unref (gpointer instance) { + EditingToolsStraightenToolStraightenGuide* self; + self = instance; +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_GET_CLASS (self)->finalize (self); +#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 3192 "StraightenTool.c" + } +} + + +/** + * Prepare straighten tool's window for use and initialize all its controls. + * + * @param container The application's main window. + */ +static void _editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) { +#line 140 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked ((EditingToolsStraightenToolStraightenToolWindow*) self); +#line 3205 "StraightenTool.c" +} + + +static EditingToolsStraightenToolStraightenToolWindow* editing_tools_straighten_tool_straighten_tool_window_construct (GType object_type, GtkWindow* container) { + EditingToolsStraightenToolStraightenToolWindow * self = NULL; + GtkWindow* _tmp0_ = NULL; + GtkScale* _tmp1_ = NULL; + GtkScale* _tmp2_ = NULL; + GtkScale* _tmp3_ = NULL; + GtkScale* _tmp4_ = NULL; + GtkLabel* _tmp5_ = NULL; + GtkLabel* _tmp6_ = NULL; + GtkLabel* _tmp7_ = NULL; + GtkBox* slider_layout = NULL; + GtkBox* _tmp8_ = NULL; + GtkScale* _tmp9_ = NULL; + GtkBox* button_layout = NULL; + GtkBox* _tmp10_ = NULL; + GtkButton* _tmp11_ = NULL; + GtkButton* _tmp12_ = NULL; + GtkButton* _tmp13_ = NULL; + GtkButton* _tmp14_ = NULL; + GtkButton* _tmp15_ = NULL; + GtkButton* _tmp16_ = NULL; + GtkBox* main_layout = NULL; + GtkBox* _tmp17_ = NULL; + GtkLabel* _tmp18_ = NULL; + GtkLabel* _tmp19_ = NULL; + GtkButton* _tmp20_ = NULL; +#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_val_if_fail (GTK_IS_WINDOW (container), NULL); +#line 110 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = container; +#line 110 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = (EditingToolsStraightenToolStraightenToolWindow*) editing_tools_editing_tool_window_construct (object_type, _tmp0_); +#line 112 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = self->angle_slider; +#line 112 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_range_set_min_slider_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_SLIDER_SIZE); +#line 113 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = self->angle_slider; +#line 113 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_SLIDER_SIZE, -1); +#line 114 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = self->angle_slider; +#line 114 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_range_get_type (), GtkRange), 0.0); +#line 115 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = self->angle_slider; +#line 115 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_scale_set_draw_value (_tmp4_, FALSE); +#line 117 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = self->description_label; +#line 117 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_misc_set_padding (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_misc_get_type (), GtkMisc), EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CONTROL_SPACING, 0); +#line 118 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = self->angle_label; +#line 118 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_misc_set_padding (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_misc_get_type (), GtkMisc), 0, 0); +#line 119 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = self->angle_label; +#line 119 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_LABEL_SIZE, -1); +#line 121 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CONTROL_SPACING); +#line 121 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp8_); +#line 121 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + slider_layout = _tmp8_; +#line 122 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp9_ = self->angle_slider; +#line 122 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_box_pack_start (slider_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 124 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp10_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CONTROL_SPACING); +#line 124 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp10_); +#line 124 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + button_layout = _tmp10_; +#line 125 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp11_ = self->cancel_button; +#line 125 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_BUTTON_SIZE, -1); +#line 126 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp12_ = self->reset_button; +#line 126 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_BUTTON_SIZE, -1); +#line 127 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp13_ = self->ok_button; +#line 127 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_BUTTON_SIZE, -1); +#line 128 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp14_ = self->cancel_button; +#line 128 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_box_pack_start (button_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 129 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp15_ = self->reset_button; +#line 129 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_box_pack_start (button_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 130 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp16_ = self->ok_button; +#line 130 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_box_pack_start (button_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 132 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp17_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#line 132 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp17_); +#line 132 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + main_layout = _tmp17_; +#line 133 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp18_ = self->description_label; +#line 133 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_box_pack_start (main_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 134 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_box_pack_start (main_layout, G_TYPE_CHECK_INSTANCE_CAST (slider_layout, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 135 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp19_ = self->angle_label; +#line 135 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_box_pack_start (main_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 136 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_box_pack_start (main_layout, G_TYPE_CHECK_INSTANCE_CAST (button_layout, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 138 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (main_layout, gtk_widget_get_type (), GtkWidget)); +#line 140 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp20_ = self->reset_button; +#line 140 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_signal_connect_object (_tmp20_, "clicked", (GCallback) _editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked_gtk_button_clicked, self, 0); +#line 142 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_window_set_position (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), GTK_WIN_POS_CENTER_ON_PARENT); +#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (main_layout); +#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (button_layout); +#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (slider_layout); +#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return self; +#line 3343 "StraightenTool.c" +} + + +static EditingToolsStraightenToolStraightenToolWindow* editing_tools_straighten_tool_straighten_tool_window_new (GtkWindow* container) { +#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + return editing_tools_straighten_tool_straighten_tool_window_construct (EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, container); +#line 3350 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked (EditingToolsStraightenToolStraightenToolWindow* self) { + GtkScale* _tmp0_ = NULL; +#line 145 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_return_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_TOOL_WINDOW (self)); +#line 146 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = self->angle_slider; +#line 146 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), 0.0); +#line 3362 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_tool_window_class_init (EditingToolsStraightenToolStraightenToolWindowClass * klass) { +#line 94 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_straighten_tool_window_parent_class = g_type_class_peek_parent (klass); +#line 94 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + G_OBJECT_CLASS (klass)->finalize = editing_tools_straighten_tool_straighten_tool_window_finalize; +#line 3371 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_tool_window_instance_init (EditingToolsStraightenToolStraightenToolWindow * self) { + GtkScale* _tmp0_ = NULL; + GtkLabel* _tmp1_ = NULL; + const gchar* _tmp2_ = NULL; + GtkLabel* _tmp3_ = NULL; + const gchar* _tmp4_ = NULL; + GtkButton* _tmp5_ = NULL; + GtkButton* _tmp6_ = NULL; + const gchar* _tmp7_ = NULL; + GtkButton* _tmp8_ = NULL; +#line 97 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_ANGLE, EDITING_TOOLS_STRAIGHTEN_TOOL_MAX_ANGLE, EDITING_TOOLS_STRAIGHTEN_TOOL_INCREMENT); +#line 97 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp0_); +#line 97 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->angle_slider = _tmp0_; +#line 98 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp1_ = (GtkLabel*) gtk_label_new (""); +#line 98 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp1_); +#line 98 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->angle_label = _tmp1_; +#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp2_ = _ ("Angle:"); +#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp3_ = (GtkLabel*) gtk_label_new (_tmp2_); +#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp3_); +#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->description_label = _tmp3_; +#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp4_ = _ ("_Straighten"); +#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp5_ = (GtkButton*) gtk_button_new_with_mnemonic (_tmp4_); +#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp5_); +#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->ok_button = _tmp5_; +#line 101 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp6_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL); +#line 101 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp6_); +#line 101 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->cancel_button = _tmp6_; +#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp7_ = _ ("_Reset"); +#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp8_ = (GtkButton*) gtk_button_new_with_mnemonic (_tmp7_); +#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_object_ref_sink (_tmp8_); +#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->reset_button = _tmp8_; +#line 3427 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_straighten_tool_window_finalize (GObject* obj) { + EditingToolsStraightenToolStraightenToolWindow * self; +#line 94 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, EditingToolsStraightenToolStraightenToolWindow); +#line 97 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->angle_slider); +#line 98 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->angle_label); +#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->description_label); +#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->ok_button); +#line 101 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->cancel_button); +#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->reset_button); +#line 94 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + G_OBJECT_CLASS (editing_tools_straighten_tool_straighten_tool_window_parent_class)->finalize (obj); +#line 3449 "StraightenTool.c" +} + + +static GType editing_tools_straighten_tool_straighten_tool_window_get_type (void) { + static volatile gsize editing_tools_straighten_tool_straighten_tool_window_type_id__volatile = 0; + if (g_once_init_enter (&editing_tools_straighten_tool_straighten_tool_window_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (EditingToolsStraightenToolStraightenToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_straighten_tool_straighten_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsStraightenToolStraightenToolWindow), 0, (GInstanceInitFunc) editing_tools_straighten_tool_straighten_tool_window_instance_init, NULL }; + GType editing_tools_straighten_tool_straighten_tool_window_type_id; + editing_tools_straighten_tool_straighten_tool_window_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, "EditingToolsStraightenToolStraightenToolWindow", &g_define_type_info, 0); + g_once_init_leave (&editing_tools_straighten_tool_straighten_tool_window_type_id__volatile, editing_tools_straighten_tool_straighten_tool_window_type_id); + } + return editing_tools_straighten_tool_straighten_tool_window_type_id__volatile; +} + + +static void editing_tools_straighten_tool_class_init (EditingToolsStraightenToolClass * klass) { +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + editing_tools_straighten_tool_parent_class = g_type_class_peek_parent (klass); +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_straighten_tool_finalize; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + g_type_class_add_private (klass, sizeof (EditingToolsStraightenToolPrivate)); +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->on_left_click = editing_tools_straighten_tool_real_on_left_click; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->on_left_released = editing_tools_straighten_tool_real_on_left_released; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->on_motion = editing_tools_straighten_tool_real_on_motion; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->on_keypress = editing_tools_straighten_tool_real_on_keypress; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->activate = editing_tools_straighten_tool_real_activate; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->deactivate = editing_tools_straighten_tool_real_deactivate; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->get_tool_window = editing_tools_straighten_tool_real_get_tool_window; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + ((EditingToolsEditingToolClass *) klass)->paint = editing_tools_straighten_tool_real_paint; +#line 3488 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_instance_init (EditingToolsStraightenTool * self) { + EditingToolsStraightenToolStraightenGuide* _tmp0_ = NULL; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv = EDITING_TOOLS_STRAIGHTEN_TOOL_GET_PRIVATE (self); +#line 163 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->photo_angle = 0.0; +#line 167 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->use_high_qual = TRUE; +#line 168 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->slider_sched = NULL; +#line 174 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _tmp0_ = editing_tools_straighten_tool_straighten_guide_new (); +#line 174 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self->priv->guide = _tmp0_; +#line 3506 "StraightenTool.c" +} + + +static void editing_tools_straighten_tool_finalize (EditingToolsEditingTool* obj) { + EditingToolsStraightenTool * self; +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool); +#line 150 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _g_object_unref0 (self->priv->window); +#line 153 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_surface_destroy0 (self->priv->photo_surf); +#line 157 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_surface_destroy0 (self->priv->rotate_surf); +#line 158 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _cairo_destroy0 (self->priv->rotate_ctx); +#line 168 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _one_shot_scheduler_unref0 (self->priv->slider_sched); +#line 174 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + _editing_tools_straighten_tool_straighten_guide_unref0 (self->priv->guide); +#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala" + EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_straighten_tool_parent_class)->finalize (obj); +#line 3528 "StraightenTool.c" +} + + +/** + * An editing tool that allows one to introduce or remove a Dutch angle from + * a photograph. + */ +GType editing_tools_straighten_tool_get_type (void) { + static volatile gsize editing_tools_straighten_tool_type_id__volatile = 0; + if (g_once_init_enter (&editing_tools_straighten_tool_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (EditingToolsStraightenToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_straighten_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsStraightenTool), 0, (GInstanceInitFunc) editing_tools_straighten_tool_instance_init, NULL }; + GType editing_tools_straighten_tool_type_id; + editing_tools_straighten_tool_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL, "EditingToolsStraightenTool", &g_define_type_info, 0); + g_once_init_leave (&editing_tools_straighten_tool_type_id__volatile, editing_tools_straighten_tool_type_id); + } + return editing_tools_straighten_tool_type_id__volatile; +} + + + |