/* gnome-tetravex.c generated by valac 0.34.0.4-5c9b2, the Vala compiler
 * generated from gnome-tetravex.vala, do not modify */

/* -*- Mode: vala; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 *
 * Copyright (C) 2010-2013 Robert Ancell
 *
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 2 of the License, or (at your option) any later
 * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
 * license.
 */

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <gdk/gdk.h>
#include <stdio.h>
#include <float.h>
#include <math.h>
#include <locale.h>


#define TYPE_TETRAVEX (tetravex_get_type ())
#define TETRAVEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TETRAVEX, Tetravex))
#define TETRAVEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TETRAVEX, TetravexClass))
#define IS_TETRAVEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TETRAVEX))
#define IS_TETRAVEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TETRAVEX))
#define TETRAVEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TETRAVEX, TetravexClass))

typedef struct _Tetravex Tetravex;
typedef struct _TetravexClass TetravexClass;
typedef struct _TetravexPrivate TetravexPrivate;

#define TYPE_PUZZLE (puzzle_get_type ())
#define PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PUZZLE, Puzzle))
#define PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PUZZLE, PuzzleClass))
#define IS_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PUZZLE))
#define IS_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PUZZLE))
#define PUZZLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PUZZLE, PuzzleClass))

typedef struct _Puzzle Puzzle;
typedef struct _PuzzleClass PuzzleClass;

#define TYPE_HISTORY (history_get_type ())
#define HISTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HISTORY, History))
#define HISTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HISTORY, HistoryClass))
#define IS_HISTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HISTORY))
#define IS_HISTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HISTORY))
#define HISTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HISTORY, HistoryClass))

typedef struct _History History;
typedef struct _HistoryClass HistoryClass;

#define TYPE_PUZZLE_VIEW (puzzle_view_get_type ())
#define PUZZLE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PUZZLE_VIEW, PuzzleView))
#define PUZZLE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PUZZLE_VIEW, PuzzleViewClass))
#define IS_PUZZLE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PUZZLE_VIEW))
#define IS_PUZZLE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PUZZLE_VIEW))
#define PUZZLE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PUZZLE_VIEW, PuzzleViewClass))

typedef struct _PuzzleView PuzzleView;
typedef struct _PuzzleViewClass PuzzleViewClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define TYPE_HISTORY_ENTRY (history_entry_get_type ())
#define HISTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HISTORY_ENTRY, HistoryEntry))
#define HISTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HISTORY_ENTRY, HistoryEntryClass))
#define IS_HISTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HISTORY_ENTRY))
#define IS_HISTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HISTORY_ENTRY))
#define HISTORY_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HISTORY_ENTRY, HistoryEntryClass))

typedef struct _HistoryEntry HistoryEntry;
typedef struct _HistoryEntryClass HistoryEntryClass;
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))

#define TYPE_SCORE_DIALOG (score_dialog_get_type ())
#define SCORE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCORE_DIALOG, ScoreDialog))
#define SCORE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCORE_DIALOG, ScoreDialogClass))
#define IS_SCORE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCORE_DIALOG))
#define IS_SCORE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCORE_DIALOG))
#define SCORE_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCORE_DIALOG, ScoreDialogClass))

typedef struct _ScoreDialog ScoreDialog;
typedef struct _ScoreDialogClass ScoreDialogClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

struct _Tetravex {
	GtkApplication parent_instance;
	TetravexPrivate * priv;
};

struct _TetravexClass {
	GtkApplicationClass parent_class;
};

struct _TetravexPrivate {
	GSettings* settings;
	Puzzle* puzzle;
	GtkLabel* clock_label;
	History* history;
	PuzzleView* view;
	GtkApplicationWindow* window;
	gint window_width;
	gint window_height;
	gboolean is_maximized;
	gboolean is_tiled;
	GtkStack* new_game_solve_stack;
	GtkStack* play_pause_stack;
};


static gpointer tetravex_parent_class = NULL;
static gboolean tetravex_start_paused;
static gboolean tetravex_start_paused = FALSE;
static gint tetravex_game_size;
static gint tetravex_game_size = 0;

GType tetravex_get_type (void) G_GNUC_CONST;
GType puzzle_get_type (void) G_GNUC_CONST;
GType history_get_type (void) G_GNUC_CONST;
GType puzzle_view_get_type (void) G_GNUC_CONST;
#define TETRAVEX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TETRAVEX, TetravexPrivate))
enum  {
	TETRAVEX_DUMMY_PROPERTY
};
#define TETRAVEX_KEY_GRID_SIZE "grid-size"
static void tetravex_new_game_cb (Tetravex* self);
static void _tetravex_new_game_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_pause_cb (Tetravex* self, GSimpleAction* action, GVariant* parameter);
static void _tetravex_pause_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_solve_cb (Tetravex* self);
static void _tetravex_solve_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_scores_cb (Tetravex* self);
static void _tetravex_scores_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void _g_application_quit_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_move_up_cb (Tetravex* self);
static void _tetravex_move_up_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_move_down_cb (Tetravex* self);
static void _tetravex_move_down_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_move_left_cb (Tetravex* self);
static void _tetravex_move_left_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_move_right_cb (Tetravex* self);
static void _tetravex_move_right_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_radio_cb (Tetravex* self, GSimpleAction* action, GVariant* parameter);
static void _tetravex_radio_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_size_changed (Tetravex* self, GSimpleAction* action, GVariant* value);
static void _tetravex_size_changed_gsimple_action_change_state_callback (GSimpleAction* action, GVariant* value, gpointer self);
static void tetravex_help_cb (Tetravex* self);
static void _tetravex_help_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void tetravex_about_cb (Tetravex* self);
static void _tetravex_about_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
Tetravex* tetravex_new (void);
Tetravex* tetravex_construct (GType object_type);
static void tetravex_real_startup (GApplication* base);
History* history_new (const gchar* filename);
History* history_construct (GType object_type, const gchar* filename);
void history_load (History* self);
static void tetravex_size_allocate_cb (Tetravex* self, GtkAllocation* allocation);
static void _tetravex_size_allocate_cb_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self);
static gboolean tetravex_window_state_event_cb (Tetravex* self, GdkEventWindowState* event);
static gboolean _tetravex_window_state_event_cb_gtk_widget_window_state_event (GtkWidget* _sender, GdkEventWindowState* event, gpointer self);
static GVariant* _variant_new1 (gchar* value);
PuzzleView* puzzle_view_new (void);
PuzzleView* puzzle_view_construct (GType object_type);
static gboolean tetravex_view_button_press_event (Tetravex* self, GtkWidget* widget, GdkEventButton* event);
static gboolean _tetravex_view_button_press_event_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static void tetravex_tick_cb (Tetravex* self);
static void tetravex_new_game (Tetravex* self);
static void tetravex_real_shutdown (GApplication* base);
static gint tetravex_real_handle_local_options (GApplication* base, GVariantDict* options);
static gint _variant_get2 (GVariant* value);
static void tetravex_real_activate (GApplication* base);
static GVariant* _variant_new3 (gboolean value);
Puzzle* puzzle_new (guint size);
Puzzle* puzzle_construct (GType object_type, guint size);
static void _tetravex_tick_cb_puzzle_tick (Puzzle* _sender, gpointer self);
static void tetravex_solved_cb (Tetravex* self, Puzzle* puzzle);
static void _tetravex_solved_cb_puzzle_solved (Puzzle* _sender, gpointer self);
void puzzle_view_set_puzzle (PuzzleView* self, Puzzle* value);
void puzzle_set_paused (Puzzle* self, gboolean value);
static void tetravex_update_button_states (Tetravex* self);
gdouble puzzle_get_elapsed (Puzzle* self);
GType history_entry_get_type (void) G_GNUC_CONST;
guint puzzle_get_size (Puzzle* self);
HistoryEntry* history_entry_new (GDateTime* date, guint size, guint duration);
HistoryEntry* history_entry_construct (GType object_type, GDateTime* date, guint size, guint duration);
void history_add (History* self, HistoryEntry* entry);
void history_save (History* self);
static gint tetravex_show_scores (Tetravex* self, HistoryEntry* selected_entry, gboolean show_quit);
GType score_dialog_get_type (void) G_GNUC_CONST;
ScoreDialog* score_dialog_new (History* history, HistoryEntry* selected_entry, gboolean show_quit);
ScoreDialog* score_dialog_construct (GType object_type, History* history, HistoryEntry* selected_entry, gboolean show_quit);
gboolean puzzle_get_paused (Puzzle* self);
void puzzle_solve (Puzzle* self);
static gchar* _variant_get4 (GVariant* value);
gboolean puzzle_view_get_game_in_progress (PuzzleView* self);
void puzzle_move_up (Puzzle* self);
void puzzle_move_left (Puzzle* self);
void puzzle_move_right (Puzzle* self);
void puzzle_move_down (Puzzle* self);
gint tetravex_main (gchar** args, int args_length1);
static void tetravex_finalize (GObject* obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);

static const GOptionEntry TETRAVEX_option_entries[4] = {{"version", 'v', 0, G_OPTION_ARG_NONE, NULL, "Print release version and exit", NULL}, {"paused", 'p', 0, G_OPTION_ARG_NONE, NULL, "Start the game paused", NULL}, {"size", 's', 0, G_OPTION_ARG_INT, NULL, "Set size of board (2-6)", NULL}, {NULL}};
static const GActionEntry TETRAVEX_action_entries[12] = {{"new-game", _tetravex_new_game_cb_gsimple_action_activate_callback}, {"pause", _tetravex_pause_cb_gsimple_action_activate_callback}, {"solve", _tetravex_solve_cb_gsimple_action_activate_callback}, {"scores", _tetravex_scores_cb_gsimple_action_activate_callback}, {"quit", _g_application_quit_gsimple_action_activate_callback}, {"move-up", _tetravex_move_up_cb_gsimple_action_activate_callback}, {"move-down", _tetravex_move_down_cb_gsimple_action_activate_callback}, {"move-left", _tetravex_move_left_cb_gsimple_action_activate_callback}, {"move-right", _tetravex_move_right_cb_gsimple_action_activate_callback}, {"size", _tetravex_radio_cb_gsimple_action_activate_callback, "s", "'2'", _tetravex_size_changed_gsimple_action_change_state_callback}, {"help", _tetravex_help_cb_gsimple_action_activate_callback}, {"about", _tetravex_about_cb_gsimple_action_activate_callback}};

static void _tetravex_new_game_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_new_game_cb ((Tetravex*) self);
#line 221 "gnome-tetravex.c"
}


static void _tetravex_pause_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_pause_cb ((Tetravex*) self, action, parameter);
#line 228 "gnome-tetravex.c"
}


static void _tetravex_solve_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_solve_cb ((Tetravex*) self);
#line 235 "gnome-tetravex.c"
}


static void _tetravex_scores_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_scores_cb ((Tetravex*) self);
#line 242 "gnome-tetravex.c"
}


static void _g_application_quit_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_application_quit ((GApplication*) self);
#line 249 "gnome-tetravex.c"
}


static void _tetravex_move_up_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_move_up_cb ((Tetravex*) self);
#line 256 "gnome-tetravex.c"
}


static void _tetravex_move_down_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_move_down_cb ((Tetravex*) self);
#line 263 "gnome-tetravex.c"
}


static void _tetravex_move_left_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_move_left_cb ((Tetravex*) self);
#line 270 "gnome-tetravex.c"
}


static void _tetravex_move_right_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_move_right_cb ((Tetravex*) self);
#line 277 "gnome-tetravex.c"
}


static void _tetravex_radio_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_radio_cb ((Tetravex*) self, action, parameter);
#line 284 "gnome-tetravex.c"
}


static void _tetravex_size_changed_gsimple_action_change_state_callback (GSimpleAction* action, GVariant* value, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_size_changed ((Tetravex*) self, action, value);
#line 291 "gnome-tetravex.c"
}


static void _tetravex_help_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_help_cb ((Tetravex*) self);
#line 298 "gnome-tetravex.c"
}


static void _tetravex_about_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 44 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_about_cb ((Tetravex*) self);
#line 305 "gnome-tetravex.c"
}


Tetravex* tetravex_construct (GType object_type) {
	Tetravex * self = NULL;
#line 62 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self = (Tetravex*) g_object_new (object_type, "application-id", "org.gnome.tetravex", "flags", G_APPLICATION_FLAGS_NONE, NULL);
#line 64 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_application_add_main_option_entries ((GApplication*) self, TETRAVEX_option_entries);
#line 60 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return self;
#line 317 "gnome-tetravex.c"
}


Tetravex* tetravex_new (void) {
#line 60 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return tetravex_construct (TYPE_TETRAVEX);
#line 324 "gnome-tetravex.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 91 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return self ? g_object_ref (self) : NULL;
#line 331 "gnome-tetravex.c"
}


static void _tetravex_size_allocate_cb_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self) {
#line 93 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_size_allocate_cb ((Tetravex*) self, allocation);
#line 338 "gnome-tetravex.c"
}


static gboolean _tetravex_window_state_event_cb_gtk_widget_window_state_event (GtkWidget* _sender, GdkEventWindowState* event, gpointer self) {
	gboolean result;
	result = tetravex_window_state_event_cb ((Tetravex*) self, event);
#line 94 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return result;
#line 347 "gnome-tetravex.c"
}


static GVariant* _variant_new1 (gchar* value) {
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return g_variant_ref_sink (g_variant_new_string (value));
#line 354 "gnome-tetravex.c"
}


static gboolean _tetravex_view_button_press_event_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = tetravex_view_button_press_event ((Tetravex*) self, _sender, event);
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return result;
#line 363 "gnome-tetravex.c"
}


static void tetravex_real_startup (GApplication* base) {
	Tetravex * self;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar** _tmp2_ = NULL;
	gchar** _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	gchar* _tmp4_ = NULL;
	gchar** _tmp5_ = NULL;
	gchar** _tmp6_ = NULL;
	gint _tmp6__length1 = 0;
	gchar* _tmp7_ = NULL;
	gchar** _tmp8_ = NULL;
	gchar** _tmp9_ = NULL;
	gint _tmp9__length1 = 0;
	gchar* _tmp10_ = NULL;
	gchar** _tmp11_ = NULL;
	gchar** _tmp12_ = NULL;
	gint _tmp12__length1 = 0;
	gchar* _tmp13_ = NULL;
	gchar** _tmp14_ = NULL;
	gchar** _tmp15_ = NULL;
	gint _tmp15__length1 = 0;
	gchar* _tmp16_ = NULL;
	gchar** _tmp17_ = NULL;
	gchar** _tmp18_ = NULL;
	gint _tmp18__length1 = 0;
	gchar* _tmp19_ = NULL;
	gchar** _tmp20_ = NULL;
	gchar** _tmp21_ = NULL;
	gint _tmp21__length1 = 0;
	gchar* _tmp22_ = NULL;
	gchar** _tmp23_ = NULL;
	gchar** _tmp24_ = NULL;
	gint _tmp24__length1 = 0;
	GtkBuilder* builder = NULL;
	GtkBuilder* _tmp25_ = NULL;
	GSettings* _tmp26_ = NULL;
	const gchar* _tmp27_ = NULL;
	gchar* _tmp28_ = NULL;
	gchar* _tmp29_ = NULL;
	History* _tmp30_ = NULL;
	History* _tmp31_ = NULL;
	GtkBuilder* _tmp32_ = NULL;
	GObject* _tmp33_ = NULL;
	GtkApplicationWindow* _tmp34_ = NULL;
	GtkApplicationWindow* _tmp35_ = NULL;
	GtkApplicationWindow* _tmp36_ = NULL;
	GtkApplicationWindow* _tmp37_ = NULL;
	GtkApplicationWindow* _tmp38_ = NULL;
	GSettings* _tmp39_ = NULL;
	gint _tmp40_ = 0;
	GSettings* _tmp41_ = NULL;
	gint _tmp42_ = 0;
	GSettings* _tmp43_ = NULL;
	gboolean _tmp44_ = FALSE;
	gint _tmp46_ = 0;
	GAction* _tmp51_ = NULL;
	gint _tmp52_ = 0;
	gchar* _tmp53_ = NULL;
	gchar* _tmp54_ = NULL;
	GVariant* _tmp55_ = NULL;
	GtkHeaderBar* headerbar = NULL;
	GtkHeaderBar* _tmp56_ = NULL;
	const gchar* _tmp57_ = NULL;
	GtkApplicationWindow* _tmp58_ = NULL;
	GtkGrid* grid = NULL;
	GtkBuilder* _tmp59_ = NULL;
	GObject* _tmp60_ = NULL;
	GtkGrid* _tmp61_ = NULL;
	PuzzleView* _tmp62_ = NULL;
	PuzzleView* _tmp63_ = NULL;
	PuzzleView* _tmp64_ = NULL;
	PuzzleView* _tmp65_ = NULL;
	PuzzleView* _tmp66_ = NULL;
	GtkSizeGroup* sizegroup = NULL;
	GtkSizeGroup* _tmp67_ = NULL;
	GtkButton* play_button = NULL;
	GtkButton* _tmp68_ = NULL;
	GtkStyleContext* _tmp69_ = NULL;
	GtkImage* image = NULL;
	GtkImage* _tmp70_ = NULL;
	GtkImage* _tmp71_ = NULL;
	GtkImage* _tmp72_ = NULL;
	const gchar* _tmp73_ = NULL;
	GtkButton* pause_button = NULL;
	GtkButton* _tmp74_ = NULL;
	GtkStyleContext* _tmp75_ = NULL;
	GtkImage* _tmp76_ = NULL;
	GtkImage* _tmp77_ = NULL;
	GtkImage* _tmp78_ = NULL;
	const gchar* _tmp79_ = NULL;
	GtkStack* _tmp80_ = NULL;
	GtkStack* _tmp81_ = NULL;
	GtkStack* _tmp82_ = NULL;
	GtkStack* _tmp83_ = NULL;
	GtkButton* new_game_button = NULL;
	GtkButton* _tmp84_ = NULL;
	GtkStyleContext* _tmp85_ = NULL;
	GtkImage* _tmp86_ = NULL;
	GtkImage* _tmp87_ = NULL;
	GtkImage* _tmp88_ = NULL;
	const gchar* _tmp89_ = NULL;
	GtkButton* solve_button = NULL;
	GtkButton* _tmp90_ = NULL;
	GtkStyleContext* _tmp91_ = NULL;
	GtkImage* _tmp92_ = NULL;
	GtkImage* _tmp93_ = NULL;
	GtkImage* _tmp94_ = NULL;
	const gchar* _tmp95_ = NULL;
	GtkStack* _tmp96_ = NULL;
	GtkStack* _tmp97_ = NULL;
	GtkStack* _tmp98_ = NULL;
	GtkStack* _tmp99_ = NULL;
	GtkBox* box = NULL;
	GtkBox* _tmp100_ = NULL;
	GtkImage* _tmp101_ = NULL;
	GtkImage* _tmp102_ = NULL;
	GtkLabel* _tmp103_ = NULL;
	GtkLabel* _tmp104_ = NULL;
	GtkApplicationWindow* _tmp105_ = NULL;
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self = (Tetravex*) base;
#line 69 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	G_APPLICATION_CLASS (tetravex_parent_class)->startup ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_application_get_type (), GtkApplication));
#line 71 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = _ ("Tetravex");
#line 71 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_set_application_name (_tmp0_);
#line 72 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_window_set_default_icon_name ("gnome-tetravex");
#line 74 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_action_map_add_action_entries ((GActionMap*) self, TETRAVEX_action_entries, G_N_ELEMENTS (TETRAVEX_action_entries), self);
#line 75 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = g_strdup ("<Primary>n");
#line 75 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = g_new0 (gchar*, 1 + 1);
#line 75 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_[0] = _tmp1_;
#line 75 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = _tmp2_;
#line 75 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3__length1 = 1;
#line 75 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.new-game", _tmp3_);
#line 75 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
#line 76 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = g_strdup ("Pause");
#line 76 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = g_new0 (gchar*, 1 + 1);
#line 76 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_[0] = _tmp4_;
#line 76 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = _tmp5_;
#line 76 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6__length1 = 1;
#line 76 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.pause", _tmp6_);
#line 76 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
#line 77 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp7_ = g_strdup ("F1");
#line 77 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_ = g_new0 (gchar*, 1 + 1);
#line 77 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_[0] = _tmp7_;
#line 77 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp9_ = _tmp8_;
#line 77 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp9__length1 = 1;
#line 77 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.help", _tmp9_);
#line 77 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
#line 78 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp10_ = g_strdup ("<Primary>q");
#line 78 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp11_ = g_new0 (gchar*, 1 + 1);
#line 78 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp11_[0] = _tmp10_;
#line 78 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp12_ = _tmp11_;
#line 78 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp12__length1 = 1;
#line 78 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.quit", _tmp12_);
#line 78 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
#line 79 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp13_ = g_strdup ("<Primary>Up");
#line 79 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp14_ = g_new0 (gchar*, 1 + 1);
#line 79 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp14_[0] = _tmp13_;
#line 79 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp15_ = _tmp14_;
#line 79 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp15__length1 = 1;
#line 79 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.move-up", _tmp15_);
#line 79 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
#line 80 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp16_ = g_strdup ("<Primary>Down");
#line 80 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp17_ = g_new0 (gchar*, 1 + 1);
#line 80 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp17_[0] = _tmp16_;
#line 80 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp18_ = _tmp17_;
#line 80 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp18__length1 = 1;
#line 80 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.move-down", _tmp18_);
#line 80 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp18_ = (_vala_array_free (_tmp18_, _tmp18__length1, (GDestroyNotify) g_free), NULL);
#line 81 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp19_ = g_strdup ("<Primary>Left");
#line 81 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp20_ = g_new0 (gchar*, 1 + 1);
#line 81 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp20_[0] = _tmp19_;
#line 81 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp21_ = _tmp20_;
#line 81 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp21__length1 = 1;
#line 81 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.move-left", _tmp21_);
#line 81 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp21_ = (_vala_array_free (_tmp21_, _tmp21__length1, (GDestroyNotify) g_free), NULL);
#line 82 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp22_ = g_strdup ("<Primary>Right");
#line 82 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp23_ = g_new0 (gchar*, 1 + 1);
#line 82 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp23_[0] = _tmp22_;
#line 82 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp24_ = _tmp23_;
#line 82 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp24__length1 = 1;
#line 82 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.move-right", _tmp24_);
#line 82 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp24_ = (_vala_array_free (_tmp24_, _tmp24__length1, (GDestroyNotify) g_free), NULL);
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp25_ = gtk_builder_new_from_resource ("/org/gnome/tetravex/gnome-tetravex.ui");
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	builder = _tmp25_;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp26_ = g_settings_new ("org.gnome.tetravex");
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->settings);
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->settings = _tmp26_;
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp27_ = g_get_user_data_dir ();
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp28_ = g_build_filename (_tmp27_, "gnome-tetravex", "history", NULL);
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp29_ = _tmp28_;
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp30_ = history_new (_tmp29_);
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->history);
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->history = _tmp30_;
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_free0 (_tmp29_);
#line 89 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp31_ = self->priv->history;
#line 89 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	history_load (_tmp31_);
#line 91 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp32_ = builder;
#line 91 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp33_ = gtk_builder_get_object (_tmp32_, "gnome-tetravex-window");
#line 91 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp34_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp33_, gtk_application_window_get_type ()) ? ((GtkApplicationWindow*) _tmp33_) : NULL);
#line 91 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->window);
#line 91 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->window = _tmp34_;
#line 92 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp35_ = self->priv->window;
#line 92 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_application_add_window ((GtkApplication*) self, (GtkWindow*) _tmp35_);
#line 93 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp36_ = self->priv->window;
#line 93 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_signal_connect_object ((GtkWidget*) _tmp36_, "size-allocate", (GCallback) _tetravex_size_allocate_cb_gtk_widget_size_allocate, self, 0);
#line 94 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp37_ = self->priv->window;
#line 94 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_signal_connect_object ((GtkWidget*) _tmp37_, "window-state-event", (GCallback) _tetravex_window_state_event_cb_gtk_widget_window_state_event, self, 0);
#line 95 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp38_ = self->priv->window;
#line 95 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp39_ = self->priv->settings;
#line 95 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp40_ = g_settings_get_int (_tmp39_, "window-width");
#line 95 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp41_ = self->priv->settings;
#line 95 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp42_ = g_settings_get_int (_tmp41_, "window-height");
#line 95 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_window_set_default_size ((GtkWindow*) _tmp38_, _tmp40_, _tmp42_);
#line 96 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp43_ = self->priv->settings;
#line 96 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp44_ = g_settings_get_boolean (_tmp43_, "window-is-maximized");
#line 96 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp44_) {
#line 680 "gnome-tetravex.c"
		GtkApplicationWindow* _tmp45_ = NULL;
#line 97 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp45_ = self->priv->window;
#line 97 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		gtk_window_maximize ((GtkWindow*) _tmp45_);
#line 686 "gnome-tetravex.c"
	}
#line 99 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp46_ = tetravex_game_size;
#line 99 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp46_ != 0) {
#line 692 "gnome-tetravex.c"
		GSettings* _tmp47_ = NULL;
		gint _tmp48_ = 0;
#line 100 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp47_ = self->priv->settings;
#line 100 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp48_ = tetravex_game_size;
#line 100 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		g_settings_set_int (_tmp47_, TETRAVEX_KEY_GRID_SIZE, _tmp48_);
#line 701 "gnome-tetravex.c"
	} else {
		GSettings* _tmp49_ = NULL;
		gint _tmp50_ = 0;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp49_ = self->priv->settings;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp50_ = g_settings_get_int (_tmp49_, TETRAVEX_KEY_GRID_SIZE);
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		tetravex_game_size = _tmp50_;
#line 711 "gnome-tetravex.c"
	}
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp51_ = g_action_map_lookup_action ((GActionMap*) self, "size");
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp52_ = tetravex_game_size;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp53_ = g_strdup_printf ("%d", _tmp52_);
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp54_ = _tmp53_;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp55_ = _variant_new1 (_tmp54_);
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_simple_action_set_state (G_TYPE_CHECK_INSTANCE_TYPE (_tmp51_, g_simple_action_get_type ()) ? ((GSimpleAction*) _tmp51_) : NULL, _tmp55_);
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_variant_unref0 (_tmp55_);
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_free0 (_tmp54_);
#line 105 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp56_ = (GtkHeaderBar*) gtk_header_bar_new ();
#line 105 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp56_);
#line 105 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	headerbar = _tmp56_;
#line 106 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp57_ = _ ("Tetravex");
#line 106 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_header_bar_set_title (headerbar, _tmp57_);
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_header_bar_set_show_close_button (headerbar, TRUE);
#line 108 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp58_ = self->priv->window;
#line 108 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_window_set_titlebar ((GtkWindow*) _tmp58_, (GtkWidget*) headerbar);
#line 110 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp59_ = builder;
#line 110 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp60_ = gtk_builder_get_object (_tmp59_, "grid");
#line 110 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp61_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp60_, gtk_grid_get_type ()) ? ((GtkGrid*) _tmp60_) : NULL);
#line 110 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	grid = _tmp61_;
#line 112 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp62_ = puzzle_view_new ();
#line 112 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp62_);
#line 112 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->view);
#line 112 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->view = _tmp62_;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp63_ = self->priv->view;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_hexpand ((GtkWidget*) _tmp63_, TRUE);
#line 114 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp64_ = self->priv->view;
#line 114 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_vexpand ((GtkWidget*) _tmp64_, TRUE);
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp65_ = self->priv->view;
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_signal_connect_object ((GtkWidget*) _tmp65_, "button-press-event", (GCallback) _tetravex_view_button_press_event_gtk_widget_button_press_event, self, 0);
#line 116 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp66_ = self->priv->view;
#line 116 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_grid_attach (grid, (GtkWidget*) _tmp66_, 0, 0, 3, 1);
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp67_ = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	sizegroup = _tmp67_;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp68_ = (GtkButton*) gtk_button_new ();
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp68_);
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	play_button = _tmp68_;
#line 121 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp69_ = gtk_widget_get_style_context ((GtkWidget*) play_button);
#line 121 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_style_context_add_class (_tmp69_, "image-button");
#line 122 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp70_ = (GtkImage*) gtk_image_new_from_icon_name ("media-playback-start-symbolic", GTK_ICON_SIZE_DND);
#line 122 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp70_);
#line 122 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	image = _tmp70_;
#line 123 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp71_ = image;
#line 123 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_set ((GtkWidget*) _tmp71_, "margin", 10, NULL);
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp72_ = image;
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_container_add ((GtkContainer*) play_button, (GtkWidget*) _tmp72_);
#line 125 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_valign ((GtkWidget*) play_button, GTK_ALIGN_CENTER);
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_halign ((GtkWidget*) play_button, GTK_ALIGN_START);
#line 127 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_margin_start ((GtkWidget*) play_button, 35);
#line 128 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_actionable_set_action_name ((GtkActionable*) play_button, "app.pause");
#line 129 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp73_ = _ ("Resume the game");
#line 129 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_tooltip_text ((GtkWidget*) play_button, _tmp73_);
#line 130 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_size_group_add_widget (sizegroup, (GtkWidget*) play_button);
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp74_ = (GtkButton*) gtk_button_new ();
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp74_);
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	pause_button = _tmp74_;
#line 133 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp75_ = gtk_widget_get_style_context ((GtkWidget*) pause_button);
#line 133 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_style_context_add_class (_tmp75_, "image-button");
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp76_ = (GtkImage*) gtk_image_new_from_icon_name ("media-playback-pause-symbolic", GTK_ICON_SIZE_DND);
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp76_);
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (image);
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	image = _tmp76_;
#line 135 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp77_ = image;
#line 135 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_set ((GtkWidget*) _tmp77_, "margin", 10, NULL);
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp78_ = image;
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_container_add ((GtkContainer*) pause_button, (GtkWidget*) _tmp78_);
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_valign ((GtkWidget*) pause_button, GTK_ALIGN_CENTER);
#line 138 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_halign ((GtkWidget*) pause_button, GTK_ALIGN_START);
#line 139 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_margin_start ((GtkWidget*) pause_button, 35);
#line 140 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_actionable_set_action_name ((GtkActionable*) pause_button, "app.pause");
#line 141 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp79_ = _ ("Pause the game");
#line 141 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_tooltip_text ((GtkWidget*) pause_button, _tmp79_);
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_size_group_add_widget (sizegroup, (GtkWidget*) pause_button);
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp80_ = (GtkStack*) gtk_stack_new ();
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp80_);
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->play_pause_stack);
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->play_pause_stack = _tmp80_;
#line 145 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp81_ = self->priv->play_pause_stack;
#line 145 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_stack_add_named (_tmp81_, (GtkWidget*) play_button, "play");
#line 146 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp82_ = self->priv->play_pause_stack;
#line 146 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_stack_add_named (_tmp82_, (GtkWidget*) pause_button, "pause");
#line 147 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp83_ = self->priv->play_pause_stack;
#line 147 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_grid_attach (grid, (GtkWidget*) _tmp83_, 0, 1, 1, 1);
#line 149 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp84_ = (GtkButton*) gtk_button_new ();
#line 149 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp84_);
#line 149 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	new_game_button = _tmp84_;
#line 150 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp85_ = gtk_widget_get_style_context ((GtkWidget*) new_game_button);
#line 150 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_style_context_add_class (_tmp85_, "image-button");
#line 151 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp86_ = (GtkImage*) gtk_image_new_from_icon_name ("view-refresh-symbolic", GTK_ICON_SIZE_DND);
#line 151 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp86_);
#line 151 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (image);
#line 151 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	image = _tmp86_;
#line 152 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp87_ = image;
#line 152 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_set ((GtkWidget*) _tmp87_, "margin", 10, NULL);
#line 153 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp88_ = image;
#line 153 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_container_add ((GtkContainer*) new_game_button, (GtkWidget*) _tmp88_);
#line 154 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_valign ((GtkWidget*) new_game_button, GTK_ALIGN_CENTER);
#line 155 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_halign ((GtkWidget*) new_game_button, GTK_ALIGN_END);
#line 156 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_margin_end ((GtkWidget*) new_game_button, 35);
#line 157 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_actionable_set_action_name ((GtkActionable*) new_game_button, "app.new-game");
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp89_ = _ ("Start a new game");
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_tooltip_text ((GtkWidget*) new_game_button, _tmp89_);
#line 159 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_size_group_add_widget (sizegroup, (GtkWidget*) new_game_button);
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp90_ = (GtkButton*) gtk_button_new ();
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp90_);
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	solve_button = _tmp90_;
#line 162 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp91_ = gtk_widget_get_style_context ((GtkWidget*) solve_button);
#line 162 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_style_context_add_class (_tmp91_, "image-button");
#line 163 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp92_ = (GtkImage*) gtk_image_new_from_icon_name ("dialog-question-symbolic", GTK_ICON_SIZE_DND);
#line 163 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp92_);
#line 163 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (image);
#line 163 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	image = _tmp92_;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp93_ = image;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_set ((GtkWidget*) _tmp93_, "margin", 10, NULL);
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp94_ = image;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_container_add ((GtkContainer*) solve_button, (GtkWidget*) _tmp94_);
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_valign ((GtkWidget*) solve_button, GTK_ALIGN_CENTER);
#line 167 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_halign ((GtkWidget*) solve_button, GTK_ALIGN_END);
#line 168 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_margin_end ((GtkWidget*) solve_button, 35);
#line 169 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_actionable_set_action_name ((GtkActionable*) solve_button, "app.solve");
#line 170 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp95_ = _ ("Give up and view the solution");
#line 170 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_tooltip_text ((GtkWidget*) solve_button, _tmp95_);
#line 171 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_size_group_add_widget (sizegroup, (GtkWidget*) solve_button);
#line 173 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp96_ = (GtkStack*) gtk_stack_new ();
#line 173 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp96_);
#line 173 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->new_game_solve_stack);
#line 173 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->new_game_solve_stack = _tmp96_;
#line 174 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp97_ = self->priv->new_game_solve_stack;
#line 174 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_stack_add_named (_tmp97_, (GtkWidget*) solve_button, "solve");
#line 175 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp98_ = self->priv->new_game_solve_stack;
#line 175 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_stack_add_named (_tmp98_, (GtkWidget*) new_game_button, "new-game");
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp99_ = self->priv->new_game_solve_stack;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_grid_attach (grid, (GtkWidget*) _tmp99_, 2, 1, 1, 1);
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp100_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp100_);
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	box = _tmp100_;
#line 179 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp101_ = (GtkImage*) gtk_image_new_from_icon_name ("preferences-system-time-symbolic", GTK_ICON_SIZE_MENU);
#line 179 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp101_);
#line 179 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (image);
#line 179 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	image = _tmp101_;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp102_ = image;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_container_add ((GtkContainer*) box, (GtkWidget*) _tmp102_);
#line 181 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp103_ = (GtkLabel*) gtk_label_new ("");
#line 181 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp103_);
#line 181 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->clock_label);
#line 181 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->clock_label = _tmp103_;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp104_ = self->priv->clock_label;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_container_add ((GtkContainer*) box, (GtkWidget*) _tmp104_);
#line 183 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_halign ((GtkWidget*) box, GTK_ALIGN_CENTER);
#line 184 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_valign ((GtkWidget*) box, GTK_ALIGN_BASELINE);
#line 185 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_margin_top ((GtkWidget*) box, 20);
#line 186 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_set_margin_bottom ((GtkWidget*) box, 20);
#line 187 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_grid_attach (grid, (GtkWidget*) box, 1, 1, 1, 1);
#line 189 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp105_ = self->priv->window;
#line 189 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_show_all ((GtkWidget*) _tmp105_);
#line 191 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_tick_cb (self);
#line 192 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_new_game (self);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (box);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (solve_button);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (new_game_button);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (pause_button);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (image);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (play_button);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (sizegroup);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (grid);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (headerbar);
#line 67 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (builder);
#line 1047 "gnome-tetravex.c"
}


static void tetravex_size_allocate_cb (Tetravex* self, GtkAllocation* allocation) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	GtkApplicationWindow* _tmp3_ = NULL;
	gint _tmp4_ = 0;
	gint _tmp5_ = 0;
#line 195 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 195 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (allocation != NULL);
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = self->priv->is_maximized;
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp1_) {
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp0_ = TRUE;
#line 1067 "gnome-tetravex.c"
	} else {
		gboolean _tmp2_ = FALSE;
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp2_ = self->priv->is_tiled;
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp0_ = _tmp2_;
#line 1074 "gnome-tetravex.c"
	}
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp0_) {
#line 198 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		return;
#line 1080 "gnome-tetravex.c"
	}
#line 199 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = self->priv->window;
#line 199 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_window_get_size ((GtkWindow*) _tmp3_, &_tmp4_, &_tmp5_);
#line 199 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->window_width = _tmp4_;
#line 199 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->window_height = _tmp5_;
#line 1090 "gnome-tetravex.c"
}


static gboolean tetravex_window_state_event_cb (Tetravex* self, GdkEventWindowState* event) {
	gboolean result = FALSE;
	GdkEventWindowState* _tmp0_ = NULL;
	GdkWindowState _tmp1_ = 0;
	GdkEventWindowState* _tmp4_ = NULL;
	GdkWindowState _tmp5_ = 0;
#line 202 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 202 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 204 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = event;
#line 204 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = _tmp0_->changed_mask;
#line 204 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if ((_tmp1_ & GDK_WINDOW_STATE_MAXIMIZED) != 0) {
#line 1110 "gnome-tetravex.c"
		GdkEventWindowState* _tmp2_ = NULL;
		GdkWindowState _tmp3_ = 0;
#line 205 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp2_ = event;
#line 205 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp3_ = _tmp2_->new_window_state;
#line 205 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		self->priv->is_maximized = (_tmp3_ & GDK_WINDOW_STATE_MAXIMIZED) != 0;
#line 1119 "gnome-tetravex.c"
	}
#line 207 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = event;
#line 207 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = _tmp4_->changed_mask;
#line 207 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if ((_tmp5_ & GDK_WINDOW_STATE_TILED) != 0) {
#line 1127 "gnome-tetravex.c"
		GdkEventWindowState* _tmp6_ = NULL;
		GdkWindowState _tmp7_ = 0;
#line 208 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp6_ = event;
#line 208 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp7_ = _tmp6_->new_window_state;
#line 208 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		self->priv->is_tiled = (_tmp7_ & GDK_WINDOW_STATE_TILED) != 0;
#line 1136 "gnome-tetravex.c"
	}
#line 209 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	result = FALSE;
#line 209 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return result;
#line 1142 "gnome-tetravex.c"
}


static void tetravex_real_shutdown (GApplication* base) {
	Tetravex * self;
	GSettings* _tmp0_ = NULL;
	gint _tmp1_ = 0;
	GSettings* _tmp2_ = NULL;
	gint _tmp3_ = 0;
	GSettings* _tmp4_ = NULL;
	gboolean _tmp5_ = FALSE;
#line 212 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self = (Tetravex*) base;
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	G_APPLICATION_CLASS (tetravex_parent_class)->shutdown ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_application_get_type (), GtkApplication));
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->settings;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = self->priv->window_width;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_settings_set_int (_tmp0_, "window-width", _tmp1_);
#line 218 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = self->priv->settings;
#line 218 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = self->priv->window_height;
#line 218 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_settings_set_int (_tmp2_, "window-height", _tmp3_);
#line 219 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = self->priv->settings;
#line 219 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = self->priv->is_maximized;
#line 219 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_settings_set_boolean (_tmp4_, "window-is-maximized", _tmp5_);
#line 1176 "gnome-tetravex.c"
}


static gint _variant_get2 (GVariant* value) {
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return g_variant_get_int32 (value);
#line 1183 "gnome-tetravex.c"
}


static gint tetravex_real_handle_local_options (GApplication* base, GVariantDict* options) {
	Tetravex * self;
	gint result = 0;
	GVariantDict* _tmp0_ = NULL;
	gboolean _tmp1_ = FALSE;
	GVariantDict* _tmp3_ = NULL;
	gboolean _tmp4_ = FALSE;
	GVariantDict* _tmp5_ = NULL;
	gboolean _tmp6_ = FALSE;
#line 222 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self = (Tetravex*) base;
#line 222 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_val_if_fail (options != NULL, 0);
#line 224 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = options;
#line 224 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = g_variant_dict_contains (_tmp0_, "version");
#line 224 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp1_) {
#line 1206 "gnome-tetravex.c"
		FILE* _tmp2_ = NULL;
#line 227 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp2_ = stderr;
#line 227 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		fprintf (_tmp2_, "%1$s %2$s\n", "gnome-tetravex", VERSION);
#line 228 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		result = EXIT_SUCCESS;
#line 228 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		return result;
#line 1216 "gnome-tetravex.c"
	}
#line 231 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = options;
#line 231 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = g_variant_dict_contains (_tmp3_, "paused");
#line 231 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp4_) {
#line 232 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		tetravex_start_paused = TRUE;
#line 1226 "gnome-tetravex.c"
	}
#line 234 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = options;
#line 234 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = g_variant_dict_contains (_tmp5_, "size");
#line 234 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp6_) {
#line 1234 "gnome-tetravex.c"
		GVariantDict* _tmp7_ = NULL;
		const GVariantType* _tmp8_ = NULL;
		GVariant* _tmp9_ = NULL;
		GVariant* _tmp10_ = NULL;
		gint _tmp11_ = 0;
		gboolean _tmp12_ = FALSE;
		gint _tmp13_ = 0;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp7_ = options;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp8_ = G_VARIANT_TYPE_INT32;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp9_ = g_variant_dict_lookup_value (_tmp7_, "size", _tmp8_);
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp10_ = _tmp9_;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp11_ = _variant_get2 (_tmp10_);
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		tetravex_game_size = _tmp11_;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_g_variant_unref0 (_tmp10_);
#line 237 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp13_ = tetravex_game_size;
#line 237 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		if (_tmp13_ < 2) {
#line 237 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			_tmp12_ = TRUE;
#line 1262 "gnome-tetravex.c"
		} else {
			gint _tmp14_ = 0;
#line 237 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			_tmp14_ = tetravex_game_size;
#line 237 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			_tmp12_ = _tmp14_ > 6;
#line 1269 "gnome-tetravex.c"
		}
#line 237 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		if (_tmp12_) {
#line 1273 "gnome-tetravex.c"
			FILE* _tmp15_ = NULL;
#line 239 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			_tmp15_ = stderr;
#line 239 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			fprintf (_tmp15_, "%s", "Size could only be from 2 to 6.\n");
#line 240 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			result = EXIT_FAILURE;
#line 240 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			return result;
#line 1283 "gnome-tetravex.c"
		}
	}
#line 245 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	result = -1;
#line 245 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return result;
#line 1290 "gnome-tetravex.c"
}


static void tetravex_real_activate (GApplication* base) {
	Tetravex * self;
	GtkApplicationWindow* _tmp0_ = NULL;
#line 248 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self = (Tetravex*) base;
#line 250 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->window;
#line 250 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_window_present ((GtkWindow*) _tmp0_);
#line 1303 "gnome-tetravex.c"
}


static GVariant* _variant_new3 (gboolean value) {
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return g_variant_ref_sink (g_variant_new_boolean (value));
#line 1310 "gnome-tetravex.c"
}


static void _tetravex_tick_cb_puzzle_tick (Puzzle* _sender, gpointer self) {
#line 265 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_tick_cb ((Tetravex*) self);
#line 1317 "gnome-tetravex.c"
}


static void _tetravex_solved_cb_puzzle_solved (Puzzle* _sender, gpointer self) {
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_solved_cb ((Tetravex*) self, _sender);
#line 1324 "gnome-tetravex.c"
}


static void tetravex_new_game (Tetravex* self) {
	GSimpleAction* pause = NULL;
	GAction* _tmp0_ = NULL;
	GSimpleAction* _tmp1_ = NULL;
	GSimpleAction* _tmp2_ = NULL;
	GVariant* _tmp3_ = NULL;
	GSimpleAction* _tmp4_ = NULL;
	GtkStack* _tmp5_ = NULL;
	Puzzle* _tmp6_ = NULL;
	gint size = 0;
	GSettings* _tmp8_ = NULL;
	gint _tmp9_ = 0;
	gint _tmp10_ = 0;
	Puzzle* _tmp11_ = NULL;
	Puzzle* _tmp12_ = NULL;
	Puzzle* _tmp13_ = NULL;
	PuzzleView* _tmp14_ = NULL;
	Puzzle* _tmp15_ = NULL;
	gboolean _tmp16_ = FALSE;
#line 253 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = g_action_map_lookup_action ((GActionMap*) self, "pause");
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, g_simple_action_get_type ()) ? ((GSimpleAction*) _tmp0_) : NULL);
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	pause = _tmp1_;
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = pause;
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = _variant_new3 (FALSE);
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_signal_emit_by_name (_tmp2_, "change-state", _tmp3_);
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_variant_unref0 (_tmp3_);
#line 257 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = pause;
#line 257 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_simple_action_set_enabled (_tmp4_, TRUE);
#line 258 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = self->priv->new_game_solve_stack;
#line 258 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_stack_set_visible_child_name (_tmp5_, "solve");
#line 260 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = self->priv->puzzle;
#line 260 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp6_ != NULL) {
#line 1375 "gnome-tetravex.c"
		Puzzle* _tmp7_ = NULL;
#line 261 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp7_ = self->priv->puzzle;
#line 261 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		g_signal_handlers_disconnect_by_func (_tmp7_, NULL, self);
#line 1381 "gnome-tetravex.c"
	}
#line 263 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_ = self->priv->settings;
#line 263 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp9_ = g_settings_get_int (_tmp8_, TETRAVEX_KEY_GRID_SIZE);
#line 263 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	size = _tmp9_;
#line 264 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp10_ = size;
#line 264 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp11_ = puzzle_new ((guint) _tmp10_);
#line 264 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->puzzle);
#line 264 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv->puzzle = _tmp11_;
#line 265 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp12_ = self->priv->puzzle;
#line 265 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_signal_connect_object (_tmp12_, "tick", (GCallback) _tetravex_tick_cb_puzzle_tick, self, 0);
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp13_ = self->priv->puzzle;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_signal_connect_object (_tmp13_, "solved", (GCallback) _tetravex_solved_cb_puzzle_solved, self, 0);
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp14_ = self->priv->view;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp15_ = self->priv->puzzle;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	puzzle_view_set_puzzle (_tmp14_, _tmp15_);
#line 268 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_tick_cb (self);
#line 270 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp16_ = tetravex_start_paused;
#line 270 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp16_) {
#line 1417 "gnome-tetravex.c"
		Puzzle* _tmp17_ = NULL;
#line 272 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp17_ = self->priv->puzzle;
#line 272 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		puzzle_set_paused (_tmp17_, TRUE);
#line 273 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		tetravex_start_paused = FALSE;
#line 1425 "gnome-tetravex.c"
	}
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_update_button_states (self);
#line 253 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (pause);
#line 1431 "gnome-tetravex.c"
}


static void tetravex_tick_cb (Tetravex* self) {
	gint elapsed = 0;
	Puzzle* _tmp0_ = NULL;
	gint hours = 0;
	gint _tmp4_ = 0;
	gint minutes = 0;
	gint _tmp5_ = 0;
	gint _tmp6_ = 0;
	gint seconds = 0;
	gint _tmp7_ = 0;
	gint _tmp8_ = 0;
	gint _tmp9_ = 0;
	gint _tmp10_ = 0;
#line 278 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 280 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	elapsed = 0;
#line 281 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->puzzle;
#line 281 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp0_ != NULL) {
#line 1456 "gnome-tetravex.c"
		Puzzle* _tmp1_ = NULL;
		gdouble _tmp2_ = 0.0;
		gdouble _tmp3_ = 0.0;
#line 282 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp1_ = self->priv->puzzle;
#line 282 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp2_ = puzzle_get_elapsed (_tmp1_);
#line 282 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp3_ = _tmp2_;
#line 282 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		elapsed = (gint) (_tmp3_ + 0.5);
#line 1468 "gnome-tetravex.c"
	}
#line 283 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = elapsed;
#line 283 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	hours = _tmp4_ / 3600;
#line 284 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = elapsed;
#line 284 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = hours;
#line 284 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	minutes = (_tmp5_ - (_tmp6_ * 3600)) / 60;
#line 285 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp7_ = elapsed;
#line 285 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_ = hours;
#line 285 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp9_ = minutes;
#line 285 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	seconds = (_tmp7_ - (_tmp8_ * 3600)) - (_tmp9_ * 60);
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp10_ = hours;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp10_ > 0) {
#line 1492 "gnome-tetravex.c"
		GtkLabel* _tmp11_ = NULL;
		gint _tmp12_ = 0;
		gint _tmp13_ = 0;
		gint _tmp14_ = 0;
		gchar* _tmp15_ = NULL;
		gchar* _tmp16_ = NULL;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp11_ = self->priv->clock_label;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp12_ = hours;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp13_ = minutes;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp14_ = seconds;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp15_ = g_strdup_printf ("%02d∶\xE2\x80\x8E%02d∶\xE2\x80\x8E%02d", _tmp12_, _tmp13_, _tmp14_);
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp16_ = _tmp15_;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		gtk_label_set_text (_tmp11_, _tmp16_);
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_g_free0 (_tmp16_);
#line 1515 "gnome-tetravex.c"
	} else {
		GtkLabel* _tmp17_ = NULL;
		gint _tmp18_ = 0;
		gint _tmp19_ = 0;
		gchar* _tmp20_ = NULL;
		gchar* _tmp21_ = NULL;
#line 289 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp17_ = self->priv->clock_label;
#line 289 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp18_ = minutes;
#line 289 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp19_ = seconds;
#line 289 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp20_ = g_strdup_printf ("%02d∶\xE2\x80\x8E%02d", _tmp18_, _tmp19_);
#line 289 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp21_ = _tmp20_;
#line 289 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		gtk_label_set_text (_tmp17_, _tmp21_);
#line 289 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_g_free0 (_tmp21_);
#line 1536 "gnome-tetravex.c"
	}
}


static void tetravex_solved_cb (Tetravex* self, Puzzle* puzzle) {
	GDateTime* date = NULL;
	GDateTime* _tmp0_ = NULL;
	guint duration = 0U;
	Puzzle* _tmp1_ = NULL;
	gdouble _tmp2_ = 0.0;
	gdouble _tmp3_ = 0.0;
	HistoryEntry* entry = NULL;
	GDateTime* _tmp4_ = NULL;
	Puzzle* _tmp5_ = NULL;
	guint _tmp6_ = 0U;
	guint _tmp7_ = 0U;
	guint _tmp8_ = 0U;
	HistoryEntry* _tmp9_ = NULL;
	History* _tmp10_ = NULL;
	HistoryEntry* _tmp11_ = NULL;
	History* _tmp12_ = NULL;
	HistoryEntry* _tmp13_ = NULL;
	gint _tmp14_ = 0;
#line 292 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 292 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (puzzle != NULL);
#line 294 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = g_date_time_new_now_local ();
#line 294 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	date = _tmp0_;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = puzzle;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = puzzle_get_elapsed (_tmp1_);
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = _tmp2_;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	duration = (guint) (_tmp3_ + 0.5);
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = date;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = puzzle;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = puzzle_get_size (_tmp5_);
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp7_ = _tmp6_;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_ = duration;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp9_ = history_entry_new (_tmp4_, _tmp7_, _tmp8_);
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	entry = _tmp9_;
#line 297 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp10_ = self->priv->history;
#line 297 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp11_ = entry;
#line 297 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	history_add (_tmp10_, _tmp11_);
#line 298 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp12_ = self->priv->history;
#line 298 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	history_save (_tmp12_);
#line 300 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp13_ = entry;
#line 300 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp14_ = tetravex_show_scores (self, _tmp13_, TRUE);
#line 300 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp14_ == ((gint) GTK_RESPONSE_CLOSE)) {
#line 1606 "gnome-tetravex.c"
		GtkApplicationWindow* _tmp15_ = NULL;
#line 301 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp15_ = self->priv->window;
#line 301 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		gtk_widget_destroy ((GtkWidget*) _tmp15_);
#line 1612 "gnome-tetravex.c"
	} else {
#line 303 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		tetravex_new_game (self);
#line 1616 "gnome-tetravex.c"
	}
#line 292 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (entry);
#line 292 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_date_time_unref0 (date);
#line 1622 "gnome-tetravex.c"
}


static gint tetravex_show_scores (Tetravex* self, HistoryEntry* selected_entry, gboolean show_quit) {
	gint result = 0;
	ScoreDialog* dialog = NULL;
	History* _tmp0_ = NULL;
	HistoryEntry* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
	ScoreDialog* _tmp3_ = NULL;
	GtkApplicationWindow* _tmp4_ = NULL;
	gint _result_ = 0;
	gint _tmp5_ = 0;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->history;
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = selected_entry;
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = show_quit;
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = score_dialog_new (_tmp0_, _tmp1_, _tmp2_);
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp3_);
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	dialog = _tmp3_;
#line 309 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_window_set_modal ((GtkWindow*) dialog, TRUE);
#line 310 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = self->priv->window;
#line 310 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_window_set_transient_for ((GtkWindow*) dialog, (GtkWindow*) _tmp4_);
#line 312 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = gtk_dialog_run ((GtkDialog*) dialog);
#line 312 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_result_ = _tmp5_;
#line 313 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_destroy ((GtkWidget*) dialog);
#line 315 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	result = _result_;
#line 315 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (dialog);
#line 315 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return result;
#line 1668 "gnome-tetravex.c"
}


static void tetravex_new_game_cb (Tetravex* self) {
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 320 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_new_game (self);
#line 1677 "gnome-tetravex.c"
}


static void tetravex_scores_cb (Tetravex* self) {
#line 323 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 325 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_show_scores (self, NULL, FALSE);
#line 1686 "gnome-tetravex.c"
}


static gboolean tetravex_view_button_press_event (Tetravex* self, GtkWidget* widget, GdkEventButton* event) {
	gboolean result = FALSE;
	Puzzle* _tmp0_ = NULL;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_val_if_fail (widget != NULL, FALSE);
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 331 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->puzzle;
#line 331 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = puzzle_get_paused (_tmp0_);
#line 331 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = _tmp1_;
#line 331 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp2_) {
#line 1709 "gnome-tetravex.c"
		Puzzle* _tmp3_ = NULL;
#line 333 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp3_ = self->priv->puzzle;
#line 333 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		puzzle_set_paused (_tmp3_, FALSE);
#line 334 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		tetravex_update_button_states (self);
#line 335 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		result = TRUE;
#line 335 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		return result;
#line 1721 "gnome-tetravex.c"
	}
#line 338 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	result = FALSE;
#line 338 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return result;
#line 1727 "gnome-tetravex.c"
}


static void tetravex_solve_cb (Tetravex* self) {
	GtkMessageDialog* dialog = NULL;
	GtkApplicationWindow* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GtkMessageDialog* _tmp2_ = NULL;
	GtkMessageDialog* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	gint response = 0;
	GtkMessageDialog* _tmp6_ = NULL;
	gint _tmp7_ = 0;
	GtkMessageDialog* _tmp8_ = NULL;
	gint _tmp9_ = 0;
#line 341 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 343 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->window;
#line 343 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = _ ("Are you sure you want to give up and view the solution?");
#line 343 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _tmp0_, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _tmp1_);
#line 343 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_object_ref_sink (_tmp2_);
#line 343 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	dialog = _tmp2_;
#line 349 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = dialog;
#line 349 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = _ ("_Keep Playing");
#line 349 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = _ ("_Give Up");
#line 349 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_dialog_add_buttons ((GtkDialog*) _tmp3_, _tmp4_, GTK_RESPONSE_REJECT, _tmp5_, GTK_RESPONSE_ACCEPT, NULL, NULL);
#line 353 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = dialog;
#line 353 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp7_ = gtk_dialog_run ((GtkDialog*) _tmp6_);
#line 353 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	response = _tmp7_;
#line 354 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_ = dialog;
#line 354 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_widget_destroy ((GtkWidget*) _tmp8_);
#line 356 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp9_ = response;
#line 356 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp9_ == ((gint) GTK_RESPONSE_ACCEPT)) {
#line 1778 "gnome-tetravex.c"
		Puzzle* _tmp10_ = NULL;
		GtkStack* _tmp11_ = NULL;
		GAction* _tmp12_ = NULL;
#line 358 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp10_ = self->priv->puzzle;
#line 358 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		puzzle_solve (_tmp10_);
#line 359 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp11_ = self->priv->new_game_solve_stack;
#line 359 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		gtk_stack_set_visible_child_name (_tmp11_, "new-game");
#line 360 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp12_ = g_action_map_lookup_action ((GActionMap*) self, "pause");
#line 360 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		g_simple_action_set_enabled (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, g_simple_action_get_type (), GSimpleAction), FALSE);
#line 1794 "gnome-tetravex.c"
	}
#line 341 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (dialog);
#line 1798 "gnome-tetravex.c"
}


static void tetravex_help_cb (Tetravex* self) {
	GError * _inner_error_ = NULL;
#line 364 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 1806 "gnome-tetravex.c"
	{
		GtkApplicationWindow* _tmp0_ = NULL;
		GdkScreen* _tmp1_ = NULL;
		guint32 _tmp2_ = 0U;
#line 368 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp0_ = self->priv->window;
#line 368 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp1_ = gtk_window_get_screen ((GtkWindow*) _tmp0_);
#line 368 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp2_ = gtk_get_current_event_time ();
#line 368 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		gtk_show_uri (_tmp1_, "help:gnome-tetravex", _tmp2_, &_inner_error_);
#line 368 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1821 "gnome-tetravex.c"
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp3_ = NULL;
		const gchar* _tmp4_ = NULL;
#line 366 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		e = _inner_error_;
#line 366 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_inner_error_ = NULL;
#line 372 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp3_ = e;
#line 372 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp4_ = _tmp3_->message;
#line 372 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		g_warning ("gnome-tetravex.vala:372: Failed to show help: %s", _tmp4_);
#line 366 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_g_error_free0 (e);
#line 1843 "gnome-tetravex.c"
	}
	__finally0:
#line 366 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 366 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 366 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		g_clear_error (&_inner_error_);
#line 366 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		return;
#line 1854 "gnome-tetravex.c"
	}
}


static void tetravex_about_cb (Tetravex* self) {
	gchar** authors = NULL;
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar** _tmp2_ = NULL;
	gint authors_length1 = 0;
	gint _authors_size_ = 0;
	gchar** documenters = NULL;
	gchar* _tmp3_ = NULL;
	gchar** _tmp4_ = NULL;
	gint documenters_length1 = 0;
	gint _documenters_size_ = 0;
	GtkApplicationWindow* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	const gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
#line 376 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = g_strdup ("Lars Rydlinge");
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = g_strdup ("Robert Ancell");
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = g_new0 (gchar*, 3 + 1);
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_[0] = _tmp0_;
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_[1] = _tmp1_;
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_[2] = NULL;
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	authors = _tmp2_;
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	authors_length1 = 3;
#line 378 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_authors_size_ = authors_length1;
#line 379 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = g_strdup ("Rob Bradford");
#line 379 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = g_new0 (gchar*, 2 + 1);
#line 379 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_[0] = _tmp3_;
#line 379 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_[1] = NULL;
#line 379 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	documenters = _tmp4_;
#line 379 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	documenters_length1 = 2;
#line 379 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_documenters_size_ = documenters_length1;
#line 380 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = self->priv->window;
#line 380 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = _ ("Tetravex");
#line 380 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp7_ = _ ("Position pieces so that the same numbers are touching each other");
#line 380 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_ = _ ("translator-credits");
#line 380 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_show_about_dialog ((GtkWindow*) _tmp5_, "program-name", _tmp6_, "version", VERSION, "comments", _tmp7_, "copyright", "Copyright © 1999–2008 Lars Rydlinge", "license-type", GTK_LICENSE_GPL_2_0, "wrap-license", TRUE, "authors", authors, "documenters", documenters, "translator-credits", _tmp8_, "logo-icon-name", "gnome-tetravex", "website", "https://wiki.gnome.org/Apps/Tetravex", NULL, NULL);
#line 376 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	documenters = (_vala_array_free (documenters, documenters_length1, (GDestroyNotify) g_free), NULL);
#line 376 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
#line 1923 "gnome-tetravex.c"
}


static gchar* _variant_get4 (GVariant* value) {
#line 399 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return g_variant_dup_string (value, NULL);
#line 1930 "gnome-tetravex.c"
}


static gchar string_get (const gchar* self, glong index) {
	gchar result = '\0';
	glong _tmp0_ = 0L;
	gchar _tmp1_ = '\0';
#line 1086 "/home/mcatanzaro/src/jhbuild/install/share/vala-0.34/vapi/glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, '\0');
#line 1087 "/home/mcatanzaro/src/jhbuild/install/share/vala-0.34/vapi/glib-2.0.vapi"
	_tmp0_ = index;
#line 1087 "/home/mcatanzaro/src/jhbuild/install/share/vala-0.34/vapi/glib-2.0.vapi"
	_tmp1_ = ((gchar*) self)[_tmp0_];
#line 1087 "/home/mcatanzaro/src/jhbuild/install/share/vala-0.34/vapi/glib-2.0.vapi"
	result = _tmp1_;
#line 1087 "/home/mcatanzaro/src/jhbuild/install/share/vala-0.34/vapi/glib-2.0.vapi"
	return result;
#line 1948 "gnome-tetravex.c"
}


static void tetravex_size_changed (Tetravex* self, GSimpleAction* action, GVariant* value) {
	gchar size = '\0';
	GVariant* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar _tmp3_ = '\0';
	gchar _tmp4_ = '\0';
	gchar _tmp5_ = '\0';
	GSettings* _tmp6_ = NULL;
	gint _tmp7_ = 0;
	PuzzleView* _tmp8_ = NULL;
	gboolean _tmp9_ = FALSE;
	gboolean _tmp10_ = FALSE;
	GSettings* _tmp21_ = NULL;
	gchar _tmp22_ = '\0';
	gchar _tmp23_ = '\0';
	GSimpleAction* _tmp24_ = NULL;
	GVariant* _tmp25_ = NULL;
#line 397 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 397 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (action != NULL);
#line 397 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (value != NULL);
#line 399 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = value;
#line 399 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = _variant_get4 (_tmp0_);
#line 399 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = _tmp1_;
#line 399 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = string_get (_tmp2_, (glong) 0);
#line 399 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp4_ = _tmp3_ - '0';
#line 399 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_free0 (_tmp2_);
#line 399 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	size = _tmp4_;
#line 401 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = size;
#line 401 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = self->priv->settings;
#line 401 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp7_ = g_settings_get_int (_tmp6_, TETRAVEX_KEY_GRID_SIZE);
#line 401 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (((gint) _tmp5_) == _tmp7_) {
#line 402 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		return;
#line 2000 "gnome-tetravex.c"
	}
#line 403 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_ = self->priv->view;
#line 403 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp9_ = puzzle_view_get_game_in_progress (_tmp8_);
#line 403 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp10_ = _tmp9_;
#line 403 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp10_) {
#line 2010 "gnome-tetravex.c"
		GtkMessageDialog* dialog = NULL;
		GtkApplicationWindow* _tmp11_ = NULL;
		const gchar* _tmp12_ = NULL;
		GtkMessageDialog* _tmp13_ = NULL;
		GtkMessageDialog* _tmp14_ = NULL;
		const gchar* _tmp15_ = NULL;
		const gchar* _tmp16_ = NULL;
		gint response = 0;
		GtkMessageDialog* _tmp17_ = NULL;
		gint _tmp18_ = 0;
		GtkMessageDialog* _tmp19_ = NULL;
		gint _tmp20_ = 0;
#line 405 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp11_ = self->priv->window;
#line 405 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp12_ = _ ("Are you sure you want to start a new game with a different board size?");
#line 405 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp13_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _tmp11_, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _tmp12_);
#line 405 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		g_object_ref_sink (_tmp13_);
#line 405 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		dialog = _tmp13_;
#line 410 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp14_ = dialog;
#line 410 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp15_ = _ ("_Keep Playing");
#line 410 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp16_ = _ ("_Start New Game");
#line 410 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		gtk_dialog_add_buttons ((GtkDialog*) _tmp14_, _tmp15_, GTK_RESPONSE_REJECT, _tmp16_, GTK_RESPONSE_ACCEPT, NULL, NULL);
#line 414 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp17_ = dialog;
#line 414 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp18_ = gtk_dialog_run ((GtkDialog*) _tmp17_);
#line 414 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		response = _tmp18_;
#line 415 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp19_ = dialog;
#line 415 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		gtk_widget_destroy ((GtkWidget*) _tmp19_);
#line 417 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp20_ = response;
#line 417 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		if (_tmp20_ != ((gint) GTK_RESPONSE_ACCEPT)) {
#line 418 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			_g_object_unref0 (dialog);
#line 418 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
			return;
#line 2059 "gnome-tetravex.c"
		}
#line 403 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_g_object_unref0 (dialog);
#line 2063 "gnome-tetravex.c"
	}
#line 420 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp21_ = self->priv->settings;
#line 420 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp22_ = size;
#line 420 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_settings_set_int (_tmp21_, TETRAVEX_KEY_GRID_SIZE, (gint) _tmp22_);
#line 421 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp23_ = size;
#line 421 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_game_size = (gint) _tmp23_;
#line 422 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp24_ = action;
#line 422 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp25_ = value;
#line 422 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_simple_action_set_state (_tmp24_, _tmp25_);
#line 423 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_new_game (self);
#line 2083 "gnome-tetravex.c"
}


static void tetravex_move_up_cb (Tetravex* self) {
	Puzzle* _tmp0_ = NULL;
#line 426 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 428 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->puzzle;
#line 428 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	puzzle_move_up (_tmp0_);
#line 2095 "gnome-tetravex.c"
}


static void tetravex_move_left_cb (Tetravex* self) {
	Puzzle* _tmp0_ = NULL;
#line 431 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 433 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->puzzle;
#line 433 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	puzzle_move_left (_tmp0_);
#line 2107 "gnome-tetravex.c"
}


static void tetravex_move_right_cb (Tetravex* self) {
	Puzzle* _tmp0_ = NULL;
#line 436 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 438 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->puzzle;
#line 438 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	puzzle_move_right (_tmp0_);
#line 2119 "gnome-tetravex.c"
}


static void tetravex_move_down_cb (Tetravex* self) {
	Puzzle* _tmp0_ = NULL;
#line 441 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 443 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->puzzle;
#line 443 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	puzzle_move_down (_tmp0_);
#line 2131 "gnome-tetravex.c"
}


static void tetravex_pause_cb (Tetravex* self, GSimpleAction* action, GVariant* parameter) {
	Puzzle* _tmp0_ = NULL;
	Puzzle* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
#line 446 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 446 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (action != NULL);
#line 448 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = self->priv->puzzle;
#line 448 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = self->priv->puzzle;
#line 448 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = puzzle_get_paused (_tmp1_);
#line 448 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = _tmp2_;
#line 448 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	puzzle_set_paused (_tmp0_, !_tmp3_);
#line 449 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_update_button_states (self);
#line 2156 "gnome-tetravex.c"
}


static void tetravex_update_button_states (Tetravex* self) {
	GAction* _tmp0_ = NULL;
	Puzzle* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	const gchar* _tmp4_ = NULL;
	Puzzle* _tmp5_ = NULL;
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_ = FALSE;
	GtkStack* _tmp8_ = NULL;
#line 452 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 454 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = g_action_map_lookup_action ((GActionMap*) self, "solve");
#line 454 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = self->priv->puzzle;
#line 454 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = puzzle_get_paused (_tmp1_);
#line 454 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp3_ = _tmp2_;
#line 454 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_simple_action_set_enabled (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, g_simple_action_get_type (), GSimpleAction), !_tmp3_);
#line 455 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp5_ = self->priv->puzzle;
#line 455 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp6_ = puzzle_get_paused (_tmp5_);
#line 455 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp7_ = _tmp6_;
#line 455 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	if (_tmp7_) {
#line 455 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp4_ = "play";
#line 2192 "gnome-tetravex.c"
	} else {
#line 455 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
		_tmp4_ = "pause";
#line 2196 "gnome-tetravex.c"
	}
#line 455 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp8_ = self->priv->play_pause_stack;
#line 455 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	gtk_stack_set_visible_child_name (_tmp8_, _tmp4_);
#line 2202 "gnome-tetravex.c"
}


static void tetravex_radio_cb (Tetravex* self, GSimpleAction* action, GVariant* parameter) {
	GSimpleAction* _tmp0_ = NULL;
	GVariant* _tmp1_ = NULL;
#line 458 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (self != NULL);
#line 458 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_return_if_fail (action != NULL);
#line 460 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = action;
#line 460 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = parameter;
#line 460 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_signal_emit_by_name (_tmp0_, "change-state", _tmp1_);
#line 2219 "gnome-tetravex.c"
}


gint tetravex_main (gchar** args, int args_length1) {
	gint result = 0;
	Tetravex* app = NULL;
	Tetravex* _tmp0_ = NULL;
	gchar** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	gint _tmp2_ = 0;
#line 465 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	setlocale (LC_ALL, "");
#line 466 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
#line 467 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#line 468 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	textdomain (GETTEXT_PACKAGE);
#line 470 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp0_ = tetravex_new ();
#line 470 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	app = _tmp0_;
#line 471 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1_ = args;
#line 471 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp1__length1 = args_length1;
#line 471 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_tmp2_ = g_application_run ((GApplication*) app, _tmp1__length1, _tmp1_);
#line 471 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	result = _tmp2_;
#line 471 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (app);
#line 471 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return result;
#line 2254 "gnome-tetravex.c"
}


int main (int argc, char ** argv) {
#if !GLIB_CHECK_VERSION (2,35,0)
	g_type_init ();
#endif
#line 463 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	return tetravex_main (argv, argc);
#line 2264 "gnome-tetravex.c"
}


static void tetravex_class_init (TetravexClass * klass) {
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	tetravex_parent_class = g_type_class_peek_parent (klass);
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	g_type_class_add_private (klass, sizeof (TetravexPrivate));
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	((GApplicationClass *) klass)->startup = tetravex_real_startup;
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	((GApplicationClass *) klass)->shutdown = tetravex_real_shutdown;
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	((GApplicationClass *) klass)->handle_local_options = tetravex_real_handle_local_options;
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	((GApplicationClass *) klass)->activate = tetravex_real_activate;
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	G_OBJECT_CLASS (klass)->finalize = tetravex_finalize;
#line 2283 "gnome-tetravex.c"
}


static void tetravex_instance_init (Tetravex * self) {
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self->priv = TETRAVEX_GET_PRIVATE (self);
#line 2290 "gnome-tetravex.c"
}


static void tetravex_finalize (GObject* obj) {
	Tetravex * self;
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TETRAVEX, Tetravex);
#line 19 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->settings);
#line 21 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->puzzle);
#line 22 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->clock_label);
#line 23 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->history);
#line 25 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->view);
#line 27 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->window);
#line 33 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->new_game_solve_stack);
#line 34 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	_g_object_unref0 (self->priv->play_pause_stack);
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/gnome-tetravex.vala"
	G_OBJECT_CLASS (tetravex_parent_class)->finalize (obj);
#line 2316 "gnome-tetravex.c"
}


GType tetravex_get_type (void) {
	static volatile gsize tetravex_type_id__volatile = 0;
	if (g_once_init_enter (&tetravex_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (TetravexClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tetravex_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Tetravex), 0, (GInstanceInitFunc) tetravex_instance_init, NULL };
		GType tetravex_type_id;
		tetravex_type_id = g_type_register_static (gtk_application_get_type (), "Tetravex", &g_define_type_info, 0);
		g_once_init_leave (&tetravex_type_id__volatile, tetravex_type_id);
	}
	return tetravex_type_id__volatile;
}


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


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



