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


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


#define TYPE_PREFERENCES (preferences_get_type ())
#define PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREFERENCES, Preferences))
#define PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREFERENCES, PreferencesClass))
#define IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREFERENCES))
#define IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREFERENCES))
#define PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREFERENCES, PreferencesClass))

typedef struct _Preferences Preferences;
typedef struct _PreferencesClass PreferencesClass;
typedef struct _PreferencesPrivate PreferencesPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_ICON_MENU (icon_menu_get_type ())
#define ICON_MENU(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ICON_MENU, IconMenu))
#define ICON_MENU_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ICON_MENU, IconMenuClass))
#define IS_ICON_MENU(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ICON_MENU))
#define IS_ICON_MENU_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ICON_MENU))
#define ICON_MENU_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ICON_MENU, IconMenuClass))

typedef struct _IconMenu IconMenu;
typedef struct _IconMenuClass IconMenuClass;
typedef struct _IconMenuPrivate IconMenuPrivate;

struct _Preferences {
	GtkWindow parent_instance;
	PreferencesPrivate * priv;
};

struct _PreferencesClass {
	GtkWindowClass parent_class;
};

struct _PreferencesPrivate {
	GtkColorButton* borderButton;
	GtkColorButton* ticksButton;
	GtkColorButton* hoursButton;
	GtkColorButton* backgroundButton;
	GtkColorButton* minutesButton;
	GtkEntry* formatEntry;
};

struct _IconMenu {
	GtkMenu parent_instance;
	IconMenuPrivate * priv;
};

struct _IconMenuClass {
	GtkMenuClass parent_class;
};


static gpointer preferences_parent_class = NULL;
static gpointer icon_menu_parent_class = NULL;

GType preferences_get_type (void);
#define PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PREFERENCES, PreferencesPrivate))
enum  {
	PREFERENCES_DUMMY_PROPERTY
};
void preferences_update_app (Preferences* self);
static void _preferences_update_app_gtk_button_clicked (GtkButton* _sender, gpointer self);
void preferences_do_destroy (Preferences* self);
static void _preferences_do_destroy_gtk_button_clicked (GtkButton* _sender, gpointer self);
void preferences_destruct (Preferences* self);
static void _preferences_destruct_gtk_object_destroy (GtkObject* _sender, gpointer self);
Preferences* preferences_new (void);
Preferences* preferences_construct (GType object_type);
void preferences_set_colors (Preferences* self, const char* background, const char* ticks, const char* border, const char* hours, const char* minutes);
void preferences_set_datetime_format (Preferences* self, const char* datetime_format);
void preferences_display (Preferences* self);
static GObject * preferences_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static void preferences_finalize (GObject* obj);
GType icon_menu_get_type (void);
enum  {
	ICON_MENU_DUMMY_PROPERTY
};
static void _lambda0_ (GtkMenuItem* source, IconMenu* self);
static void __lambda0__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
static void _lambda1_ (GtkMenuItem* source, IconMenu* self);
static void __lambda1__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
IconMenu* icon_menu_new (void);
IconMenu* icon_menu_construct (GType object_type);


static void g_cclosure_user_marshal_VOID__BOXED_BOXED_BOXED_BOXED_BOXED_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);

static void _preferences_update_app_gtk_button_clicked (GtkButton* _sender, gpointer self) {
	preferences_update_app (self);
}


static void _preferences_do_destroy_gtk_button_clicked (GtkButton* _sender, gpointer self) {
	preferences_do_destroy (self);
}


static void _preferences_destruct_gtk_object_destroy (GtkObject* _sender, gpointer self) {
	preferences_destruct (self);
}


Preferences* preferences_construct (GType object_type) {
	Preferences * self;
	GtkVBox* topVbox;
	GtkTable* table;
	GtkFrame* colorsFrame;
	GtkColorButton* _tmp0_;
	GtkColorButton* _tmp1_;
	GtkColorButton* _tmp2_;
	GtkColorButton* _tmp3_;
	GtkColorButton* _tmp4_;
	GtkEntry* _tmp5_;
	GtkAlignment* align;
	GtkLabel* backgroundLabel;
	GtkAlignment* _tmp6_;
	GtkLabel* ticksLabel;
	GtkAlignment* _tmp7_;
	GtkLabel* borderLabel;
	GtkAlignment* _tmp8_;
	GtkLabel* hoursLabel;
	GtkAlignment* _tmp9_;
	GtkLabel* minutesLabel;
	GtkAlignment* _tmp10_;
	GtkTable* formatTable;
	GtkLabel* formatLabel;
	GtkFrame* dateTimeFrame;
	GtkHButtonBox* bbox;
	GtkButton* OKButton;
	GtkButton* cancelButton;
	self = g_object_newv (object_type, 0, NULL);
	gtk_window_set_modal ((GtkWindow*) self, TRUE);
	gtk_window_set_resizable ((GtkWindow*) self, FALSE);
	gtk_window_set_title ((GtkWindow*) self, _ ("Preferences"));
	gtk_window_set_deletable ((GtkWindow*) self, FALSE);
	topVbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 5));
	gtk_container_set_border_width ((GtkContainer*) topVbox, (guint) 3);
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) topVbox);
	table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 5, (guint) 2, FALSE));
	gtk_container_set_border_width ((GtkContainer*) table, (guint) 3);
	gtk_table_set_col_spacings (table, (guint) 3);
	gtk_table_set_row_spacings (table, (guint) 3);
	colorsFrame = g_object_ref_sink ((GtkFrame*) gtk_frame_new (_ ("Colors")));
	gtk_container_add ((GtkContainer*) colorsFrame, (GtkWidget*) table);
	self->priv->borderButton = (_tmp0_ = g_object_ref_sink ((GtkColorButton*) gtk_color_button_new ()), _g_object_unref0 (self->priv->borderButton), _tmp0_);
	self->priv->ticksButton = (_tmp1_ = g_object_ref_sink ((GtkColorButton*) gtk_color_button_new ()), _g_object_unref0 (self->priv->ticksButton), _tmp1_);
	self->priv->hoursButton = (_tmp2_ = g_object_ref_sink ((GtkColorButton*) gtk_color_button_new ()), _g_object_unref0 (self->priv->hoursButton), _tmp2_);
	self->priv->backgroundButton = (_tmp3_ = g_object_ref_sink ((GtkColorButton*) gtk_color_button_new ()), _g_object_unref0 (self->priv->backgroundButton), _tmp3_);
	self->priv->minutesButton = (_tmp4_ = g_object_ref_sink ((GtkColorButton*) gtk_color_button_new ()), _g_object_unref0 (self->priv->minutesButton), _tmp4_);
	self->priv->formatEntry = (_tmp5_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->formatEntry), _tmp5_);
	align = NULL;
	backgroundLabel = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Background:")));
	gtk_misc_set_alignment ((GtkMisc*) backgroundLabel, (float) 0, (float) 0.5);
	gtk_table_attach (table, (GtkWidget*) backgroundLabel, (guint) 0, (guint) 1, (guint) 0, (guint) 1, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	align = (_tmp6_ = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0)), _g_object_unref0 (align), _tmp6_);
	gtk_container_add ((GtkContainer*) align, (GtkWidget*) self->priv->backgroundButton);
	gtk_table_attach (table, (GtkWidget*) align, (guint) 1, (guint) 2, (guint) 0, (guint) 1, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	ticksLabel = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Ticks:")));
	gtk_misc_set_alignment ((GtkMisc*) ticksLabel, (float) 0, (float) 0.5);
	gtk_table_attach (table, (GtkWidget*) ticksLabel, (guint) 0, (guint) 1, (guint) 1, (guint) 2, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	align = (_tmp7_ = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0)), _g_object_unref0 (align), _tmp7_);
	gtk_container_add ((GtkContainer*) align, (GtkWidget*) self->priv->ticksButton);
	gtk_table_attach (table, (GtkWidget*) align, (guint) 1, (guint) 2, (guint) 1, (guint) 2, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	borderLabel = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Border:")));
	gtk_misc_set_alignment ((GtkMisc*) borderLabel, (float) 0, (float) 0.5);
	gtk_table_attach (table, (GtkWidget*) borderLabel, (guint) 0, (guint) 1, (guint) 2, (guint) 3, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	align = (_tmp8_ = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0)), _g_object_unref0 (align), _tmp8_);
	gtk_container_add ((GtkContainer*) align, (GtkWidget*) self->priv->borderButton);
	gtk_table_attach (table, (GtkWidget*) align, (guint) 1, (guint) 2, (guint) 2, (guint) 3, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	hoursLabel = g_object_ref_sink ((GtkLabel*) gtk_label_new ("Hours Hand:"));
	gtk_misc_set_alignment ((GtkMisc*) hoursLabel, (float) 0, (float) 0.5);
	gtk_table_attach (table, (GtkWidget*) hoursLabel, (guint) 0, (guint) 1, (guint) 3, (guint) 4, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	align = (_tmp9_ = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0)), _g_object_unref0 (align), _tmp9_);
	gtk_container_add ((GtkContainer*) align, (GtkWidget*) self->priv->hoursButton);
	gtk_table_attach (table, (GtkWidget*) align, (guint) 1, (guint) 2, (guint) 3, (guint) 4, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	minutesLabel = g_object_ref_sink ((GtkLabel*) gtk_label_new ("Minutes Hand:"));
	gtk_misc_set_alignment ((GtkMisc*) minutesLabel, (float) 0, (float) 0.5);
	gtk_table_attach (table, (GtkWidget*) minutesLabel, (guint) 0, (guint) 1, (guint) 4, (guint) 5, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	align = (_tmp10_ = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0)), _g_object_unref0 (align), _tmp10_);
	gtk_container_add ((GtkContainer*) align, (GtkWidget*) self->priv->minutesButton);
	gtk_table_attach (table, (GtkWidget*) align, (guint) 1, (guint) 2, (guint) 4, (guint) 5, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	gtk_container_add ((GtkContainer*) topVbox, (GtkWidget*) colorsFrame);
	formatTable = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 1, (guint) 2, FALSE));
	gtk_container_set_border_width ((GtkContainer*) formatTable, (guint) 3);
	gtk_table_set_col_spacings (formatTable, (guint) 3);
	gtk_table_set_row_spacings (formatTable, (guint) 3);
	formatLabel = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Format:")));
	gtk_table_attach (formatTable, (GtkWidget*) formatLabel, (guint) 0, (guint) 1, (guint) 0, (guint) 1, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	gtk_table_attach (formatTable, (GtkWidget*) self->priv->formatEntry, (guint) 1, (guint) 2, (guint) 0, (guint) 1, GTK_FILL, GTK_FILL, (guint) 0, (guint) 0);
	dateTimeFrame = g_object_ref_sink ((GtkFrame*) gtk_frame_new ("Date Time"));
	gtk_container_add ((GtkContainer*) dateTimeFrame, (GtkWidget*) formatTable);
	gtk_container_add ((GtkContainer*) topVbox, (GtkWidget*) dateTimeFrame);
	bbox = g_object_ref_sink ((GtkHButtonBox*) gtk_hbutton_box_new ());
	gtk_button_box_set_layout ((GtkButtonBox*) bbox, GTK_BUTTONBOX_END);
	gtk_container_add ((GtkContainer*) topVbox, (GtkWidget*) bbox);
	OKButton = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_OK));
	g_signal_connect_object (OKButton, "clicked", (GCallback) _preferences_update_app_gtk_button_clicked, self, 0);
	gtk_container_add ((GtkContainer*) bbox, (GtkWidget*) OKButton);
	cancelButton = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_CANCEL));
	g_signal_connect_object (cancelButton, "clicked", (GCallback) _preferences_do_destroy_gtk_button_clicked, self, 0);
	gtk_container_add ((GtkContainer*) bbox, (GtkWidget*) cancelButton);
	gtk_container_set_border_width ((GtkContainer*) self, (guint) 5);
	gtk_widget_show_all ((GtkWidget*) self);
	g_signal_connect_object ((GtkObject*) self, "destroy", (GCallback) _preferences_destruct_gtk_object_destroy, self, 0);
	_g_object_unref0 (topVbox);
	_g_object_unref0 (table);
	_g_object_unref0 (colorsFrame);
	_g_object_unref0 (align);
	_g_object_unref0 (backgroundLabel);
	_g_object_unref0 (ticksLabel);
	_g_object_unref0 (borderLabel);
	_g_object_unref0 (hoursLabel);
	_g_object_unref0 (minutesLabel);
	_g_object_unref0 (formatTable);
	_g_object_unref0 (formatLabel);
	_g_object_unref0 (dateTimeFrame);
	_g_object_unref0 (bbox);
	_g_object_unref0 (OKButton);
	_g_object_unref0 (cancelButton);
	return self;
}


Preferences* preferences_new (void) {
	return preferences_construct (TYPE_PREFERENCES);
}


void preferences_update_app (Preferences* self) {
	GdkColor background = {0};
	GdkColor ticks = {0};
	GdkColor border = {0};
	GdkColor hours = {0};
	GdkColor minutes = {0};
	char* format;
	g_return_if_fail (self != NULL);
	gtk_color_button_get_color (self->priv->backgroundButton, &background);
	gtk_color_button_get_color (self->priv->ticksButton, &ticks);
	gtk_color_button_get_color (self->priv->borderButton, &border);
	gtk_color_button_get_color (self->priv->hoursButton, &hours);
	gtk_color_button_get_color (self->priv->minutesButton, &minutes);
	format = g_strdup (gtk_entry_get_text (self->priv->formatEntry));
	g_signal_emit_by_name (self, "emit-preferences", &background, &ticks, &border, &hours, &minutes, format);
	preferences_do_destroy (self);
	_g_free0 (format);
}


void preferences_do_destroy (Preferences* self) {
	g_return_if_fail (self != NULL);
	gtk_object_destroy ((GtkObject*) self);
}


void preferences_destruct (Preferences* self) {
	g_return_if_fail (self != NULL);
	g_signal_emit_by_name (self, "window-destroyed");
}


void preferences_set_colors (Preferences* self, const char* background, const char* ticks, const char* border, const char* hours, const char* minutes) {
	GdkColor color = {0};
	g_return_if_fail (self != NULL);
	g_return_if_fail (background != NULL);
	g_return_if_fail (ticks != NULL);
	g_return_if_fail (border != NULL);
	g_return_if_fail (hours != NULL);
	g_return_if_fail (minutes != NULL);
	gdk_color_parse (background, &color);
	gtk_color_button_set_color (self->priv->backgroundButton, &color);
	gdk_color_parse (ticks, &color);
	gtk_color_button_set_color (self->priv->ticksButton, &color);
	gdk_color_parse (border, &color);
	gtk_color_button_set_color (self->priv->borderButton, &color);
	gdk_color_parse (hours, &color);
	gtk_color_button_set_color (self->priv->hoursButton, &color);
	gdk_color_parse (minutes, &color);
	gtk_color_button_set_color (self->priv->minutesButton, &color);
}


void preferences_set_datetime_format (Preferences* self, const char* datetime_format) {
	g_return_if_fail (self != NULL);
	g_return_if_fail (datetime_format != NULL);
	gtk_entry_set_text (self->priv->formatEntry, datetime_format);
}


void preferences_display (Preferences* self) {
	g_return_if_fail (self != NULL);
	gtk_widget_show_all ((GtkWidget*) self);
}


static GObject * preferences_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	Preferences * self;
	parent_class = G_OBJECT_CLASS (preferences_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = PREFERENCES (obj);
	{
		g_object_set ((GtkWindow*) self, "type", GTK_WINDOW_TOPLEVEL, NULL);
	}
	return obj;
}


static void preferences_class_init (PreferencesClass * klass) {
	preferences_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (PreferencesPrivate));
	G_OBJECT_CLASS (klass)->constructor = preferences_constructor;
	G_OBJECT_CLASS (klass)->finalize = preferences_finalize;
	g_signal_new ("emit_preferences", TYPE_PREFERENCES, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOXED_BOXED_BOXED_BOXED_BOXED_STRING, G_TYPE_NONE, 6, GDK_TYPE_COLOR, GDK_TYPE_COLOR, GDK_TYPE_COLOR, GDK_TYPE_COLOR, GDK_TYPE_COLOR, G_TYPE_STRING);
	g_signal_new ("window_destroyed", TYPE_PREFERENCES, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}


static void preferences_instance_init (Preferences * self) {
	self->priv = PREFERENCES_GET_PRIVATE (self);
}


static void preferences_finalize (GObject* obj) {
	Preferences * self;
	self = PREFERENCES (obj);
	_g_object_unref0 (self->priv->borderButton);
	_g_object_unref0 (self->priv->ticksButton);
	_g_object_unref0 (self->priv->hoursButton);
	_g_object_unref0 (self->priv->backgroundButton);
	_g_object_unref0 (self->priv->minutesButton);
	_g_object_unref0 (self->priv->formatEntry);
	G_OBJECT_CLASS (preferences_parent_class)->finalize (obj);
}


GType preferences_get_type (void) {
	static volatile gsize preferences_type_id__volatile = 0;
	if (g_once_init_enter (&preferences_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (PreferencesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) preferences_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Preferences), 0, (GInstanceInitFunc) preferences_instance_init, NULL };
		GType preferences_type_id;
		preferences_type_id = g_type_register_static (GTK_TYPE_WINDOW, "Preferences", &g_define_type_info, 0);
		g_once_init_leave (&preferences_type_id__volatile, preferences_type_id);
	}
	return preferences_type_id__volatile;
}


static void _lambda0_ (GtkMenuItem* source, IconMenu* self) {
	g_return_if_fail (source != NULL);
	g_signal_emit_by_name (self, "show-preferences");
}


static void __lambda0__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
	_lambda0_ (_sender, self);
}


static void _lambda1_ (GtkMenuItem* source, IconMenu* self) {
	g_return_if_fail (source != NULL);
	g_signal_emit_by_name (self, "show-about");
}


static void __lambda1__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
	_lambda1_ (_sender, self);
}


IconMenu* icon_menu_construct (GType object_type) {
	IconMenu * self;
	GtkImageMenuItem* menuItem;
	GtkImageMenuItem* _tmp0_;
	self = g_object_newv (object_type, 0, NULL);
	menuItem = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_PREFERENCES, NULL));
	g_signal_connect_object ((GtkMenuItem*) menuItem, "activate", (GCallback) __lambda0__gtk_menu_item_activate, self, 0);
	gtk_menu_shell_append ((GtkMenuShell*) self, (GtkWidget*) ((GtkMenuItem*) menuItem));
	menuItem = (_tmp0_ = g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_ABOUT, NULL)), _g_object_unref0 (menuItem), _tmp0_);
	g_signal_connect_object ((GtkMenuItem*) menuItem, "activate", (GCallback) __lambda1__gtk_menu_item_activate, self, 0);
	gtk_menu_shell_append ((GtkMenuShell*) self, (GtkWidget*) ((GtkMenuItem*) menuItem));
	gtk_widget_show_all ((GtkWidget*) self);
	_g_object_unref0 (menuItem);
	return self;
}


IconMenu* icon_menu_new (void) {
	return icon_menu_construct (TYPE_ICON_MENU);
}


static void icon_menu_class_init (IconMenuClass * klass) {
	icon_menu_parent_class = g_type_class_peek_parent (klass);
	g_signal_new ("show_preferences", TYPE_ICON_MENU, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	g_signal_new ("show_about", TYPE_ICON_MENU, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}


static void icon_menu_instance_init (IconMenu * self) {
}


GType icon_menu_get_type (void) {
	static volatile gsize icon_menu_type_id__volatile = 0;
	if (g_once_init_enter (&icon_menu_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (IconMenuClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) icon_menu_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IconMenu), 0, (GInstanceInitFunc) icon_menu_instance_init, NULL };
		GType icon_menu_type_id;
		icon_menu_type_id = g_type_register_static (GTK_TYPE_MENU, "IconMenu", &g_define_type_info, 0);
		g_once_init_leave (&icon_menu_type_id__volatile, icon_menu_type_id);
	}
	return icon_menu_type_id__volatile;
}



static void g_cclosure_user_marshal_VOID__BOXED_BOXED_BOXED_BOXED_BOXED_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__BOXED_BOXED_BOXED_BOXED_BOXED_STRING) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer arg_4, gpointer arg_5, const char* arg_6, gpointer data2);
	register GMarshalFunc_VOID__BOXED_BOXED_BOXED_BOXED_BOXED_STRING callback;
	register GCClosure * cc;
	register gpointer data1, data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 7);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__BOXED_BOXED_BOXED_BOXED_BOXED_STRING) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_boxed (param_values + 1), g_value_get_boxed (param_values + 2), g_value_get_boxed (param_values + 3), g_value_get_boxed (param_values + 4), g_value_get_boxed (param_values + 5), g_value_get_string (param_values + 6), data2);
}



