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

/*-
 * Copyright (c) 2017-2018 elementary LLC. (https://elementary.io)
 *
 * 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/>.
 *
 */

#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <vala.h>

#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 CODE_WIDGETS_SOURCE_LIST_TYPE_ITEM (code_widgets_source_list_item_get_type ())
#define CODE_WIDGETS_SOURCE_LIST_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_WIDGETS_SOURCE_LIST_TYPE_ITEM, CodeWidgetsSourceListItem))
#define CODE_WIDGETS_SOURCE_LIST_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CODE_WIDGETS_SOURCE_LIST_TYPE_ITEM, CodeWidgetsSourceListItemClass))
#define CODE_WIDGETS_SOURCE_LIST_IS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_WIDGETS_SOURCE_LIST_TYPE_ITEM))
#define CODE_WIDGETS_SOURCE_LIST_IS_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CODE_WIDGETS_SOURCE_LIST_TYPE_ITEM))
#define CODE_WIDGETS_SOURCE_LIST_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CODE_WIDGETS_SOURCE_LIST_TYPE_ITEM, CodeWidgetsSourceListItemClass))

typedef struct _CodeWidgetsSourceListItem CodeWidgetsSourceListItem;
typedef struct _CodeWidgetsSourceListItemClass CodeWidgetsSourceListItemClass;
typedef struct _CodeWidgetsSourceListItemPrivate CodeWidgetsSourceListItemPrivate;

#define CODE_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM (code_widgets_source_list_expandable_item_get_type ())
#define CODE_WIDGETS_SOURCE_LIST_EXPANDABLE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM, CodeWidgetsSourceListExpandableItem))
#define CODE_WIDGETS_SOURCE_LIST_EXPANDABLE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CODE_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM, CodeWidgetsSourceListExpandableItemClass))
#define CODE_WIDGETS_SOURCE_LIST_IS_EXPANDABLE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM))
#define CODE_WIDGETS_SOURCE_LIST_IS_EXPANDABLE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CODE_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM))
#define CODE_WIDGETS_SOURCE_LIST_EXPANDABLE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CODE_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM, CodeWidgetsSourceListExpandableItemClass))

typedef struct _CodeWidgetsSourceListExpandableItem CodeWidgetsSourceListExpandableItem;
typedef struct _CodeWidgetsSourceListExpandableItemClass CodeWidgetsSourceListExpandableItemClass;
typedef struct _CodeWidgetsSourceListExpandableItemPrivate CodeWidgetsSourceListExpandableItemPrivate;

#define CODE_WIDGETS_TYPE_SOURCE_LIST_SORTABLE (code_widgets_source_list_sortable_get_type ())
#define CODE_WIDGETS_SOURCE_LIST_SORTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_WIDGETS_TYPE_SOURCE_LIST_SORTABLE, CodeWidgetsSourceListSortable))
#define CODE_WIDGETS_IS_SOURCE_LIST_SORTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_WIDGETS_TYPE_SOURCE_LIST_SORTABLE))
#define CODE_WIDGETS_SOURCE_LIST_SORTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CODE_WIDGETS_TYPE_SOURCE_LIST_SORTABLE, CodeWidgetsSourceListSortableIface))

typedef struct _CodeWidgetsSourceListSortable CodeWidgetsSourceListSortable;
typedef struct _CodeWidgetsSourceListSortableIface CodeWidgetsSourceListSortableIface;

#define SCRATCH_SERVICES_TYPE_SYMBOL_ITEM (scratch_services_symbol_item_get_type ())
#define SCRATCH_SERVICES_SYMBOL_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_SERVICES_TYPE_SYMBOL_ITEM, ScratchServicesSymbolItem))
#define SCRATCH_SERVICES_IS_SYMBOL_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_SERVICES_TYPE_SYMBOL_ITEM))
#define SCRATCH_SERVICES_SYMBOL_ITEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SCRATCH_SERVICES_TYPE_SYMBOL_ITEM, ScratchServicesSymbolItemIface))

typedef struct _ScratchServicesSymbolItem ScratchServicesSymbolItem;
typedef struct _ScratchServicesSymbolItemIface ScratchServicesSymbolItemIface;
typedef enum  {
	SCRATCH_SERVICES_SYMBOL_TYPE_CLASS,
	SCRATCH_SERVICES_SYMBOL_TYPE_PROPERTY,
	SCRATCH_SERVICES_SYMBOL_TYPE_SIGNAL,
	SCRATCH_SERVICES_SYMBOL_TYPE_METHOD,
	SCRATCH_SERVICES_SYMBOL_TYPE_STRUCT,
	SCRATCH_SERVICES_SYMBOL_TYPE_ENUM,
	SCRATCH_SERVICES_SYMBOL_TYPE_CONSTANT,
	SCRATCH_SERVICES_SYMBOL_TYPE_CONSTRUCTOR,
	SCRATCH_SERVICES_SYMBOL_TYPE_INTERFACE,
	SCRATCH_SERVICES_SYMBOL_TYPE_NAMESPACE,
	SCRATCH_SERVICES_SYMBOL_TYPE_OTHER
} ScratchServicesSymbolType;

#define SCRATCH_SERVICES_TYPE_SYMBOL_TYPE (scratch_services_symbol_type_get_type ())

#define SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM (scratch_services_vala_symbol_item_get_type ())
#define SCRATCH_SERVICES_VALA_SYMBOL_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM, ScratchServicesValaSymbolItem))
#define SCRATCH_SERVICES_VALA_SYMBOL_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM, ScratchServicesValaSymbolItemClass))
#define SCRATCH_SERVICES_IS_VALA_SYMBOL_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM))
#define SCRATCH_SERVICES_IS_VALA_SYMBOL_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM))
#define SCRATCH_SERVICES_VALA_SYMBOL_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM, ScratchServicesValaSymbolItemClass))

typedef struct _ScratchServicesValaSymbolItem ScratchServicesValaSymbolItem;
typedef struct _ScratchServicesValaSymbolItemClass ScratchServicesValaSymbolItemClass;
typedef struct _ScratchServicesValaSymbolItemPrivate ScratchServicesValaSymbolItemPrivate;
enum  {
	SCRATCH_SERVICES_VALA_SYMBOL_ITEM_0_PROPERTY,
	SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_PROPERTY,
	SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_TYPE_PROPERTY,
	SCRATCH_SERVICES_VALA_SYMBOL_ITEM_NUM_PROPERTIES
};
static GParamSpec* scratch_services_vala_symbol_item_properties[SCRATCH_SERVICES_VALA_SYMBOL_ITEM_NUM_PROPERTIES];
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

struct _CodeWidgetsSourceListItem {
	GObject parent_instance;
	CodeWidgetsSourceListItemPrivate * priv;
};

struct _CodeWidgetsSourceListItemClass {
	GObjectClass parent_class;
	GMenu* (*get_context_menu) (CodeWidgetsSourceListItem* self);
	void (*edited) (CodeWidgetsSourceListItem* self, const gchar* new_name);
	void (*action_activated) (CodeWidgetsSourceListItem* self);
	void (*activated) (CodeWidgetsSourceListItem* self);
};

struct _CodeWidgetsSourceListExpandableItem {
	CodeWidgetsSourceListItem parent_instance;
	CodeWidgetsSourceListExpandableItemPrivate * priv;
};

struct _CodeWidgetsSourceListExpandableItemClass {
	CodeWidgetsSourceListItemClass parent_class;
	void (*toggled) (CodeWidgetsSourceListExpandableItem* self);
};

struct _CodeWidgetsSourceListSortableIface {
	GTypeInterface parent_iface;
	gboolean (*allow_dnd_sorting) (CodeWidgetsSourceListSortable* self);
	gint (*compare) (CodeWidgetsSourceListSortable* self, CodeWidgetsSourceListItem* a, CodeWidgetsSourceListItem* b);
};

struct _ScratchServicesSymbolItemIface {
	GTypeInterface parent_iface;
	ScratchServicesSymbolType (*get_symbol_type) (ScratchServicesSymbolItem* self);
	void (*set_symbol_type) (ScratchServicesSymbolItem* self, ScratchServicesSymbolType value);
};

struct _ScratchServicesValaSymbolItem {
	CodeWidgetsSourceListExpandableItem parent_instance;
	ScratchServicesValaSymbolItemPrivate * priv;
};

struct _ScratchServicesValaSymbolItemClass {
	CodeWidgetsSourceListExpandableItemClass parent_class;
};

struct _ScratchServicesValaSymbolItemPrivate {
	ValaSymbol* _symbol;
	ScratchServicesSymbolType _symbol_type;
};

static gint ScratchServicesValaSymbolItem_private_offset;
static gpointer scratch_services_vala_symbol_item_parent_class = NULL;
static CodeWidgetsSourceListSortableIface * scratch_services_vala_symbol_item_code_widgets_source_list_sortable_parent_iface = NULL;
static ScratchServicesSymbolItemIface * scratch_services_vala_symbol_item_scratch_services_symbol_item_parent_iface = NULL;

VALA_EXTERN GType code_widgets_source_list_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CodeWidgetsSourceListItem, g_object_unref)
VALA_EXTERN GType code_widgets_source_list_expandable_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CodeWidgetsSourceListExpandableItem, g_object_unref)
VALA_EXTERN GType code_widgets_source_list_sortable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (CodeWidgetsSourceListSortable, g_object_unref)
VALA_EXTERN GType scratch_services_symbol_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType scratch_services_symbol_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ScratchServicesSymbolItem, g_object_unref)
VALA_EXTERN GType scratch_services_vala_symbol_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ScratchServicesValaSymbolItem, g_object_unref)
VALA_EXTERN ScratchServicesValaSymbolItem* scratch_services_vala_symbol_item_new (ValaSymbol* symbol,
                                                                      const gchar* _tooltip);
VALA_EXTERN ScratchServicesValaSymbolItem* scratch_services_vala_symbol_item_construct (GType object_type,
                                                                            ValaSymbol* symbol,
                                                                            const gchar* _tooltip);
static gint scratch_services_vala_symbol_item_real_compare (CodeWidgetsSourceListSortable* base,
                                                     CodeWidgetsSourceListItem* a,
                                                     CodeWidgetsSourceListItem* b);
VALA_EXTERN gint scratch_services_vala_comparison_sort_function (CodeWidgetsSourceListItem* str1,
                                                     CodeWidgetsSourceListItem* str2);
static gboolean scratch_services_vala_symbol_item_real_allow_dnd_sorting (CodeWidgetsSourceListSortable* base);
VALA_EXTERN gboolean scratch_services_vala_symbol_item_compare_symbol (ScratchServicesValaSymbolItem* self,
                                                           ValaSymbol* comp_symbol);
VALA_EXTERN ValaSymbol* scratch_services_vala_symbol_item_get_symbol (ScratchServicesValaSymbolItem* self);
static void scratch_services_vala_symbol_item_set_symbol (ScratchServicesValaSymbolItem* self,
                                                   ValaSymbol* value);
static GObject * scratch_services_vala_symbol_item_constructor (GType type,
                                                         guint n_construct_properties,
                                                         GObjectConstructParam * construct_properties);
VALA_EXTERN void code_widgets_source_list_item_set_name (CodeWidgetsSourceListItem* self,
                                             const gchar* value);
VALA_EXTERN void code_widgets_source_list_item_set_icon (CodeWidgetsSourceListItem* self,
                                             GIcon* value);
VALA_EXTERN void scratch_services_symbol_item_set_symbol_type (ScratchServicesSymbolItem* self,
                                                   ScratchServicesSymbolType value);
VALA_EXTERN gint code_widgets_source_list_sortable_compare (CodeWidgetsSourceListSortable* self,
                                                CodeWidgetsSourceListItem* a,
                                                CodeWidgetsSourceListItem* b);
VALA_EXTERN gboolean code_widgets_source_list_sortable_allow_dnd_sorting (CodeWidgetsSourceListSortable* self);
VALA_EXTERN ScratchServicesSymbolType scratch_services_symbol_item_get_symbol_type (ScratchServicesSymbolItem* self);
static void scratch_services_vala_symbol_item_finalize (GObject * obj);
static GType scratch_services_vala_symbol_item_get_type_once (void);
static void _vala_scratch_services_vala_symbol_item_get_property (GObject * object,
                                                           guint property_id,
                                                           GValue * value,
                                                           GParamSpec * pspec);
static void _vala_scratch_services_vala_symbol_item_set_property (GObject * object,
                                                           guint property_id,
                                                           const GValue * value,
                                                           GParamSpec * pspec);

static inline gpointer
scratch_services_vala_symbol_item_get_instance_private (ScratchServicesValaSymbolItem* self)
{
	return G_STRUCT_MEMBER_P (self, ScratchServicesValaSymbolItem_private_offset);
}

ScratchServicesValaSymbolItem*
scratch_services_vala_symbol_item_construct (GType object_type,
                                             ValaSymbol* symbol,
                                             const gchar* _tooltip)
{
	ScratchServicesValaSymbolItem * self = NULL;
	g_return_val_if_fail (symbol != NULL, NULL);
	g_return_val_if_fail (_tooltip != NULL, NULL);
	self = (ScratchServicesValaSymbolItem*) g_object_new (object_type, "symbol", symbol, "tooltip", _tooltip, NULL);
	return self;
}

ScratchServicesValaSymbolItem*
scratch_services_vala_symbol_item_new (ValaSymbol* symbol,
                                       const gchar* _tooltip)
{
	return scratch_services_vala_symbol_item_construct (SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM, symbol, _tooltip);
}

static gint
scratch_services_vala_symbol_item_real_compare (CodeWidgetsSourceListSortable* base,
                                                CodeWidgetsSourceListItem* a,
                                                CodeWidgetsSourceListItem* b)
{
	ScratchServicesValaSymbolItem * self;
	gint result;
	self = (ScratchServicesValaSymbolItem*) base;
	g_return_val_if_fail (a != NULL, -1);
	g_return_val_if_fail (b != NULL, -1);
	result = scratch_services_vala_comparison_sort_function (a, b);
	return result;
}

static gboolean
scratch_services_vala_symbol_item_real_allow_dnd_sorting (CodeWidgetsSourceListSortable* base)
{
	ScratchServicesValaSymbolItem * self;
	gboolean result;
	self = (ScratchServicesValaSymbolItem*) base;
	result = FALSE;
	return result;
}

static gpointer
_vala_code_node_ref0 (gpointer self)
{
	return self ? vala_code_node_ref (self) : NULL;
}

gboolean
scratch_services_vala_symbol_item_compare_symbol (ScratchServicesValaSymbolItem* self,
                                                  ValaSymbol* comp_symbol)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	ValaSymbol* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	ValaSymbol* comp_parent = NULL;
	ValaSymbol* _tmp5_;
	ValaSymbol* _tmp6_;
	ValaSymbol* _tmp7_;
	ValaSymbol* _tmp29_;
	ValaSymbol* _tmp30_;
	ValaSymbol* _tmp31_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (comp_symbol != NULL, FALSE);
	_tmp0_ = vala_symbol_get_name (comp_symbol);
	_tmp1_ = _tmp0_;
	_tmp2_ = self->priv->_symbol;
	_tmp3_ = vala_symbol_get_name (_tmp2_);
	_tmp4_ = _tmp3_;
	if (g_strcmp0 (_tmp1_, _tmp4_) != 0) {
		result = FALSE;
		return result;
	}
	_tmp5_ = vala_symbol_get_parent_symbol (comp_symbol);
	_tmp6_ = _tmp5_;
	_tmp7_ = _vala_code_node_ref0 (_tmp6_);
	comp_parent = _tmp7_;
	{
		ValaSymbol* parent = NULL;
		ValaSymbol* _tmp8_;
		ValaSymbol* _tmp9_;
		ValaSymbol* _tmp10_;
		ValaSymbol* _tmp11_;
		_tmp8_ = self->priv->_symbol;
		_tmp9_ = vala_symbol_get_parent_symbol (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp11_ = _vala_code_node_ref0 (_tmp10_);
		parent = _tmp11_;
		{
			gboolean _tmp12_ = FALSE;
			_tmp12_ = TRUE;
			while (TRUE) {
				ValaSymbol* _tmp17_;
				ValaSymbol* _tmp18_;
				ValaSymbol* _tmp19_;
				ValaSymbol* _tmp20_;
				ValaSymbol* _tmp21_;
				ValaSymbol* _tmp22_;
				ValaSymbol* _tmp23_;
				const gchar* _tmp24_;
				const gchar* _tmp25_;
				ValaSymbol* _tmp26_;
				const gchar* _tmp27_;
				const gchar* _tmp28_;
				if (!_tmp12_) {
					ValaSymbol* _tmp13_;
					ValaSymbol* _tmp14_;
					ValaSymbol* _tmp15_;
					ValaSymbol* _tmp16_;
					_tmp13_ = parent;
					_tmp14_ = vala_symbol_get_parent_symbol (_tmp13_);
					_tmp15_ = _tmp14_;
					_tmp16_ = _vala_code_node_ref0 (_tmp15_);
					_vala_code_node_unref0 (parent);
					parent = _tmp16_;
				}
				_tmp12_ = FALSE;
				_tmp17_ = parent;
				if (!(_tmp17_ != NULL)) {
					break;
				}
				_tmp18_ = comp_parent;
				_tmp19_ = vala_symbol_get_parent_symbol (_tmp18_);
				_tmp20_ = _tmp19_;
				_tmp21_ = _vala_code_node_ref0 (_tmp20_);
				_vala_code_node_unref0 (comp_parent);
				comp_parent = _tmp21_;
				_tmp22_ = comp_parent;
				if (_tmp22_ == NULL) {
					result = FALSE;
					_vala_code_node_unref0 (parent);
					_vala_code_node_unref0 (comp_parent);
					return result;
				}
				_tmp23_ = comp_parent;
				_tmp24_ = vala_symbol_get_name (_tmp23_);
				_tmp25_ = _tmp24_;
				_tmp26_ = parent;
				_tmp27_ = vala_symbol_get_name (_tmp26_);
				_tmp28_ = _tmp27_;
				if (g_strcmp0 (_tmp25_, _tmp28_) != 0) {
					result = FALSE;
					_vala_code_node_unref0 (parent);
					_vala_code_node_unref0 (comp_parent);
					return result;
				}
			}
		}
		_vala_code_node_unref0 (parent);
	}
	_tmp29_ = comp_parent;
	_tmp30_ = vala_symbol_get_parent_symbol (_tmp29_);
	_tmp31_ = _tmp30_;
	if (_tmp31_ != NULL) {
		result = FALSE;
		_vala_code_node_unref0 (comp_parent);
		return result;
	}
	result = TRUE;
	_vala_code_node_unref0 (comp_parent);
	return result;
}

ValaSymbol*
scratch_services_vala_symbol_item_get_symbol (ScratchServicesValaSymbolItem* self)
{
	ValaSymbol* result;
	ValaSymbol* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_symbol;
	result = _tmp0_;
	return result;
}

static void
scratch_services_vala_symbol_item_set_symbol (ScratchServicesValaSymbolItem* self,
                                              ValaSymbol* value)
{
	ValaSymbol* old_value;
	g_return_if_fail (self != NULL);
	old_value = scratch_services_vala_symbol_item_get_symbol (self);
	if (old_value != value) {
		ValaSymbol* _tmp0_;
		_tmp0_ = _vala_code_node_ref0 (value);
		_vala_code_node_unref0 (self->priv->_symbol);
		self->priv->_symbol = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, scratch_services_vala_symbol_item_properties[SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_PROPERTY]);
	}
}

static ScratchServicesSymbolType
scratch_services_vala_symbol_item_real_get_symbol_type (ScratchServicesSymbolItem* base)
{
	ScratchServicesSymbolType result;
	ScratchServicesValaSymbolItem* self;
	self = (ScratchServicesValaSymbolItem*) base;
	result = self->priv->_symbol_type;
	return result;
}

static void
scratch_services_vala_symbol_item_real_set_symbol_type (ScratchServicesSymbolItem* base,
                                                        ScratchServicesSymbolType value)
{
	ScratchServicesValaSymbolItem* self;
	ScratchServicesSymbolType old_value;
	self = (ScratchServicesValaSymbolItem*) base;
	old_value = scratch_services_vala_symbol_item_real_get_symbol_type (base);
	if (old_value != value) {
		self->priv->_symbol_type = value;
		g_object_notify_by_pspec ((GObject *) self, scratch_services_vala_symbol_item_properties[SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_TYPE_PROPERTY]);
	}
}

static GObject *
scratch_services_vala_symbol_item_constructor (GType type,
                                               guint n_construct_properties,
                                               GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	ScratchServicesValaSymbolItem * self;
	ValaSymbol* _tmp0_;
	ValaSymbol* _tmp18_;
	parent_class = G_OBJECT_CLASS (scratch_services_vala_symbol_item_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM, ScratchServicesValaSymbolItem);
	_tmp0_ = self->priv->_symbol;
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, VALA_TYPE_CREATION_METHOD)) {
		gchar* klass = NULL;
		ValaSymbol* _tmp1_;
		const gchar* _tmp2_;
		const gchar* _tmp3_;
		gchar* _tmp4_;
		ValaSymbol* _tmp5_;
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		_tmp1_ = self->priv->_symbol;
		_tmp2_ = vala_creation_method_get_class_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, VALA_TYPE_CREATION_METHOD, ValaCreationMethod));
		_tmp3_ = _tmp2_;
		_tmp4_ = g_strdup (_tmp3_);
		klass = _tmp4_;
		_tmp5_ = self->priv->_symbol;
		_tmp6_ = vala_symbol_get_name (_tmp5_);
		_tmp7_ = _tmp6_;
		if (g_strcmp0 (_tmp7_, ".new") == 0) {
			const gchar* _tmp8_;
			_tmp8_ = klass;
			code_widgets_source_list_item_set_name ((CodeWidgetsSourceListItem*) self, _tmp8_);
		} else {
			const gchar* _tmp9_;
			ValaSymbol* _tmp10_;
			const gchar* _tmp11_;
			const gchar* _tmp12_;
			gchar* _tmp13_;
			gchar* _tmp14_;
			_tmp9_ = klass;
			_tmp10_ = self->priv->_symbol;
			_tmp11_ = vala_symbol_get_name (_tmp10_);
			_tmp12_ = _tmp11_;
			_tmp13_ = g_strdup_printf ("%s.%s", _tmp9_, _tmp12_);
			_tmp14_ = _tmp13_;
			code_widgets_source_list_item_set_name ((CodeWidgetsSourceListItem*) self, _tmp14_);
			_g_free0 (_tmp14_);
		}
		_g_free0 (klass);
	} else {
		ValaSymbol* _tmp15_;
		const gchar* _tmp16_;
		const gchar* _tmp17_;
		_tmp15_ = self->priv->_symbol;
		_tmp16_ = vala_symbol_get_name (_tmp15_);
		_tmp17_ = _tmp16_;
		code_widgets_source_list_item_set_name ((CodeWidgetsSourceListItem*) self, _tmp17_);
	}
	_tmp18_ = self->priv->_symbol;
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp18_, VALA_TYPE_STRUCT)) {
		GThemedIcon* _tmp19_;
		GThemedIcon* _tmp20_;
		_tmp19_ = (GThemedIcon*) g_themed_icon_new ("lang-struct");
		_tmp20_ = _tmp19_;
		code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp20_);
		_g_object_unref0 (_tmp20_);
		scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_STRUCT);
	} else {
		ValaSymbol* _tmp21_;
		_tmp21_ = self->priv->_symbol;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp21_, VALA_TYPE_CLASS)) {
			ValaSymbol* _tmp22_;
			gboolean _tmp23_;
			gboolean _tmp24_;
			_tmp22_ = self->priv->_symbol;
			_tmp23_ = vala_class_get_is_abstract (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, VALA_TYPE_CLASS, ValaClass));
			_tmp24_ = _tmp23_;
			if (_tmp24_) {
				GThemedIcon* _tmp25_;
				GThemedIcon* _tmp26_;
				_tmp25_ = (GThemedIcon*) g_themed_icon_new ("lang-class-abstract");
				_tmp26_ = _tmp25_;
				code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp26_);
				_g_object_unref0 (_tmp26_);
			} else {
				GThemedIcon* _tmp27_;
				GThemedIcon* _tmp28_;
				_tmp27_ = (GThemedIcon*) g_themed_icon_new ("lang-class");
				_tmp28_ = _tmp27_;
				code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp28_);
				_g_object_unref0 (_tmp28_);
			}
			scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_CLASS);
		} else {
			ValaSymbol* _tmp29_;
			_tmp29_ = self->priv->_symbol;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp29_, VALA_TYPE_CONSTANT)) {
				GThemedIcon* _tmp30_;
				GThemedIcon* _tmp31_;
				_tmp30_ = (GThemedIcon*) g_themed_icon_new ("lang-constant");
				_tmp31_ = _tmp30_;
				code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp31_);
				_g_object_unref0 (_tmp31_);
				scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_CONSTANT);
			} else {
				ValaSymbol* _tmp32_;
				_tmp32_ = self->priv->_symbol;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp32_, VALA_TYPE_ENUM)) {
					GThemedIcon* _tmp33_;
					GThemedIcon* _tmp34_;
					_tmp33_ = (GThemedIcon*) g_themed_icon_new ("lang-enum");
					_tmp34_ = _tmp33_;
					code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp34_);
					_g_object_unref0 (_tmp34_);
					scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_ENUM);
				} else {
					ValaSymbol* _tmp35_;
					_tmp35_ = self->priv->_symbol;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp35_, VALA_TYPE_FIELD)) {
						GThemedIcon* _tmp36_;
						GThemedIcon* _tmp37_;
						_tmp36_ = (GThemedIcon*) g_themed_icon_new ("lang-property");
						_tmp37_ = _tmp36_;
						code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp37_);
						_g_object_unref0 (_tmp37_);
						scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_PROPERTY);
					} else {
						ValaSymbol* _tmp38_;
						_tmp38_ = self->priv->_symbol;
						if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp38_, VALA_TYPE_INTERFACE)) {
							GThemedIcon* _tmp39_;
							GThemedIcon* _tmp40_;
							_tmp39_ = (GThemedIcon*) g_themed_icon_new ("lang-interface");
							_tmp40_ = _tmp39_;
							code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp40_);
							_g_object_unref0 (_tmp40_);
							scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_INTERFACE);
						} else {
							ValaSymbol* _tmp41_;
							_tmp41_ = self->priv->_symbol;
							if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp41_, VALA_TYPE_PROPERTY)) {
								ValaSymbol* _tmp42_;
								gboolean _tmp43_;
								gboolean _tmp44_;
								_tmp42_ = self->priv->_symbol;
								_tmp43_ = vala_property_get_is_abstract (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, VALA_TYPE_PROPERTY, ValaProperty));
								_tmp44_ = _tmp43_;
								if (_tmp44_) {
									GThemedIcon* _tmp45_;
									GThemedIcon* _tmp46_;
									_tmp45_ = (GThemedIcon*) g_themed_icon_new ("lang-property-abstract");
									_tmp46_ = _tmp45_;
									code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp46_);
									_g_object_unref0 (_tmp46_);
								} else {
									ValaSymbol* _tmp47_;
									gboolean _tmp48_;
									gboolean _tmp49_;
									_tmp47_ = self->priv->_symbol;
									_tmp48_ = vala_property_get_is_virtual (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, VALA_TYPE_PROPERTY, ValaProperty));
									_tmp49_ = _tmp48_;
									if (_tmp49_) {
										GThemedIcon* _tmp50_;
										GThemedIcon* _tmp51_;
										_tmp50_ = (GThemedIcon*) g_themed_icon_new ("lang-property-virtual");
										_tmp51_ = _tmp50_;
										code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp51_);
										_g_object_unref0 (_tmp51_);
									} else {
										GThemedIcon* _tmp52_;
										GThemedIcon* _tmp53_;
										_tmp52_ = (GThemedIcon*) g_themed_icon_new ("lang-property");
										_tmp53_ = _tmp52_;
										code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp53_);
										_g_object_unref0 (_tmp53_);
									}
								}
								scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_PROPERTY);
							} else {
								ValaSymbol* _tmp54_;
								_tmp54_ = self->priv->_symbol;
								if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp54_, VALA_TYPE_SIGNAL)) {
									GThemedIcon* _tmp55_;
									GThemedIcon* _tmp56_;
									_tmp55_ = (GThemedIcon*) g_themed_icon_new ("lang-signal");
									_tmp56_ = _tmp55_;
									code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp56_);
									_g_object_unref0 (_tmp56_);
									scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_SIGNAL);
								} else {
									ValaSymbol* _tmp57_;
									_tmp57_ = self->priv->_symbol;
									if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp57_, VALA_TYPE_CREATION_METHOD)) {
										GThemedIcon* _tmp58_;
										GThemedIcon* _tmp59_;
										_tmp58_ = (GThemedIcon*) g_themed_icon_new ("lang-constructor");
										_tmp59_ = _tmp58_;
										code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp59_);
										_g_object_unref0 (_tmp59_);
										scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_CONSTRUCTOR);
									} else {
										ValaSymbol* _tmp60_;
										_tmp60_ = self->priv->_symbol;
										if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp60_, VALA_TYPE_METHOD)) {
											ValaSymbol* _tmp61_;
											gboolean _tmp62_;
											gboolean _tmp63_;
											_tmp61_ = self->priv->_symbol;
											_tmp62_ = vala_method_get_is_abstract (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, VALA_TYPE_METHOD, ValaMethod));
											_tmp63_ = _tmp62_;
											if (_tmp63_) {
												GThemedIcon* _tmp64_;
												GThemedIcon* _tmp65_;
												_tmp64_ = (GThemedIcon*) g_themed_icon_new ("lang-method-abstract");
												_tmp65_ = _tmp64_;
												code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp65_);
												_g_object_unref0 (_tmp65_);
											} else {
												ValaSymbol* _tmp66_;
												gboolean _tmp67_;
												gboolean _tmp68_;
												_tmp66_ = self->priv->_symbol;
												_tmp67_ = vala_method_get_is_virtual (G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, VALA_TYPE_METHOD, ValaMethod));
												_tmp68_ = _tmp67_;
												if (_tmp68_) {
													GThemedIcon* _tmp69_;
													GThemedIcon* _tmp70_;
													_tmp69_ = (GThemedIcon*) g_themed_icon_new ("lang-method-virtual");
													_tmp70_ = _tmp69_;
													code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp70_);
													_g_object_unref0 (_tmp70_);
												} else {
													ValaSymbol* _tmp71_;
													ValaMemberBinding _tmp72_;
													ValaMemberBinding _tmp73_;
													_tmp71_ = self->priv->_symbol;
													_tmp72_ = vala_method_get_binding (G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, VALA_TYPE_METHOD, ValaMethod));
													_tmp73_ = _tmp72_;
													if (_tmp73_ == VALA_MEMBER_BINDING_STATIC) {
														GThemedIcon* _tmp74_;
														GThemedIcon* _tmp75_;
														_tmp74_ = (GThemedIcon*) g_themed_icon_new ("lang-method-static");
														_tmp75_ = _tmp74_;
														code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp75_);
														_g_object_unref0 (_tmp75_);
													} else {
														GThemedIcon* _tmp76_;
														GThemedIcon* _tmp77_;
														_tmp76_ = (GThemedIcon*) g_themed_icon_new ("lang-method");
														_tmp77_ = _tmp76_;
														code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp77_);
														_g_object_unref0 (_tmp77_);
													}
												}
											}
											scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_METHOD);
										} else {
											ValaSymbol* _tmp78_;
											_tmp78_ = self->priv->_symbol;
											if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp78_, VALA_TYPE_NAMESPACE)) {
												GThemedIcon* _tmp79_;
												GThemedIcon* _tmp80_;
												_tmp79_ = (GThemedIcon*) g_themed_icon_new ("lang-namespace");
												_tmp80_ = _tmp79_;
												code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp80_);
												_g_object_unref0 (_tmp80_);
												scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, SCRATCH_SERVICES_SYMBOL_TYPE_NAMESPACE);
											} else {
												ValaSymbol* _tmp81_;
												_tmp81_ = self->priv->_symbol;
												if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp81_, VALA_TYPE_ERROR_DOMAIN)) {
													GThemedIcon* _tmp82_;
													GThemedIcon* _tmp83_;
													_tmp82_ = (GThemedIcon*) g_themed_icon_new ("lang-errordomain");
													_tmp83_ = _tmp82_;
													code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp83_);
													_g_object_unref0 (_tmp83_);
												} else {
													ValaSymbol* _tmp84_;
													_tmp84_ = self->priv->_symbol;
													if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp84_, VALA_TYPE_DELEGATE)) {
														GThemedIcon* _tmp85_;
														GThemedIcon* _tmp86_;
														_tmp85_ = (GThemedIcon*) g_themed_icon_new ("lang-delegate");
														_tmp86_ = _tmp85_;
														code_widgets_source_list_item_set_icon ((CodeWidgetsSourceListItem*) self, (GIcon*) _tmp86_);
														_g_object_unref0 (_tmp86_);
													} else {
														ValaSymbol* _tmp87_;
														const gchar* _tmp88_;
														const gchar* _tmp89_;
														_tmp87_ = self->priv->_symbol;
														_tmp88_ = vala_code_node_get_type_name ((ValaCodeNode*) _tmp87_);
														_tmp89_ = _tmp88_;
														g_warning ("ValaSymbolItem.vala:100: %s", _tmp89_);
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return obj;
}

static void
scratch_services_vala_symbol_item_class_init (ScratchServicesValaSymbolItemClass * klass,
                                              gpointer klass_data)
{
	scratch_services_vala_symbol_item_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ScratchServicesValaSymbolItem_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_scratch_services_vala_symbol_item_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_scratch_services_vala_symbol_item_set_property;
	G_OBJECT_CLASS (klass)->constructor = scratch_services_vala_symbol_item_constructor;
	G_OBJECT_CLASS (klass)->finalize = scratch_services_vala_symbol_item_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_PROPERTY, scratch_services_vala_symbol_item_properties[SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_PROPERTY] = vala_param_spec_code_node ("symbol", "symbol", "symbol", VALA_TYPE_SYMBOL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_TYPE_PROPERTY, scratch_services_vala_symbol_item_properties[SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_TYPE_PROPERTY] = g_param_spec_enum ("symbol-type", "symbol-type", "symbol-type", SCRATCH_SERVICES_TYPE_SYMBOL_TYPE, SCRATCH_SERVICES_SYMBOL_TYPE_OTHER, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
scratch_services_vala_symbol_item_code_widgets_source_list_sortable_interface_init (CodeWidgetsSourceListSortableIface * iface,
                                                                                    gpointer iface_data)
{
	scratch_services_vala_symbol_item_code_widgets_source_list_sortable_parent_iface = g_type_interface_peek_parent (iface);
	iface->compare = (gint (*) (CodeWidgetsSourceListSortable*, CodeWidgetsSourceListItem*, CodeWidgetsSourceListItem*)) scratch_services_vala_symbol_item_real_compare;
	iface->allow_dnd_sorting = (gboolean (*) (CodeWidgetsSourceListSortable*)) scratch_services_vala_symbol_item_real_allow_dnd_sorting;
}

static void
scratch_services_vala_symbol_item_scratch_services_symbol_item_interface_init (ScratchServicesSymbolItemIface * iface,
                                                                               gpointer iface_data)
{
	scratch_services_vala_symbol_item_scratch_services_symbol_item_parent_iface = g_type_interface_peek_parent (iface);
	iface->get_symbol_type = scratch_services_vala_symbol_item_real_get_symbol_type;
	iface->set_symbol_type = scratch_services_vala_symbol_item_real_set_symbol_type;
}

static void
scratch_services_vala_symbol_item_instance_init (ScratchServicesValaSymbolItem * self,
                                                 gpointer klass)
{
	self->priv = scratch_services_vala_symbol_item_get_instance_private (self);
	self->priv->_symbol_type = SCRATCH_SERVICES_SYMBOL_TYPE_OTHER;
}

static void
scratch_services_vala_symbol_item_finalize (GObject * obj)
{
	ScratchServicesValaSymbolItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM, ScratchServicesValaSymbolItem);
	g_debug ("ValaSymbolItem.vala:105: Destroy Vala symbol");
	_vala_code_node_unref0 (self->priv->_symbol);
	G_OBJECT_CLASS (scratch_services_vala_symbol_item_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
scratch_services_vala_symbol_item_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ScratchServicesValaSymbolItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) scratch_services_vala_symbol_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ScratchServicesValaSymbolItem), 0, (GInstanceInitFunc) scratch_services_vala_symbol_item_instance_init, NULL };
	static const GInterfaceInfo code_widgets_source_list_sortable_info = { (GInterfaceInitFunc) scratch_services_vala_symbol_item_code_widgets_source_list_sortable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	static const GInterfaceInfo scratch_services_symbol_item_info = { (GInterfaceInitFunc) scratch_services_vala_symbol_item_scratch_services_symbol_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType scratch_services_vala_symbol_item_type_id;
	scratch_services_vala_symbol_item_type_id = g_type_register_static (CODE_WIDGETS_SOURCE_LIST_TYPE_EXPANDABLE_ITEM, "ScratchServicesValaSymbolItem", &g_define_type_info, G_TYPE_FLAG_NONE);
	g_type_add_interface_static (scratch_services_vala_symbol_item_type_id, CODE_WIDGETS_TYPE_SOURCE_LIST_SORTABLE, &code_widgets_source_list_sortable_info);
	g_type_add_interface_static (scratch_services_vala_symbol_item_type_id, SCRATCH_SERVICES_TYPE_SYMBOL_ITEM, &scratch_services_symbol_item_info);
	ScratchServicesValaSymbolItem_private_offset = g_type_add_instance_private (scratch_services_vala_symbol_item_type_id, sizeof (ScratchServicesValaSymbolItemPrivate));
	return scratch_services_vala_symbol_item_type_id;
}

GType
scratch_services_vala_symbol_item_get_type (void)
{
	static gsize scratch_services_vala_symbol_item_type_id__once = 0;
	if (g_once_init_enter (&scratch_services_vala_symbol_item_type_id__once)) {
		GType scratch_services_vala_symbol_item_type_id;
		scratch_services_vala_symbol_item_type_id = scratch_services_vala_symbol_item_get_type_once ();
		g_once_init_leave (&scratch_services_vala_symbol_item_type_id__once, scratch_services_vala_symbol_item_type_id);
	}
	return scratch_services_vala_symbol_item_type_id__once;
}

static void
_vala_scratch_services_vala_symbol_item_get_property (GObject * object,
                                                      guint property_id,
                                                      GValue * value,
                                                      GParamSpec * pspec)
{
	ScratchServicesValaSymbolItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM, ScratchServicesValaSymbolItem);
	switch (property_id) {
		case SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_PROPERTY:
		vala_value_set_code_node (value, scratch_services_vala_symbol_item_get_symbol (self));
		break;
		case SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_TYPE_PROPERTY:
		g_value_set_enum (value, scratch_services_symbol_item_get_symbol_type ((ScratchServicesSymbolItem*) self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_scratch_services_vala_symbol_item_set_property (GObject * object,
                                                      guint property_id,
                                                      const GValue * value,
                                                      GParamSpec * pspec)
{
	ScratchServicesValaSymbolItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SCRATCH_SERVICES_TYPE_VALA_SYMBOL_ITEM, ScratchServicesValaSymbolItem);
	switch (property_id) {
		case SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_PROPERTY:
		scratch_services_vala_symbol_item_set_symbol (self, vala_value_get_code_node (value));
		break;
		case SCRATCH_SERVICES_VALA_SYMBOL_ITEM_SYMBOL_TYPE_PROPERTY:
		scratch_services_symbol_item_set_symbol_type ((ScratchServicesSymbolItem*) self, g_value_get_enum (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

