/* ui.c generated by valac 0.32.1, the Vala compiler
 * generated from ui.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 "shotwell-plugin-dev-1.0.h"
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>


#define TYPE_ADJUSTMENT_RELATION (adjustment_relation_get_type ())

#define TYPE_COMPASS_POINT (compass_point_get_type ())

#define TYPE_DIRECTION (direction_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))

typedef enum  {
	ADJUSTMENT_RELATION_BELOW,
	ADJUSTMENT_RELATION_IN_RANGE,
	ADJUSTMENT_RELATION_ABOVE
} AdjustmentRelation;

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

typedef enum  {
	DIRECTION_FORWARD,
	DIRECTION_BACKWARD
} Direction;



GType adjustment_relation_get_type (void) G_GNUC_CONST;
GType compass_point_get_type (void) G_GNUC_CONST;
GType direction_get_type (void) G_GNUC_CONST;
SpitTransitionsDirection direction_to_transition_direction (Direction self);
const gchar* direction_to_string (Direction self);
void spin_event_loop (void);
AdjustmentRelation get_adjustment_relation (GtkAdjustment* adjustment, gint value);
void get_adjustment_page (GtkAdjustment* hadj, GtkAdjustment* vadj, GdkRectangle* result);
gboolean has_only_key_modifier (GdkModifierType field, GdkModifierType mask);
gchar* build_dummy_ui_string (GtkActionGroup** groups, int groups_length1);


GType adjustment_relation_get_type (void) {
	static volatile gsize adjustment_relation_type_id__volatile = 0;
	if (g_once_init_enter (&adjustment_relation_type_id__volatile)) {
		static const GEnumValue values[] = {{ADJUSTMENT_RELATION_BELOW, "ADJUSTMENT_RELATION_BELOW", "below"}, {ADJUSTMENT_RELATION_IN_RANGE, "ADJUSTMENT_RELATION_IN_RANGE", "in-range"}, {ADJUSTMENT_RELATION_ABOVE, "ADJUSTMENT_RELATION_ABOVE", "above"}, {0, NULL, NULL}};
		GType adjustment_relation_type_id;
		adjustment_relation_type_id = g_enum_register_static ("AdjustmentRelation", values);
		g_once_init_leave (&adjustment_relation_type_id__volatile, adjustment_relation_type_id);
	}
	return adjustment_relation_type_id__volatile;
}


GType compass_point_get_type (void) {
	static volatile gsize compass_point_type_id__volatile = 0;
	if (g_once_init_enter (&compass_point_type_id__volatile)) {
		static const GEnumValue values[] = {{COMPASS_POINT_NORTH, "COMPASS_POINT_NORTH", "north"}, {COMPASS_POINT_SOUTH, "COMPASS_POINT_SOUTH", "south"}, {COMPASS_POINT_EAST, "COMPASS_POINT_EAST", "east"}, {COMPASS_POINT_WEST, "COMPASS_POINT_WEST", "west"}, {0, NULL, NULL}};
		GType compass_point_type_id;
		compass_point_type_id = g_enum_register_static ("CompassPoint", values);
		g_once_init_leave (&compass_point_type_id__volatile, compass_point_type_id);
	}
	return compass_point_type_id__volatile;
}


SpitTransitionsDirection direction_to_transition_direction (Direction self) {
	SpitTransitionsDirection result = 0;
#line 25 "/home/jens/Source/shotwell/src/util/ui.vala"
	switch (self) {
#line 25 "/home/jens/Source/shotwell/src/util/ui.vala"
		case DIRECTION_FORWARD:
#line 91 "ui.c"
		{
#line 27 "/home/jens/Source/shotwell/src/util/ui.vala"
			result = SPIT_TRANSITIONS_DIRECTION_FORWARD;
#line 27 "/home/jens/Source/shotwell/src/util/ui.vala"
			return result;
#line 97 "ui.c"
		}
#line 25 "/home/jens/Source/shotwell/src/util/ui.vala"
		case DIRECTION_BACKWARD:
#line 101 "ui.c"
		{
#line 30 "/home/jens/Source/shotwell/src/util/ui.vala"
			result = SPIT_TRANSITIONS_DIRECTION_BACKWARD;
#line 30 "/home/jens/Source/shotwell/src/util/ui.vala"
			return result;
#line 107 "ui.c"
		}
		default:
		{
			GEnumValue* _tmp0_;
#line 33 "/home/jens/Source/shotwell/src/util/ui.vala"
			_tmp0_ = g_enum_get_value (g_type_class_ref (TYPE_DIRECTION), self);
#line 33 "/home/jens/Source/shotwell/src/util/ui.vala"
			g_error ("ui.vala:33: Unknown Direction %s", (_tmp0_ != NULL) ? _tmp0_->value_name : NULL);
#line 116 "ui.c"
		}
	}
}


GType direction_get_type (void) {
	static volatile gsize direction_type_id__volatile = 0;
	if (g_once_init_enter (&direction_type_id__volatile)) {
		static const GEnumValue values[] = {{DIRECTION_FORWARD, "DIRECTION_FORWARD", "forward"}, {DIRECTION_BACKWARD, "DIRECTION_BACKWARD", "backward"}, {0, NULL, NULL}};
		GType direction_type_id;
		direction_type_id = g_enum_register_static ("Direction", values);
		g_once_init_leave (&direction_type_id__volatile, direction_type_id);
	}
	return direction_type_id__volatile;
}


void spin_event_loop (void) {
#line 39 "/home/jens/Source/shotwell/src/util/ui.vala"
	while (TRUE) {
#line 137 "ui.c"
		gboolean _tmp0_ = FALSE;
#line 39 "/home/jens/Source/shotwell/src/util/ui.vala"
		_tmp0_ = gtk_events_pending ();
#line 39 "/home/jens/Source/shotwell/src/util/ui.vala"
		if (!_tmp0_) {
#line 39 "/home/jens/Source/shotwell/src/util/ui.vala"
			break;
#line 145 "ui.c"
		}
#line 40 "/home/jens/Source/shotwell/src/util/ui.vala"
		gtk_main_iteration ();
#line 149 "ui.c"
	}
}


AdjustmentRelation get_adjustment_relation (GtkAdjustment* adjustment, gint value) {
	AdjustmentRelation result = 0;
	gint _tmp0_ = 0;
	GtkAdjustment* _tmp1_ = NULL;
	gdouble _tmp2_ = 0.0;
#line 43 "/home/jens/Source/shotwell/src/util/ui.vala"
	g_return_val_if_fail (GTK_IS_ADJUSTMENT (adjustment), 0);
#line 44 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp0_ = value;
#line 44 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp1_ = adjustment;
#line 44 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp2_ = gtk_adjustment_get_value (_tmp1_);
#line 44 "/home/jens/Source/shotwell/src/util/ui.vala"
	if (_tmp0_ < ((gint) _tmp2_)) {
#line 45 "/home/jens/Source/shotwell/src/util/ui.vala"
		result = ADJUSTMENT_RELATION_BELOW;
#line 45 "/home/jens/Source/shotwell/src/util/ui.vala"
		return result;
#line 173 "ui.c"
	} else {
		gint _tmp3_ = 0;
		GtkAdjustment* _tmp4_ = NULL;
		gdouble _tmp5_ = 0.0;
		GtkAdjustment* _tmp6_ = NULL;
		gdouble _tmp7_ = 0.0;
#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
		_tmp3_ = value;
#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
		_tmp4_ = adjustment;
#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
		_tmp5_ = gtk_adjustment_get_value (_tmp4_);
#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
		_tmp6_ = adjustment;
#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
		_tmp7_ = gtk_adjustment_get_page_size (_tmp6_);
#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
		if (_tmp3_ > ((gint) (_tmp5_ + _tmp7_))) {
#line 47 "/home/jens/Source/shotwell/src/util/ui.vala"
			result = ADJUSTMENT_RELATION_ABOVE;
#line 47 "/home/jens/Source/shotwell/src/util/ui.vala"
			return result;
#line 196 "ui.c"
		} else {
#line 49 "/home/jens/Source/shotwell/src/util/ui.vala"
			result = ADJUSTMENT_RELATION_IN_RANGE;
#line 49 "/home/jens/Source/shotwell/src/util/ui.vala"
			return result;
#line 202 "ui.c"
		}
	}
}


void get_adjustment_page (GtkAdjustment* hadj, GtkAdjustment* vadj, GdkRectangle* result) {
	GdkRectangle rect = {0};
	GtkAdjustment* _tmp0_ = NULL;
	gdouble _tmp1_ = 0.0;
	GtkAdjustment* _tmp2_ = NULL;
	gdouble _tmp3_ = 0.0;
	GtkAdjustment* _tmp4_ = NULL;
	gdouble _tmp5_ = 0.0;
	GtkAdjustment* _tmp6_ = NULL;
	gdouble _tmp7_ = 0.0;
#line 52 "/home/jens/Source/shotwell/src/util/ui.vala"
	g_return_if_fail (GTK_IS_ADJUSTMENT (hadj));
#line 52 "/home/jens/Source/shotwell/src/util/ui.vala"
	g_return_if_fail (GTK_IS_ADJUSTMENT (vadj));
#line 53 "/home/jens/Source/shotwell/src/util/ui.vala"
	memset (&rect, 0, sizeof (GdkRectangle));
#line 54 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp0_ = hadj;
#line 54 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp1_ = gtk_adjustment_get_value (_tmp0_);
#line 54 "/home/jens/Source/shotwell/src/util/ui.vala"
	rect.x = (gint) _tmp1_;
#line 55 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp2_ = vadj;
#line 55 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp3_ = gtk_adjustment_get_value (_tmp2_);
#line 55 "/home/jens/Source/shotwell/src/util/ui.vala"
	rect.y = (gint) _tmp3_;
#line 56 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp4_ = hadj;
#line 56 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp5_ = gtk_adjustment_get_page_size (_tmp4_);
#line 56 "/home/jens/Source/shotwell/src/util/ui.vala"
	rect.width = (gint) _tmp5_;
#line 57 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp6_ = vadj;
#line 57 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp7_ = gtk_adjustment_get_page_size (_tmp6_);
#line 57 "/home/jens/Source/shotwell/src/util/ui.vala"
	rect.height = (gint) _tmp7_;
#line 59 "/home/jens/Source/shotwell/src/util/ui.vala"
	*result = rect;
#line 59 "/home/jens/Source/shotwell/src/util/ui.vala"
	return;
#line 252 "ui.c"
}


gboolean has_only_key_modifier (GdkModifierType field, GdkModifierType mask) {
	gboolean result = FALSE;
	GdkModifierType _tmp0_ = 0;
	GdkModifierType _tmp1_ = 0;
#line 77 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp0_ = field;
#line 77 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp1_ = mask;
#line 77 "/home/jens/Source/shotwell/src/util/ui.vala"
	result = (_tmp0_ & ((((((((GDK_SHIFT_MASK | GDK_CONTROL_MASK) | GDK_MOD1_MASK) | GDK_MOD3_MASK) | GDK_MOD4_MASK) | GDK_MOD5_MASK) | GDK_SUPER_MASK) | GDK_HYPER_MASK) | GDK_META_MASK)) == _tmp1_;
#line 77 "/home/jens/Source/shotwell/src/util/ui.vala"
	return result;
#line 268 "ui.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
	return self ? g_object_ref (self) : NULL;
#line 275 "ui.c"
}


gchar* build_dummy_ui_string (GtkActionGroup** groups, int groups_length1) {
	gchar* result = NULL;
	gchar* ui_string = NULL;
	gchar* _tmp0_ = NULL;
	GtkActionGroup** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	const gchar* _tmp16_ = NULL;
	gchar* _tmp17_ = NULL;
#line 90 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp0_ = g_strdup ("<ui>");
#line 90 "/home/jens/Source/shotwell/src/util/ui.vala"
	ui_string = _tmp0_;
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp1_ = groups;
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp1__length1 = groups_length1;
#line 295 "ui.c"
	{
		GtkActionGroup** group_collection = NULL;
		gint group_collection_length1 = 0;
		gint _group_collection_size_ = 0;
		gint group_it = 0;
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
		group_collection = _tmp1_;
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
		group_collection_length1 = _tmp1__length1;
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
		for (group_it = 0; group_it < _tmp1__length1; group_it = group_it + 1) {
#line 307 "ui.c"
			GtkActionGroup* _tmp2_ = NULL;
			GtkActionGroup* group = NULL;
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
			_tmp2_ = _g_object_ref0 (group_collection[group_it]);
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
			group = _tmp2_;
#line 314 "ui.c"
			{
				GtkActionGroup* _tmp3_ = NULL;
				GList* _tmp4_ = NULL;
#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
				_tmp3_ = group;
#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
				_tmp4_ = gtk_action_group_list_actions (_tmp3_);
#line 322 "ui.c"
				{
					GList* action_collection = NULL;
					GList* action_it = NULL;
#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
					action_collection = _tmp4_;
#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
					for (action_it = action_collection; action_it != NULL; action_it = action_it->next) {
#line 330 "ui.c"
						GtkAction* _tmp5_ = NULL;
						GtkAction* action = NULL;
#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
						_tmp5_ = _g_object_ref0 ((GtkAction*) action_it->data);
#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
						action = _tmp5_;
#line 337 "ui.c"
						{
							const gchar* _tmp6_ = NULL;
							GtkAction* _tmp7_ = NULL;
							const gchar* _tmp8_ = NULL;
							const gchar* _tmp9_ = NULL;
							GtkAction* _tmp10_ = NULL;
							const gchar* _tmp11_ = NULL;
							const gchar* _tmp12_ = NULL;
							gchar* _tmp13_ = NULL;
							gchar* _tmp14_ = NULL;
							gchar* _tmp15_ = NULL;
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp6_ = ui_string;
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp7_ = action;
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp8_ = gtk_action_get_name (_tmp7_);
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp9_ = _tmp8_;
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp10_ = action;
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp11_ = gtk_action_get_name (_tmp10_);
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp12_ = _tmp11_;
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp13_ = g_strdup_printf ("<accelerator name=\"%s\" action=\"%s\" />", _tmp9_, _tmp12_);
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp14_ = _tmp13_;
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_tmp15_ = g_strconcat (_tmp6_, _tmp14_, NULL);
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_g_free0 (ui_string);
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							ui_string = _tmp15_;
#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
							_g_free0 (_tmp14_);
#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
							_g_object_unref0 (action);
#line 377 "ui.c"
						}
					}
#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
					_g_list_free0 (action_collection);
#line 382 "ui.c"
				}
#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
				_g_object_unref0 (group);
#line 386 "ui.c"
			}
		}
	}
#line 95 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp16_ = ui_string;
#line 95 "/home/jens/Source/shotwell/src/util/ui.vala"
	_tmp17_ = g_strconcat (_tmp16_, "</ui>", NULL);
#line 95 "/home/jens/Source/shotwell/src/util/ui.vala"
	_g_free0 (ui_string);
#line 95 "/home/jens/Source/shotwell/src/util/ui.vala"
	ui_string = _tmp17_;
#line 97 "/home/jens/Source/shotwell/src/util/ui.vala"
	result = ui_string;
#line 97 "/home/jens/Source/shotwell/src/util/ui.vala"
	return result;
#line 402 "ui.c"
}