/* window.c generated by valac 0.18.0.77-c8a68, the Vala compiler
 * generated from window.vala, do not modify */

/*
 * Copyright (C) 2013  Paolo Borelli <pborelli@gnome.org>
 *
 * 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.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <libgd/gd.h>
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <stdlib.h>
#include <string.h>
#include "config.h"


#define CLOCKS_TYPE_WINDOW (clocks_window_get_type ())
#define CLOCKS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLOCKS_TYPE_WINDOW, ClocksWindow))
#define CLOCKS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLOCKS_TYPE_WINDOW, ClocksWindowClass))
#define CLOCKS_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLOCKS_TYPE_WINDOW))
#define CLOCKS_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLOCKS_TYPE_WINDOW))
#define CLOCKS_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLOCKS_TYPE_WINDOW, ClocksWindowClass))

typedef struct _ClocksWindow ClocksWindow;
typedef struct _ClocksWindowClass ClocksWindowClass;
typedef struct _ClocksWindowPrivate ClocksWindowPrivate;

#define CLOCKS_TYPE_TOOLBAR (clocks_toolbar_get_type ())
#define CLOCKS_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLOCKS_TYPE_TOOLBAR, ClocksToolbar))
#define CLOCKS_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLOCKS_TYPE_TOOLBAR, ClocksToolbarClass))
#define CLOCKS_IS_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLOCKS_TYPE_TOOLBAR))
#define CLOCKS_IS_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLOCKS_TYPE_TOOLBAR))
#define CLOCKS_TOOLBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLOCKS_TYPE_TOOLBAR, ClocksToolbarClass))

typedef struct _ClocksToolbar ClocksToolbar;
typedef struct _ClocksToolbarClass ClocksToolbarClass;

#define CLOCKS_WORLD_TYPE_MAIN_PANEL (clocks_world_main_panel_get_type ())
#define CLOCKS_WORLD_MAIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLOCKS_WORLD_TYPE_MAIN_PANEL, ClocksWorldMainPanel))
#define CLOCKS_WORLD_MAIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLOCKS_WORLD_TYPE_MAIN_PANEL, ClocksWorldMainPanelClass))
#define CLOCKS_WORLD_IS_MAIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLOCKS_WORLD_TYPE_MAIN_PANEL))
#define CLOCKS_WORLD_IS_MAIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLOCKS_WORLD_TYPE_MAIN_PANEL))
#define CLOCKS_WORLD_MAIN_PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLOCKS_WORLD_TYPE_MAIN_PANEL, ClocksWorldMainPanelClass))

typedef struct _ClocksWorldMainPanel ClocksWorldMainPanel;
typedef struct _ClocksWorldMainPanelClass ClocksWorldMainPanelClass;

#define CLOCKS_ALARM_TYPE_MAIN_PANEL (clocks_alarm_main_panel_get_type ())
#define CLOCKS_ALARM_MAIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLOCKS_ALARM_TYPE_MAIN_PANEL, ClocksAlarmMainPanel))
#define CLOCKS_ALARM_MAIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLOCKS_ALARM_TYPE_MAIN_PANEL, ClocksAlarmMainPanelClass))
#define CLOCKS_ALARM_IS_MAIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLOCKS_ALARM_TYPE_MAIN_PANEL))
#define CLOCKS_ALARM_IS_MAIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLOCKS_ALARM_TYPE_MAIN_PANEL))
#define CLOCKS_ALARM_MAIN_PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLOCKS_ALARM_TYPE_MAIN_PANEL, ClocksAlarmMainPanelClass))

typedef struct _ClocksAlarmMainPanel ClocksAlarmMainPanel;
typedef struct _ClocksAlarmMainPanelClass ClocksAlarmMainPanelClass;

#define CLOCKS_STOPWATCH_TYPE_MAIN_PANEL (clocks_stopwatch_main_panel_get_type ())
#define CLOCKS_STOPWATCH_MAIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLOCKS_STOPWATCH_TYPE_MAIN_PANEL, ClocksStopwatchMainPanel))
#define CLOCKS_STOPWATCH_MAIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLOCKS_STOPWATCH_TYPE_MAIN_PANEL, ClocksStopwatchMainPanelClass))
#define CLOCKS_STOPWATCH_IS_MAIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLOCKS_STOPWATCH_TYPE_MAIN_PANEL))
#define CLOCKS_STOPWATCH_IS_MAIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLOCKS_STOPWATCH_TYPE_MAIN_PANEL))
#define CLOCKS_STOPWATCH_MAIN_PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLOCKS_STOPWATCH_TYPE_MAIN_PANEL, ClocksStopwatchMainPanelClass))

typedef struct _ClocksStopwatchMainPanel ClocksStopwatchMainPanel;
typedef struct _ClocksStopwatchMainPanelClass ClocksStopwatchMainPanelClass;

#define CLOCKS_TIMER_TYPE_MAIN_PANEL (clocks_timer_main_panel_get_type ())
#define CLOCKS_TIMER_MAIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLOCKS_TIMER_TYPE_MAIN_PANEL, ClocksTimerMainPanel))
#define CLOCKS_TIMER_MAIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLOCKS_TIMER_TYPE_MAIN_PANEL, ClocksTimerMainPanelClass))
#define CLOCKS_TIMER_IS_MAIN_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLOCKS_TIMER_TYPE_MAIN_PANEL))
#define CLOCKS_TIMER_IS_MAIN_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLOCKS_TIMER_TYPE_MAIN_PANEL))
#define CLOCKS_TIMER_MAIN_PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLOCKS_TIMER_TYPE_MAIN_PANEL, ClocksTimerMainPanelClass))

typedef struct _ClocksTimerMainPanel ClocksTimerMainPanel;
typedef struct _ClocksTimerMainPanelClass ClocksTimerMainPanelClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define CLOCKS_TYPE_APPLICATION (clocks_application_get_type ())
#define CLOCKS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLOCKS_TYPE_APPLICATION, ClocksApplication))
#define CLOCKS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLOCKS_TYPE_APPLICATION, ClocksApplicationClass))
#define CLOCKS_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLOCKS_TYPE_APPLICATION))
#define CLOCKS_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLOCKS_TYPE_APPLICATION))
#define CLOCKS_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLOCKS_TYPE_APPLICATION, ClocksApplicationClass))

typedef struct _ClocksApplication ClocksApplication;
typedef struct _ClocksApplicationClass ClocksApplicationClass;
typedef struct _Block1Data Block1Data;

#define CLOCKS_TYPE_CLOCK (clocks_clock_get_type ())
#define CLOCKS_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLOCKS_TYPE_CLOCK, ClocksClock))
#define CLOCKS_IS_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLOCKS_TYPE_CLOCK))
#define CLOCKS_CLOCK_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CLOCKS_TYPE_CLOCK, ClocksClockIface))

typedef struct _ClocksClock ClocksClock;
typedef struct _ClocksClockIface ClocksClockIface;

struct _ClocksWindow {
	GtkApplicationWindow parent_instance;
	ClocksWindowPrivate * priv;
};

struct _ClocksWindowClass {
	GtkApplicationWindowClass parent_class;
};

struct _ClocksWindowPrivate {
	ClocksToolbar* toolbar;
	GdStack* stack;
	ClocksWorldMainPanel* world;
	ClocksAlarmMainPanel* alarm;
	ClocksStopwatchMainPanel* stopwatch;
	ClocksTimerMainPanel* timer;
};

struct _Block1Data {
	int _ref_count_;
	ClocksWindow * self;
	gulong id;
};

struct _ClocksClockIface {
	GTypeInterface parent_iface;
	void (*activate_new) (ClocksClock* self);
	void (*activate_select_all) (ClocksClock* self);
	void (*activate_select_none) (ClocksClock* self);
	void (*update_toolbar) (ClocksClock* self);
	const gchar* (*get_label) (ClocksClock* self);
	void (*set_label) (ClocksClock* self, const gchar* value);
	ClocksToolbar* (*get_toolbar) (ClocksClock* self);
	void (*set_toolbar) (ClocksClock* self, ClocksToolbar* value);
};


static gpointer clocks_window_parent_class = NULL;

GType clocks_window_get_type (void) G_GNUC_CONST;
GType clocks_toolbar_get_type (void) G_GNUC_CONST;
GType clocks_world_main_panel_get_type (void) G_GNUC_CONST;
GType clocks_alarm_main_panel_get_type (void) G_GNUC_CONST;
GType clocks_stopwatch_main_panel_get_type (void) G_GNUC_CONST;
GType clocks_timer_main_panel_get_type (void) G_GNUC_CONST;
#define CLOCKS_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CLOCKS_TYPE_WINDOW, ClocksWindowPrivate))
enum  {
	CLOCKS_WINDOW_DUMMY_PROPERTY
};
#define CLOCKS_WINDOW_DEFAULT_WIDTH 882
#define CLOCKS_WINDOW_DEFAULT_HEIGHT 680
static void clocks_window_on_new_activate (ClocksWindow* self);
static void _clocks_window_on_new_activate_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void clocks_window_on_about_activate (ClocksWindow* self);
static void _clocks_window_on_about_activate_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void clocks_window_on_select_all_activate (ClocksWindow* self);
static void _clocks_window_on_select_all_activate_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void clocks_window_on_select_none_activate (ClocksWindow* self);
static void _clocks_window_on_select_none_activate_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
GType clocks_application_get_type (void) G_GNUC_CONST;
ClocksWindow* clocks_window_new (ClocksApplication* app);
ClocksWindow* clocks_window_construct (GType object_type, ClocksApplication* app);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (void * _userdata_);
ClocksToolbar* clocks_toolbar_new (void);
ClocksToolbar* clocks_toolbar_construct (GType object_type);
ClocksWorldMainPanel* clocks_world_main_panel_new (ClocksToolbar* toolbar);
ClocksWorldMainPanel* clocks_world_main_panel_construct (GType object_type, ClocksToolbar* toolbar);
ClocksAlarmMainPanel* clocks_alarm_main_panel_new (ClocksToolbar* toolbar);
ClocksAlarmMainPanel* clocks_alarm_main_panel_construct (GType object_type, ClocksToolbar* toolbar);
ClocksStopwatchMainPanel* clocks_stopwatch_main_panel_new (ClocksToolbar* toolbar);
ClocksStopwatchMainPanel* clocks_stopwatch_main_panel_construct (GType object_type, ClocksToolbar* toolbar);
ClocksTimerMainPanel* clocks_timer_main_panel_new (ClocksToolbar* toolbar);
ClocksTimerMainPanel* clocks_timer_main_panel_construct (GType object_type, ClocksToolbar* toolbar);
GType clocks_clock_get_type (void) G_GNUC_CONST;
void clocks_toolbar_add_clock (ClocksToolbar* self, ClocksClock* clock);
static void __lambda46_ (ClocksWindow* self, ClocksClock* c);
static void ___lambda46__clocks_toolbar_clock_changed (ClocksToolbar* _sender, ClocksClock* clock, gpointer self);
static void __lambda47_ (ClocksWindow* self);
static void clocks_window_update_toolbar (ClocksWindow* self);
static void ___lambda47__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void __lambda48_ (ClocksWindow* self);
static void ___lambda48__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void __lambda49_ (Block1Data* _data1_);
static void ___lambda49__gtk_widget_destroy (GtkWidget* _sender, gpointer self);
static void __lambda50_ (ClocksWindow* self, ClocksAlarmMainPanel* w);
static void ___lambda50__clocks_alarm_main_panel_ring (ClocksAlarmMainPanel* _sender, gpointer self);
static void __lambda51_ (ClocksWindow* self, ClocksTimerMainPanel* w);
static void ___lambda51__clocks_timer_main_panel_ring (ClocksTimerMainPanel* _sender, gpointer self);
void clocks_clock_update_toolbar (ClocksClock* self);
void clocks_clock_activate_new (ClocksClock* self);
void clocks_clock_activate_select_all (ClocksClock* self);
void clocks_clock_activate_select_none (ClocksClock* self);
void clocks_toolbar_clear (ClocksToolbar* self);
static void clocks_window_finalize (GObject* obj);

static const GActionEntry CLOCKS_WINDOW_action_entries[4] = {{"new", _clocks_window_on_new_activate_gsimple_action_activate_callback}, {"about", _clocks_window_on_about_activate_gsimple_action_activate_callback}, {"select-all", _clocks_window_on_select_all_activate_gsimple_action_activate_callback}, {"select-none", _clocks_window_on_select_none_activate_gsimple_action_activate_callback}};

static void _clocks_window_on_new_activate_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
	clocks_window_on_new_activate (self);
}


static void _clocks_window_on_about_activate_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
	clocks_window_on_about_activate (self);
}


static void _clocks_window_on_select_all_activate_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
	clocks_window_on_select_all_activate (self);
}


static void _clocks_window_on_select_none_activate_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
	clocks_window_on_select_none_activate (self);
}


static Block1Data* block1_data_ref (Block1Data* _data1_) {
	g_atomic_int_inc (&_data1_->_ref_count_);
	return _data1_;
}


static void block1_data_unref (void * _userdata_) {
	Block1Data* _data1_;
	_data1_ = (Block1Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
		ClocksWindow * self;
		self = _data1_->self;
		_g_object_unref0 (self);
		g_slice_free (Block1Data, _data1_);
	}
}


static void __lambda46_ (ClocksWindow* self, ClocksClock* c) {
	GdStack* _tmp0_;
	ClocksClock* _tmp1_;
	g_return_if_fail (c != NULL);
	_tmp0_ = self->priv->stack;
	_tmp1_ = c;
	gd_stack_set_visible_child (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GTK_TYPE_WIDGET, GtkWidget));
}


static void ___lambda46__clocks_toolbar_clock_changed (ClocksToolbar* _sender, ClocksClock* clock, gpointer self) {
	__lambda46_ (self, clock);
}


static void __lambda47_ (ClocksWindow* self) {
	clocks_window_update_toolbar (self);
}


static void ___lambda47__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	__lambda47_ (self);
}


static void __lambda48_ (ClocksWindow* self) {
	clocks_window_update_toolbar (self);
}


static void ___lambda48__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	__lambda48_ (self);
}


static void __lambda49_ (Block1Data* _data1_) {
	ClocksWindow * self;
	GdStack* _tmp0_;
	self = _data1_->self;
	_tmp0_ = self->priv->stack;
	g_signal_handler_disconnect ((GObject*) _tmp0_, _data1_->id);
	_data1_->id = (gulong) 0;
}


static void ___lambda49__gtk_widget_destroy (GtkWidget* _sender, gpointer self) {
	__lambda49_ (self);
}


static void __lambda50_ (ClocksWindow* self, ClocksAlarmMainPanel* w) {
	GdStack* _tmp0_;
	ClocksAlarmMainPanel* _tmp1_;
	g_return_if_fail (w != NULL);
	_tmp0_ = self->priv->stack;
	_tmp1_ = w;
	gd_stack_set_visible_child (_tmp0_, (GtkWidget*) _tmp1_);
}


static void ___lambda50__clocks_alarm_main_panel_ring (ClocksAlarmMainPanel* _sender, gpointer self) {
	__lambda50_ (self, _sender);
}


static void __lambda51_ (ClocksWindow* self, ClocksTimerMainPanel* w) {
	GdStack* _tmp0_;
	ClocksTimerMainPanel* _tmp1_;
	g_return_if_fail (w != NULL);
	_tmp0_ = self->priv->stack;
	_tmp1_ = w;
	gd_stack_set_visible_child (_tmp0_, (GtkWidget*) _tmp1_);
}


static void ___lambda51__clocks_timer_main_panel_ring (ClocksTimerMainPanel* _sender, gpointer self) {
	__lambda51_ (self, _sender);
}


ClocksWindow* clocks_window_construct (GType object_type, ClocksApplication* app) {
	ClocksWindow * self = NULL;
	Block1Data* _data1_;
	ClocksApplication* _tmp0_;
	const gchar* _tmp1_ = NULL;
	ClocksToolbar* _tmp2_;
	ClocksToolbar* _tmp3_;
	ClocksWorldMainPanel* _tmp4_;
	ClocksToolbar* _tmp5_;
	ClocksAlarmMainPanel* _tmp6_;
	ClocksToolbar* _tmp7_;
	ClocksStopwatchMainPanel* _tmp8_;
	ClocksToolbar* _tmp9_;
	ClocksTimerMainPanel* _tmp10_;
	ClocksToolbar* _tmp11_;
	ClocksWorldMainPanel* _tmp12_;
	ClocksToolbar* _tmp13_;
	ClocksAlarmMainPanel* _tmp14_;
	ClocksToolbar* _tmp15_;
	ClocksStopwatchMainPanel* _tmp16_;
	ClocksToolbar* _tmp17_;
	ClocksTimerMainPanel* _tmp18_;
	GdStack* _tmp19_;
	GdStack* _tmp20_;
	GdStack* _tmp21_;
	ClocksWorldMainPanel* _tmp22_;
	GdStack* _tmp23_;
	ClocksAlarmMainPanel* _tmp24_;
	GdStack* _tmp25_;
	ClocksStopwatchMainPanel* _tmp26_;
	GdStack* _tmp27_;
	ClocksTimerMainPanel* _tmp28_;
	ClocksToolbar* _tmp29_;
	GdStack* _tmp30_;
	gulong _tmp31_ = 0UL;
	ClocksToolbar* _tmp32_;
	ClocksToolbar* _tmp33_;
	ClocksAlarmMainPanel* _tmp34_;
	ClocksTimerMainPanel* _tmp35_;
	GdStack* _tmp36_;
	ClocksWorldMainPanel* _tmp37_;
	ClocksWorldMainPanel* _tmp38_;
	GtkFrame* _tmp39_;
	GtkFrame* frame;
	GtkStyleContext* _tmp40_ = NULL;
	GtkStyleContext* _tmp41_ = NULL;
	GtkStyleContext* _tmp42_ = NULL;
	GdStack* _tmp43_;
	GtkBox* _tmp44_;
	GtkBox* vbox;
	ClocksToolbar* _tmp45_;
	g_return_val_if_fail (app != NULL, NULL);
	_data1_ = g_slice_new0 (Block1Data);
	_data1_->_ref_count_ = 1;
	_tmp0_ = app;
	_tmp1_ = _ ("Clocks");
	self = (ClocksWindow*) g_object_new (object_type, "application", _tmp0_, "title", _tmp1_, NULL);
	_data1_->self = g_object_ref (self);
	gtk_window_set_hide_titlebar_when_maximized ((GtkWindow*) self, TRUE);
	g_action_map_add_action_entries ((GActionMap*) self, (const GActionEntry*) CLOCKS_WINDOW_action_entries, G_N_ELEMENTS (CLOCKS_WINDOW_action_entries), self);
	gtk_widget_set_size_request ((GtkWidget*) self, CLOCKS_WINDOW_DEFAULT_WIDTH, CLOCKS_WINDOW_DEFAULT_HEIGHT);
	_tmp2_ = clocks_toolbar_new ();
	g_object_ref_sink (_tmp2_);
	_g_object_unref0 (self->priv->toolbar);
	self->priv->toolbar = _tmp2_;
	_tmp3_ = self->priv->toolbar;
	_tmp4_ = clocks_world_main_panel_new (_tmp3_);
	g_object_ref_sink (_tmp4_);
	_g_object_unref0 (self->priv->world);
	self->priv->world = _tmp4_;
	_tmp5_ = self->priv->toolbar;
	_tmp6_ = clocks_alarm_main_panel_new (_tmp5_);
	g_object_ref_sink (_tmp6_);
	_g_object_unref0 (self->priv->alarm);
	self->priv->alarm = _tmp6_;
	_tmp7_ = self->priv->toolbar;
	_tmp8_ = clocks_stopwatch_main_panel_new (_tmp7_);
	g_object_ref_sink (_tmp8_);
	_g_object_unref0 (self->priv->stopwatch);
	self->priv->stopwatch = _tmp8_;
	_tmp9_ = self->priv->toolbar;
	_tmp10_ = clocks_timer_main_panel_new (_tmp9_);
	g_object_ref_sink (_tmp10_);
	_g_object_unref0 (self->priv->timer);
	self->priv->timer = _tmp10_;
	_tmp11_ = self->priv->toolbar;
	_tmp12_ = self->priv->world;
	clocks_toolbar_add_clock (_tmp11_, (ClocksClock*) _tmp12_);
	_tmp13_ = self->priv->toolbar;
	_tmp14_ = self->priv->alarm;
	clocks_toolbar_add_clock (_tmp13_, (ClocksClock*) _tmp14_);
	_tmp15_ = self->priv->toolbar;
	_tmp16_ = self->priv->stopwatch;
	clocks_toolbar_add_clock (_tmp15_, (ClocksClock*) _tmp16_);
	_tmp17_ = self->priv->toolbar;
	_tmp18_ = self->priv->timer;
	clocks_toolbar_add_clock (_tmp17_, (ClocksClock*) _tmp18_);
	_tmp19_ = (GdStack*) gd_stack_new ();
	g_object_ref_sink (_tmp19_);
	_g_object_unref0 (self->priv->stack);
	self->priv->stack = _tmp19_;
	_tmp20_ = self->priv->stack;
	gd_stack_set_duration (_tmp20_, 0);
	_tmp21_ = self->priv->stack;
	_tmp22_ = self->priv->world;
	gtk_container_add ((GtkContainer*) _tmp21_, (GtkWidget*) _tmp22_);
	_tmp23_ = self->priv->stack;
	_tmp24_ = self->priv->alarm;
	gtk_container_add ((GtkContainer*) _tmp23_, (GtkWidget*) _tmp24_);
	_tmp25_ = self->priv->stack;
	_tmp26_ = self->priv->stopwatch;
	gtk_container_add ((GtkContainer*) _tmp25_, (GtkWidget*) _tmp26_);
	_tmp27_ = self->priv->stack;
	_tmp28_ = self->priv->timer;
	gtk_container_add ((GtkContainer*) _tmp27_, (GtkWidget*) _tmp28_);
	_tmp29_ = self->priv->toolbar;
	g_signal_connect_object (_tmp29_, "clock-changed", (GCallback) ___lambda46__clocks_toolbar_clock_changed, self, 0);
	_tmp30_ = self->priv->stack;
	_tmp31_ = g_signal_connect_object ((GObject*) _tmp30_, "notify::visible-child", (GCallback) ___lambda47__g_object_notify, self, 0);
	_data1_->id = _tmp31_;
	_tmp32_ = self->priv->toolbar;
	g_signal_connect_object ((GObject*) _tmp32_, "notify::mode", (GCallback) ___lambda48__g_object_notify, self, 0);
	_tmp33_ = self->priv->toolbar;
	g_signal_connect_data ((GtkWidget*) _tmp33_, "destroy", (GCallback) ___lambda49__gtk_widget_destroy, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
	_tmp34_ = self->priv->alarm;
	g_signal_connect_object (_tmp34_, "ring", (GCallback) ___lambda50__clocks_alarm_main_panel_ring, self, 0);
	_tmp35_ = self->priv->timer;
	g_signal_connect_object (_tmp35_, "ring", (GCallback) ___lambda51__clocks_timer_main_panel_ring, self, 0);
	_tmp36_ = self->priv->stack;
	_tmp37_ = self->priv->world;
	gd_stack_set_visible_child (_tmp36_, (GtkWidget*) _tmp37_);
	_tmp38_ = self->priv->world;
	clocks_clock_update_toolbar ((ClocksClock*) _tmp38_);
	_tmp39_ = (GtkFrame*) gtk_frame_new (NULL);
	g_object_ref_sink (_tmp39_);
	frame = _tmp39_;
	_tmp40_ = gtk_widget_get_style_context ((GtkWidget*) frame);
	gtk_style_context_add_class (_tmp40_, "clocks-content-view");
	_tmp41_ = gtk_widget_get_style_context ((GtkWidget*) frame);
	gtk_style_context_add_class (_tmp41_, "view");
	_tmp42_ = gtk_widget_get_style_context ((GtkWidget*) frame);
	gtk_style_context_add_class (_tmp42_, "content-view");
	_tmp43_ = self->priv->stack;
	gtk_container_add ((GtkContainer*) frame, (GtkWidget*) _tmp43_);
	_tmp44_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp44_);
	vbox = _tmp44_;
	_tmp45_ = self->priv->toolbar;
	gtk_box_pack_start (vbox, (GtkWidget*) _tmp45_, FALSE, FALSE, (guint) 0);
	gtk_box_pack_end (vbox, (GtkWidget*) frame, TRUE, TRUE, (guint) 0);
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) vbox);
	gtk_widget_show_all ((GtkWidget*) self);
	_g_object_unref0 (vbox);
	_g_object_unref0 (frame);
	block1_data_unref (_data1_);
	_data1_ = NULL;
	return self;
}


ClocksWindow* clocks_window_new (ClocksApplication* app) {
	return clocks_window_construct (CLOCKS_TYPE_WINDOW, app);
}


static void clocks_window_on_new_activate (ClocksWindow* self) {
	GdStack* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->stack;
	_tmp1_ = gd_stack_get_visible_child (_tmp0_);
	_tmp2_ = _tmp1_;
	clocks_clock_activate_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, CLOCKS_TYPE_CLOCK, ClocksClock));
}


static void clocks_window_on_select_all_activate (ClocksWindow* self) {
	GdStack* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->stack;
	_tmp1_ = gd_stack_get_visible_child (_tmp0_);
	_tmp2_ = _tmp1_;
	clocks_clock_activate_select_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, CLOCKS_TYPE_CLOCK, ClocksClock));
}


static void clocks_window_on_select_none_activate (ClocksWindow* self) {
	GdStack* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->stack;
	_tmp1_ = gd_stack_get_visible_child (_tmp0_);
	_tmp2_ = _tmp1_;
	clocks_clock_activate_select_none (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, CLOCKS_TYPE_CLOCK, ClocksClock));
}


static void clocks_window_on_about_activate (ClocksWindow* self) {
	static const char copyright[] = "Copyright \xc2\xa9 2011 Collabora Ltd.\n" "Copyright \xc2\xa9 2012-2013 Collabora Ltd., Seif Lotfy, Emily Gonyer\n" "Eslam Mostafa, Paolo Borelli, Volker Sobek\n";
	static const gchar* authors[] = {"Alex Anthony", "Paolo Borelli", "Allan Day", "Piotr Drąg", "Emily Gonyer", "Maël Lavault", "Seif Lotfy", "William Jon McCann", "Eslam Mostafa", "Bastien Nocera", "Volker Sobek", "Jakub Steiner", NULL};
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = _ ("Gnome Clocks");
	_tmp1_ = _ ("Utilities to help you with the time.");
	_tmp2_ = _ ("translator-credits");
	gtk_show_about_dialog ((GtkWindow*) self, "program-name", _tmp0_, "logo-icon-name", "gnome-clocks", "version", VERSION, "comments", _tmp1_, "copyright", copyright, "authors", authors, "license-type", GTK_LICENSE_GPL_2_0, "wrap-license", FALSE, "translator-credits", _tmp2_, NULL, NULL);
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


static void clocks_window_update_toolbar (ClocksWindow* self) {
	ClocksToolbar* _tmp0_;
	GdStack* _tmp1_;
	GtkWidget* _tmp2_;
	GtkWidget* _tmp3_;
	ClocksClock* _tmp4_;
	ClocksClock* clock;
	ClocksClock* _tmp5_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->toolbar;
	clocks_toolbar_clear (_tmp0_);
	_tmp1_ = self->priv->stack;
	_tmp2_ = gd_stack_get_visible_child (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, CLOCKS_TYPE_CLOCK, ClocksClock));
	clock = _tmp4_;
	_tmp5_ = clock;
	if (_tmp5_ != NULL) {
		ClocksClock* _tmp6_;
		_tmp6_ = clock;
		clocks_clock_update_toolbar (_tmp6_);
	}
	_g_object_unref0 (clock);
}


static void clocks_window_class_init (ClocksWindowClass * klass) {
	clocks_window_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (ClocksWindowPrivate));
	G_OBJECT_CLASS (klass)->finalize = clocks_window_finalize;
}


static void clocks_window_instance_init (ClocksWindow * self) {
	self->priv = CLOCKS_WINDOW_GET_PRIVATE (self);
}


static void clocks_window_finalize (GObject* obj) {
	ClocksWindow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, CLOCKS_TYPE_WINDOW, ClocksWindow);
	_g_object_unref0 (self->priv->toolbar);
	_g_object_unref0 (self->priv->stack);
	_g_object_unref0 (self->priv->world);
	_g_object_unref0 (self->priv->alarm);
	_g_object_unref0 (self->priv->stopwatch);
	_g_object_unref0 (self->priv->timer);
	G_OBJECT_CLASS (clocks_window_parent_class)->finalize (obj);
}


GType clocks_window_get_type (void) {
	static volatile gsize clocks_window_type_id__volatile = 0;
	if (g_once_init_enter (&clocks_window_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ClocksWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) clocks_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ClocksWindow), 0, (GInstanceInitFunc) clocks_window_instance_init, NULL };
		GType clocks_window_type_id;
		clocks_window_type_id = g_type_register_static (GTK_TYPE_APPLICATION_WINDOW, "ClocksWindow", &g_define_type_info, 0);
		g_once_init_leave (&clocks_window_type_id__volatile, clocks_window_type_id);
	}
	return clocks_window_type_id__volatile;
}



