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

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU LGPL (version 2.1 or later).
 * See the COPYING file in this distribution.
 */


#include <glib.h>
#include <glib-object.h>
#include <string.h>
#include <gdk/gdk.h>
#include <cairo.h>
#include <gtk/gtk.h>
#include <float.h>
#include <math.h>
#include <stdlib.h>


#define TYPE_BOX_LOCATION (box_location_get_type ())

#define TYPE_BOX_COMPLEMENTS (box_complements_get_type ())

#define TYPE_BOX (box_get_type ())
typedef struct _Box Box;

#define TYPE_DIMENSIONS (dimensions_get_type ())
typedef struct _Dimensions Dimensions;
#define _g_free0(var) (var = (g_free (var), NULL))
#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  {
	BOX_LOCATION_OUTSIDE,
	BOX_LOCATION_INSIDE,
	BOX_LOCATION_TOP_SIDE,
	BOX_LOCATION_LEFT_SIDE,
	BOX_LOCATION_RIGHT_SIDE,
	BOX_LOCATION_BOTTOM_SIDE,
	BOX_LOCATION_TOP_LEFT,
	BOX_LOCATION_BOTTOM_LEFT,
	BOX_LOCATION_TOP_RIGHT,
	BOX_LOCATION_BOTTOM_RIGHT
} BoxLocation;

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

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

struct _Dimensions {
	gint width;
	gint height;
};



GType box_location_get_type (void) G_GNUC_CONST;
GType box_complements_get_type (void) G_GNUC_CONST;
BoxComplements box_complements_derive (gboolean horizontal_complement,
                                       gboolean vertical_complement);
GType box_get_type (void) G_GNUC_CONST;
Box* box_dup (const Box* self);
void box_free (Box* self);
#define BOX_HAND_GRENADES 12
void box_init (Box *self,
               gint left,
               gint top,
               gint right,
               gint bottom);
void box_from_rectangle (GdkRectangle* rect,
                         Box* result);
void box_from_allocation (GtkAllocation* alloc,
                          Box* result);
void box_from_points (GdkPoint* corner1,
                      GdkPoint* corner2,
                      Box* result);
void box_from_center (GdkPoint* center,
                      gint width,
                      gint height,
                      Box* result);
gint box_get_width (Box *self);
gint box_get_height (Box *self);
gboolean box_is_valid (Box *self);
gboolean box_equals (Box *self,
                     Box* box);
void box_adjust_width (Box *self,
                       gint width);
void box_adjust_height (Box *self,
                        gint height);
GType dimensions_get_type (void) G_GNUC_CONST;
Dimensions* dimensions_dup (const Dimensions* self);
void dimensions_free (Dimensions* self);
void box_get_scaled (Box *self,
                     Dimensions* scaled,
                     Box* result);
void box_get_dimensions (Box *self,
                         Dimensions* result);
void dimensions_get_scale_ratios (Dimensions *self,
                                  Dimensions* scaled,
                                  gdouble* width_ratio,
                                  gdouble* height_ratio);
void box_get_scaled_similar (Box *self,
                             Dimensions* original,
                             Dimensions* scaled,
                             Box* result);
void box_get_offset (Box *self,
                     gint xofs,
                     gint yofs,
                     Box* result);
void dimensions_init (Dimensions *self,
                      gint width,
                      gint height);
void box_get_points (Box *self,
                     GdkPoint* top_left,
                     GdkPoint* bottom_right);
void box_get_rectangle (Box *self,
                        GdkRectangle* result);
void box_get_center (Box *self,
                     GdkPoint* result);
void box_rotate_clockwise (Box *self,
                           Dimensions* space,
                           Box* result);
void box_rotate_counterclockwise (Box *self,
                                  Dimensions* space,
                                  Box* result);
void box_flip_left_to_right (Box *self,
                             Dimensions* space,
                             Box* result);
void box_flip_top_to_bottom (Box *self,
                             Dimensions* space,
                             Box* result);
gboolean box_intersects (Box *self,
                         Box* compare);
void box_get_reduced (Box *self,
                      gint amount,
                      Box* result);
void box_get_expanded (Box *self,
                       gint amount,
                       Box* result);
gboolean box_contains (Box *self,
                       GdkPoint* point);
BoxComplements box_resized_complements (Box *self,
                                        Box* resized,
                                        Box* horizontal,
                                        gboolean* horizontal_enlarged,
                                        Box* vertical,
                                        gboolean* vertical_enlarged);
BoxComplements box_shifted_complements (Box *self,
                                        Box* shifted,
                                        Box* horizontal_this,
                                        Box* vertical_this,
                                        Box* horizontal_shifted,
                                        Box* vertical_shifted);
void box_rubber_band (Box *self,
                      GdkPoint* point,
                      Box* result);
gchar* box_to_string (Box *self);
gchar* dimensions_to_string (Dimensions *self);
static gboolean box_in_zone (gdouble pos,
                      gint zone);
static gboolean box_in_between (gdouble pos,
                         gint top,
                         gint bottom);
static gboolean box_near_in_between (gdouble pos,
                              gint top,
                              gint bottom);
BoxLocation box_approx_location (Box *self,
                                 gint x,
                                 gint y);


GType
box_location_get_type (void)
{
	static volatile gsize box_location_type_id__volatile = 0;
	if (g_once_init_enter (&box_location_type_id__volatile)) {
		static const GEnumValue values[] = {{BOX_LOCATION_OUTSIDE, "BOX_LOCATION_OUTSIDE", "outside"}, {BOX_LOCATION_INSIDE, "BOX_LOCATION_INSIDE", "inside"}, {BOX_LOCATION_TOP_SIDE, "BOX_LOCATION_TOP_SIDE", "top-side"}, {BOX_LOCATION_LEFT_SIDE, "BOX_LOCATION_LEFT_SIDE", "left-side"}, {BOX_LOCATION_RIGHT_SIDE, "BOX_LOCATION_RIGHT_SIDE", "right-side"}, {BOX_LOCATION_BOTTOM_SIDE, "BOX_LOCATION_BOTTOM_SIDE", "bottom-side"}, {BOX_LOCATION_TOP_LEFT, "BOX_LOCATION_TOP_LEFT", "top-left"}, {BOX_LOCATION_BOTTOM_LEFT, "BOX_LOCATION_BOTTOM_LEFT", "bottom-left"}, {BOX_LOCATION_TOP_RIGHT, "BOX_LOCATION_TOP_RIGHT", "top-right"}, {BOX_LOCATION_BOTTOM_RIGHT, "BOX_LOCATION_BOTTOM_RIGHT", "bottom-right"}, {0, NULL, NULL}};
		GType box_location_type_id;
		box_location_type_id = g_enum_register_static ("BoxLocation", values);
		g_once_init_leave (&box_location_type_id__volatile, box_location_type_id);
	}
	return box_location_type_id__volatile;
}


BoxComplements
box_complements_derive (gboolean horizontal_complement,
                        gboolean vertical_complement)
{
	BoxComplements result = 0;
	gboolean _tmp0_ = FALSE;
#line 27 "/home/jens/Source/shotwell/src/Box.vala"
	if (horizontal_complement) {
#line 27 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = vertical_complement;
#line 211 "Box.c"
	} else {
#line 27 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = FALSE;
#line 215 "Box.c"
	}
#line 27 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp0_) {
#line 28 "/home/jens/Source/shotwell/src/Box.vala"
		result = BOX_COMPLEMENTS_BOTH;
#line 28 "/home/jens/Source/shotwell/src/Box.vala"
		return result;
#line 223 "Box.c"
	} else {
#line 29 "/home/jens/Source/shotwell/src/Box.vala"
		if (horizontal_complement) {
#line 30 "/home/jens/Source/shotwell/src/Box.vala"
			result = BOX_COMPLEMENTS_HORIZONTAL;
#line 30 "/home/jens/Source/shotwell/src/Box.vala"
			return result;
#line 231 "Box.c"
		} else {
#line 31 "/home/jens/Source/shotwell/src/Box.vala"
			if (vertical_complement) {
#line 32 "/home/jens/Source/shotwell/src/Box.vala"
				result = BOX_COMPLEMENTS_VERTICAL;
#line 32 "/home/jens/Source/shotwell/src/Box.vala"
				return result;
#line 239 "Box.c"
			}
		}
	}
#line 34 "/home/jens/Source/shotwell/src/Box.vala"
	result = BOX_COMPLEMENTS_NONE;
#line 34 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 247 "Box.c"
}


GType
box_complements_get_type (void)
{
	static volatile gsize box_complements_type_id__volatile = 0;
	if (g_once_init_enter (&box_complements_type_id__volatile)) {
		static const GEnumValue values[] = {{BOX_COMPLEMENTS_NONE, "BOX_COMPLEMENTS_NONE", "none"}, {BOX_COMPLEMENTS_VERTICAL, "BOX_COMPLEMENTS_VERTICAL", "vertical"}, {BOX_COMPLEMENTS_HORIZONTAL, "BOX_COMPLEMENTS_HORIZONTAL", "horizontal"}, {BOX_COMPLEMENTS_BOTH, "BOX_COMPLEMENTS_BOTH", "both"}, {0, NULL, NULL}};
		GType box_complements_type_id;
		box_complements_type_id = g_enum_register_static ("BoxComplements", values);
		g_once_init_leave (&box_complements_type_id__volatile, box_complements_type_id);
	}
	return box_complements_type_id__volatile;
}


void
box_init (Box *self,
          gint left,
          gint top,
          gint right,
          gint bottom)
{
#line 46 "/home/jens/Source/shotwell/src/Box.vala"
	memset (self, 0, sizeof (Box));
#line 48 "/home/jens/Source/shotwell/src/Box.vala"
	left = CLAMP (left, 0, G_MAXINT);
#line 49 "/home/jens/Source/shotwell/src/Box.vala"
	top = CLAMP (top, 0, G_MAXINT);
#line 53 "/home/jens/Source/shotwell/src/Box.vala"
	if (right <= left) {
#line 54 "/home/jens/Source/shotwell/src/Box.vala"
		right = left + 1;
#line 282 "Box.c"
	}
#line 56 "/home/jens/Source/shotwell/src/Box.vala"
	if (bottom <= top) {
#line 57 "/home/jens/Source/shotwell/src/Box.vala"
		bottom = top + 1;
#line 288 "Box.c"
	}
#line 59 "/home/jens/Source/shotwell/src/Box.vala"
	(*self).left = left;
#line 60 "/home/jens/Source/shotwell/src/Box.vala"
	(*self).top = top;
#line 61 "/home/jens/Source/shotwell/src/Box.vala"
	(*self).right = right;
#line 62 "/home/jens/Source/shotwell/src/Box.vala"
	(*self).bottom = bottom;
#line 298 "Box.c"
}


void
box_from_rectangle (GdkRectangle* rect,
                    Box* result)
{
	GdkRectangle _tmp0_;
	gint _tmp1_;
	GdkRectangle _tmp2_;
	gint _tmp3_;
	GdkRectangle _tmp4_;
	gint _tmp5_;
	GdkRectangle _tmp6_;
	gint _tmp7_;
	GdkRectangle _tmp8_;
	gint _tmp9_;
	GdkRectangle _tmp10_;
	gint _tmp11_;
	Box _tmp12_ = {0};
#line 65 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (rect != NULL);
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *rect;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.x;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = *rect;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = _tmp2_.y;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = *rect;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = _tmp4_.x;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = *rect;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = _tmp6_.width;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp8_ = *rect;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp9_ = _tmp8_.y;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp10_ = *rect;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp11_ = _tmp10_.height;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp12_, _tmp1_, _tmp3_, (_tmp5_ + _tmp7_) - 1, (_tmp9_ + _tmp11_) - 1);
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp12_;
#line 66 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 351 "Box.c"
}


void
box_from_allocation (GtkAllocation* alloc,
                     Box* result)
{
	GtkAllocation _tmp0_;
	gint _tmp1_;
	GtkAllocation _tmp2_;
	gint _tmp3_;
	GtkAllocation _tmp4_;
	gint _tmp5_;
	GtkAllocation _tmp6_;
	gint _tmp7_;
	GtkAllocation _tmp8_;
	gint _tmp9_;
	GtkAllocation _tmp10_;
	gint _tmp11_;
	Box _tmp12_ = {0};
#line 69 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (alloc != NULL);
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *alloc;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.x;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = *alloc;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = _tmp2_.y;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = *alloc;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = _tmp4_.x;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = *alloc;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = _tmp6_.width;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp8_ = *alloc;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp9_ = _tmp8_.y;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp10_ = *alloc;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp11_ = _tmp10_.height;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp12_, _tmp1_, _tmp3_, (_tmp5_ + _tmp7_) - 1, (_tmp9_ + _tmp11_) - 1);
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp12_;
#line 70 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 404 "Box.c"
}


void
box_from_points (GdkPoint* corner1,
                 GdkPoint* corner2,
                 Box* result)
{
	GdkPoint _tmp0_;
	gint _tmp1_;
	GdkPoint _tmp2_;
	gint _tmp3_;
	GdkPoint _tmp4_;
	gint _tmp5_;
	GdkPoint _tmp6_;
	gint _tmp7_;
	GdkPoint _tmp8_;
	gint _tmp9_;
	GdkPoint _tmp10_;
	gint _tmp11_;
	GdkPoint _tmp12_;
	gint _tmp13_;
	GdkPoint _tmp14_;
	gint _tmp15_;
	Box _tmp16_ = {0};
#line 75 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (corner1 != NULL);
#line 75 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (corner2 != NULL);
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *corner1;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.x;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = *corner2;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = _tmp2_.x;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = *corner1;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = _tmp4_.y;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = *corner2;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = _tmp6_.y;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp8_ = *corner1;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp9_ = _tmp8_.x;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp10_ = *corner2;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp11_ = _tmp10_.x;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp12_ = *corner1;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp13_ = _tmp12_.y;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp14_ = *corner2;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp15_ = _tmp14_.y;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp16_, MIN (_tmp1_, _tmp3_), MIN (_tmp5_, _tmp7_), MAX (_tmp9_, _tmp11_), MAX (_tmp13_, _tmp15_));
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp16_;
#line 76 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 472 "Box.c"
}


void
box_from_center (GdkPoint* center,
                 gint width,
                 gint height,
                 Box* result)
{
	GdkPoint _tmp0_;
	gint _tmp1_;
	GdkPoint _tmp2_;
	gint _tmp3_;
	GdkPoint _tmp4_;
	gint _tmp5_;
	GdkPoint _tmp6_;
	gint _tmp7_;
	Box _tmp8_ = {0};
#line 80 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (center != NULL);
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *center;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.x;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = *center;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = _tmp2_.y;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = *center;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = _tmp4_.x;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = *center;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = _tmp6_.y;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp8_, _tmp1_ - (width / 2), _tmp3_ - (height / 2), _tmp5_ + (width / 2), _tmp7_ + (height / 2));
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp8_;
#line 81 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 515 "Box.c"
}


gint
box_get_width (Box *self)
{
	gint result = 0;
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
#line 86 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).right;
#line 86 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).left;
#line 86 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_assert (_tmp0_ >= _tmp1_, "right >= left");
#line 88 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).right;
#line 88 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).left;
#line 88 "/home/jens/Source/shotwell/src/Box.vala"
	result = (_tmp2_ - _tmp3_) + 1;
#line 88 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 541 "Box.c"
}


gint
box_get_height (Box *self)
{
	gint result = 0;
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
#line 92 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).bottom;
#line 92 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).top;
#line 92 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_assert (_tmp0_ >= _tmp1_, "bottom >= top");
#line 94 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).bottom;
#line 94 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).top;
#line 94 "/home/jens/Source/shotwell/src/Box.vala"
	result = (_tmp2_ - _tmp3_) + 1;
#line 94 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 567 "Box.c"
}


gboolean
box_is_valid (Box *self)
{
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gint _tmp3_;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).left;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp3_ >= 0) {
#line 583 "Box.c"
		gint _tmp4_;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp4_ = (*self).top;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp2_ = _tmp4_ >= 0;
#line 589 "Box.c"
	} else {
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp2_ = FALSE;
#line 593 "Box.c"
	}
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp2_) {
#line 597 "Box.c"
		gint _tmp5_;
		gint _tmp6_;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp5_ = (*self).right;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp6_ = (*self).left;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp1_ = _tmp5_ >= _tmp6_;
#line 606 "Box.c"
	} else {
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp1_ = FALSE;
#line 610 "Box.c"
	}
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp1_) {
#line 614 "Box.c"
		gint _tmp7_;
		gint _tmp8_;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp7_ = (*self).bottom;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp8_ = (*self).top;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = _tmp7_ >= _tmp8_;
#line 623 "Box.c"
	} else {
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = FALSE;
#line 627 "Box.c"
	}
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
	result = _tmp0_;
#line 98 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 633 "Box.c"
}


gboolean
box_equals (Box *self,
            Box* box)
{
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gint _tmp3_;
	Box _tmp4_;
	gint _tmp5_;
#line 101 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_val_if_fail (box != NULL, FALSE);
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).left;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = *box;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = _tmp4_.left;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp3_ == _tmp5_) {
#line 658 "Box.c"
		gint _tmp6_;
		Box _tmp7_;
		gint _tmp8_;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp6_ = (*self).top;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp7_ = *box;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp8_ = _tmp7_.top;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp2_ = _tmp6_ == _tmp8_;
#line 670 "Box.c"
	} else {
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp2_ = FALSE;
#line 674 "Box.c"
	}
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp2_) {
#line 678 "Box.c"
		gint _tmp9_;
		Box _tmp10_;
		gint _tmp11_;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp9_ = (*self).right;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp10_ = *box;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp11_ = _tmp10_.right;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp1_ = _tmp9_ == _tmp11_;
#line 690 "Box.c"
	} else {
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp1_ = FALSE;
#line 694 "Box.c"
	}
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp1_) {
#line 698 "Box.c"
		gint _tmp12_;
		Box _tmp13_;
		gint _tmp14_;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp12_ = (*self).bottom;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp13_ = *box;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp14_ = _tmp13_.bottom;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = _tmp12_ == _tmp14_;
#line 710 "Box.c"
	} else {
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = FALSE;
#line 714 "Box.c"
	}
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
	result = _tmp0_;
#line 102 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 720 "Box.c"
}


void
box_adjust_width (Box *self,
                  gint width)
{
	gint center_x = 0;
	gint _tmp0_;
	gint _tmp1_;
#line 107 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 107 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).right;
#line 107 "/home/jens/Source/shotwell/src/Box.vala"
	center_x = (_tmp0_ + _tmp1_) / 2;
#line 108 "/home/jens/Source/shotwell/src/Box.vala"
	(*self).left = center_x - (width / 2);
#line 109 "/home/jens/Source/shotwell/src/Box.vala"
	(*self).right = center_x + (width / 2);
#line 741 "Box.c"
}


void
box_adjust_height (Box *self,
                   gint height)
{
	gint center_y = 0;
	gint _tmp0_;
	gint _tmp1_;
#line 114 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).top;
#line 114 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).bottom;
#line 114 "/home/jens/Source/shotwell/src/Box.vala"
	center_y = (_tmp0_ + _tmp1_) / 2;
#line 115 "/home/jens/Source/shotwell/src/Box.vala"
	(*self).top = center_y - (height / 2);
#line 116 "/home/jens/Source/shotwell/src/Box.vala"
	(*self).bottom = center_y + (height / 2);
#line 762 "Box.c"
}


void
box_get_scaled (Box *self,
                Dimensions* scaled,
                Box* result)
{
	gdouble x_scale = 0.0;
	gdouble y_scale = 0.0;
	Dimensions _tmp0_ = {0};
	Dimensions _tmp1_;
	gdouble _tmp2_ = 0.0;
	gdouble _tmp3_ = 0.0;
	gint l = 0;
	gint _tmp4_;
	gdouble _tmp5_;
	gint t = 0;
	gint _tmp6_;
	gdouble _tmp7_;
	gint r = 0;
	gint _tmp8_;
	Dimensions _tmp9_;
	gint _tmp10_;
	gint b = 0;
	gint _tmp11_;
	Dimensions _tmp12_;
	gint _tmp13_;
	Box box = {0};
	gint _tmp14_;
	gint _tmp15_;
	gint _tmp16_;
	gint _tmp17_;
	gboolean _tmp18_ = FALSE;
	Dimensions _tmp19_;
	gint _tmp20_;
#line 119 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (scaled != NULL);
#line 121 "/home/jens/Source/shotwell/src/Box.vala"
	box_get_dimensions (&(*self), &_tmp0_);
#line 121 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = *scaled;
#line 121 "/home/jens/Source/shotwell/src/Box.vala"
	dimensions_get_scale_ratios (&_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
#line 121 "/home/jens/Source/shotwell/src/Box.vala"
	x_scale = _tmp2_;
#line 121 "/home/jens/Source/shotwell/src/Box.vala"
	y_scale = _tmp3_;
#line 123 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = (*self).left;
#line 123 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = x_scale;
#line 123 "/home/jens/Source/shotwell/src/Box.vala"
	l = (gint) round (((gdouble) _tmp4_) * _tmp5_);
#line 124 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = (*self).top;
#line 124 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = y_scale;
#line 124 "/home/jens/Source/shotwell/src/Box.vala"
	t = (gint) round (((gdouble) _tmp6_) * _tmp7_);
#line 127 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp8_ = l;
#line 127 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp9_ = *scaled;
#line 127 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp10_ = _tmp9_.width;
#line 127 "/home/jens/Source/shotwell/src/Box.vala"
	r = (_tmp8_ + _tmp10_) - 1;
#line 128 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp11_ = t;
#line 128 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp12_ = *scaled;
#line 128 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp13_ = _tmp12_.height;
#line 128 "/home/jens/Source/shotwell/src/Box.vala"
	b = (_tmp11_ + _tmp13_) - 1;
#line 130 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp14_ = l;
#line 130 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp15_ = t;
#line 130 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp16_ = r;
#line 130 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp17_ = b;
#line 130 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&box, _tmp14_, _tmp15_, _tmp16_, _tmp17_);
#line 131 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp19_ = *scaled;
#line 131 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp20_ = _tmp19_.width;
#line 131 "/home/jens/Source/shotwell/src/Box.vala"
	if (box_get_width (&box) == _tmp20_) {
#line 131 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp18_ = TRUE;
#line 857 "Box.c"
	} else {
		Dimensions _tmp21_;
		gint _tmp22_;
#line 131 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp21_ = *scaled;
#line 131 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp22_ = _tmp21_.height;
#line 131 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp18_ = box_get_height (&box) == _tmp22_;
#line 867 "Box.c"
	}
#line 131 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_assert (_tmp18_, "box.get_width() == scaled.width || box.get_height() == scaled.height");
#line 133 "/home/jens/Source/shotwell/src/Box.vala"
	*result = box;
#line 133 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 875 "Box.c"
}


void
box_get_scaled_similar (Box *self,
                        Dimensions* original,
                        Dimensions* scaled,
                        Box* result)
{
	gdouble x_scale = 0.0;
	gdouble y_scale = 0.0;
	Dimensions _tmp0_;
	gdouble _tmp1_ = 0.0;
	gdouble _tmp2_ = 0.0;
	gint l = 0;
	gint _tmp3_;
	gdouble _tmp4_;
	gint t = 0;
	gint _tmp5_;
	gdouble _tmp6_;
	gint r = 0;
	gint _tmp7_;
	gdouble _tmp8_;
	gint b = 0;
	gint _tmp9_;
	gdouble _tmp10_;
	gint _tmp11_;
	Dimensions _tmp12_;
	gint _tmp13_;
	gint _tmp16_;
	Dimensions _tmp17_;
	gint _tmp18_;
	gint _tmp21_;
	gint _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	Box _tmp25_ = {0};
#line 136 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (original != NULL);
#line 136 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (scaled != NULL);
#line 138 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *scaled;
#line 138 "/home/jens/Source/shotwell/src/Box.vala"
	dimensions_get_scale_ratios (original, &_tmp0_, &_tmp1_, &_tmp2_);
#line 138 "/home/jens/Source/shotwell/src/Box.vala"
	x_scale = _tmp1_;
#line 138 "/home/jens/Source/shotwell/src/Box.vala"
	y_scale = _tmp2_;
#line 140 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).left;
#line 140 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = x_scale;
#line 140 "/home/jens/Source/shotwell/src/Box.vala"
	l = (gint) round (((gdouble) _tmp3_) * _tmp4_);
#line 141 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = (*self).top;
#line 141 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = y_scale;
#line 141 "/home/jens/Source/shotwell/src/Box.vala"
	t = (gint) round (((gdouble) _tmp5_) * _tmp6_);
#line 142 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = (*self).right;
#line 142 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp8_ = x_scale;
#line 142 "/home/jens/Source/shotwell/src/Box.vala"
	r = (gint) round (((gdouble) _tmp7_) * _tmp8_);
#line 143 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp9_ = (*self).bottom;
#line 143 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp10_ = y_scale;
#line 143 "/home/jens/Source/shotwell/src/Box.vala"
	b = (gint) round (((gdouble) _tmp9_) * _tmp10_);
#line 146 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp11_ = r;
#line 146 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp12_ = *scaled;
#line 146 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp13_ = _tmp12_.width;
#line 146 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp11_ >= _tmp13_) {
#line 957 "Box.c"
		Dimensions _tmp14_;
		gint _tmp15_;
#line 147 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp14_ = *scaled;
#line 147 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp15_ = _tmp14_.width;
#line 147 "/home/jens/Source/shotwell/src/Box.vala"
		r = _tmp15_ - 1;
#line 966 "Box.c"
	}
#line 149 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp16_ = b;
#line 149 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp17_ = *scaled;
#line 149 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp18_ = _tmp17_.height;
#line 149 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp16_ >= _tmp18_) {
#line 976 "Box.c"
		Dimensions _tmp19_;
		gint _tmp20_;
#line 150 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp19_ = *scaled;
#line 150 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp20_ = _tmp19_.height;
#line 150 "/home/jens/Source/shotwell/src/Box.vala"
		b = _tmp20_ - 1;
#line 985 "Box.c"
	}
#line 152 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp21_ = l;
#line 152 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp22_ = t;
#line 152 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp23_ = r;
#line 152 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp24_ = b;
#line 152 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp25_, _tmp21_, _tmp22_, _tmp23_, _tmp24_);
#line 152 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp25_;
#line 152 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1001 "Box.c"
}


void
box_get_offset (Box *self,
                gint xofs,
                gint yofs,
                Box* result)
{
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	Box _tmp4_ = {0};
#line 156 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 156 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).top;
#line 156 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).right;
#line 156 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).bottom;
#line 156 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp4_, _tmp0_ + xofs, _tmp1_ + yofs, _tmp2_ + xofs, _tmp3_ + yofs);
#line 156 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp4_;
#line 156 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1030 "Box.c"
}


void
box_get_dimensions (Box *self,
                    Dimensions* result)
{
	Dimensions _tmp0_ = {0};
#line 160 "/home/jens/Source/shotwell/src/Box.vala"
	dimensions_init (&_tmp0_, box_get_width (&(*self)), box_get_height (&(*self)));
#line 160 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp0_;
#line 160 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1045 "Box.c"
}


void
box_get_points (Box *self,
                GdkPoint* top_left,
                GdkPoint* bottom_right)
{
	GdkPoint _vala_top_left = {0};
	GdkPoint _vala_bottom_right = {0};
	gint _tmp0_;
	gint _tmp1_;
	GdkPoint _tmp2_ = {0};
	gint _tmp3_;
	gint _tmp4_;
	GdkPoint _tmp5_ = {0};
#line 164 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 164 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).top;
#line 164 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_.x = _tmp0_;
#line 164 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_.y = _tmp1_;
#line 164 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_top_left = _tmp2_;
#line 165 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).right;
#line 165 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = (*self).bottom;
#line 165 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_.x = _tmp3_;
#line 165 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_.y = _tmp4_;
#line 165 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_bottom_right = _tmp5_;
#line 163 "/home/jens/Source/shotwell/src/Box.vala"
	if (top_left) {
#line 163 "/home/jens/Source/shotwell/src/Box.vala"
		*top_left = _vala_top_left;
#line 1086 "Box.c"
	}
#line 163 "/home/jens/Source/shotwell/src/Box.vala"
	if (bottom_right) {
#line 163 "/home/jens/Source/shotwell/src/Box.vala"
		*bottom_right = _vala_bottom_right;
#line 1092 "Box.c"
	}
}


void
box_get_rectangle (Box *self,
                   GdkRectangle* result)
{
	GdkRectangle rect = {0};
	gint _tmp0_;
	gint _tmp1_;
#line 169 "/home/jens/Source/shotwell/src/Box.vala"
	memset (&rect, 0, sizeof (GdkRectangle));
#line 170 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 170 "/home/jens/Source/shotwell/src/Box.vala"
	rect.x = _tmp0_;
#line 171 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).top;
#line 171 "/home/jens/Source/shotwell/src/Box.vala"
	rect.y = _tmp1_;
#line 172 "/home/jens/Source/shotwell/src/Box.vala"
	rect.width = box_get_width (&(*self));
#line 173 "/home/jens/Source/shotwell/src/Box.vala"
	rect.height = box_get_height (&(*self));
#line 175 "/home/jens/Source/shotwell/src/Box.vala"
	*result = rect;
#line 175 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1122 "Box.c"
}


void
box_get_center (Box *self,
                GdkPoint* result)
{
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GdkPoint _tmp4_ = {0};
#line 179 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 179 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).right;
#line 179 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).top;
#line 179 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).bottom;
#line 179 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_.x = (_tmp0_ + _tmp1_) / 2;
#line 179 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_.y = (_tmp2_ + _tmp3_) / 2;
#line 179 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp4_;
#line 179 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1151 "Box.c"
}


void
box_rotate_clockwise (Box *self,
                      Dimensions* space,
                      Box* result)
{
	gint l = 0;
	Dimensions _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint t = 0;
	gint _tmp3_;
	gint r = 0;
	Dimensions _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gint b = 0;
	gint _tmp7_;
	Box _tmp8_ = {0};
#line 182 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (space != NULL);
#line 183 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *space;
#line 183 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.width;
#line 183 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).bottom;
#line 183 "/home/jens/Source/shotwell/src/Box.vala"
	l = (_tmp1_ - _tmp2_) - 1;
#line 184 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).left;
#line 184 "/home/jens/Source/shotwell/src/Box.vala"
	t = _tmp3_;
#line 185 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = *space;
#line 185 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = _tmp4_.width;
#line 185 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = (*self).top;
#line 185 "/home/jens/Source/shotwell/src/Box.vala"
	r = (_tmp5_ - _tmp6_) - 1;
#line 186 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = (*self).right;
#line 186 "/home/jens/Source/shotwell/src/Box.vala"
	b = _tmp7_;
#line 188 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp8_, l, t, r, b);
#line 188 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp8_;
#line 188 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1205 "Box.c"
}


void
box_rotate_counterclockwise (Box *self,
                             Dimensions* space,
                             Box* result)
{
	gint l = 0;
	gint _tmp0_;
	gint t = 0;
	Dimensions _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gint r = 0;
	gint _tmp4_;
	gint b = 0;
	Dimensions _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	Box _tmp8_ = {0};
#line 191 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (space != NULL);
#line 192 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).top;
#line 192 "/home/jens/Source/shotwell/src/Box.vala"
	l = _tmp0_;
#line 193 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = *space;
#line 193 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = _tmp1_.height;
#line 193 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).right;
#line 193 "/home/jens/Source/shotwell/src/Box.vala"
	t = (_tmp2_ - _tmp3_) - 1;
#line 194 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = (*self).bottom;
#line 194 "/home/jens/Source/shotwell/src/Box.vala"
	r = _tmp4_;
#line 195 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = *space;
#line 195 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = _tmp5_.height;
#line 195 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = (*self).left;
#line 195 "/home/jens/Source/shotwell/src/Box.vala"
	b = (_tmp6_ - _tmp7_) - 1;
#line 197 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp8_, l, t, r, b);
#line 197 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp8_;
#line 197 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1259 "Box.c"
}


void
box_flip_left_to_right (Box *self,
                        Dimensions* space,
                        Box* result)
{
	gint l = 0;
	Dimensions _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint r = 0;
	Dimensions _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	Box _tmp8_ = {0};
#line 200 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (space != NULL);
#line 201 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *space;
#line 201 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.width;
#line 201 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).right;
#line 201 "/home/jens/Source/shotwell/src/Box.vala"
	l = (_tmp1_ - _tmp2_) - 1;
#line 202 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = *space;
#line 202 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = _tmp3_.width;
#line 202 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = (*self).left;
#line 202 "/home/jens/Source/shotwell/src/Box.vala"
	r = (_tmp4_ - _tmp5_) - 1;
#line 204 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = (*self).top;
#line 204 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = (*self).bottom;
#line 204 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp8_, l, _tmp6_, r, _tmp7_);
#line 204 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp8_;
#line 204 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1307 "Box.c"
}


void
box_flip_top_to_bottom (Box *self,
                        Dimensions* space,
                        Box* result)
{
	gint t = 0;
	Dimensions _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint b = 0;
	Dimensions _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	Box _tmp8_ = {0};
#line 207 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (space != NULL);
#line 208 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *space;
#line 208 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.height;
#line 208 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).bottom;
#line 208 "/home/jens/Source/shotwell/src/Box.vala"
	t = (_tmp1_ - _tmp2_) - 1;
#line 209 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = *space;
#line 209 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = _tmp3_.height;
#line 209 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = (*self).top;
#line 209 "/home/jens/Source/shotwell/src/Box.vala"
	b = (_tmp4_ - _tmp5_) - 1;
#line 211 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = (*self).left;
#line 211 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = (*self).right;
#line 211 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp8_, _tmp6_, t, _tmp7_, b);
#line 211 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp8_;
#line 211 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1355 "Box.c"
}


gboolean
box_intersects (Box *self,
                Box* compare)
{
	gboolean result = FALSE;
	gint left_intersect = 0;
	gint _tmp0_;
	Box _tmp1_;
	gint _tmp2_;
	gint top_intersect = 0;
	gint _tmp3_;
	Box _tmp4_;
	gint _tmp5_;
	gint right_intersect = 0;
	gint _tmp6_;
	Box _tmp7_;
	gint _tmp8_;
	gint bottom_intersect = 0;
	gint _tmp9_;
	Box _tmp10_;
	gint _tmp11_;
	gboolean _tmp12_ = FALSE;
	gint _tmp13_;
	gint _tmp14_;
#line 214 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_val_if_fail (compare != NULL, FALSE);
#line 215 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 215 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = *compare;
#line 215 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = _tmp1_.left;
#line 215 "/home/jens/Source/shotwell/src/Box.vala"
	left_intersect = MAX (_tmp0_, _tmp2_);
#line 216 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).top;
#line 216 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = *compare;
#line 216 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = _tmp4_.top;
#line 216 "/home/jens/Source/shotwell/src/Box.vala"
	top_intersect = MAX (_tmp3_, _tmp5_);
#line 217 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = (*self).right;
#line 217 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = *compare;
#line 217 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp8_ = _tmp7_.right;
#line 217 "/home/jens/Source/shotwell/src/Box.vala"
	right_intersect = MIN (_tmp6_, _tmp8_);
#line 218 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp9_ = (*self).bottom;
#line 218 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp10_ = *compare;
#line 218 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp11_ = _tmp10_.bottom;
#line 218 "/home/jens/Source/shotwell/src/Box.vala"
	bottom_intersect = MIN (_tmp9_, _tmp11_);
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp13_ = right_intersect;
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp14_ = left_intersect;
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp13_ >= _tmp14_) {
#line 1423 "Box.c"
		gint _tmp15_;
		gint _tmp16_;
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp15_ = bottom_intersect;
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp16_ = top_intersect;
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp12_ = _tmp15_ >= _tmp16_;
#line 1432 "Box.c"
	} else {
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp12_ = FALSE;
#line 1436 "Box.c"
	}
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
	result = _tmp12_;
#line 220 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 1442 "Box.c"
}


void
box_get_reduced (Box *self,
                 gint amount,
                 Box* result)
{
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	Box _tmp4_ = {0};
#line 224 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 224 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).top;
#line 224 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).right;
#line 224 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).bottom;
#line 224 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp4_, _tmp0_ + amount, _tmp1_ + amount, _tmp2_ - amount, _tmp3_ - amount);
#line 224 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp4_;
#line 224 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1470 "Box.c"
}


void
box_get_expanded (Box *self,
                  gint amount,
                  Box* result)
{
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	Box _tmp4_ = {0};
#line 228 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 228 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).top;
#line 228 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).right;
#line 228 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).bottom;
#line 228 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp4_, _tmp0_ - amount, _tmp1_ - amount, _tmp2_ + amount, _tmp3_ + amount);
#line 228 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp4_;
#line 228 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 1498 "Box.c"
}


gboolean
box_contains (Box *self,
              GdkPoint* point)
{
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	GdkPoint _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
#line 231 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_val_if_fail (point != NULL, FALSE);
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = *point;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = _tmp3_.x;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = (*self).left;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp4_ >= _tmp5_) {
#line 1523 "Box.c"
		GdkPoint _tmp6_;
		gint _tmp7_;
		gint _tmp8_;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp6_ = *point;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp7_ = _tmp6_.x;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp8_ = (*self).right;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp2_ = _tmp7_ <= _tmp8_;
#line 1535 "Box.c"
	} else {
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp2_ = FALSE;
#line 1539 "Box.c"
	}
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp2_) {
#line 1543 "Box.c"
		GdkPoint _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp9_ = *point;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp10_ = _tmp9_.y;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp11_ = (*self).top;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp1_ = _tmp10_ >= _tmp11_;
#line 1555 "Box.c"
	} else {
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp1_ = FALSE;
#line 1559 "Box.c"
	}
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp1_) {
#line 1563 "Box.c"
		GdkPoint _tmp12_;
		gint _tmp13_;
		gint _tmp14_;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp12_ = *point;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp13_ = _tmp12_.y;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp14_ = (*self).bottom;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = _tmp13_ <= _tmp14_;
#line 1575 "Box.c"
	} else {
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = FALSE;
#line 1579 "Box.c"
	}
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
	result = _tmp0_;
#line 232 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 1585 "Box.c"
}


BoxComplements
box_resized_complements (Box *self,
                         Box* resized,
                         Box* horizontal,
                         gboolean* horizontal_enlarged,
                         Box* vertical,
                         gboolean* vertical_enlarged)
{
	Box _vala_horizontal = {0};
	gboolean _vala_horizontal_enlarged = FALSE;
	Box _vala_vertical = {0};
	gboolean _vala_vertical_enlarged = FALSE;
	BoxComplements result = 0;
	gboolean horizontal_complement = FALSE;
	Box _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gboolean vertical_complement = FALSE;
	Box _tmp36_;
	gint _tmp37_;
	gint _tmp38_;
	gboolean _tmp72_;
	gboolean _tmp73_;
#line 238 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_val_if_fail (resized != NULL, 0);
#line 241 "/home/jens/Source/shotwell/src/Box.vala"
	horizontal_complement = TRUE;
#line 242 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *resized;
#line 242 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.top;
#line 242 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).top;
#line 242 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp1_ < _tmp2_) {
#line 1624 "Box.c"
		Box _tmp3_;
		gint _tmp4_;
		Box _tmp5_;
		gint _tmp6_;
		Box _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
#line 244 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp3_ = *resized;
#line 244 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp4_ = _tmp3_.left;
#line 244 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp5_ = *resized;
#line 244 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp6_ = _tmp5_.top;
#line 244 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp7_ = *resized;
#line 244 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp8_ = _tmp7_.right;
#line 244 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp9_ = (*self).top;
#line 244 "/home/jens/Source/shotwell/src/Box.vala"
		box_init (&_vala_horizontal, _tmp4_, _tmp6_, _tmp8_, _tmp9_);
#line 245 "/home/jens/Source/shotwell/src/Box.vala"
		_vala_horizontal_enlarged = TRUE;
#line 1650 "Box.c"
	} else {
		Box _tmp10_;
		gint _tmp11_;
		gint _tmp12_;
#line 246 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp10_ = *resized;
#line 246 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp11_ = _tmp10_.top;
#line 246 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp12_ = (*self).top;
#line 246 "/home/jens/Source/shotwell/src/Box.vala"
		if (_tmp11_ > _tmp12_) {
#line 1663 "Box.c"
			gint _tmp13_;
			gint _tmp14_;
			gint _tmp15_;
			Box _tmp16_;
			gint _tmp17_;
#line 248 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp13_ = (*self).left;
#line 248 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp14_ = (*self).top;
#line 248 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp15_ = (*self).right;
#line 248 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp16_ = *resized;
#line 248 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp17_ = _tmp16_.top;
#line 248 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_horizontal, _tmp13_, _tmp14_, _tmp15_, _tmp17_);
#line 249 "/home/jens/Source/shotwell/src/Box.vala"
			_vala_horizontal_enlarged = FALSE;
#line 1683 "Box.c"
		} else {
			Box _tmp18_;
			gint _tmp19_;
			gint _tmp20_;
#line 250 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp18_ = *resized;
#line 250 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp19_ = _tmp18_.bottom;
#line 250 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp20_ = (*self).bottom;
#line 250 "/home/jens/Source/shotwell/src/Box.vala"
			if (_tmp19_ < _tmp20_) {
#line 1696 "Box.c"
				gint _tmp21_;
				Box _tmp22_;
				gint _tmp23_;
				gint _tmp24_;
				gint _tmp25_;
#line 252 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp21_ = (*self).left;
#line 252 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp22_ = *resized;
#line 252 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp23_ = _tmp22_.bottom;
#line 252 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp24_ = (*self).right;
#line 252 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp25_ = (*self).bottom;
#line 252 "/home/jens/Source/shotwell/src/Box.vala"
				box_init (&_vala_horizontal, _tmp21_, _tmp23_, _tmp24_, _tmp25_);
#line 253 "/home/jens/Source/shotwell/src/Box.vala"
				_vala_horizontal_enlarged = FALSE;
#line 1716 "Box.c"
			} else {
				Box _tmp26_;
				gint _tmp27_;
				gint _tmp28_;
#line 254 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp26_ = *resized;
#line 254 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp27_ = _tmp26_.bottom;
#line 254 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp28_ = (*self).bottom;
#line 254 "/home/jens/Source/shotwell/src/Box.vala"
				if (_tmp27_ > _tmp28_) {
#line 1729 "Box.c"
					Box _tmp29_;
					gint _tmp30_;
					gint _tmp31_;
					Box _tmp32_;
					gint _tmp33_;
					Box _tmp34_;
					gint _tmp35_;
#line 256 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp29_ = *resized;
#line 256 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp30_ = _tmp29_.left;
#line 256 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp31_ = (*self).bottom;
#line 256 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp32_ = *resized;
#line 256 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp33_ = _tmp32_.right;
#line 256 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp34_ = *resized;
#line 256 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp35_ = _tmp34_.bottom;
#line 256 "/home/jens/Source/shotwell/src/Box.vala"
					box_init (&_vala_horizontal, _tmp30_, _tmp31_, _tmp33_, _tmp35_);
#line 257 "/home/jens/Source/shotwell/src/Box.vala"
					_vala_horizontal_enlarged = TRUE;
#line 1755 "Box.c"
				} else {
#line 259 "/home/jens/Source/shotwell/src/Box.vala"
					box_init (&_vala_horizontal, 0, 0, 0, 0);
#line 260 "/home/jens/Source/shotwell/src/Box.vala"
					_vala_horizontal_enlarged = FALSE;
#line 261 "/home/jens/Source/shotwell/src/Box.vala"
					horizontal_complement = FALSE;
#line 1763 "Box.c"
				}
			}
		}
	}
#line 264 "/home/jens/Source/shotwell/src/Box.vala"
	vertical_complement = TRUE;
#line 265 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp36_ = *resized;
#line 265 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp37_ = _tmp36_.left;
#line 265 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp38_ = (*self).left;
#line 265 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp37_ < _tmp38_) {
#line 1778 "Box.c"
		Box _tmp39_;
		gint _tmp40_;
		Box _tmp41_;
		gint _tmp42_;
		gint _tmp43_;
		Box _tmp44_;
		gint _tmp45_;
#line 267 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp39_ = *resized;
#line 267 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp40_ = _tmp39_.left;
#line 267 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp41_ = *resized;
#line 267 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp42_ = _tmp41_.top;
#line 267 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp43_ = (*self).left;
#line 267 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp44_ = *resized;
#line 267 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp45_ = _tmp44_.bottom;
#line 267 "/home/jens/Source/shotwell/src/Box.vala"
		box_init (&_vala_vertical, _tmp40_, _tmp42_, _tmp43_, _tmp45_);
#line 268 "/home/jens/Source/shotwell/src/Box.vala"
		_vala_vertical_enlarged = TRUE;
#line 1804 "Box.c"
	} else {
		Box _tmp46_;
		gint _tmp47_;
		gint _tmp48_;
#line 269 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp46_ = *resized;
#line 269 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp47_ = _tmp46_.left;
#line 269 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp48_ = (*self).left;
#line 269 "/home/jens/Source/shotwell/src/Box.vala"
		if (_tmp47_ > _tmp48_) {
#line 1817 "Box.c"
			gint _tmp49_;
			gint _tmp50_;
			Box _tmp51_;
			gint _tmp52_;
			gint _tmp53_;
#line 271 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp49_ = (*self).left;
#line 271 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp50_ = (*self).top;
#line 271 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp51_ = *resized;
#line 271 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp52_ = _tmp51_.left;
#line 271 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp53_ = (*self).bottom;
#line 271 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_vertical, _tmp49_, _tmp50_, _tmp52_, _tmp53_);
#line 272 "/home/jens/Source/shotwell/src/Box.vala"
			_vala_vertical_enlarged = FALSE;
#line 1837 "Box.c"
		} else {
			Box _tmp54_;
			gint _tmp55_;
			gint _tmp56_;
#line 273 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp54_ = *resized;
#line 273 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp55_ = _tmp54_.right;
#line 273 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp56_ = (*self).right;
#line 273 "/home/jens/Source/shotwell/src/Box.vala"
			if (_tmp55_ < _tmp56_) {
#line 1850 "Box.c"
				Box _tmp57_;
				gint _tmp58_;
				gint _tmp59_;
				gint _tmp60_;
				gint _tmp61_;
#line 275 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp57_ = *resized;
#line 275 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp58_ = _tmp57_.right;
#line 275 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp59_ = (*self).top;
#line 275 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp60_ = (*self).right;
#line 275 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp61_ = (*self).bottom;
#line 275 "/home/jens/Source/shotwell/src/Box.vala"
				box_init (&_vala_vertical, _tmp58_, _tmp59_, _tmp60_, _tmp61_);
#line 276 "/home/jens/Source/shotwell/src/Box.vala"
				_vala_vertical_enlarged = FALSE;
#line 1870 "Box.c"
			} else {
				Box _tmp62_;
				gint _tmp63_;
				gint _tmp64_;
#line 277 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp62_ = *resized;
#line 277 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp63_ = _tmp62_.right;
#line 277 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp64_ = (*self).right;
#line 277 "/home/jens/Source/shotwell/src/Box.vala"
				if (_tmp63_ > _tmp64_) {
#line 1883 "Box.c"
					gint _tmp65_;
					Box _tmp66_;
					gint _tmp67_;
					Box _tmp68_;
					gint _tmp69_;
					Box _tmp70_;
					gint _tmp71_;
#line 279 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp65_ = (*self).right;
#line 279 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp66_ = *resized;
#line 279 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp67_ = _tmp66_.top;
#line 279 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp68_ = *resized;
#line 279 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp69_ = _tmp68_.right;
#line 279 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp70_ = *resized;
#line 279 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp71_ = _tmp70_.bottom;
#line 279 "/home/jens/Source/shotwell/src/Box.vala"
					box_init (&_vala_vertical, _tmp65_, _tmp67_, _tmp69_, _tmp71_);
#line 280 "/home/jens/Source/shotwell/src/Box.vala"
					_vala_vertical_enlarged = TRUE;
#line 1909 "Box.c"
				} else {
#line 282 "/home/jens/Source/shotwell/src/Box.vala"
					box_init (&_vala_vertical, 0, 0, 0, 0);
#line 283 "/home/jens/Source/shotwell/src/Box.vala"
					_vala_vertical_enlarged = FALSE;
#line 284 "/home/jens/Source/shotwell/src/Box.vala"
					vertical_complement = FALSE;
#line 1917 "Box.c"
				}
			}
		}
	}
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp72_ = horizontal_complement;
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp73_ = vertical_complement;
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
	result = box_complements_derive (_tmp72_, _tmp73_);
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
	if (horizontal) {
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
		*horizontal = _vala_horizontal;
#line 1932 "Box.c"
	}
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
	if (horizontal_enlarged) {
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
		*horizontal_enlarged = _vala_horizontal_enlarged;
#line 1938 "Box.c"
	}
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
	if (vertical) {
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
		*vertical = _vala_vertical;
#line 1944 "Box.c"
	}
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
	if (vertical_enlarged) {
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
		*vertical_enlarged = _vala_vertical_enlarged;
#line 1950 "Box.c"
	}
#line 287 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 1954 "Box.c"
}


BoxComplements
box_shifted_complements (Box *self,
                         Box* shifted,
                         Box* horizontal_this,
                         Box* vertical_this,
                         Box* horizontal_shifted,
                         Box* vertical_shifted)
{
	Box _vala_horizontal_this = {0};
	Box _vala_vertical_this = {0};
	Box _vala_horizontal_shifted = {0};
	Box _vala_vertical_shifted = {0};
	BoxComplements result = 0;
	gboolean horizontal_complement = FALSE;
	gboolean _tmp0_ = FALSE;
	Box _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gboolean vertical_complement = FALSE;
	gboolean _tmp38_ = FALSE;
	Box _tmp39_;
	gint _tmp40_;
	gint _tmp41_;
	gboolean _tmp76_;
	gboolean _tmp77_;
#line 293 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_val_if_fail (shifted != NULL, 0);
#line 295 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_assert (box_get_width (&(*self)) == box_get_width (shifted), "get_width() == shifted.get_width()");
#line 296 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_assert (box_get_height (&(*self)) == box_get_height (shifted), "get_height() == shifted.get_height()");
#line 298 "/home/jens/Source/shotwell/src/Box.vala"
	horizontal_complement = TRUE;
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = *shifted;
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = _tmp1_.top;
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).top;
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp2_ < _tmp3_) {
#line 1999 "Box.c"
		Box _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp4_ = *shifted;
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp5_ = _tmp4_.bottom;
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp6_ = (*self).top;
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = _tmp5_ > _tmp6_;
#line 2011 "Box.c"
	} else {
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = FALSE;
#line 2015 "Box.c"
	}
#line 299 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp0_) {
#line 2019 "Box.c"
		gint _tmp7_;
		Box _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
		Box _tmp12_;
		gint _tmp13_;
		Box _tmp14_;
		gint _tmp15_;
		Box _tmp16_;
		gint _tmp17_;
		gint _tmp18_;
#line 301 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp7_ = (*self).left;
#line 301 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp8_ = *shifted;
#line 301 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp9_ = _tmp8_.bottom;
#line 301 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp10_ = (*self).right;
#line 301 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp11_ = (*self).bottom;
#line 301 "/home/jens/Source/shotwell/src/Box.vala"
		box_init (&_vala_horizontal_this, _tmp7_, _tmp9_, _tmp10_, _tmp11_);
#line 302 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp12_ = *shifted;
#line 302 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp13_ = _tmp12_.left;
#line 302 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp14_ = *shifted;
#line 302 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp15_ = _tmp14_.top;
#line 302 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp16_ = *shifted;
#line 302 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp17_ = _tmp16_.right;
#line 302 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp18_ = (*self).top;
#line 302 "/home/jens/Source/shotwell/src/Box.vala"
		box_init (&_vala_horizontal_shifted, _tmp13_, _tmp15_, _tmp17_, _tmp18_);
#line 2060 "Box.c"
	} else {
		gboolean _tmp19_ = FALSE;
		Box _tmp20_;
		gint _tmp21_;
		gint _tmp22_;
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp20_ = *shifted;
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp21_ = _tmp20_.top;
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp22_ = (*self).top;
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
		if (_tmp21_ > _tmp22_) {
#line 2074 "Box.c"
			Box _tmp23_;
			gint _tmp24_;
			gint _tmp25_;
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp23_ = *shifted;
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp24_ = _tmp23_.top;
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp25_ = (*self).bottom;
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp19_ = _tmp24_ < _tmp25_;
#line 2086 "Box.c"
		} else {
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp19_ = FALSE;
#line 2090 "Box.c"
		}
#line 303 "/home/jens/Source/shotwell/src/Box.vala"
		if (_tmp19_) {
#line 2094 "Box.c"
			gint _tmp26_;
			gint _tmp27_;
			gint _tmp28_;
			Box _tmp29_;
			gint _tmp30_;
			Box _tmp31_;
			gint _tmp32_;
			gint _tmp33_;
			Box _tmp34_;
			gint _tmp35_;
			Box _tmp36_;
			gint _tmp37_;
#line 305 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp26_ = (*self).left;
#line 305 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp27_ = (*self).top;
#line 305 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp28_ = (*self).right;
#line 305 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp29_ = *shifted;
#line 305 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp30_ = _tmp29_.top;
#line 305 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_horizontal_this, _tmp26_, _tmp27_, _tmp28_, _tmp30_);
#line 306 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp31_ = *shifted;
#line 306 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp32_ = _tmp31_.left;
#line 306 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp33_ = (*self).bottom;
#line 306 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp34_ = *shifted;
#line 306 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp35_ = _tmp34_.right;
#line 306 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp36_ = *shifted;
#line 306 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp37_ = _tmp36_.bottom;
#line 306 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_horizontal_shifted, _tmp32_, _tmp33_, _tmp35_, _tmp37_);
#line 2135 "Box.c"
		} else {
#line 309 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_horizontal_this, 0, 0, 0, 0);
#line 310 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_horizontal_shifted, 0, 0, 0, 0);
#line 311 "/home/jens/Source/shotwell/src/Box.vala"
			horizontal_complement = FALSE;
#line 2143 "Box.c"
		}
	}
#line 314 "/home/jens/Source/shotwell/src/Box.vala"
	vertical_complement = TRUE;
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp39_ = *shifted;
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp40_ = _tmp39_.left;
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp41_ = (*self).left;
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp40_ < _tmp41_) {
#line 2156 "Box.c"
		Box _tmp42_;
		gint _tmp43_;
		gint _tmp44_;
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp42_ = *shifted;
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp43_ = _tmp42_.right;
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp44_ = (*self).left;
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp38_ = _tmp43_ > _tmp44_;
#line 2168 "Box.c"
	} else {
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp38_ = FALSE;
#line 2172 "Box.c"
	}
#line 315 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp38_) {
#line 2176 "Box.c"
		Box _tmp45_;
		gint _tmp46_;
		gint _tmp47_;
		gint _tmp48_;
		gint _tmp49_;
		Box _tmp50_;
		gint _tmp51_;
		Box _tmp52_;
		gint _tmp53_;
		gint _tmp54_;
		Box _tmp55_;
		gint _tmp56_;
#line 317 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp45_ = *shifted;
#line 317 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp46_ = _tmp45_.right;
#line 317 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp47_ = (*self).top;
#line 317 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp48_ = (*self).right;
#line 317 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp49_ = (*self).bottom;
#line 317 "/home/jens/Source/shotwell/src/Box.vala"
		box_init (&_vala_vertical_this, _tmp46_, _tmp47_, _tmp48_, _tmp49_);
#line 318 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp50_ = *shifted;
#line 318 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp51_ = _tmp50_.left;
#line 318 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp52_ = *shifted;
#line 318 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp53_ = _tmp52_.top;
#line 318 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp54_ = (*self).left;
#line 318 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp55_ = *shifted;
#line 318 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp56_ = _tmp55_.bottom;
#line 318 "/home/jens/Source/shotwell/src/Box.vala"
		box_init (&_vala_vertical_shifted, _tmp51_, _tmp53_, _tmp54_, _tmp56_);
#line 2217 "Box.c"
	} else {
		gboolean _tmp57_ = FALSE;
		Box _tmp58_;
		gint _tmp59_;
		gint _tmp60_;
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp58_ = *shifted;
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp59_ = _tmp58_.left;
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp60_ = (*self).left;
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
		if (_tmp59_ > _tmp60_) {
#line 2231 "Box.c"
			Box _tmp61_;
			gint _tmp62_;
			gint _tmp63_;
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp61_ = *shifted;
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp62_ = _tmp61_.left;
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp63_ = (*self).right;
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp57_ = _tmp62_ < _tmp63_;
#line 2243 "Box.c"
		} else {
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp57_ = FALSE;
#line 2247 "Box.c"
		}
#line 319 "/home/jens/Source/shotwell/src/Box.vala"
		if (_tmp57_) {
#line 2251 "Box.c"
			gint _tmp64_;
			gint _tmp65_;
			Box _tmp66_;
			gint _tmp67_;
			gint _tmp68_;
			gint _tmp69_;
			Box _tmp70_;
			gint _tmp71_;
			Box _tmp72_;
			gint _tmp73_;
			Box _tmp74_;
			gint _tmp75_;
#line 321 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp64_ = (*self).left;
#line 321 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp65_ = (*self).top;
#line 321 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp66_ = *shifted;
#line 321 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp67_ = _tmp66_.left;
#line 321 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp68_ = (*self).bottom;
#line 321 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_vertical_this, _tmp64_, _tmp65_, _tmp67_, _tmp68_);
#line 322 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp69_ = (*self).right;
#line 322 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp70_ = *shifted;
#line 322 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp71_ = _tmp70_.top;
#line 322 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp72_ = *shifted;
#line 322 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp73_ = _tmp72_.right;
#line 322 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp74_ = *shifted;
#line 322 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp75_ = _tmp74_.bottom;
#line 322 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_vertical_shifted, _tmp69_, _tmp71_, _tmp73_, _tmp75_);
#line 2292 "Box.c"
		} else {
#line 325 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_vertical_this, 0, 0, 0, 0);
#line 326 "/home/jens/Source/shotwell/src/Box.vala"
			box_init (&_vala_vertical_shifted, 0, 0, 0, 0);
#line 327 "/home/jens/Source/shotwell/src/Box.vala"
			vertical_complement = FALSE;
#line 2300 "Box.c"
		}
	}
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp76_ = horizontal_complement;
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp77_ = vertical_complement;
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
	result = box_complements_derive (_tmp76_, _tmp77_);
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
	if (horizontal_this) {
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
		*horizontal_this = _vala_horizontal_this;
#line 2313 "Box.c"
	}
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
	if (vertical_this) {
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
		*vertical_this = _vala_vertical_this;
#line 2319 "Box.c"
	}
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
	if (horizontal_shifted) {
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
		*horizontal_shifted = _vala_horizontal_shifted;
#line 2325 "Box.c"
	}
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
	if (vertical_shifted) {
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
		*vertical_shifted = _vala_vertical_shifted;
#line 2331 "Box.c"
	}
#line 330 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 2335 "Box.c"
}


void
box_rubber_band (Box *self,
                 GdkPoint* point,
                 Box* result)
{
	GdkPoint _tmp0_;
	gint _tmp1_;
	GdkPoint _tmp2_;
	gint _tmp3_;
	gint t = 0;
	gint _tmp4_;
	GdkPoint _tmp5_;
	gint _tmp6_;
	gint b = 0;
	gint _tmp7_;
	GdkPoint _tmp8_;
	gint _tmp9_;
	gint l = 0;
	gint _tmp10_;
	GdkPoint _tmp11_;
	gint _tmp12_;
	gint r = 0;
	gint _tmp13_;
	GdkPoint _tmp14_;
	gint _tmp15_;
	Box _tmp16_ = {0};
#line 333 "/home/jens/Source/shotwell/src/Box.vala"
	g_return_if_fail (point != NULL);
#line 334 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = *point;
#line 334 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = _tmp0_.x;
#line 334 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_assert (_tmp1_ >= 0, "point.x >= 0");
#line 335 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = *point;
#line 335 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = _tmp2_.y;
#line 335 "/home/jens/Source/shotwell/src/Box.vala"
	_vala_assert (_tmp3_ >= 0, "point.y >= 0");
#line 337 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp4_ = (*self).top;
#line 337 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = *point;
#line 337 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = _tmp5_.y;
#line 337 "/home/jens/Source/shotwell/src/Box.vala"
	t = MIN (_tmp4_, _tmp6_);
#line 338 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = (*self).bottom;
#line 338 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp8_ = *point;
#line 338 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp9_ = _tmp8_.y;
#line 338 "/home/jens/Source/shotwell/src/Box.vala"
	b = MAX (_tmp7_, _tmp9_);
#line 339 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp10_ = (*self).left;
#line 339 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp11_ = *point;
#line 339 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp12_ = _tmp11_.x;
#line 339 "/home/jens/Source/shotwell/src/Box.vala"
	l = MIN (_tmp10_, _tmp12_);
#line 340 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp13_ = (*self).right;
#line 340 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp14_ = *point;
#line 340 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp15_ = _tmp14_.x;
#line 340 "/home/jens/Source/shotwell/src/Box.vala"
	r = MAX (_tmp13_, _tmp15_);
#line 342 "/home/jens/Source/shotwell/src/Box.vala"
	box_init (&_tmp16_, l, t, r, b);
#line 342 "/home/jens/Source/shotwell/src/Box.vala"
	*result = _tmp16_;
#line 342 "/home/jens/Source/shotwell/src/Box.vala"
	return;
#line 2417 "Box.c"
}


gchar*
box_to_string (Box *self)
{
	gchar* result = NULL;
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	Dimensions _tmp4_ = {0};
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).top;
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).right;
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).bottom;
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	box_get_dimensions (&(*self), &_tmp4_);
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = dimensions_to_string (&_tmp4_);
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp6_ = _tmp5_;
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp7_ = g_strdup_printf ("%d,%d %d,%d (%s)", _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp6_);
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp8_ = _tmp7_;
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	_g_free0 (_tmp6_);
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	result = _tmp8_;
#line 346 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 2458 "Box.c"
}


static gboolean
box_in_zone (gdouble pos,
             gint zone)
{
	gboolean result = FALSE;
	gint top_zone = 0;
	gint bottom_zone = 0;
#line 350 "/home/jens/Source/shotwell/src/Box.vala"
	top_zone = zone - BOX_HAND_GRENADES;
#line 351 "/home/jens/Source/shotwell/src/Box.vala"
	bottom_zone = zone + BOX_HAND_GRENADES;
#line 353 "/home/jens/Source/shotwell/src/Box.vala"
	result = box_in_between (pos, top_zone, bottom_zone);
#line 353 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 2477 "Box.c"
}


static gboolean
box_in_between (gdouble pos,
                gint top,
                gint bottom)
{
	gboolean result = FALSE;
	gint ipos = 0;
	gboolean _tmp0_ = FALSE;
	gint _tmp1_;
#line 357 "/home/jens/Source/shotwell/src/Box.vala"
	ipos = (gint) pos;
#line 359 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = ipos;
#line 359 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp1_ > top) {
#line 2496 "Box.c"
		gint _tmp2_;
#line 359 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp2_ = ipos;
#line 359 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = _tmp2_ < bottom;
#line 2502 "Box.c"
	} else {
#line 359 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = FALSE;
#line 2506 "Box.c"
	}
#line 359 "/home/jens/Source/shotwell/src/Box.vala"
	result = _tmp0_;
#line 359 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 2512 "Box.c"
}


static gboolean
box_near_in_between (gdouble pos,
                     gint top,
                     gint bottom)
{
	gboolean result = FALSE;
	gint ipos = 0;
	gint top_zone = 0;
	gint bottom_zone = 0;
	gboolean _tmp0_ = FALSE;
	gint _tmp1_;
	gint _tmp2_;
#line 363 "/home/jens/Source/shotwell/src/Box.vala"
	ipos = (gint) pos;
#line 364 "/home/jens/Source/shotwell/src/Box.vala"
	top_zone = top - BOX_HAND_GRENADES;
#line 365 "/home/jens/Source/shotwell/src/Box.vala"
	bottom_zone = bottom + BOX_HAND_GRENADES;
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = ipos;
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = top_zone;
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp1_ > _tmp2_) {
#line 2540 "Box.c"
		gint _tmp3_;
		gint _tmp4_;
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp3_ = ipos;
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp4_ = bottom_zone;
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = _tmp3_ < _tmp4_;
#line 2549 "Box.c"
	} else {
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp0_ = FALSE;
#line 2553 "Box.c"
	}
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
	result = _tmp0_;
#line 367 "/home/jens/Source/shotwell/src/Box.vala"
	return result;
#line 2559 "Box.c"
}


BoxLocation
box_approx_location (Box *self,
                     gint x,
                     gint y)
{
	BoxLocation result = 0;
	gboolean near_width = FALSE;
	gint _tmp0_;
	gint _tmp1_;
	gboolean near_height = FALSE;
	gint _tmp2_;
	gint _tmp3_;
	gboolean _tmp4_ = FALSE;
	gint _tmp5_;
#line 371 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp0_ = (*self).left;
#line 371 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp1_ = (*self).right;
#line 371 "/home/jens/Source/shotwell/src/Box.vala"
	near_width = box_near_in_between ((gdouble) x, _tmp0_, _tmp1_);
#line 372 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp2_ = (*self).top;
#line 372 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp3_ = (*self).bottom;
#line 372 "/home/jens/Source/shotwell/src/Box.vala"
	near_height = box_near_in_between ((gdouble) y, _tmp2_, _tmp3_);
#line 374 "/home/jens/Source/shotwell/src/Box.vala"
	_tmp5_ = (*self).left;
#line 374 "/home/jens/Source/shotwell/src/Box.vala"
	if (box_in_zone ((gdouble) x, _tmp5_)) {
#line 2593 "Box.c"
		gboolean _tmp6_;
#line 374 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp6_ = near_height;
#line 374 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp4_ = _tmp6_;
#line 2599 "Box.c"
	} else {
#line 374 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp4_ = FALSE;
#line 2603 "Box.c"
	}
#line 374 "/home/jens/Source/shotwell/src/Box.vala"
	if (_tmp4_) {
#line 2607 "Box.c"
		gint _tmp7_;
#line 375 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp7_ = (*self).top;
#line 375 "/home/jens/Source/shotwell/src/Box.vala"
		if (box_in_zone ((gdouble) y, _tmp7_)) {
#line 376 "/home/jens/Source/shotwell/src/Box.vala"
			result = BOX_LOCATION_TOP_LEFT;
#line 376 "/home/jens/Source/shotwell/src/Box.vala"
			return result;
#line 2617 "Box.c"
		} else {
			gint _tmp8_;
#line 377 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp8_ = (*self).bottom;
#line 377 "/home/jens/Source/shotwell/src/Box.vala"
			if (box_in_zone ((gdouble) y, _tmp8_)) {
#line 378 "/home/jens/Source/shotwell/src/Box.vala"
				result = BOX_LOCATION_BOTTOM_LEFT;
#line 378 "/home/jens/Source/shotwell/src/Box.vala"
				return result;
#line 2628 "Box.c"
			} else {
#line 380 "/home/jens/Source/shotwell/src/Box.vala"
				result = BOX_LOCATION_LEFT_SIDE;
#line 380 "/home/jens/Source/shotwell/src/Box.vala"
				return result;
#line 2634 "Box.c"
			}
		}
	} else {
		gboolean _tmp9_ = FALSE;
		gint _tmp10_;
#line 382 "/home/jens/Source/shotwell/src/Box.vala"
		_tmp10_ = (*self).right;
#line 382 "/home/jens/Source/shotwell/src/Box.vala"
		if (box_in_zone ((gdouble) x, _tmp10_)) {
#line 2644 "Box.c"
			gboolean _tmp11_;
#line 382 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp11_ = near_height;
#line 382 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp9_ = _tmp11_;
#line 2650 "Box.c"
		} else {
#line 382 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp9_ = FALSE;
#line 2654 "Box.c"
		}
#line 382 "/home/jens/Source/shotwell/src/Box.vala"
		if (_tmp9_) {
#line 2658 "Box.c"
			gint _tmp12_;
#line 383 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp12_ = (*self).top;
#line 383 "/home/jens/Source/shotwell/src/Box.vala"
			if (box_in_zone ((gdouble) y, _tmp12_)) {
#line 384 "/home/jens/Source/shotwell/src/Box.vala"
				result = BOX_LOCATION_TOP_RIGHT;
#line 384 "/home/jens/Source/shotwell/src/Box.vala"
				return result;
#line 2668 "Box.c"
			} else {
				gint _tmp13_;
#line 385 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp13_ = (*self).bottom;
#line 385 "/home/jens/Source/shotwell/src/Box.vala"
				if (box_in_zone ((gdouble) y, _tmp13_)) {
#line 386 "/home/jens/Source/shotwell/src/Box.vala"
					result = BOX_LOCATION_BOTTOM_RIGHT;
#line 386 "/home/jens/Source/shotwell/src/Box.vala"
					return result;
#line 2679 "Box.c"
				} else {
#line 388 "/home/jens/Source/shotwell/src/Box.vala"
					result = BOX_LOCATION_RIGHT_SIDE;
#line 388 "/home/jens/Source/shotwell/src/Box.vala"
					return result;
#line 2685 "Box.c"
				}
			}
		} else {
			gboolean _tmp14_ = FALSE;
			gint _tmp15_;
#line 390 "/home/jens/Source/shotwell/src/Box.vala"
			_tmp15_ = (*self).top;
#line 390 "/home/jens/Source/shotwell/src/Box.vala"
			if (box_in_zone ((gdouble) y, _tmp15_)) {
#line 2695 "Box.c"
				gboolean _tmp16_;
#line 390 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp16_ = near_width;
#line 390 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp14_ = _tmp16_;
#line 2701 "Box.c"
			} else {
#line 390 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp14_ = FALSE;
#line 2705 "Box.c"
			}
#line 390 "/home/jens/Source/shotwell/src/Box.vala"
			if (_tmp14_) {
#line 392 "/home/jens/Source/shotwell/src/Box.vala"
				result = BOX_LOCATION_TOP_SIDE;
#line 392 "/home/jens/Source/shotwell/src/Box.vala"
				return result;
#line 2713 "Box.c"
			} else {
				gboolean _tmp17_ = FALSE;
				gint _tmp18_;
#line 393 "/home/jens/Source/shotwell/src/Box.vala"
				_tmp18_ = (*self).bottom;
#line 393 "/home/jens/Source/shotwell/src/Box.vala"
				if (box_in_zone ((gdouble) y, _tmp18_)) {
#line 2721 "Box.c"
					gboolean _tmp19_;
#line 393 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp19_ = near_width;
#line 393 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp17_ = _tmp19_;
#line 2727 "Box.c"
				} else {
#line 393 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp17_ = FALSE;
#line 2731 "Box.c"
				}
#line 393 "/home/jens/Source/shotwell/src/Box.vala"
				if (_tmp17_) {
#line 395 "/home/jens/Source/shotwell/src/Box.vala"
					result = BOX_LOCATION_BOTTOM_SIDE;
#line 395 "/home/jens/Source/shotwell/src/Box.vala"
					return result;
#line 2739 "Box.c"
				} else {
					gboolean _tmp20_ = FALSE;
					gint _tmp21_;
					gint _tmp22_;
#line 396 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp21_ = (*self).left;
#line 396 "/home/jens/Source/shotwell/src/Box.vala"
					_tmp22_ = (*self).right;
#line 396 "/home/jens/Source/shotwell/src/Box.vala"
					if (box_in_between ((gdouble) x, _tmp21_, _tmp22_)) {
#line 2750 "Box.c"
						gint _tmp23_;
						gint _tmp24_;
#line 396 "/home/jens/Source/shotwell/src/Box.vala"
						_tmp23_ = (*self).top;
#line 396 "/home/jens/Source/shotwell/src/Box.vala"
						_tmp24_ = (*self).bottom;
#line 396 "/home/jens/Source/shotwell/src/Box.vala"
						_tmp20_ = box_in_between ((gdouble) y, _tmp23_, _tmp24_);
#line 2759 "Box.c"
					} else {
#line 396 "/home/jens/Source/shotwell/src/Box.vala"
						_tmp20_ = FALSE;
#line 2763 "Box.c"
					}
#line 396 "/home/jens/Source/shotwell/src/Box.vala"
					if (_tmp20_) {
#line 397 "/home/jens/Source/shotwell/src/Box.vala"
						result = BOX_LOCATION_INSIDE;
#line 397 "/home/jens/Source/shotwell/src/Box.vala"
						return result;
#line 2771 "Box.c"
					} else {
#line 399 "/home/jens/Source/shotwell/src/Box.vala"
						result = BOX_LOCATION_OUTSIDE;
#line 399 "/home/jens/Source/shotwell/src/Box.vala"
						return result;
#line 2777 "Box.c"
					}
				}
			}
		}
	}
}


Box*
box_dup (const Box* self)
{
	Box* dup;
#line 38 "/home/jens/Source/shotwell/src/Box.vala"
	dup = g_new0 (Box, 1);
#line 38 "/home/jens/Source/shotwell/src/Box.vala"
	memcpy (dup, self, sizeof (Box));
#line 38 "/home/jens/Source/shotwell/src/Box.vala"
	return dup;
#line 2796 "Box.c"
}


void
box_free (Box* self)
{
#line 38 "/home/jens/Source/shotwell/src/Box.vala"
	g_free (self);
#line 2805 "Box.c"
}


GType
box_get_type (void)
{
	static volatile gsize box_type_id__volatile = 0;
	if (g_once_init_enter (&box_type_id__volatile)) {
		GType box_type_id;
		box_type_id = g_boxed_type_register_static ("Box", (GBoxedCopyFunc) box_dup, (GBoxedFreeFunc) box_free);
		g_once_init_leave (&box_type_id__volatile, box_type_id);
	}
	return box_type_id__volatile;
}