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

/*
 * Copyright (C) 2010 Michal Hruby <michal.mhr@gmail.com>
 * Copyright (C) 2010 Alberto Aldegheri <albyrock87+dev@gmail.com>
 *
 * 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 3 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, see <http://www.gnu.org/licenses/>.
 *
 * Authored by Alberto Aldegheri <albyrock87+dev@gmail.com>
 *
 */

#include <glib.h>
#include <glib-object.h>
#include <synapse-core.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <pango/pango.h>
#include <cairo-gobject.h>
#include <float.h>
#include <math.h>
#include <pango/pangocairo.h>
#include <gee.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdk.h>
#include "config.h"
#include <gobject/gvaluecollector.h>

#define SYNAPSE_GUI_SMART_LABEL_INITIAL_TIMEOUT 1750
#define SYNAPSE_GUI_SMART_LABEL_SPACING 50
#define SYNAPSE_GUI_HTEXT_SELECTOR_ARROW_SIZE 7
#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define SYNAPSE_GUI_TYPE_WIDGET_ERROR (synapse_gui_widget_error_get_type ())

#define SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG (synapse_gui_ui_widgets_config_get_type ())
#define SYNAPSE_GUI_UI_WIDGETS_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG, SynapseGuiUIWidgetsConfig))
#define SYNAPSE_GUI_UI_WIDGETS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG, SynapseGuiUIWidgetsConfigClass))
#define SYNAPSE_GUI_IS_UI_WIDGETS_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG))
#define SYNAPSE_GUI_IS_UI_WIDGETS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG))
#define SYNAPSE_GUI_UI_WIDGETS_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG, SynapseGuiUIWidgetsConfigClass))

typedef struct _SynapseGuiUIWidgetsConfig SynapseGuiUIWidgetsConfig;
typedef struct _SynapseGuiUIWidgetsConfigClass SynapseGuiUIWidgetsConfigClass;
typedef struct _SynapseGuiUIWidgetsConfigPrivate SynapseGuiUIWidgetsConfigPrivate;
enum  {
	SYNAPSE_GUI_UI_WIDGETS_CONFIG_0_PROPERTY,
	SYNAPSE_GUI_UI_WIDGETS_CONFIG_ANIMATION_ENABLED_PROPERTY,
	SYNAPSE_GUI_UI_WIDGETS_CONFIG_EXTENDED_INFO_ENABLED_PROPERTY,
	SYNAPSE_GUI_UI_WIDGETS_CONFIG_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_ui_widgets_config_properties[SYNAPSE_GUI_UI_WIDGETS_CONFIG_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_CLONE_WIDGET (synapse_gui_clone_widget_get_type ())
#define SYNAPSE_GUI_CLONE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_CLONE_WIDGET, SynapseGuiCloneWidget))
#define SYNAPSE_GUI_CLONE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_CLONE_WIDGET, SynapseGuiCloneWidgetClass))
#define SYNAPSE_GUI_IS_CLONE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_CLONE_WIDGET))
#define SYNAPSE_GUI_IS_CLONE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_CLONE_WIDGET))
#define SYNAPSE_GUI_CLONE_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_CLONE_WIDGET, SynapseGuiCloneWidgetClass))

typedef struct _SynapseGuiCloneWidget SynapseGuiCloneWidget;
typedef struct _SynapseGuiCloneWidgetClass SynapseGuiCloneWidgetClass;
typedef struct _SynapseGuiCloneWidgetPrivate SynapseGuiCloneWidgetPrivate;
enum  {
	SYNAPSE_GUI_CLONE_WIDGET_0_PROPERTY,
	SYNAPSE_GUI_CLONE_WIDGET_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_clone_widget_properties[SYNAPSE_GUI_CLONE_WIDGET_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define SYNAPSE_GUI_TYPE_SMART_LABEL (synapse_gui_smart_label_get_type ())
#define SYNAPSE_GUI_SMART_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_SMART_LABEL, SynapseGuiSmartLabel))
#define SYNAPSE_GUI_SMART_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_SMART_LABEL, SynapseGuiSmartLabelClass))
#define SYNAPSE_GUI_IS_SMART_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_SMART_LABEL))
#define SYNAPSE_GUI_IS_SMART_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_SMART_LABEL))
#define SYNAPSE_GUI_SMART_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_SMART_LABEL, SynapseGuiSmartLabelClass))

typedef struct _SynapseGuiSmartLabel SynapseGuiSmartLabel;
typedef struct _SynapseGuiSmartLabelClass SynapseGuiSmartLabelClass;
typedef struct _SynapseGuiSmartLabelPrivate SynapseGuiSmartLabelPrivate;
typedef enum  {
	SYNAPSE_GUI_SMART_LABEL_SIZE_XX_SMALL,
	SYNAPSE_GUI_SMART_LABEL_SIZE_X_SMALL,
	SYNAPSE_GUI_SMART_LABEL_SIZE_SMALL,
	SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM,
	SYNAPSE_GUI_SMART_LABEL_SIZE_LARGE,
	SYNAPSE_GUI_SMART_LABEL_SIZE_X_LARGE,
	SYNAPSE_GUI_SMART_LABEL_SIZE_XX_LARGE
} SynapseGuiSmartLabelSize;

#define SYNAPSE_GUI_SMART_LABEL_TYPE_SIZE (synapse_gui_smart_label_size_get_type ())

#define SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER (synapse_gui_utils_color_helper_get_type ())
#define SYNAPSE_GUI_UTILS_COLOR_HELPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER, SynapseGuiUtilsColorHelper))
#define SYNAPSE_GUI_UTILS_COLOR_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER, SynapseGuiUtilsColorHelperClass))
#define SYNAPSE_GUI_UTILS_IS_COLOR_HELPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER))
#define SYNAPSE_GUI_UTILS_IS_COLOR_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER))
#define SYNAPSE_GUI_UTILS_COLOR_HELPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER, SynapseGuiUtilsColorHelperClass))

typedef struct _SynapseGuiUtilsColorHelper SynapseGuiUtilsColorHelper;
typedef struct _SynapseGuiUtilsColorHelperClass SynapseGuiUtilsColorHelperClass;
enum  {
	SYNAPSE_GUI_SMART_LABEL_0_PROPERTY,
	SYNAPSE_GUI_SMART_LABEL_NATURAL_REQUISITION_PROPERTY,
	SYNAPSE_GUI_SMART_LABEL_SIZE_PROPERTY,
	SYNAPSE_GUI_SMART_LABEL_MIN_SIZE_PROPERTY,
	SYNAPSE_GUI_SMART_LABEL_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_smart_label_properties[SYNAPSE_GUI_SMART_LABEL_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
#define _synapse_gui_utils_color_helper_unref0(var) ((var == NULL) ? NULL : (var = (synapse_gui_utils_color_helper_unref (var), NULL)))
#define _pango_attr_iterator_destroy0(var) ((var == NULL) ? NULL : (var = (pango_attr_iterator_destroy (var), NULL)))
#define _pango_attr_list_unref0(var) ((var == NULL) ? NULL : (var = (pango_attr_list_unref (var), NULL)))
typedef enum  {
	SYNAPSE_GUI_STYLE_TYPE_BG,
	SYNAPSE_GUI_STYLE_TYPE_FG,
	SYNAPSE_GUI_STYLE_TYPE_BASE,
	SYNAPSE_GUI_STYLE_TYPE_TEXT
} SynapseGuiStyleType;

#define SYNAPSE_GUI_TYPE_STYLE_TYPE (synapse_gui_style_type_get_type ())
typedef enum  {
	SYNAPSE_GUI_MOD_NORMAL,
	SYNAPSE_GUI_MOD_LIGHTER,
	SYNAPSE_GUI_MOD_LIGHTEST,
	SYNAPSE_GUI_MOD_DARKER,
	SYNAPSE_GUI_MOD_DARKEST,
	SYNAPSE_GUI_MOD_INVERTED
} SynapseGuiMod;

#define SYNAPSE_GUI_TYPE_MOD (synapse_gui_mod_get_type ())
#define __vala_PangoLanguage_free0(var) ((var == NULL) ? NULL : (var = (_vala_PangoLanguage_free (var), NULL)))
#define _pango_font_metrics_unref0(var) ((var == NULL) ? NULL : (var = (pango_font_metrics_unref (var), NULL)))
#define __vala_PangoFontDescription_free0(var) ((var == NULL) ? NULL : (var = (_vala_PangoFontDescription_free (var), NULL)))

#define SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER (synapse_gui_schema_container_get_type ())
#define SYNAPSE_GUI_SCHEMA_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER, SynapseGuiSchemaContainer))
#define SYNAPSE_GUI_SCHEMA_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER, SynapseGuiSchemaContainerClass))
#define SYNAPSE_GUI_IS_SCHEMA_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER))
#define SYNAPSE_GUI_IS_SCHEMA_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER))
#define SYNAPSE_GUI_SCHEMA_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER, SynapseGuiSchemaContainerClass))

typedef struct _SynapseGuiSchemaContainer SynapseGuiSchemaContainer;
typedef struct _SynapseGuiSchemaContainerClass SynapseGuiSchemaContainerClass;
typedef struct _SynapseGuiSchemaContainerPrivate SynapseGuiSchemaContainerPrivate;

#define SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA (synapse_gui_schema_container_schema_get_type ())
#define SYNAPSE_GUI_SCHEMA_CONTAINER_SCHEMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA, SynapseGuiSchemaContainerSchema))
#define SYNAPSE_GUI_SCHEMA_CONTAINER_SCHEMA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA, SynapseGuiSchemaContainerSchemaClass))
#define SYNAPSE_GUI_SCHEMA_CONTAINER_IS_SCHEMA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA))
#define SYNAPSE_GUI_SCHEMA_CONTAINER_IS_SCHEMA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA))
#define SYNAPSE_GUI_SCHEMA_CONTAINER_SCHEMA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA, SynapseGuiSchemaContainerSchemaClass))

typedef struct _SynapseGuiSchemaContainerSchema SynapseGuiSchemaContainerSchema;
typedef struct _SynapseGuiSchemaContainerSchemaClass SynapseGuiSchemaContainerSchemaClass;
enum  {
	SYNAPSE_GUI_SCHEMA_CONTAINER_0_PROPERTY,
	SYNAPSE_GUI_SCHEMA_CONTAINER_XPAD_PROPERTY,
	SYNAPSE_GUI_SCHEMA_CONTAINER_YPAD_PROPERTY,
	SYNAPSE_GUI_SCHEMA_CONTAINER_SCALE_SIZE_PROPERTY,
	SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_HEIGHT_PROPERTY,
	SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_WIDTH_PROPERTY,
	SYNAPSE_GUI_SCHEMA_CONTAINER_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_NUM_PROPERTIES];
typedef struct _SynapseGuiSchemaContainerSchemaPrivate SynapseGuiSchemaContainerSchemaPrivate;
enum  {
	SYNAPSE_GUI_SCHEMA_CONTAINER_SCHEMA_0_PROPERTY,
	SYNAPSE_GUI_SCHEMA_CONTAINER_SCHEMA_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_schema_container_schema_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_SCHEMA_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_SELECTION_CONTAINER (synapse_gui_selection_container_get_type ())
#define SYNAPSE_GUI_SELECTION_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_SELECTION_CONTAINER, SynapseGuiSelectionContainer))
#define SYNAPSE_GUI_SELECTION_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_SELECTION_CONTAINER, SynapseGuiSelectionContainerClass))
#define SYNAPSE_GUI_IS_SELECTION_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_SELECTION_CONTAINER))
#define SYNAPSE_GUI_IS_SELECTION_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_SELECTION_CONTAINER))
#define SYNAPSE_GUI_SELECTION_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_SELECTION_CONTAINER, SynapseGuiSelectionContainerClass))

typedef struct _SynapseGuiSelectionContainer SynapseGuiSelectionContainer;
typedef struct _SynapseGuiSelectionContainerClass SynapseGuiSelectionContainerClass;
typedef struct _SynapseGuiSelectionContainerPrivate SynapseGuiSelectionContainerPrivate;
enum  {
	SYNAPSE_GUI_SELECTION_CONTAINER_0_PROPERTY,
	SYNAPSE_GUI_SELECTION_CONTAINER_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_selection_container_properties[SYNAPSE_GUI_SELECTION_CONTAINER_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_THROBBER (synapse_gui_throbber_get_type ())
#define SYNAPSE_GUI_THROBBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_THROBBER, SynapseGuiThrobber))
#define SYNAPSE_GUI_THROBBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_THROBBER, SynapseGuiThrobberClass))
#define SYNAPSE_GUI_IS_THROBBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_THROBBER))
#define SYNAPSE_GUI_IS_THROBBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_THROBBER))
#define SYNAPSE_GUI_THROBBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_THROBBER, SynapseGuiThrobberClass))

typedef struct _SynapseGuiThrobber SynapseGuiThrobber;
typedef struct _SynapseGuiThrobberClass SynapseGuiThrobberClass;
typedef struct _SynapseGuiThrobberPrivate SynapseGuiThrobberPrivate;
enum  {
	SYNAPSE_GUI_THROBBER_0_PROPERTY,
	SYNAPSE_GUI_THROBBER_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_throbber_properties[SYNAPSE_GUI_THROBBER_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET (synapse_gui_sensitive_widget_get_type ())
#define SYNAPSE_GUI_SENSITIVE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET, SynapseGuiSensitiveWidget))
#define SYNAPSE_GUI_SENSITIVE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET, SynapseGuiSensitiveWidgetClass))
#define SYNAPSE_GUI_IS_SENSITIVE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET))
#define SYNAPSE_GUI_IS_SENSITIVE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET))
#define SYNAPSE_GUI_SENSITIVE_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET, SynapseGuiSensitiveWidgetClass))

typedef struct _SynapseGuiSensitiveWidget SynapseGuiSensitiveWidget;
typedef struct _SynapseGuiSensitiveWidgetClass SynapseGuiSensitiveWidgetClass;
typedef struct _SynapseGuiSensitiveWidgetPrivate SynapseGuiSensitiveWidgetPrivate;
enum  {
	SYNAPSE_GUI_SENSITIVE_WIDGET_0_PROPERTY,
	SYNAPSE_GUI_SENSITIVE_WIDGET_WIDGET_PROPERTY,
	SYNAPSE_GUI_SENSITIVE_WIDGET_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_sensitive_widget_properties[SYNAPSE_GUI_SENSITIVE_WIDGET_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_NAMED_ICON (synapse_gui_named_icon_get_type ())
#define SYNAPSE_GUI_NAMED_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_NAMED_ICON, SynapseGuiNamedIcon))
#define SYNAPSE_GUI_NAMED_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_NAMED_ICON, SynapseGuiNamedIconClass))
#define SYNAPSE_GUI_IS_NAMED_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_NAMED_ICON))
#define SYNAPSE_GUI_IS_NAMED_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_NAMED_ICON))
#define SYNAPSE_GUI_NAMED_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_NAMED_ICON, SynapseGuiNamedIconClass))

typedef struct _SynapseGuiNamedIcon SynapseGuiNamedIcon;
typedef struct _SynapseGuiNamedIconClass SynapseGuiNamedIconClass;
typedef struct _SynapseGuiNamedIconPrivate SynapseGuiNamedIconPrivate;
enum  {
	SYNAPSE_GUI_NAMED_ICON_0_PROPERTY,
	SYNAPSE_GUI_NAMED_ICON_NOT_FOUND_NAME_PROPERTY,
	SYNAPSE_GUI_NAMED_ICON_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_named_icon_properties[SYNAPSE_GUI_NAMED_ICON_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE (synapse_gui_icon_cache_service_get_type ())
#define SYNAPSE_GUI_ICON_CACHE_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE, SynapseGuiIconCacheService))
#define SYNAPSE_GUI_ICON_CACHE_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE, SynapseGuiIconCacheServiceClass))
#define SYNAPSE_GUI_IS_ICON_CACHE_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE))
#define SYNAPSE_GUI_IS_ICON_CACHE_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE))
#define SYNAPSE_GUI_ICON_CACHE_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE, SynapseGuiIconCacheServiceClass))

typedef struct _SynapseGuiIconCacheService SynapseGuiIconCacheService;
typedef struct _SynapseGuiIconCacheServiceClass SynapseGuiIconCacheServiceClass;

#define SYNAPSE_GUI_TYPE_FAKE_INPUT (synapse_gui_fake_input_get_type ())
#define SYNAPSE_GUI_FAKE_INPUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_FAKE_INPUT, SynapseGuiFakeInput))
#define SYNAPSE_GUI_FAKE_INPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_FAKE_INPUT, SynapseGuiFakeInputClass))
#define SYNAPSE_GUI_IS_FAKE_INPUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_FAKE_INPUT))
#define SYNAPSE_GUI_IS_FAKE_INPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_FAKE_INPUT))
#define SYNAPSE_GUI_FAKE_INPUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_FAKE_INPUT, SynapseGuiFakeInputClass))

typedef struct _SynapseGuiFakeInput SynapseGuiFakeInput;
typedef struct _SynapseGuiFakeInputClass SynapseGuiFakeInputClass;
typedef struct _SynapseGuiFakeInputPrivate SynapseGuiFakeInputPrivate;
enum  {
	SYNAPSE_GUI_FAKE_INPUT_0_PROPERTY,
	SYNAPSE_GUI_FAKE_INPUT_DRAW_INPUT_PROPERTY,
	SYNAPSE_GUI_FAKE_INPUT_INPUT_ALPHA_PROPERTY,
	SYNAPSE_GUI_FAKE_INPUT_BORDER_RADIUS_PROPERTY,
	SYNAPSE_GUI_FAKE_INPUT_SHADOW_HEIGHT_PROPERTY,
	SYNAPSE_GUI_FAKE_INPUT_FOCUS_HEIGHT_PROPERTY,
	SYNAPSE_GUI_FAKE_INPUT_FOCUS_WIDGET_PROPERTY,
	SYNAPSE_GUI_FAKE_INPUT_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_NUM_PROPERTIES];
#define _cairo_pattern_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_pattern_destroy (var), NULL)))

#define SYNAPSE_GUI_TYPE_FAKE_BUTTON (synapse_gui_fake_button_get_type ())
#define SYNAPSE_GUI_FAKE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_FAKE_BUTTON, SynapseGuiFakeButton))
#define SYNAPSE_GUI_FAKE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_FAKE_BUTTON, SynapseGuiFakeButtonClass))
#define SYNAPSE_GUI_IS_FAKE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_FAKE_BUTTON))
#define SYNAPSE_GUI_IS_FAKE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_FAKE_BUTTON))
#define SYNAPSE_GUI_FAKE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_FAKE_BUTTON, SynapseGuiFakeButtonClass))

typedef struct _SynapseGuiFakeButton SynapseGuiFakeButton;
typedef struct _SynapseGuiFakeButtonClass SynapseGuiFakeButtonClass;
typedef struct _SynapseGuiFakeButtonPrivate SynapseGuiFakeButtonPrivate;

#define SYNAPSE_GUI_TYPE_MENU_BUTTON (synapse_gui_menu_button_get_type ())
#define SYNAPSE_GUI_MENU_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_MENU_BUTTON, SynapseGuiMenuButton))
#define SYNAPSE_GUI_MENU_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_MENU_BUTTON, SynapseGuiMenuButtonClass))
#define SYNAPSE_GUI_IS_MENU_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_MENU_BUTTON))
#define SYNAPSE_GUI_IS_MENU_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_MENU_BUTTON))
#define SYNAPSE_GUI_MENU_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_MENU_BUTTON, SynapseGuiMenuButtonClass))

typedef struct _SynapseGuiMenuButton SynapseGuiMenuButton;
typedef struct _SynapseGuiMenuButtonClass SynapseGuiMenuButtonClass;
typedef struct _SynapseGuiMenuButtonPrivate SynapseGuiMenuButtonPrivate;

#define SYNAPSE_GUI_TYPE_MENU_THROBBER (synapse_gui_menu_throbber_get_type ())
#define SYNAPSE_GUI_MENU_THROBBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_MENU_THROBBER, SynapseGuiMenuThrobber))
#define SYNAPSE_GUI_MENU_THROBBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_MENU_THROBBER, SynapseGuiMenuThrobberClass))
#define SYNAPSE_GUI_IS_MENU_THROBBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_MENU_THROBBER))
#define SYNAPSE_GUI_IS_MENU_THROBBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_MENU_THROBBER))
#define SYNAPSE_GUI_MENU_THROBBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_MENU_THROBBER, SynapseGuiMenuThrobberClass))

typedef struct _SynapseGuiMenuThrobber SynapseGuiMenuThrobber;
typedef struct _SynapseGuiMenuThrobberClass SynapseGuiMenuThrobberClass;
typedef struct _SynapseGuiMenuThrobberPrivate SynapseGuiMenuThrobberPrivate;
enum  {
	SYNAPSE_GUI_MENU_THROBBER_0_PROPERTY,
	SYNAPSE_GUI_MENU_THROBBER_ACTIVE_PROPERTY,
	SYNAPSE_GUI_MENU_THROBBER_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_menu_throbber_properties[SYNAPSE_GUI_MENU_THROBBER_NUM_PROPERTIES];
enum  {
	SYNAPSE_GUI_FAKE_BUTTON_0_PROPERTY,
	SYNAPSE_GUI_FAKE_BUTTON_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_fake_button_properties[SYNAPSE_GUI_FAKE_BUTTON_NUM_PROPERTIES];
enum  {
	SYNAPSE_GUI_FAKE_BUTTON_LEAVE_SIGNAL,
	SYNAPSE_GUI_FAKE_BUTTON_ENTER_SIGNAL,
	SYNAPSE_GUI_FAKE_BUTTON_RELEASED_SIGNAL,
	SYNAPSE_GUI_FAKE_BUTTON_NUM_SIGNALS
};
static guint synapse_gui_fake_button_signals[SYNAPSE_GUI_FAKE_BUTTON_NUM_SIGNALS] = {0};
enum  {
	SYNAPSE_GUI_MENU_BUTTON_0_PROPERTY,
	SYNAPSE_GUI_MENU_BUTTON_BUTTON_SCALE_PROPERTY,
	SYNAPSE_GUI_MENU_BUTTON_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_menu_button_properties[SYNAPSE_GUI_MENU_BUTTON_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_SYNAPSE_ABOUT_DIALOG (synapse_gui_synapse_about_dialog_get_type ())
#define SYNAPSE_GUI_SYNAPSE_ABOUT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_SYNAPSE_ABOUT_DIALOG, SynapseGuiSynapseAboutDialog))
#define SYNAPSE_GUI_SYNAPSE_ABOUT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_SYNAPSE_ABOUT_DIALOG, SynapseGuiSynapseAboutDialogClass))
#define SYNAPSE_GUI_IS_SYNAPSE_ABOUT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_SYNAPSE_ABOUT_DIALOG))
#define SYNAPSE_GUI_IS_SYNAPSE_ABOUT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_SYNAPSE_ABOUT_DIALOG))
#define SYNAPSE_GUI_SYNAPSE_ABOUT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_SYNAPSE_ABOUT_DIALOG, SynapseGuiSynapseAboutDialogClass))

typedef struct _SynapseGuiSynapseAboutDialog SynapseGuiSynapseAboutDialog;
typedef struct _SynapseGuiSynapseAboutDialogClass SynapseGuiSynapseAboutDialogClass;
enum  {
	SYNAPSE_GUI_MENU_BUTTON_SETTINGS_CLICKED_SIGNAL,
	SYNAPSE_GUI_MENU_BUTTON_NUM_SIGNALS
};
static guint synapse_gui_menu_button_signals[SYNAPSE_GUI_MENU_BUTTON_NUM_SIGNALS] = {0};
typedef struct _SynapseGuiSynapseAboutDialogPrivate SynapseGuiSynapseAboutDialogPrivate;
enum  {
	SYNAPSE_GUI_SYNAPSE_ABOUT_DIALOG_0_PROPERTY,
	SYNAPSE_GUI_SYNAPSE_ABOUT_DIALOG_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_synapse_about_dialog_properties[SYNAPSE_GUI_SYNAPSE_ABOUT_DIALOG_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_HTEXT_SELECTOR (synapse_gui_htext_selector_get_type ())
#define SYNAPSE_GUI_HTEXT_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_HTEXT_SELECTOR, SynapseGuiHTextSelector))
#define SYNAPSE_GUI_HTEXT_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_HTEXT_SELECTOR, SynapseGuiHTextSelectorClass))
#define SYNAPSE_GUI_IS_HTEXT_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_HTEXT_SELECTOR))
#define SYNAPSE_GUI_IS_HTEXT_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_HTEXT_SELECTOR))
#define SYNAPSE_GUI_HTEXT_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_HTEXT_SELECTOR, SynapseGuiHTextSelectorClass))

typedef struct _SynapseGuiHTextSelector SynapseGuiHTextSelector;
typedef struct _SynapseGuiHTextSelectorClass SynapseGuiHTextSelectorClass;
typedef struct _SynapseGuiHTextSelectorPrivate SynapseGuiHTextSelectorPrivate;

#define SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT (synapse_gui_htext_selector_pango_ready_text_get_type ())
#define SYNAPSE_GUI_HTEXT_SELECTOR_PANGO_READY_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT, SynapseGuiHTextSelectorPangoReadyText))
#define SYNAPSE_GUI_HTEXT_SELECTOR_PANGO_READY_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT, SynapseGuiHTextSelectorPangoReadyTextClass))
#define SYNAPSE_GUI_HTEXT_SELECTOR_IS_PANGO_READY_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT))
#define SYNAPSE_GUI_HTEXT_SELECTOR_IS_PANGO_READY_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT))
#define SYNAPSE_GUI_HTEXT_SELECTOR_PANGO_READY_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT, SynapseGuiHTextSelectorPangoReadyTextClass))

typedef struct _SynapseGuiHTextSelectorPangoReadyText SynapseGuiHTextSelectorPangoReadyText;
typedef struct _SynapseGuiHTextSelectorPangoReadyTextClass SynapseGuiHTextSelectorPangoReadyTextClass;
enum  {
	SYNAPSE_GUI_HTEXT_SELECTOR_0_PROPERTY,
	SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_MARKUP_PROPERTY,
	SYNAPSE_GUI_HTEXT_SELECTOR_UNSELECTED_MARKUP_PROPERTY,
	SYNAPSE_GUI_HTEXT_SELECTOR_PADDING_PROPERTY,
	SYNAPSE_GUI_HTEXT_SELECTOR_SHOW_ARROWS_PROPERTY,
	SYNAPSE_GUI_HTEXT_SELECTOR_ANIMATION_ENABLED_PROPERTY,
	SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_PROPERTY,
	SYNAPSE_GUI_HTEXT_SELECTOR_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_NUM_PROPERTIES];
#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
#define _synapse_gui_htext_selector_pango_ready_text_unref0(var) ((var == NULL) ? NULL : (var = (synapse_gui_htext_selector_pango_ready_text_unref (var), NULL)))
#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
typedef struct _SynapseGuiHTextSelectorPangoReadyTextPrivate SynapseGuiHTextSelectorPangoReadyTextPrivate;
typedef struct _SynapseGuiHTextSelectorParamSpecPangoReadyText SynapseGuiHTextSelectorParamSpecPangoReadyText;
enum  {
	SYNAPSE_GUI_HTEXT_SELECTOR_SELECTION_CHANGED_SIGNAL,
	SYNAPSE_GUI_HTEXT_SELECTOR_NUM_SIGNALS
};
static guint synapse_gui_htext_selector_signals[SYNAPSE_GUI_HTEXT_SELECTOR_NUM_SIGNALS] = {0};

typedef enum  {
	SYNAPSE_GUI_WIDGET_ERROR_ICON_NOT_FOUND,
	SYNAPSE_GUI_WIDGET_ERROR_UNKNOWN
} SynapseGuiWidgetError;
#define SYNAPSE_GUI_WIDGET_ERROR synapse_gui_widget_error_quark ()

struct _SynapseGuiUIWidgetsConfig {
	SynapseConfigObject parent_instance;
	SynapseGuiUIWidgetsConfigPrivate * priv;
};

struct _SynapseGuiUIWidgetsConfigClass {
	SynapseConfigObjectClass parent_class;
};

struct _SynapseGuiUIWidgetsConfigPrivate {
	gboolean _animation_enabled;
	gboolean _extended_info_enabled;
};

struct _SynapseGuiCloneWidget {
	GtkWidget parent_instance;
	SynapseGuiCloneWidgetPrivate * priv;
};

struct _SynapseGuiCloneWidgetClass {
	GtkWidgetClass parent_class;
};

struct _SynapseGuiCloneWidgetPrivate {
	GtkWidget* clone;
};

struct _SynapseGuiSmartLabel {
	GtkMisc parent_instance;
	SynapseGuiSmartLabelPrivate * priv;
};

struct _SynapseGuiSmartLabelClass {
	GtkMiscClass parent_class;
};

struct _SynapseGuiSmartLabelPrivate {
	gboolean _natural_requisition;
	SynapseGuiSmartLabelSize _size;
	SynapseGuiSmartLabelSize _min_size;
	gchar* text;
	SynapseGuiSmartLabelSize real_size;
	GtkRequisition last_req;
	PangoLayout* layout;
	SynapseGuiUtilsColorHelper* ch;
	PangoEllipsizeMode ellipsize;
	guint tid;
	gint offset;
	gboolean animate;
	gint _anim_width;
};

struct _SynapseGuiSchemaContainer {
	GtkContainer parent_instance;
	SynapseGuiSchemaContainerPrivate * priv;
	GeeList* schemas;
	GeeList* children;
};

struct _SynapseGuiSchemaContainerClass {
	GtkContainerClass parent_class;
};

struct _SynapseGuiSchemaContainerPrivate {
	gint active_schema;
	gint* render_order;
	gint render_order_length1;
	gint _render_order_size_;
	gint _xpad;
	gint _ypad;
	gint _scale_size;
	gboolean _fixed_height;
	gboolean _fixed_width;
};

struct _SynapseGuiSchemaContainerSchema {
	GObject parent_instance;
	SynapseGuiSchemaContainerSchemaPrivate * priv;
};

struct _SynapseGuiSchemaContainerSchemaClass {
	GObjectClass parent_class;
};

struct _SynapseGuiSchemaContainerSchemaPrivate {
	GtkAllocation* _positions;
	gint _positions_length1;
	gint __positions_size_;
};

struct _SynapseGuiSelectionContainer {
	GtkContainer parent_instance;
	SynapseGuiSelectionContainerPrivate * priv;
	GeeList* children;
};

struct _SynapseGuiSelectionContainerClass {
	GtkContainerClass parent_class;
};

struct _SynapseGuiSelectionContainerPrivate {
	gint active_child;
};

struct _SynapseGuiThrobber {
	GtkSpinner parent_instance;
	SynapseGuiThrobberPrivate * priv;
};

struct _SynapseGuiThrobberClass {
	GtkSpinnerClass parent_class;
};

struct _SynapseGuiSensitiveWidget {
	GtkEventBox parent_instance;
	SynapseGuiSensitiveWidgetPrivate * priv;
};

struct _SynapseGuiSensitiveWidgetClass {
	GtkEventBoxClass parent_class;
};

struct _SynapseGuiSensitiveWidgetPrivate {
	GtkWidget* _widget;
};

struct _SynapseGuiNamedIcon {
	GtkImage parent_instance;
	SynapseGuiNamedIconPrivate * priv;
};

struct _SynapseGuiNamedIconClass {
	GtkImageClass parent_class;
};

struct _SynapseGuiNamedIconPrivate {
	gchar* _not_found_name;
	gchar* current;
	GtkIconSize current_size;
};

struct _SynapseGuiFakeInput {
	GtkAlignment parent_instance;
	SynapseGuiFakeInputPrivate * priv;
};

struct _SynapseGuiFakeInputClass {
	GtkAlignmentClass parent_class;
};

struct _SynapseGuiFakeInputPrivate {
	gboolean _draw_input;
	gdouble _input_alpha;
	gdouble _border_radius;
	gdouble _shadow_height;
	gdouble _focus_height;
	SynapseGuiUtilsColorHelper* ch;
	GtkWidget* _focus_widget;
};

struct _SynapseGuiFakeButton {
	GtkEventBox parent_instance;
	SynapseGuiFakeButtonPrivate * priv;
};

struct _SynapseGuiFakeButtonClass {
	GtkEventBoxClass parent_class;
	void (*leave) (SynapseGuiFakeButton* self);
	void (*enter) (SynapseGuiFakeButton* self);
	void (*released) (SynapseGuiFakeButton* self);
};

struct _SynapseGuiMenuButton {
	SynapseGuiFakeButton parent_instance;
	SynapseGuiMenuButtonPrivate * priv;
	SynapseGuiUtilsColorHelper* ch;
};

struct _SynapseGuiMenuButtonClass {
	SynapseGuiFakeButtonClass parent_class;
};

struct _SynapseGuiMenuThrobber {
	SynapseGuiMenuButton parent_instance;
	SynapseGuiMenuThrobberPrivate * priv;
};

struct _SynapseGuiMenuThrobberClass {
	SynapseGuiMenuButtonClass parent_class;
};

struct _SynapseGuiMenuThrobberPrivate {
	gboolean _active;
	gfloat progress;
	guint timer_src_id;
};

struct _SynapseGuiMenuButtonPrivate {
	gdouble _button_scale;
	gboolean entered;
	GtkMenu* menu;
};

struct _SynapseGuiSynapseAboutDialog {
	GtkAboutDialog parent_instance;
	SynapseGuiSynapseAboutDialogPrivate * priv;
};

struct _SynapseGuiSynapseAboutDialogClass {
	GtkAboutDialogClass parent_class;
};

struct _SynapseGuiHTextSelector {
	GtkEventBox parent_instance;
	SynapseGuiHTextSelectorPrivate * priv;
};

struct _SynapseGuiHTextSelectorClass {
	GtkEventBoxClass parent_class;
};

struct _SynapseGuiHTextSelectorPrivate {
	gchar* _selected_markup;
	gchar* _unselected_markup;
	gint _padding;
	gboolean _show_arrows;
	gboolean _animation_enabled;
	gint _selected;
	GeeList* texts;
	cairo_surface_t* cached_surface;
	gint wmax;
	gint hmax;
	gint current_offset;
	SynapseGuiUtilsColorHelper* ch;
	GtkLabel* label;
	guint tid;
};

struct _SynapseGuiHTextSelectorPangoReadyText {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SynapseGuiHTextSelectorPangoReadyTextPrivate * priv;
};

struct _SynapseGuiHTextSelectorPangoReadyTextClass {
	GTypeClass parent_class;
	void (*finalize) (SynapseGuiHTextSelectorPangoReadyText *self);
};

struct _SynapseGuiHTextSelectorPangoReadyTextPrivate {
	gchar* _text;
	gint _offset;
	gint _width;
	gint _height;
};

struct _SynapseGuiHTextSelectorParamSpecPangoReadyText {
	GParamSpec parent_instance;
};

static gint SynapseGuiUIWidgetsConfig_private_offset;
static gpointer synapse_gui_ui_widgets_config_parent_class = NULL;
static gint SynapseGuiCloneWidget_private_offset;
static gpointer synapse_gui_clone_widget_parent_class = NULL;
static gint SynapseGuiSmartLabel_private_offset;
static gpointer synapse_gui_smart_label_parent_class = NULL;
static gint SynapseGuiSchemaContainer_private_offset;
static gpointer synapse_gui_schema_container_parent_class = NULL;
static gint SynapseGuiSchemaContainerSchema_private_offset;
static gpointer synapse_gui_schema_container_schema_parent_class = NULL;
static gint SynapseGuiSelectionContainer_private_offset;
static gpointer synapse_gui_selection_container_parent_class = NULL;
static gpointer synapse_gui_throbber_parent_class = NULL;
static gint SynapseGuiSensitiveWidget_private_offset;
static gpointer synapse_gui_sensitive_widget_parent_class = NULL;
static gint SynapseGuiNamedIcon_private_offset;
static gpointer synapse_gui_named_icon_parent_class = NULL;
static gint SynapseGuiFakeInput_private_offset;
static gpointer synapse_gui_fake_input_parent_class = NULL;
static gint SynapseGuiMenuThrobber_private_offset;
static gpointer synapse_gui_menu_throbber_parent_class = NULL;
static gpointer synapse_gui_fake_button_parent_class = NULL;
static gint SynapseGuiMenuButton_private_offset;
static gpointer synapse_gui_menu_button_parent_class = NULL;
static gpointer synapse_gui_synapse_about_dialog_parent_class = NULL;
static gint SynapseGuiHTextSelector_private_offset;
static gpointer synapse_gui_htext_selector_parent_class = NULL;
static gint SynapseGuiHTextSelectorPangoReadyText_private_offset;
static gpointer synapse_gui_htext_selector_pango_ready_text_parent_class = NULL;

VALA_EXTERN GQuark synapse_gui_widget_error_quark (void);
VALA_EXTERN GType synapse_gui_widget_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType synapse_gui_ui_widgets_config_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiUIWidgetsConfig, g_object_unref)
VALA_EXTERN SynapseGuiUIWidgetsConfig* synapse_gui_ui_widgets_config_new (void);
VALA_EXTERN SynapseGuiUIWidgetsConfig* synapse_gui_ui_widgets_config_construct (GType object_type);
VALA_EXTERN gboolean synapse_gui_ui_widgets_config_get_animation_enabled (SynapseGuiUIWidgetsConfig* self);
VALA_EXTERN void synapse_gui_ui_widgets_config_set_animation_enabled (SynapseGuiUIWidgetsConfig* self,
                                                          gboolean value);
VALA_EXTERN gboolean synapse_gui_ui_widgets_config_get_extended_info_enabled (SynapseGuiUIWidgetsConfig* self);
VALA_EXTERN void synapse_gui_ui_widgets_config_set_extended_info_enabled (SynapseGuiUIWidgetsConfig* self,
                                                              gboolean value);
static void synapse_gui_ui_widgets_config_finalize (GObject * obj);
static GType synapse_gui_ui_widgets_config_get_type_once (void);
static void _vala_synapse_gui_ui_widgets_config_get_property (GObject * object,
                                                       guint property_id,
                                                       GValue * value,
                                                       GParamSpec * pspec);
static void _vala_synapse_gui_ui_widgets_config_set_property (GObject * object,
                                                       guint property_id,
                                                       const GValue * value,
                                                       GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_clone_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiCloneWidget, g_object_unref)
VALA_EXTERN SynapseGuiCloneWidget* synapse_gui_clone_widget_new (GtkWidget* to_clone);
VALA_EXTERN SynapseGuiCloneWidget* synapse_gui_clone_widget_construct (GType object_type,
                                                           GtkWidget* to_clone);
static void synapse_gui_clone_widget_real_get_preferred_width (GtkWidget* base,
                                                        gint* min_width,
                                                        gint* nat_width);
static void synapse_gui_clone_widget_real_get_preferred_height (GtkWidget* base,
                                                         gint* min_height,
                                                         gint* nat_height);
static void synapse_gui_clone_widget_finalize (GObject * obj);
static GType synapse_gui_clone_widget_get_type_once (void);
VALA_EXTERN GType synapse_gui_smart_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiSmartLabel, g_object_unref)
VALA_EXTERN GType synapse_gui_smart_label_size_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gpointer synapse_gui_utils_color_helper_ref (gpointer instance);
VALA_EXTERN void synapse_gui_utils_color_helper_unref (gpointer instance);
VALA_EXTERN GParamSpec* synapse_gui_utils_param_spec_color_helper (const gchar* name,
                                                       const gchar* nick,
                                                       const gchar* blurb,
                                                       GType object_type,
                                                       GParamFlags flags);
VALA_EXTERN void synapse_gui_utils_value_set_color_helper (GValue* value,
                                               gpointer v_object);
VALA_EXTERN void synapse_gui_utils_value_take_color_helper (GValue* value,
                                                gpointer v_object);
VALA_EXTERN gpointer synapse_gui_utils_value_get_color_helper (const GValue* value);
VALA_EXTERN GType synapse_gui_utils_color_helper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiUtilsColorHelper, synapse_gui_utils_color_helper_unref)
VALA_EXTERN SynapseGuiSmartLabelSize synapse_gui_smart_label_string_to_size (const gchar* sizename);
static void synapse_gui_smart_label_sizes_changed (SynapseGuiSmartLabel* self);
VALA_EXTERN SynapseGuiSmartLabelSize synapse_gui_smart_label_get_min_size (SynapseGuiSmartLabel* self);
VALA_EXTERN SynapseGuiSmartLabelSize synapse_gui_smart_label_get_size (SynapseGuiSmartLabel* self);
VALA_EXTERN void synapse_gui_smart_label_set_animation_enabled (SynapseGuiSmartLabel* self,
                                                    gboolean b);
static void synapse_gui_smart_label_stop_animation (SynapseGuiSmartLabel* self);
VALA_EXTERN void synapse_gui_smart_label_set_text (SynapseGuiSmartLabel* self,
                                       const gchar* s);
static void synapse_gui_smart_label_text_updated (SynapseGuiSmartLabel* self);
VALA_EXTERN void synapse_gui_smart_label_set_markup (SynapseGuiSmartLabel* self,
                                         const gchar* m);
static void synapse_gui_smart_label_start_animation (SynapseGuiSmartLabel* self);
static gboolean __lambda12_ (SynapseGuiSmartLabel* self);
static gboolean ___lambda12__gsource_func (gpointer self);
VALA_EXTERN void synapse_gui_smart_label_set_ellipsize (SynapseGuiSmartLabel* self,
                                            PangoEllipsizeMode mode);
static void synapse_gui_smart_label_real_size_allocate (GtkWidget* base,
                                                 GtkAllocation* allocation);
VALA_EXTERN void synapse_gui_smart_label_requisition_for_size (SynapseGuiSmartLabel* self,
                                                   GtkRequisition* req,
                                                   gint* char_width,
                                                   SynapseGuiSmartLabelSize s,
                                                   gboolean return_only_width);
static gboolean ____lambda13_ (SynapseGuiSmartLabel* self);
static gboolean _____lambda13__gsource_func (gpointer self);
static gboolean synapse_gui_smart_label_real_draw (GtkWidget* base,
                                            cairo_t* ctx);
VALA_EXTERN void synapse_gui_utils_get_draw_position (gint* x,
                                          gint* y,
                                          gint* width,
                                          gint* height,
                                          PangoLayout* layout,
                                          gboolean rtl,
                                          gint area_width,
                                          gint area_height,
                                          gfloat xalign,
                                          gfloat yalign);
VALA_EXTERN GType synapse_gui_style_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType synapse_gui_mod_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void synapse_gui_utils_color_helper_set_source_rgba (SynapseGuiUtilsColorHelper* self,
                                                     cairo_t* ctx,
                                                     gdouble alpha,
                                                     SynapseGuiStyleType t,
                                                     GtkStateFlags st,
                                                     SynapseGuiMod mod);
static void _vala_PangoLanguage_free (PangoLanguage* self);
static void _vala_PangoFontDescription_free (PangoFontDescription* self);
VALA_EXTERN void synapse_gui_smart_label_size_request (SynapseGuiSmartLabel* self,
                                           GtkRequisition* req);
VALA_EXTERN gboolean synapse_gui_smart_label_get_natural_requisition (SynapseGuiSmartLabel* self);
static void synapse_gui_smart_label_real_get_preferred_width (GtkWidget* base,
                                                       gint* min_width,
                                                       gint* nat_width);
static void synapse_gui_smart_label_real_get_preferred_height (GtkWidget* base,
                                                        gint* min_height,
                                                        gint* nat_height);
VALA_EXTERN SynapseGuiSmartLabel* synapse_gui_smart_label_new (void);
VALA_EXTERN SynapseGuiSmartLabel* synapse_gui_smart_label_construct (GType object_type);
VALA_EXTERN void synapse_gui_smart_label_set_natural_requisition (SynapseGuiSmartLabel* self,
                                                      gboolean value);
VALA_EXTERN void synapse_gui_smart_label_set_size (SynapseGuiSmartLabel* self,
                                       SynapseGuiSmartLabelSize value);
VALA_EXTERN void synapse_gui_smart_label_set_min_size (SynapseGuiSmartLabel* self,
                                           SynapseGuiSmartLabelSize value);
static GObject * synapse_gui_smart_label_constructor (GType type,
                                               guint n_construct_properties,
                                               GObjectConstructParam * construct_properties);
VALA_EXTERN SynapseGuiUtilsColorHelper* synapse_gui_utils_color_helper_get_default (void);
static void _synapse_gui_smart_label_sizes_changed_g_object_notify (GObject* _sender,
                                                             GParamSpec* pspec,
                                                             gpointer self);
static void synapse_gui_smart_label_finalize (GObject * obj);
static GType synapse_gui_smart_label_get_type_once (void);
static void _vala_synapse_gui_smart_label_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_synapse_gui_smart_label_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_schema_container_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiSchemaContainer, g_object_unref)
VALA_EXTERN GType synapse_gui_schema_container_schema_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiSchemaContainerSchema, g_object_unref)
VALA_EXTERN SynapseGuiSchemaContainer* synapse_gui_schema_container_new (gint scale_size);
VALA_EXTERN SynapseGuiSchemaContainer* synapse_gui_schema_container_construct (GType object_type,
                                                                   gint scale_size);
VALA_EXTERN void synapse_gui_schema_container_set_scale_size (SynapseGuiSchemaContainer* self,
                                                  gint value);
static void _gtk_widget_queue_resize_g_object_notify (GObject* _sender,
                                               GParamSpec* pspec,
                                               gpointer self);
VALA_EXTERN void synapse_gui_schema_container_set_render_order (SynapseGuiSchemaContainer* self,
                                                    gint* order,
                                                    gint order_length1);
static gint* _vala_array_dup2 (gint* self,
                        gssize length);
VALA_EXTERN void synapse_gui_schema_container_set_size_request (SynapseGuiSchemaContainer* self,
                                                    gint width,
                                                    gint height);
VALA_EXTERN void synapse_gui_schema_container_add_schema (SynapseGuiSchemaContainer* self,
                                              SynapseGuiSchemaContainerSchema* s);
VALA_EXTERN void synapse_gui_schema_container_select_schema (SynapseGuiSchemaContainer* self,
                                                 gint i);
static void synapse_gui_schema_container_real_forall_internal (GtkContainer* base,
                                                        gboolean b,
                                                        GtkCallback callback,
                                                        gpointer callback_target);
static void synapse_gui_schema_container_real_add (GtkContainer* base,
                                            GtkWidget* widget);
static void synapse_gui_schema_container_real_remove (GtkContainer* base,
                                               GtkWidget* widget);
VALA_EXTERN void synapse_gui_schema_container_size_request (SynapseGuiSchemaContainer* self,
                                                GtkRequisition* req);
VALA_EXTERN GtkAllocation* synapse_gui_schema_container_schema_get_positions (SynapseGuiSchemaContainerSchema* self,
                                                                  gint* result_length1);
static GtkAllocation* _vala_array_dup3 (GtkAllocation* self,
                                 gssize length);
static void synapse_gui_schema_container_real_get_preferred_width (GtkWidget* base,
                                                            gint* min_width,
                                                            gint* nat_width);
static void synapse_gui_schema_container_real_get_preferred_height (GtkWidget* base,
                                                             gint* min_height,
                                                             gint* nat_height);
static void synapse_gui_schema_container_real_size_allocate (GtkWidget* base,
                                                      GtkAllocation* allocation);
static GtkAllocation* _vala_array_dup4 (GtkAllocation* self,
                                 gssize length);
VALA_EXTERN gint synapse_gui_schema_container_get_xpad (SynapseGuiSchemaContainer* self);
VALA_EXTERN void synapse_gui_schema_container_set_xpad (SynapseGuiSchemaContainer* self,
                                            gint value);
VALA_EXTERN gint synapse_gui_schema_container_get_ypad (SynapseGuiSchemaContainer* self);
VALA_EXTERN void synapse_gui_schema_container_set_ypad (SynapseGuiSchemaContainer* self,
                                            gint value);
VALA_EXTERN gint synapse_gui_schema_container_get_scale_size (SynapseGuiSchemaContainer* self);
VALA_EXTERN gboolean synapse_gui_schema_container_get_fixed_height (SynapseGuiSchemaContainer* self);
VALA_EXTERN void synapse_gui_schema_container_set_fixed_height (SynapseGuiSchemaContainer* self,
                                                    gboolean value);
VALA_EXTERN gboolean synapse_gui_schema_container_get_fixed_width (SynapseGuiSchemaContainer* self);
VALA_EXTERN void synapse_gui_schema_container_set_fixed_width (SynapseGuiSchemaContainer* self,
                                                   gboolean value);
VALA_EXTERN SynapseGuiSchemaContainerSchema* synapse_gui_schema_container_schema_new (void);
VALA_EXTERN SynapseGuiSchemaContainerSchema* synapse_gui_schema_container_schema_construct (GType object_type);
VALA_EXTERN void synapse_gui_schema_container_schema_add_allocation (SynapseGuiSchemaContainerSchema* self,
                                                         GtkAllocation* alloc);
static void _vala_array_add1 (GtkAllocation* * array,
                       gint* length,
                       gint* size,
                       const GtkAllocation* value);
static void synapse_gui_schema_container_schema_finalize (GObject * obj);
static GType synapse_gui_schema_container_schema_get_type_once (void);
static void _vala_synapse_gui_schema_container_schema_get_property (GObject * object,
                                                             guint property_id,
                                                             GValue * value,
                                                             GParamSpec * pspec);
static void synapse_gui_schema_container_finalize (GObject * obj);
static GType synapse_gui_schema_container_get_type_once (void);
static void _vala_synapse_gui_schema_container_get_property (GObject * object,
                                                      guint property_id,
                                                      GValue * value,
                                                      GParamSpec * pspec);
static void _vala_synapse_gui_schema_container_set_property (GObject * object,
                                                      guint property_id,
                                                      const GValue * value,
                                                      GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_selection_container_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiSelectionContainer, g_object_unref)
VALA_EXTERN SynapseGuiSelectionContainer* synapse_gui_selection_container_new (void);
VALA_EXTERN SynapseGuiSelectionContainer* synapse_gui_selection_container_construct (GType object_type);
VALA_EXTERN void synapse_gui_selection_container_select_child (SynapseGuiSelectionContainer* self,
                                                   gint i);
static void synapse_gui_selection_container_real_forall_internal (GtkContainer* base,
                                                           gboolean b,
                                                           GtkCallback callback,
                                                           gpointer callback_target);
static void synapse_gui_selection_container_real_add (GtkContainer* base,
                                               GtkWidget* widget);
static void synapse_gui_selection_container_real_remove (GtkContainer* base,
                                                  GtkWidget* widget);
static void synapse_gui_selection_container_real_size_allocate (GtkWidget* base,
                                                         GtkAllocation* allocation);
static void synapse_gui_selection_container_real_get_preferred_width (GtkWidget* base,
                                                               gint* min_width,
                                                               gint* nat_width);
static void synapse_gui_selection_container_real_get_preferred_height (GtkWidget* base,
                                                                gint* min_height,
                                                                gint* nat_height);
static void synapse_gui_selection_container_finalize (GObject * obj);
static GType synapse_gui_selection_container_get_type_once (void);
VALA_EXTERN GType synapse_gui_throbber_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiThrobber, g_object_unref)
static gboolean synapse_gui_throbber_real_draw (GtkWidget* base,
                                         cairo_t* ctx);
VALA_EXTERN SynapseGuiThrobber* synapse_gui_throbber_new (void);
VALA_EXTERN SynapseGuiThrobber* synapse_gui_throbber_construct (GType object_type);
static GObject * synapse_gui_throbber_constructor (GType type,
                                            guint n_construct_properties,
                                            GObjectConstructParam * construct_properties);
static void _gtk_widget_queue_draw_g_object_notify (GObject* _sender,
                                             GParamSpec* pspec,
                                             gpointer self);
static GType synapse_gui_throbber_get_type_once (void);
VALA_EXTERN GType synapse_gui_sensitive_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiSensitiveWidget, g_object_unref)
VALA_EXTERN SynapseGuiSensitiveWidget* synapse_gui_sensitive_widget_new (GtkWidget* widget);
VALA_EXTERN SynapseGuiSensitiveWidget* synapse_gui_sensitive_widget_construct (GType object_type,
                                                                   GtkWidget* widget);
static gboolean synapse_gui_sensitive_widget_real_draw (GtkWidget* base,
                                                 cairo_t* ctx);
VALA_EXTERN GtkWidget* synapse_gui_sensitive_widget_get_widget (SynapseGuiSensitiveWidget* self);
static void synapse_gui_sensitive_widget_finalize (GObject * obj);
static GType synapse_gui_sensitive_widget_get_type_once (void);
static void _vala_synapse_gui_sensitive_widget_get_property (GObject * object,
                                                      guint property_id,
                                                      GValue * value,
                                                      GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_named_icon_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiNamedIcon, g_object_unref)
VALA_EXTERN void synapse_gui_named_icon_size_request (SynapseGuiNamedIcon* self,
                                          GtkRequisition* req);
static void synapse_gui_named_icon_real_get_preferred_width (GtkWidget* base,
                                                      gint* min_width,
                                                      gint* nat_width);
static void synapse_gui_named_icon_real_get_preferred_height (GtkWidget* base,
                                                       gint* min_height,
                                                       gint* nat_height);
static gboolean synapse_gui_named_icon_real_draw (GtkWidget* base,
                                           cairo_t* ctx);
VALA_EXTERN GType synapse_gui_icon_cache_service_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiIconCacheService, g_object_unref)
VALA_EXTERN SynapseGuiIconCacheService* synapse_gui_icon_cache_service_get_default (void);
VALA_EXTERN GdkPixbuf* synapse_gui_icon_cache_service_get_icon (SynapseGuiIconCacheService* self,
                                                    const gchar* name,
                                                    gint pixel_size);
VALA_EXTERN void synapse_gui_named_icon_clear (SynapseGuiNamedIcon* self);
VALA_EXTERN void synapse_gui_named_icon_set_icon_name (SynapseGuiNamedIcon* self,
                                           const gchar* name,
                                           GtkIconSize size);
VALA_EXTERN const gchar* synapse_gui_named_icon_get_not_found_name (SynapseGuiNamedIcon* self);
VALA_EXTERN SynapseGuiNamedIcon* synapse_gui_named_icon_new (void);
VALA_EXTERN SynapseGuiNamedIcon* synapse_gui_named_icon_construct (GType object_type);
VALA_EXTERN void synapse_gui_named_icon_set_not_found_name (SynapseGuiNamedIcon* self,
                                                const gchar* value);
static GObject * synapse_gui_named_icon_constructor (GType type,
                                              guint n_construct_properties,
                                              GObjectConstructParam * construct_properties);
static void synapse_gui_named_icon_finalize (GObject * obj);
static GType synapse_gui_named_icon_get_type_once (void);
static void _vala_synapse_gui_named_icon_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec);
static void _vala_synapse_gui_named_icon_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_fake_input_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiFakeInput, g_object_unref)
static gboolean synapse_gui_fake_input_real_draw (GtkWidget* base,
                                           cairo_t* ctx);
VALA_EXTERN gboolean synapse_gui_fake_input_get_draw_input (SynapseGuiFakeInput* self);
VALA_EXTERN void synapse_gui_utils_cairo_rounded_rect (cairo_t* ctx,
                                           gdouble x,
                                           gdouble y,
                                           gdouble w,
                                           gdouble h,
                                           gdouble r);
VALA_EXTERN gdouble synapse_gui_fake_input_get_border_radius (SynapseGuiFakeInput* self);
VALA_EXTERN gboolean synapse_gui_utils_color_helper_is_dark_color (SynapseGuiUtilsColorHelper* self,
                                                       SynapseGuiStyleType t,
                                                       GtkStateFlags st,
                                                       SynapseGuiMod mod);
VALA_EXTERN gdouble synapse_gui_fake_input_get_input_alpha (SynapseGuiFakeInput* self);
VALA_EXTERN gdouble synapse_gui_fake_input_get_shadow_height (SynapseGuiFakeInput* self);
VALA_EXTERN void synapse_gui_utils_color_helper_add_color_stop_rgba (SynapseGuiUtilsColorHelper* self,
                                                         cairo_pattern_t* pat,
                                                         gdouble val,
                                                         gdouble alpha,
                                                         SynapseGuiStyleType t,
                                                         GtkStateFlags st,
                                                         SynapseGuiMod mod);
VALA_EXTERN gdouble synapse_gui_fake_input_get_focus_height (SynapseGuiFakeInput* self);
VALA_EXTERN SynapseGuiFakeInput* synapse_gui_fake_input_new (void);
VALA_EXTERN SynapseGuiFakeInput* synapse_gui_fake_input_construct (GType object_type);
VALA_EXTERN void synapse_gui_fake_input_set_draw_input (SynapseGuiFakeInput* self,
                                            gboolean value);
VALA_EXTERN void synapse_gui_fake_input_set_input_alpha (SynapseGuiFakeInput* self,
                                             gdouble value);
VALA_EXTERN void synapse_gui_fake_input_set_border_radius (SynapseGuiFakeInput* self,
                                               gdouble value);
VALA_EXTERN void synapse_gui_fake_input_set_shadow_height (SynapseGuiFakeInput* self,
                                               gdouble value);
VALA_EXTERN void synapse_gui_fake_input_set_focus_height (SynapseGuiFakeInput* self,
                                              gdouble value);
VALA_EXTERN GtkWidget* synapse_gui_fake_input_get_focus_widget (SynapseGuiFakeInput* self);
VALA_EXTERN void synapse_gui_fake_input_set_focus_widget (SynapseGuiFakeInput* self,
                                              GtkWidget* value);
static GObject * synapse_gui_fake_input_constructor (GType type,
                                              guint n_construct_properties,
                                              GObjectConstructParam * construct_properties);
static void synapse_gui_fake_input_finalize (GObject * obj);
static GType synapse_gui_fake_input_get_type_once (void);
static void _vala_synapse_gui_fake_input_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec);
static void _vala_synapse_gui_fake_input_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_fake_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiFakeButton, g_object_unref)
VALA_EXTERN GType synapse_gui_menu_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiMenuButton, g_object_unref)
VALA_EXTERN GType synapse_gui_menu_throbber_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiMenuThrobber, g_object_unref)
static void synapse_gui_menu_throbber_active_toggled (SynapseGuiMenuThrobber* self);
VALA_EXTERN gboolean synapse_gui_menu_throbber_get_active (SynapseGuiMenuThrobber* self);
static gboolean ___lambda20_ (SynapseGuiMenuThrobber* self);
static gboolean ____lambda20__gsource_func (gpointer self);
static void synapse_gui_menu_throbber_real_get_preferred_width (GtkWidget* base,
                                                         gint* min_width,
                                                         gint* nat_width);
static void synapse_gui_menu_throbber_real_get_preferred_height (GtkWidget* base,
                                                          gint* min_height,
                                                          gint* nat_height);
static void synapse_gui_menu_throbber_real_size_allocate (GtkWidget* base,
                                                   GtkAllocation* allocation);
static gboolean synapse_gui_menu_throbber_real_draw (GtkWidget* base,
                                              cairo_t* ctx);
VALA_EXTERN gdouble synapse_gui_menu_button_get_button_scale (SynapseGuiMenuButton* self);
VALA_EXTERN void synapse_gui_utils_color_helper_get_rgb (SynapseGuiUtilsColorHelper* self,
                                             gdouble* r,
                                             gdouble* g,
                                             gdouble* b,
                                             SynapseGuiStyleType t,
                                             GtkStateFlags st,
                                             SynapseGuiMod mod);
VALA_EXTERN SynapseGuiMenuThrobber* synapse_gui_menu_throbber_new (void);
VALA_EXTERN SynapseGuiMenuThrobber* synapse_gui_menu_throbber_construct (GType object_type);
VALA_EXTERN SynapseGuiMenuButton* synapse_gui_menu_button_new (void);
VALA_EXTERN SynapseGuiMenuButton* synapse_gui_menu_button_construct (GType object_type);
VALA_EXTERN void synapse_gui_menu_throbber_set_active (SynapseGuiMenuThrobber* self,
                                           gboolean value);
static GObject * synapse_gui_menu_throbber_constructor (GType type,
                                                 guint n_construct_properties,
                                                 GObjectConstructParam * construct_properties);
static void _synapse_gui_menu_throbber_active_toggled_g_object_notify (GObject* _sender,
                                                                GParamSpec* pspec,
                                                                gpointer self);
static void synapse_gui_menu_throbber_finalize (GObject * obj);
static GType synapse_gui_menu_throbber_get_type_once (void);
static void _vala_synapse_gui_menu_throbber_get_property (GObject * object,
                                                   guint property_id,
                                                   GValue * value,
                                                   GParamSpec * pspec);
static void _vala_synapse_gui_menu_throbber_set_property (GObject * object,
                                                   guint property_id,
                                                   const GValue * value,
                                                   GParamSpec * pspec);
static gboolean synapse_gui_fake_button_real_enter_notify_event (GtkWidget* base,
                                                          GdkEventCrossing* event);
static gboolean synapse_gui_fake_button_real_leave_notify_event (GtkWidget* base,
                                                          GdkEventCrossing* event);
static gboolean synapse_gui_fake_button_real_button_release_event (GtkWidget* base,
                                                            GdkEventButton* event);
VALA_EXTERN SynapseGuiFakeButton* synapse_gui_fake_button_new (void);
VALA_EXTERN SynapseGuiFakeButton* synapse_gui_fake_button_construct (GType object_type);
static void synapse_gui_fake_button_real_leave (SynapseGuiFakeButton* self);
static void synapse_gui_fake_button_real_enter (SynapseGuiFakeButton* self);
static void synapse_gui_fake_button_real_released (SynapseGuiFakeButton* self);
static GObject * synapse_gui_fake_button_constructor (GType type,
                                               guint n_construct_properties,
                                               GObjectConstructParam * construct_properties);
static GType synapse_gui_fake_button_get_type_once (void);
VALA_EXTERN void synapse_gui_fake_button_enter (SynapseGuiFakeButton* self);
VALA_EXTERN void synapse_gui_fake_button_leave (SynapseGuiFakeButton* self);
VALA_EXTERN void synapse_gui_fake_button_released (SynapseGuiFakeButton* self);
static void __lambda10_ (SynapseGuiMenuButton* self);
static void ___lambda10__gtk_menu_item_activate (GtkMenuItem* _sender,
                                          gpointer self);
static void __lambda11_ (SynapseGuiMenuButton* self);
VALA_EXTERN GType synapse_gui_synapse_about_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiSynapseAboutDialog, g_object_unref)
VALA_EXTERN SynapseGuiSynapseAboutDialog* synapse_gui_synapse_about_dialog_new (void);
VALA_EXTERN SynapseGuiSynapseAboutDialog* synapse_gui_synapse_about_dialog_construct (GType object_type);
static void ___lambda11__gtk_menu_item_activate (GtkMenuItem* _sender,
                                          gpointer self);
static void _gtk_main_quit_gtk_menu_item_activate (GtkMenuItem* _sender,
                                            gpointer self);
VALA_EXTERN GtkMenu* synapse_gui_menu_button_get_menu (SynapseGuiMenuButton* self);
static void synapse_gui_menu_button_real_enter (SynapseGuiFakeButton* base);
static void synapse_gui_menu_button_real_leave (SynapseGuiFakeButton* base);
VALA_EXTERN gboolean synapse_gui_menu_button_is_menu_visible (SynapseGuiMenuButton* self);
static void synapse_gui_menu_button_real_released (SynapseGuiFakeButton* base);
static void synapse_gui_menu_button_real_size_allocate (GtkWidget* base,
                                                 GtkAllocation* allocation);
static void synapse_gui_menu_button_real_get_preferred_width (GtkWidget* base,
                                                       gint* min_width,
                                                       gint* nat_width);
static void synapse_gui_menu_button_real_get_preferred_height (GtkWidget* base,
                                                        gint* min_height,
                                                        gint* nat_height);
static gboolean synapse_gui_menu_button_real_draw (GtkWidget* base,
                                            cairo_t* ctx);
VALA_EXTERN void synapse_gui_menu_button_set_button_scale (SynapseGuiMenuButton* self,
                                               gdouble value);
static void synapse_gui_menu_button_finalize (GObject * obj);
static GType synapse_gui_menu_button_get_type_once (void);
static void _vala_synapse_gui_menu_button_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_synapse_gui_menu_button_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);
static gchar** _vala_array_dup5 (gchar** self,
                          gssize length);
static void _vala_array_add2 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static GType synapse_gui_synapse_about_dialog_get_type_once (void);
VALA_EXTERN GType synapse_gui_htext_selector_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiHTextSelector, g_object_unref)
static gpointer synapse_gui_htext_selector_pango_ready_text_ref (gpointer instance);
static void synapse_gui_htext_selector_pango_ready_text_unref (gpointer instance);
static GParamSpec* synapse_gui_htext_selector_param_spec_pango_ready_text (const gchar* name,
                                                                    const gchar* nick,
                                                                    const gchar* blurb,
                                                                    GType object_type,
                                                                    GParamFlags flags) G_GNUC_UNUSED ;
static void synapse_gui_htext_selector_value_set_pango_ready_text (GValue* value,
                                                            gpointer v_object) G_GNUC_UNUSED ;
static void synapse_gui_htext_selector_value_take_pango_ready_text (GValue* value,
                                                             gpointer v_object) G_GNUC_UNUSED ;
static gpointer synapse_gui_htext_selector_value_get_pango_ready_text (const GValue* value) G_GNUC_UNUSED ;
static GType synapse_gui_htext_selector_pango_ready_text_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiHTextSelectorPangoReadyText, synapse_gui_htext_selector_pango_ready_text_unref)
VALA_EXTERN SynapseGuiHTextSelector* synapse_gui_htext_selector_new (void);
VALA_EXTERN SynapseGuiHTextSelector* synapse_gui_htext_selector_construct (GType object_type);
static void __lambda5_ (SynapseGuiHTextSelector* self);
static void synapse_gui_htext_selector_update_all_sizes (SynapseGuiHTextSelector* self);
static void synapse_gui_htext_selector_update_cached_surface (SynapseGuiHTextSelector* self);
static void ___lambda5__gtk_widget_style_updated (GtkWidget* _sender,
                                           gpointer self);
static void __lambda6_ (SynapseGuiHTextSelector* self);
static gboolean ___lambda7_ (SynapseGuiHTextSelector* self);
static gboolean synapse_gui_htext_selector_update_current_offset (SynapseGuiHTextSelector* self);
static gboolean ____lambda7__gsource_func (gpointer self);
static void ___lambda6__gtk_widget_size_allocate (GtkWidget* _sender,
                                           GtkAllocation* allocation,
                                           gpointer self);
static void __lambda8_ (SynapseGuiHTextSelector* self);
static void ___lambda8__g_object_notify (GObject* _sender,
                                  GParamSpec* pspec,
                                  gpointer self);
static void _synapse_gui_htext_selector_global_update (SynapseGuiHTextSelector* self);
static void __synapse_gui_htext_selector_global_update_gtk_widget_realize (GtkWidget* _sender,
                                                                    gpointer self);
static void __synapse_gui_htext_selector_global_update_g_object_notify (GObject* _sender,
                                                                 GParamSpec* pspec,
                                                                 gpointer self);
VALA_EXTERN void synapse_gui_htext_selector_set_animation_enabled (SynapseGuiHTextSelector* self,
                                                       gboolean value);
static gboolean synapse_gui_htext_selector_real_button_press_event (GtkWidget* base,
                                                             GdkEventButton* event);
VALA_EXTERN void synapse_gui_htext_selector_set_selected (SynapseGuiHTextSelector* self,
                                              gint value);
static gint synapse_gui_htext_selector_pango_ready_text_get_offset (SynapseGuiHTextSelectorPangoReadyText* self);
static gboolean synapse_gui_htext_selector_real_scroll_event (GtkWidget* base,
                                                       GdkEventScroll* event);
VALA_EXTERN void synapse_gui_htext_selector_select_prev (SynapseGuiHTextSelector* self);
VALA_EXTERN void synapse_gui_htext_selector_select_next (SynapseGuiHTextSelector* self);
VALA_EXTERN void synapse_gui_htext_selector_add_text (SynapseGuiHTextSelector* self,
                                          const gchar* txt);
static SynapseGuiHTextSelectorPangoReadyText* synapse_gui_htext_selector_pango_ready_text_new (void);
static SynapseGuiHTextSelectorPangoReadyText* synapse_gui_htext_selector_pango_ready_text_construct (GType object_type);
static void synapse_gui_htext_selector_pango_ready_text_set_text (SynapseGuiHTextSelectorPangoReadyText* self,
                                                           const gchar* value);
static void synapse_gui_htext_selector_pango_ready_text_set_offset (SynapseGuiHTextSelectorPangoReadyText* self,
                                                             gint value);
static void synapse_gui_htext_selector_pango_ready_text_set_width (SynapseGuiHTextSelectorPangoReadyText* self,
                                                            gint value);
static void synapse_gui_htext_selector_pango_ready_text_set_height (SynapseGuiHTextSelectorPangoReadyText* self,
                                                             gint value);
VALA_EXTERN void synapse_gui_htext_selector_remove_text (SynapseGuiHTextSelector* self,
                                             gint i);
VALA_EXTERN gint synapse_gui_htext_selector_get_selected (SynapseGuiHTextSelector* self);
VALA_EXTERN const gchar* synapse_gui_htext_selector_get_selected_markup (SynapseGuiHTextSelector* self);
VALA_EXTERN const gchar* synapse_gui_htext_selector_get_unselected_markup (SynapseGuiHTextSelector* self);
static const gchar* synapse_gui_htext_selector_pango_ready_text_get_text (SynapseGuiHTextSelectorPangoReadyText* self);
VALA_EXTERN gint synapse_gui_htext_selector_get_padding (SynapseGuiHTextSelector* self);
static gint synapse_gui_htext_selector_pango_ready_text_get_width (SynapseGuiHTextSelectorPangoReadyText* self);
static gint synapse_gui_htext_selector_pango_ready_text_get_height (SynapseGuiHTextSelectorPangoReadyText* self);
static void synapse_gui_htext_selector_real_get_preferred_width (GtkWidget* base,
                                                          gint* min_width,
                                                          gint* nat_width);
static void synapse_gui_htext_selector_real_get_preferred_height (GtkWidget* base,
                                                           gint* min_height,
                                                           gint* nat_height);
VALA_EXTERN gboolean synapse_gui_htext_selector_get_show_arrows (SynapseGuiHTextSelector* self);
VALA_EXTERN gboolean synapse_gui_htext_selector_get_animation_enabled (SynapseGuiHTextSelector* self);
static gboolean synapse_gui_htext_selector_real_draw (GtkWidget* base,
                                               cairo_t* ctx);
VALA_EXTERN void synapse_gui_htext_selector_set_selected_markup (SynapseGuiHTextSelector* self,
                                                     const gchar* value);
VALA_EXTERN void synapse_gui_htext_selector_set_unselected_markup (SynapseGuiHTextSelector* self,
                                                       const gchar* value);
VALA_EXTERN void synapse_gui_htext_selector_set_padding (SynapseGuiHTextSelector* self,
                                             gint value);
VALA_EXTERN void synapse_gui_htext_selector_set_show_arrows (SynapseGuiHTextSelector* self,
                                                 gboolean value);
static gboolean _synapse_gui_htext_selector_selected____lambda9_ (SynapseGuiHTextSelector* self);
static gboolean __synapse_gui_htext_selector_selected____lambda9__gsource_func (gpointer self);
static void synapse_gui_htext_selector_pango_ready_text_finalize (SynapseGuiHTextSelectorPangoReadyText * obj);
static GType synapse_gui_htext_selector_pango_ready_text_get_type_once (void);
static void synapse_gui_htext_selector_finalize (GObject * obj);
static GType synapse_gui_htext_selector_get_type_once (void);
static void _vala_synapse_gui_htext_selector_get_property (GObject * object,
                                                    guint property_id,
                                                    GValue * value,
                                                    GParamSpec * pspec);
static void _vala_synapse_gui_htext_selector_set_property (GObject * object,
                                                    guint property_id,
                                                    const GValue * value,
                                                    GParamSpec * pspec);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

const gchar* SYNAPSE_GUI_SMART_LABEL_size_to_string[7] = {"xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large"};
const gdouble SYNAPSE_GUI_SMART_LABEL_size_to_scale[7] = {PANGO_SCALE_XX_SMALL, PANGO_SCALE_X_SMALL, PANGO_SCALE_SMALL, PANGO_SCALE_MEDIUM, PANGO_SCALE_LARGE, PANGO_SCALE_X_LARGE, PANGO_SCALE_XX_LARGE};

GQuark
synapse_gui_widget_error_quark (void)
{
#line 24 "controller.vala"
	return g_quark_from_static_string ("synapse-gui-widget-error-quark");
#line 1317 "widgets.c"
}

static GType
synapse_gui_widget_error_get_type_once (void)
{
	static const GEnumValue values[] = {{SYNAPSE_GUI_WIDGET_ERROR_ICON_NOT_FOUND, "SYNAPSE_GUI_WIDGET_ERROR_ICON_NOT_FOUND", "icon-not-found"}, {SYNAPSE_GUI_WIDGET_ERROR_UNKNOWN, "SYNAPSE_GUI_WIDGET_ERROR_UNKNOWN", "unknown"}, {0, NULL, NULL}};
	GType synapse_gui_widget_error_type_id;
	synapse_gui_widget_error_type_id = g_enum_register_static ("SynapseGuiWidgetError", values);
	return synapse_gui_widget_error_type_id;
}

GType
synapse_gui_widget_error_get_type (void)
{
	static volatile gsize synapse_gui_widget_error_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_widget_error_type_id__once)) {
		GType synapse_gui_widget_error_type_id;
		synapse_gui_widget_error_type_id = synapse_gui_widget_error_get_type_once ();
		g_once_init_leave (&synapse_gui_widget_error_type_id__once, synapse_gui_widget_error_type_id);
	}
	return synapse_gui_widget_error_type_id__once;
}

static inline gpointer
synapse_gui_ui_widgets_config_get_instance_private (SynapseGuiUIWidgetsConfig* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiUIWidgetsConfig_private_offset);
}

SynapseGuiUIWidgetsConfig*
synapse_gui_ui_widgets_config_construct (GType object_type)
{
	SynapseGuiUIWidgetsConfig * self = NULL;
#line 30 "widgets.vala"
	self = (SynapseGuiUIWidgetsConfig*) synapse_config_object_construct (object_type);
#line 30 "widgets.vala"
	return self;
#line 1355 "widgets.c"
}

SynapseGuiUIWidgetsConfig*
synapse_gui_ui_widgets_config_new (void)
{
#line 30 "widgets.vala"
	return synapse_gui_ui_widgets_config_construct (SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG);
#line 1363 "widgets.c"
}

gboolean
synapse_gui_ui_widgets_config_get_animation_enabled (SynapseGuiUIWidgetsConfig* self)
{
	gboolean result;
#line 32 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 32 "widgets.vala"
	result = self->priv->_animation_enabled;
#line 32 "widgets.vala"
	return result;
#line 1376 "widgets.c"
}

void
synapse_gui_ui_widgets_config_set_animation_enabled (SynapseGuiUIWidgetsConfig* self,
                                                     gboolean value)
{
	gboolean old_value;
#line 32 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 32 "widgets.vala"
	old_value = synapse_gui_ui_widgets_config_get_animation_enabled (self);
#line 32 "widgets.vala"
	if (old_value != value) {
#line 32 "widgets.vala"
		self->priv->_animation_enabled = value;
#line 32 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_ui_widgets_config_properties[SYNAPSE_GUI_UI_WIDGETS_CONFIG_ANIMATION_ENABLED_PROPERTY]);
#line 1394 "widgets.c"
	}
}

gboolean
synapse_gui_ui_widgets_config_get_extended_info_enabled (SynapseGuiUIWidgetsConfig* self)
{
	gboolean result;
#line 33 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 33 "widgets.vala"
	result = self->priv->_extended_info_enabled;
#line 33 "widgets.vala"
	return result;
#line 1408 "widgets.c"
}

void
synapse_gui_ui_widgets_config_set_extended_info_enabled (SynapseGuiUIWidgetsConfig* self,
                                                         gboolean value)
{
	gboolean old_value;
#line 33 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 33 "widgets.vala"
	old_value = synapse_gui_ui_widgets_config_get_extended_info_enabled (self);
#line 33 "widgets.vala"
	if (old_value != value) {
#line 33 "widgets.vala"
		self->priv->_extended_info_enabled = value;
#line 33 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_ui_widgets_config_properties[SYNAPSE_GUI_UI_WIDGETS_CONFIG_EXTENDED_INFO_ENABLED_PROPERTY]);
#line 1426 "widgets.c"
	}
}

static void
synapse_gui_ui_widgets_config_class_init (SynapseGuiUIWidgetsConfigClass * klass,
                                          gpointer klass_data)
{
#line 30 "widgets.vala"
	synapse_gui_ui_widgets_config_parent_class = g_type_class_peek_parent (klass);
#line 30 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiUIWidgetsConfig_private_offset);
#line 30 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_ui_widgets_config_get_property;
#line 30 "widgets.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_ui_widgets_config_set_property;
#line 30 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_ui_widgets_config_finalize;
#line 30 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_UI_WIDGETS_CONFIG_ANIMATION_ENABLED_PROPERTY, synapse_gui_ui_widgets_config_properties[SYNAPSE_GUI_UI_WIDGETS_CONFIG_ANIMATION_ENABLED_PROPERTY] = g_param_spec_boolean ("animation-enabled", "animation-enabled", "animation-enabled", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 30 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_UI_WIDGETS_CONFIG_EXTENDED_INFO_ENABLED_PROPERTY, synapse_gui_ui_widgets_config_properties[SYNAPSE_GUI_UI_WIDGETS_CONFIG_EXTENDED_INFO_ENABLED_PROPERTY] = g_param_spec_boolean ("extended-info-enabled", "extended-info-enabled", "extended-info-enabled", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 1448 "widgets.c"
}

static void
synapse_gui_ui_widgets_config_instance_init (SynapseGuiUIWidgetsConfig * self,
                                             gpointer klass)
{
#line 30 "widgets.vala"
	self->priv = synapse_gui_ui_widgets_config_get_instance_private (self);
#line 32 "widgets.vala"
	self->priv->_animation_enabled = TRUE;
#line 33 "widgets.vala"
	self->priv->_extended_info_enabled = TRUE;
#line 1461 "widgets.c"
}

static void
synapse_gui_ui_widgets_config_finalize (GObject * obj)
{
	SynapseGuiUIWidgetsConfig * self;
#line 30 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG, SynapseGuiUIWidgetsConfig);
#line 30 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_ui_widgets_config_parent_class)->finalize (obj);
#line 1472 "widgets.c"
}

static GType
synapse_gui_ui_widgets_config_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiUIWidgetsConfigClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_ui_widgets_config_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiUIWidgetsConfig), 0, (GInstanceInitFunc) synapse_gui_ui_widgets_config_instance_init, NULL };
	GType synapse_gui_ui_widgets_config_type_id;
	synapse_gui_ui_widgets_config_type_id = g_type_register_static (SYNAPSE_TYPE_CONFIG_OBJECT, "SynapseGuiUIWidgetsConfig", &g_define_type_info, 0);
	SynapseGuiUIWidgetsConfig_private_offset = g_type_add_instance_private (synapse_gui_ui_widgets_config_type_id, sizeof (SynapseGuiUIWidgetsConfigPrivate));
	return synapse_gui_ui_widgets_config_type_id;
}

GType
synapse_gui_ui_widgets_config_get_type (void)
{
	static volatile gsize synapse_gui_ui_widgets_config_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_ui_widgets_config_type_id__once)) {
		GType synapse_gui_ui_widgets_config_type_id;
		synapse_gui_ui_widgets_config_type_id = synapse_gui_ui_widgets_config_get_type_once ();
		g_once_init_leave (&synapse_gui_ui_widgets_config_type_id__once, synapse_gui_ui_widgets_config_type_id);
	}
	return synapse_gui_ui_widgets_config_type_id__once;
}

static void
_vala_synapse_gui_ui_widgets_config_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec)
{
	SynapseGuiUIWidgetsConfig * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG, SynapseGuiUIWidgetsConfig);
#line 30 "widgets.vala"
	switch (property_id) {
#line 30 "widgets.vala"
		case SYNAPSE_GUI_UI_WIDGETS_CONFIG_ANIMATION_ENABLED_PROPERTY:
#line 30 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_ui_widgets_config_get_animation_enabled (self));
#line 30 "widgets.vala"
		break;
#line 30 "widgets.vala"
		case SYNAPSE_GUI_UI_WIDGETS_CONFIG_EXTENDED_INFO_ENABLED_PROPERTY:
#line 30 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_ui_widgets_config_get_extended_info_enabled (self));
#line 30 "widgets.vala"
		break;
#line 1519 "widgets.c"
		default:
#line 30 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 30 "widgets.vala"
		break;
#line 1525 "widgets.c"
	}
}

static void
_vala_synapse_gui_ui_widgets_config_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec)
{
	SynapseGuiUIWidgetsConfig * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG, SynapseGuiUIWidgetsConfig);
#line 30 "widgets.vala"
	switch (property_id) {
#line 30 "widgets.vala"
		case SYNAPSE_GUI_UI_WIDGETS_CONFIG_ANIMATION_ENABLED_PROPERTY:
#line 30 "widgets.vala"
		synapse_gui_ui_widgets_config_set_animation_enabled (self, g_value_get_boolean (value));
#line 30 "widgets.vala"
		break;
#line 30 "widgets.vala"
		case SYNAPSE_GUI_UI_WIDGETS_CONFIG_EXTENDED_INFO_ENABLED_PROPERTY:
#line 30 "widgets.vala"
		synapse_gui_ui_widgets_config_set_extended_info_enabled (self, g_value_get_boolean (value));
#line 30 "widgets.vala"
		break;
#line 1551 "widgets.c"
		default:
#line 30 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 30 "widgets.vala"
		break;
#line 1557 "widgets.c"
	}
}

static inline gpointer
synapse_gui_clone_widget_get_instance_private (SynapseGuiCloneWidget* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiCloneWidget_private_offset);
}

static gpointer
_g_object_ref0 (gpointer self)
{
#line 41 "widgets.vala"
	return self ? g_object_ref (self) : NULL;
#line 1572 "widgets.c"
}

SynapseGuiCloneWidget*
synapse_gui_clone_widget_construct (GType object_type,
                                    GtkWidget* to_clone)
{
	SynapseGuiCloneWidget * self = NULL;
	GtkWidget* _tmp0_;
#line 39 "widgets.vala"
	g_return_val_if_fail (to_clone != NULL, NULL);
#line 39 "widgets.vala"
	self = (SynapseGuiCloneWidget*) gtk_widget_new (object_type, NULL);
#line 41 "widgets.vala"
	_tmp0_ = _g_object_ref0 (to_clone);
#line 41 "widgets.vala"
	_g_object_unref0 (self->priv->clone);
#line 41 "widgets.vala"
	self->priv->clone = _tmp0_;
#line 42 "widgets.vala"
	gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
#line 39 "widgets.vala"
	return self;
#line 1595 "widgets.c"
}

SynapseGuiCloneWidget*
synapse_gui_clone_widget_new (GtkWidget* to_clone)
{
#line 39 "widgets.vala"
	return synapse_gui_clone_widget_construct (SYNAPSE_GUI_TYPE_CLONE_WIDGET, to_clone);
#line 1603 "widgets.c"
}

static void
synapse_gui_clone_widget_real_get_preferred_width (GtkWidget* base,
                                                   gint* min_width,
                                                   gint* nat_width)
{
	SynapseGuiCloneWidget * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
	GtkWidget* _tmp0_;
	gint _tmp1_ = 0;
	gint _tmp2_ = 0;
#line 44 "widgets.vala"
	self = (SynapseGuiCloneWidget*) base;
#line 46 "widgets.vala"
	_tmp0_ = self->priv->clone;
#line 46 "widgets.vala"
	gtk_widget_get_preferred_width (_tmp0_, &_tmp1_, &_tmp2_);
#line 46 "widgets.vala"
	_vala_min_width = _tmp1_;
#line 46 "widgets.vala"
	_vala_nat_width = _tmp2_;
#line 44 "widgets.vala"
	if (min_width) {
#line 44 "widgets.vala"
		*min_width = _vala_min_width;
#line 1631 "widgets.c"
	}
#line 44 "widgets.vala"
	if (nat_width) {
#line 44 "widgets.vala"
		*nat_width = _vala_nat_width;
#line 1637 "widgets.c"
	}
}

static void
synapse_gui_clone_widget_real_get_preferred_height (GtkWidget* base,
                                                    gint* min_height,
                                                    gint* nat_height)
{
	SynapseGuiCloneWidget * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
	GtkWidget* _tmp0_;
	gint _tmp1_ = 0;
	gint _tmp2_ = 0;
#line 48 "widgets.vala"
	self = (SynapseGuiCloneWidget*) base;
#line 50 "widgets.vala"
	_tmp0_ = self->priv->clone;
#line 50 "widgets.vala"
	gtk_widget_get_preferred_height (_tmp0_, &_tmp1_, &_tmp2_);
#line 50 "widgets.vala"
	_vala_min_height = _tmp1_;
#line 50 "widgets.vala"
	_vala_nat_height = _tmp2_;
#line 48 "widgets.vala"
	if (min_height) {
#line 48 "widgets.vala"
		*min_height = _vala_min_height;
#line 1666 "widgets.c"
	}
#line 48 "widgets.vala"
	if (nat_height) {
#line 48 "widgets.vala"
		*nat_height = _vala_nat_height;
#line 1672 "widgets.c"
	}
}

static void
synapse_gui_clone_widget_class_init (SynapseGuiCloneWidgetClass * klass,
                                     gpointer klass_data)
{
#line 36 "widgets.vala"
	synapse_gui_clone_widget_parent_class = g_type_class_peek_parent (klass);
#line 36 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiCloneWidget_private_offset);
#line 36 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_clone_widget_real_get_preferred_width;
#line 36 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_clone_widget_real_get_preferred_height;
#line 36 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_clone_widget_finalize;
#line 1690 "widgets.c"
}

static void
synapse_gui_clone_widget_instance_init (SynapseGuiCloneWidget * self,
                                        gpointer klass)
{
#line 36 "widgets.vala"
	self->priv = synapse_gui_clone_widget_get_instance_private (self);
#line 1699 "widgets.c"
}

static void
synapse_gui_clone_widget_finalize (GObject * obj)
{
	SynapseGuiCloneWidget * self;
#line 36 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_CLONE_WIDGET, SynapseGuiCloneWidget);
#line 38 "widgets.vala"
	_g_object_unref0 (self->priv->clone);
#line 36 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_clone_widget_parent_class)->finalize (obj);
#line 1712 "widgets.c"
}

static GType
synapse_gui_clone_widget_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiCloneWidgetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_clone_widget_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiCloneWidget), 0, (GInstanceInitFunc) synapse_gui_clone_widget_instance_init, NULL };
	GType synapse_gui_clone_widget_type_id;
	synapse_gui_clone_widget_type_id = g_type_register_static (gtk_widget_get_type (), "SynapseGuiCloneWidget", &g_define_type_info, 0);
	SynapseGuiCloneWidget_private_offset = g_type_add_instance_private (synapse_gui_clone_widget_type_id, sizeof (SynapseGuiCloneWidgetPrivate));
	return synapse_gui_clone_widget_type_id;
}

GType
synapse_gui_clone_widget_get_type (void)
{
	static volatile gsize synapse_gui_clone_widget_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_clone_widget_type_id__once)) {
		GType synapse_gui_clone_widget_type_id;
		synapse_gui_clone_widget_type_id = synapse_gui_clone_widget_get_type_once ();
		g_once_init_leave (&synapse_gui_clone_widget_type_id__once, synapse_gui_clone_widget_type_id);
	}
	return synapse_gui_clone_widget_type_id__once;
}

static inline gpointer
synapse_gui_smart_label_get_instance_private (SynapseGuiSmartLabel* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiSmartLabel_private_offset);
}

static GType
synapse_gui_smart_label_size_get_type_once (void)
{
	static const GEnumValue values[] = {{SYNAPSE_GUI_SMART_LABEL_SIZE_XX_SMALL, "SYNAPSE_GUI_SMART_LABEL_SIZE_XX_SMALL", "xx-small"}, {SYNAPSE_GUI_SMART_LABEL_SIZE_X_SMALL, "SYNAPSE_GUI_SMART_LABEL_SIZE_X_SMALL", "x-small"}, {SYNAPSE_GUI_SMART_LABEL_SIZE_SMALL, "SYNAPSE_GUI_SMART_LABEL_SIZE_SMALL", "small"}, {SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM, "SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM", "medium"}, {SYNAPSE_GUI_SMART_LABEL_SIZE_LARGE, "SYNAPSE_GUI_SMART_LABEL_SIZE_LARGE", "large"}, {SYNAPSE_GUI_SMART_LABEL_SIZE_X_LARGE, "SYNAPSE_GUI_SMART_LABEL_SIZE_X_LARGE", "x-large"}, {SYNAPSE_GUI_SMART_LABEL_SIZE_XX_LARGE, "SYNAPSE_GUI_SMART_LABEL_SIZE_XX_LARGE", "xx-large"}, {0, NULL, NULL}};
	GType synapse_gui_smart_label_size_type_id;
	synapse_gui_smart_label_size_type_id = g_enum_register_static ("SynapseGuiSmartLabelSize", values);
	return synapse_gui_smart_label_size_type_id;
}

GType
synapse_gui_smart_label_size_get_type (void)
{
	static volatile gsize synapse_gui_smart_label_size_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_smart_label_size_type_id__once)) {
		GType synapse_gui_smart_label_size_type_id;
		synapse_gui_smart_label_size_type_id = synapse_gui_smart_label_size_get_type_once ();
		g_once_init_leave (&synapse_gui_smart_label_size_type_id__once, synapse_gui_smart_label_size_type_id);
	}
	return synapse_gui_smart_label_size_type_id__once;
}

SynapseGuiSmartLabelSize
synapse_gui_smart_label_string_to_size (const gchar* sizename)
{
	SynapseGuiSmartLabelSize s = 0;
	SynapseGuiSmartLabelSize result;
#line 66 "widgets.vala"
	g_return_val_if_fail (sizename != NULL, 0);
#line 68 "widgets.vala"
	s = SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM;
#line 1773 "widgets.c"
	{
		guint i = 0U;
#line 69 "widgets.vala"
		i = (guint) 0;
#line 1778 "widgets.c"
		{
			gboolean _tmp0_ = FALSE;
#line 69 "widgets.vala"
			_tmp0_ = TRUE;
#line 69 "widgets.vala"
			while (TRUE) {
#line 1785 "widgets.c"
				const gchar* _tmp2_;
#line 69 "widgets.vala"
				if (!_tmp0_) {
#line 1789 "widgets.c"
					guint _tmp1_;
#line 69 "widgets.vala"
					_tmp1_ = i;
#line 69 "widgets.vala"
					i = _tmp1_ + 1;
#line 1795 "widgets.c"
				}
#line 69 "widgets.vala"
				_tmp0_ = FALSE;
#line 69 "widgets.vala"
				if (!(i < ((guint) G_N_ELEMENTS (SYNAPSE_GUI_SMART_LABEL_size_to_string)))) {
#line 69 "widgets.vala"
					break;
#line 1803 "widgets.c"
				}
#line 71 "widgets.vala"
				_tmp2_ = SYNAPSE_GUI_SMART_LABEL_size_to_string[i];
#line 71 "widgets.vala"
				if (g_strcmp0 (_tmp2_, sizename) == 0) {
#line 71 "widgets.vala"
					result = (SynapseGuiSmartLabelSize) i;
#line 71 "widgets.vala"
					return result;
#line 1813 "widgets.c"
				}
			}
		}
	}
#line 73 "widgets.vala"
	result = s;
#line 73 "widgets.vala"
	return result;
#line 1822 "widgets.c"
}

static void
synapse_gui_smart_label_sizes_changed (SynapseGuiSmartLabel* self)
{
	SynapseGuiSmartLabelSize _tmp0_;
	SynapseGuiSmartLabelSize _tmp1_;
	SynapseGuiSmartLabelSize _tmp2_;
#line 138 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 140 "widgets.vala"
	_tmp0_ = self->priv->_min_size;
#line 140 "widgets.vala"
	_tmp1_ = self->priv->_size;
#line 140 "widgets.vala"
	if (_tmp0_ > _tmp1_) {
#line 140 "widgets.vala"
		self->priv->_min_size = self->priv->_size;
#line 1841 "widgets.c"
	}
#line 141 "widgets.vala"
	_tmp2_ = self->priv->_size;
#line 141 "widgets.vala"
	self->priv->real_size = _tmp2_;
#line 142 "widgets.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 1849 "widgets.c"
}

void
synapse_gui_smart_label_set_animation_enabled (SynapseGuiSmartLabel* self,
                                               gboolean b)
{
#line 145 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 147 "widgets.vala"
	self->priv->animate = b;
#line 149 "widgets.vala"
	if (b) {
#line 151 "widgets.vala"
		self->priv->ellipsize = PANGO_ELLIPSIZE_NONE;
#line 152 "widgets.vala"
		synapse_gui_smart_label_sizes_changed (self);
#line 1866 "widgets.c"
	} else {
#line 156 "widgets.vala"
		if (self->priv->tid != ((guint) 0)) {
#line 156 "widgets.vala"
			synapse_gui_smart_label_stop_animation (self);
#line 1872 "widgets.c"
		}
#line 157 "widgets.vala"
		synapse_gui_smart_label_sizes_changed (self);
#line 1876 "widgets.c"
	}
}

void
synapse_gui_smart_label_set_text (SynapseGuiSmartLabel* self,
                                  const gchar* s)
{
	gchar* m = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
#line 161 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 161 "widgets.vala"
	g_return_if_fail (s != NULL);
#line 163 "widgets.vala"
	_tmp0_ = g_markup_escape_text (s, (gssize) -1);
#line 163 "widgets.vala"
	m = _tmp0_;
#line 164 "widgets.vala"
	_tmp1_ = m;
#line 164 "widgets.vala"
	_tmp2_ = self->priv->text;
#line 164 "widgets.vala"
	if (g_strcmp0 (_tmp1_, _tmp2_) == 0) {
#line 164 "widgets.vala"
		_g_free0 (m);
#line 164 "widgets.vala"
		return;
#line 1908 "widgets.c"
	}
#line 165 "widgets.vala"
	_tmp3_ = m;
#line 165 "widgets.vala"
	_tmp4_ = g_strdup (_tmp3_);
#line 165 "widgets.vala"
	_g_free0 (self->priv->text);
#line 165 "widgets.vala"
	self->priv->text = _tmp4_;
#line 166 "widgets.vala"
	synapse_gui_smart_label_text_updated (self);
#line 161 "widgets.vala"
	_g_free0 (m);
#line 1922 "widgets.c"
}

void
synapse_gui_smart_label_set_markup (SynapseGuiSmartLabel* self,
                                    const gchar* m)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 169 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 169 "widgets.vala"
	g_return_if_fail (m != NULL);
#line 171 "widgets.vala"
	_tmp0_ = self->priv->text;
#line 171 "widgets.vala"
	if (g_strcmp0 (m, _tmp0_) == 0) {
#line 171 "widgets.vala"
		return;
#line 1941 "widgets.c"
	}
#line 172 "widgets.vala"
	_tmp1_ = g_strdup (m);
#line 172 "widgets.vala"
	_g_free0 (self->priv->text);
#line 172 "widgets.vala"
	self->priv->text = _tmp1_;
#line 173 "widgets.vala"
	synapse_gui_smart_label_text_updated (self);
#line 1951 "widgets.c"
}

static void
synapse_gui_smart_label_stop_animation (SynapseGuiSmartLabel* self)
{
#line 176 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 178 "widgets.vala"
	g_source_remove (self->priv->tid);
#line 179 "widgets.vala"
	self->priv->tid = (guint) 0;
#line 180 "widgets.vala"
	self->priv->offset = 0;
#line 1965 "widgets.c"
}

static gboolean
__lambda12_ (SynapseGuiSmartLabel* self)
{
	gboolean result;
#line 189 "widgets.vala"
	self->priv->offset = (self->priv->offset - 1) % self->priv->_anim_width;
#line 190 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 191 "widgets.vala"
	result = TRUE;
#line 191 "widgets.vala"
	return result;
#line 1980 "widgets.c"
}

static gboolean
___lambda12__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda12_ ((SynapseGuiSmartLabel*) self);
#line 188 "widgets.vala"
	return result;
#line 1990 "widgets.c"
}

static void
synapse_gui_smart_label_start_animation (SynapseGuiSmartLabel* self)
{
#line 184 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 186 "widgets.vala"
	if (self->priv->tid != ((guint) 0)) {
#line 186 "widgets.vala"
		return;
#line 2002 "widgets.c"
	}
#line 188 "widgets.vala"
	self->priv->tid = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 40, ___lambda12__gsource_func, g_object_ref (self), g_object_unref);
#line 2006 "widgets.c"
}

void
synapse_gui_smart_label_set_ellipsize (SynapseGuiSmartLabel* self,
                                       PangoEllipsizeMode mode)
{
#line 195 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 197 "widgets.vala"
	if (self->priv->animate) {
#line 197 "widgets.vala"
		self->priv->ellipsize = PANGO_ELLIPSIZE_NONE;
#line 2019 "widgets.c"
	} else {
#line 198 "widgets.vala"
		self->priv->ellipsize = mode;
#line 2023 "widgets.c"
	}
}

static void
synapse_gui_smart_label_text_updated (SynapseGuiSmartLabel* self)
{
#line 201 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 203 "widgets.vala"
	self->priv->real_size = self->priv->_size;
#line 204 "widgets.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 205 "widgets.vala"
	if (self->priv->tid != ((guint) 0)) {
#line 205 "widgets.vala"
		synapse_gui_smart_label_stop_animation (self);
#line 2040 "widgets.c"
	}
}

static gpointer
_pango_attr_list_ref0 (gpointer self)
{
#line 224 "widgets.vala"
	return self ? pango_attr_list_ref (self) : NULL;
#line 2049 "widgets.c"
}

static gboolean
____lambda13_ (SynapseGuiSmartLabel* self)
{
	gboolean result;
#line 249 "widgets.vala"
	self->priv->tid = (guint) 0;
#line 250 "widgets.vala"
	synapse_gui_smart_label_start_animation (self);
#line 251 "widgets.vala"
	result = FALSE;
#line 251 "widgets.vala"
	return result;
#line 2064 "widgets.c"
}

static gboolean
_____lambda13__gsource_func (gpointer self)
{
	gboolean result;
	result = ____lambda13_ ((SynapseGuiSmartLabel*) self);
#line 248 "widgets.vala"
	return result;
#line 2074 "widgets.c"
}

static void
synapse_gui_smart_label_real_size_allocate (GtkWidget* base,
                                            GtkAllocation* allocation)
{
	SynapseGuiSmartLabel * self;
	GtkAllocation _tmp0_;
	gboolean _tmp1_ = FALSE;
	GtkAllocation _tmp2_;
	GtkRequisition _tmp3_;
	GtkRequisition req = {0};
	PangoAttrList* attrs = NULL;
	PangoLayout* _tmp5_;
	PangoAttrList* _tmp6_;
	PangoAttrList* _tmp7_;
	PangoAttrIterator* iter = NULL;
	PangoAttrList* _tmp8_;
	PangoAttrIterator* _tmp9_;
	PangoAttribute* attr = NULL;
	PangoAttrIterator* _tmp10_;
	PangoAttribute* _tmp11_;
	PangoAttrFloat* a = NULL;
	PangoAttribute* _tmp12_;
	gboolean needs_animation = FALSE;
	gboolean _tmp19_ = FALSE;
#line 208 "widgets.vala"
	self = (SynapseGuiSmartLabel*) base;
#line 208 "widgets.vala"
	g_return_if_fail (allocation != NULL);
#line 210 "widgets.vala"
	_tmp0_ = *allocation;
#line 210 "widgets.vala"
	GTK_WIDGET_CLASS (synapse_gui_smart_label_parent_class)->size_allocate ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_misc_get_type (), GtkMisc), &_tmp0_);
#line 215 "widgets.vala"
	_tmp2_ = *allocation;
#line 215 "widgets.vala"
	_tmp3_ = self->priv->last_req;
#line 215 "widgets.vala"
	if (_tmp2_.width >= _tmp3_.width) {
#line 215 "widgets.vala"
		_tmp1_ = TRUE;
#line 2117 "widgets.c"
	} else {
		gboolean _tmp4_ = FALSE;
#line 215 "widgets.vala"
		if (!self->priv->animate) {
#line 215 "widgets.vala"
			_tmp4_ = self->priv->real_size == self->priv->_min_size;
#line 2124 "widgets.c"
		} else {
#line 215 "widgets.vala"
			_tmp4_ = FALSE;
#line 2128 "widgets.c"
		}
#line 215 "widgets.vala"
		_tmp1_ = _tmp4_;
#line 2132 "widgets.c"
	}
#line 215 "widgets.vala"
	if (_tmp1_) {
#line 218 "widgets.vala"
		if (self->priv->tid != ((guint) 0)) {
#line 218 "widgets.vala"
			synapse_gui_smart_label_stop_animation (self);
#line 2140 "widgets.c"
		}
#line 219 "widgets.vala"
		return;
#line 2144 "widgets.c"
	}
#line 224 "widgets.vala"
	_tmp5_ = self->priv->layout;
#line 224 "widgets.vala"
	_tmp6_ = pango_layout_get_attributes (_tmp5_);
#line 224 "widgets.vala"
	_tmp7_ = _pango_attr_list_ref0 (_tmp6_);
#line 224 "widgets.vala"
	attrs = _tmp7_;
#line 225 "widgets.vala"
	_tmp8_ = attrs;
#line 225 "widgets.vala"
	_tmp9_ = pango_attr_list_get_iterator (_tmp8_);
#line 225 "widgets.vala"
	iter = _tmp9_;
#line 226 "widgets.vala"
	_tmp10_ = iter;
#line 226 "widgets.vala"
	_tmp11_ = pango_attr_iterator_get (_tmp10_, PANGO_ATTR_SCALE);
#line 226 "widgets.vala"
	attr = _tmp11_;
#line 227 "widgets.vala"
	_tmp12_ = attr;
#line 227 "widgets.vala"
	a = (PangoAttrFloat*) _tmp12_;
#line 229 "widgets.vala"
	needs_animation = TRUE;
#line 230 "widgets.vala"
	while (TRUE) {
#line 2174 "widgets.c"
		PangoAttrFloat* _tmp13_;
		gdouble _tmp14_;
		PangoLayout* _tmp15_;
		GtkRequisition _tmp16_ = {0};
		GtkAllocation _tmp17_;
		GtkRequisition _tmp18_;
#line 230 "widgets.vala"
		if (!(self->priv->real_size > self->priv->_min_size)) {
#line 230 "widgets.vala"
			break;
#line 2185 "widgets.c"
		}
#line 232 "widgets.vala"
		self->priv->real_size = self->priv->real_size - 1;
#line 233 "widgets.vala"
		_tmp13_ = a;
#line 233 "widgets.vala"
		_tmp14_ = SYNAPSE_GUI_SMART_LABEL_size_to_scale[self->priv->real_size];
#line 233 "widgets.vala"
		_tmp13_->value = _tmp14_;
#line 234 "widgets.vala"
		_tmp15_ = self->priv->layout;
#line 234 "widgets.vala"
		pango_layout_context_changed (_tmp15_);
#line 235 "widgets.vala"
		synapse_gui_smart_label_requisition_for_size (self, &_tmp16_, NULL, self->priv->real_size, TRUE);
#line 235 "widgets.vala"
		req = _tmp16_;
#line 237 "widgets.vala"
		_tmp17_ = *allocation;
#line 237 "widgets.vala"
		_tmp18_ = req;
#line 237 "widgets.vala"
		if (_tmp17_.width >= _tmp18_.width) {
#line 239 "widgets.vala"
			needs_animation = FALSE;
#line 240 "widgets.vala"
			break;
#line 2213 "widgets.c"
		}
	}
#line 244 "widgets.vala"
	if (self->priv->animate) {
#line 244 "widgets.vala"
		_tmp19_ = needs_animation;
#line 2220 "widgets.c"
	} else {
#line 244 "widgets.vala"
		_tmp19_ = FALSE;
#line 2224 "widgets.c"
	}
#line 244 "widgets.vala"
	if (_tmp19_) {
#line 246 "widgets.vala"
		if (self->priv->tid == ((guint) 0)) {
#line 248 "widgets.vala"
			self->priv->tid = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) SYNAPSE_GUI_SMART_LABEL_INITIAL_TIMEOUT, _____lambda13__gsource_func, g_object_ref (self), g_object_unref);
#line 2232 "widgets.c"
		}
	} else {
#line 257 "widgets.vala"
		if (self->priv->tid != ((guint) 0)) {
#line 257 "widgets.vala"
			synapse_gui_smart_label_stop_animation (self);
#line 2239 "widgets.c"
		}
	}
#line 208 "widgets.vala"
	_pango_attr_iterator_destroy0 (iter);
#line 208 "widgets.vala"
	_pango_attr_list_unref0 (attrs);
#line 2246 "widgets.c"
}

static gboolean
synapse_gui_smart_label_real_draw (GtkWidget* base,
                                   cairo_t* ctx)
{
	SynapseGuiSmartLabel * self;
	GtkAllocation allocation = {0};
	GtkAllocation _tmp0_ = {0};
	gint w = 0;
	GtkAllocation _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gint h = 0;
	GtkAllocation _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	gboolean rtl = FALSE;
	gint x = 0;
	gint y = 0;
	gint width = 0;
	gint height = 0;
	gboolean _tmp11_ = FALSE;
	PangoLayout* _tmp14_;
	gfloat _tmp15_;
	gfloat _tmp16_;
	gfloat _tmp17_;
	gfloat _tmp18_;
	gint _tmp19_ = 0;
	gint _tmp20_ = 0;
	gint _tmp21_ = 0;
	gint _tmp22_ = 0;
	SynapseGuiUtilsColorHelper* _tmp23_;
	PangoLayout* _tmp24_;
	gint rotate = 0;
	gboolean _tmp25_ = FALSE;
	gboolean _tmp26_ = FALSE;
	gboolean result;
#line 261 "widgets.vala"
	self = (SynapseGuiSmartLabel*) base;
#line 261 "widgets.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 264 "widgets.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp0_);
#line 264 "widgets.vala"
	allocation = _tmp0_;
#line 266 "widgets.vala"
	_tmp1_ = allocation;
#line 266 "widgets.vala"
	g_object_get ((GtkMisc*) self, "xpad", &_tmp2_, NULL);
#line 266 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 266 "widgets.vala"
	w = _tmp1_.width - (_tmp3_ * 2);
#line 267 "widgets.vala"
	_tmp4_ = allocation;
#line 267 "widgets.vala"
	g_object_get ((GtkMisc*) self, "ypad", &_tmp5_, NULL);
#line 267 "widgets.vala"
	_tmp6_ = _tmp5_;
#line 267 "widgets.vala"
	h = _tmp4_.height - (_tmp6_ * 2);
#line 268 "widgets.vala"
	g_object_get ((GtkMisc*) self, "xpad", &_tmp7_, NULL);
#line 268 "widgets.vala"
	_tmp8_ = _tmp7_;
#line 268 "widgets.vala"
	g_object_get ((GtkMisc*) self, "ypad", &_tmp9_, NULL);
#line 268 "widgets.vala"
	_tmp10_ = _tmp9_;
#line 268 "widgets.vala"
	cairo_translate (ctx, (gdouble) _tmp8_, (gdouble) _tmp10_);
#line 269 "widgets.vala"
	cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) w, (gdouble) h);
#line 270 "widgets.vala"
	cairo_clip (ctx);
#line 272 "widgets.vala"
	rtl = gtk_widget_get_direction ((GtkWidget*) self) == GTK_TEXT_DIR_RTL;
#line 276 "widgets.vala"
	if (self->priv->animate) {
#line 276 "widgets.vala"
		_tmp11_ = self->priv->tid != ((guint) 0);
#line 2333 "widgets.c"
	} else {
#line 276 "widgets.vala"
		_tmp11_ = FALSE;
#line 2337 "widgets.c"
	}
#line 276 "widgets.vala"
	if (_tmp11_) {
#line 278 "widgets.vala"
		cairo_translate (ctx, (gdouble) self->priv->offset, (gdouble) 0);
#line 2343 "widgets.c"
	} else {
#line 282 "widgets.vala"
		if (self->priv->ellipsize != PANGO_ELLIPSIZE_NONE) {
#line 2347 "widgets.c"
			PangoLayout* _tmp12_;
			PangoLayout* _tmp13_;
#line 284 "widgets.vala"
			_tmp12_ = self->priv->layout;
#line 284 "widgets.vala"
			pango_layout_set_width (_tmp12_, w * PANGO_SCALE);
#line 285 "widgets.vala"
			_tmp13_ = self->priv->layout;
#line 285 "widgets.vala"
			pango_layout_set_ellipsize (_tmp13_, self->priv->ellipsize);
#line 2358 "widgets.c"
		}
	}
#line 289 "widgets.vala"
	_tmp14_ = self->priv->layout;
#line 289 "widgets.vala"
	g_object_get ((GtkMisc*) self, "xalign", &_tmp15_, NULL);
#line 289 "widgets.vala"
	_tmp16_ = _tmp15_;
#line 289 "widgets.vala"
	g_object_get ((GtkMisc*) self, "yalign", &_tmp17_, NULL);
#line 289 "widgets.vala"
	_tmp18_ = _tmp17_;
#line 289 "widgets.vala"
	synapse_gui_utils_get_draw_position (&_tmp19_, &_tmp20_, &_tmp21_, &_tmp22_, _tmp14_, rtl, w, h, _tmp16_, _tmp18_);
#line 289 "widgets.vala"
	x = _tmp19_;
#line 289 "widgets.vala"
	y = _tmp20_;
#line 289 "widgets.vala"
	width = _tmp21_;
#line 289 "widgets.vala"
	height = _tmp22_;
#line 291 "widgets.vala"
	cairo_translate (ctx, (gdouble) x, (gdouble) y);
#line 293 "widgets.vala"
	cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
#line 294 "widgets.vala"
	_tmp23_ = self->priv->ch;
#line 294 "widgets.vala"
	synapse_gui_utils_color_helper_set_source_rgba (_tmp23_, ctx, 1.0, SYNAPSE_GUI_STYLE_TYPE_FG, gtk_widget_get_state_flags ((GtkWidget*) self), SYNAPSE_GUI_MOD_NORMAL);
#line 296 "widgets.vala"
	_tmp24_ = self->priv->layout;
#line 296 "widgets.vala"
	pango_cairo_show_layout (ctx, _tmp24_);
#line 298 "widgets.vala"
	width += SYNAPSE_GUI_SMART_LABEL_SPACING;
#line 299 "widgets.vala"
	self->priv->_anim_width = width;
#line 300 "widgets.vala"
	rotate = self->priv->offset + width;
#line 301 "widgets.vala"
	if (rtl) {
#line 301 "widgets.vala"
		rotate = self->priv->offset;
#line 2403 "widgets.c"
	}
#line 302 "widgets.vala"
	if (self->priv->animate) {
#line 302 "widgets.vala"
		_tmp26_ = self->priv->tid != ((guint) 0);
#line 2409 "widgets.c"
	} else {
#line 302 "widgets.vala"
		_tmp26_ = FALSE;
#line 2413 "widgets.c"
	}
#line 302 "widgets.vala"
	if (_tmp26_) {
#line 302 "widgets.vala"
		_tmp25_ = rotate < w;
#line 2419 "widgets.c"
	} else {
#line 302 "widgets.vala"
		_tmp25_ = FALSE;
#line 2423 "widgets.c"
	}
#line 302 "widgets.vala"
	if (_tmp25_) {
#line 2427 "widgets.c"
		PangoLayout* _tmp27_;
#line 304 "widgets.vala"
		cairo_translate (ctx, (gdouble) width, (gdouble) 0);
#line 305 "widgets.vala"
		_tmp27_ = self->priv->layout;
#line 305 "widgets.vala"
		pango_cairo_show_layout (ctx, _tmp27_);
#line 2435 "widgets.c"
	}
#line 308 "widgets.vala"
	result = TRUE;
#line 308 "widgets.vala"
	return result;
#line 2441 "widgets.c"
}

static void
_vala_PangoLanguage_free (PangoLanguage* self)
{
#line 332 "widgets.vala"
	g_boxed_free (pango_language_get_type (), self);
#line 2449 "widgets.c"
}

static void
_vala_PangoFontDescription_free (PangoFontDescription* self)
{
#line 311 "widgets.vala"
	g_boxed_free (pango_font_description_get_type (), self);
#line 2457 "widgets.c"
}

void
synapse_gui_smart_label_requisition_for_size (SynapseGuiSmartLabel* self,
                                              GtkRequisition* req,
                                              gint* char_width,
                                              SynapseGuiSmartLabelSize s,
                                              gboolean return_only_width)
{
	GtkRequisition _vala_req = {0};
	gint _vala_char_width = 0;
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GtkRequisition _tmp4_ = {0};
	PangoRectangle logical_rect = {0};
	PangoLayout* _tmp5_;
	PangoLayout* _tmp6_;
	PangoLayout* _tmp7_;
	PangoRectangle _tmp8_ = {0};
	PangoRectangle _tmp9_;
	PangoContext* ctx = NULL;
	PangoLayout* _tmp10_;
	PangoContext* _tmp11_;
	PangoContext* _tmp12_;
	PangoFontDescription* fdesc = NULL;
	PangoFontDescription* _tmp13_;
	PangoFontDescription* _tmp14_;
	GtkStyle* _tmp15_;
	GtkStyle* _tmp16_;
	PangoFontDescription* _tmp17_;
	PangoFontDescription* _tmp18_;
	gdouble _tmp19_;
	PangoFontDescription* _tmp20_;
	PangoFontMetrics* metrics = NULL;
	PangoContext* _tmp21_;
	PangoFontDescription* _tmp22_;
	PangoContext* _tmp23_;
	PangoLanguage* _tmp24_;
	PangoLanguage* _tmp25_;
	PangoFontMetrics* _tmp26_;
	PangoFontMetrics* _tmp27_;
	PangoFontMetrics* _tmp28_;
	PangoFontMetrics* _tmp29_;
	PangoFontMetrics* _tmp30_;
	PangoFontMetrics* _tmp31_;
#line 311 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 313 "widgets.vala"
	g_object_get ((GtkMisc*) self, "xpad", &_tmp0_, NULL);
#line 313 "widgets.vala"
	_tmp1_ = _tmp0_;
#line 313 "widgets.vala"
	g_object_get ((GtkMisc*) self, "ypad", &_tmp2_, NULL);
#line 313 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 313 "widgets.vala"
	_tmp4_.width = _tmp1_ * 2;
#line 313 "widgets.vala"
	_tmp4_.height = _tmp3_ * 2;
#line 313 "widgets.vala"
	_vala_req = _tmp4_;
#line 316 "widgets.vala"
	_tmp5_ = self->priv->layout;
#line 316 "widgets.vala"
	pango_layout_set_width (_tmp5_, -1);
#line 317 "widgets.vala"
	_tmp6_ = self->priv->layout;
#line 317 "widgets.vala"
	pango_layout_set_ellipsize (_tmp6_, PANGO_ELLIPSIZE_NONE);
#line 318 "widgets.vala"
	_tmp7_ = self->priv->layout;
#line 318 "widgets.vala"
	pango_layout_get_extents (_tmp7_, NULL, &_tmp8_);
#line 318 "widgets.vala"
	logical_rect = _tmp8_;
#line 320 "widgets.vala"
	_tmp9_ = logical_rect;
#line 320 "widgets.vala"
	_vala_req.width = _vala_req.width + (_tmp9_.width / PANGO_SCALE);
#line 321 "widgets.vala"
	if (return_only_width) {
#line 323 "widgets.vala"
		_vala_char_width = 0;
#line 324 "widgets.vala"
		if (req) {
#line 324 "widgets.vala"
			*req = _vala_req;
#line 2547 "widgets.c"
		}
#line 324 "widgets.vala"
		if (char_width) {
#line 324 "widgets.vala"
			*char_width = _vala_char_width;
#line 2553 "widgets.c"
		}
#line 324 "widgets.vala"
		return;
#line 2557 "widgets.c"
	}
#line 327 "widgets.vala"
	_tmp10_ = self->priv->layout;
#line 327 "widgets.vala"
	_tmp11_ = pango_layout_get_context (_tmp10_);
#line 327 "widgets.vala"
	_tmp12_ = _g_object_ref0 (_tmp11_);
#line 327 "widgets.vala"
	ctx = _tmp12_;
#line 328 "widgets.vala"
	_tmp13_ = pango_font_description_new ();
#line 328 "widgets.vala"
	fdesc = _tmp13_;
#line 329 "widgets.vala"
	_tmp14_ = fdesc;
#line 329 "widgets.vala"
	_tmp15_ = gtk_widget_get_style ((GtkWidget*) self);
#line 329 "widgets.vala"
	_tmp16_ = _tmp15_;
#line 329 "widgets.vala"
	_tmp17_ = _tmp16_->font_desc;
#line 329 "widgets.vala"
	pango_font_description_merge_static (_tmp14_, _tmp17_, TRUE);
#line 331 "widgets.vala"
	_tmp18_ = fdesc;
#line 331 "widgets.vala"
	_tmp19_ = SYNAPSE_GUI_SMART_LABEL_size_to_scale[s];
#line 331 "widgets.vala"
	_tmp20_ = fdesc;
#line 331 "widgets.vala"
	pango_font_description_set_size (_tmp18_, (gint) (_tmp19_ * ((gdouble) pango_font_description_get_size (_tmp20_))));
#line 332 "widgets.vala"
	_tmp21_ = ctx;
#line 332 "widgets.vala"
	_tmp22_ = fdesc;
#line 332 "widgets.vala"
	_tmp23_ = ctx;
#line 332 "widgets.vala"
	_tmp24_ = pango_context_get_language (_tmp23_);
#line 332 "widgets.vala"
	_tmp25_ = _tmp24_;
#line 332 "widgets.vala"
	_tmp26_ = pango_context_get_metrics (_tmp21_, _tmp22_, _tmp25_);
#line 332 "widgets.vala"
	_tmp27_ = _tmp26_;
#line 332 "widgets.vala"
	__vala_PangoLanguage_free0 (_tmp25_);
#line 332 "widgets.vala"
	metrics = _tmp27_;
#line 334 "widgets.vala"
	_tmp28_ = metrics;
#line 334 "widgets.vala"
	_tmp29_ = metrics;
#line 334 "widgets.vala"
	_vala_req.height = _vala_req.height + ((pango_font_metrics_get_ascent (_tmp28_) + pango_font_metrics_get_descent (_tmp29_)) / PANGO_SCALE);
#line 335 "widgets.vala"
	_tmp30_ = metrics;
#line 335 "widgets.vala"
	_tmp31_ = metrics;
#line 335 "widgets.vala"
	_vala_char_width = MAX (pango_font_metrics_get_approximate_char_width (_tmp30_), pango_font_metrics_get_approximate_digit_width (_tmp31_)) / PANGO_SCALE;
#line 311 "widgets.vala"
	_pango_font_metrics_unref0 (metrics);
#line 311 "widgets.vala"
	__vala_PangoFontDescription_free0 (fdesc);
#line 311 "widgets.vala"
	_g_object_unref0 (ctx);
#line 311 "widgets.vala"
	if (req) {
#line 311 "widgets.vala"
		*req = _vala_req;
#line 2629 "widgets.c"
	}
#line 311 "widgets.vala"
	if (char_width) {
#line 311 "widgets.vala"
		*char_width = _vala_char_width;
#line 2635 "widgets.c"
	}
}

void
synapse_gui_smart_label_size_request (SynapseGuiSmartLabel* self,
                                      GtkRequisition* req)
{
	GtkRequisition _vala_req = {0};
	PangoLayout* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint char_width = 0;
	GtkRequisition _tmp5_ = {0};
	gint _tmp6_ = 0;
	GtkRequisition _tmp7_;
	GtkRequisition _tmp8_;
	gboolean _tmp9_ = FALSE;
	gboolean _tmp10_;
#line 338 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 340 "widgets.vala"
	_tmp0_ = self->priv->layout;
#line 340 "widgets.vala"
	_tmp1_ = SYNAPSE_GUI_SMART_LABEL_size_to_string[self->priv->_size];
#line 340 "widgets.vala"
	_tmp2_ = self->priv->text;
#line 340 "widgets.vala"
	_tmp3_ = g_strdup_printf ("<span size=\"%s\">%s</span>", _tmp1_, _tmp2_);
#line 340 "widgets.vala"
	_tmp4_ = _tmp3_;
#line 340 "widgets.vala"
	pango_layout_set_markup (_tmp0_, _tmp4_, -1);
#line 340 "widgets.vala"
	_g_free0 (_tmp4_);
#line 342 "widgets.vala"
	synapse_gui_smart_label_requisition_for_size (self, &_tmp5_, &_tmp6_, self->priv->_size, FALSE);
#line 342 "widgets.vala"
	_vala_req = _tmp5_;
#line 342 "widgets.vala"
	char_width = _tmp6_;
#line 343 "widgets.vala"
	_tmp7_ = _vala_req;
#line 343 "widgets.vala"
	self->priv->last_req.width = _tmp7_.width;
#line 344 "widgets.vala"
	_tmp8_ = _vala_req;
#line 344 "widgets.vala"
	self->priv->last_req.height = _tmp8_.height;
#line 345 "widgets.vala"
	_tmp10_ = self->priv->_natural_requisition;
#line 345 "widgets.vala"
	if (!_tmp10_) {
#line 2690 "widgets.c"
		gboolean _tmp11_ = FALSE;
#line 345 "widgets.vala"
		if (self->priv->ellipsize != PANGO_ELLIPSIZE_NONE) {
#line 345 "widgets.vala"
			_tmp11_ = TRUE;
#line 2696 "widgets.c"
		} else {
#line 345 "widgets.vala"
			_tmp11_ = self->priv->animate;
#line 2700 "widgets.c"
		}
#line 345 "widgets.vala"
		_tmp9_ = _tmp11_;
#line 2704 "widgets.c"
	} else {
#line 345 "widgets.vala"
		_tmp9_ = FALSE;
#line 2708 "widgets.c"
	}
#line 345 "widgets.vala"
	if (_tmp9_) {
#line 346 "widgets.vala"
		_vala_req.width = char_width * 3;
#line 2714 "widgets.c"
	}
#line 338 "widgets.vala"
	if (req) {
#line 338 "widgets.vala"
		*req = _vala_req;
#line 2720 "widgets.c"
	}
}

static void
synapse_gui_smart_label_real_get_preferred_width (GtkWidget* base,
                                                  gint* min_width,
                                                  gint* nat_width)
{
	SynapseGuiSmartLabel * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
	GtkRequisition req = {0};
	GtkRequisition _tmp0_ = {0};
	GtkRequisition _tmp1_;
#line 349 "widgets.vala"
	self = (SynapseGuiSmartLabel*) base;
#line 352 "widgets.vala"
	synapse_gui_smart_label_size_request (self, &_tmp0_);
#line 352 "widgets.vala"
	req = _tmp0_;
#line 353 "widgets.vala"
	_tmp1_ = req;
#line 353 "widgets.vala"
	_vala_nat_width = _tmp1_.width;
#line 353 "widgets.vala"
	_vala_min_width = _vala_nat_width;
#line 349 "widgets.vala"
	if (min_width) {
#line 349 "widgets.vala"
		*min_width = _vala_min_width;
#line 2751 "widgets.c"
	}
#line 349 "widgets.vala"
	if (nat_width) {
#line 349 "widgets.vala"
		*nat_width = _vala_nat_width;
#line 2757 "widgets.c"
	}
}

static void
synapse_gui_smart_label_real_get_preferred_height (GtkWidget* base,
                                                   gint* min_height,
                                                   gint* nat_height)
{
	SynapseGuiSmartLabel * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
	GtkRequisition req = {0};
	GtkRequisition _tmp0_ = {0};
	GtkRequisition _tmp1_;
#line 356 "widgets.vala"
	self = (SynapseGuiSmartLabel*) base;
#line 359 "widgets.vala"
	synapse_gui_smart_label_size_request (self, &_tmp0_);
#line 359 "widgets.vala"
	req = _tmp0_;
#line 360 "widgets.vala"
	_tmp1_ = req;
#line 360 "widgets.vala"
	_vala_nat_height = _tmp1_.height;
#line 360 "widgets.vala"
	_vala_min_height = _vala_nat_height;
#line 356 "widgets.vala"
	if (min_height) {
#line 356 "widgets.vala"
		*min_height = _vala_min_height;
#line 2788 "widgets.c"
	}
#line 356 "widgets.vala"
	if (nat_height) {
#line 356 "widgets.vala"
		*nat_height = _vala_nat_height;
#line 2794 "widgets.c"
	}
}

SynapseGuiSmartLabel*
synapse_gui_smart_label_construct (GType object_type)
{
	SynapseGuiSmartLabel * self = NULL;
#line 54 "widgets.vala"
	self = (SynapseGuiSmartLabel*) g_object_new (object_type, NULL);
#line 54 "widgets.vala"
	return self;
#line 2806 "widgets.c"
}

SynapseGuiSmartLabel*
synapse_gui_smart_label_new (void)
{
#line 54 "widgets.vala"
	return synapse_gui_smart_label_construct (SYNAPSE_GUI_TYPE_SMART_LABEL);
#line 2814 "widgets.c"
}

gboolean
synapse_gui_smart_label_get_natural_requisition (SynapseGuiSmartLabel* self)
{
	gboolean result;
#line 98 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 98 "widgets.vala"
	result = self->priv->_natural_requisition;
#line 98 "widgets.vala"
	return result;
#line 2827 "widgets.c"
}

void
synapse_gui_smart_label_set_natural_requisition (SynapseGuiSmartLabel* self,
                                                 gboolean value)
{
	gboolean old_value;
#line 98 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 98 "widgets.vala"
	old_value = synapse_gui_smart_label_get_natural_requisition (self);
#line 98 "widgets.vala"
	if (old_value != value) {
#line 98 "widgets.vala"
		self->priv->_natural_requisition = value;
#line 98 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_smart_label_properties[SYNAPSE_GUI_SMART_LABEL_NATURAL_REQUISITION_PROPERTY]);
#line 2845 "widgets.c"
	}
}

SynapseGuiSmartLabelSize
synapse_gui_smart_label_get_size (SynapseGuiSmartLabel* self)
{
	SynapseGuiSmartLabelSize result;
#line 102 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 102 "widgets.vala"
	result = self->priv->_size;
#line 102 "widgets.vala"
	return result;
#line 2859 "widgets.c"
}

void
synapse_gui_smart_label_set_size (SynapseGuiSmartLabel* self,
                                  SynapseGuiSmartLabelSize value)
{
	SynapseGuiSmartLabelSize old_value;
#line 102 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 102 "widgets.vala"
	old_value = synapse_gui_smart_label_get_size (self);
#line 102 "widgets.vala"
	if (old_value != value) {
#line 102 "widgets.vala"
		self->priv->_size = value;
#line 102 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_smart_label_properties[SYNAPSE_GUI_SMART_LABEL_SIZE_PROPERTY]);
#line 2877 "widgets.c"
	}
}

SynapseGuiSmartLabelSize
synapse_gui_smart_label_get_min_size (SynapseGuiSmartLabel* self)
{
	SynapseGuiSmartLabelSize result;
#line 106 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 106 "widgets.vala"
	result = self->priv->_min_size;
#line 106 "widgets.vala"
	return result;
#line 2891 "widgets.c"
}

void
synapse_gui_smart_label_set_min_size (SynapseGuiSmartLabel* self,
                                      SynapseGuiSmartLabelSize value)
{
	SynapseGuiSmartLabelSize old_value;
#line 106 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 106 "widgets.vala"
	old_value = synapse_gui_smart_label_get_min_size (self);
#line 106 "widgets.vala"
	if (old_value != value) {
#line 106 "widgets.vala"
		self->priv->_min_size = value;
#line 106 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_smart_label_properties[SYNAPSE_GUI_SMART_LABEL_MIN_SIZE_PROPERTY]);
#line 2909 "widgets.c"
	}
}

static void
_synapse_gui_smart_label_sizes_changed_g_object_notify (GObject* _sender,
                                                        GParamSpec* pspec,
                                                        gpointer self)
{
#line 129 "widgets.vala"
	synapse_gui_smart_label_sizes_changed ((SynapseGuiSmartLabel*) self);
#line 2920 "widgets.c"
}

static GObject *
synapse_gui_smart_label_constructor (GType type,
                                     guint n_construct_properties,
                                     GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseGuiSmartLabel * self;
	PangoLayout* _tmp0_;
	SynapseGuiUtilsColorHelper* _tmp1_;
	GtkRequisition _tmp2_ = {0};
#line 123 "widgets.vala"
	parent_class = G_OBJECT_CLASS (synapse_gui_smart_label_parent_class);
#line 123 "widgets.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 123 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_SMART_LABEL, SynapseGuiSmartLabel);
#line 125 "widgets.vala"
	_tmp0_ = gtk_widget_create_pango_layout ((GtkWidget*) self, "");
#line 125 "widgets.vala"
	_g_object_unref0 (self->priv->layout);
#line 125 "widgets.vala"
	self->priv->layout = _tmp0_;
#line 126 "widgets.vala"
	_tmp1_ = synapse_gui_utils_color_helper_get_default ();
#line 126 "widgets.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 126 "widgets.vala"
	self->priv->ch = _tmp1_;
#line 127 "widgets.vala"
	self->priv->last_req = _tmp2_;
#line 128 "widgets.vala"
	gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
#line 129 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::size", (GCallback) _synapse_gui_smart_label_sizes_changed_g_object_notify, self, 0);
#line 130 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::min-size", (GCallback) _synapse_gui_smart_label_sizes_changed_g_object_notify, self, 0);
#line 131 "widgets.vala"
	g_object_set ((GtkMisc*) self, "xalign", 0.0f, NULL);
#line 132 "widgets.vala"
	g_object_set ((GtkMisc*) self, "yalign", 1.0f, NULL);
#line 135 "widgets.vala"
	synapse_gui_smart_label_set_text (self, "");
#line 123 "widgets.vala"
	return obj;
#line 2968 "widgets.c"
}

static void
synapse_gui_smart_label_class_init (SynapseGuiSmartLabelClass * klass,
                                    gpointer klass_data)
{
#line 54 "widgets.vala"
	synapse_gui_smart_label_parent_class = g_type_class_peek_parent (klass);
#line 54 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiSmartLabel_private_offset);
#line 54 "widgets.vala"
	((GtkWidgetClass *) klass)->size_allocate = (void (*) (GtkWidget*, GtkAllocation*)) synapse_gui_smart_label_real_size_allocate;
#line 54 "widgets.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_smart_label_real_draw;
#line 54 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_smart_label_real_get_preferred_width;
#line 54 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_smart_label_real_get_preferred_height;
#line 54 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_smart_label_get_property;
#line 54 "widgets.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_smart_label_set_property;
#line 54 "widgets.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_gui_smart_label_constructor;
#line 54 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_smart_label_finalize;
#line 54 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SMART_LABEL_NATURAL_REQUISITION_PROPERTY, synapse_gui_smart_label_properties[SYNAPSE_GUI_SMART_LABEL_NATURAL_REQUISITION_PROPERTY] = g_param_spec_boolean ("natural-requisition", "natural-requisition", "natural-requisition", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 54 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SMART_LABEL_SIZE_PROPERTY, synapse_gui_smart_label_properties[SYNAPSE_GUI_SMART_LABEL_SIZE_PROPERTY] = g_param_spec_enum ("size", "size", "size", SYNAPSE_GUI_SMART_LABEL_TYPE_SIZE, SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 54 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SMART_LABEL_MIN_SIZE_PROPERTY, synapse_gui_smart_label_properties[SYNAPSE_GUI_SMART_LABEL_MIN_SIZE_PROPERTY] = g_param_spec_enum ("min-size", "min-size", "min-size", SYNAPSE_GUI_SMART_LABEL_TYPE_SIZE, SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 3001 "widgets.c"
}

static void
synapse_gui_smart_label_instance_init (SynapseGuiSmartLabel * self,
                                       gpointer klass)
{
	gchar* _tmp0_;
#line 54 "widgets.vala"
	self->priv = synapse_gui_smart_label_get_instance_private (self);
#line 97 "widgets.vala"
	self->priv->_natural_requisition = FALSE;
#line 101 "widgets.vala"
	self->priv->_size = SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM;
#line 105 "widgets.vala"
	self->priv->_min_size = SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM;
#line 109 "widgets.vala"
	_tmp0_ = g_strdup ("");
#line 109 "widgets.vala"
	self->priv->text = _tmp0_;
#line 111 "widgets.vala"
	self->priv->real_size = SYNAPSE_GUI_SMART_LABEL_SIZE_MEDIUM;
#line 115 "widgets.vala"
	self->priv->ellipsize = PANGO_ELLIPSIZE_NONE;
#line 117 "widgets.vala"
	self->priv->tid = (guint) 0;
#line 120 "widgets.vala"
	self->priv->offset = 0;
#line 121 "widgets.vala"
	self->priv->animate = FALSE;
#line 183 "widgets.vala"
	self->priv->_anim_width = 0;
#line 3033 "widgets.c"
}

static void
synapse_gui_smart_label_finalize (GObject * obj)
{
	SynapseGuiSmartLabel * self;
#line 54 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_SMART_LABEL, SynapseGuiSmartLabel);
#line 109 "widgets.vala"
	_g_free0 (self->priv->text);
#line 113 "widgets.vala"
	_g_object_unref0 (self->priv->layout);
#line 114 "widgets.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 54 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_smart_label_parent_class)->finalize (obj);
#line 3050 "widgets.c"
}

static GType
synapse_gui_smart_label_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiSmartLabelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_smart_label_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiSmartLabel), 0, (GInstanceInitFunc) synapse_gui_smart_label_instance_init, NULL };
	GType synapse_gui_smart_label_type_id;
	synapse_gui_smart_label_type_id = g_type_register_static (gtk_misc_get_type (), "SynapseGuiSmartLabel", &g_define_type_info, 0);
	SynapseGuiSmartLabel_private_offset = g_type_add_instance_private (synapse_gui_smart_label_type_id, sizeof (SynapseGuiSmartLabelPrivate));
	return synapse_gui_smart_label_type_id;
}

GType
synapse_gui_smart_label_get_type (void)
{
	static volatile gsize synapse_gui_smart_label_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_smart_label_type_id__once)) {
		GType synapse_gui_smart_label_type_id;
		synapse_gui_smart_label_type_id = synapse_gui_smart_label_get_type_once ();
		g_once_init_leave (&synapse_gui_smart_label_type_id__once, synapse_gui_smart_label_type_id);
	}
	return synapse_gui_smart_label_type_id__once;
}

static void
_vala_synapse_gui_smart_label_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	SynapseGuiSmartLabel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_SMART_LABEL, SynapseGuiSmartLabel);
#line 54 "widgets.vala"
	switch (property_id) {
#line 54 "widgets.vala"
		case SYNAPSE_GUI_SMART_LABEL_NATURAL_REQUISITION_PROPERTY:
#line 54 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_smart_label_get_natural_requisition (self));
#line 54 "widgets.vala"
		break;
#line 54 "widgets.vala"
		case SYNAPSE_GUI_SMART_LABEL_SIZE_PROPERTY:
#line 54 "widgets.vala"
		g_value_set_enum (value, synapse_gui_smart_label_get_size (self));
#line 54 "widgets.vala"
		break;
#line 54 "widgets.vala"
		case SYNAPSE_GUI_SMART_LABEL_MIN_SIZE_PROPERTY:
#line 54 "widgets.vala"
		g_value_set_enum (value, synapse_gui_smart_label_get_min_size (self));
#line 54 "widgets.vala"
		break;
#line 3103 "widgets.c"
		default:
#line 54 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 54 "widgets.vala"
		break;
#line 3109 "widgets.c"
	}
}

static void
_vala_synapse_gui_smart_label_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	SynapseGuiSmartLabel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_SMART_LABEL, SynapseGuiSmartLabel);
#line 54 "widgets.vala"
	switch (property_id) {
#line 54 "widgets.vala"
		case SYNAPSE_GUI_SMART_LABEL_NATURAL_REQUISITION_PROPERTY:
#line 54 "widgets.vala"
		synapse_gui_smart_label_set_natural_requisition (self, g_value_get_boolean (value));
#line 54 "widgets.vala"
		break;
#line 54 "widgets.vala"
		case SYNAPSE_GUI_SMART_LABEL_SIZE_PROPERTY:
#line 54 "widgets.vala"
		synapse_gui_smart_label_set_size (self, g_value_get_enum (value));
#line 54 "widgets.vala"
		break;
#line 54 "widgets.vala"
		case SYNAPSE_GUI_SMART_LABEL_MIN_SIZE_PROPERTY:
#line 54 "widgets.vala"
		synapse_gui_smart_label_set_min_size (self, g_value_get_enum (value));
#line 54 "widgets.vala"
		break;
#line 3141 "widgets.c"
		default:
#line 54 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 54 "widgets.vala"
		break;
#line 3147 "widgets.c"
	}
}

static inline gpointer
synapse_gui_schema_container_get_instance_private (SynapseGuiSchemaContainer* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiSchemaContainer_private_offset);
}

static void
_gtk_widget_queue_resize_g_object_notify (GObject* _sender,
                                          GParamSpec* pspec,
                                          gpointer self)
{
#line 412 "widgets.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 3164 "widgets.c"
}

SynapseGuiSchemaContainer*
synapse_gui_schema_container_construct (GType object_type,
                                        gint scale_size)
{
	SynapseGuiSchemaContainer * self = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
#line 405 "widgets.vala"
	self = (SynapseGuiSchemaContainer*) g_object_new (object_type, NULL);
#line 407 "widgets.vala"
	synapse_gui_schema_container_set_scale_size (self, scale_size);
#line 408 "widgets.vala"
	_tmp0_ = gee_array_list_new (SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 408 "widgets.vala"
	_g_object_unref0 (self->schemas);
#line 408 "widgets.vala"
	self->schemas = (GeeList*) _tmp0_;
#line 409 "widgets.vala"
	_tmp1_ = gee_array_list_new (gtk_widget_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 409 "widgets.vala"
	_g_object_unref0 (self->children);
#line 409 "widgets.vala"
	self->children = (GeeList*) _tmp1_;
#line 410 "widgets.vala"
	gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
#line 411 "widgets.vala"
	gtk_widget_set_redraw_on_allocate ((GtkWidget*) self, FALSE);
#line 412 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::scale-size", (GCallback) _gtk_widget_queue_resize_g_object_notify, (GtkWidget*) self, 0);
#line 413 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::fixed-width", (GCallback) _gtk_widget_queue_resize_g_object_notify, (GtkWidget*) self, 0);
#line 414 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::fixed-height", (GCallback) _gtk_widget_queue_resize_g_object_notify, (GtkWidget*) self, 0);
#line 415 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::xpad", (GCallback) _gtk_widget_queue_resize_g_object_notify, (GtkWidget*) self, 0);
#line 416 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::ypad", (GCallback) _gtk_widget_queue_resize_g_object_notify, (GtkWidget*) self, 0);
#line 405 "widgets.vala"
	return self;
#line 3206 "widgets.c"
}

SynapseGuiSchemaContainer*
synapse_gui_schema_container_new (gint scale_size)
{
#line 405 "widgets.vala"
	return synapse_gui_schema_container_construct (SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER, scale_size);
#line 3214 "widgets.c"
}

static gint*
_vala_array_dup2 (gint* self,
                  gssize length)
{
#line 421 "widgets.vala"
	if (length > 0) {
#line 421 "widgets.vala"
		return _vala_memdup2 (self, length * sizeof (gint));
#line 3225 "widgets.c"
	}
#line 421 "widgets.vala"
	return NULL;
#line 3229 "widgets.c"
}

void
synapse_gui_schema_container_set_render_order (SynapseGuiSchemaContainer* self,
                                               gint* order,
                                               gint order_length1)
{
	gint* _tmp0_;
	gint _tmp0__length1;
#line 419 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 421 "widgets.vala"
	_tmp0_ = (order != NULL) ? _vala_array_dup2 (order, order_length1) : order;
#line 421 "widgets.vala"
	_tmp0__length1 = order_length1;
#line 421 "widgets.vala"
	self->priv->render_order = (g_free (self->priv->render_order), NULL);
#line 421 "widgets.vala"
	self->priv->render_order = _tmp0_;
#line 421 "widgets.vala"
	self->priv->render_order_length1 = _tmp0__length1;
#line 421 "widgets.vala"
	self->priv->_render_order_size_ = self->priv->render_order_length1;
#line 422 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 3255 "widgets.c"
}

void
synapse_gui_schema_container_set_size_request (SynapseGuiSchemaContainer* self,
                                               gint width,
                                               gint height)
{
#line 425 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 427 "widgets.vala"
	if (width <= 0) {
#line 427 "widgets.vala"
		width = 1;
#line 3269 "widgets.c"
	}
#line 428 "widgets.vala"
	if (height <= 0) {
#line 428 "widgets.vala"
		height = 1;
#line 3275 "widgets.c"
	}
#line 430 "widgets.vala"
	gtk_widget_set_size_request ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), width, height);
#line 3279 "widgets.c"
}

void
synapse_gui_schema_container_add_schema (SynapseGuiSchemaContainer* self,
                                         SynapseGuiSchemaContainerSchema* s)
{
	GeeList* _tmp0_;
	GeeList* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
#line 433 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 433 "widgets.vala"
	g_return_if_fail (s != NULL);
#line 435 "widgets.vala"
	_tmp0_ = self->schemas;
#line 435 "widgets.vala"
	gee_collection_add ((GeeCollection*) _tmp0_, s);
#line 436 "widgets.vala"
	_tmp1_ = self->schemas;
#line 436 "widgets.vala"
	_tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_);
#line 436 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 436 "widgets.vala"
	if (_tmp3_ == 1) {
#line 436 "widgets.vala"
		synapse_gui_schema_container_select_schema (self, 0);
#line 3308 "widgets.c"
	}
}

void
synapse_gui_schema_container_select_schema (SynapseGuiSchemaContainer* self,
                                            gint i)
{
	GeeList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	GtkAllocation alloc = {0};
	GtkAllocation _tmp3_ = {0};
	GtkAllocation _tmp4_;
	GtkAllocation _tmp5_;
	GtkAllocation _tmp6_;
	GtkAllocation _tmp7_;
	GtkAllocation _tmp8_ = {0};
#line 439 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 441 "widgets.vala"
	if (i < 0) {
#line 441 "widgets.vala"
		return;
#line 3332 "widgets.c"
	}
#line 442 "widgets.vala"
	_tmp0_ = self->schemas;
#line 442 "widgets.vala"
	_tmp1_ = gee_collection_get_size ((GeeCollection*) _tmp0_);
#line 442 "widgets.vala"
	_tmp2_ = _tmp1_;
#line 442 "widgets.vala"
	if (i >= _tmp2_) {
#line 442 "widgets.vala"
		return;
#line 3344 "widgets.c"
	}
#line 443 "widgets.vala"
	self->priv->active_schema = i;
#line 444 "widgets.vala"
	if (!gtk_widget_get_realized ((GtkWidget*) self)) {
#line 444 "widgets.vala"
		return;
#line 3352 "widgets.c"
	}
#line 446 "widgets.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp3_);
#line 446 "widgets.vala"
	alloc = _tmp3_;
#line 447 "widgets.vala"
	_tmp4_ = alloc;
#line 447 "widgets.vala"
	_tmp5_ = alloc;
#line 447 "widgets.vala"
	_tmp6_ = alloc;
#line 447 "widgets.vala"
	_tmp7_ = alloc;
#line 447 "widgets.vala"
	_tmp8_.x = _tmp4_.x;
#line 447 "widgets.vala"
	_tmp8_.y = _tmp5_.y;
#line 447 "widgets.vala"
	_tmp8_.width = _tmp6_.width;
#line 447 "widgets.vala"
	_tmp8_.height = _tmp7_.height;
#line 447 "widgets.vala"
	gtk_widget_size_allocate ((GtkWidget*) self, &_tmp8_);
#line 451 "widgets.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 3378 "widgets.c"
}

static void
synapse_gui_schema_container_real_forall_internal (GtkContainer* base,
                                                   gboolean b,
                                                   GtkCallback callback,
                                                   gpointer callback_target)
{
	SynapseGuiSchemaContainer * self;
	gint* _tmp0_;
	gint _tmp0__length1;
#line 456 "widgets.vala"
	self = (SynapseGuiSchemaContainer*) base;
#line 458 "widgets.vala"
	_tmp0_ = self->priv->render_order;
#line 458 "widgets.vala"
	_tmp0__length1 = self->priv->render_order_length1;
#line 458 "widgets.vala"
	if (_tmp0_ == NULL) {
#line 3398 "widgets.c"
		{
			GeeList* _child_list = NULL;
			GeeList* _tmp1_;
			gint _child_size = 0;
			GeeList* _tmp2_;
			gint _tmp3_;
			gint _tmp4_;
			gint _child_index = 0;
#line 460 "widgets.vala"
			_tmp1_ = self->children;
#line 460 "widgets.vala"
			_child_list = _tmp1_;
#line 460 "widgets.vala"
			_tmp2_ = _child_list;
#line 460 "widgets.vala"
			_tmp3_ = gee_collection_get_size ((GeeCollection*) _tmp2_);
#line 460 "widgets.vala"
			_tmp4_ = _tmp3_;
#line 460 "widgets.vala"
			_child_size = _tmp4_;
#line 460 "widgets.vala"
			_child_index = -1;
#line 460 "widgets.vala"
			while (TRUE) {
#line 3423 "widgets.c"
				gint _tmp5_;
				gint _tmp6_;
				GtkWidget* child = NULL;
				GeeList* _tmp7_;
				gpointer _tmp8_;
				GtkWidget* _tmp9_;
#line 460 "widgets.vala"
				_child_index = _child_index + 1;
#line 460 "widgets.vala"
				_tmp5_ = _child_index;
#line 460 "widgets.vala"
				_tmp6_ = _child_size;
#line 460 "widgets.vala"
				if (!(_tmp5_ < _tmp6_)) {
#line 460 "widgets.vala"
					break;
#line 3440 "widgets.c"
				}
#line 460 "widgets.vala"
				_tmp7_ = _child_list;
#line 460 "widgets.vala"
				_tmp8_ = gee_list_get (_tmp7_, _child_index);
#line 460 "widgets.vala"
				child = (GtkWidget*) _tmp8_;
#line 462 "widgets.vala"
				_tmp9_ = child;
#line 462 "widgets.vala"
				callback (_tmp9_, callback_target);
#line 460 "widgets.vala"
				_g_object_unref0 (child);
#line 3454 "widgets.c"
			}
		}
	} else {
		{
			gint i = 0;
#line 467 "widgets.vala"
			i = 0;
#line 3462 "widgets.c"
			{
				gboolean _tmp10_ = FALSE;
#line 467 "widgets.vala"
				_tmp10_ = TRUE;
#line 467 "widgets.vala"
				while (TRUE) {
#line 3469 "widgets.c"
					gint* _tmp12_;
					gint _tmp12__length1;
					GeeList* _tmp13_;
					gint* _tmp14_;
					gint _tmp14__length1;
					gint _tmp15_;
					gpointer _tmp16_;
					GtkWidget* _tmp17_;
#line 467 "widgets.vala"
					if (!_tmp10_) {
#line 3480 "widgets.c"
						gint _tmp11_;
#line 467 "widgets.vala"
						_tmp11_ = i;
#line 467 "widgets.vala"
						i = _tmp11_ + 1;
#line 3486 "widgets.c"
					}
#line 467 "widgets.vala"
					_tmp10_ = FALSE;
#line 467 "widgets.vala"
					_tmp12_ = self->priv->render_order;
#line 467 "widgets.vala"
					_tmp12__length1 = self->priv->render_order_length1;
#line 467 "widgets.vala"
					if (!(i < _tmp12__length1)) {
#line 467 "widgets.vala"
						break;
#line 3498 "widgets.c"
					}
#line 468 "widgets.vala"
					_tmp13_ = self->children;
#line 468 "widgets.vala"
					_tmp14_ = self->priv->render_order;
#line 468 "widgets.vala"
					_tmp14__length1 = self->priv->render_order_length1;
#line 468 "widgets.vala"
					_tmp15_ = _tmp14_[i];
#line 468 "widgets.vala"
					_tmp16_ = gee_list_get (_tmp13_, _tmp15_);
#line 468 "widgets.vala"
					_tmp17_ = (GtkWidget*) _tmp16_;
#line 468 "widgets.vala"
					callback (_tmp17_, callback_target);
#line 468 "widgets.vala"
					_g_object_unref0 (_tmp17_);
#line 3516 "widgets.c"
				}
			}
		}
	}
}

static void
synapse_gui_schema_container_real_add (GtkContainer* base,
                                       GtkWidget* widget)
{
	SynapseGuiSchemaContainer * self;
	GeeList* _tmp0_;
#line 472 "widgets.vala"
	self = (SynapseGuiSchemaContainer*) base;
#line 472 "widgets.vala"
	g_return_if_fail (widget != NULL);
#line 474 "widgets.vala"
	_tmp0_ = self->children;
#line 474 "widgets.vala"
	gee_collection_add ((GeeCollection*) _tmp0_, widget);
#line 475 "widgets.vala"
	gtk_widget_set_parent (widget, (GtkWidget*) ((GtkContainer*) self));
#line 3539 "widgets.c"
}

static void
synapse_gui_schema_container_real_remove (GtkContainer* base,
                                          GtkWidget* widget)
{
	SynapseGuiSchemaContainer * self;
#line 478 "widgets.vala"
	self = (SynapseGuiSchemaContainer*) base;
#line 478 "widgets.vala"
	g_return_if_fail (widget != NULL);
#line 3551 "widgets.c"
}

static GtkAllocation*
_vala_array_dup3 (GtkAllocation* self,
                  gssize length)
{
#line 487 "widgets.vala"
	if (length > 0) {
#line 487 "widgets.vala"
		return _vala_memdup2 (self, length * sizeof (GtkAllocation));
#line 3562 "widgets.c"
	}
#line 487 "widgets.vala"
	return NULL;
#line 3566 "widgets.c"
}

void
synapse_gui_schema_container_size_request (SynapseGuiSchemaContainer* self,
                                           GtkRequisition* req)
{
	GtkRequisition _vala_req = {0};
	GtkRequisition _tmp0_ = {0};
	gint i = 0;
	GtkAllocation* alloc = NULL;
	GeeList* _tmp1_;
	gpointer _tmp2_;
	SynapseGuiSchemaContainerSchema* _tmp3_;
	GtkAllocation* _tmp4_;
	gint _tmp4__length1;
	gint _tmp5_ = 0;
	GtkAllocation* _tmp6_;
	gint _tmp6__length1;
	GtkAllocation* _tmp7_;
	gint _tmp7__length1;
	GtkAllocation* _tmp8_;
	gint _tmp8__length1;
	gint alloc_length1;
	gint _alloc_size_;
#line 483 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 485 "widgets.vala"
	_vala_req = _tmp0_;
#line 486 "widgets.vala"
	i = 0;
#line 487 "widgets.vala"
	_tmp1_ = self->schemas;
#line 487 "widgets.vala"
	_tmp2_ = gee_list_get (_tmp1_, self->priv->active_schema);
#line 487 "widgets.vala"
	_tmp3_ = (SynapseGuiSchemaContainerSchema*) _tmp2_;
#line 487 "widgets.vala"
	_tmp4_ = synapse_gui_schema_container_schema_get_positions (_tmp3_, &_tmp5_);
#line 487 "widgets.vala"
	_tmp4__length1 = _tmp5_;
#line 487 "widgets.vala"
	_tmp6_ = _tmp4_;
#line 487 "widgets.vala"
	_tmp6__length1 = _tmp4__length1;
#line 487 "widgets.vala"
	_tmp7_ = (_tmp6_ != NULL) ? _vala_array_dup3 (_tmp6_, _tmp6__length1) : _tmp6_;
#line 487 "widgets.vala"
	_tmp7__length1 = _tmp6__length1;
#line 487 "widgets.vala"
	_tmp8_ = _tmp7_;
#line 487 "widgets.vala"
	_tmp8__length1 = _tmp7__length1;
#line 487 "widgets.vala"
	_g_object_unref0 (_tmp3_);
#line 487 "widgets.vala"
	alloc = _tmp8_;
#line 487 "widgets.vala"
	alloc_length1 = _tmp8__length1;
#line 487 "widgets.vala"
	_alloc_size_ = alloc_length1;
#line 3627 "widgets.c"
	{
		GeeList* _child_list = NULL;
		GeeList* _tmp9_;
		gint _child_size = 0;
		GeeList* _tmp10_;
		gint _tmp11_;
		gint _tmp12_;
		gint _child_index = 0;
#line 489 "widgets.vala"
		_tmp9_ = self->children;
#line 489 "widgets.vala"
		_child_list = _tmp9_;
#line 489 "widgets.vala"
		_tmp10_ = _child_list;
#line 489 "widgets.vala"
		_tmp11_ = gee_collection_get_size ((GeeCollection*) _tmp10_);
#line 489 "widgets.vala"
		_tmp12_ = _tmp11_;
#line 489 "widgets.vala"
		_child_size = _tmp12_;
#line 489 "widgets.vala"
		_child_index = -1;
#line 489 "widgets.vala"
		while (TRUE) {
#line 3652 "widgets.c"
			gint _tmp13_;
			gint _tmp14_;
			GtkWidget* child = NULL;
			GeeList* _tmp15_;
			gpointer _tmp16_;
			GtkAllocation* _tmp17_;
			gint _tmp17__length1;
			gint _tmp29_;
#line 489 "widgets.vala"
			_child_index = _child_index + 1;
#line 489 "widgets.vala"
			_tmp13_ = _child_index;
#line 489 "widgets.vala"
			_tmp14_ = _child_size;
#line 489 "widgets.vala"
			if (!(_tmp13_ < _tmp14_)) {
#line 489 "widgets.vala"
				break;
#line 3671 "widgets.c"
			}
#line 489 "widgets.vala"
			_tmp15_ = _child_list;
#line 489 "widgets.vala"
			_tmp16_ = gee_list_get (_tmp15_, _child_index);
#line 489 "widgets.vala"
			child = (GtkWidget*) _tmp16_;
#line 491 "widgets.vala"
			_tmp17_ = alloc;
#line 491 "widgets.vala"
			_tmp17__length1 = alloc_length1;
#line 491 "widgets.vala"
			if (_tmp17__length1 > i) {
#line 3685 "widgets.c"
				GtkAllocation ca = {0};
				GtkAllocation* _tmp18_;
				gint _tmp18__length1;
				GtkAllocation _tmp19_;
				GtkAllocation _tmp20_;
				GtkAllocation _tmp21_;
				GtkRequisition _tmp22_;
				GtkAllocation _tmp23_;
				GtkAllocation _tmp24_;
				GtkRequisition _tmp25_;
				GtkRequisition _tmp26_ = {0};
				GtkWidget* _tmp27_;
#line 493 "widgets.vala"
				_tmp18_ = alloc;
#line 493 "widgets.vala"
				_tmp18__length1 = alloc_length1;
#line 493 "widgets.vala"
				_tmp19_ = _tmp18_[i];
#line 493 "widgets.vala"
				ca = _tmp19_;
#line 494 "widgets.vala"
				_tmp20_ = ca;
#line 494 "widgets.vala"
				_tmp21_ = ca;
#line 494 "widgets.vala"
				_tmp22_ = _vala_req;
#line 494 "widgets.vala"
				_tmp23_ = ca;
#line 494 "widgets.vala"
				_tmp24_ = ca;
#line 494 "widgets.vala"
				_tmp25_ = _vala_req;
#line 494 "widgets.vala"
				_tmp26_.width = MAX (((_tmp20_.x + _tmp21_.width) * self->priv->_scale_size) / 100, _tmp22_.width);
#line 494 "widgets.vala"
				_tmp26_.height = MAX (((_tmp23_.y + _tmp24_.height) * self->priv->_scale_size) / 100, _tmp25_.height);
#line 494 "widgets.vala"
				_vala_req = _tmp26_;
#line 496 "widgets.vala"
				_tmp27_ = child;
#line 496 "widgets.vala"
				gtk_widget_set_visible (_tmp27_, TRUE);
#line 3728 "widgets.c"
			} else {
				GtkWidget* _tmp28_;
#line 500 "widgets.vala"
				_tmp28_ = child;
#line 500 "widgets.vala"
				gtk_widget_set_visible (_tmp28_, FALSE);
#line 3735 "widgets.c"
			}
#line 502 "widgets.vala"
			_tmp29_ = i;
#line 502 "widgets.vala"
			i = _tmp29_ + 1;
#line 489 "widgets.vala"
			_g_object_unref0 (child);
#line 3743 "widgets.c"
		}
	}
#line 504 "widgets.vala"
	if (self->priv->_fixed_height) {
#line 504 "widgets.vala"
		_vala_req.height = self->priv->_scale_size;
#line 3750 "widgets.c"
	}
#line 505 "widgets.vala"
	if (self->priv->_fixed_width) {
#line 505 "widgets.vala"
		_vala_req.width = self->priv->_scale_size;
#line 3756 "widgets.c"
	}
#line 506 "widgets.vala"
	_vala_req.width = _vala_req.width + (self->priv->_xpad * 2);
#line 507 "widgets.vala"
	_vala_req.height = _vala_req.height + (self->priv->_ypad * 2);
#line 483 "widgets.vala"
	alloc = (g_free (alloc), NULL);
#line 483 "widgets.vala"
	if (req) {
#line 483 "widgets.vala"
		*req = _vala_req;
#line 3768 "widgets.c"
	}
}

static void
synapse_gui_schema_container_real_get_preferred_width (GtkWidget* base,
                                                       gint* min_width,
                                                       gint* nat_width)
{
	SynapseGuiSchemaContainer * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
	GtkRequisition req = {0};
	GtkRequisition _tmp0_ = {0};
	GtkRequisition _tmp1_;
#line 510 "widgets.vala"
	self = (SynapseGuiSchemaContainer*) base;
#line 513 "widgets.vala"
	synapse_gui_schema_container_size_request (self, &_tmp0_);
#line 513 "widgets.vala"
	req = _tmp0_;
#line 514 "widgets.vala"
	_tmp1_ = req;
#line 514 "widgets.vala"
	_vala_nat_width = _tmp1_.width;
#line 514 "widgets.vala"
	_vala_min_width = _vala_nat_width;
#line 510 "widgets.vala"
	if (min_width) {
#line 510 "widgets.vala"
		*min_width = _vala_min_width;
#line 3799 "widgets.c"
	}
#line 510 "widgets.vala"
	if (nat_width) {
#line 510 "widgets.vala"
		*nat_width = _vala_nat_width;
#line 3805 "widgets.c"
	}
}

static void
synapse_gui_schema_container_real_get_preferred_height (GtkWidget* base,
                                                        gint* min_height,
                                                        gint* nat_height)
{
	SynapseGuiSchemaContainer * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
	GtkRequisition req = {0};
	GtkRequisition _tmp0_ = {0};
	GtkRequisition _tmp1_;
#line 517 "widgets.vala"
	self = (SynapseGuiSchemaContainer*) base;
#line 520 "widgets.vala"
	synapse_gui_schema_container_size_request (self, &_tmp0_);
#line 520 "widgets.vala"
	req = _tmp0_;
#line 521 "widgets.vala"
	_tmp1_ = req;
#line 521 "widgets.vala"
	_vala_nat_height = _tmp1_.height;
#line 521 "widgets.vala"
	_vala_min_height = _vala_nat_height;
#line 517 "widgets.vala"
	if (min_height) {
#line 517 "widgets.vala"
		*min_height = _vala_min_height;
#line 3836 "widgets.c"
	}
#line 517 "widgets.vala"
	if (nat_height) {
#line 517 "widgets.vala"
		*nat_height = _vala_nat_height;
#line 3842 "widgets.c"
	}
}

static GtkAllocation*
_vala_array_dup4 (GtkAllocation* self,
                  gssize length)
{
#line 534 "widgets.vala"
	if (length > 0) {
#line 534 "widgets.vala"
		return _vala_memdup2 (self, length * sizeof (GtkAllocation));
#line 3854 "widgets.c"
	}
#line 534 "widgets.vala"
	return NULL;
#line 3858 "widgets.c"
}

static void
synapse_gui_schema_container_real_size_allocate (GtkWidget* base,
                                                 GtkAllocation* allocation)
{
	SynapseGuiSchemaContainer * self;
	GtkAllocation _tmp0_;
	GeeList* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GtkAllocation* alloc = NULL;
	GeeList* _tmp13_;
	gpointer _tmp14_;
	SynapseGuiSchemaContainerSchema* _tmp15_;
	GtkAllocation* _tmp16_;
	gint _tmp16__length1;
	gint _tmp17_ = 0;
	GtkAllocation* _tmp18_;
	gint _tmp18__length1;
	GtkAllocation* _tmp19_;
	gint _tmp19__length1;
	GtkAllocation* _tmp20_;
	gint _tmp20__length1;
	gint alloc_length1;
	gint _alloc_size_;
	gint i = 0;
	gint x = 0;
	GtkAllocation _tmp21_;
	gint y = 0;
	GtkAllocation _tmp22_;
	gboolean rtl = FALSE;
#line 524 "widgets.vala"
	self = (SynapseGuiSchemaContainer*) base;
#line 524 "widgets.vala"
	g_return_if_fail (allocation != NULL);
#line 526 "widgets.vala"
	_tmp0_ = *allocation;
#line 526 "widgets.vala"
	GTK_WIDGET_CLASS (synapse_gui_schema_container_parent_class)->size_allocate ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), &_tmp0_);
#line 528 "widgets.vala"
	_tmp1_ = self->schemas;
#line 528 "widgets.vala"
	_tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_);
#line 528 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 528 "widgets.vala"
	if (_tmp3_ <= 0) {
#line 3907 "widgets.c"
		{
			GeeList* _child_list = NULL;
			GeeList* _tmp4_;
			gint _child_size = 0;
			GeeList* _tmp5_;
			gint _tmp6_;
			gint _tmp7_;
			gint _child_index = 0;
#line 530 "widgets.vala"
			_tmp4_ = self->children;
#line 530 "widgets.vala"
			_child_list = _tmp4_;
#line 530 "widgets.vala"
			_tmp5_ = _child_list;
#line 530 "widgets.vala"
			_tmp6_ = gee_collection_get_size ((GeeCollection*) _tmp5_);
#line 530 "widgets.vala"
			_tmp7_ = _tmp6_;
#line 530 "widgets.vala"
			_child_size = _tmp7_;
#line 530 "widgets.vala"
			_child_index = -1;
#line 530 "widgets.vala"
			while (TRUE) {
#line 3932 "widgets.c"
				gint _tmp8_;
				gint _tmp9_;
				GtkWidget* child = NULL;
				GeeList* _tmp10_;
				gpointer _tmp11_;
				GtkWidget* _tmp12_;
#line 530 "widgets.vala"
				_child_index = _child_index + 1;
#line 530 "widgets.vala"
				_tmp8_ = _child_index;
#line 530 "widgets.vala"
				_tmp9_ = _child_size;
#line 530 "widgets.vala"
				if (!(_tmp8_ < _tmp9_)) {
#line 530 "widgets.vala"
					break;
#line 3949 "widgets.c"
				}
#line 530 "widgets.vala"
				_tmp10_ = _child_list;
#line 530 "widgets.vala"
				_tmp11_ = gee_list_get (_tmp10_, _child_index);
#line 530 "widgets.vala"
				child = (GtkWidget*) _tmp11_;
#line 531 "widgets.vala"
				_tmp12_ = child;
#line 531 "widgets.vala"
				gtk_widget_hide (_tmp12_);
#line 530 "widgets.vala"
				_g_object_unref0 (child);
#line 3963 "widgets.c"
			}
		}
#line 532 "widgets.vala"
		return;
#line 3968 "widgets.c"
	}
#line 534 "widgets.vala"
	_tmp13_ = self->schemas;
#line 534 "widgets.vala"
	_tmp14_ = gee_list_get (_tmp13_, self->priv->active_schema);
#line 534 "widgets.vala"
	_tmp15_ = (SynapseGuiSchemaContainerSchema*) _tmp14_;
#line 534 "widgets.vala"
	_tmp16_ = synapse_gui_schema_container_schema_get_positions (_tmp15_, &_tmp17_);
#line 534 "widgets.vala"
	_tmp16__length1 = _tmp17_;
#line 534 "widgets.vala"
	_tmp18_ = _tmp16_;
#line 534 "widgets.vala"
	_tmp18__length1 = _tmp16__length1;
#line 534 "widgets.vala"
	_tmp19_ = (_tmp18_ != NULL) ? _vala_array_dup4 (_tmp18_, _tmp18__length1) : _tmp18_;
#line 534 "widgets.vala"
	_tmp19__length1 = _tmp18__length1;
#line 534 "widgets.vala"
	_tmp20_ = _tmp19_;
#line 534 "widgets.vala"
	_tmp20__length1 = _tmp19__length1;
#line 534 "widgets.vala"
	_g_object_unref0 (_tmp15_);
#line 534 "widgets.vala"
	alloc = _tmp20_;
#line 534 "widgets.vala"
	alloc_length1 = _tmp20__length1;
#line 534 "widgets.vala"
	_alloc_size_ = alloc_length1;
#line 536 "widgets.vala"
	i = 0;
#line 537 "widgets.vala"
	_tmp21_ = *allocation;
#line 537 "widgets.vala"
	x = _tmp21_.x + self->priv->_xpad;
#line 538 "widgets.vala"
	_tmp22_ = *allocation;
#line 538 "widgets.vala"
	y = _tmp22_.y + self->priv->_ypad;
#line 539 "widgets.vala"
	rtl = gtk_widget_get_direction ((GtkWidget*) self) == GTK_TEXT_DIR_RTL;
#line 4012 "widgets.c"
	{
		GeeList* _child_list = NULL;
		GeeList* _tmp23_;
		gint _child_size = 0;
		GeeList* _tmp24_;
		gint _tmp25_;
		gint _tmp26_;
		gint _child_index = 0;
#line 540 "widgets.vala"
		_tmp23_ = self->children;
#line 540 "widgets.vala"
		_child_list = _tmp23_;
#line 540 "widgets.vala"
		_tmp24_ = _child_list;
#line 540 "widgets.vala"
		_tmp25_ = gee_collection_get_size ((GeeCollection*) _tmp24_);
#line 540 "widgets.vala"
		_tmp26_ = _tmp25_;
#line 540 "widgets.vala"
		_child_size = _tmp26_;
#line 540 "widgets.vala"
		_child_index = -1;
#line 540 "widgets.vala"
		while (TRUE) {
#line 4037 "widgets.c"
			gint _tmp27_;
			gint _tmp28_;
			GtkWidget* child = NULL;
			GeeList* _tmp29_;
			gpointer _tmp30_;
			GtkAllocation a = {0};
			GtkAllocation* _tmp31_;
			gint _tmp31__length1;
			GtkWidget* _tmp44_;
			GtkAllocation _tmp45_;
			gint _tmp46_;
#line 540 "widgets.vala"
			_child_index = _child_index + 1;
#line 540 "widgets.vala"
			_tmp27_ = _child_index;
#line 540 "widgets.vala"
			_tmp28_ = _child_size;
#line 540 "widgets.vala"
			if (!(_tmp27_ < _tmp28_)) {
#line 540 "widgets.vala"
				break;
#line 4059 "widgets.c"
			}
#line 540 "widgets.vala"
			_tmp29_ = _child_list;
#line 540 "widgets.vala"
			_tmp30_ = gee_list_get (_tmp29_, _child_index);
#line 540 "widgets.vala"
			child = (GtkWidget*) _tmp30_;
#line 543 "widgets.vala"
			_tmp31_ = alloc;
#line 543 "widgets.vala"
			_tmp31__length1 = alloc_length1;
#line 543 "widgets.vala"
			if (_tmp31__length1 <= i) {
#line 4073 "widgets.c"
				GtkAllocation _tmp32_ = {0};
#line 545 "widgets.vala"
				a = _tmp32_;
#line 4077 "widgets.c"
			} else {
				GtkAllocation ca = {0};
				GtkAllocation* _tmp33_;
				gint _tmp33__length1;
				GtkAllocation _tmp34_;
				GtkAllocation _tmp35_;
				GtkAllocation _tmp36_;
				GtkAllocation _tmp37_;
				GtkAllocation _tmp38_;
				GtkAllocation _tmp39_ = {0};
#line 549 "widgets.vala"
				_tmp33_ = alloc;
#line 549 "widgets.vala"
				_tmp33__length1 = alloc_length1;
#line 549 "widgets.vala"
				_tmp34_ = _tmp33_[i];
#line 549 "widgets.vala"
				ca = _tmp34_;
#line 550 "widgets.vala"
				_tmp35_ = ca;
#line 550 "widgets.vala"
				_tmp36_ = ca;
#line 550 "widgets.vala"
				_tmp37_ = ca;
#line 550 "widgets.vala"
				_tmp38_ = ca;
#line 550 "widgets.vala"
				_tmp39_.x = x + ((_tmp35_.x * self->priv->_scale_size) / 100);
#line 550 "widgets.vala"
				_tmp39_.y = y + ((_tmp36_.y * self->priv->_scale_size) / 100);
#line 550 "widgets.vala"
				_tmp39_.width = (_tmp37_.width * self->priv->_scale_size) / 100;
#line 550 "widgets.vala"
				_tmp39_.height = (_tmp38_.height * self->priv->_scale_size) / 100;
#line 550 "widgets.vala"
				a = _tmp39_;
#line 4114 "widgets.c"
			}
#line 553 "widgets.vala"
			if (rtl) {
#line 4118 "widgets.c"
				GtkAllocation _tmp40_;
				GtkAllocation _tmp41_;
				GtkAllocation _tmp42_;
				GtkAllocation _tmp43_;
#line 553 "widgets.vala"
				_tmp40_ = *allocation;
#line 553 "widgets.vala"
				_tmp41_ = *allocation;
#line 553 "widgets.vala"
				_tmp42_ = a;
#line 553 "widgets.vala"
				_tmp43_ = a;
#line 553 "widgets.vala"
				a.x = (((2 * _tmp40_.x) + _tmp41_.width) - _tmp42_.x) - _tmp43_.width;
#line 4133 "widgets.c"
			}
#line 554 "widgets.vala"
			_tmp44_ = child;
#line 554 "widgets.vala"
			_tmp45_ = a;
#line 554 "widgets.vala"
			gtk_widget_size_allocate (_tmp44_, &_tmp45_);
#line 555 "widgets.vala"
			_tmp46_ = i;
#line 555 "widgets.vala"
			i = _tmp46_ + 1;
#line 540 "widgets.vala"
			_g_object_unref0 (child);
#line 4147 "widgets.c"
		}
	}
#line 524 "widgets.vala"
	alloc = (g_free (alloc), NULL);
#line 4152 "widgets.c"
}

gint
synapse_gui_schema_container_get_xpad (SynapseGuiSchemaContainer* self)
{
	gint result;
#line 390 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 390 "widgets.vala"
	result = self->priv->_xpad;
#line 390 "widgets.vala"
	return result;
#line 4165 "widgets.c"
}

void
synapse_gui_schema_container_set_xpad (SynapseGuiSchemaContainer* self,
                                       gint value)
{
	gint old_value;
#line 390 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 390 "widgets.vala"
	old_value = synapse_gui_schema_container_get_xpad (self);
#line 390 "widgets.vala"
	if (old_value != value) {
#line 390 "widgets.vala"
		self->priv->_xpad = value;
#line 390 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_XPAD_PROPERTY]);
#line 4183 "widgets.c"
	}
}

gint
synapse_gui_schema_container_get_ypad (SynapseGuiSchemaContainer* self)
{
	gint result;
#line 391 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 391 "widgets.vala"
	result = self->priv->_ypad;
#line 391 "widgets.vala"
	return result;
#line 4197 "widgets.c"
}

void
synapse_gui_schema_container_set_ypad (SynapseGuiSchemaContainer* self,
                                       gint value)
{
	gint old_value;
#line 391 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 391 "widgets.vala"
	old_value = synapse_gui_schema_container_get_ypad (self);
#line 391 "widgets.vala"
	if (old_value != value) {
#line 391 "widgets.vala"
		self->priv->_ypad = value;
#line 391 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_YPAD_PROPERTY]);
#line 4215 "widgets.c"
	}
}

gint
synapse_gui_schema_container_get_scale_size (SynapseGuiSchemaContainer* self)
{
	gint result;
#line 394 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 394 "widgets.vala"
	result = self->priv->_scale_size;
#line 394 "widgets.vala"
	return result;
#line 4229 "widgets.c"
}

void
synapse_gui_schema_container_set_scale_size (SynapseGuiSchemaContainer* self,
                                             gint value)
{
	gint old_value;
#line 394 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 394 "widgets.vala"
	old_value = synapse_gui_schema_container_get_scale_size (self);
#line 394 "widgets.vala"
	if (old_value != value) {
#line 394 "widgets.vala"
		self->priv->_scale_size = value;
#line 394 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_SCALE_SIZE_PROPERTY]);
#line 4247 "widgets.c"
	}
}

gboolean
synapse_gui_schema_container_get_fixed_height (SynapseGuiSchemaContainer* self)
{
	gboolean result;
#line 398 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 398 "widgets.vala"
	result = self->priv->_fixed_height;
#line 398 "widgets.vala"
	return result;
#line 4261 "widgets.c"
}

void
synapse_gui_schema_container_set_fixed_height (SynapseGuiSchemaContainer* self,
                                               gboolean value)
{
	gboolean old_value;
#line 398 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 398 "widgets.vala"
	old_value = synapse_gui_schema_container_get_fixed_height (self);
#line 398 "widgets.vala"
	if (old_value != value) {
#line 398 "widgets.vala"
		self->priv->_fixed_height = value;
#line 398 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_HEIGHT_PROPERTY]);
#line 4279 "widgets.c"
	}
}

gboolean
synapse_gui_schema_container_get_fixed_width (SynapseGuiSchemaContainer* self)
{
	gboolean result;
#line 402 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 402 "widgets.vala"
	result = self->priv->_fixed_width;
#line 402 "widgets.vala"
	return result;
#line 4293 "widgets.c"
}

void
synapse_gui_schema_container_set_fixed_width (SynapseGuiSchemaContainer* self,
                                              gboolean value)
{
	gboolean old_value;
#line 402 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 402 "widgets.vala"
	old_value = synapse_gui_schema_container_get_fixed_width (self);
#line 402 "widgets.vala"
	if (old_value != value) {
#line 402 "widgets.vala"
		self->priv->_fixed_width = value;
#line 402 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_WIDTH_PROPERTY]);
#line 4311 "widgets.c"
	}
}

static inline gpointer
synapse_gui_schema_container_schema_get_instance_private (SynapseGuiSchemaContainerSchema* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiSchemaContainerSchema_private_offset);
}

SynapseGuiSchemaContainerSchema*
synapse_gui_schema_container_schema_construct (GType object_type)
{
	SynapseGuiSchemaContainerSchema * self = NULL;
#line 370 "widgets.vala"
	self = (SynapseGuiSchemaContainerSchema*) g_object_new (object_type, NULL);
#line 370 "widgets.vala"
	return self;
#line 4329 "widgets.c"
}

SynapseGuiSchemaContainerSchema*
synapse_gui_schema_container_schema_new (void)
{
#line 370 "widgets.vala"
	return synapse_gui_schema_container_schema_construct (SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA);
#line 4337 "widgets.c"
}

static void
_vala_array_add1 (GtkAllocation* * array,
                  gint* length,
                  gint* size,
                  const GtkAllocation* value)
{
#line 381 "widgets.vala"
	if ((*length) == (*size)) {
#line 381 "widgets.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 381 "widgets.vala"
		*array = g_renew (GtkAllocation, *array, *size);
#line 4352 "widgets.c"
	}
#line 381 "widgets.vala"
	(*array)[(*length)++] = *value;
#line 4356 "widgets.c"
}

void
synapse_gui_schema_container_schema_add_allocation (SynapseGuiSchemaContainerSchema* self,
                                                    GtkAllocation* alloc)
{
	GtkAllocation _tmp0_;
	GtkAllocation _tmp1_;
	GtkAllocation _tmp2_;
	GtkAllocation _tmp3_;
	GtkAllocation _tmp4_;
#line 374 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 374 "widgets.vala"
	g_return_if_fail (alloc != NULL);
#line 376 "widgets.vala"
	_tmp0_ = *alloc;
#line 376 "widgets.vala"
	(*alloc).x = MAX (0, _tmp0_.x);
#line 377 "widgets.vala"
	_tmp1_ = *alloc;
#line 377 "widgets.vala"
	(*alloc).y = MAX (0, _tmp1_.y);
#line 378 "widgets.vala"
	_tmp2_ = *alloc;
#line 378 "widgets.vala"
	(*alloc).width = MAX (0, _tmp2_.width);
#line 379 "widgets.vala"
	_tmp3_ = *alloc;
#line 379 "widgets.vala"
	(*alloc).height = MAX (0, _tmp3_.height);
#line 381 "widgets.vala"
	_tmp4_ = *alloc;
#line 381 "widgets.vala"
	_vala_array_add1 (&self->priv->_positions, &self->priv->_positions_length1, &self->priv->__positions_size_, &_tmp4_);
#line 4392 "widgets.c"
}

GtkAllocation*
synapse_gui_schema_container_schema_get_positions (SynapseGuiSchemaContainerSchema* self,
                                                   gint* result_length1)
{
	GtkAllocation* result;
	GtkAllocation* _tmp0_;
	gint _tmp0__length1;
	GtkAllocation* _tmp1_;
	gint _tmp1__length1;
#line 369 "widgets.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 369 "widgets.vala"
	_tmp0_ = self->priv->_positions;
#line 369 "widgets.vala"
	_tmp0__length1 = self->priv->_positions_length1;
#line 369 "widgets.vala"
	_tmp1_ = _tmp0_;
#line 369 "widgets.vala"
	_tmp1__length1 = _tmp0__length1;
#line 369 "widgets.vala"
	if (result_length1) {
#line 369 "widgets.vala"
		*result_length1 = _tmp1__length1;
#line 4418 "widgets.c"
	}
#line 369 "widgets.vala"
	result = _tmp1_;
#line 369 "widgets.vala"
	return result;
#line 4424 "widgets.c"
}

static void
synapse_gui_schema_container_schema_class_init (SynapseGuiSchemaContainerSchemaClass * klass,
                                                gpointer klass_data)
{
#line 366 "widgets.vala"
	synapse_gui_schema_container_schema_parent_class = g_type_class_peek_parent (klass);
#line 366 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiSchemaContainerSchema_private_offset);
#line 366 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_schema_container_schema_get_property;
#line 366 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_schema_container_schema_finalize;
#line 4439 "widgets.c"
}

static void
synapse_gui_schema_container_schema_instance_init (SynapseGuiSchemaContainerSchema * self,
                                                   gpointer klass)
{
	GtkAllocation* _tmp0_;
#line 366 "widgets.vala"
	self->priv = synapse_gui_schema_container_schema_get_instance_private (self);
#line 368 "widgets.vala"
	_tmp0_ = g_new0 (GtkAllocation, 0);
#line 368 "widgets.vala"
	self->priv->_positions = _tmp0_;
#line 368 "widgets.vala"
	self->priv->_positions_length1 = 0;
#line 368 "widgets.vala"
	self->priv->__positions_size_ = self->priv->_positions_length1;
#line 4457 "widgets.c"
}

static void
synapse_gui_schema_container_schema_finalize (GObject * obj)
{
	SynapseGuiSchemaContainerSchema * self;
#line 366 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA, SynapseGuiSchemaContainerSchema);
#line 368 "widgets.vala"
	self->priv->_positions = (g_free (self->priv->_positions), NULL);
#line 366 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_schema_container_schema_parent_class)->finalize (obj);
#line 4470 "widgets.c"
}

static GType
synapse_gui_schema_container_schema_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiSchemaContainerSchemaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_schema_container_schema_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiSchemaContainerSchema), 0, (GInstanceInitFunc) synapse_gui_schema_container_schema_instance_init, NULL };
	GType synapse_gui_schema_container_schema_type_id;
	synapse_gui_schema_container_schema_type_id = g_type_register_static (G_TYPE_OBJECT, "SynapseGuiSchemaContainerSchema", &g_define_type_info, 0);
	SynapseGuiSchemaContainerSchema_private_offset = g_type_add_instance_private (synapse_gui_schema_container_schema_type_id, sizeof (SynapseGuiSchemaContainerSchemaPrivate));
	return synapse_gui_schema_container_schema_type_id;
}

GType
synapse_gui_schema_container_schema_get_type (void)
{
	static volatile gsize synapse_gui_schema_container_schema_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_schema_container_schema_type_id__once)) {
		GType synapse_gui_schema_container_schema_type_id;
		synapse_gui_schema_container_schema_type_id = synapse_gui_schema_container_schema_get_type_once ();
		g_once_init_leave (&synapse_gui_schema_container_schema_type_id__once, synapse_gui_schema_container_schema_type_id);
	}
	return synapse_gui_schema_container_schema_type_id__once;
}

static void
_vala_synapse_gui_schema_container_schema_get_property (GObject * object,
                                                        guint property_id,
                                                        GValue * value,
                                                        GParamSpec * pspec)
{
	SynapseGuiSchemaContainerSchema * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_SCHEMA_CONTAINER_TYPE_SCHEMA, SynapseGuiSchemaContainerSchema);
#line 366 "widgets.vala"
	switch (property_id) {
#line 4505 "widgets.c"
		default:
#line 366 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 366 "widgets.vala"
		break;
#line 4511 "widgets.c"
	}
}

static void
synapse_gui_schema_container_class_init (SynapseGuiSchemaContainerClass * klass,
                                         gpointer klass_data)
{
#line 364 "widgets.vala"
	synapse_gui_schema_container_parent_class = g_type_class_peek_parent (klass);
#line 364 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiSchemaContainer_private_offset);
#line 364 "widgets.vala"
	((GtkContainerClass *) klass)->forall = (void (*) (GtkContainer*, gboolean, GtkCallback, gpointer)) synapse_gui_schema_container_real_forall_internal;
#line 364 "widgets.vala"
	((GtkContainerClass *) klass)->add = (void (*) (GtkContainer*, GtkWidget*)) synapse_gui_schema_container_real_add;
#line 364 "widgets.vala"
	((GtkContainerClass *) klass)->remove = (void (*) (GtkContainer*, GtkWidget*)) synapse_gui_schema_container_real_remove;
#line 364 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_schema_container_real_get_preferred_width;
#line 364 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_schema_container_real_get_preferred_height;
#line 364 "widgets.vala"
	((GtkWidgetClass *) klass)->size_allocate = (void (*) (GtkWidget*, GtkAllocation*)) synapse_gui_schema_container_real_size_allocate;
#line 364 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_schema_container_get_property;
#line 364 "widgets.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_schema_container_set_property;
#line 364 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_schema_container_finalize;
#line 364 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SCHEMA_CONTAINER_XPAD_PROPERTY, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_XPAD_PROPERTY] = g_param_spec_int ("xpad", "xpad", "xpad", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 364 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SCHEMA_CONTAINER_YPAD_PROPERTY, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_YPAD_PROPERTY] = g_param_spec_int ("ypad", "ypad", "ypad", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 364 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SCHEMA_CONTAINER_SCALE_SIZE_PROPERTY, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_SCALE_SIZE_PROPERTY] = g_param_spec_int ("scale-size", "scale-size", "scale-size", G_MININT, G_MAXINT, 128, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 364 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_HEIGHT_PROPERTY, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_HEIGHT_PROPERTY] = g_param_spec_boolean ("fixed-height", "fixed-height", "fixed-height", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 364 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_WIDTH_PROPERTY, synapse_gui_schema_container_properties[SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_WIDTH_PROPERTY] = g_param_spec_boolean ("fixed-width", "fixed-width", "fixed-width", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 4551 "widgets.c"
}

static void
synapse_gui_schema_container_instance_init (SynapseGuiSchemaContainer * self,
                                            gpointer klass)
{
#line 364 "widgets.vala"
	self->priv = synapse_gui_schema_container_get_instance_private (self);
#line 387 "widgets.vala"
	self->priv->active_schema = 0;
#line 388 "widgets.vala"
	self->priv->render_order = NULL;
#line 388 "widgets.vala"
	self->priv->render_order_length1 = 0;
#line 388 "widgets.vala"
	self->priv->_render_order_size_ = self->priv->render_order_length1;
#line 390 "widgets.vala"
	self->priv->_xpad = 0;
#line 391 "widgets.vala"
	self->priv->_ypad = 0;
#line 393 "widgets.vala"
	self->priv->_scale_size = 128;
#line 397 "widgets.vala"
	self->priv->_fixed_height = FALSE;
#line 401 "widgets.vala"
	self->priv->_fixed_width = FALSE;
#line 4578 "widgets.c"
}

static void
synapse_gui_schema_container_finalize (GObject * obj)
{
	SynapseGuiSchemaContainer * self;
#line 364 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER, SynapseGuiSchemaContainer);
#line 385 "widgets.vala"
	_g_object_unref0 (self->schemas);
#line 386 "widgets.vala"
	_g_object_unref0 (self->children);
#line 388 "widgets.vala"
	self->priv->render_order = (g_free (self->priv->render_order), NULL);
#line 364 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_schema_container_parent_class)->finalize (obj);
#line 4595 "widgets.c"
}

static GType
synapse_gui_schema_container_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiSchemaContainerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_schema_container_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiSchemaContainer), 0, (GInstanceInitFunc) synapse_gui_schema_container_instance_init, NULL };
	GType synapse_gui_schema_container_type_id;
	synapse_gui_schema_container_type_id = g_type_register_static (gtk_container_get_type (), "SynapseGuiSchemaContainer", &g_define_type_info, 0);
	SynapseGuiSchemaContainer_private_offset = g_type_add_instance_private (synapse_gui_schema_container_type_id, sizeof (SynapseGuiSchemaContainerPrivate));
	return synapse_gui_schema_container_type_id;
}

GType
synapse_gui_schema_container_get_type (void)
{
	static volatile gsize synapse_gui_schema_container_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_schema_container_type_id__once)) {
		GType synapse_gui_schema_container_type_id;
		synapse_gui_schema_container_type_id = synapse_gui_schema_container_get_type_once ();
		g_once_init_leave (&synapse_gui_schema_container_type_id__once, synapse_gui_schema_container_type_id);
	}
	return synapse_gui_schema_container_type_id__once;
}

static void
_vala_synapse_gui_schema_container_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec)
{
	SynapseGuiSchemaContainer * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER, SynapseGuiSchemaContainer);
#line 364 "widgets.vala"
	switch (property_id) {
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_XPAD_PROPERTY:
#line 364 "widgets.vala"
		g_value_set_int (value, synapse_gui_schema_container_get_xpad (self));
#line 364 "widgets.vala"
		break;
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_YPAD_PROPERTY:
#line 364 "widgets.vala"
		g_value_set_int (value, synapse_gui_schema_container_get_ypad (self));
#line 364 "widgets.vala"
		break;
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_SCALE_SIZE_PROPERTY:
#line 364 "widgets.vala"
		g_value_set_int (value, synapse_gui_schema_container_get_scale_size (self));
#line 364 "widgets.vala"
		break;
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_HEIGHT_PROPERTY:
#line 364 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_schema_container_get_fixed_height (self));
#line 364 "widgets.vala"
		break;
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_WIDTH_PROPERTY:
#line 364 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_schema_container_get_fixed_width (self));
#line 364 "widgets.vala"
		break;
#line 4660 "widgets.c"
		default:
#line 364 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 364 "widgets.vala"
		break;
#line 4666 "widgets.c"
	}
}

static void
_vala_synapse_gui_schema_container_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec)
{
	SynapseGuiSchemaContainer * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_SCHEMA_CONTAINER, SynapseGuiSchemaContainer);
#line 364 "widgets.vala"
	switch (property_id) {
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_XPAD_PROPERTY:
#line 364 "widgets.vala"
		synapse_gui_schema_container_set_xpad (self, g_value_get_int (value));
#line 364 "widgets.vala"
		break;
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_YPAD_PROPERTY:
#line 364 "widgets.vala"
		synapse_gui_schema_container_set_ypad (self, g_value_get_int (value));
#line 364 "widgets.vala"
		break;
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_SCALE_SIZE_PROPERTY:
#line 364 "widgets.vala"
		synapse_gui_schema_container_set_scale_size (self, g_value_get_int (value));
#line 364 "widgets.vala"
		break;
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_HEIGHT_PROPERTY:
#line 364 "widgets.vala"
		synapse_gui_schema_container_set_fixed_height (self, g_value_get_boolean (value));
#line 364 "widgets.vala"
		break;
#line 364 "widgets.vala"
		case SYNAPSE_GUI_SCHEMA_CONTAINER_FIXED_WIDTH_PROPERTY:
#line 364 "widgets.vala"
		synapse_gui_schema_container_set_fixed_width (self, g_value_get_boolean (value));
#line 364 "widgets.vala"
		break;
#line 4710 "widgets.c"
		default:
#line 364 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 364 "widgets.vala"
		break;
#line 4716 "widgets.c"
	}
}

static inline gpointer
synapse_gui_selection_container_get_instance_private (SynapseGuiSelectionContainer* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiSelectionContainer_private_offset);
}

SynapseGuiSelectionContainer*
synapse_gui_selection_container_construct (GType object_type)
{
	SynapseGuiSelectionContainer * self = NULL;
	GeeArrayList* _tmp0_;
#line 565 "widgets.vala"
	self = (SynapseGuiSelectionContainer*) g_object_new (object_type, NULL);
#line 567 "widgets.vala"
	_tmp0_ = gee_array_list_new (gtk_widget_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 567 "widgets.vala"
	_g_object_unref0 (self->children);
#line 567 "widgets.vala"
	self->children = (GeeList*) _tmp0_;
#line 568 "widgets.vala"
	gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
#line 569 "widgets.vala"
	gtk_widget_set_redraw_on_allocate ((GtkWidget*) self, FALSE);
#line 565 "widgets.vala"
	return self;
#line 4745 "widgets.c"
}

SynapseGuiSelectionContainer*
synapse_gui_selection_container_new (void)
{
#line 565 "widgets.vala"
	return synapse_gui_selection_container_construct (SYNAPSE_GUI_TYPE_SELECTION_CONTAINER);
#line 4753 "widgets.c"
}

void
synapse_gui_selection_container_select_child (SynapseGuiSelectionContainer* self,
                                              gint i)
{
	GeeList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
#line 572 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 574 "widgets.vala"
	if (i < 0) {
#line 574 "widgets.vala"
		return;
#line 4769 "widgets.c"
	}
#line 575 "widgets.vala"
	_tmp0_ = self->children;
#line 575 "widgets.vala"
	_tmp1_ = gee_collection_get_size ((GeeCollection*) _tmp0_);
#line 575 "widgets.vala"
	_tmp2_ = _tmp1_;
#line 575 "widgets.vala"
	if (i >= _tmp2_) {
#line 575 "widgets.vala"
		return;
#line 4781 "widgets.c"
	}
#line 576 "widgets.vala"
	self->priv->active_child = i;
#line 577 "widgets.vala"
	i = 0;
#line 4787 "widgets.c"
	{
		GeeList* _child_list = NULL;
		GeeList* _tmp3_;
		gint _child_size = 0;
		GeeList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
		gint _child_index = 0;
#line 578 "widgets.vala"
		_tmp3_ = self->children;
#line 578 "widgets.vala"
		_child_list = _tmp3_;
#line 578 "widgets.vala"
		_tmp4_ = _child_list;
#line 578 "widgets.vala"
		_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
#line 578 "widgets.vala"
		_tmp6_ = _tmp5_;
#line 578 "widgets.vala"
		_child_size = _tmp6_;
#line 578 "widgets.vala"
		_child_index = -1;
#line 578 "widgets.vala"
		while (TRUE) {
#line 4812 "widgets.c"
			gint _tmp7_;
			gint _tmp8_;
			GtkWidget* child = NULL;
			GeeList* _tmp9_;
			gpointer _tmp10_;
			gint _tmp19_;
#line 578 "widgets.vala"
			_child_index = _child_index + 1;
#line 578 "widgets.vala"
			_tmp7_ = _child_index;
#line 578 "widgets.vala"
			_tmp8_ = _child_size;
#line 578 "widgets.vala"
			if (!(_tmp7_ < _tmp8_)) {
#line 578 "widgets.vala"
				break;
#line 4829 "widgets.c"
			}
#line 578 "widgets.vala"
			_tmp9_ = _child_list;
#line 578 "widgets.vala"
			_tmp10_ = gee_list_get (_tmp9_, _child_index);
#line 578 "widgets.vala"
			child = (GtkWidget*) _tmp10_;
#line 580 "widgets.vala"
			if (i == self->priv->active_child) {
#line 4839 "widgets.c"
				GtkWidget* _tmp11_;
				gboolean _tmp12_;
				gboolean _tmp13_;
#line 582 "widgets.vala"
				_tmp11_ = child;
#line 582 "widgets.vala"
				_tmp12_ = gtk_widget_get_visible (_tmp11_);
#line 582 "widgets.vala"
				_tmp13_ = _tmp12_;
#line 582 "widgets.vala"
				if (!_tmp13_) {
#line 4851 "widgets.c"
					GtkWidget* _tmp14_;
#line 582 "widgets.vala"
					_tmp14_ = child;
#line 582 "widgets.vala"
					gtk_widget_show (_tmp14_);
#line 4857 "widgets.c"
				}
			} else {
				GtkWidget* _tmp15_;
				gboolean _tmp16_;
				gboolean _tmp17_;
#line 586 "widgets.vala"
				_tmp15_ = child;
#line 586 "widgets.vala"
				_tmp16_ = gtk_widget_get_visible (_tmp15_);
#line 586 "widgets.vala"
				_tmp17_ = _tmp16_;
#line 586 "widgets.vala"
				if (_tmp17_) {
#line 4871 "widgets.c"
					GtkWidget* _tmp18_;
#line 586 "widgets.vala"
					_tmp18_ = child;
#line 586 "widgets.vala"
					gtk_widget_hide (_tmp18_);
#line 4877 "widgets.c"
				}
			}
#line 589 "widgets.vala"
			_tmp19_ = i;
#line 589 "widgets.vala"
			i = _tmp19_ + 1;
#line 578 "widgets.vala"
			_g_object_unref0 (child);
#line 4886 "widgets.c"
		}
	}
#line 591 "widgets.vala"
	if (!gtk_widget_get_realized ((GtkWidget*) self)) {
#line 591 "widgets.vala"
		return;
#line 4893 "widgets.c"
	}
#line 592 "widgets.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 4897 "widgets.c"
}

static void
synapse_gui_selection_container_real_forall_internal (GtkContainer* base,
                                                      gboolean b,
                                                      GtkCallback callback,
                                                      gpointer callback_target)
{
	SynapseGuiSelectionContainer * self;
#line 595 "widgets.vala"
	self = (SynapseGuiSelectionContainer*) base;
#line 4909 "widgets.c"
	{
		GeeList* _child_list = NULL;
		GeeList* _tmp0_;
		gint _child_size = 0;
		GeeList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _child_index = 0;
#line 597 "widgets.vala"
		_tmp0_ = self->children;
#line 597 "widgets.vala"
		_child_list = _tmp0_;
#line 597 "widgets.vala"
		_tmp1_ = _child_list;
#line 597 "widgets.vala"
		_tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_);
#line 597 "widgets.vala"
		_tmp3_ = _tmp2_;
#line 597 "widgets.vala"
		_child_size = _tmp3_;
#line 597 "widgets.vala"
		_child_index = -1;
#line 597 "widgets.vala"
		while (TRUE) {
#line 4934 "widgets.c"
			gint _tmp4_;
			gint _tmp5_;
			GtkWidget* child = NULL;
			GeeList* _tmp6_;
			gpointer _tmp7_;
			GtkWidget* _tmp8_;
#line 597 "widgets.vala"
			_child_index = _child_index + 1;
#line 597 "widgets.vala"
			_tmp4_ = _child_index;
#line 597 "widgets.vala"
			_tmp5_ = _child_size;
#line 597 "widgets.vala"
			if (!(_tmp4_ < _tmp5_)) {
#line 597 "widgets.vala"
				break;
#line 4951 "widgets.c"
			}
#line 597 "widgets.vala"
			_tmp6_ = _child_list;
#line 597 "widgets.vala"
			_tmp7_ = gee_list_get (_tmp6_, _child_index);
#line 597 "widgets.vala"
			child = (GtkWidget*) _tmp7_;
#line 598 "widgets.vala"
			_tmp8_ = child;
#line 598 "widgets.vala"
			callback (_tmp8_, callback_target);
#line 597 "widgets.vala"
			_g_object_unref0 (child);
#line 4965 "widgets.c"
		}
	}
}

static void
synapse_gui_selection_container_real_add (GtkContainer* base,
                                          GtkWidget* widget)
{
	SynapseGuiSelectionContainer * self;
	GeeList* _tmp0_;
#line 601 "widgets.vala"
	self = (SynapseGuiSelectionContainer*) base;
#line 601 "widgets.vala"
	g_return_if_fail (widget != NULL);
#line 603 "widgets.vala"
	_tmp0_ = self->children;
#line 603 "widgets.vala"
	gee_collection_add ((GeeCollection*) _tmp0_, widget);
#line 604 "widgets.vala"
	gtk_widget_set_parent (widget, (GtkWidget*) ((GtkContainer*) self));
#line 4986 "widgets.c"
}

static void
synapse_gui_selection_container_real_remove (GtkContainer* base,
                                             GtkWidget* widget)
{
	SynapseGuiSelectionContainer * self;
	GeeList* _tmp0_;
#line 607 "widgets.vala"
	self = (SynapseGuiSelectionContainer*) base;
#line 607 "widgets.vala"
	g_return_if_fail (widget != NULL);
#line 609 "widgets.vala"
	_tmp0_ = self->children;
#line 609 "widgets.vala"
	gee_collection_remove ((GeeCollection*) _tmp0_, widget);
#line 610 "widgets.vala"
	gtk_widget_unparent (widget);
#line 5005 "widgets.c"
}

static void
synapse_gui_selection_container_real_size_allocate (GtkWidget* base,
                                                    GtkAllocation* allocation)
{
	SynapseGuiSelectionContainer * self;
	GtkAllocation _tmp0_;
	GeeList* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GeeList* _tmp4_;
	gpointer _tmp5_;
	GtkWidget* _tmp6_;
	GtkAllocation _tmp7_;
#line 613 "widgets.vala"
	self = (SynapseGuiSelectionContainer*) base;
#line 613 "widgets.vala"
	g_return_if_fail (allocation != NULL);
#line 615 "widgets.vala"
	_tmp0_ = *allocation;
#line 615 "widgets.vala"
	GTK_WIDGET_CLASS (synapse_gui_selection_container_parent_class)->size_allocate ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), &_tmp0_);
#line 616 "widgets.vala"
	_tmp1_ = self->children;
#line 616 "widgets.vala"
	_tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_);
#line 616 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 616 "widgets.vala"
	if (self->priv->active_child >= _tmp3_) {
#line 616 "widgets.vala"
		return;
#line 5039 "widgets.c"
	}
#line 617 "widgets.vala"
	_tmp4_ = self->children;
#line 617 "widgets.vala"
	_tmp5_ = gee_list_get (_tmp4_, self->priv->active_child);
#line 617 "widgets.vala"
	_tmp6_ = (GtkWidget*) _tmp5_;
#line 617 "widgets.vala"
	_tmp7_ = *allocation;
#line 617 "widgets.vala"
	gtk_widget_size_allocate (_tmp6_, &_tmp7_);
#line 617 "widgets.vala"
	_g_object_unref0 (_tmp6_);
#line 5053 "widgets.c"
}

static void
synapse_gui_selection_container_real_get_preferred_width (GtkWidget* base,
                                                          gint* min_width,
                                                          gint* nat_width)
{
	SynapseGuiSelectionContainer * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
	GeeList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	GeeList* _tmp3_;
	gpointer _tmp4_;
	GtkWidget* _tmp5_;
	gint _tmp6_ = 0;
	gint _tmp7_ = 0;
#line 620 "widgets.vala"
	self = (SynapseGuiSelectionContainer*) base;
#line 622 "widgets.vala"
	_tmp0_ = self->children;
#line 622 "widgets.vala"
	_tmp1_ = gee_collection_get_size ((GeeCollection*) _tmp0_);
#line 622 "widgets.vala"
	_tmp2_ = _tmp1_;
#line 622 "widgets.vala"
	if (self->priv->active_child >= _tmp2_) {
#line 623 "widgets.vala"
		_vala_nat_width = 0;
#line 623 "widgets.vala"
		_vala_min_width = _vala_nat_width;
#line 624 "widgets.vala"
		if (min_width) {
#line 624 "widgets.vala"
			*min_width = _vala_min_width;
#line 5090 "widgets.c"
		}
#line 624 "widgets.vala"
		if (nat_width) {
#line 624 "widgets.vala"
			*nat_width = _vala_nat_width;
#line 5096 "widgets.c"
		}
#line 624 "widgets.vala"
		return;
#line 5100 "widgets.c"
	}
#line 626 "widgets.vala"
	_tmp3_ = self->children;
#line 626 "widgets.vala"
	_tmp4_ = gee_list_get (_tmp3_, self->priv->active_child);
#line 626 "widgets.vala"
	_tmp5_ = (GtkWidget*) _tmp4_;
#line 626 "widgets.vala"
	gtk_widget_get_preferred_width (_tmp5_, &_tmp6_, &_tmp7_);
#line 626 "widgets.vala"
	_vala_min_width = _tmp6_;
#line 626 "widgets.vala"
	_vala_nat_width = _tmp7_;
#line 626 "widgets.vala"
	_g_object_unref0 (_tmp5_);
#line 620 "widgets.vala"
	if (min_width) {
#line 620 "widgets.vala"
		*min_width = _vala_min_width;
#line 5120 "widgets.c"
	}
#line 620 "widgets.vala"
	if (nat_width) {
#line 620 "widgets.vala"
		*nat_width = _vala_nat_width;
#line 5126 "widgets.c"
	}
}

static void
synapse_gui_selection_container_real_get_preferred_height (GtkWidget* base,
                                                           gint* min_height,
                                                           gint* nat_height)
{
	SynapseGuiSelectionContainer * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
	GeeList* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	GeeList* _tmp3_;
	gpointer _tmp4_;
	GtkWidget* _tmp5_;
	gint _tmp6_ = 0;
	gint _tmp7_ = 0;
#line 629 "widgets.vala"
	self = (SynapseGuiSelectionContainer*) base;
#line 631 "widgets.vala"
	_tmp0_ = self->children;
#line 631 "widgets.vala"
	_tmp1_ = gee_collection_get_size ((GeeCollection*) _tmp0_);
#line 631 "widgets.vala"
	_tmp2_ = _tmp1_;
#line 631 "widgets.vala"
	if (self->priv->active_child >= _tmp2_) {
#line 632 "widgets.vala"
		_vala_nat_height = 0;
#line 632 "widgets.vala"
		_vala_min_height = _vala_nat_height;
#line 633 "widgets.vala"
		if (min_height) {
#line 633 "widgets.vala"
			*min_height = _vala_min_height;
#line 5164 "widgets.c"
		}
#line 633 "widgets.vala"
		if (nat_height) {
#line 633 "widgets.vala"
			*nat_height = _vala_nat_height;
#line 5170 "widgets.c"
		}
#line 633 "widgets.vala"
		return;
#line 5174 "widgets.c"
	}
#line 635 "widgets.vala"
	_tmp3_ = self->children;
#line 635 "widgets.vala"
	_tmp4_ = gee_list_get (_tmp3_, self->priv->active_child);
#line 635 "widgets.vala"
	_tmp5_ = (GtkWidget*) _tmp4_;
#line 635 "widgets.vala"
	gtk_widget_get_preferred_height (_tmp5_, &_tmp6_, &_tmp7_);
#line 635 "widgets.vala"
	_vala_min_height = _tmp6_;
#line 635 "widgets.vala"
	_vala_nat_height = _tmp7_;
#line 635 "widgets.vala"
	_g_object_unref0 (_tmp5_);
#line 629 "widgets.vala"
	if (min_height) {
#line 629 "widgets.vala"
		*min_height = _vala_min_height;
#line 5194 "widgets.c"
	}
#line 629 "widgets.vala"
	if (nat_height) {
#line 629 "widgets.vala"
		*nat_height = _vala_nat_height;
#line 5200 "widgets.c"
	}
}

static void
synapse_gui_selection_container_class_init (SynapseGuiSelectionContainerClass * klass,
                                            gpointer klass_data)
{
#line 560 "widgets.vala"
	synapse_gui_selection_container_parent_class = g_type_class_peek_parent (klass);
#line 560 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiSelectionContainer_private_offset);
#line 560 "widgets.vala"
	((GtkContainerClass *) klass)->forall = (void (*) (GtkContainer*, gboolean, GtkCallback, gpointer)) synapse_gui_selection_container_real_forall_internal;
#line 560 "widgets.vala"
	((GtkContainerClass *) klass)->add = (void (*) (GtkContainer*, GtkWidget*)) synapse_gui_selection_container_real_add;
#line 560 "widgets.vala"
	((GtkContainerClass *) klass)->remove = (void (*) (GtkContainer*, GtkWidget*)) synapse_gui_selection_container_real_remove;
#line 560 "widgets.vala"
	((GtkWidgetClass *) klass)->size_allocate = (void (*) (GtkWidget*, GtkAllocation*)) synapse_gui_selection_container_real_size_allocate;
#line 560 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_selection_container_real_get_preferred_width;
#line 560 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_selection_container_real_get_preferred_height;
#line 560 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_selection_container_finalize;
#line 5226 "widgets.c"
}

static void
synapse_gui_selection_container_instance_init (SynapseGuiSelectionContainer * self,
                                               gpointer klass)
{
#line 560 "widgets.vala"
	self->priv = synapse_gui_selection_container_get_instance_private (self);
#line 563 "widgets.vala"
	self->priv->active_child = 0;
#line 5237 "widgets.c"
}

static void
synapse_gui_selection_container_finalize (GObject * obj)
{
	SynapseGuiSelectionContainer * self;
#line 560 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_SELECTION_CONTAINER, SynapseGuiSelectionContainer);
#line 562 "widgets.vala"
	_g_object_unref0 (self->children);
#line 560 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_selection_container_parent_class)->finalize (obj);
#line 5250 "widgets.c"
}

static GType
synapse_gui_selection_container_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiSelectionContainerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_selection_container_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiSelectionContainer), 0, (GInstanceInitFunc) synapse_gui_selection_container_instance_init, NULL };
	GType synapse_gui_selection_container_type_id;
	synapse_gui_selection_container_type_id = g_type_register_static (gtk_container_get_type (), "SynapseGuiSelectionContainer", &g_define_type_info, 0);
	SynapseGuiSelectionContainer_private_offset = g_type_add_instance_private (synapse_gui_selection_container_type_id, sizeof (SynapseGuiSelectionContainerPrivate));
	return synapse_gui_selection_container_type_id;
}

GType
synapse_gui_selection_container_get_type (void)
{
	static volatile gsize synapse_gui_selection_container_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_selection_container_type_id__once)) {
		GType synapse_gui_selection_container_type_id;
		synapse_gui_selection_container_type_id = synapse_gui_selection_container_get_type_once ();
		g_once_init_leave (&synapse_gui_selection_container_type_id__once, synapse_gui_selection_container_type_id);
	}
	return synapse_gui_selection_container_type_id__once;
}

static gboolean
synapse_gui_throbber_real_draw (GtkWidget* base,
                                cairo_t* ctx)
{
	SynapseGuiThrobber * self;
	gboolean _tmp0_;
	gboolean _tmp1_;
	gboolean result;
#line 646 "widgets.vala"
	self = (SynapseGuiThrobber*) base;
#line 646 "widgets.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 648 "widgets.vala"
	g_object_get ((GtkSpinner*) self, "active", &_tmp0_, NULL);
#line 648 "widgets.vala"
	_tmp1_ = _tmp0_;
#line 648 "widgets.vala"
	if (_tmp1_) {
#line 650 "widgets.vala"
		result = GTK_WIDGET_CLASS (synapse_gui_throbber_parent_class)->draw ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_spinner_get_type (), GtkSpinner), ctx);
#line 650 "widgets.vala"
		return result;
#line 5297 "widgets.c"
	}
#line 652 "widgets.vala"
	result = TRUE;
#line 652 "widgets.vala"
	return result;
#line 5303 "widgets.c"
}

SynapseGuiThrobber*
synapse_gui_throbber_construct (GType object_type)
{
	SynapseGuiThrobber * self = NULL;
#line 639 "widgets.vala"
	self = (SynapseGuiThrobber*) g_object_new (object_type, NULL);
#line 639 "widgets.vala"
	return self;
#line 5314 "widgets.c"
}

SynapseGuiThrobber*
synapse_gui_throbber_new (void)
{
#line 639 "widgets.vala"
	return synapse_gui_throbber_construct (SYNAPSE_GUI_TYPE_THROBBER);
#line 5322 "widgets.c"
}

static void
_gtk_widget_queue_draw_g_object_notify (GObject* _sender,
                                        GParamSpec* pspec,
                                        gpointer self)
{
#line 643 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 5332 "widgets.c"
}

static GObject *
synapse_gui_throbber_constructor (GType type,
                                  guint n_construct_properties,
                                  GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseGuiThrobber * self;
#line 641 "widgets.vala"
	parent_class = G_OBJECT_CLASS (synapse_gui_throbber_parent_class);
#line 641 "widgets.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 641 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_THROBBER, SynapseGuiThrobber);
#line 643 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::active", (GCallback) _gtk_widget_queue_draw_g_object_notify, (GtkWidget*) self, 0);
#line 641 "widgets.vala"
	return obj;
#line 5353 "widgets.c"
}

static void
synapse_gui_throbber_class_init (SynapseGuiThrobberClass * klass,
                                 gpointer klass_data)
{
#line 639 "widgets.vala"
	synapse_gui_throbber_parent_class = g_type_class_peek_parent (klass);
#line 639 "widgets.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_throbber_real_draw;
#line 639 "widgets.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_gui_throbber_constructor;
#line 5366 "widgets.c"
}

static void
synapse_gui_throbber_instance_init (SynapseGuiThrobber * self,
                                    gpointer klass)
{
}

static GType
synapse_gui_throbber_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiThrobberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_throbber_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiThrobber), 0, (GInstanceInitFunc) synapse_gui_throbber_instance_init, NULL };
	GType synapse_gui_throbber_type_id;
	synapse_gui_throbber_type_id = g_type_register_static (gtk_spinner_get_type (), "SynapseGuiThrobber", &g_define_type_info, 0);
	return synapse_gui_throbber_type_id;
}

GType
synapse_gui_throbber_get_type (void)
{
	static volatile gsize synapse_gui_throbber_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_throbber_type_id__once)) {
		GType synapse_gui_throbber_type_id;
		synapse_gui_throbber_type_id = synapse_gui_throbber_get_type_once ();
		g_once_init_leave (&synapse_gui_throbber_type_id__once, synapse_gui_throbber_type_id);
	}
	return synapse_gui_throbber_type_id__once;
}

static inline gpointer
synapse_gui_sensitive_widget_get_instance_private (SynapseGuiSensitiveWidget* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiSensitiveWidget_private_offset);
}

SynapseGuiSensitiveWidget*
synapse_gui_sensitive_widget_construct (GType object_type,
                                        GtkWidget* widget)
{
	SynapseGuiSensitiveWidget * self = NULL;
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
#line 661 "widgets.vala"
	g_return_val_if_fail (widget != NULL, NULL);
#line 661 "widgets.vala"
	self = (SynapseGuiSensitiveWidget*) g_object_new (object_type, NULL);
#line 663 "widgets.vala"
	gtk_event_box_set_above_child ((GtkEventBox*) self, FALSE);
#line 664 "widgets.vala"
	gtk_event_box_set_visible_window ((GtkEventBox*) self, FALSE);
#line 665 "widgets.vala"
	gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
#line 667 "widgets.vala"
	_tmp0_ = _g_object_ref0 (widget);
#line 667 "widgets.vala"
	_g_object_unref0 (self->priv->_widget);
#line 667 "widgets.vala"
	self->priv->_widget = _tmp0_;
#line 668 "widgets.vala"
	_tmp1_ = self->priv->_widget;
#line 668 "widgets.vala"
	gtk_container_add ((GtkContainer*) self, _tmp1_);
#line 669 "widgets.vala"
	_tmp2_ = self->priv->_widget;
#line 669 "widgets.vala"
	gtk_widget_show (_tmp2_);
#line 661 "widgets.vala"
	return self;
#line 5436 "widgets.c"
}

SynapseGuiSensitiveWidget*
synapse_gui_sensitive_widget_new (GtkWidget* widget)
{
#line 661 "widgets.vala"
	return synapse_gui_sensitive_widget_construct (SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET, widget);
#line 5444 "widgets.c"
}

static gboolean
synapse_gui_sensitive_widget_real_draw (GtkWidget* base,
                                        cairo_t* ctx)
{
	SynapseGuiSensitiveWidget * self;
	GtkWidget* _tmp0_;
	gboolean result;
#line 672 "widgets.vala"
	self = (SynapseGuiSensitiveWidget*) base;
#line 672 "widgets.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 674 "widgets.vala"
	_tmp0_ = gtk_bin_get_child ((GtkBin*) self);
#line 674 "widgets.vala"
	gtk_container_propagate_draw ((GtkContainer*) self, _tmp0_, ctx);
#line 675 "widgets.vala"
	result = TRUE;
#line 675 "widgets.vala"
	return result;
#line 5466 "widgets.c"
}

GtkWidget*
synapse_gui_sensitive_widget_get_widget (SynapseGuiSensitiveWidget* self)
{
	GtkWidget* result;
	GtkWidget* _tmp0_;
#line 659 "widgets.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 659 "widgets.vala"
	_tmp0_ = self->priv->_widget;
#line 659 "widgets.vala"
	result = _tmp0_;
#line 659 "widgets.vala"
	return result;
#line 5482 "widgets.c"
}

static void
synapse_gui_sensitive_widget_class_init (SynapseGuiSensitiveWidgetClass * klass,
                                         gpointer klass_data)
{
#line 656 "widgets.vala"
	synapse_gui_sensitive_widget_parent_class = g_type_class_peek_parent (klass);
#line 656 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiSensitiveWidget_private_offset);
#line 656 "widgets.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_sensitive_widget_real_draw;
#line 656 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_sensitive_widget_get_property;
#line 656 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_sensitive_widget_finalize;
#line 656 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_SENSITIVE_WIDGET_WIDGET_PROPERTY, synapse_gui_sensitive_widget_properties[SYNAPSE_GUI_SENSITIVE_WIDGET_WIDGET_PROPERTY] = g_param_spec_object ("widget", "widget", "widget", gtk_widget_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
#line 5501 "widgets.c"
}

static void
synapse_gui_sensitive_widget_instance_init (SynapseGuiSensitiveWidget * self,
                                            gpointer klass)
{
#line 656 "widgets.vala"
	self->priv = synapse_gui_sensitive_widget_get_instance_private (self);
#line 5510 "widgets.c"
}

static void
synapse_gui_sensitive_widget_finalize (GObject * obj)
{
	SynapseGuiSensitiveWidget * self;
#line 656 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET, SynapseGuiSensitiveWidget);
#line 658 "widgets.vala"
	_g_object_unref0 (self->priv->_widget);
#line 656 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_sensitive_widget_parent_class)->finalize (obj);
#line 5523 "widgets.c"
}

static GType
synapse_gui_sensitive_widget_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiSensitiveWidgetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_sensitive_widget_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiSensitiveWidget), 0, (GInstanceInitFunc) synapse_gui_sensitive_widget_instance_init, NULL };
	GType synapse_gui_sensitive_widget_type_id;
	synapse_gui_sensitive_widget_type_id = g_type_register_static (gtk_event_box_get_type (), "SynapseGuiSensitiveWidget", &g_define_type_info, 0);
	SynapseGuiSensitiveWidget_private_offset = g_type_add_instance_private (synapse_gui_sensitive_widget_type_id, sizeof (SynapseGuiSensitiveWidgetPrivate));
	return synapse_gui_sensitive_widget_type_id;
}

GType
synapse_gui_sensitive_widget_get_type (void)
{
	static volatile gsize synapse_gui_sensitive_widget_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_sensitive_widget_type_id__once)) {
		GType synapse_gui_sensitive_widget_type_id;
		synapse_gui_sensitive_widget_type_id = synapse_gui_sensitive_widget_get_type_once ();
		g_once_init_leave (&synapse_gui_sensitive_widget_type_id__once, synapse_gui_sensitive_widget_type_id);
	}
	return synapse_gui_sensitive_widget_type_id__once;
}

static void
_vala_synapse_gui_sensitive_widget_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec)
{
	SynapseGuiSensitiveWidget * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_SENSITIVE_WIDGET, SynapseGuiSensitiveWidget);
#line 656 "widgets.vala"
	switch (property_id) {
#line 656 "widgets.vala"
		case SYNAPSE_GUI_SENSITIVE_WIDGET_WIDGET_PROPERTY:
#line 656 "widgets.vala"
		g_value_set_object (value, synapse_gui_sensitive_widget_get_widget (self));
#line 656 "widgets.vala"
		break;
#line 5564 "widgets.c"
		default:
#line 656 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 656 "widgets.vala"
		break;
#line 5570 "widgets.c"
	}
}

static inline gpointer
synapse_gui_named_icon_get_instance_private (SynapseGuiNamedIcon* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiNamedIcon_private_offset);
}

void
synapse_gui_named_icon_size_request (SynapseGuiNamedIcon* self,
                                     GtkRequisition* req)
{
	GtkRequisition _vala_req = {0};
	gint _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GtkRequisition _tmp4_ = {0};
	gboolean _tmp5_ = FALSE;
	GtkRequisition _tmp6_;
#line 691 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 693 "widgets.vala"
	g_object_get ((GtkWidget*) self, "width-request", &_tmp0_, NULL);
#line 693 "widgets.vala"
	_tmp1_ = _tmp0_;
#line 693 "widgets.vala"
	g_object_get ((GtkWidget*) self, "height-request", &_tmp2_, NULL);
#line 693 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 693 "widgets.vala"
	_tmp4_.width = _tmp1_;
#line 693 "widgets.vala"
	_tmp4_.height = _tmp3_;
#line 693 "widgets.vala"
	_vala_req = _tmp4_;
#line 697 "widgets.vala"
	_tmp6_ = _vala_req;
#line 697 "widgets.vala"
	if (_tmp6_.width <= 0) {
#line 5612 "widgets.c"
		GtkRequisition _tmp7_;
#line 697 "widgets.vala"
		_tmp7_ = _vala_req;
#line 697 "widgets.vala"
		_tmp5_ = _tmp7_.height <= 0;
#line 5618 "widgets.c"
	} else {
#line 697 "widgets.vala"
		_tmp5_ = FALSE;
#line 5622 "widgets.c"
	}
#line 697 "widgets.vala"
	if (_tmp5_) {
#line 5626 "widgets.c"
		gint _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
		gint _tmp12_;
		gint _tmp13_;
#line 699 "widgets.vala"
		g_object_get ((GtkMisc*) self, "xpad", &_tmp8_, NULL);
#line 699 "widgets.vala"
		_tmp9_ = _tmp8_;
#line 699 "widgets.vala"
		_vala_req.width = _tmp9_ * 2;
#line 700 "widgets.vala"
		g_object_get ((GtkMisc*) self, "ypad", &_tmp10_, NULL);
#line 700 "widgets.vala"
		_tmp11_ = _tmp10_;
#line 700 "widgets.vala"
		_vala_req.height = _tmp11_ * 2;
#line 701 "widgets.vala"
		_tmp12_ = gtk_image_get_pixel_size ((GtkImage*) self);
#line 701 "widgets.vala"
		_tmp13_ = _tmp12_;
#line 701 "widgets.vala"
		if (_tmp13_ >= 0) {
#line 5651 "widgets.c"
			gint _tmp14_;
			gint _tmp15_;
			gint _tmp16_;
			gint _tmp17_;
#line 703 "widgets.vala"
			_tmp14_ = gtk_image_get_pixel_size ((GtkImage*) self);
#line 703 "widgets.vala"
			_tmp15_ = _tmp14_;
#line 703 "widgets.vala"
			_vala_req.width = _vala_req.width + _tmp15_;
#line 704 "widgets.vala"
			_tmp16_ = gtk_image_get_pixel_size ((GtkImage*) self);
#line 704 "widgets.vala"
			_tmp17_ = _tmp16_;
#line 704 "widgets.vala"
			_vala_req.height = _vala_req.height + _tmp17_;
#line 5668 "widgets.c"
		}
	}
#line 691 "widgets.vala"
	if (req) {
#line 691 "widgets.vala"
		*req = _vala_req;
#line 5675 "widgets.c"
	}
}

static void
synapse_gui_named_icon_real_get_preferred_width (GtkWidget* base,
                                                 gint* min_width,
                                                 gint* nat_width)
{
	SynapseGuiNamedIcon * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
	GtkRequisition req = {0};
	GtkRequisition _tmp0_ = {0};
	GtkRequisition _tmp1_;
#line 709 "widgets.vala"
	self = (SynapseGuiNamedIcon*) base;
#line 712 "widgets.vala"
	synapse_gui_named_icon_size_request (self, &_tmp0_);
#line 712 "widgets.vala"
	req = _tmp0_;
#line 713 "widgets.vala"
	_tmp1_ = req;
#line 713 "widgets.vala"
	_vala_nat_width = _tmp1_.width;
#line 713 "widgets.vala"
	_vala_min_width = _vala_nat_width;
#line 709 "widgets.vala"
	if (min_width) {
#line 709 "widgets.vala"
		*min_width = _vala_min_width;
#line 5706 "widgets.c"
	}
#line 709 "widgets.vala"
	if (nat_width) {
#line 709 "widgets.vala"
		*nat_width = _vala_nat_width;
#line 5712 "widgets.c"
	}
}

static void
synapse_gui_named_icon_real_get_preferred_height (GtkWidget* base,
                                                  gint* min_height,
                                                  gint* nat_height)
{
	SynapseGuiNamedIcon * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
	GtkRequisition req = {0};
	GtkRequisition _tmp0_ = {0};
	GtkRequisition _tmp1_;
#line 716 "widgets.vala"
	self = (SynapseGuiNamedIcon*) base;
#line 719 "widgets.vala"
	synapse_gui_named_icon_size_request (self, &_tmp0_);
#line 719 "widgets.vala"
	req = _tmp0_;
#line 720 "widgets.vala"
	_tmp1_ = req;
#line 720 "widgets.vala"
	_vala_nat_height = _tmp1_.height;
#line 720 "widgets.vala"
	_vala_min_height = _vala_nat_height;
#line 716 "widgets.vala"
	if (min_height) {
#line 716 "widgets.vala"
		*min_height = _vala_min_height;
#line 5743 "widgets.c"
	}
#line 716 "widgets.vala"
	if (nat_height) {
#line 716 "widgets.vala"
		*nat_height = _vala_nat_height;
#line 5749 "widgets.c"
	}
}

static gboolean
synapse_gui_named_icon_real_draw (GtkWidget* base,
                                  cairo_t* ctx)
{
	SynapseGuiNamedIcon * self;
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
	GtkAllocation allocation = {0};
	GtkAllocation _tmp3_ = {0};
	gint w = 0;
	GtkAllocation _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gint h = 0;
	GtkAllocation _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	gint _tmp11_;
	gint _tmp12_;
	gint _tmp13_;
	gint _tmp14_ = 0;
	gint _tmp15_;
	gint _tmp16_;
	GdkPixbuf* icon_pixbuf = NULL;
	SynapseGuiIconCacheService* _tmp21_;
	SynapseGuiIconCacheService* _tmp22_;
	const gchar* _tmp23_;
	GdkPixbuf* _tmp24_;
	GdkPixbuf* _tmp25_;
	GdkPixbuf* _tmp26_;
	GdkPixbuf* _tmp27_;
	GdkPixbuf* _tmp28_;
	GdkPixbuf* _tmp29_;
	gboolean result;
#line 723 "widgets.vala"
	self = (SynapseGuiNamedIcon*) base;
#line 723 "widgets.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 725 "widgets.vala"
	_tmp1_ = self->priv->current;
#line 725 "widgets.vala"
	if (_tmp1_ == NULL) {
#line 725 "widgets.vala"
		_tmp0_ = TRUE;
#line 5798 "widgets.c"
	} else {
		const gchar* _tmp2_;
#line 725 "widgets.vala"
		_tmp2_ = self->priv->current;
#line 725 "widgets.vala"
		_tmp0_ = g_strcmp0 (_tmp2_, "") == 0;
#line 5805 "widgets.c"
	}
#line 725 "widgets.vala"
	if (_tmp0_) {
#line 725 "widgets.vala"
		result = TRUE;
#line 725 "widgets.vala"
		return result;
#line 5813 "widgets.c"
	}
#line 726 "widgets.vala"
	cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
#line 729 "widgets.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp3_);
#line 729 "widgets.vala"
	allocation = _tmp3_;
#line 731 "widgets.vala"
	_tmp4_ = allocation;
#line 731 "widgets.vala"
	g_object_get ((GtkMisc*) self, "xpad", &_tmp5_, NULL);
#line 731 "widgets.vala"
	_tmp6_ = _tmp5_;
#line 731 "widgets.vala"
	w = _tmp4_.width - (_tmp6_ * 2);
#line 732 "widgets.vala"
	_tmp7_ = allocation;
#line 732 "widgets.vala"
	g_object_get ((GtkMisc*) self, "ypad", &_tmp8_, NULL);
#line 732 "widgets.vala"
	_tmp9_ = _tmp8_;
#line 732 "widgets.vala"
	h = _tmp7_.height - (_tmp9_ * 2);
#line 733 "widgets.vala"
	g_object_get ((GtkMisc*) self, "xpad", &_tmp10_, NULL);
#line 733 "widgets.vala"
	_tmp11_ = _tmp10_;
#line 733 "widgets.vala"
	g_object_get ((GtkMisc*) self, "ypad", &_tmp12_, NULL);
#line 733 "widgets.vala"
	_tmp13_ = _tmp12_;
#line 733 "widgets.vala"
	cairo_translate (ctx, (gdouble) _tmp11_, (gdouble) _tmp13_);
#line 734 "widgets.vala"
	cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) w, (gdouble) h);
#line 735 "widgets.vala"
	cairo_clip (ctx);
#line 738 "widgets.vala"
	_tmp15_ = gtk_image_get_pixel_size ((GtkImage*) self);
#line 738 "widgets.vala"
	_tmp16_ = _tmp15_;
#line 738 "widgets.vala"
	if (_tmp16_ <= 0) {
#line 5857 "widgets.c"
		GtkAllocation _tmp17_;
		GtkAllocation _tmp18_;
#line 738 "widgets.vala"
		_tmp17_ = allocation;
#line 738 "widgets.vala"
		_tmp18_ = allocation;
#line 738 "widgets.vala"
		_tmp14_ = MIN (_tmp17_.width, _tmp18_.height);
#line 5866 "widgets.c"
	} else {
		gint _tmp19_;
		gint _tmp20_;
#line 738 "widgets.vala"
		_tmp19_ = gtk_image_get_pixel_size ((GtkImage*) self);
#line 738 "widgets.vala"
		_tmp20_ = _tmp19_;
#line 738 "widgets.vala"
		_tmp14_ = _tmp20_;
#line 5876 "widgets.c"
	}
#line 737 "widgets.vala"
	_tmp21_ = synapse_gui_icon_cache_service_get_default ();
#line 737 "widgets.vala"
	_tmp22_ = _tmp21_;
#line 737 "widgets.vala"
	_tmp23_ = self->priv->current;
#line 737 "widgets.vala"
	_tmp24_ = synapse_gui_icon_cache_service_get_icon (_tmp22_, _tmp23_, _tmp14_);
#line 737 "widgets.vala"
	_tmp25_ = _tmp24_;
#line 737 "widgets.vala"
	_g_object_unref0 (_tmp22_);
#line 737 "widgets.vala"
	icon_pixbuf = _tmp25_;
#line 740 "widgets.vala"
	_tmp26_ = icon_pixbuf;
#line 740 "widgets.vala"
	if (_tmp26_ == NULL) {
#line 740 "widgets.vala"
		result = TRUE;
#line 740 "widgets.vala"
		_g_object_unref0 (icon_pixbuf);
#line 740 "widgets.vala"
		return result;
#line 5902 "widgets.c"
	}
#line 742 "widgets.vala"
	_tmp27_ = icon_pixbuf;
#line 742 "widgets.vala"
	_tmp28_ = icon_pixbuf;
#line 742 "widgets.vala"
	_tmp29_ = icon_pixbuf;
#line 742 "widgets.vala"
	gdk_cairo_set_source_pixbuf (ctx, _tmp27_, (gdouble) ((w - gdk_pixbuf_get_width (_tmp28_)) / 2), (gdouble) ((h - gdk_pixbuf_get_height (_tmp29_)) / 2));
#line 745 "widgets.vala"
	cairo_paint (ctx);
#line 747 "widgets.vala"
	result = TRUE;
#line 747 "widgets.vala"
	_g_object_unref0 (icon_pixbuf);
#line 747 "widgets.vala"
	return result;
#line 5920 "widgets.c"
}

void
synapse_gui_named_icon_clear (SynapseGuiNamedIcon* self)
{
	gchar* _tmp0_;
#line 749 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 751 "widgets.vala"
	_tmp0_ = g_strdup ("");
#line 751 "widgets.vala"
	_g_free0 (self->priv->current);
#line 751 "widgets.vala"
	self->priv->current = _tmp0_;
#line 752 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 5937 "widgets.c"
}

void
synapse_gui_named_icon_set_icon_name (SynapseGuiNamedIcon* self,
                                      const gchar* name,
                                      GtkIconSize size)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
#line 754 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 756 "widgets.vala"
	if (name == NULL) {
#line 757 "widgets.vala"
		name = "";
#line 5953 "widgets.c"
	}
#line 758 "widgets.vala"
	_tmp1_ = self->priv->current;
#line 758 "widgets.vala"
	if (g_strcmp0 (name, _tmp1_) == 0) {
#line 758 "widgets.vala"
		_tmp0_ = g_strcmp0 (name, "") != 0;
#line 5961 "widgets.c"
	} else {
#line 758 "widgets.vala"
		_tmp0_ = FALSE;
#line 5965 "widgets.c"
	}
#line 758 "widgets.vala"
	if (_tmp0_) {
#line 759 "widgets.vala"
		return;
#line 5971 "widgets.c"
	} else {
		gchar* _tmp3_;
#line 762 "widgets.vala"
		if (g_strcmp0 (name, "") == 0) {
#line 5976 "widgets.c"
			const gchar* _tmp2_;
#line 764 "widgets.vala"
			_tmp2_ = self->priv->_not_found_name;
#line 764 "widgets.vala"
			name = _tmp2_;
#line 5982 "widgets.c"
		}
#line 766 "widgets.vala"
		_tmp3_ = g_strdup (name);
#line 766 "widgets.vala"
		_g_free0 (self->priv->current);
#line 766 "widgets.vala"
		self->priv->current = _tmp3_;
#line 767 "widgets.vala"
		self->priv->current_size = size;
#line 768 "widgets.vala"
		gtk_widget_queue_draw ((GtkWidget*) self);
#line 5994 "widgets.c"
	}
}

SynapseGuiNamedIcon*
synapse_gui_named_icon_construct (GType object_type)
{
	SynapseGuiNamedIcon * self = NULL;
#line 679 "widgets.vala"
	self = (SynapseGuiNamedIcon*) g_object_new (object_type, NULL);
#line 679 "widgets.vala"
	return self;
#line 6006 "widgets.c"
}

SynapseGuiNamedIcon*
synapse_gui_named_icon_new (void)
{
#line 679 "widgets.vala"
	return synapse_gui_named_icon_construct (SYNAPSE_GUI_TYPE_NAMED_ICON);
#line 6014 "widgets.c"
}

const gchar*
synapse_gui_named_icon_get_not_found_name (SynapseGuiNamedIcon* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 681 "widgets.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 681 "widgets.vala"
	_tmp0_ = self->priv->_not_found_name;
#line 681 "widgets.vala"
	result = _tmp0_;
#line 681 "widgets.vala"
	return result;
#line 6030 "widgets.c"
}

void
synapse_gui_named_icon_set_not_found_name (SynapseGuiNamedIcon* self,
                                           const gchar* value)
{
	gchar* old_value;
#line 681 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 681 "widgets.vala"
	old_value = synapse_gui_named_icon_get_not_found_name (self);
#line 681 "widgets.vala"
	if (g_strcmp0 (value, old_value) != 0) {
#line 6044 "widgets.c"
		gchar* _tmp0_;
#line 681 "widgets.vala"
		_tmp0_ = g_strdup (value);
#line 681 "widgets.vala"
		_g_free0 (self->priv->_not_found_name);
#line 681 "widgets.vala"
		self->priv->_not_found_name = _tmp0_;
#line 681 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_named_icon_properties[SYNAPSE_GUI_NAMED_ICON_NOT_FOUND_NAME_PROPERTY]);
#line 6054 "widgets.c"
	}
}

static GObject *
synapse_gui_named_icon_constructor (GType type,
                                    guint n_construct_properties,
                                    GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseGuiNamedIcon * self;
	gchar* _tmp0_;
#line 685 "widgets.vala"
	parent_class = G_OBJECT_CLASS (synapse_gui_named_icon_parent_class);
#line 685 "widgets.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 685 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_NAMED_ICON, SynapseGuiNamedIcon);
#line 687 "widgets.vala"
	_tmp0_ = g_strdup ("");
#line 687 "widgets.vala"
	_g_free0 (self->priv->current);
#line 687 "widgets.vala"
	self->priv->current = _tmp0_;
#line 688 "widgets.vala"
	self->priv->current_size = GTK_ICON_SIZE_DIALOG;
#line 685 "widgets.vala"
	return obj;
#line 6083 "widgets.c"
}

static void
synapse_gui_named_icon_class_init (SynapseGuiNamedIconClass * klass,
                                   gpointer klass_data)
{
#line 679 "widgets.vala"
	synapse_gui_named_icon_parent_class = g_type_class_peek_parent (klass);
#line 679 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiNamedIcon_private_offset);
#line 679 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_named_icon_real_get_preferred_width;
#line 679 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_named_icon_real_get_preferred_height;
#line 679 "widgets.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_named_icon_real_draw;
#line 679 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_named_icon_get_property;
#line 679 "widgets.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_named_icon_set_property;
#line 679 "widgets.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_gui_named_icon_constructor;
#line 679 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_named_icon_finalize;
#line 679 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_NAMED_ICON_NOT_FOUND_NAME_PROPERTY, synapse_gui_named_icon_properties[SYNAPSE_GUI_NAMED_ICON_NOT_FOUND_NAME_PROPERTY] = g_param_spec_string ("not-found-name", "not-found-name", "not-found-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 6110 "widgets.c"
}

static void
synapse_gui_named_icon_instance_init (SynapseGuiNamedIcon * self,
                                      gpointer klass)
{
	gchar* _tmp0_;
#line 679 "widgets.vala"
	self->priv = synapse_gui_named_icon_get_instance_private (self);
#line 681 "widgets.vala"
	_tmp0_ = g_strdup ("unknown");
#line 681 "widgets.vala"
	self->priv->_not_found_name = _tmp0_;
#line 6124 "widgets.c"
}

static void
synapse_gui_named_icon_finalize (GObject * obj)
{
	SynapseGuiNamedIcon * self;
#line 679 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_NAMED_ICON, SynapseGuiNamedIcon);
#line 681 "widgets.vala"
	_g_free0 (self->priv->_not_found_name);
#line 682 "widgets.vala"
	_g_free0 (self->priv->current);
#line 679 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_named_icon_parent_class)->finalize (obj);
#line 6139 "widgets.c"
}

static GType
synapse_gui_named_icon_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiNamedIconClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_named_icon_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiNamedIcon), 0, (GInstanceInitFunc) synapse_gui_named_icon_instance_init, NULL };
	GType synapse_gui_named_icon_type_id;
	synapse_gui_named_icon_type_id = g_type_register_static (gtk_image_get_type (), "SynapseGuiNamedIcon", &g_define_type_info, 0);
	SynapseGuiNamedIcon_private_offset = g_type_add_instance_private (synapse_gui_named_icon_type_id, sizeof (SynapseGuiNamedIconPrivate));
	return synapse_gui_named_icon_type_id;
}

GType
synapse_gui_named_icon_get_type (void)
{
	static volatile gsize synapse_gui_named_icon_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_named_icon_type_id__once)) {
		GType synapse_gui_named_icon_type_id;
		synapse_gui_named_icon_type_id = synapse_gui_named_icon_get_type_once ();
		g_once_init_leave (&synapse_gui_named_icon_type_id__once, synapse_gui_named_icon_type_id);
	}
	return synapse_gui_named_icon_type_id__once;
}

static void
_vala_synapse_gui_named_icon_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec)
{
	SynapseGuiNamedIcon * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_NAMED_ICON, SynapseGuiNamedIcon);
#line 679 "widgets.vala"
	switch (property_id) {
#line 679 "widgets.vala"
		case SYNAPSE_GUI_NAMED_ICON_NOT_FOUND_NAME_PROPERTY:
#line 679 "widgets.vala"
		g_value_set_string (value, synapse_gui_named_icon_get_not_found_name (self));
#line 679 "widgets.vala"
		break;
#line 6180 "widgets.c"
		default:
#line 679 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 679 "widgets.vala"
		break;
#line 6186 "widgets.c"
	}
}

static void
_vala_synapse_gui_named_icon_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec)
{
	SynapseGuiNamedIcon * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_NAMED_ICON, SynapseGuiNamedIcon);
#line 679 "widgets.vala"
	switch (property_id) {
#line 679 "widgets.vala"
		case SYNAPSE_GUI_NAMED_ICON_NOT_FOUND_NAME_PROPERTY:
#line 679 "widgets.vala"
		synapse_gui_named_icon_set_not_found_name (self, g_value_get_string (value));
#line 679 "widgets.vala"
		break;
#line 6206 "widgets.c"
		default:
#line 679 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 679 "widgets.vala"
		break;
#line 6212 "widgets.c"
	}
}

static inline gpointer
synapse_gui_fake_input_get_instance_private (SynapseGuiFakeInput* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiFakeInput_private_offset);
}

static gboolean
synapse_gui_fake_input_real_draw (GtkWidget* base,
                                  cairo_t* ctx)
{
	SynapseGuiFakeInput * self;
	gboolean _tmp0_;
	gboolean result;
#line 808 "widgets.vala"
	self = (SynapseGuiFakeInput*) base;
#line 808 "widgets.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 810 "widgets.vala"
	_tmp0_ = self->priv->_draw_input;
#line 810 "widgets.vala"
	if (_tmp0_) {
#line 6237 "widgets.c"
		GtkAllocation allocation = {0};
		GtkAllocation _tmp1_ = {0};
		GtkAllocation _tmp2_;
		GtkAllocation _tmp3_;
		GdkRectangle _tmp4_ = {0};
		gdouble x = 0.0;
		guint _tmp5_;
		guint _tmp6_;
		gdouble y = 0.0;
		guint _tmp7_;
		guint _tmp8_;
		gdouble w = 0.0;
		GtkAllocation _tmp9_;
		guint _tmp10_;
		guint _tmp11_;
		guint _tmp12_;
		guint _tmp13_;
		gdouble h = 0.0;
		GtkAllocation _tmp14_;
		guint _tmp15_;
		guint _tmp16_;
		guint _tmp17_;
		guint _tmp18_;
		gdouble _tmp19_;
		SynapseGuiUtilsColorHelper* _tmp20_;
		cairo_pattern_t* pat = NULL;
		gdouble _tmp25_;
		cairo_pattern_t* _tmp26_;
		SynapseGuiUtilsColorHelper* _tmp27_;
		cairo_pattern_t* _tmp28_;
		gdouble _tmp29_;
		SynapseGuiUtilsColorHelper* _tmp30_;
		cairo_pattern_t* _tmp31_;
		gdouble _tmp32_;
		SynapseGuiUtilsColorHelper* _tmp33_;
		cairo_pattern_t* _tmp34_;
		cairo_pattern_t* _tmp35_;
		GtkWidget* _tmp36_;
		gdouble _tmp50_;
		SynapseGuiUtilsColorHelper* _tmp51_;
		gdouble _tmp52_;
#line 813 "widgets.vala"
		gtk_widget_get_allocation ((GtkWidget*) self, &_tmp1_);
#line 813 "widgets.vala"
		allocation = _tmp1_;
#line 815 "widgets.vala"
		cairo_save (ctx);
#line 816 "widgets.vala"
		cairo_translate (ctx, 1.5, 1.5);
#line 817 "widgets.vala"
		cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
#line 818 "widgets.vala"
		cairo_set_line_width (ctx, 1.25);
#line 820 "widgets.vala"
		_tmp2_ = allocation;
#line 820 "widgets.vala"
		_tmp3_ = allocation;
#line 820 "widgets.vala"
		_tmp4_.x = 0;
#line 820 "widgets.vala"
		_tmp4_.y = 0;
#line 820 "widgets.vala"
		_tmp4_.width = _tmp2_.width;
#line 820 "widgets.vala"
		_tmp4_.height = _tmp3_.height;
#line 820 "widgets.vala"
		gdk_cairo_rectangle (ctx, &_tmp4_);
#line 821 "widgets.vala"
		cairo_clip (ctx);
#line 822 "widgets.vala"
		cairo_save (ctx);
#line 824 "widgets.vala"
		g_object_get ((GtkAlignment*) self, "left-padding", &_tmp5_, NULL);
#line 824 "widgets.vala"
		_tmp6_ = _tmp5_;
#line 824 "widgets.vala"
		x = (gdouble) _tmp6_;
#line 825 "widgets.vala"
		g_object_get ((GtkAlignment*) self, "top-padding", &_tmp7_, NULL);
#line 825 "widgets.vala"
		_tmp8_ = _tmp7_;
#line 825 "widgets.vala"
		y = (gdouble) _tmp8_;
#line 826 "widgets.vala"
		_tmp9_ = allocation;
#line 826 "widgets.vala"
		g_object_get ((GtkAlignment*) self, "left-padding", &_tmp10_, NULL);
#line 826 "widgets.vala"
		_tmp11_ = _tmp10_;
#line 826 "widgets.vala"
		g_object_get ((GtkAlignment*) self, "right-padding", &_tmp12_, NULL);
#line 826 "widgets.vala"
		_tmp13_ = _tmp12_;
#line 826 "widgets.vala"
		w = ((_tmp9_.width - _tmp11_) - _tmp13_) - 3.0;
#line 827 "widgets.vala"
		_tmp14_ = allocation;
#line 827 "widgets.vala"
		g_object_get ((GtkAlignment*) self, "top-padding", &_tmp15_, NULL);
#line 827 "widgets.vala"
		_tmp16_ = _tmp15_;
#line 827 "widgets.vala"
		g_object_get ((GtkAlignment*) self, "bottom-padding", &_tmp17_, NULL);
#line 827 "widgets.vala"
		_tmp18_ = _tmp17_;
#line 827 "widgets.vala"
		h = ((_tmp14_.height - _tmp16_) - _tmp18_) - 3.0;
#line 828 "widgets.vala"
		_tmp19_ = self->priv->_border_radius;
#line 828 "widgets.vala"
		synapse_gui_utils_cairo_rounded_rect (ctx, x, y, w, h, _tmp19_);
#line 829 "widgets.vala"
		_tmp20_ = self->priv->ch;
#line 829 "widgets.vala"
		if (!synapse_gui_utils_color_helper_is_dark_color (_tmp20_, SYNAPSE_GUI_STYLE_TYPE_FG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL)) {
#line 6353 "widgets.c"
			SynapseGuiUtilsColorHelper* _tmp21_;
			gdouble _tmp22_;
#line 830 "widgets.vala"
			_tmp21_ = self->priv->ch;
#line 830 "widgets.vala"
			_tmp22_ = self->priv->_input_alpha;
#line 830 "widgets.vala"
			synapse_gui_utils_color_helper_set_source_rgba (_tmp21_, ctx, _tmp22_, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_DARKER);
#line 6362 "widgets.c"
		} else {
			SynapseGuiUtilsColorHelper* _tmp23_;
			gdouble _tmp24_;
#line 832 "widgets.vala"
			_tmp23_ = self->priv->ch;
#line 832 "widgets.vala"
			_tmp24_ = self->priv->_input_alpha;
#line 832 "widgets.vala"
			synapse_gui_utils_color_helper_set_source_rgba (_tmp23_, ctx, _tmp24_, SYNAPSE_GUI_STYLE_TYPE_FG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_INVERTED);
#line 6372 "widgets.c"
		}
#line 833 "widgets.vala"
		cairo_fill_preserve (ctx);
#line 834 "widgets.vala"
		_tmp25_ = self->priv->_shadow_height;
#line 834 "widgets.vala"
		_tmp26_ = cairo_pattern_create_linear ((gdouble) 0, y, (gdouble) 0, y + _tmp25_);
#line 834 "widgets.vala"
		pat = _tmp26_;
#line 835 "widgets.vala"
		_tmp27_ = self->priv->ch;
#line 835 "widgets.vala"
		_tmp28_ = pat;
#line 835 "widgets.vala"
		_tmp29_ = self->priv->_input_alpha;
#line 835 "widgets.vala"
		synapse_gui_utils_color_helper_add_color_stop_rgba (_tmp27_, _tmp28_, (gdouble) 0, 0.6 * _tmp29_, SYNAPSE_GUI_STYLE_TYPE_FG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 836 "widgets.vala"
		_tmp30_ = self->priv->ch;
#line 836 "widgets.vala"
		_tmp31_ = pat;
#line 836 "widgets.vala"
		_tmp32_ = self->priv->_input_alpha;
#line 836 "widgets.vala"
		synapse_gui_utils_color_helper_add_color_stop_rgba (_tmp30_, _tmp31_, 0.3, 0.25 * _tmp32_, SYNAPSE_GUI_STYLE_TYPE_FG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 837 "widgets.vala"
		_tmp33_ = self->priv->ch;
#line 837 "widgets.vala"
		_tmp34_ = pat;
#line 837 "widgets.vala"
		synapse_gui_utils_color_helper_add_color_stop_rgba (_tmp33_, _tmp34_, 1.0, (gdouble) 0, SYNAPSE_GUI_STYLE_TYPE_FG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 838 "widgets.vala"
		_tmp35_ = pat;
#line 838 "widgets.vala"
		cairo_set_source (ctx, _tmp35_);
#line 839 "widgets.vala"
		cairo_fill (ctx);
#line 840 "widgets.vala"
		_tmp36_ = self->priv->_focus_widget;
#line 840 "widgets.vala"
		if (_tmp36_ != NULL) {
#line 6414 "widgets.c"
			GtkAllocation focus_allocation = {0};
			GtkWidget* _tmp37_;
			GtkAllocation _tmp38_ = {0};
			gdouble x1 = 0.0;
			GtkAllocation _tmp39_;
			gdouble x3 = 0.0;
			GtkAllocation _tmp40_;
			GtkAllocation _tmp41_;
			gdouble x2 = 0.0;
			gdouble y2 = 0.0;
			gdouble y1 = 0.0;
			gdouble _tmp42_;
			cairo_pattern_t* _tmp43_;
			SynapseGuiUtilsColorHelper* _tmp44_;
			cairo_pattern_t* _tmp45_;
			gdouble _tmp46_;
			SynapseGuiUtilsColorHelper* _tmp47_;
			cairo_pattern_t* _tmp48_;
			cairo_pattern_t* _tmp49_;
#line 850 "widgets.vala"
			_tmp37_ = self->priv->_focus_widget;
#line 850 "widgets.vala"
			gtk_widget_get_allocation (_tmp37_, &_tmp38_);
#line 850 "widgets.vala"
			focus_allocation = _tmp38_;
#line 851 "widgets.vala"
			_tmp39_ = focus_allocation;
#line 851 "widgets.vala"
			x1 = MAX ((gdouble) _tmp39_.x, x);
#line 852 "widgets.vala"
			_tmp40_ = focus_allocation;
#line 852 "widgets.vala"
			_tmp41_ = focus_allocation;
#line 852 "widgets.vala"
			x3 = MIN ((gdouble) (_tmp40_.x + _tmp41_.width), x + w);
#line 854 "widgets.vala"
			x2 = (x1 + x3) / 2.0;
#line 855 "widgets.vala"
			y2 = y + h;
#line 856 "widgets.vala"
			_tmp42_ = self->priv->_focus_height;
#line 856 "widgets.vala"
			y1 = (y + h) - _tmp42_;
#line 857 "widgets.vala"
			cairo_new_path (ctx);
#line 858 "widgets.vala"
			cairo_move_to (ctx, x1, y2);
#line 859 "widgets.vala"
			if (x1 < (x + 1)) {
#line 861 "widgets.vala"
				cairo_line_to (ctx, x1, y1);
#line 862 "widgets.vala"
				cairo_line_to (ctx, x2, y1);
#line 6468 "widgets.c"
			} else {
#line 866 "widgets.vala"
				cairo_curve_to (ctx, x1, y2, x1, y1, x2, y1);
#line 6472 "widgets.c"
			}
#line 868 "widgets.vala"
			if (x3 > ((x + w) - 1)) {
#line 870 "widgets.vala"
				cairo_line_to (ctx, x3, y1);
#line 871 "widgets.vala"
				cairo_line_to (ctx, x3, y2);
#line 6480 "widgets.c"
			} else {
#line 875 "widgets.vala"
				cairo_curve_to (ctx, x3, y1, x3, y2, x3, y2);
#line 6484 "widgets.c"
			}
#line 877 "widgets.vala"
			cairo_close_path (ctx);
#line 878 "widgets.vala"
			cairo_clip (ctx);
#line 879 "widgets.vala"
			_tmp43_ = cairo_pattern_create_linear ((gdouble) 0, y2, (gdouble) 0, y1);
#line 879 "widgets.vala"
			_cairo_pattern_destroy0 (pat);
#line 879 "widgets.vala"
			pat = _tmp43_;
#line 880 "widgets.vala"
			_tmp44_ = self->priv->ch;
#line 880 "widgets.vala"
			_tmp45_ = pat;
#line 880 "widgets.vala"
			_tmp46_ = self->priv->_input_alpha;
#line 880 "widgets.vala"
			synapse_gui_utils_color_helper_add_color_stop_rgba (_tmp44_, _tmp45_, (gdouble) 0, 1.0 * _tmp46_, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_SELECTED, SYNAPSE_GUI_MOD_NORMAL);
#line 881 "widgets.vala"
			_tmp47_ = self->priv->ch;
#line 881 "widgets.vala"
			_tmp48_ = pat;
#line 881 "widgets.vala"
			synapse_gui_utils_color_helper_add_color_stop_rgba (_tmp47_, _tmp48_, (gdouble) 1, (gdouble) 0, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_SELECTED, SYNAPSE_GUI_MOD_NORMAL);
#line 882 "widgets.vala"
			_tmp49_ = pat;
#line 882 "widgets.vala"
			cairo_set_source (ctx, _tmp49_);
#line 883 "widgets.vala"
			cairo_paint (ctx);
#line 6516 "widgets.c"
		}
#line 885 "widgets.vala"
		cairo_restore (ctx);
#line 886 "widgets.vala"
		_tmp50_ = self->priv->_border_radius;
#line 886 "widgets.vala"
		synapse_gui_utils_cairo_rounded_rect (ctx, x, y, w, h, _tmp50_);
#line 887 "widgets.vala"
		_tmp51_ = self->priv->ch;
#line 887 "widgets.vala"
		_tmp52_ = self->priv->_input_alpha;
#line 887 "widgets.vala"
		synapse_gui_utils_color_helper_set_source_rgba (_tmp51_, ctx, 0.6 * _tmp52_, SYNAPSE_GUI_STYLE_TYPE_FG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 888 "widgets.vala"
		cairo_stroke (ctx);
#line 889 "widgets.vala"
		cairo_restore (ctx);
#line 810 "widgets.vala"
		_cairo_pattern_destroy0 (pat);
#line 6536 "widgets.c"
	}
#line 891 "widgets.vala"
	result = GTK_WIDGET_CLASS (synapse_gui_fake_input_parent_class)->draw ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_alignment_get_type (), GtkAlignment), ctx);
#line 891 "widgets.vala"
	return result;
#line 6542 "widgets.c"
}

SynapseGuiFakeInput*
synapse_gui_fake_input_construct (GType object_type)
{
	SynapseGuiFakeInput * self = NULL;
#line 773 "widgets.vala"
	self = (SynapseGuiFakeInput*) g_object_new (object_type, NULL);
#line 773 "widgets.vala"
	return self;
#line 6553 "widgets.c"
}

SynapseGuiFakeInput*
synapse_gui_fake_input_new (void)
{
#line 773 "widgets.vala"
	return synapse_gui_fake_input_construct (SYNAPSE_GUI_TYPE_FAKE_INPUT);
#line 6561 "widgets.c"
}

gboolean
synapse_gui_fake_input_get_draw_input (SynapseGuiFakeInput* self)
{
	gboolean result;
#line 775 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 775 "widgets.vala"
	result = self->priv->_draw_input;
#line 775 "widgets.vala"
	return result;
#line 6574 "widgets.c"
}

void
synapse_gui_fake_input_set_draw_input (SynapseGuiFakeInput* self,
                                       gboolean value)
{
	gboolean old_value;
#line 775 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 775 "widgets.vala"
	old_value = synapse_gui_fake_input_get_draw_input (self);
#line 775 "widgets.vala"
	if (old_value != value) {
#line 775 "widgets.vala"
		self->priv->_draw_input = value;
#line 775 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_DRAW_INPUT_PROPERTY]);
#line 6592 "widgets.c"
	}
}

gdouble
synapse_gui_fake_input_get_input_alpha (SynapseGuiFakeInput* self)
{
	gdouble result;
#line 776 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0.0);
#line 776 "widgets.vala"
	result = self->priv->_input_alpha;
#line 776 "widgets.vala"
	return result;
#line 6606 "widgets.c"
}

void
synapse_gui_fake_input_set_input_alpha (SynapseGuiFakeInput* self,
                                        gdouble value)
{
	gdouble old_value;
#line 776 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 776 "widgets.vala"
	old_value = synapse_gui_fake_input_get_input_alpha (self);
#line 776 "widgets.vala"
	if (old_value != value) {
#line 776 "widgets.vala"
		self->priv->_input_alpha = value;
#line 776 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_INPUT_ALPHA_PROPERTY]);
#line 6624 "widgets.c"
	}
}

gdouble
synapse_gui_fake_input_get_border_radius (SynapseGuiFakeInput* self)
{
	gdouble result;
#line 777 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0.0);
#line 777 "widgets.vala"
	result = self->priv->_border_radius;
#line 777 "widgets.vala"
	return result;
#line 6638 "widgets.c"
}

void
synapse_gui_fake_input_set_border_radius (SynapseGuiFakeInput* self,
                                          gdouble value)
{
	gdouble old_value;
#line 777 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 777 "widgets.vala"
	old_value = synapse_gui_fake_input_get_border_radius (self);
#line 777 "widgets.vala"
	if (old_value != value) {
#line 777 "widgets.vala"
		self->priv->_border_radius = value;
#line 777 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_BORDER_RADIUS_PROPERTY]);
#line 6656 "widgets.c"
	}
}

gdouble
synapse_gui_fake_input_get_shadow_height (SynapseGuiFakeInput* self)
{
	gdouble result;
#line 778 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0.0);
#line 778 "widgets.vala"
	result = self->priv->_shadow_height;
#line 778 "widgets.vala"
	return result;
#line 6670 "widgets.c"
}

void
synapse_gui_fake_input_set_shadow_height (SynapseGuiFakeInput* self,
                                          gdouble value)
{
	gdouble old_value;
#line 778 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 778 "widgets.vala"
	old_value = synapse_gui_fake_input_get_shadow_height (self);
#line 778 "widgets.vala"
	if (old_value != value) {
#line 778 "widgets.vala"
		self->priv->_shadow_height = value;
#line 778 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_SHADOW_HEIGHT_PROPERTY]);
#line 6688 "widgets.c"
	}
}

gdouble
synapse_gui_fake_input_get_focus_height (SynapseGuiFakeInput* self)
{
	gdouble result;
#line 779 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0.0);
#line 779 "widgets.vala"
	result = self->priv->_focus_height;
#line 779 "widgets.vala"
	return result;
#line 6702 "widgets.c"
}

void
synapse_gui_fake_input_set_focus_height (SynapseGuiFakeInput* self,
                                         gdouble value)
{
	gdouble old_value;
#line 779 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 779 "widgets.vala"
	old_value = synapse_gui_fake_input_get_focus_height (self);
#line 779 "widgets.vala"
	if (old_value != value) {
#line 779 "widgets.vala"
		self->priv->_focus_height = value;
#line 779 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_FOCUS_HEIGHT_PROPERTY]);
#line 6720 "widgets.c"
	}
}

GtkWidget*
synapse_gui_fake_input_get_focus_widget (SynapseGuiFakeInput* self)
{
	GtkWidget* result;
	GtkWidget* _tmp0_;
#line 784 "widgets.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 784 "widgets.vala"
	_tmp0_ = self->priv->_focus_widget;
#line 784 "widgets.vala"
	result = _tmp0_;
#line 784 "widgets.vala"
	return result;
#line 6737 "widgets.c"
}

void
synapse_gui_fake_input_set_focus_widget (SynapseGuiFakeInput* self,
                                         GtkWidget* value)
{
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp3_;
	GtkWidget* _tmp4_;
#line 785 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 786 "widgets.vala"
	_tmp0_ = self->priv->_focus_widget;
#line 786 "widgets.vala"
	if (value == _tmp0_) {
#line 787 "widgets.vala"
		return;
#line 6756 "widgets.c"
	}
#line 788 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 789 "widgets.vala"
	_tmp1_ = self->priv->_focus_widget;
#line 789 "widgets.vala"
	if (_tmp1_ != NULL) {
#line 6764 "widgets.c"
		GtkWidget* _tmp2_;
#line 790 "widgets.vala"
		_tmp2_ = self->priv->_focus_widget;
#line 790 "widgets.vala"
		gtk_widget_queue_draw (_tmp2_);
#line 6770 "widgets.c"
	}
#line 791 "widgets.vala"
	_tmp3_ = _g_object_ref0 (value);
#line 791 "widgets.vala"
	_g_object_unref0 (self->priv->_focus_widget);
#line 791 "widgets.vala"
	self->priv->_focus_widget = _tmp3_;
#line 792 "widgets.vala"
	_tmp4_ = self->priv->_focus_widget;
#line 792 "widgets.vala"
	if (_tmp4_ != NULL) {
#line 6782 "widgets.c"
		GtkWidget* _tmp5_;
#line 793 "widgets.vala"
		_tmp5_ = self->priv->_focus_widget;
#line 793 "widgets.vala"
		gtk_widget_queue_draw (_tmp5_);
#line 6788 "widgets.c"
	}
#line 785 "widgets.vala"
	g_object_notify_by_pspec ((GObject *) self, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_FOCUS_WIDGET_PROPERTY]);
#line 6792 "widgets.c"
}

static GObject *
synapse_gui_fake_input_constructor (GType type,
                                    guint n_construct_properties,
                                    GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseGuiFakeInput * self;
	SynapseGuiUtilsColorHelper* _tmp0_;
#line 797 "widgets.vala"
	parent_class = G_OBJECT_CLASS (synapse_gui_fake_input_parent_class);
#line 797 "widgets.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 797 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_FAKE_INPUT, SynapseGuiFakeInput);
#line 799 "widgets.vala"
	_g_object_unref0 (self->priv->_focus_widget);
#line 799 "widgets.vala"
	self->priv->_focus_widget = NULL;
#line 800 "widgets.vala"
	_tmp0_ = synapse_gui_utils_color_helper_get_default ();
#line 800 "widgets.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 800 "widgets.vala"
	self->priv->ch = _tmp0_;
#line 801 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::draw-input", (GCallback) _gtk_widget_queue_draw_g_object_notify, (GtkWidget*) self, 0);
#line 802 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::input-alpha", (GCallback) _gtk_widget_queue_draw_g_object_notify, (GtkWidget*) self, 0);
#line 803 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::border-radius", (GCallback) _gtk_widget_queue_draw_g_object_notify, (GtkWidget*) self, 0);
#line 804 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::shadow-pct", (GCallback) _gtk_widget_queue_draw_g_object_notify, (GtkWidget*) self, 0);
#line 805 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::focus-height", (GCallback) _gtk_widget_queue_draw_g_object_notify, (GtkWidget*) self, 0);
#line 797 "widgets.vala"
	return obj;
#line 6832 "widgets.c"
}

static void
synapse_gui_fake_input_class_init (SynapseGuiFakeInputClass * klass,
                                   gpointer klass_data)
{
#line 773 "widgets.vala"
	synapse_gui_fake_input_parent_class = g_type_class_peek_parent (klass);
#line 773 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiFakeInput_private_offset);
#line 773 "widgets.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_fake_input_real_draw;
#line 773 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_fake_input_get_property;
#line 773 "widgets.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_fake_input_set_property;
#line 773 "widgets.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_gui_fake_input_constructor;
#line 773 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_fake_input_finalize;
#line 773 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_FAKE_INPUT_DRAW_INPUT_PROPERTY, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_DRAW_INPUT_PROPERTY] = g_param_spec_boolean ("draw-input", "draw-input", "draw-input", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 773 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_FAKE_INPUT_INPUT_ALPHA_PROPERTY, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_INPUT_ALPHA_PROPERTY] = g_param_spec_double ("input-alpha", "input-alpha", "input-alpha", -G_MAXDOUBLE, G_MAXDOUBLE, 1.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 773 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_FAKE_INPUT_BORDER_RADIUS_PROPERTY, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_BORDER_RADIUS_PROPERTY] = g_param_spec_double ("border-radius", "border-radius", "border-radius", -G_MAXDOUBLE, G_MAXDOUBLE, 3.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 773 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_FAKE_INPUT_SHADOW_HEIGHT_PROPERTY, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_SHADOW_HEIGHT_PROPERTY] = g_param_spec_double ("shadow-height", "shadow-height", "shadow-height", -G_MAXDOUBLE, G_MAXDOUBLE, (gdouble) 3, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 773 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_FAKE_INPUT_FOCUS_HEIGHT_PROPERTY, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_FOCUS_HEIGHT_PROPERTY] = g_param_spec_double ("focus-height", "focus-height", "focus-height", -G_MAXDOUBLE, G_MAXDOUBLE, (gdouble) 3, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 773 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_FAKE_INPUT_FOCUS_WIDGET_PROPERTY, synapse_gui_fake_input_properties[SYNAPSE_GUI_FAKE_INPUT_FOCUS_WIDGET_PROPERTY] = g_param_spec_object ("focus-widget", "focus-widget", "focus-widget", gtk_widget_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 6865 "widgets.c"
}

static void
synapse_gui_fake_input_instance_init (SynapseGuiFakeInput * self,
                                      gpointer klass)
{
#line 773 "widgets.vala"
	self->priv = synapse_gui_fake_input_get_instance_private (self);
#line 775 "widgets.vala"
	self->priv->_draw_input = TRUE;
#line 776 "widgets.vala"
	self->priv->_input_alpha = 1.0;
#line 777 "widgets.vala"
	self->priv->_border_radius = 3.0;
#line 778 "widgets.vala"
	self->priv->_shadow_height = (gdouble) 3;
#line 779 "widgets.vala"
	self->priv->_focus_height = (gdouble) 3;
#line 6884 "widgets.c"
}

static void
synapse_gui_fake_input_finalize (GObject * obj)
{
	SynapseGuiFakeInput * self;
#line 773 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_FAKE_INPUT, SynapseGuiFakeInput);
#line 781 "widgets.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 796 "widgets.vala"
	_g_object_unref0 (self->priv->_focus_widget);
#line 773 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_fake_input_parent_class)->finalize (obj);
#line 6899 "widgets.c"
}

static GType
synapse_gui_fake_input_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiFakeInputClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_fake_input_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiFakeInput), 0, (GInstanceInitFunc) synapse_gui_fake_input_instance_init, NULL };
	GType synapse_gui_fake_input_type_id;
	synapse_gui_fake_input_type_id = g_type_register_static (gtk_alignment_get_type (), "SynapseGuiFakeInput", &g_define_type_info, 0);
	SynapseGuiFakeInput_private_offset = g_type_add_instance_private (synapse_gui_fake_input_type_id, sizeof (SynapseGuiFakeInputPrivate));
	return synapse_gui_fake_input_type_id;
}

GType
synapse_gui_fake_input_get_type (void)
{
	static volatile gsize synapse_gui_fake_input_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_fake_input_type_id__once)) {
		GType synapse_gui_fake_input_type_id;
		synapse_gui_fake_input_type_id = synapse_gui_fake_input_get_type_once ();
		g_once_init_leave (&synapse_gui_fake_input_type_id__once, synapse_gui_fake_input_type_id);
	}
	return synapse_gui_fake_input_type_id__once;
}

static void
_vala_synapse_gui_fake_input_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec)
{
	SynapseGuiFakeInput * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_FAKE_INPUT, SynapseGuiFakeInput);
#line 773 "widgets.vala"
	switch (property_id) {
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_DRAW_INPUT_PROPERTY:
#line 773 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_fake_input_get_draw_input (self));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_INPUT_ALPHA_PROPERTY:
#line 773 "widgets.vala"
		g_value_set_double (value, synapse_gui_fake_input_get_input_alpha (self));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_BORDER_RADIUS_PROPERTY:
#line 773 "widgets.vala"
		g_value_set_double (value, synapse_gui_fake_input_get_border_radius (self));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_SHADOW_HEIGHT_PROPERTY:
#line 773 "widgets.vala"
		g_value_set_double (value, synapse_gui_fake_input_get_shadow_height (self));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_FOCUS_HEIGHT_PROPERTY:
#line 773 "widgets.vala"
		g_value_set_double (value, synapse_gui_fake_input_get_focus_height (self));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_FOCUS_WIDGET_PROPERTY:
#line 773 "widgets.vala"
		g_value_set_object (value, synapse_gui_fake_input_get_focus_widget (self));
#line 773 "widgets.vala"
		break;
#line 6970 "widgets.c"
		default:
#line 773 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 773 "widgets.vala"
		break;
#line 6976 "widgets.c"
	}
}

static void
_vala_synapse_gui_fake_input_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec)
{
	SynapseGuiFakeInput * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_FAKE_INPUT, SynapseGuiFakeInput);
#line 773 "widgets.vala"
	switch (property_id) {
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_DRAW_INPUT_PROPERTY:
#line 773 "widgets.vala"
		synapse_gui_fake_input_set_draw_input (self, g_value_get_boolean (value));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_INPUT_ALPHA_PROPERTY:
#line 773 "widgets.vala"
		synapse_gui_fake_input_set_input_alpha (self, g_value_get_double (value));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_BORDER_RADIUS_PROPERTY:
#line 773 "widgets.vala"
		synapse_gui_fake_input_set_border_radius (self, g_value_get_double (value));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_SHADOW_HEIGHT_PROPERTY:
#line 773 "widgets.vala"
		synapse_gui_fake_input_set_shadow_height (self, g_value_get_double (value));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_FOCUS_HEIGHT_PROPERTY:
#line 773 "widgets.vala"
		synapse_gui_fake_input_set_focus_height (self, g_value_get_double (value));
#line 773 "widgets.vala"
		break;
#line 773 "widgets.vala"
		case SYNAPSE_GUI_FAKE_INPUT_FOCUS_WIDGET_PROPERTY:
#line 773 "widgets.vala"
		synapse_gui_fake_input_set_focus_widget (self, g_value_get_object (value));
#line 773 "widgets.vala"
		break;
#line 7026 "widgets.c"
		default:
#line 773 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 773 "widgets.vala"
		break;
#line 7032 "widgets.c"
	}
}

static inline gpointer
synapse_gui_menu_throbber_get_instance_private (SynapseGuiMenuThrobber* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiMenuThrobber_private_offset);
}

static gboolean
___lambda20_ (SynapseGuiMenuThrobber* self)
{
	gboolean result;
#line 911 "widgets.vala"
	self->priv->progress = self->priv->progress + (1.0f / 30);
#line 912 "widgets.vala"
	if (self->priv->progress > 1.0f) {
#line 912 "widgets.vala"
		self->priv->progress = 0.0f;
#line 7052 "widgets.c"
	}
#line 913 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 914 "widgets.vala"
	result = TRUE;
#line 914 "widgets.vala"
	return result;
#line 7060 "widgets.c"
}

static gboolean
____lambda20__gsource_func (gpointer self)
{
	gboolean result;
	result = ___lambda20_ ((SynapseGuiMenuThrobber*) self);
#line 910 "widgets.vala"
	return result;
#line 7070 "widgets.c"
}

static void
synapse_gui_menu_throbber_active_toggled (SynapseGuiMenuThrobber* self)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_;
#line 906 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 908 "widgets.vala"
	_tmp1_ = self->priv->_active;
#line 908 "widgets.vala"
	if (_tmp1_) {
#line 908 "widgets.vala"
		_tmp0_ = self->priv->timer_src_id == ((guint) 0);
#line 7086 "widgets.c"
	} else {
#line 908 "widgets.vala"
		_tmp0_ = FALSE;
#line 7090 "widgets.c"
	}
#line 908 "widgets.vala"
	if (_tmp0_) {
#line 910 "widgets.vala"
		self->priv->timer_src_id = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) (1000 / 30), ____lambda20__gsource_func, g_object_ref (self), g_object_unref);
#line 7096 "widgets.c"
	} else {
		gboolean _tmp2_ = FALSE;
		gboolean _tmp3_;
#line 917 "widgets.vala"
		_tmp3_ = self->priv->_active;
#line 917 "widgets.vala"
		if (!_tmp3_) {
#line 917 "widgets.vala"
			_tmp2_ = self->priv->timer_src_id != ((guint) 0);
#line 7106 "widgets.c"
		} else {
#line 917 "widgets.vala"
			_tmp2_ = FALSE;
#line 7110 "widgets.c"
		}
#line 917 "widgets.vala"
		if (_tmp2_) {
#line 919 "widgets.vala"
			g_source_remove (self->priv->timer_src_id);
#line 920 "widgets.vala"
			self->priv->timer_src_id = (guint) 0;
#line 921 "widgets.vala"
			self->priv->progress = 0.0f;
#line 7120 "widgets.c"
		}
	}
#line 923 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 7125 "widgets.c"
}

static void
synapse_gui_menu_throbber_real_get_preferred_width (GtkWidget* base,
                                                    gint* min_width,
                                                    gint* nat_width)
{
	SynapseGuiMenuThrobber * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
#line 926 "widgets.vala"
	self = (SynapseGuiMenuThrobber*) base;
#line 928 "widgets.vala"
	_vala_nat_width = 11;
#line 928 "widgets.vala"
	_vala_min_width = _vala_nat_width;
#line 926 "widgets.vala"
	if (min_width) {
#line 926 "widgets.vala"
		*min_width = _vala_min_width;
#line 7146 "widgets.c"
	}
#line 926 "widgets.vala"
	if (nat_width) {
#line 926 "widgets.vala"
		*nat_width = _vala_nat_width;
#line 7152 "widgets.c"
	}
}

static void
synapse_gui_menu_throbber_real_get_preferred_height (GtkWidget* base,
                                                     gint* min_height,
                                                     gint* nat_height)
{
	SynapseGuiMenuThrobber * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
#line 931 "widgets.vala"
	self = (SynapseGuiMenuThrobber*) base;
#line 933 "widgets.vala"
	_vala_nat_height = 11;
#line 933 "widgets.vala"
	_vala_min_height = _vala_nat_height;
#line 931 "widgets.vala"
	if (min_height) {
#line 931 "widgets.vala"
		*min_height = _vala_min_height;
#line 7174 "widgets.c"
	}
#line 931 "widgets.vala"
	if (nat_height) {
#line 931 "widgets.vala"
		*nat_height = _vala_nat_height;
#line 7180 "widgets.c"
	}
}

static void
synapse_gui_menu_throbber_real_size_allocate (GtkWidget* base,
                                              GtkAllocation* allocation)
{
	SynapseGuiMenuThrobber * self;
	GtkAllocation alloc = {0};
	GtkAllocation _tmp0_;
	GtkAllocation _tmp1_;
	GtkAllocation _tmp2_;
	GtkAllocation _tmp3_;
	GtkAllocation _tmp4_ = {0};
	GtkAllocation _tmp5_;
#line 936 "widgets.vala"
	self = (SynapseGuiMenuThrobber*) base;
#line 936 "widgets.vala"
	g_return_if_fail (allocation != NULL);
#line 938 "widgets.vala"
	_tmp0_ = *allocation;
#line 938 "widgets.vala"
	_tmp1_ = *allocation;
#line 938 "widgets.vala"
	_tmp2_ = *allocation;
#line 938 "widgets.vala"
	_tmp3_ = *allocation;
#line 938 "widgets.vala"
	_tmp4_.x = _tmp0_.x;
#line 938 "widgets.vala"
	_tmp4_.y = _tmp1_.y;
#line 938 "widgets.vala"
	_tmp4_.width = _tmp2_.width;
#line 938 "widgets.vala"
	_tmp4_.height = _tmp3_.height;
#line 938 "widgets.vala"
	alloc = _tmp4_;
#line 939 "widgets.vala"
	_tmp5_ = alloc;
#line 939 "widgets.vala"
	gtk_widget_set_allocation ((GtkWidget*) self, &_tmp5_);
#line 7222 "widgets.c"
}

static gboolean
synapse_gui_menu_throbber_real_draw (GtkWidget* base,
                                     cairo_t* ctx)
{
	SynapseGuiMenuThrobber * self;
	gboolean _tmp0_;
	GtkAllocation allocation = {0};
	GtkAllocation _tmp1_ = {0};
	gdouble r = 0.0;
	gdouble g = 0.0;
	gdouble b = 0.0;
	gdouble SIZE = 0.0;
	gdouble size = 0.0;
	gdouble _tmp2_;
	gdouble _tmp3_;
	GtkAllocation _tmp4_;
	GtkAllocation _tmp5_;
	gdouble xc = 0.0;
	GtkAllocation _tmp6_;
	gdouble yc = 0.0;
	gdouble arc_start = 0.0;
	gdouble arc_end = 0.0;
	SynapseGuiUtilsColorHelper* _tmp7_;
	gdouble _tmp8_ = 0.0;
	gdouble _tmp9_ = 0.0;
	gdouble _tmp10_ = 0.0;
	gboolean result;
#line 942 "widgets.vala"
	self = (SynapseGuiMenuThrobber*) base;
#line 942 "widgets.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 944 "widgets.vala"
	GTK_WIDGET_CLASS (synapse_gui_menu_throbber_parent_class)->draw ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MENU_BUTTON, SynapseGuiMenuButton), ctx);
#line 946 "widgets.vala"
	_tmp0_ = self->priv->_active;
#line 946 "widgets.vala"
	if (!_tmp0_) {
#line 946 "widgets.vala"
		result = TRUE;
#line 946 "widgets.vala"
		return result;
#line 7266 "widgets.c"
	}
#line 949 "widgets.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp1_);
#line 949 "widgets.vala"
	allocation = _tmp1_;
#line 951 "widgets.vala"
	r = 0.0;
#line 951 "widgets.vala"
	g = 0.0;
#line 951 "widgets.vala"
	b = 0.0;
#line 952 "widgets.vala"
	SIZE = 0.5;
#line 953 "widgets.vala"
	_tmp2_ = synapse_gui_menu_button_get_button_scale ((SynapseGuiMenuButton*) self);
#line 953 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 953 "widgets.vala"
	_tmp4_ = allocation;
#line 953 "widgets.vala"
	_tmp5_ = allocation;
#line 953 "widgets.vala"
	size = (_tmp3_ * MIN (_tmp4_.width, _tmp5_.height)) - (SIZE * 2);
#line 954 "widgets.vala"
	size *= 0.5;
#line 955 "widgets.vala"
	_tmp6_ = allocation;
#line 955 "widgets.vala"
	xc = (_tmp6_.width - (SIZE * 2)) - size;
#line 956 "widgets.vala"
	yc = size;
#line 957 "widgets.vala"
	arc_start = (G_PI * 2) * self->priv->progress;
#line 958 "widgets.vala"
	arc_end = arc_start + (G_PI / 2.0);
#line 960 "widgets.vala"
	_tmp7_ = ((SynapseGuiMenuButton*) self)->ch;
#line 960 "widgets.vala"
	synapse_gui_utils_color_helper_get_rgb (_tmp7_, &_tmp8_, &_tmp9_, &_tmp10_, SYNAPSE_GUI_STYLE_TYPE_FG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_LIGHTER);
#line 960 "widgets.vala"
	r = _tmp8_;
#line 960 "widgets.vala"
	g = _tmp9_;
#line 960 "widgets.vala"
	b = _tmp10_;
#line 961 "widgets.vala"
	cairo_set_source_rgb (ctx, r, g, b);
#line 962 "widgets.vala"
	cairo_arc_negative (ctx, xc, yc, size * 0.5, arc_end, arc_start);
#line 963 "widgets.vala"
	cairo_arc (ctx, xc, yc, size, arc_start, arc_end);
#line 964 "widgets.vala"
	cairo_fill (ctx);
#line 966 "widgets.vala"
	result = TRUE;
#line 966 "widgets.vala"
	return result;
#line 7324 "widgets.c"
}

SynapseGuiMenuThrobber*
synapse_gui_menu_throbber_construct (GType object_type)
{
	SynapseGuiMenuThrobber * self = NULL;
#line 895 "widgets.vala"
	self = (SynapseGuiMenuThrobber*) synapse_gui_menu_button_construct (object_type);
#line 895 "widgets.vala"
	return self;
#line 7335 "widgets.c"
}

SynapseGuiMenuThrobber*
synapse_gui_menu_throbber_new (void)
{
#line 895 "widgets.vala"
	return synapse_gui_menu_throbber_construct (SYNAPSE_GUI_TYPE_MENU_THROBBER);
#line 7343 "widgets.c"
}

gboolean
synapse_gui_menu_throbber_get_active (SynapseGuiMenuThrobber* self)
{
	gboolean result;
#line 897 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 897 "widgets.vala"
	result = self->priv->_active;
#line 897 "widgets.vala"
	return result;
#line 7356 "widgets.c"
}

void
synapse_gui_menu_throbber_set_active (SynapseGuiMenuThrobber* self,
                                      gboolean value)
{
	gboolean old_value;
#line 897 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 897 "widgets.vala"
	old_value = synapse_gui_menu_throbber_get_active (self);
#line 897 "widgets.vala"
	if (old_value != value) {
#line 897 "widgets.vala"
		self->priv->_active = value;
#line 897 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_menu_throbber_properties[SYNAPSE_GUI_MENU_THROBBER_ACTIVE_PROPERTY]);
#line 7374 "widgets.c"
	}
}

static void
_synapse_gui_menu_throbber_active_toggled_g_object_notify (GObject* _sender,
                                                           GParamSpec* pspec,
                                                           gpointer self)
{
#line 903 "widgets.vala"
	synapse_gui_menu_throbber_active_toggled ((SynapseGuiMenuThrobber*) self);
#line 7385 "widgets.c"
}

static GObject *
synapse_gui_menu_throbber_constructor (GType type,
                                       guint n_construct_properties,
                                       GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseGuiMenuThrobber * self;
#line 901 "widgets.vala"
	parent_class = G_OBJECT_CLASS (synapse_gui_menu_throbber_parent_class);
#line 901 "widgets.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 901 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_MENU_THROBBER, SynapseGuiMenuThrobber);
#line 903 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::active", (GCallback) _synapse_gui_menu_throbber_active_toggled_g_object_notify, self, 0);
#line 901 "widgets.vala"
	return obj;
#line 7406 "widgets.c"
}

static void
synapse_gui_menu_throbber_class_init (SynapseGuiMenuThrobberClass * klass,
                                      gpointer klass_data)
{
#line 895 "widgets.vala"
	synapse_gui_menu_throbber_parent_class = g_type_class_peek_parent (klass);
#line 895 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiMenuThrobber_private_offset);
#line 895 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_menu_throbber_real_get_preferred_width;
#line 895 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_menu_throbber_real_get_preferred_height;
#line 895 "widgets.vala"
	((GtkWidgetClass *) klass)->size_allocate = (void (*) (GtkWidget*, GtkAllocation*)) synapse_gui_menu_throbber_real_size_allocate;
#line 895 "widgets.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_menu_throbber_real_draw;
#line 895 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_menu_throbber_get_property;
#line 895 "widgets.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_menu_throbber_set_property;
#line 895 "widgets.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_gui_menu_throbber_constructor;
#line 895 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_menu_throbber_finalize;
#line 895 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MENU_THROBBER_ACTIVE_PROPERTY, synapse_gui_menu_throbber_properties[SYNAPSE_GUI_MENU_THROBBER_ACTIVE_PROPERTY] = g_param_spec_boolean ("active", "active", "active", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 7435 "widgets.c"
}

static void
synapse_gui_menu_throbber_instance_init (SynapseGuiMenuThrobber * self,
                                         gpointer klass)
{
#line 895 "widgets.vala"
	self->priv = synapse_gui_menu_throbber_get_instance_private (self);
#line 897 "widgets.vala"
	self->priv->_active = FALSE;
#line 898 "widgets.vala"
	self->priv->progress = 0.0f;
#line 899 "widgets.vala"
	self->priv->timer_src_id = (guint) 0;
#line 7450 "widgets.c"
}

static void
synapse_gui_menu_throbber_finalize (GObject * obj)
{
	SynapseGuiMenuThrobber * self;
#line 895 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_MENU_THROBBER, SynapseGuiMenuThrobber);
#line 895 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_menu_throbber_parent_class)->finalize (obj);
#line 7461 "widgets.c"
}

static GType
synapse_gui_menu_throbber_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiMenuThrobberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_menu_throbber_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiMenuThrobber), 0, (GInstanceInitFunc) synapse_gui_menu_throbber_instance_init, NULL };
	GType synapse_gui_menu_throbber_type_id;
	synapse_gui_menu_throbber_type_id = g_type_register_static (SYNAPSE_GUI_TYPE_MENU_BUTTON, "SynapseGuiMenuThrobber", &g_define_type_info, 0);
	SynapseGuiMenuThrobber_private_offset = g_type_add_instance_private (synapse_gui_menu_throbber_type_id, sizeof (SynapseGuiMenuThrobberPrivate));
	return synapse_gui_menu_throbber_type_id;
}

GType
synapse_gui_menu_throbber_get_type (void)
{
	static volatile gsize synapse_gui_menu_throbber_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_menu_throbber_type_id__once)) {
		GType synapse_gui_menu_throbber_type_id;
		synapse_gui_menu_throbber_type_id = synapse_gui_menu_throbber_get_type_once ();
		g_once_init_leave (&synapse_gui_menu_throbber_type_id__once, synapse_gui_menu_throbber_type_id);
	}
	return synapse_gui_menu_throbber_type_id__once;
}

static void
_vala_synapse_gui_menu_throbber_get_property (GObject * object,
                                              guint property_id,
                                              GValue * value,
                                              GParamSpec * pspec)
{
	SynapseGuiMenuThrobber * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_MENU_THROBBER, SynapseGuiMenuThrobber);
#line 895 "widgets.vala"
	switch (property_id) {
#line 895 "widgets.vala"
		case SYNAPSE_GUI_MENU_THROBBER_ACTIVE_PROPERTY:
#line 895 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_menu_throbber_get_active (self));
#line 895 "widgets.vala"
		break;
#line 7502 "widgets.c"
		default:
#line 895 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 895 "widgets.vala"
		break;
#line 7508 "widgets.c"
	}
}

static void
_vala_synapse_gui_menu_throbber_set_property (GObject * object,
                                              guint property_id,
                                              const GValue * value,
                                              GParamSpec * pspec)
{
	SynapseGuiMenuThrobber * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_MENU_THROBBER, SynapseGuiMenuThrobber);
#line 895 "widgets.vala"
	switch (property_id) {
#line 895 "widgets.vala"
		case SYNAPSE_GUI_MENU_THROBBER_ACTIVE_PROPERTY:
#line 895 "widgets.vala"
		synapse_gui_menu_throbber_set_active (self, g_value_get_boolean (value));
#line 895 "widgets.vala"
		break;
#line 7528 "widgets.c"
		default:
#line 895 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 895 "widgets.vala"
		break;
#line 7534 "widgets.c"
	}
}

static gboolean
synapse_gui_fake_button_real_enter_notify_event (GtkWidget* base,
                                                 GdkEventCrossing* event)
{
	SynapseGuiFakeButton * self;
	gboolean result;
#line 979 "widgets.vala"
	self = (SynapseGuiFakeButton*) base;
#line 979 "widgets.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 981 "widgets.vala"
	g_signal_emit (self, synapse_gui_fake_button_signals[SYNAPSE_GUI_FAKE_BUTTON_ENTER_SIGNAL], 0);
#line 982 "widgets.vala"
	result = TRUE;
#line 982 "widgets.vala"
	return result;
#line 7554 "widgets.c"
}

static gboolean
synapse_gui_fake_button_real_leave_notify_event (GtkWidget* base,
                                                 GdkEventCrossing* event)
{
	SynapseGuiFakeButton * self;
	gboolean result;
#line 984 "widgets.vala"
	self = (SynapseGuiFakeButton*) base;
#line 984 "widgets.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 986 "widgets.vala"
	g_signal_emit (self, synapse_gui_fake_button_signals[SYNAPSE_GUI_FAKE_BUTTON_LEAVE_SIGNAL], 0);
#line 987 "widgets.vala"
	result = TRUE;
#line 987 "widgets.vala"
	return result;
#line 7573 "widgets.c"
}

static gboolean
synapse_gui_fake_button_real_button_release_event (GtkWidget* base,
                                                   GdkEventButton* event)
{
	SynapseGuiFakeButton * self;
	gboolean result;
#line 989 "widgets.vala"
	self = (SynapseGuiFakeButton*) base;
#line 989 "widgets.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 991 "widgets.vala"
	g_signal_emit (self, synapse_gui_fake_button_signals[SYNAPSE_GUI_FAKE_BUTTON_RELEASED_SIGNAL], 0);
#line 992 "widgets.vala"
	result = TRUE;
#line 992 "widgets.vala"
	return result;
#line 7592 "widgets.c"
}

SynapseGuiFakeButton*
synapse_gui_fake_button_construct (GType object_type)
{
	SynapseGuiFakeButton * self = NULL;
#line 970 "widgets.vala"
	self = (SynapseGuiFakeButton*) g_object_new (object_type, NULL);
#line 970 "widgets.vala"
	return self;
#line 7603 "widgets.c"
}

SynapseGuiFakeButton*
synapse_gui_fake_button_new (void)
{
#line 970 "widgets.vala"
	return synapse_gui_fake_button_construct (SYNAPSE_GUI_TYPE_FAKE_BUTTON);
#line 7611 "widgets.c"
}

static void
synapse_gui_fake_button_real_leave (SynapseGuiFakeButton* self)
{
}

static void
synapse_gui_fake_button_real_enter (SynapseGuiFakeButton* self)
{
}

static void
synapse_gui_fake_button_real_released (SynapseGuiFakeButton* self)
{
}

static GObject *
synapse_gui_fake_button_constructor (GType type,
                                     guint n_construct_properties,
                                     GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseGuiFakeButton * self;
#line 972 "widgets.vala"
	parent_class = G_OBJECT_CLASS (synapse_gui_fake_button_parent_class);
#line 972 "widgets.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 972 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_FAKE_BUTTON, SynapseGuiFakeButton);
#line 974 "widgets.vala"
	gtk_widget_set_events ((GtkWidget*) self, (gint) ((GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK) | GDK_LEAVE_NOTIFY_MASK));
#line 977 "widgets.vala"
	gtk_event_box_set_visible_window ((GtkEventBox*) self, FALSE);
#line 972 "widgets.vala"
	return obj;
#line 7649 "widgets.c"
}

static void
synapse_gui_fake_button_class_init (SynapseGuiFakeButtonClass * klass,
                                    gpointer klass_data)
{
#line 970 "widgets.vala"
	synapse_gui_fake_button_parent_class = g_type_class_peek_parent (klass);
#line 970 "widgets.vala"
	((GtkWidgetClass *) klass)->enter_notify_event = (gboolean (*) (GtkWidget*, GdkEventCrossing*)) synapse_gui_fake_button_real_enter_notify_event;
#line 970 "widgets.vala"
	((GtkWidgetClass *) klass)->leave_notify_event = (gboolean (*) (GtkWidget*, GdkEventCrossing*)) synapse_gui_fake_button_real_leave_notify_event;
#line 970 "widgets.vala"
	((GtkWidgetClass *) klass)->button_release_event = (gboolean (*) (GtkWidget*, GdkEventButton*)) synapse_gui_fake_button_real_button_release_event;
#line 970 "widgets.vala"
	((SynapseGuiFakeButtonClass *) klass)->leave = synapse_gui_fake_button_real_leave;
#line 970 "widgets.vala"
	((SynapseGuiFakeButtonClass *) klass)->enter = synapse_gui_fake_button_real_enter;
#line 970 "widgets.vala"
	((SynapseGuiFakeButtonClass *) klass)->released = synapse_gui_fake_button_real_released;
#line 970 "widgets.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_gui_fake_button_constructor;
#line 970 "widgets.vala"
	synapse_gui_fake_button_signals[SYNAPSE_GUI_FAKE_BUTTON_LEAVE_SIGNAL] = g_signal_new ("leave", SYNAPSE_GUI_TYPE_FAKE_BUTTON, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SynapseGuiFakeButtonClass, leave), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 970 "widgets.vala"
	synapse_gui_fake_button_signals[SYNAPSE_GUI_FAKE_BUTTON_ENTER_SIGNAL] = g_signal_new ("enter", SYNAPSE_GUI_TYPE_FAKE_BUTTON, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SynapseGuiFakeButtonClass, enter), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 970 "widgets.vala"
	synapse_gui_fake_button_signals[SYNAPSE_GUI_FAKE_BUTTON_RELEASED_SIGNAL] = g_signal_new ("released", SYNAPSE_GUI_TYPE_FAKE_BUTTON, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SynapseGuiFakeButtonClass, released), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 7678 "widgets.c"
}

static void
synapse_gui_fake_button_instance_init (SynapseGuiFakeButton * self,
                                       gpointer klass)
{
}

static GType
synapse_gui_fake_button_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiFakeButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_fake_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiFakeButton), 0, (GInstanceInitFunc) synapse_gui_fake_button_instance_init, NULL };
	GType synapse_gui_fake_button_type_id;
	synapse_gui_fake_button_type_id = g_type_register_static (gtk_event_box_get_type (), "SynapseGuiFakeButton", &g_define_type_info, 0);
	return synapse_gui_fake_button_type_id;
}

GType
synapse_gui_fake_button_get_type (void)
{
	static volatile gsize synapse_gui_fake_button_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_fake_button_type_id__once)) {
		GType synapse_gui_fake_button_type_id;
		synapse_gui_fake_button_type_id = synapse_gui_fake_button_get_type_once ();
		g_once_init_leave (&synapse_gui_fake_button_type_id__once, synapse_gui_fake_button_type_id);
	}
	return synapse_gui_fake_button_type_id__once;
}

static inline gpointer
synapse_gui_menu_button_get_instance_private (SynapseGuiMenuButton* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiMenuButton_private_offset);
}

static void
__lambda10_ (SynapseGuiMenuButton* self)
{
#line 1014 "widgets.vala"
	g_signal_emit (self, synapse_gui_menu_button_signals[SYNAPSE_GUI_MENU_BUTTON_SETTINGS_CLICKED_SIGNAL], 0);
#line 7719 "widgets.c"
}

static void
___lambda10__gtk_menu_item_activate (GtkMenuItem* _sender,
                                     gpointer self)
{
#line 1013 "widgets.vala"
	__lambda10_ ((SynapseGuiMenuButton*) self);
#line 7728 "widgets.c"
}

static void
__lambda11_ (SynapseGuiMenuButton* self)
{
	SynapseGuiSynapseAboutDialog* about = NULL;
	SynapseGuiSynapseAboutDialog* _tmp0_;
#line 1020 "widgets.vala"
	_tmp0_ = synapse_gui_synapse_about_dialog_new ();
#line 1020 "widgets.vala"
	g_object_ref_sink (_tmp0_);
#line 1020 "widgets.vala"
	about = _tmp0_;
#line 1021 "widgets.vala"
	gtk_dialog_run ((GtkDialog*) about);
#line 1022 "widgets.vala"
	gtk_widget_destroy ((GtkWidget*) about);
#line 1019 "widgets.vala"
	_g_object_unref0 (about);
#line 7748 "widgets.c"
}

static void
___lambda11__gtk_menu_item_activate (GtkMenuItem* _sender,
                                     gpointer self)
{
#line 1019 "widgets.vala"
	__lambda11_ ((SynapseGuiMenuButton*) self);
#line 7757 "widgets.c"
}

static void
_gtk_main_quit_gtk_menu_item_activate (GtkMenuItem* _sender,
                                       gpointer self)
{
#line 1030 "widgets.vala"
	gtk_main_quit ();
#line 7766 "widgets.c"
}

SynapseGuiMenuButton*
synapse_gui_menu_button_construct (GType object_type)
{
	SynapseGuiMenuButton * self = NULL;
	SynapseGuiUtilsColorHelper* _tmp0_;
	GtkMenu* _tmp1_;
	GtkMenuItem* item = NULL;
	GtkImageMenuItem* _tmp2_;
	GtkMenuItem* _tmp3_;
	GtkMenu* _tmp4_;
	GtkMenuItem* _tmp5_;
	GtkImageMenuItem* _tmp6_;
	GtkMenuItem* _tmp7_;
	GtkMenu* _tmp8_;
	GtkMenuItem* _tmp9_;
	GtkSeparatorMenuItem* _tmp10_;
	GtkMenu* _tmp11_;
	GtkMenuItem* _tmp12_;
	GtkImageMenuItem* _tmp13_;
	GtkMenuItem* _tmp14_;
	GtkMenu* _tmp15_;
	GtkMenuItem* _tmp16_;
	GtkMenu* _tmp17_;
#line 1005 "widgets.vala"
	self = (SynapseGuiMenuButton*) synapse_gui_fake_button_construct (object_type);
#line 1007 "widgets.vala"
	_tmp0_ = synapse_gui_utils_color_helper_get_default ();
#line 1007 "widgets.vala"
	_synapse_gui_utils_color_helper_unref0 (self->ch);
#line 1007 "widgets.vala"
	self->ch = _tmp0_;
#line 1008 "widgets.vala"
	self->priv->entered = FALSE;
#line 1009 "widgets.vala"
	_tmp1_ = (GtkMenu*) gtk_menu_new ();
#line 1009 "widgets.vala"
	g_object_ref_sink (_tmp1_);
#line 1009 "widgets.vala"
	_g_object_unref0 (self->priv->menu);
#line 1009 "widgets.vala"
	self->priv->menu = _tmp1_;
#line 1010 "widgets.vala"
	item = NULL;
#line 1012 "widgets.vala"
	_tmp2_ = (GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_PREFERENCES, NULL);
#line 1012 "widgets.vala"
	g_object_ref_sink (_tmp2_);
#line 1012 "widgets.vala"
	_g_object_unref0 (item);
#line 1012 "widgets.vala"
	item = (GtkMenuItem*) _tmp2_;
#line 1013 "widgets.vala"
	_tmp3_ = item;
#line 1013 "widgets.vala"
	g_signal_connect_object (_tmp3_, "activate", (GCallback) ___lambda10__gtk_menu_item_activate, self, 0);
#line 1016 "widgets.vala"
	_tmp4_ = self->priv->menu;
#line 1016 "widgets.vala"
	_tmp5_ = item;
#line 1016 "widgets.vala"
	gtk_menu_shell_append ((GtkMenuShell*) _tmp4_, _tmp5_);
#line 1018 "widgets.vala"
	_tmp6_ = (GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_ABOUT, NULL);
#line 1018 "widgets.vala"
	g_object_ref_sink (_tmp6_);
#line 1018 "widgets.vala"
	_g_object_unref0 (item);
#line 1018 "widgets.vala"
	item = (GtkMenuItem*) _tmp6_;
#line 1019 "widgets.vala"
	_tmp7_ = item;
#line 1019 "widgets.vala"
	g_signal_connect_object (_tmp7_, "activate", (GCallback) ___lambda11__gtk_menu_item_activate, self, 0);
#line 1024 "widgets.vala"
	_tmp8_ = self->priv->menu;
#line 1024 "widgets.vala"
	_tmp9_ = item;
#line 1024 "widgets.vala"
	gtk_menu_shell_append ((GtkMenuShell*) _tmp8_, _tmp9_);
#line 1026 "widgets.vala"
	_tmp10_ = (GtkSeparatorMenuItem*) gtk_separator_menu_item_new ();
#line 1026 "widgets.vala"
	g_object_ref_sink (_tmp10_);
#line 1026 "widgets.vala"
	_g_object_unref0 (item);
#line 1026 "widgets.vala"
	item = (GtkMenuItem*) _tmp10_;
#line 1027 "widgets.vala"
	_tmp11_ = self->priv->menu;
#line 1027 "widgets.vala"
	_tmp12_ = item;
#line 1027 "widgets.vala"
	gtk_menu_shell_append ((GtkMenuShell*) _tmp11_, _tmp12_);
#line 1029 "widgets.vala"
	_tmp13_ = (GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_QUIT, NULL);
#line 1029 "widgets.vala"
	g_object_ref_sink (_tmp13_);
#line 1029 "widgets.vala"
	_g_object_unref0 (item);
#line 1029 "widgets.vala"
	item = (GtkMenuItem*) _tmp13_;
#line 1030 "widgets.vala"
	_tmp14_ = item;
#line 1030 "widgets.vala"
	g_signal_connect (_tmp14_, "activate", (GCallback) _gtk_main_quit_gtk_menu_item_activate, NULL);
#line 1031 "widgets.vala"
	_tmp15_ = self->priv->menu;
#line 1031 "widgets.vala"
	_tmp16_ = item;
#line 1031 "widgets.vala"
	gtk_menu_shell_append ((GtkMenuShell*) _tmp15_, _tmp16_);
#line 1033 "widgets.vala"
	_tmp17_ = self->priv->menu;
#line 1033 "widgets.vala"
	gtk_widget_show_all ((GtkWidget*) _tmp17_);
#line 1005 "widgets.vala"
	_g_object_unref0 (item);
#line 1005 "widgets.vala"
	return self;
#line 7888 "widgets.c"
}

SynapseGuiMenuButton*
synapse_gui_menu_button_new (void)
{
#line 1005 "widgets.vala"
	return synapse_gui_menu_button_construct (SYNAPSE_GUI_TYPE_MENU_BUTTON);
#line 7896 "widgets.c"
}

GtkMenu*
synapse_gui_menu_button_get_menu (SynapseGuiMenuButton* self)
{
	GtkMenu* _tmp0_;
	GtkMenu* result;
#line 1036 "widgets.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1038 "widgets.vala"
	_tmp0_ = self->priv->menu;
#line 1038 "widgets.vala"
	result = _tmp0_;
#line 1038 "widgets.vala"
	return result;
#line 7912 "widgets.c"
}

static void
synapse_gui_menu_button_real_enter (SynapseGuiFakeButton* base)
{
	SynapseGuiMenuButton * self;
#line 1041 "widgets.vala"
	self = (SynapseGuiMenuButton*) base;
#line 1043 "widgets.vala"
	self->priv->entered = TRUE;
#line 1044 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 7925 "widgets.c"
}

static void
synapse_gui_menu_button_real_leave (SynapseGuiFakeButton* base)
{
	SynapseGuiMenuButton * self;
#line 1046 "widgets.vala"
	self = (SynapseGuiMenuButton*) base;
#line 1048 "widgets.vala"
	self->priv->entered = FALSE;
#line 1049 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 7938 "widgets.c"
}

gboolean
synapse_gui_menu_button_is_menu_visible (SynapseGuiMenuButton* self)
{
	GtkMenu* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean result;
#line 1051 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1053 "widgets.vala"
	_tmp0_ = self->priv->menu;
#line 1053 "widgets.vala"
	_tmp1_ = gtk_widget_get_visible ((GtkWidget*) _tmp0_);
#line 1053 "widgets.vala"
	_tmp2_ = _tmp1_;
#line 1053 "widgets.vala"
	result = _tmp2_;
#line 1053 "widgets.vala"
	return result;
#line 7960 "widgets.c"
}

static void
synapse_gui_menu_button_real_released (SynapseGuiFakeButton* base)
{
	SynapseGuiMenuButton * self;
	GtkMenu* _tmp0_;
#line 1055 "widgets.vala"
	self = (SynapseGuiMenuButton*) base;
#line 1057 "widgets.vala"
	_tmp0_ = self->priv->menu;
#line 1057 "widgets.vala"
	gtk_menu_popup (_tmp0_, NULL, NULL, NULL, NULL, (guint) 1, (guint32) 0);
#line 7974 "widgets.c"
}

static void
synapse_gui_menu_button_real_size_allocate (GtkWidget* base,
                                            GtkAllocation* allocation)
{
	SynapseGuiMenuButton * self;
	GtkAllocation alloc = {0};
	GtkAllocation _tmp0_;
	GtkAllocation _tmp1_;
	GtkAllocation _tmp2_;
	GtkAllocation _tmp3_;
	GtkAllocation _tmp4_ = {0};
	GtkAllocation _tmp5_;
#line 1060 "widgets.vala"
	self = (SynapseGuiMenuButton*) base;
#line 1060 "widgets.vala"
	g_return_if_fail (allocation != NULL);
#line 1062 "widgets.vala"
	_tmp0_ = *allocation;
#line 1062 "widgets.vala"
	_tmp1_ = *allocation;
#line 1062 "widgets.vala"
	_tmp2_ = *allocation;
#line 1062 "widgets.vala"
	_tmp3_ = *allocation;
#line 1062 "widgets.vala"
	_tmp4_.x = _tmp0_.x;
#line 1062 "widgets.vala"
	_tmp4_.y = _tmp1_.y;
#line 1062 "widgets.vala"
	_tmp4_.width = _tmp2_.width;
#line 1062 "widgets.vala"
	_tmp4_.height = _tmp3_.height;
#line 1062 "widgets.vala"
	alloc = _tmp4_;
#line 1063 "widgets.vala"
	_tmp5_ = alloc;
#line 1063 "widgets.vala"
	gtk_widget_set_allocation ((GtkWidget*) self, &_tmp5_);
#line 8015 "widgets.c"
}

static void
synapse_gui_menu_button_real_get_preferred_width (GtkWidget* base,
                                                  gint* min_width,
                                                  gint* nat_width)
{
	SynapseGuiMenuButton * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
#line 1066 "widgets.vala"
	self = (SynapseGuiMenuButton*) base;
#line 1068 "widgets.vala"
	_vala_nat_width = 11;
#line 1068 "widgets.vala"
	_vala_min_width = _vala_nat_width;
#line 1066 "widgets.vala"
	if (min_width) {
#line 1066 "widgets.vala"
		*min_width = _vala_min_width;
#line 8036 "widgets.c"
	}
#line 1066 "widgets.vala"
	if (nat_width) {
#line 1066 "widgets.vala"
		*nat_width = _vala_nat_width;
#line 8042 "widgets.c"
	}
}

static void
synapse_gui_menu_button_real_get_preferred_height (GtkWidget* base,
                                                   gint* min_height,
                                                   gint* nat_height)
{
	SynapseGuiMenuButton * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
#line 1071 "widgets.vala"
	self = (SynapseGuiMenuButton*) base;
#line 1073 "widgets.vala"
	_vala_nat_height = 11;
#line 1073 "widgets.vala"
	_vala_min_height = _vala_nat_height;
#line 1071 "widgets.vala"
	if (min_height) {
#line 1071 "widgets.vala"
		*min_height = _vala_min_height;
#line 8064 "widgets.c"
	}
#line 1071 "widgets.vala"
	if (nat_height) {
#line 1071 "widgets.vala"
		*nat_height = _vala_nat_height;
#line 8070 "widgets.c"
	}
}

static gboolean
synapse_gui_menu_button_real_draw (GtkWidget* base,
                                   cairo_t* ctx)
{
	SynapseGuiMenuButton * self;
	GtkAllocation allocation = {0};
	GtkAllocation _tmp0_ = {0};
	gdouble SIZE = 0.0;
	gdouble r = 0.0;
	gdouble g = 0.0;
	gdouble b = 0.0;
	gdouble size = 0.0;
	gdouble _tmp1_;
	GtkAllocation _tmp2_;
	GtkAllocation _tmp3_;
	cairo_pattern_t* pat = NULL;
	GtkAllocation _tmp4_;
	cairo_pattern_t* _tmp5_;
	gboolean _tmp6_ = FALSE;
	cairo_pattern_t* _tmp15_;
	cairo_pattern_t* _tmp20_;
	gdouble xc = 0.0;
	GtkAllocation _tmp21_;
	gdouble yc = 0.0;
	cairo_pattern_t* _tmp22_;
	gboolean result;
#line 1076 "widgets.vala"
	self = (SynapseGuiMenuButton*) base;
#line 1076 "widgets.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 1079 "widgets.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp0_);
#line 1079 "widgets.vala"
	allocation = _tmp0_;
#line 1081 "widgets.vala"
	SIZE = 0.5;
#line 1082 "widgets.vala"
	cairo_translate (ctx, SIZE, SIZE);
#line 1083 "widgets.vala"
	cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
#line 1085 "widgets.vala"
	r = 0.0;
#line 1085 "widgets.vala"
	g = 0.0;
#line 1085 "widgets.vala"
	b = 0.0;
#line 1086 "widgets.vala"
	_tmp1_ = self->priv->_button_scale;
#line 1086 "widgets.vala"
	_tmp2_ = allocation;
#line 1086 "widgets.vala"
	_tmp3_ = allocation;
#line 1086 "widgets.vala"
	size = (_tmp1_ * MIN (_tmp2_.width, _tmp3_.height)) - (SIZE * 2);
#line 1088 "widgets.vala"
	_tmp4_ = allocation;
#line 1088 "widgets.vala"
	_tmp5_ = cairo_pattern_create_linear ((gdouble) 0, (gdouble) 0, (gdouble) 0, (gdouble) _tmp4_.height);
#line 1088 "widgets.vala"
	pat = _tmp5_;
#line 1089 "widgets.vala"
	if (self->priv->entered) {
#line 1089 "widgets.vala"
		_tmp6_ = TRUE;
#line 8138 "widgets.c"
	} else {
#line 1089 "widgets.vala"
		_tmp6_ = (gtk_widget_get_state_flags ((GtkWidget*) self) & GTK_STATE_FLAG_SELECTED) != 0;
#line 8142 "widgets.c"
	}
#line 1089 "widgets.vala"
	if (_tmp6_) {
#line 8146 "widgets.c"
		SynapseGuiUtilsColorHelper* _tmp7_;
		gdouble _tmp8_ = 0.0;
		gdouble _tmp9_ = 0.0;
		gdouble _tmp10_ = 0.0;
#line 1091 "widgets.vala"
		_tmp7_ = self->ch;
#line 1091 "widgets.vala"
		synapse_gui_utils_color_helper_get_rgb (_tmp7_, &_tmp8_, &_tmp9_, &_tmp10_, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_SELECTED, SYNAPSE_GUI_MOD_NORMAL);
#line 1091 "widgets.vala"
		r = _tmp8_;
#line 1091 "widgets.vala"
		g = _tmp9_;
#line 1091 "widgets.vala"
		b = _tmp10_;
#line 8161 "widgets.c"
	} else {
		SynapseGuiUtilsColorHelper* _tmp11_;
		gdouble _tmp12_ = 0.0;
		gdouble _tmp13_ = 0.0;
		gdouble _tmp14_ = 0.0;
#line 1095 "widgets.vala"
		_tmp11_ = self->ch;
#line 1095 "widgets.vala"
		synapse_gui_utils_color_helper_get_rgb (_tmp11_, &_tmp12_, &_tmp13_, &_tmp14_, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 1095 "widgets.vala"
		r = _tmp12_;
#line 1095 "widgets.vala"
		g = _tmp13_;
#line 1095 "widgets.vala"
		b = _tmp14_;
#line 8177 "widgets.c"
	}
#line 1097 "widgets.vala"
	_tmp15_ = pat;
#line 1097 "widgets.vala"
	cairo_pattern_add_color_stop_rgb (_tmp15_, 0.0, MAX (r - 0.15, (gdouble) 0), MAX (g - 0.15, (gdouble) 0), MAX (b - 0.15, (gdouble) 0));
#line 1101 "widgets.vala"
	if (self->priv->entered) {
#line 8185 "widgets.c"
		SynapseGuiUtilsColorHelper* _tmp16_;
		gdouble _tmp17_ = 0.0;
		gdouble _tmp18_ = 0.0;
		gdouble _tmp19_ = 0.0;
#line 1103 "widgets.vala"
		_tmp16_ = self->ch;
#line 1103 "widgets.vala"
		synapse_gui_utils_color_helper_get_rgb (_tmp16_, &_tmp17_, &_tmp18_, &_tmp19_, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 1103 "widgets.vala"
		r = _tmp17_;
#line 1103 "widgets.vala"
		g = _tmp18_;
#line 1103 "widgets.vala"
		b = _tmp19_;
#line 8200 "widgets.c"
	}
#line 1105 "widgets.vala"
	_tmp20_ = pat;
#line 1105 "widgets.vala"
	cairo_pattern_add_color_stop_rgb (_tmp20_, 1.0, MIN (r + 0.15, (gdouble) 1), MIN (g + 0.15, (gdouble) 1), MIN (b + 0.15, (gdouble) 1));
#line 1110 "widgets.vala"
	size *= 0.5;
#line 1111 "widgets.vala"
	_tmp21_ = allocation;
#line 1111 "widgets.vala"
	xc = (_tmp21_.width - (SIZE * 2)) - size;
#line 1112 "widgets.vala"
	yc = size;
#line 1113 "widgets.vala"
	_tmp22_ = pat;
#line 1113 "widgets.vala"
	cairo_set_source (ctx, _tmp22_);
#line 1114 "widgets.vala"
	cairo_arc (ctx, xc, yc, size, 0.0, G_PI * 2);
#line 1115 "widgets.vala"
	cairo_fill (ctx);
#line 1117 "widgets.vala"
	if (self->priv->entered) {
#line 8224 "widgets.c"
		SynapseGuiUtilsColorHelper* _tmp23_;
		gdouble _tmp24_ = 0.0;
		gdouble _tmp25_ = 0.0;
		gdouble _tmp26_ = 0.0;
#line 1119 "widgets.vala"
		_tmp23_ = self->ch;
#line 1119 "widgets.vala"
		synapse_gui_utils_color_helper_get_rgb (_tmp23_, &_tmp24_, &_tmp25_, &_tmp26_, SYNAPSE_GUI_STYLE_TYPE_FG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 1119 "widgets.vala"
		r = _tmp24_;
#line 1119 "widgets.vala"
		g = _tmp25_;
#line 1119 "widgets.vala"
		b = _tmp26_;
#line 8239 "widgets.c"
	} else {
		SynapseGuiUtilsColorHelper* _tmp27_;
		gdouble _tmp28_ = 0.0;
		gdouble _tmp29_ = 0.0;
		gdouble _tmp30_ = 0.0;
#line 1123 "widgets.vala"
		_tmp27_ = self->ch;
#line 1123 "widgets.vala"
		synapse_gui_utils_color_helper_get_rgb (_tmp27_, &_tmp28_, &_tmp29_, &_tmp30_, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 1123 "widgets.vala"
		r = _tmp28_;
#line 1123 "widgets.vala"
		g = _tmp29_;
#line 1123 "widgets.vala"
		b = _tmp30_;
#line 8255 "widgets.c"
	}
#line 1126 "widgets.vala"
	cairo_set_source_rgb (ctx, r, g, b);
#line 1127 "widgets.vala"
	cairo_arc (ctx, xc, yc, size * 0.5, 0.0, G_PI * 2);
#line 1128 "widgets.vala"
	cairo_fill (ctx);
#line 1130 "widgets.vala"
	result = TRUE;
#line 1130 "widgets.vala"
	_cairo_pattern_destroy0 (pat);
#line 1130 "widgets.vala"
	return result;
#line 8269 "widgets.c"
}

gdouble
synapse_gui_menu_button_get_button_scale (SynapseGuiMenuButton* self)
{
	gdouble result;
#line 1001 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0.0);
#line 1001 "widgets.vala"
	result = self->priv->_button_scale;
#line 1001 "widgets.vala"
	return result;
#line 8282 "widgets.c"
}

void
synapse_gui_menu_button_set_button_scale (SynapseGuiMenuButton* self,
                                          gdouble value)
{
	gdouble old_value;
#line 1001 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1001 "widgets.vala"
	old_value = synapse_gui_menu_button_get_button_scale (self);
#line 1001 "widgets.vala"
	if (old_value != value) {
#line 1001 "widgets.vala"
		self->priv->_button_scale = value;
#line 1001 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_menu_button_properties[SYNAPSE_GUI_MENU_BUTTON_BUTTON_SCALE_PROPERTY]);
#line 8300 "widgets.c"
	}
}

static void
synapse_gui_menu_button_class_init (SynapseGuiMenuButtonClass * klass,
                                    gpointer klass_data)
{
#line 999 "widgets.vala"
	synapse_gui_menu_button_parent_class = g_type_class_peek_parent (klass);
#line 999 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiMenuButton_private_offset);
#line 999 "widgets.vala"
	((SynapseGuiFakeButtonClass *) klass)->enter = (void (*) (SynapseGuiFakeButton*)) synapse_gui_menu_button_real_enter;
#line 999 "widgets.vala"
	((SynapseGuiFakeButtonClass *) klass)->leave = (void (*) (SynapseGuiFakeButton*)) synapse_gui_menu_button_real_leave;
#line 999 "widgets.vala"
	((SynapseGuiFakeButtonClass *) klass)->released = (void (*) (SynapseGuiFakeButton*)) synapse_gui_menu_button_real_released;
#line 999 "widgets.vala"
	((GtkWidgetClass *) klass)->size_allocate = (void (*) (GtkWidget*, GtkAllocation*)) synapse_gui_menu_button_real_size_allocate;
#line 999 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_menu_button_real_get_preferred_width;
#line 999 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_menu_button_real_get_preferred_height;
#line 999 "widgets.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_menu_button_real_draw;
#line 999 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_menu_button_get_property;
#line 999 "widgets.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_menu_button_set_property;
#line 999 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_menu_button_finalize;
#line 999 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MENU_BUTTON_BUTTON_SCALE_PROPERTY, synapse_gui_menu_button_properties[SYNAPSE_GUI_MENU_BUTTON_BUTTON_SCALE_PROPERTY] = g_param_spec_double ("button-scale", "button-scale", "button-scale", -G_MAXDOUBLE, G_MAXDOUBLE, 1.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 999 "widgets.vala"
	synapse_gui_menu_button_signals[SYNAPSE_GUI_MENU_BUTTON_SETTINGS_CLICKED_SIGNAL] = g_signal_new ("settings-clicked", SYNAPSE_GUI_TYPE_MENU_BUTTON, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 8336 "widgets.c"
}

static void
synapse_gui_menu_button_instance_init (SynapseGuiMenuButton * self,
                                       gpointer klass)
{
#line 999 "widgets.vala"
	self->priv = synapse_gui_menu_button_get_instance_private (self);
#line 1001 "widgets.vala"
	self->priv->_button_scale = 1.0;
#line 8347 "widgets.c"
}

static void
synapse_gui_menu_button_finalize (GObject * obj)
{
	SynapseGuiMenuButton * self;
#line 999 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_MENU_BUTTON, SynapseGuiMenuButton);
#line 1003 "widgets.vala"
	_synapse_gui_utils_color_helper_unref0 (self->ch);
#line 1004 "widgets.vala"
	_g_object_unref0 (self->priv->menu);
#line 999 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_menu_button_parent_class)->finalize (obj);
#line 8362 "widgets.c"
}

static GType
synapse_gui_menu_button_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiMenuButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_menu_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiMenuButton), 0, (GInstanceInitFunc) synapse_gui_menu_button_instance_init, NULL };
	GType synapse_gui_menu_button_type_id;
	synapse_gui_menu_button_type_id = g_type_register_static (SYNAPSE_GUI_TYPE_FAKE_BUTTON, "SynapseGuiMenuButton", &g_define_type_info, 0);
	SynapseGuiMenuButton_private_offset = g_type_add_instance_private (synapse_gui_menu_button_type_id, sizeof (SynapseGuiMenuButtonPrivate));
	return synapse_gui_menu_button_type_id;
}

GType
synapse_gui_menu_button_get_type (void)
{
	static volatile gsize synapse_gui_menu_button_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_menu_button_type_id__once)) {
		GType synapse_gui_menu_button_type_id;
		synapse_gui_menu_button_type_id = synapse_gui_menu_button_get_type_once ();
		g_once_init_leave (&synapse_gui_menu_button_type_id__once, synapse_gui_menu_button_type_id);
	}
	return synapse_gui_menu_button_type_id__once;
}

static void
_vala_synapse_gui_menu_button_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	SynapseGuiMenuButton * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_MENU_BUTTON, SynapseGuiMenuButton);
#line 999 "widgets.vala"
	switch (property_id) {
#line 999 "widgets.vala"
		case SYNAPSE_GUI_MENU_BUTTON_BUTTON_SCALE_PROPERTY:
#line 999 "widgets.vala"
		g_value_set_double (value, synapse_gui_menu_button_get_button_scale (self));
#line 999 "widgets.vala"
		break;
#line 8403 "widgets.c"
		default:
#line 999 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 999 "widgets.vala"
		break;
#line 8409 "widgets.c"
	}
}

static void
_vala_synapse_gui_menu_button_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	SynapseGuiMenuButton * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_MENU_BUTTON, SynapseGuiMenuButton);
#line 999 "widgets.vala"
	switch (property_id) {
#line 999 "widgets.vala"
		case SYNAPSE_GUI_MENU_BUTTON_BUTTON_SCALE_PROPERTY:
#line 999 "widgets.vala"
		synapse_gui_menu_button_set_button_scale (self, g_value_get_double (value));
#line 999 "widgets.vala"
		break;
#line 8429 "widgets.c"
		default:
#line 999 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 999 "widgets.vala"
		break;
#line 8435 "widgets.c"
	}
}

static gchar**
_vala_array_dup5 (gchar** self,
                  gssize length)
{
#line 1142 "widgets.vala"
	if (length >= 0) {
#line 8445 "widgets.c"
		gchar** result;
		gssize i;
#line 1142 "widgets.vala"
		result = g_new0 (gchar*, length + 1);
#line 1142 "widgets.vala"
		for (i = 0; i < length; i++) {
#line 8452 "widgets.c"
			gchar* _tmp0_;
#line 1142 "widgets.vala"
			_tmp0_ = g_strdup (self[i]);
#line 1142 "widgets.vala"
			result[i] = _tmp0_;
#line 8458 "widgets.c"
		}
#line 1142 "widgets.vala"
		return result;
#line 8462 "widgets.c"
	}
#line 1142 "widgets.vala"
	return NULL;
#line 8466 "widgets.c"
}

static void
_vala_array_add2 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
#line 1143 "widgets.vala"
	if ((*length) == (*size)) {
#line 1143 "widgets.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 1143 "widgets.vala"
		*array = g_renew (gchar*, *array, (*size) + 1);
#line 8481 "widgets.c"
	}
#line 1143 "widgets.vala"
	(*array)[(*length)++] = value;
#line 1143 "widgets.vala"
	(*array)[*length] = NULL;
#line 8487 "widgets.c"
}

static gchar*
_vala_g_strjoinv (const gchar* separator,
                  gchar** str_array,
                  gint str_array_length1)
{
	gboolean _tmp0_ = FALSE;
	gchar* result;
#line 1251 "glib-2.0.vapi"
	if (separator == NULL) {
#line 1252 "glib-2.0.vapi"
		separator = "";
#line 8501 "widgets.c"
	}
#line 1254 "glib-2.0.vapi"
	if (str_array != NULL) {
#line 8505 "widgets.c"
		gboolean _tmp1_ = FALSE;
#line 1254 "glib-2.0.vapi"
		if (str_array_length1 > 0) {
#line 1254 "glib-2.0.vapi"
			_tmp1_ = TRUE;
#line 8511 "widgets.c"
		} else {
			gboolean _tmp2_ = FALSE;
#line 1254 "glib-2.0.vapi"
			if (str_array_length1 == -1) {
#line 8516 "widgets.c"
				const gchar* _tmp3_;
#line 1254 "glib-2.0.vapi"
				_tmp3_ = str_array[0];
#line 1254 "glib-2.0.vapi"
				_tmp2_ = _tmp3_ != NULL;
#line 8522 "widgets.c"
			} else {
#line 1254 "glib-2.0.vapi"
				_tmp2_ = FALSE;
#line 8526 "widgets.c"
			}
#line 1254 "glib-2.0.vapi"
			_tmp1_ = _tmp2_;
#line 8530 "widgets.c"
		}
#line 1254 "glib-2.0.vapi"
		_tmp0_ = _tmp1_;
#line 8534 "widgets.c"
	} else {
#line 1254 "glib-2.0.vapi"
		_tmp0_ = FALSE;
#line 8538 "widgets.c"
	}
#line 1254 "glib-2.0.vapi"
	if (_tmp0_) {
#line 8542 "widgets.c"
		gint i = 0;
		gsize len = 0UL;
		gint _tmp16_;
		gint _tmp17_;
		const gchar* res = NULL;
		void* _tmp18_;
		const gchar* _tmp19_ = NULL;
		const gchar* _tmp20_;
		void* ptr = NULL;
		const gchar* _tmp22_;
		void* _tmp23_;
		const gchar* _tmp33_;
#line 1256 "glib-2.0.vapi"
		len = (gsize) 1;
#line 8557 "widgets.c"
		{
			gboolean _tmp4_ = FALSE;
#line 1257 "glib-2.0.vapi"
			i = 0;
#line 1257 "glib-2.0.vapi"
			_tmp4_ = TRUE;
#line 1257 "glib-2.0.vapi"
			while (TRUE) {
#line 8566 "widgets.c"
				gboolean _tmp6_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gint _tmp10_ = 0;
				const gchar* _tmp11_;
#line 1257 "glib-2.0.vapi"
				if (!_tmp4_) {
#line 8573 "widgets.c"
					gint _tmp5_;
#line 1257 "glib-2.0.vapi"
					_tmp5_ = i;
#line 1257 "glib-2.0.vapi"
					i = _tmp5_ + 1;
#line 8579 "widgets.c"
				}
#line 1257 "glib-2.0.vapi"
				_tmp4_ = FALSE;
#line 1257 "glib-2.0.vapi"
				if (str_array_length1 != -1) {
#line 1257 "glib-2.0.vapi"
					_tmp7_ = i < str_array_length1;
#line 8587 "widgets.c"
				} else {
#line 1257 "glib-2.0.vapi"
					_tmp7_ = FALSE;
#line 8591 "widgets.c"
				}
#line 1257 "glib-2.0.vapi"
				if (_tmp7_) {
#line 1257 "glib-2.0.vapi"
					_tmp6_ = TRUE;
#line 8597 "widgets.c"
				} else {
					gboolean _tmp8_ = FALSE;
#line 1257 "glib-2.0.vapi"
					if (str_array_length1 == -1) {
#line 8602 "widgets.c"
						const gchar* _tmp9_;
#line 1257 "glib-2.0.vapi"
						_tmp9_ = str_array[i];
#line 1257 "glib-2.0.vapi"
						_tmp8_ = _tmp9_ != NULL;
#line 8608 "widgets.c"
					} else {
#line 1257 "glib-2.0.vapi"
						_tmp8_ = FALSE;
#line 8612 "widgets.c"
					}
#line 1257 "glib-2.0.vapi"
					_tmp6_ = _tmp8_;
#line 8616 "widgets.c"
				}
#line 1257 "glib-2.0.vapi"
				if (!_tmp6_) {
#line 1257 "glib-2.0.vapi"
					break;
#line 8622 "widgets.c"
				}
#line 1258 "glib-2.0.vapi"
				_tmp11_ = str_array[i];
#line 1258 "glib-2.0.vapi"
				if (_tmp11_ != NULL) {
#line 8628 "widgets.c"
					const gchar* _tmp12_;
					gint _tmp13_;
					gint _tmp14_;
#line 1258 "glib-2.0.vapi"
					_tmp12_ = str_array[i];
#line 1258 "glib-2.0.vapi"
					_tmp13_ = strlen ((const gchar*) _tmp12_);
#line 1258 "glib-2.0.vapi"
					_tmp14_ = _tmp13_;
#line 1258 "glib-2.0.vapi"
					_tmp10_ = _tmp14_;
#line 8640 "widgets.c"
				} else {
#line 1258 "glib-2.0.vapi"
					_tmp10_ = 0;
#line 8644 "widgets.c"
				}
#line 1258 "glib-2.0.vapi"
				len += (gsize) _tmp10_;
#line 8648 "widgets.c"
			}
		}
#line 1260 "glib-2.0.vapi"
		if (i == 0) {
#line 8653 "widgets.c"
			gchar* _tmp15_;
#line 1261 "glib-2.0.vapi"
			_tmp15_ = g_strdup ("");
#line 1261 "glib-2.0.vapi"
			result = _tmp15_;
#line 1261 "glib-2.0.vapi"
			return result;
#line 8661 "widgets.c"
		}
#line 1263 "glib-2.0.vapi"
		str_array_length1 = i;
#line 1264 "glib-2.0.vapi"
		_tmp16_ = strlen ((const gchar*) separator);
#line 1264 "glib-2.0.vapi"
		_tmp17_ = _tmp16_;
#line 1264 "glib-2.0.vapi"
		len += (gsize) (_tmp17_ * (i - 1));
#line 1266 "glib-2.0.vapi"
		_tmp18_ = g_malloc (len);
#line 1266 "glib-2.0.vapi"
		res = _tmp18_;
#line 1267 "glib-2.0.vapi"
		_tmp20_ = str_array[0];
#line 1267 "glib-2.0.vapi"
		if (_tmp20_ != NULL) {
#line 8679 "widgets.c"
			const gchar* _tmp21_;
#line 1267 "glib-2.0.vapi"
			_tmp21_ = str_array[0];
#line 1267 "glib-2.0.vapi"
			_tmp19_ = (const gchar*) _tmp21_;
#line 8685 "widgets.c"
		} else {
#line 1267 "glib-2.0.vapi"
			_tmp19_ = "";
#line 8689 "widgets.c"
		}
#line 1267 "glib-2.0.vapi"
		_tmp22_ = res;
#line 1267 "glib-2.0.vapi"
		_tmp23_ = g_stpcpy ((void*) _tmp22_, _tmp19_);
#line 1267 "glib-2.0.vapi"
		ptr = _tmp23_;
#line 8697 "widgets.c"
		{
			gboolean _tmp24_ = FALSE;
#line 1268 "glib-2.0.vapi"
			i = 1;
#line 1268 "glib-2.0.vapi"
			_tmp24_ = TRUE;
#line 1268 "glib-2.0.vapi"
			while (TRUE) {
#line 8706 "widgets.c"
				void* _tmp26_;
				void* _tmp27_;
				const gchar* _tmp28_ = NULL;
				const gchar* _tmp29_;
				void* _tmp31_;
				void* _tmp32_;
#line 1268 "glib-2.0.vapi"
				if (!_tmp24_) {
#line 8715 "widgets.c"
					gint _tmp25_;
#line 1268 "glib-2.0.vapi"
					_tmp25_ = i;
#line 1268 "glib-2.0.vapi"
					i = _tmp25_ + 1;
#line 8721 "widgets.c"
				}
#line 1268 "glib-2.0.vapi"
				_tmp24_ = FALSE;
#line 1268 "glib-2.0.vapi"
				if (!(i < str_array_length1)) {
#line 1268 "glib-2.0.vapi"
					break;
#line 8729 "widgets.c"
				}
#line 1269 "glib-2.0.vapi"
				_tmp26_ = ptr;
#line 1269 "glib-2.0.vapi"
				_tmp27_ = g_stpcpy (_tmp26_, (const gchar*) separator);
#line 1269 "glib-2.0.vapi"
				ptr = _tmp27_;
#line 1270 "glib-2.0.vapi"
				_tmp29_ = str_array[i];
#line 1270 "glib-2.0.vapi"
				if (_tmp29_ != NULL) {
#line 8741 "widgets.c"
					const gchar* _tmp30_;
#line 1270 "glib-2.0.vapi"
					_tmp30_ = str_array[i];
#line 1270 "glib-2.0.vapi"
					_tmp28_ = (const gchar*) _tmp30_;
#line 8747 "widgets.c"
				} else {
#line 1270 "glib-2.0.vapi"
					_tmp28_ = "";
#line 8751 "widgets.c"
				}
#line 1270 "glib-2.0.vapi"
				_tmp31_ = ptr;
#line 1270 "glib-2.0.vapi"
				_tmp32_ = g_stpcpy (_tmp31_, _tmp28_);
#line 1270 "glib-2.0.vapi"
				ptr = _tmp32_;
#line 8759 "widgets.c"
			}
		}
#line 1273 "glib-2.0.vapi"
		_tmp33_ = res;
#line 1273 "glib-2.0.vapi"
		res = NULL;
#line 1273 "glib-2.0.vapi"
		result = (gchar*) _tmp33_;
#line 1273 "glib-2.0.vapi"
		return result;
#line 8770 "widgets.c"
	} else {
		gchar* _tmp34_;
#line 1275 "glib-2.0.vapi"
		_tmp34_ = g_strdup ("");
#line 1275 "glib-2.0.vapi"
		result = _tmp34_;
#line 1275 "glib-2.0.vapi"
		return result;
#line 8779 "widgets.c"
	}
}

SynapseGuiSynapseAboutDialog*
synapse_gui_synapse_about_dialog_construct (GType object_type)
{
	SynapseGuiSynapseAboutDialog * self = NULL;
	gchar** devs = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar** _tmp4_;
	gint devs_length1;
	gint _devs_size_;
	gchar** artists = NULL;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gint artists_length1;
	gint _artists_size_;
	gchar* _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
#line 1138 "widgets.vala"
	_tmp0_ = g_strdup ("Michal Hruby <michal.mhr@gmail.com>");
#line 1138 "widgets.vala"
	_tmp1_ = g_strdup ("Alberto Aldegheri <albyrock87+dev@gmail.com>");
#line 1138 "widgets.vala"
	_tmp2_ = g_strdup ("Tom Beckmann <tom@elementaryos.org>");
#line 1138 "widgets.vala"
	_tmp3_ = g_strdup ("Rico Tzschichholz <ricotz@ubuntu.com>");
#line 1138 "widgets.vala"
	_tmp4_ = g_new0 (gchar*, 4 + 1);
#line 1138 "widgets.vala"
	_tmp4_[0] = _tmp0_;
#line 1138 "widgets.vala"
	_tmp4_[1] = _tmp1_;
#line 1138 "widgets.vala"
	_tmp4_[2] = _tmp2_;
#line 1138 "widgets.vala"
	_tmp4_[3] = _tmp3_;
#line 1138 "widgets.vala"
	devs = _tmp4_;
#line 1138 "widgets.vala"
	devs_length1 = 4;
#line 1138 "widgets.vala"
	_devs_size_ = devs_length1;
#line 1142 "widgets.vala"
	_tmp5_ = (devs != NULL) ? _vala_array_dup5 (devs, devs_length1) : devs;
#line 1142 "widgets.vala"
	_tmp5__length1 = devs_length1;
#line 1142 "widgets.vala"
	artists = _tmp5_;
#line 1142 "widgets.vala"
	artists_length1 = _tmp5__length1;
#line 1142 "widgets.vala"
	_artists_size_ = artists_length1;
#line 1143 "widgets.vala"
	_tmp6_ = g_strdup ("Ian Cylkowski <designbyizo@gmail.com>");
#line 1143 "widgets.vala"
	_vala_array_add2 (&artists, &artists_length1, &_artists_size_, _tmp6_);
#line 1144 "widgets.vala"
	_tmp7_ = artists;
#line 1144 "widgets.vala"
	_tmp7__length1 = artists_length1;
#line 1144 "widgets.vala"
	_tmp8_ = _vala_g_strjoinv ("\n", devs, (gint) devs_length1);
#line 1144 "widgets.vala"
	_tmp9_ = _tmp8_;
#line 1144 "widgets.vala"
	_tmp10_ = g_strconcat ("Copyright (C) 2010-2018 ", _tmp9_, NULL);
#line 1144 "widgets.vala"
	_tmp11_ = _tmp10_;
#line 1144 "widgets.vala"
	self = (SynapseGuiSynapseAboutDialog*) g_object_new (object_type, "artists", _tmp7_, "authors", devs, "copyright", _tmp11_, "program-name", "Synapse", "logo-icon-name", "synapse", "version", VERSION "\n" RELEASE_NAME, "website", "http://launchpad.net/synapse-project", NULL);
#line 1144 "widgets.vala"
	_g_free0 (_tmp11_);
#line 1144 "widgets.vala"
	_g_free0 (_tmp9_);
#line 1136 "widgets.vala"
	artists = (_vala_array_free (artists, artists_length1, (GDestroyNotify) g_free), NULL);
#line 1136 "widgets.vala"
	devs = (_vala_array_free (devs, devs_length1, (GDestroyNotify) g_free), NULL);
#line 1136 "widgets.vala"
	return self;
#line 8869 "widgets.c"
}

SynapseGuiSynapseAboutDialog*
synapse_gui_synapse_about_dialog_new (void)
{
#line 1136 "widgets.vala"
	return synapse_gui_synapse_about_dialog_construct (SYNAPSE_GUI_TYPE_SYNAPSE_ABOUT_DIALOG);
#line 8877 "widgets.c"
}

static void
synapse_gui_synapse_about_dialog_class_init (SynapseGuiSynapseAboutDialogClass * klass,
                                             gpointer klass_data)
{
#line 1134 "widgets.vala"
	synapse_gui_synapse_about_dialog_parent_class = g_type_class_peek_parent (klass);
#line 8886 "widgets.c"
}

static void
synapse_gui_synapse_about_dialog_instance_init (SynapseGuiSynapseAboutDialog * self,
                                                gpointer klass)
{
}

static GType
synapse_gui_synapse_about_dialog_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiSynapseAboutDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_synapse_about_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiSynapseAboutDialog), 0, (GInstanceInitFunc) synapse_gui_synapse_about_dialog_instance_init, NULL };
	GType synapse_gui_synapse_about_dialog_type_id;
	synapse_gui_synapse_about_dialog_type_id = g_type_register_static (gtk_about_dialog_get_type (), "SynapseGuiSynapseAboutDialog", &g_define_type_info, 0);
	return synapse_gui_synapse_about_dialog_type_id;
}

GType
synapse_gui_synapse_about_dialog_get_type (void)
{
	static volatile gsize synapse_gui_synapse_about_dialog_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_synapse_about_dialog_type_id__once)) {
		GType synapse_gui_synapse_about_dialog_type_id;
		synapse_gui_synapse_about_dialog_type_id = synapse_gui_synapse_about_dialog_get_type_once ();
		g_once_init_leave (&synapse_gui_synapse_about_dialog_type_id__once, synapse_gui_synapse_about_dialog_type_id);
	}
	return synapse_gui_synapse_about_dialog_type_id__once;
}

static inline gpointer
synapse_gui_htext_selector_get_instance_private (SynapseGuiHTextSelector* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiHTextSelector_private_offset);
}

static void
__lambda5_ (SynapseGuiHTextSelector* self)
{
#line 1215 "widgets.vala"
	synapse_gui_htext_selector_update_all_sizes (self);
#line 1216 "widgets.vala"
	synapse_gui_htext_selector_update_cached_surface (self);
#line 1217 "widgets.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 1218 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 8933 "widgets.c"
}

static void
___lambda5__gtk_widget_style_updated (GtkWidget* _sender,
                                      gpointer self)
{
#line 1214 "widgets.vala"
	__lambda5_ ((SynapseGuiHTextSelector*) self);
#line 8942 "widgets.c"
}

static gboolean
___lambda7_ (SynapseGuiHTextSelector* self)
{
	gboolean result;
#line 1223 "widgets.vala"
	result = synapse_gui_htext_selector_update_current_offset (self);
#line 1223 "widgets.vala"
	return result;
#line 8953 "widgets.c"
}

static gboolean
____lambda7__gsource_func (gpointer self)
{
	gboolean result;
	result = ___lambda7_ ((SynapseGuiHTextSelector*) self);
#line 1222 "widgets.vala"
	return result;
#line 8963 "widgets.c"
}

static void
__lambda6_ (SynapseGuiHTextSelector* self)
{
#line 1221 "widgets.vala"
	if (self->priv->tid == ((guint) 0)) {
#line 1222 "widgets.vala"
		self->priv->tid = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 30, ____lambda7__gsource_func, g_object_ref (self), g_object_unref);
#line 8973 "widgets.c"
	}
}

static void
___lambda6__gtk_widget_size_allocate (GtkWidget* _sender,
                                      GtkAllocation* allocation,
                                      gpointer self)
{
#line 1220 "widgets.vala"
	__lambda6_ ((SynapseGuiHTextSelector*) self);
#line 8984 "widgets.c"
}

static void
__lambda8_ (SynapseGuiHTextSelector* self)
{
#line 1227 "widgets.vala"
	synapse_gui_htext_selector_update_cached_surface (self);
#line 1228 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 8994 "widgets.c"
}

static void
___lambda8__g_object_notify (GObject* _sender,
                             GParamSpec* pspec,
                             gpointer self)
{
#line 1226 "widgets.vala"
	__lambda8_ ((SynapseGuiHTextSelector*) self);
#line 9004 "widgets.c"
}

static void
__synapse_gui_htext_selector_global_update_gtk_widget_realize (GtkWidget* _sender,
                                                               gpointer self)
{
#line 1230 "widgets.vala"
	_synapse_gui_htext_selector_global_update ((SynapseGuiHTextSelector*) self);
#line 9013 "widgets.c"
}

static void
__synapse_gui_htext_selector_global_update_g_object_notify (GObject* _sender,
                                                            GParamSpec* pspec,
                                                            gpointer self)
{
#line 1231 "widgets.vala"
	_synapse_gui_htext_selector_global_update ((SynapseGuiHTextSelector*) self);
#line 9023 "widgets.c"
}

SynapseGuiHTextSelector*
synapse_gui_htext_selector_construct (GType object_type)
{
	SynapseGuiHTextSelector * self = NULL;
	GtkLabel* _tmp0_;
	GtkLabel* _tmp1_;
	GtkLabel* _tmp2_;
	SynapseGuiUtilsColorHelper* _tmp3_;
	GeeArrayList* _tmp4_;
	GtkLabel* _tmp5_;
	SynapseGuiUIWidgetsConfig* config = NULL;
	SynapseConfigService* _tmp6_;
	SynapseConfigService* _tmp7_;
	SynapseConfigObject* _tmp8_;
	SynapseGuiUIWidgetsConfig* _tmp9_;
	gboolean _tmp10_;
	gboolean _tmp11_;
#line 1199 "widgets.vala"
	self = (SynapseGuiHTextSelector*) g_object_new (object_type, NULL);
#line 1201 "widgets.vala"
	gtk_event_box_set_above_child ((GtkEventBox*) self, FALSE);
#line 1202 "widgets.vala"
	gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
#line 1203 "widgets.vala"
	gtk_event_box_set_visible_window ((GtkEventBox*) self, FALSE);
#line 1204 "widgets.vala"
	_tmp0_ = (GtkLabel*) gtk_label_new ("");
#line 1204 "widgets.vala"
	g_object_ref_sink (_tmp0_);
#line 1204 "widgets.vala"
	_g_object_unref0 (self->priv->label);
#line 1204 "widgets.vala"
	self->priv->label = _tmp0_;
#line 1205 "widgets.vala"
	_tmp1_ = self->priv->label;
#line 1205 "widgets.vala"
	gtk_widget_show ((GtkWidget*) _tmp1_);
#line 1206 "widgets.vala"
	_tmp2_ = self->priv->label;
#line 1206 "widgets.vala"
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp2_);
#line 1207 "widgets.vala"
	gtk_widget_set_events ((GtkWidget*) self, (gint) (GDK_BUTTON_PRESS_MASK | GDK_SCROLL_MASK));
#line 1209 "widgets.vala"
	_tmp3_ = synapse_gui_utils_color_helper_get_default ();
#line 1209 "widgets.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 1209 "widgets.vala"
	self->priv->ch = _tmp3_;
#line 1210 "widgets.vala"
	_cairo_surface_destroy0 (self->priv->cached_surface);
#line 1210 "widgets.vala"
	self->priv->cached_surface = NULL;
#line 1211 "widgets.vala"
	self->priv->tid = (guint) 0;
#line 1212 "widgets.vala"
	self->priv->current_offset = 0;
#line 1212 "widgets.vala"
	self->priv->hmax = self->priv->current_offset;
#line 1212 "widgets.vala"
	self->priv->wmax = self->priv->hmax;
#line 1213 "widgets.vala"
	_tmp4_ = gee_array_list_new (SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT, (GBoxedCopyFunc) synapse_gui_htext_selector_pango_ready_text_ref, (GDestroyNotify) synapse_gui_htext_selector_pango_ready_text_unref, NULL, NULL, NULL);
#line 1213 "widgets.vala"
	_g_object_unref0 (self->priv->texts);
#line 1213 "widgets.vala"
	self->priv->texts = (GeeList*) _tmp4_;
#line 1214 "widgets.vala"
	_tmp5_ = self->priv->label;
#line 1214 "widgets.vala"
	g_signal_connect_object ((GtkWidget*) _tmp5_, "style-updated", (GCallback) ___lambda5__gtk_widget_style_updated, self, 0);
#line 1220 "widgets.vala"
	g_signal_connect_object ((GtkWidget*) self, "size-allocate", (GCallback) ___lambda6__gtk_widget_size_allocate, self, 0);
#line 1226 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::sensitive", (GCallback) ___lambda8__g_object_notify, self, 0);
#line 1230 "widgets.vala"
	g_signal_connect_object ((GtkWidget*) self, "realize", (GCallback) __synapse_gui_htext_selector_global_update_gtk_widget_realize, self, 0);
#line 1231 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::selected-markup", (GCallback) __synapse_gui_htext_selector_global_update_g_object_notify, self, 0);
#line 1232 "widgets.vala"
	g_signal_connect_object ((GObject*) self, "notify::unselected-markup", (GCallback) __synapse_gui_htext_selector_global_update_g_object_notify, self, 0);
#line 1233 "widgets.vala"
	self->priv->_selected = 0;
#line 1235 "widgets.vala"
	_tmp6_ = synapse_config_service_get_default ();
#line 1235 "widgets.vala"
	_tmp7_ = _tmp6_;
#line 1235 "widgets.vala"
	_tmp8_ = synapse_config_service_get_config (_tmp7_, "ui", "widgets", SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG);
#line 1235 "widgets.vala"
	_tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, SYNAPSE_GUI_TYPE_UI_WIDGETS_CONFIG, SynapseGuiUIWidgetsConfig);
#line 1235 "widgets.vala"
	_g_object_unref0 (_tmp7_);
#line 1235 "widgets.vala"
	config = _tmp9_;
#line 1236 "widgets.vala"
	_tmp10_ = synapse_gui_ui_widgets_config_get_animation_enabled (config);
#line 1236 "widgets.vala"
	_tmp11_ = _tmp10_;
#line 1236 "widgets.vala"
	synapse_gui_htext_selector_set_animation_enabled (self, _tmp11_);
#line 1199 "widgets.vala"
	_g_object_unref0 (config);
#line 1199 "widgets.vala"
	return self;
#line 9131 "widgets.c"
}

SynapseGuiHTextSelector*
synapse_gui_htext_selector_new (void)
{
#line 1199 "widgets.vala"
	return synapse_gui_htext_selector_construct (SYNAPSE_GUI_TYPE_HTEXT_SELECTOR);
#line 9139 "widgets.c"
}

static gboolean
synapse_gui_htext_selector_real_button_press_event (GtkWidget* base,
                                                    GdkEventButton* event)
{
	SynapseGuiHTextSelector * self;
	gint x = 0;
	gint i = 0;
	gboolean result;
#line 1238 "widgets.vala"
	self = (SynapseGuiHTextSelector*) base;
#line 1238 "widgets.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1240 "widgets.vala"
	x = (gint) event->x;
#line 1241 "widgets.vala"
	x -= self->priv->current_offset;
#line 1242 "widgets.vala"
	if (x < 0) {
#line 1244 "widgets.vala"
		synapse_gui_htext_selector_set_selected (self, 0);
#line 1245 "widgets.vala"
		g_signal_emit (self, synapse_gui_htext_selector_signals[SYNAPSE_GUI_HTEXT_SELECTOR_SELECTION_CHANGED_SIGNAL], 0);
#line 1246 "widgets.vala"
		result = FALSE;
#line 1246 "widgets.vala"
		return result;
#line 9168 "widgets.c"
	}
#line 1248 "widgets.vala"
	i = 0;
#line 1249 "widgets.vala"
	while (TRUE) {
#line 9174 "widgets.c"
		gboolean _tmp0_ = FALSE;
		GeeList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _tmp9_;
#line 1249 "widgets.vala"
		_tmp1_ = self->priv->texts;
#line 1249 "widgets.vala"
		_tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_);
#line 1249 "widgets.vala"
		_tmp3_ = _tmp2_;
#line 1249 "widgets.vala"
		if (i < _tmp3_) {
#line 9188 "widgets.c"
			GeeList* _tmp4_;
			gpointer _tmp5_;
			SynapseGuiHTextSelectorPangoReadyText* _tmp6_;
			gint _tmp7_;
			gint _tmp8_;
#line 1249 "widgets.vala"
			_tmp4_ = self->priv->texts;
#line 1249 "widgets.vala"
			_tmp5_ = gee_list_get (_tmp4_, i);
#line 1249 "widgets.vala"
			_tmp6_ = (SynapseGuiHTextSelectorPangoReadyText*) _tmp5_;
#line 1249 "widgets.vala"
			_tmp7_ = synapse_gui_htext_selector_pango_ready_text_get_offset (_tmp6_);
#line 1249 "widgets.vala"
			_tmp8_ = _tmp7_;
#line 1249 "widgets.vala"
			_tmp0_ = _tmp8_ < x;
#line 1249 "widgets.vala"
			_synapse_gui_htext_selector_pango_ready_text_unref0 (_tmp6_);
#line 9208 "widgets.c"
		} else {
#line 1249 "widgets.vala"
			_tmp0_ = FALSE;
#line 9212 "widgets.c"
		}
#line 1249 "widgets.vala"
		if (!_tmp0_) {
#line 1249 "widgets.vala"
			break;
#line 9218 "widgets.c"
		}
#line 1249 "widgets.vala"
		_tmp9_ = i;
#line 1249 "widgets.vala"
		i = _tmp9_ + 1;
#line 9224 "widgets.c"
	}
#line 1250 "widgets.vala"
	synapse_gui_htext_selector_set_selected (self, i - 1);
#line 1251 "widgets.vala"
	g_signal_emit (self, synapse_gui_htext_selector_signals[SYNAPSE_GUI_HTEXT_SELECTOR_SELECTION_CHANGED_SIGNAL], 0);
#line 1252 "widgets.vala"
	result = FALSE;
#line 1252 "widgets.vala"
	return result;
#line 9234 "widgets.c"
}

static gboolean
synapse_gui_htext_selector_real_scroll_event (GtkWidget* base,
                                              GdkEventScroll* event)
{
	SynapseGuiHTextSelector * self;
	gboolean result;
#line 1255 "widgets.vala"
	self = (SynapseGuiHTextSelector*) base;
#line 1255 "widgets.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 1257 "widgets.vala"
	if (event->direction == GDK_SCROLL_UP) {
#line 1258 "widgets.vala"
		synapse_gui_htext_selector_select_prev (self);
#line 9251 "widgets.c"
	} else {
#line 1260 "widgets.vala"
		synapse_gui_htext_selector_select_next (self);
#line 9255 "widgets.c"
	}
#line 1261 "widgets.vala"
	g_signal_emit (self, synapse_gui_htext_selector_signals[SYNAPSE_GUI_HTEXT_SELECTOR_SELECTION_CHANGED_SIGNAL], 0);
#line 1262 "widgets.vala"
	result = TRUE;
#line 1262 "widgets.vala"
	return result;
#line 9263 "widgets.c"
}

void
synapse_gui_htext_selector_add_text (SynapseGuiHTextSelector* self,
                                     const gchar* txt)
{
	GeeList* _tmp0_;
	gchar* _tmp1_;
	SynapseGuiHTextSelectorPangoReadyText* _tmp2_ = NULL;
	SynapseGuiHTextSelectorPangoReadyText* _tmp3_;
#line 1267 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1267 "widgets.vala"
	g_return_if_fail (txt != NULL);
#line 1269 "widgets.vala"
	_tmp0_ = self->priv->texts;
#line 1269 "widgets.vala"
	_tmp1_ = g_strdup (txt);
#line 1269 "widgets.vala"
	_tmp2_ = synapse_gui_htext_selector_pango_ready_text_new ();
#line 1269 "widgets.vala"
	synapse_gui_htext_selector_pango_ready_text_set_text (_tmp2_, _tmp1_);
#line 1269 "widgets.vala"
	_g_free0 (_tmp1_);
#line 1269 "widgets.vala"
	synapse_gui_htext_selector_pango_ready_text_set_offset (_tmp2_, 0);
#line 1269 "widgets.vala"
	synapse_gui_htext_selector_pango_ready_text_set_width (_tmp2_, 0);
#line 1269 "widgets.vala"
	synapse_gui_htext_selector_pango_ready_text_set_height (_tmp2_, 0);
#line 1269 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 1269 "widgets.vala"
	gee_collection_add ((GeeCollection*) _tmp0_, _tmp3_);
#line 1269 "widgets.vala"
	_synapse_gui_htext_selector_pango_ready_text_unref0 (_tmp3_);
#line 1275 "widgets.vala"
	_synapse_gui_htext_selector_global_update (self);
#line 9302 "widgets.c"
}

void
synapse_gui_htext_selector_remove_text (SynapseGuiHTextSelector* self,
                                        gint i)
{
	gboolean _tmp0_ = FALSE;
	GeeList* _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	GeeList* _tmp7_;
	gpointer _tmp8_;
	SynapseGuiHTextSelectorPangoReadyText* _tmp9_;
	gint _tmp10_;
	gint _tmp11_;
	GeeList* _tmp12_;
	gint _tmp13_;
	gint _tmp14_;
#line 1278 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1280 "widgets.vala"
	if (i > 0) {
#line 9325 "widgets.c"
		GeeList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
#line 1280 "widgets.vala"
		_tmp1_ = self->priv->texts;
#line 1280 "widgets.vala"
		_tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_);
#line 1280 "widgets.vala"
		_tmp3_ = _tmp2_;
#line 1280 "widgets.vala"
		_tmp0_ = i < _tmp3_;
#line 9337 "widgets.c"
	} else {
#line 1280 "widgets.vala"
		_tmp0_ = FALSE;
#line 9341 "widgets.c"
	}
#line 1280 "widgets.vala"
	g_return_if_fail (_tmp0_);
#line 1281 "widgets.vala"
	_tmp4_ = self->priv->texts;
#line 1281 "widgets.vala"
	_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
#line 1281 "widgets.vala"
	_tmp6_ = _tmp5_;
#line 1281 "widgets.vala"
	g_return_if_fail (_tmp6_ == 1);
#line 1282 "widgets.vala"
	_tmp7_ = self->priv->texts;
#line 1282 "widgets.vala"
	_tmp8_ = gee_list_remove_at (_tmp7_, i);
#line 1282 "widgets.vala"
	_tmp9_ = (SynapseGuiHTextSelectorPangoReadyText*) _tmp8_;
#line 1282 "widgets.vala"
	_synapse_gui_htext_selector_pango_ready_text_unref0 (_tmp9_);
#line 1283 "widgets.vala"
	_synapse_gui_htext_selector_global_update (self);
#line 1284 "widgets.vala"
	_tmp10_ = synapse_gui_htext_selector_get_selected (self);
#line 1284 "widgets.vala"
	_tmp11_ = _tmp10_;
#line 1284 "widgets.vala"
	_tmp12_ = self->priv->texts;
#line 1284 "widgets.vala"
	_tmp13_ = gee_collection_get_size ((GeeCollection*) _tmp12_);
#line 1284 "widgets.vala"
	_tmp14_ = _tmp13_;
#line 1284 "widgets.vala"
	if (_tmp11_ >= _tmp14_) {
#line 9375 "widgets.c"
		GeeList* _tmp15_;
		gint _tmp16_;
		gint _tmp17_;
#line 1284 "widgets.vala"
		_tmp15_ = self->priv->texts;
#line 1284 "widgets.vala"
		_tmp16_ = gee_collection_get_size ((GeeCollection*) _tmp15_);
#line 1284 "widgets.vala"
		_tmp17_ = _tmp16_;
#line 1284 "widgets.vala"
		synapse_gui_htext_selector_set_selected (self, _tmp17_ - 1);
#line 9387 "widgets.c"
	}
}

static void
_synapse_gui_htext_selector_global_update (SynapseGuiHTextSelector* self)
{
#line 1286 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1288 "widgets.vala"
	synapse_gui_htext_selector_update_all_sizes (self);
#line 1289 "widgets.vala"
	synapse_gui_htext_selector_update_cached_surface (self);
#line 1290 "widgets.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 1291 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 9404 "widgets.c"
}

static void
synapse_gui_htext_selector_update_all_sizes (SynapseGuiHTextSelector* self)
{
	gint w = 0;
	gint h = 0;
	gchar* s = NULL;
	SynapseGuiHTextSelectorPangoReadyText* txt = NULL;
	gint lastx = 0;
	PangoLayout* layout = NULL;
	GtkLabel* _tmp0_;
	PangoLayout* _tmp1_;
#line 1293 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1296 "widgets.vala"
	w = 0;
#line 1296 "widgets.vala"
	h = 0;
#line 1297 "widgets.vala"
	self->priv->hmax = 0;
#line 1297 "widgets.vala"
	self->priv->wmax = self->priv->hmax;
#line 1299 "widgets.vala"
	txt = NULL;
#line 1300 "widgets.vala"
	lastx = 0;
#line 1301 "widgets.vala"
	_tmp0_ = self->priv->label;
#line 1301 "widgets.vala"
	_tmp1_ = gtk_label_get_layout (_tmp0_);
#line 1301 "widgets.vala"
	layout = _tmp1_;
#line 9438 "widgets.c"
	{
		gint i = 0;
#line 1302 "widgets.vala"
		i = 0;
#line 9443 "widgets.c"
		{
			gboolean _tmp2_ = FALSE;
#line 1302 "widgets.vala"
			_tmp2_ = TRUE;
#line 1302 "widgets.vala"
			while (TRUE) {
#line 9450 "widgets.c"
				GeeList* _tmp4_;
				gint _tmp5_;
				gint _tmp6_;
				GeeList* _tmp7_;
				gpointer _tmp8_;
				SynapseGuiHTextSelectorPangoReadyText* _tmp9_;
				const gchar* _tmp10_ = NULL;
				SynapseGuiHTextSelectorPangoReadyText* _tmp13_;
				const gchar* _tmp14_;
				const gchar* _tmp15_;
				gchar* _tmp16_;
				PangoLayout* _tmp17_;
				const gchar* _tmp18_;
				PangoLayout* _tmp19_;
				gint _tmp20_ = 0;
				gint _tmp21_ = 0;
				SynapseGuiHTextSelectorPangoReadyText* _tmp22_;
				SynapseGuiHTextSelectorPangoReadyText* _tmp23_;
				SynapseGuiHTextSelectorPangoReadyText* _tmp24_;
				gint _tmp25_;
				SynapseGuiHTextSelectorPangoReadyText* _tmp26_;
				gint _tmp27_;
				gint _tmp28_;
				SynapseGuiHTextSelectorPangoReadyText* _tmp29_;
				gint _tmp30_;
				gint _tmp31_;
#line 1302 "widgets.vala"
				if (!_tmp2_) {
#line 9479 "widgets.c"
					gint _tmp3_;
#line 1302 "widgets.vala"
					_tmp3_ = i;
#line 1302 "widgets.vala"
					i = _tmp3_ + 1;
#line 9485 "widgets.c"
				}
#line 1302 "widgets.vala"
				_tmp2_ = FALSE;
#line 1302 "widgets.vala"
				_tmp4_ = self->priv->texts;
#line 1302 "widgets.vala"
				_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
#line 1302 "widgets.vala"
				_tmp6_ = _tmp5_;
#line 1302 "widgets.vala"
				if (!(i < _tmp6_)) {
#line 1302 "widgets.vala"
					break;
#line 9499 "widgets.c"
				}
#line 1304 "widgets.vala"
				_tmp7_ = self->priv->texts;
#line 1304 "widgets.vala"
				_tmp8_ = gee_list_get (_tmp7_, i);
#line 1304 "widgets.vala"
				_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1304 "widgets.vala"
				txt = (SynapseGuiHTextSelectorPangoReadyText*) _tmp8_;
#line 1305 "widgets.vala"
				_tmp9_ = txt;
#line 1305 "widgets.vala"
				if (_tmp9_ == NULL) {
#line 1305 "widgets.vala"
					continue;
#line 9515 "widgets.c"
				}
#line 1306 "widgets.vala"
				if (i == self->priv->_selected) {
#line 9519 "widgets.c"
					const gchar* _tmp11_;
#line 1306 "widgets.vala"
					_tmp11_ = self->priv->_selected_markup;
#line 1306 "widgets.vala"
					_tmp10_ = _tmp11_;
#line 9525 "widgets.c"
				} else {
					const gchar* _tmp12_;
#line 1306 "widgets.vala"
					_tmp12_ = self->priv->_unselected_markup;
#line 1306 "widgets.vala"
					_tmp10_ = _tmp12_;
#line 9532 "widgets.c"
				}
#line 1306 "widgets.vala"
				_tmp13_ = txt;
#line 1306 "widgets.vala"
				_tmp14_ = synapse_gui_htext_selector_pango_ready_text_get_text (_tmp13_);
#line 1306 "widgets.vala"
				_tmp15_ = _tmp14_;
#line 1306 "widgets.vala"
				_tmp16_ = g_markup_printf_escaped (_tmp10_, _tmp15_);
#line 1306 "widgets.vala"
				_g_free0 (s);
#line 1306 "widgets.vala"
				s = _tmp16_;
#line 1307 "widgets.vala"
				_tmp17_ = layout;
#line 1307 "widgets.vala"
				_tmp18_ = s;
#line 1307 "widgets.vala"
				pango_layout_set_markup (_tmp17_, _tmp18_, -1);
#line 1308 "widgets.vala"
				_tmp19_ = layout;
#line 1308 "widgets.vala"
				pango_layout_get_pixel_size (_tmp19_, &_tmp20_, &_tmp21_);
#line 1308 "widgets.vala"
				w = _tmp20_;
#line 1308 "widgets.vala"
				h = _tmp21_;
#line 1309 "widgets.vala"
				_tmp22_ = txt;
#line 1309 "widgets.vala"
				synapse_gui_htext_selector_pango_ready_text_set_width (_tmp22_, w);
#line 1310 "widgets.vala"
				_tmp23_ = txt;
#line 1310 "widgets.vala"
				synapse_gui_htext_selector_pango_ready_text_set_height (_tmp23_, h);
#line 1311 "widgets.vala"
				_tmp24_ = txt;
#line 1311 "widgets.vala"
				synapse_gui_htext_selector_pango_ready_text_set_offset (_tmp24_, lastx);
#line 1312 "widgets.vala"
				_tmp25_ = self->priv->_padding;
#line 1312 "widgets.vala"
				lastx += w + _tmp25_;
#line 1313 "widgets.vala"
				_tmp26_ = txt;
#line 1313 "widgets.vala"
				_tmp27_ = synapse_gui_htext_selector_pango_ready_text_get_width (_tmp26_);
#line 1313 "widgets.vala"
				_tmp28_ = _tmp27_;
#line 1313 "widgets.vala"
				self->priv->wmax = MAX (self->priv->wmax, _tmp28_);
#line 1314 "widgets.vala"
				_tmp29_ = txt;
#line 1314 "widgets.vala"
				_tmp30_ = synapse_gui_htext_selector_pango_ready_text_get_height (_tmp29_);
#line 1314 "widgets.vala"
				_tmp31_ = _tmp30_;
#line 1314 "widgets.vala"
				self->priv->hmax = MAX (self->priv->hmax, _tmp31_);
#line 9592 "widgets.c"
			}
		}
	}
#line 1293 "widgets.vala"
	_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1293 "widgets.vala"
	_g_free0 (s);
#line 9600 "widgets.c"
}

static void
synapse_gui_htext_selector_real_get_preferred_width (GtkWidget* base,
                                                     gint* min_width,
                                                     gint* nat_width)
{
	SynapseGuiHTextSelector * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
#line 1317 "widgets.vala"
	self = (SynapseGuiHTextSelector*) base;
#line 1319 "widgets.vala"
	_vala_nat_width = self->priv->wmax * 3;
#line 1319 "widgets.vala"
	_vala_min_width = _vala_nat_width;
#line 1317 "widgets.vala"
	if (min_width) {
#line 1317 "widgets.vala"
		*min_width = _vala_min_width;
#line 9621 "widgets.c"
	}
#line 1317 "widgets.vala"
	if (nat_width) {
#line 1317 "widgets.vala"
		*nat_width = _vala_nat_width;
#line 9627 "widgets.c"
	}
}

static void
synapse_gui_htext_selector_real_get_preferred_height (GtkWidget* base,
                                                      gint* min_height,
                                                      gint* nat_height)
{
	SynapseGuiHTextSelector * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
#line 1321 "widgets.vala"
	self = (SynapseGuiHTextSelector*) base;
#line 1323 "widgets.vala"
	_vala_nat_height = self->priv->hmax;
#line 1323 "widgets.vala"
	_vala_min_height = _vala_nat_height;
#line 1321 "widgets.vala"
	if (min_height) {
#line 1321 "widgets.vala"
		*min_height = _vala_min_height;
#line 9649 "widgets.c"
	}
#line 1321 "widgets.vala"
	if (nat_height) {
#line 1321 "widgets.vala"
		*nat_height = _vala_nat_height;
#line 9655 "widgets.c"
	}
}

void
synapse_gui_htext_selector_select_prev (SynapseGuiHTextSelector* self)
{
	gint _tmp0_;
	gint _tmp1_;
#line 1325 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1327 "widgets.vala"
	_tmp0_ = synapse_gui_htext_selector_get_selected (self);
#line 1327 "widgets.vala"
	_tmp1_ = _tmp0_;
#line 1327 "widgets.vala"
	synapse_gui_htext_selector_set_selected (self, _tmp1_ - 1);
#line 9672 "widgets.c"
}

void
synapse_gui_htext_selector_select_next (SynapseGuiHTextSelector* self)
{
	gint _tmp0_;
	gint _tmp1_;
#line 1329 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1331 "widgets.vala"
	_tmp0_ = synapse_gui_htext_selector_get_selected (self);
#line 1331 "widgets.vala"
	_tmp1_ = _tmp0_;
#line 1331 "widgets.vala"
	synapse_gui_htext_selector_set_selected (self, _tmp1_ + 1);
#line 9688 "widgets.c"
}

static void
synapse_gui_htext_selector_update_cached_surface (SynapseGuiHTextSelector* self)
{
	gint w = 0;
	gint h = 0;
	SynapseGuiHTextSelectorPangoReadyText* txt = NULL;
	GeeList* _tmp0_;
	gpointer _tmp1_;
	SynapseGuiHTextSelectorPangoReadyText* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	SynapseGuiHTextSelectorPangoReadyText* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	cairo_t* window_context = NULL;
	GdkWindow* _tmp8_;
	cairo_t* _tmp9_;
	cairo_t* _tmp10_;
	cairo_surface_t* _tmp11_;
	cairo_surface_t* _tmp12_;
	cairo_t* ctx = NULL;
	cairo_surface_t* _tmp13_;
	cairo_t* _tmp14_;
	PangoLayout* layout = NULL;
	GtkLabel* _tmp15_;
	PangoLayout* _tmp16_;
	cairo_t* _tmp17_;
	PangoLayout* _tmp18_;
	PangoContext* _tmp19_;
	SynapseGuiUtilsColorHelper* _tmp20_;
	cairo_t* _tmp21_;
	cairo_t* _tmp22_;
	gchar* s = NULL;
	gboolean _tmp51_;
	GeeList* _tmp56_;
	gpointer _tmp57_;
	gdouble asize = 0.0;
	gdouble px = 0.0;
	gdouble py = 0.0;
	gdouble f = 0.0;
	GeeList* _tmp58_;
	gint _tmp59_;
	gint _tmp60_;
#line 1333 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1335 "widgets.vala"
	if (!gtk_widget_get_realized ((GtkWidget*) self)) {
#line 1335 "widgets.vala"
		return;
#line 9740 "widgets.c"
	}
#line 1336 "widgets.vala"
	w = 0;
#line 1336 "widgets.vala"
	h = 0;
#line 1338 "widgets.vala"
	_tmp0_ = self->priv->texts;
#line 1338 "widgets.vala"
	_tmp1_ = gee_list_last (_tmp0_);
#line 1338 "widgets.vala"
	_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1338 "widgets.vala"
	txt = (SynapseGuiHTextSelectorPangoReadyText*) _tmp1_;
#line 1339 "widgets.vala"
	_tmp2_ = txt;
#line 1339 "widgets.vala"
	_tmp3_ = synapse_gui_htext_selector_pango_ready_text_get_offset (_tmp2_);
#line 1339 "widgets.vala"
	_tmp4_ = _tmp3_;
#line 1339 "widgets.vala"
	_tmp5_ = txt;
#line 1339 "widgets.vala"
	_tmp6_ = synapse_gui_htext_selector_pango_ready_text_get_width (_tmp5_);
#line 1339 "widgets.vala"
	_tmp7_ = _tmp6_;
#line 1339 "widgets.vala"
	w = _tmp4_ + _tmp7_;
#line 1340 "widgets.vala"
	h = self->priv->hmax * 3;
#line 1341 "widgets.vala"
	_tmp8_ = gtk_widget_get_window ((GtkWidget*) self);
#line 1341 "widgets.vala"
	_tmp9_ = gdk_cairo_create (_tmp8_);
#line 1341 "widgets.vala"
	window_context = _tmp9_;
#line 1342 "widgets.vala"
	_tmp10_ = window_context;
#line 1342 "widgets.vala"
	_tmp11_ = cairo_get_target (_tmp10_);
#line 1342 "widgets.vala"
	_tmp12_ = cairo_surface_create_similar (_tmp11_, CAIRO_CONTENT_COLOR_ALPHA, w, h);
#line 1342 "widgets.vala"
	_cairo_surface_destroy0 (self->priv->cached_surface);
#line 1342 "widgets.vala"
	self->priv->cached_surface = _tmp12_;
#line 1343 "widgets.vala"
	_tmp13_ = self->priv->cached_surface;
#line 1343 "widgets.vala"
	_tmp14_ = cairo_create (_tmp13_);
#line 1343 "widgets.vala"
	ctx = _tmp14_;
#line 1345 "widgets.vala"
	_tmp15_ = self->priv->label;
#line 1345 "widgets.vala"
	_tmp16_ = gtk_label_get_layout (_tmp15_);
#line 1345 "widgets.vala"
	layout = _tmp16_;
#line 1346 "widgets.vala"
	_tmp17_ = ctx;
#line 1346 "widgets.vala"
	_tmp18_ = layout;
#line 1346 "widgets.vala"
	_tmp19_ = pango_layout_get_context (_tmp18_);
#line 1346 "widgets.vala"
	pango_cairo_update_context (_tmp17_, _tmp19_);
#line 1347 "widgets.vala"
	_tmp20_ = self->priv->ch;
#line 1347 "widgets.vala"
	_tmp21_ = ctx;
#line 1347 "widgets.vala"
	synapse_gui_utils_color_helper_set_source_rgba (_tmp20_, _tmp21_, 1.0, SYNAPSE_GUI_STYLE_TYPE_FG, gtk_widget_get_state_flags ((GtkWidget*) self), SYNAPSE_GUI_MOD_NORMAL);
#line 1348 "widgets.vala"
	_tmp22_ = ctx;
#line 1348 "widgets.vala"
	cairo_set_operator (_tmp22_, CAIRO_OPERATOR_OVER);
#line 9816 "widgets.c"
	{
		gint i = 0;
#line 1350 "widgets.vala"
		i = 0;
#line 9821 "widgets.c"
		{
			gboolean _tmp23_ = FALSE;
#line 1350 "widgets.vala"
			_tmp23_ = TRUE;
#line 1350 "widgets.vala"
			while (TRUE) {
#line 9828 "widgets.c"
				GeeList* _tmp25_;
				gint _tmp26_;
				gint _tmp27_;
				GeeList* _tmp28_;
				gpointer _tmp29_;
				SynapseGuiHTextSelectorPangoReadyText* _tmp30_;
				cairo_t* _tmp31_;
				cairo_t* _tmp32_;
				SynapseGuiHTextSelectorPangoReadyText* _tmp33_;
				gint _tmp34_;
				gint _tmp35_;
				SynapseGuiHTextSelectorPangoReadyText* _tmp36_;
				gint _tmp37_;
				gint _tmp38_;
				const gchar* _tmp39_ = NULL;
				SynapseGuiHTextSelectorPangoReadyText* _tmp42_;
				const gchar* _tmp43_;
				const gchar* _tmp44_;
				gchar* _tmp45_;
				PangoLayout* _tmp46_;
				const gchar* _tmp47_;
				cairo_t* _tmp48_;
				PangoLayout* _tmp49_;
				cairo_t* _tmp50_;
#line 1350 "widgets.vala"
				if (!_tmp23_) {
#line 9855 "widgets.c"
					gint _tmp24_;
#line 1350 "widgets.vala"
					_tmp24_ = i;
#line 1350 "widgets.vala"
					i = _tmp24_ + 1;
#line 9861 "widgets.c"
				}
#line 1350 "widgets.vala"
				_tmp23_ = FALSE;
#line 1350 "widgets.vala"
				_tmp25_ = self->priv->texts;
#line 1350 "widgets.vala"
				_tmp26_ = gee_collection_get_size ((GeeCollection*) _tmp25_);
#line 1350 "widgets.vala"
				_tmp27_ = _tmp26_;
#line 1350 "widgets.vala"
				if (!(i < _tmp27_)) {
#line 1350 "widgets.vala"
					break;
#line 9875 "widgets.c"
				}
#line 1352 "widgets.vala"
				_tmp28_ = self->priv->texts;
#line 1352 "widgets.vala"
				_tmp29_ = gee_list_get (_tmp28_, i);
#line 1352 "widgets.vala"
				_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1352 "widgets.vala"
				txt = (SynapseGuiHTextSelectorPangoReadyText*) _tmp29_;
#line 1353 "widgets.vala"
				_tmp30_ = txt;
#line 1353 "widgets.vala"
				if (_tmp30_ == NULL) {
#line 1354 "widgets.vala"
					continue;
#line 9891 "widgets.c"
				}
#line 1355 "widgets.vala"
				_tmp31_ = ctx;
#line 1355 "widgets.vala"
				cairo_save (_tmp31_);
#line 1356 "widgets.vala"
				_tmp32_ = ctx;
#line 1356 "widgets.vala"
				_tmp33_ = txt;
#line 1356 "widgets.vala"
				_tmp34_ = synapse_gui_htext_selector_pango_ready_text_get_offset (_tmp33_);
#line 1356 "widgets.vala"
				_tmp35_ = _tmp34_;
#line 1356 "widgets.vala"
				_tmp36_ = txt;
#line 1356 "widgets.vala"
				_tmp37_ = synapse_gui_htext_selector_pango_ready_text_get_height (_tmp36_);
#line 1356 "widgets.vala"
				_tmp38_ = _tmp37_;
#line 1356 "widgets.vala"
				cairo_translate (_tmp32_, (gdouble) _tmp35_, (gdouble) ((h - _tmp38_) / 2));
#line 1357 "widgets.vala"
				if (i == self->priv->_selected) {
#line 9915 "widgets.c"
					const gchar* _tmp40_;
#line 1357 "widgets.vala"
					_tmp40_ = self->priv->_selected_markup;
#line 1357 "widgets.vala"
					_tmp39_ = _tmp40_;
#line 9921 "widgets.c"
				} else {
					const gchar* _tmp41_;
#line 1357 "widgets.vala"
					_tmp41_ = self->priv->_unselected_markup;
#line 1357 "widgets.vala"
					_tmp39_ = _tmp41_;
#line 9928 "widgets.c"
				}
#line 1357 "widgets.vala"
				_tmp42_ = txt;
#line 1357 "widgets.vala"
				_tmp43_ = synapse_gui_htext_selector_pango_ready_text_get_text (_tmp42_);
#line 1357 "widgets.vala"
				_tmp44_ = _tmp43_;
#line 1357 "widgets.vala"
				_tmp45_ = g_markup_printf_escaped (_tmp39_, _tmp44_);
#line 1357 "widgets.vala"
				_g_free0 (s);
#line 1357 "widgets.vala"
				s = _tmp45_;
#line 1358 "widgets.vala"
				_tmp46_ = layout;
#line 1358 "widgets.vala"
				_tmp47_ = s;
#line 1358 "widgets.vala"
				pango_layout_set_markup (_tmp46_, _tmp47_, -1);
#line 1359 "widgets.vala"
				_tmp48_ = ctx;
#line 1359 "widgets.vala"
				_tmp49_ = layout;
#line 1359 "widgets.vala"
				pango_cairo_show_layout (_tmp48_, _tmp49_);
#line 1360 "widgets.vala"
				_tmp50_ = ctx;
#line 1360 "widgets.vala"
				cairo_restore (_tmp50_);
#line 9958 "widgets.c"
			}
		}
	}
#line 1363 "widgets.vala"
	_tmp51_ = self->priv->_show_arrows;
#line 1363 "widgets.vala"
	if (!_tmp51_) {
#line 1364 "widgets.vala"
		_g_free0 (s);
#line 1364 "widgets.vala"
		_cairo_destroy0 (ctx);
#line 1364 "widgets.vala"
		_cairo_destroy0 (window_context);
#line 1364 "widgets.vala"
		_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1364 "widgets.vala"
		return;
#line 9976 "widgets.c"
	}
#line 1365 "widgets.vala"
	if ((gtk_widget_get_state_flags ((GtkWidget*) self) & GTK_STATE_FLAG_SELECTED) != 0) {
#line 9980 "widgets.c"
		SynapseGuiUtilsColorHelper* _tmp52_;
		cairo_t* _tmp53_;
#line 1366 "widgets.vala"
		_tmp52_ = self->priv->ch;
#line 1366 "widgets.vala"
		_tmp53_ = ctx;
#line 1366 "widgets.vala"
		synapse_gui_utils_color_helper_set_source_rgba (_tmp52_, _tmp53_, 1.0, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 9989 "widgets.c"
	} else {
		SynapseGuiUtilsColorHelper* _tmp54_;
		cairo_t* _tmp55_;
#line 1368 "widgets.vala"
		_tmp54_ = self->priv->ch;
#line 1368 "widgets.vala"
		_tmp55_ = ctx;
#line 1368 "widgets.vala"
		synapse_gui_utils_color_helper_set_source_rgba (_tmp54_, _tmp55_, 1.0, SYNAPSE_GUI_STYLE_TYPE_BG, GTK_STATE_FLAG_SELECTED, SYNAPSE_GUI_MOD_NORMAL);
#line 9999 "widgets.c"
	}
#line 1369 "widgets.vala"
	_tmp56_ = self->priv->texts;
#line 1369 "widgets.vala"
	_tmp57_ = gee_list_get (_tmp56_, self->priv->_selected);
#line 1369 "widgets.vala"
	_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1369 "widgets.vala"
	txt = (SynapseGuiHTextSelectorPangoReadyText*) _tmp57_;
#line 1370 "widgets.vala"
	asize = MIN ((gdouble) SYNAPSE_GUI_HTEXT_SELECTOR_ARROW_SIZE, (gdouble) h);
#line 1371 "widgets.vala"
	py = (gdouble) (h / 2);
#line 1372 "widgets.vala"
	f = (gdouble) 2;
#line 1373 "widgets.vala"
	f = asize - f;
#line 1374 "widgets.vala"
	_tmp58_ = self->priv->texts;
#line 1374 "widgets.vala"
	_tmp59_ = gee_collection_get_size ((GeeCollection*) _tmp58_);
#line 1374 "widgets.vala"
	_tmp60_ = _tmp59_;
#line 1374 "widgets.vala"
	if (self->priv->_selected < (_tmp60_ - 1)) {
#line 10025 "widgets.c"
		SynapseGuiHTextSelectorPangoReadyText* _tmp61_;
		gint _tmp62_;
		gint _tmp63_;
		SynapseGuiHTextSelectorPangoReadyText* _tmp64_;
		gint _tmp65_;
		gint _tmp66_;
		gint _tmp67_;
		cairo_t* _tmp68_;
		cairo_t* _tmp69_;
		cairo_t* _tmp70_;
		cairo_t* _tmp71_;
		cairo_t* _tmp72_;
#line 1376 "widgets.vala"
		_tmp61_ = txt;
#line 1376 "widgets.vala"
		_tmp62_ = synapse_gui_htext_selector_pango_ready_text_get_offset (_tmp61_);
#line 1376 "widgets.vala"
		_tmp63_ = _tmp62_;
#line 1376 "widgets.vala"
		_tmp64_ = txt;
#line 1376 "widgets.vala"
		_tmp65_ = synapse_gui_htext_selector_pango_ready_text_get_width (_tmp64_);
#line 1376 "widgets.vala"
		_tmp66_ = _tmp65_;
#line 1376 "widgets.vala"
		_tmp67_ = self->priv->_padding;
#line 1376 "widgets.vala"
		px = ((_tmp63_ + _tmp66_) + asize) + ((_tmp67_ - asize) / 2);
#line 1377 "widgets.vala"
		_tmp68_ = ctx;
#line 1377 "widgets.vala"
		cairo_move_to (_tmp68_, px, py);
#line 1378 "widgets.vala"
		_tmp69_ = ctx;
#line 1378 "widgets.vala"
		cairo_rel_line_to (_tmp69_, -asize, (-asize) / 2);
#line 1379 "widgets.vala"
		_tmp70_ = ctx;
#line 1379 "widgets.vala"
		cairo_curve_to (_tmp70_, px - f, py, px - f, py, px - asize, py + (asize / 2));
#line 1380 "widgets.vala"
		_tmp71_ = ctx;
#line 1380 "widgets.vala"
		cairo_line_to (_tmp71_, px, py);
#line 1381 "widgets.vala"
		_tmp72_ = ctx;
#line 1381 "widgets.vala"
		cairo_fill (_tmp72_);
#line 10074 "widgets.c"
	}
#line 1383 "widgets.vala"
	if (self->priv->_selected > 0) {
#line 10078 "widgets.c"
		SynapseGuiHTextSelectorPangoReadyText* _tmp73_;
		gint _tmp74_;
		gint _tmp75_;
		gint _tmp76_;
		cairo_t* _tmp77_;
		cairo_t* _tmp78_;
		cairo_t* _tmp79_;
		cairo_t* _tmp80_;
		cairo_t* _tmp81_;
#line 1385 "widgets.vala"
		_tmp73_ = txt;
#line 1385 "widgets.vala"
		_tmp74_ = synapse_gui_htext_selector_pango_ready_text_get_offset (_tmp73_);
#line 1385 "widgets.vala"
		_tmp75_ = _tmp74_;
#line 1385 "widgets.vala"
		_tmp76_ = self->priv->_padding;
#line 1385 "widgets.vala"
		px = (_tmp75_ - asize) - ((_tmp76_ - asize) / 2);
#line 1386 "widgets.vala"
		_tmp77_ = ctx;
#line 1386 "widgets.vala"
		cairo_move_to (_tmp77_, px, py);
#line 1387 "widgets.vala"
		_tmp78_ = ctx;
#line 1387 "widgets.vala"
		cairo_rel_line_to (_tmp78_, asize, (-asize) / 2);
#line 1388 "widgets.vala"
		_tmp79_ = ctx;
#line 1388 "widgets.vala"
		cairo_curve_to (_tmp79_, px + f, py, px + f, py, px + asize, py + (asize / 2));
#line 1389 "widgets.vala"
		_tmp80_ = ctx;
#line 1389 "widgets.vala"
		cairo_line_to (_tmp80_, px, py);
#line 1390 "widgets.vala"
		_tmp81_ = ctx;
#line 1390 "widgets.vala"
		cairo_fill (_tmp81_);
#line 10118 "widgets.c"
	}
#line 1333 "widgets.vala"
	_g_free0 (s);
#line 1333 "widgets.vala"
	_cairo_destroy0 (ctx);
#line 1333 "widgets.vala"
	_cairo_destroy0 (window_context);
#line 1333 "widgets.vala"
	_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 10128 "widgets.c"
}

static gboolean
synapse_gui_htext_selector_update_current_offset (SynapseGuiHTextSelector* self)
{
	gdouble draw_offset = 0.0;
	SynapseGuiHTextSelectorPangoReadyText* txt = NULL;
	GeeList* _tmp0_;
	gpointer _tmp1_;
	SynapseGuiHTextSelectorPangoReadyText* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	SynapseGuiHTextSelectorPangoReadyText* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	gint target = 0;
	gboolean _tmp8_;
	gint inc = 0;
	gint _tmp9_ = 0;
	gboolean result;
#line 1394 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1396 "widgets.vala"
	draw_offset = (gdouble) 0;
#line 1397 "widgets.vala"
	_tmp0_ = self->priv->texts;
#line 1397 "widgets.vala"
	_tmp1_ = gee_list_get (_tmp0_, self->priv->_selected);
#line 1397 "widgets.vala"
	txt = (SynapseGuiHTextSelectorPangoReadyText*) _tmp1_;
#line 1398 "widgets.vala"
	_tmp2_ = txt;
#line 1398 "widgets.vala"
	_tmp3_ = synapse_gui_htext_selector_pango_ready_text_get_offset (_tmp2_);
#line 1398 "widgets.vala"
	_tmp4_ = _tmp3_;
#line 1398 "widgets.vala"
	_tmp5_ = txt;
#line 1398 "widgets.vala"
	_tmp6_ = synapse_gui_htext_selector_pango_ready_text_get_width (_tmp5_);
#line 1398 "widgets.vala"
	_tmp7_ = _tmp6_;
#line 1398 "widgets.vala"
	draw_offset = (gdouble) (((gtk_widget_get_allocated_width ((GtkWidget*) self) / 2) - _tmp4_) - (_tmp7_ / 2));
#line 1399 "widgets.vala"
	target = (gint) round (draw_offset);
#line 1400 "widgets.vala"
	_tmp8_ = self->priv->_animation_enabled;
#line 1400 "widgets.vala"
	if (!_tmp8_) {
#line 1402 "widgets.vala"
		self->priv->current_offset = target;
#line 1403 "widgets.vala"
		gtk_widget_queue_draw ((GtkWidget*) self);
#line 1404 "widgets.vala"
		result = FALSE;
#line 1404 "widgets.vala"
		_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1404 "widgets.vala"
		return result;
#line 10189 "widgets.c"
	}
#line 1406 "widgets.vala"
	if (target == self->priv->current_offset) {
#line 1408 "widgets.vala"
		self->priv->tid = (guint) 0;
#line 1409 "widgets.vala"
		result = FALSE;
#line 1409 "widgets.vala"
		_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1409 "widgets.vala"
		return result;
#line 10201 "widgets.c"
	}
#line 1411 "widgets.vala"
	inc = MAX (1, (gint) fabs ((gdouble) ((target - self->priv->current_offset) / 6)));
#line 1412 "widgets.vala"
	if (target > self->priv->current_offset) {
#line 1412 "widgets.vala"
		_tmp9_ = inc;
#line 10209 "widgets.c"
	} else {
#line 1412 "widgets.vala"
		_tmp9_ = -inc;
#line 10213 "widgets.c"
	}
#line 1412 "widgets.vala"
	self->priv->current_offset = self->priv->current_offset + _tmp9_;
#line 1413 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 1414 "widgets.vala"
	result = TRUE;
#line 1414 "widgets.vala"
	_synapse_gui_htext_selector_pango_ready_text_unref0 (txt);
#line 1414 "widgets.vala"
	return result;
#line 10225 "widgets.c"
}

static gboolean
synapse_gui_htext_selector_real_draw (GtkWidget* base,
                                      cairo_t* ctx)
{
	SynapseGuiHTextSelector * self;
	gboolean _tmp0_ = FALSE;
	GeeList* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GtkAllocation allocation = {0};
	GtkAllocation _tmp5_ = {0};
	gdouble w = 0.0;
	GtkAllocation _tmp6_;
	gdouble h = 0.0;
	GtkAllocation _tmp7_;
	gdouble x = 0.0;
	gdouble y = 0.0;
	cairo_surface_t* _tmp8_;
	cairo_pattern_t* pat = NULL;
	cairo_pattern_t* _tmp9_;
	gdouble fadepct = 0.0;
	cairo_pattern_t* _tmp10_;
	cairo_pattern_t* _tmp11_;
	cairo_pattern_t* _tmp12_;
	cairo_pattern_t* _tmp13_;
	cairo_pattern_t* _tmp14_;
	gboolean result;
#line 1416 "widgets.vala"
	self = (SynapseGuiHTextSelector*) base;
#line 1416 "widgets.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 1418 "widgets.vala"
	_tmp1_ = self->priv->texts;
#line 1418 "widgets.vala"
	_tmp2_ = gee_collection_get_size ((GeeCollection*) _tmp1_);
#line 1418 "widgets.vala"
	_tmp3_ = _tmp2_;
#line 1418 "widgets.vala"
	if (_tmp3_ == 0) {
#line 1418 "widgets.vala"
		_tmp0_ = TRUE;
#line 10269 "widgets.c"
	} else {
		cairo_surface_t* _tmp4_;
#line 1418 "widgets.vala"
		_tmp4_ = self->priv->cached_surface;
#line 1418 "widgets.vala"
		_tmp0_ = _tmp4_ == NULL;
#line 10276 "widgets.c"
	}
#line 1418 "widgets.vala"
	if (_tmp0_) {
#line 1419 "widgets.vala"
		result = TRUE;
#line 1419 "widgets.vala"
		return result;
#line 10284 "widgets.c"
	}
#line 1422 "widgets.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp5_);
#line 1422 "widgets.vala"
	allocation = _tmp5_;
#line 1424 "widgets.vala"
	_tmp6_ = allocation;
#line 1424 "widgets.vala"
	w = (gdouble) _tmp6_.width;
#line 1425 "widgets.vala"
	_tmp7_ = allocation;
#line 1425 "widgets.vala"
	h = (gdouble) _tmp7_.height;
#line 1427 "widgets.vala"
	cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
#line 1429 "widgets.vala"
	x = (gdouble) self->priv->current_offset;
#line 1430 "widgets.vala"
	y = round ((h - (3 * self->priv->hmax)) / 2);
#line 1431 "widgets.vala"
	_tmp8_ = self->priv->cached_surface;
#line 1431 "widgets.vala"
	cairo_set_source_surface (ctx, _tmp8_, x, y);
#line 1432 "widgets.vala"
	cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, w, h);
#line 1433 "widgets.vala"
	cairo_clip (ctx);
#line 1434 "widgets.vala"
	_tmp9_ = cairo_pattern_create_linear ((gdouble) 0, (gdouble) 0, w, h);
#line 1434 "widgets.vala"
	pat = _tmp9_;
#line 1435 "widgets.vala"
	fadepct = self->priv->wmax / ((gdouble) w);
#line 1436 "widgets.vala"
	if ((w / 3) < ((gdouble) self->priv->wmax)) {
#line 1437 "widgets.vala"
		fadepct = ((w - self->priv->wmax) / 2) / ((gdouble) w);
#line 10322 "widgets.c"
	}
#line 1438 "widgets.vala"
	_tmp10_ = pat;
#line 1438 "widgets.vala"
	cairo_pattern_add_color_stop_rgba (_tmp10_, (gdouble) 0, (gdouble) 1, (gdouble) 1, (gdouble) 1, (gdouble) 0);
#line 1439 "widgets.vala"
	_tmp11_ = pat;
#line 1439 "widgets.vala"
	cairo_pattern_add_color_stop_rgba (_tmp11_, fadepct, (gdouble) 1, (gdouble) 1, (gdouble) 1, (gdouble) 1);
#line 1440 "widgets.vala"
	_tmp12_ = pat;
#line 1440 "widgets.vala"
	cairo_pattern_add_color_stop_rgba (_tmp12_, 1 - fadepct, (gdouble) 1, (gdouble) 1, (gdouble) 1, (gdouble) 1);
#line 1441 "widgets.vala"
	_tmp13_ = pat;
#line 1441 "widgets.vala"
	cairo_pattern_add_color_stop_rgba (_tmp13_, (gdouble) 1, (gdouble) 1, (gdouble) 1, (gdouble) 1, (gdouble) 0);
#line 1442 "widgets.vala"
	_tmp14_ = pat;
#line 1442 "widgets.vala"
	cairo_mask (ctx, _tmp14_);
#line 1443 "widgets.vala"
	result = TRUE;
#line 1443 "widgets.vala"
	_cairo_pattern_destroy0 (pat);
#line 1443 "widgets.vala"
	return result;
#line 10350 "widgets.c"
}

const gchar*
synapse_gui_htext_selector_get_selected_markup (SynapseGuiHTextSelector* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 1157 "widgets.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1157 "widgets.vala"
	_tmp0_ = self->priv->_selected_markup;
#line 1157 "widgets.vala"
	result = _tmp0_;
#line 1157 "widgets.vala"
	return result;
#line 10366 "widgets.c"
}

void
synapse_gui_htext_selector_set_selected_markup (SynapseGuiHTextSelector* self,
                                                const gchar* value)
{
	gchar* old_value;
#line 1157 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1157 "widgets.vala"
	old_value = synapse_gui_htext_selector_get_selected_markup (self);
#line 1157 "widgets.vala"
	if (g_strcmp0 (value, old_value) != 0) {
#line 10380 "widgets.c"
		gchar* _tmp0_;
#line 1157 "widgets.vala"
		_tmp0_ = g_strdup (value);
#line 1157 "widgets.vala"
		_g_free0 (self->priv->_selected_markup);
#line 1157 "widgets.vala"
		self->priv->_selected_markup = _tmp0_;
#line 1157 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_MARKUP_PROPERTY]);
#line 10390 "widgets.c"
	}
}

const gchar*
synapse_gui_htext_selector_get_unselected_markup (SynapseGuiHTextSelector* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 1158 "widgets.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1158 "widgets.vala"
	_tmp0_ = self->priv->_unselected_markup;
#line 1158 "widgets.vala"
	result = _tmp0_;
#line 1158 "widgets.vala"
	return result;
#line 10407 "widgets.c"
}

void
synapse_gui_htext_selector_set_unselected_markup (SynapseGuiHTextSelector* self,
                                                  const gchar* value)
{
	gchar* old_value;
#line 1158 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1158 "widgets.vala"
	old_value = synapse_gui_htext_selector_get_unselected_markup (self);
#line 1158 "widgets.vala"
	if (g_strcmp0 (value, old_value) != 0) {
#line 10421 "widgets.c"
		gchar* _tmp0_;
#line 1158 "widgets.vala"
		_tmp0_ = g_strdup (value);
#line 1158 "widgets.vala"
		_g_free0 (self->priv->_unselected_markup);
#line 1158 "widgets.vala"
		self->priv->_unselected_markup = _tmp0_;
#line 1158 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_UNSELECTED_MARKUP_PROPERTY]);
#line 10431 "widgets.c"
	}
}

gint
synapse_gui_htext_selector_get_padding (SynapseGuiHTextSelector* self)
{
	gint result;
#line 1159 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 1159 "widgets.vala"
	result = self->priv->_padding;
#line 1159 "widgets.vala"
	return result;
#line 10445 "widgets.c"
}

void
synapse_gui_htext_selector_set_padding (SynapseGuiHTextSelector* self,
                                        gint value)
{
	gint old_value;
#line 1159 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1159 "widgets.vala"
	old_value = synapse_gui_htext_selector_get_padding (self);
#line 1159 "widgets.vala"
	if (old_value != value) {
#line 1159 "widgets.vala"
		self->priv->_padding = value;
#line 1159 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_PADDING_PROPERTY]);
#line 10463 "widgets.c"
	}
}

gboolean
synapse_gui_htext_selector_get_show_arrows (SynapseGuiHTextSelector* self)
{
	gboolean result;
#line 1160 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1160 "widgets.vala"
	result = self->priv->_show_arrows;
#line 1160 "widgets.vala"
	return result;
#line 10477 "widgets.c"
}

void
synapse_gui_htext_selector_set_show_arrows (SynapseGuiHTextSelector* self,
                                            gboolean value)
{
	gboolean old_value;
#line 1160 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1160 "widgets.vala"
	old_value = synapse_gui_htext_selector_get_show_arrows (self);
#line 1160 "widgets.vala"
	if (old_value != value) {
#line 1160 "widgets.vala"
		self->priv->_show_arrows = value;
#line 1160 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_SHOW_ARROWS_PROPERTY]);
#line 10495 "widgets.c"
	}
}

gboolean
synapse_gui_htext_selector_get_animation_enabled (SynapseGuiHTextSelector* self)
{
	gboolean result;
#line 1161 "widgets.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1161 "widgets.vala"
	result = self->priv->_animation_enabled;
#line 1161 "widgets.vala"
	return result;
#line 10509 "widgets.c"
}

void
synapse_gui_htext_selector_set_animation_enabled (SynapseGuiHTextSelector* self,
                                                  gboolean value)
{
	gboolean old_value;
#line 1161 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1161 "widgets.vala"
	old_value = synapse_gui_htext_selector_get_animation_enabled (self);
#line 1161 "widgets.vala"
	if (old_value != value) {
#line 1161 "widgets.vala"
		self->priv->_animation_enabled = value;
#line 1161 "widgets.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_ANIMATION_ENABLED_PROPERTY]);
#line 10527 "widgets.c"
	}
}

gint
synapse_gui_htext_selector_get_selected (SynapseGuiHTextSelector* self)
{
	gint result;
#line 1170 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 1170 "widgets.vala"
	result = self->priv->_selected;
#line 1170 "widgets.vala"
	return result;
#line 10541 "widgets.c"
}

static gboolean
_synapse_gui_htext_selector_selected____lambda9_ (SynapseGuiHTextSelector* self)
{
	gboolean result;
#line 1187 "widgets.vala"
	result = synapse_gui_htext_selector_update_current_offset (self);
#line 1187 "widgets.vala"
	return result;
#line 10552 "widgets.c"
}

static gboolean
__synapse_gui_htext_selector_selected____lambda9__gsource_func (gpointer self)
{
	gboolean result;
	result = _synapse_gui_htext_selector_selected____lambda9_ ((SynapseGuiHTextSelector*) self);
#line 1186 "widgets.vala"
	return result;
#line 10562 "widgets.c"
}

void
synapse_gui_htext_selector_set_selected (SynapseGuiHTextSelector* self,
                                         gint value)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp5_;
#line 1170 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1171 "widgets.vala"
	if (value == self->priv->_selected) {
#line 1171 "widgets.vala"
		_tmp1_ = TRUE;
#line 10578 "widgets.c"
	} else {
#line 1172 "widgets.vala"
		_tmp1_ = value < 0;
#line 10582 "widgets.c"
	}
#line 1171 "widgets.vala"
	if (_tmp1_) {
#line 1171 "widgets.vala"
		_tmp0_ = TRUE;
#line 10588 "widgets.c"
	} else {
		GeeList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
#line 1173 "widgets.vala"
		_tmp2_ = self->priv->texts;
#line 1173 "widgets.vala"
		_tmp3_ = gee_collection_get_size ((GeeCollection*) _tmp2_);
#line 1173 "widgets.vala"
		_tmp4_ = _tmp3_;
#line 1173 "widgets.vala"
		_tmp0_ = value >= _tmp4_;
#line 10601 "widgets.c"
	}
#line 1171 "widgets.vala"
	if (_tmp0_) {
#line 1174 "widgets.vala"
		return;
#line 10607 "widgets.c"
	}
#line 1175 "widgets.vala"
	self->priv->_selected = value;
#line 1176 "widgets.vala"
	synapse_gui_htext_selector_update_all_sizes (self);
#line 1177 "widgets.vala"
	synapse_gui_htext_selector_update_cached_surface (self);
#line 1178 "widgets.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 1179 "widgets.vala"
	_tmp5_ = self->priv->_animation_enabled;
#line 1179 "widgets.vala"
	if (!_tmp5_) {
#line 1181 "widgets.vala"
		synapse_gui_htext_selector_update_current_offset (self);
#line 1182 "widgets.vala"
		return;
#line 10625 "widgets.c"
	}
#line 1184 "widgets.vala"
	if (self->priv->tid == ((guint) 0)) {
#line 1186 "widgets.vala"
		self->priv->tid = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 30, __synapse_gui_htext_selector_selected____lambda9__gsource_func, g_object_ref (self), g_object_unref);
#line 10631 "widgets.c"
	}
#line 1170 "widgets.vala"
	g_object_notify_by_pspec ((GObject *) self, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_PROPERTY]);
#line 10635 "widgets.c"
}

static inline gpointer
synapse_gui_htext_selector_pango_ready_text_get_instance_private (SynapseGuiHTextSelectorPangoReadyText* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiHTextSelectorPangoReadyText_private_offset);
}

static SynapseGuiHTextSelectorPangoReadyText*
synapse_gui_htext_selector_pango_ready_text_construct (GType object_type)
{
	SynapseGuiHTextSelectorPangoReadyText* self = NULL;
#line 1162 "widgets.vala"
	self = (SynapseGuiHTextSelectorPangoReadyText*) g_type_create_instance (object_type);
#line 1162 "widgets.vala"
	return self;
#line 10652 "widgets.c"
}

static SynapseGuiHTextSelectorPangoReadyText*
synapse_gui_htext_selector_pango_ready_text_new (void)
{
#line 1162 "widgets.vala"
	return synapse_gui_htext_selector_pango_ready_text_construct (SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT);
#line 10660 "widgets.c"
}

static const gchar*
synapse_gui_htext_selector_pango_ready_text_get_text (SynapseGuiHTextSelectorPangoReadyText* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 1164 "widgets.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 1164 "widgets.vala"
	_tmp0_ = self->priv->_text;
#line 1164 "widgets.vala"
	result = _tmp0_;
#line 1164 "widgets.vala"
	return result;
#line 10676 "widgets.c"
}

static void
synapse_gui_htext_selector_pango_ready_text_set_text (SynapseGuiHTextSelectorPangoReadyText* self,
                                                      const gchar* value)
{
	gchar* _tmp0_;
#line 1164 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1164 "widgets.vala"
	_tmp0_ = g_strdup (value);
#line 1164 "widgets.vala"
	_g_free0 (self->priv->_text);
#line 1164 "widgets.vala"
	self->priv->_text = _tmp0_;
#line 10692 "widgets.c"
}

static gint
synapse_gui_htext_selector_pango_ready_text_get_offset (SynapseGuiHTextSelectorPangoReadyText* self)
{
	gint result;
#line 1165 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 1165 "widgets.vala"
	result = self->priv->_offset;
#line 1165 "widgets.vala"
	return result;
#line 10705 "widgets.c"
}

static void
synapse_gui_htext_selector_pango_ready_text_set_offset (SynapseGuiHTextSelectorPangoReadyText* self,
                                                        gint value)
{
#line 1165 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1165 "widgets.vala"
	self->priv->_offset = value;
#line 10716 "widgets.c"
}

static gint
synapse_gui_htext_selector_pango_ready_text_get_width (SynapseGuiHTextSelectorPangoReadyText* self)
{
	gint result;
#line 1166 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 1166 "widgets.vala"
	result = self->priv->_width;
#line 1166 "widgets.vala"
	return result;
#line 10729 "widgets.c"
}

static void
synapse_gui_htext_selector_pango_ready_text_set_width (SynapseGuiHTextSelectorPangoReadyText* self,
                                                       gint value)
{
#line 1166 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1166 "widgets.vala"
	self->priv->_width = value;
#line 10740 "widgets.c"
}

static gint
synapse_gui_htext_selector_pango_ready_text_get_height (SynapseGuiHTextSelectorPangoReadyText* self)
{
	gint result;
#line 1167 "widgets.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 1167 "widgets.vala"
	result = self->priv->_height;
#line 1167 "widgets.vala"
	return result;
#line 10753 "widgets.c"
}

static void
synapse_gui_htext_selector_pango_ready_text_set_height (SynapseGuiHTextSelectorPangoReadyText* self,
                                                        gint value)
{
#line 1167 "widgets.vala"
	g_return_if_fail (self != NULL);
#line 1167 "widgets.vala"
	self->priv->_height = value;
#line 10764 "widgets.c"
}

static void
synapse_gui_htext_selector_value_pango_ready_text_init (GValue* value)
{
#line 1162 "widgets.vala"
	value->data[0].v_pointer = NULL;
#line 10772 "widgets.c"
}

static void
synapse_gui_htext_selector_value_pango_ready_text_free_value (GValue* value)
{
#line 1162 "widgets.vala"
	if (value->data[0].v_pointer) {
#line 1162 "widgets.vala"
		synapse_gui_htext_selector_pango_ready_text_unref (value->data[0].v_pointer);
#line 10782 "widgets.c"
	}
}

static void
synapse_gui_htext_selector_value_pango_ready_text_copy_value (const GValue* src_value,
                                                              GValue* dest_value)
{
#line 1162 "widgets.vala"
	if (src_value->data[0].v_pointer) {
#line 1162 "widgets.vala"
		dest_value->data[0].v_pointer = synapse_gui_htext_selector_pango_ready_text_ref (src_value->data[0].v_pointer);
#line 10794 "widgets.c"
	} else {
#line 1162 "widgets.vala"
		dest_value->data[0].v_pointer = NULL;
#line 10798 "widgets.c"
	}
}

static gpointer
synapse_gui_htext_selector_value_pango_ready_text_peek_pointer (const GValue* value)
{
#line 1162 "widgets.vala"
	return value->data[0].v_pointer;
#line 10807 "widgets.c"
}

static gchar*
synapse_gui_htext_selector_value_pango_ready_text_collect_value (GValue* value,
                                                                 guint n_collect_values,
                                                                 GTypeCValue* collect_values,
                                                                 guint collect_flags)
{
#line 1162 "widgets.vala"
	if (collect_values[0].v_pointer) {
#line 10818 "widgets.c"
		SynapseGuiHTextSelectorPangoReadyText * object;
		object = collect_values[0].v_pointer;
#line 1162 "widgets.vala"
		if (object->parent_instance.g_class == NULL) {
#line 1162 "widgets.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 10825 "widgets.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 1162 "widgets.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 10829 "widgets.c"
		}
#line 1162 "widgets.vala"
		value->data[0].v_pointer = synapse_gui_htext_selector_pango_ready_text_ref (object);
#line 10833 "widgets.c"
	} else {
#line 1162 "widgets.vala"
		value->data[0].v_pointer = NULL;
#line 10837 "widgets.c"
	}
#line 1162 "widgets.vala"
	return NULL;
#line 10841 "widgets.c"
}

static gchar*
synapse_gui_htext_selector_value_pango_ready_text_lcopy_value (const GValue* value,
                                                               guint n_collect_values,
                                                               GTypeCValue* collect_values,
                                                               guint collect_flags)
{
	SynapseGuiHTextSelectorPangoReadyText ** object_p;
	object_p = collect_values[0].v_pointer;
#line 1162 "widgets.vala"
	if (!object_p) {
#line 1162 "widgets.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 10856 "widgets.c"
	}
#line 1162 "widgets.vala"
	if (!value->data[0].v_pointer) {
#line 1162 "widgets.vala"
		*object_p = NULL;
#line 10862 "widgets.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 1162 "widgets.vala"
		*object_p = value->data[0].v_pointer;
#line 10866 "widgets.c"
	} else {
#line 1162 "widgets.vala"
		*object_p = synapse_gui_htext_selector_pango_ready_text_ref (value->data[0].v_pointer);
#line 10870 "widgets.c"
	}
#line 1162 "widgets.vala"
	return NULL;
#line 10874 "widgets.c"
}

static GParamSpec*
synapse_gui_htext_selector_param_spec_pango_ready_text (const gchar* name,
                                                        const gchar* nick,
                                                        const gchar* blurb,
                                                        GType object_type,
                                                        GParamFlags flags)
{
	SynapseGuiHTextSelectorParamSpecPangoReadyText* spec;
#line 1162 "widgets.vala"
	g_return_val_if_fail (g_type_is_a (object_type, SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT), NULL);
#line 1162 "widgets.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 1162 "widgets.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 1162 "widgets.vala"
	return G_PARAM_SPEC (spec);
#line 10893 "widgets.c"
}

static gpointer
synapse_gui_htext_selector_value_get_pango_ready_text (const GValue* value)
{
#line 1162 "widgets.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT), NULL);
#line 1162 "widgets.vala"
	return value->data[0].v_pointer;
#line 10903 "widgets.c"
}

static void
synapse_gui_htext_selector_value_set_pango_ready_text (GValue* value,
                                                       gpointer v_object)
{
	SynapseGuiHTextSelectorPangoReadyText * old;
#line 1162 "widgets.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT));
#line 1162 "widgets.vala"
	old = value->data[0].v_pointer;
#line 1162 "widgets.vala"
	if (v_object) {
#line 1162 "widgets.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT));
#line 1162 "widgets.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 1162 "widgets.vala"
		value->data[0].v_pointer = v_object;
#line 1162 "widgets.vala"
		synapse_gui_htext_selector_pango_ready_text_ref (value->data[0].v_pointer);
#line 10925 "widgets.c"
	} else {
#line 1162 "widgets.vala"
		value->data[0].v_pointer = NULL;
#line 10929 "widgets.c"
	}
#line 1162 "widgets.vala"
	if (old) {
#line 1162 "widgets.vala"
		synapse_gui_htext_selector_pango_ready_text_unref (old);
#line 10935 "widgets.c"
	}
}

static void
synapse_gui_htext_selector_value_take_pango_ready_text (GValue* value,
                                                        gpointer v_object)
{
	SynapseGuiHTextSelectorPangoReadyText * old;
#line 1162 "widgets.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT));
#line 1162 "widgets.vala"
	old = value->data[0].v_pointer;
#line 1162 "widgets.vala"
	if (v_object) {
#line 1162 "widgets.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT));
#line 1162 "widgets.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 1162 "widgets.vala"
		value->data[0].v_pointer = v_object;
#line 10956 "widgets.c"
	} else {
#line 1162 "widgets.vala"
		value->data[0].v_pointer = NULL;
#line 10960 "widgets.c"
	}
#line 1162 "widgets.vala"
	if (old) {
#line 1162 "widgets.vala"
		synapse_gui_htext_selector_pango_ready_text_unref (old);
#line 10966 "widgets.c"
	}
}

static void
synapse_gui_htext_selector_pango_ready_text_class_init (SynapseGuiHTextSelectorPangoReadyTextClass * klass,
                                                        gpointer klass_data)
{
#line 1162 "widgets.vala"
	synapse_gui_htext_selector_pango_ready_text_parent_class = g_type_class_peek_parent (klass);
#line 1162 "widgets.vala"
	((SynapseGuiHTextSelectorPangoReadyTextClass *) klass)->finalize = synapse_gui_htext_selector_pango_ready_text_finalize;
#line 1162 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiHTextSelectorPangoReadyText_private_offset);
#line 10980 "widgets.c"
}

static void
synapse_gui_htext_selector_pango_ready_text_instance_init (SynapseGuiHTextSelectorPangoReadyText * self,
                                                           gpointer klass)
{
	gchar* _tmp0_;
#line 1162 "widgets.vala"
	self->priv = synapse_gui_htext_selector_pango_ready_text_get_instance_private (self);
#line 1164 "widgets.vala"
	_tmp0_ = g_strdup ("");
#line 1164 "widgets.vala"
	self->priv->_text = _tmp0_;
#line 1165 "widgets.vala"
	self->priv->_offset = 0;
#line 1166 "widgets.vala"
	self->priv->_width = 0;
#line 1167 "widgets.vala"
	self->priv->_height = 0;
#line 1162 "widgets.vala"
	self->ref_count = 1;
#line 11002 "widgets.c"
}

static void
synapse_gui_htext_selector_pango_ready_text_finalize (SynapseGuiHTextSelectorPangoReadyText * obj)
{
	SynapseGuiHTextSelectorPangoReadyText * self;
#line 1162 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_HTEXT_SELECTOR_TYPE_PANGO_READY_TEXT, SynapseGuiHTextSelectorPangoReadyText);
#line 1162 "widgets.vala"
	g_signal_handlers_destroy (self);
#line 1164 "widgets.vala"
	_g_free0 (self->priv->_text);
#line 11015 "widgets.c"
}

static GType
synapse_gui_htext_selector_pango_ready_text_get_type_once (void)
{
	static const GTypeValueTable g_define_type_value_table = { synapse_gui_htext_selector_value_pango_ready_text_init, synapse_gui_htext_selector_value_pango_ready_text_free_value, synapse_gui_htext_selector_value_pango_ready_text_copy_value, synapse_gui_htext_selector_value_pango_ready_text_peek_pointer, "p", synapse_gui_htext_selector_value_pango_ready_text_collect_value, "p", synapse_gui_htext_selector_value_pango_ready_text_lcopy_value };
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiHTextSelectorPangoReadyTextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_htext_selector_pango_ready_text_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiHTextSelectorPangoReadyText), 0, (GInstanceInitFunc) synapse_gui_htext_selector_pango_ready_text_instance_init, &g_define_type_value_table };
	static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
	GType synapse_gui_htext_selector_pango_ready_text_type_id;
	synapse_gui_htext_selector_pango_ready_text_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SynapseGuiHTextSelectorPangoReadyText", &g_define_type_info, &g_define_type_fundamental_info, 0);
	SynapseGuiHTextSelectorPangoReadyText_private_offset = g_type_add_instance_private (synapse_gui_htext_selector_pango_ready_text_type_id, sizeof (SynapseGuiHTextSelectorPangoReadyTextPrivate));
	return synapse_gui_htext_selector_pango_ready_text_type_id;
}

static GType
synapse_gui_htext_selector_pango_ready_text_get_type (void)
{
	static volatile gsize synapse_gui_htext_selector_pango_ready_text_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_htext_selector_pango_ready_text_type_id__once)) {
		GType synapse_gui_htext_selector_pango_ready_text_type_id;
		synapse_gui_htext_selector_pango_ready_text_type_id = synapse_gui_htext_selector_pango_ready_text_get_type_once ();
		g_once_init_leave (&synapse_gui_htext_selector_pango_ready_text_type_id__once, synapse_gui_htext_selector_pango_ready_text_type_id);
	}
	return synapse_gui_htext_selector_pango_ready_text_type_id__once;
}

static gpointer
synapse_gui_htext_selector_pango_ready_text_ref (gpointer instance)
{
	SynapseGuiHTextSelectorPangoReadyText * self;
	self = instance;
#line 1162 "widgets.vala"
	g_atomic_int_inc (&self->ref_count);
#line 1162 "widgets.vala"
	return instance;
#line 11051 "widgets.c"
}

static void
synapse_gui_htext_selector_pango_ready_text_unref (gpointer instance)
{
	SynapseGuiHTextSelectorPangoReadyText * self;
	self = instance;
#line 1162 "widgets.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 1162 "widgets.vala"
		SYNAPSE_GUI_HTEXT_SELECTOR_PANGO_READY_TEXT_GET_CLASS (self)->finalize (self);
#line 1162 "widgets.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 11065 "widgets.c"
	}
}

static void
synapse_gui_htext_selector_class_init (SynapseGuiHTextSelectorClass * klass,
                                       gpointer klass_data)
{
#line 1154 "widgets.vala"
	synapse_gui_htext_selector_parent_class = g_type_class_peek_parent (klass);
#line 1154 "widgets.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiHTextSelector_private_offset);
#line 1154 "widgets.vala"
	((GtkWidgetClass *) klass)->button_press_event = (gboolean (*) (GtkWidget*, GdkEventButton*)) synapse_gui_htext_selector_real_button_press_event;
#line 1154 "widgets.vala"
	((GtkWidgetClass *) klass)->scroll_event = (gboolean (*) (GtkWidget*, GdkEventScroll*)) synapse_gui_htext_selector_real_scroll_event;
#line 1154 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_htext_selector_real_get_preferred_width;
#line 1154 "widgets.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_htext_selector_real_get_preferred_height;
#line 1154 "widgets.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_htext_selector_real_draw;
#line 1154 "widgets.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_htext_selector_get_property;
#line 1154 "widgets.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_htext_selector_set_property;
#line 1154 "widgets.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_htext_selector_finalize;
#line 1154 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_MARKUP_PROPERTY, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_MARKUP_PROPERTY] = g_param_spec_string ("selected-markup", "selected-markup", "selected-markup", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 1154 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_HTEXT_SELECTOR_UNSELECTED_MARKUP_PROPERTY, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_UNSELECTED_MARKUP_PROPERTY] = g_param_spec_string ("unselected-markup", "unselected-markup", "unselected-markup", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 1154 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_HTEXT_SELECTOR_PADDING_PROPERTY, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_PADDING_PROPERTY] = g_param_spec_int ("padding", "padding", "padding", G_MININT, G_MAXINT, 18, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 1154 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_HTEXT_SELECTOR_SHOW_ARROWS_PROPERTY, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_SHOW_ARROWS_PROPERTY] = g_param_spec_boolean ("show-arrows", "show-arrows", "show-arrows", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 1154 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_HTEXT_SELECTOR_ANIMATION_ENABLED_PROPERTY, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_ANIMATION_ENABLED_PROPERTY] = g_param_spec_boolean ("animation-enabled", "animation-enabled", "animation-enabled", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 1154 "widgets.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_PROPERTY, synapse_gui_htext_selector_properties[SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_PROPERTY] = g_param_spec_int ("selected", "selected", "selected", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 1154 "widgets.vala"
	synapse_gui_htext_selector_signals[SYNAPSE_GUI_HTEXT_SELECTOR_SELECTION_CHANGED_SIGNAL] = g_signal_new ("selection-changed", SYNAPSE_GUI_TYPE_HTEXT_SELECTOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 11107 "widgets.c"
}

static void
synapse_gui_htext_selector_instance_init (SynapseGuiHTextSelector * self,
                                          gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
#line 1154 "widgets.vala"
	self->priv = synapse_gui_htext_selector_get_instance_private (self);
#line 1157 "widgets.vala"
	_tmp0_ = g_strdup ("<span size=\"medium\"><b>%s</b></span>");
#line 1157 "widgets.vala"
	self->priv->_selected_markup = _tmp0_;
#line 1158 "widgets.vala"
	_tmp1_ = g_strdup ("<span size=\"small\">%s</span>");
#line 1158 "widgets.vala"
	self->priv->_unselected_markup = _tmp1_;
#line 1159 "widgets.vala"
	self->priv->_padding = 18;
#line 1160 "widgets.vala"
	self->priv->_show_arrows = TRUE;
#line 1161 "widgets.vala"
	self->priv->_animation_enabled = TRUE;
#line 11132 "widgets.c"
}

static void
synapse_gui_htext_selector_finalize (GObject * obj)
{
	SynapseGuiHTextSelector * self;
#line 1154 "widgets.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_HTEXT_SELECTOR, SynapseGuiHTextSelector);
#line 1157 "widgets.vala"
	_g_free0 (self->priv->_selected_markup);
#line 1158 "widgets.vala"
	_g_free0 (self->priv->_unselected_markup);
#line 1191 "widgets.vala"
	_g_object_unref0 (self->priv->texts);
#line 1192 "widgets.vala"
	_cairo_surface_destroy0 (self->priv->cached_surface);
#line 1196 "widgets.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 1197 "widgets.vala"
	_g_object_unref0 (self->priv->label);
#line 1154 "widgets.vala"
	G_OBJECT_CLASS (synapse_gui_htext_selector_parent_class)->finalize (obj);
#line 11155 "widgets.c"
}

static GType
synapse_gui_htext_selector_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiHTextSelectorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_htext_selector_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiHTextSelector), 0, (GInstanceInitFunc) synapse_gui_htext_selector_instance_init, NULL };
	GType synapse_gui_htext_selector_type_id;
	synapse_gui_htext_selector_type_id = g_type_register_static (gtk_event_box_get_type (), "SynapseGuiHTextSelector", &g_define_type_info, 0);
	SynapseGuiHTextSelector_private_offset = g_type_add_instance_private (synapse_gui_htext_selector_type_id, sizeof (SynapseGuiHTextSelectorPrivate));
	return synapse_gui_htext_selector_type_id;
}

GType
synapse_gui_htext_selector_get_type (void)
{
	static volatile gsize synapse_gui_htext_selector_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_htext_selector_type_id__once)) {
		GType synapse_gui_htext_selector_type_id;
		synapse_gui_htext_selector_type_id = synapse_gui_htext_selector_get_type_once ();
		g_once_init_leave (&synapse_gui_htext_selector_type_id__once, synapse_gui_htext_selector_type_id);
	}
	return synapse_gui_htext_selector_type_id__once;
}

static void
_vala_synapse_gui_htext_selector_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec)
{
	SynapseGuiHTextSelector * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_HTEXT_SELECTOR, SynapseGuiHTextSelector);
#line 1154 "widgets.vala"
	switch (property_id) {
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_MARKUP_PROPERTY:
#line 1154 "widgets.vala"
		g_value_set_string (value, synapse_gui_htext_selector_get_selected_markup (self));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_UNSELECTED_MARKUP_PROPERTY:
#line 1154 "widgets.vala"
		g_value_set_string (value, synapse_gui_htext_selector_get_unselected_markup (self));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_PADDING_PROPERTY:
#line 1154 "widgets.vala"
		g_value_set_int (value, synapse_gui_htext_selector_get_padding (self));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_SHOW_ARROWS_PROPERTY:
#line 1154 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_htext_selector_get_show_arrows (self));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_ANIMATION_ENABLED_PROPERTY:
#line 1154 "widgets.vala"
		g_value_set_boolean (value, synapse_gui_htext_selector_get_animation_enabled (self));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_PROPERTY:
#line 1154 "widgets.vala"
		g_value_set_int (value, synapse_gui_htext_selector_get_selected (self));
#line 1154 "widgets.vala"
		break;
#line 11226 "widgets.c"
		default:
#line 1154 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 1154 "widgets.vala"
		break;
#line 11232 "widgets.c"
	}
}

static void
_vala_synapse_gui_htext_selector_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec)
{
	SynapseGuiHTextSelector * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_HTEXT_SELECTOR, SynapseGuiHTextSelector);
#line 1154 "widgets.vala"
	switch (property_id) {
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_MARKUP_PROPERTY:
#line 1154 "widgets.vala"
		synapse_gui_htext_selector_set_selected_markup (self, g_value_get_string (value));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_UNSELECTED_MARKUP_PROPERTY:
#line 1154 "widgets.vala"
		synapse_gui_htext_selector_set_unselected_markup (self, g_value_get_string (value));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_PADDING_PROPERTY:
#line 1154 "widgets.vala"
		synapse_gui_htext_selector_set_padding (self, g_value_get_int (value));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_SHOW_ARROWS_PROPERTY:
#line 1154 "widgets.vala"
		synapse_gui_htext_selector_set_show_arrows (self, g_value_get_boolean (value));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_ANIMATION_ENABLED_PROPERTY:
#line 1154 "widgets.vala"
		synapse_gui_htext_selector_set_animation_enabled (self, g_value_get_boolean (value));
#line 1154 "widgets.vala"
		break;
#line 1154 "widgets.vala"
		case SYNAPSE_GUI_HTEXT_SELECTOR_SELECTED_PROPERTY:
#line 1154 "widgets.vala"
		synapse_gui_htext_selector_set_selected (self, g_value_get_int (value));
#line 1154 "widgets.vala"
		break;
#line 11282 "widgets.c"
		default:
#line 1154 "widgets.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 1154 "widgets.vala"
		break;
#line 11288 "widgets.c"
	}
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
#line 24 "controller.vala"
	if ((array != NULL) && (destroy_func != NULL)) {
#line 11299 "widgets.c"
		gssize i;
#line 24 "controller.vala"
		for (i = 0; i < array_length; i = i + 1) {
#line 24 "controller.vala"
			if (((gpointer*) array)[i] != NULL) {
#line 24 "controller.vala"
				destroy_func (((gpointer*) array)[i]);
#line 11307 "widgets.c"
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
#line 24 "controller.vala"
	_vala_array_destroy (array, array_length, destroy_func);
#line 24 "controller.vala"
	g_free (array);
#line 11322 "widgets.c"
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
#line 24 "controller.vala"
	if (mem && byte_size != 0) {
#line 24 "controller.vala"
		new_mem = g_malloc (byte_size);
#line 24 "controller.vala"
		memcpy (new_mem, mem, byte_size);
#line 11336 "widgets.c"
	} else {
#line 24 "controller.vala"
		new_mem = NULL;
#line 11340 "widgets.c"
	}
#line 24 "controller.vala"
	return new_mem;
#line 11344 "widgets.c"
}

