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

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <gee.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 SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))

typedef struct _SidebarEntry SidebarEntry;
typedef struct _SidebarEntryIface SidebarEntryIface;

#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))

typedef struct _SidebarTree SidebarTree;
typedef struct _SidebarTreeClass SidebarTreeClass;
enum  {
	SIDEBAR_ENTRY_SIDEBAR_TOOLTIP_CHANGED_SIGNAL,
	SIDEBAR_ENTRY_SIDEBAR_ICON_CHANGED_SIGNAL,
	SIDEBAR_ENTRY_NUM_SIGNALS
};
static guint sidebar_entry_signals[SIDEBAR_ENTRY_NUM_SIGNALS] = {0};

#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))

typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;

#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))

typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;

#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))

typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;

#define TYPE_PAGE (page_get_type ())
#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))

typedef struct _Page Page;
typedef struct _PageClass PageClass;
enum  {
	SIDEBAR_PAGE_REPRESENTATIVE_PAGE_CREATED_SIGNAL,
	SIDEBAR_PAGE_REPRESENTATIVE_DESTROYING_PAGE_SIGNAL,
	SIDEBAR_PAGE_REPRESENTATIVE_NUM_SIGNALS
};
static guint sidebar_page_representative_signals[SIDEBAR_PAGE_REPRESENTATIVE_NUM_SIGNALS] = {0};

#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))

typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
enum  {
	SIDEBAR_RENAMEABLE_ENTRY_SIDEBAR_NAME_CHANGED_SIGNAL,
	SIDEBAR_RENAMEABLE_ENTRY_NUM_SIGNALS
};
static guint sidebar_renameable_entry_signals[SIDEBAR_RENAMEABLE_ENTRY_NUM_SIGNALS] = {0};

#define SIDEBAR_TYPE_EMPHASIZABLE_ENTRY (sidebar_emphasizable_entry_get_type ())
#define SIDEBAR_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntry))
#define SIDEBAR_IS_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY))
#define SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntryIface))

typedef struct _SidebarEmphasizableEntry SidebarEmphasizableEntry;
typedef struct _SidebarEmphasizableEntryIface SidebarEmphasizableEntryIface;
enum  {
	SIDEBAR_EMPHASIZABLE_ENTRY_IS_EMPHASIZED_CHANGED_SIGNAL,
	SIDEBAR_EMPHASIZABLE_ENTRY_NUM_SIGNALS
};
static guint sidebar_emphasizable_entry_signals[SIDEBAR_EMPHASIZABLE_ENTRY_NUM_SIGNALS] = {0};

#define SIDEBAR_TYPE_DESTROYABLE_ENTRY (sidebar_destroyable_entry_get_type ())
#define SIDEBAR_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntry))
#define SIDEBAR_IS_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY))
#define SIDEBAR_DESTROYABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntryIface))

typedef struct _SidebarDestroyableEntry SidebarDestroyableEntry;
typedef struct _SidebarDestroyableEntryIface SidebarDestroyableEntryIface;

#define SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY (sidebar_internal_drop_target_entry_get_type ())
#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntry))
#define SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY))
#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntryIface))

typedef struct _SidebarInternalDropTargetEntry SidebarInternalDropTargetEntry;
typedef struct _SidebarInternalDropTargetEntryIface SidebarInternalDropTargetEntryIface;

#define TYPE_DATA_OBJECT (data_object_get_type ())
#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))

typedef struct _DataObject DataObject;
typedef struct _DataObjectClass DataObjectClass;

#define TYPE_DATA_SOURCE (data_source_get_type ())
#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))

typedef struct _DataSource DataSource;
typedef struct _DataSourceClass DataSourceClass;

#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))

typedef struct _ThumbnailSource ThumbnailSource;
typedef struct _ThumbnailSourceClass ThumbnailSourceClass;

#define TYPE_MEDIA_SOURCE (media_source_get_type ())
#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))

typedef struct _MediaSource MediaSource;
typedef struct _MediaSourceClass MediaSourceClass;

#define SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY (sidebar_internal_drag_source_entry_get_type ())
#define SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, SidebarInternalDragSourceEntry))
#define SIDEBAR_IS_INTERNAL_DRAG_SOURCE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY))
#define SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, SidebarInternalDragSourceEntryIface))

typedef struct _SidebarInternalDragSourceEntry SidebarInternalDragSourceEntry;
typedef struct _SidebarInternalDragSourceEntryIface SidebarInternalDragSourceEntryIface;

struct _SidebarEntryIface {
	GTypeInterface parent_iface;
	gchar* (*get_sidebar_name) (SidebarEntry* self);
	gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
	gchar* (*get_sidebar_icon) (SidebarEntry* self);
	gchar* (*to_string) (SidebarEntry* self);
	void (*grafted) (SidebarEntry* self, SidebarTree* tree);
	void (*pruned) (SidebarEntry* self, SidebarTree* tree);
};

struct _SidebarExpandableEntryIface {
	GTypeInterface parent_iface;
	gboolean (*expand_on_select) (SidebarExpandableEntry* self);
};

struct _SidebarSelectableEntryIface {
	GTypeInterface parent_iface;
};

struct _SidebarPageRepresentativeIface {
	GTypeInterface parent_iface;
	gboolean (*has_page) (SidebarPageRepresentative* self);
	Page* (*get_page) (SidebarPageRepresentative* self);
};

struct _SidebarRenameableEntryIface {
	GTypeInterface parent_iface;
	void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
	gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
};

struct _SidebarEmphasizableEntryIface {
	GTypeInterface parent_iface;
	gboolean (*is_emphasized) (SidebarEmphasizableEntry* self);
};

struct _SidebarDestroyableEntryIface {
	GTypeInterface parent_iface;
	void (*destroy_source) (SidebarDestroyableEntry* self);
};

struct _SidebarInternalDropTargetEntryIface {
	GTypeInterface parent_iface;
	gboolean (*internal_drop_received) (SidebarInternalDropTargetEntry* self, GeeList* sources);
	gboolean (*internal_drop_received_arbitrary) (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
};

struct _SidebarInternalDragSourceEntryIface {
	GTypeInterface parent_iface;
	void (*prepare_selection_data) (SidebarInternalDragSourceEntry* self, GtkSelectionData* data);
};

VALA_EXTERN GType sidebar_tree_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SidebarTree, g_object_unref)
VALA_EXTERN GType sidebar_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SidebarEntry, g_object_unref)
VALA_EXTERN gchar* sidebar_entry_get_sidebar_name (SidebarEntry* self);
VALA_EXTERN gchar* sidebar_entry_get_sidebar_tooltip (SidebarEntry* self);
VALA_EXTERN gchar* sidebar_entry_get_sidebar_icon (SidebarEntry* self);
VALA_EXTERN gchar* sidebar_entry_to_string (SidebarEntry* self);
VALA_EXTERN void sidebar_entry_grafted (SidebarEntry* self,
                            SidebarTree* tree);
static void sidebar_entry_real_grafted (SidebarEntry* self,
                                 SidebarTree* tree);
VALA_EXTERN void sidebar_entry_pruned (SidebarEntry* self,
                           SidebarTree* tree);
static void sidebar_entry_real_pruned (SidebarEntry* self,
                                SidebarTree* tree);
static GType sidebar_entry_get_type_once (void);
VALA_EXTERN GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gboolean sidebar_expandable_entry_expand_on_select (SidebarExpandableEntry* self);
static GType sidebar_expandable_entry_get_type_once (void);
VALA_EXTERN GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST ;
static GType sidebar_selectable_entry_get_type_once (void);
VALA_EXTERN GType page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Page, g_object_unref)
VALA_EXTERN GType sidebar_page_representative_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gboolean sidebar_page_representative_has_page (SidebarPageRepresentative* self);
VALA_EXTERN Page* sidebar_page_representative_get_page (SidebarPageRepresentative* self);
static GType sidebar_page_representative_get_type_once (void);
VALA_EXTERN GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void sidebar_renameable_entry_rename (SidebarRenameableEntry* self,
                                      const gchar* new_name);
VALA_EXTERN gboolean sidebar_renameable_entry_is_user_renameable (SidebarRenameableEntry* self);
static GType sidebar_renameable_entry_get_type_once (void);
VALA_EXTERN GType sidebar_emphasizable_entry_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gboolean sidebar_emphasizable_entry_is_emphasized (SidebarEmphasizableEntry* self);
static GType sidebar_emphasizable_entry_get_type_once (void);
VALA_EXTERN GType sidebar_destroyable_entry_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void sidebar_destroyable_entry_destroy_source (SidebarDestroyableEntry* self);
static GType sidebar_destroyable_entry_get_type_once (void);
VALA_EXTERN GType data_object_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DataObject, g_object_unref)
VALA_EXTERN GType data_source_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DataSource, g_object_unref)
VALA_EXTERN GType thumbnail_source_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ThumbnailSource, g_object_unref)
VALA_EXTERN GType media_source_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MediaSource, g_object_unref)
VALA_EXTERN GType sidebar_internal_drop_target_entry_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gboolean sidebar_internal_drop_target_entry_internal_drop_received (SidebarInternalDropTargetEntry* self,
                                                                    GeeList* sources);
VALA_EXTERN gboolean sidebar_internal_drop_target_entry_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* self,
                                                                              GtkSelectionData* data);
static GType sidebar_internal_drop_target_entry_get_type_once (void);
VALA_EXTERN GType sidebar_internal_drag_source_entry_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void sidebar_internal_drag_source_entry_prepare_selection_data (SidebarInternalDragSourceEntry* self,
                                                                GtkSelectionData* data);
static GType sidebar_internal_drag_source_entry_get_type_once (void);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

gchar*
sidebar_entry_get_sidebar_name (SidebarEntry* self)
{
	SidebarEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), NULL);
	_iface_ = SIDEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_sidebar_name) {
		return _iface_->get_sidebar_name (self);
	}
	return NULL;
}

gchar*
sidebar_entry_get_sidebar_tooltip (SidebarEntry* self)
{
	SidebarEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), NULL);
	_iface_ = SIDEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_sidebar_tooltip) {
		return _iface_->get_sidebar_tooltip (self);
	}
	return NULL;
}

gchar*
sidebar_entry_get_sidebar_icon (SidebarEntry* self)
{
	SidebarEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), NULL);
	_iface_ = SIDEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_sidebar_icon) {
		return _iface_->get_sidebar_icon (self);
	}
	return NULL;
}

gchar*
sidebar_entry_to_string (SidebarEntry* self)
{
	SidebarEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), NULL);
	_iface_ = SIDEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->to_string) {
		return _iface_->to_string (self);
	}
	return NULL;
}

static void
sidebar_entry_real_grafted (SidebarEntry* self,
                            SidebarTree* tree)
{
	g_return_if_fail (SIDEBAR_IS_TREE (tree));
}

void
sidebar_entry_grafted (SidebarEntry* self,
                       SidebarTree* tree)
{
	SidebarEntryIface* _iface_;
	g_return_if_fail (SIDEBAR_IS_ENTRY (self));
	_iface_ = SIDEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->grafted) {
		_iface_->grafted (self, tree);
	}
}

static void
sidebar_entry_real_pruned (SidebarEntry* self,
                           SidebarTree* tree)
{
	g_return_if_fail (SIDEBAR_IS_TREE (tree));
}

void
sidebar_entry_pruned (SidebarEntry* self,
                      SidebarTree* tree)
{
	SidebarEntryIface* _iface_;
	g_return_if_fail (SIDEBAR_IS_ENTRY (self));
	_iface_ = SIDEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->pruned) {
		_iface_->pruned (self, tree);
	}
}

static void
sidebar_entry_default_init (SidebarEntryIface * iface,
                            gpointer iface_data)
{
	sidebar_entry_signals[SIDEBAR_ENTRY_SIDEBAR_TOOLTIP_CHANGED_SIGNAL] = g_signal_new ("sidebar-tooltip-changed", SIDEBAR_TYPE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	sidebar_entry_signals[SIDEBAR_ENTRY_SIDEBAR_ICON_CHANGED_SIGNAL] = g_signal_new ("sidebar-icon-changed", SIDEBAR_TYPE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	iface->grafted = sidebar_entry_real_grafted;
	iface->pruned = sidebar_entry_real_pruned;
}

static GType
sidebar_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_entry_type_id;
	sidebar_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_entry_type_id, G_TYPE_OBJECT);
	return sidebar_entry_type_id;
}

GType
sidebar_entry_get_type (void)
{
	static volatile gsize sidebar_entry_type_id__once = 0;
	if (g_once_init_enter (&sidebar_entry_type_id__once)) {
		GType sidebar_entry_type_id;
		sidebar_entry_type_id = sidebar_entry_get_type_once ();
		g_once_init_leave (&sidebar_entry_type_id__once, sidebar_entry_type_id);
	}
	return sidebar_entry_type_id__once;
}

gboolean
sidebar_expandable_entry_expand_on_select (SidebarExpandableEntry* self)
{
	SidebarExpandableEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_EXPANDABLE_ENTRY (self), FALSE);
	_iface_ = SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE (self);
	if (_iface_->expand_on_select) {
		return _iface_->expand_on_select (self);
	}
	return FALSE;
}

static void
sidebar_expandable_entry_default_init (SidebarExpandableEntryIface * iface,
                                       gpointer iface_data)
{
}

static GType
sidebar_expandable_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarExpandableEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_expandable_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_expandable_entry_type_id;
	sidebar_expandable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarExpandableEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_expandable_entry_type_id, SIDEBAR_TYPE_ENTRY);
	return sidebar_expandable_entry_type_id;
}

GType
sidebar_expandable_entry_get_type (void)
{
	static volatile gsize sidebar_expandable_entry_type_id__once = 0;
	if (g_once_init_enter (&sidebar_expandable_entry_type_id__once)) {
		GType sidebar_expandable_entry_type_id;
		sidebar_expandable_entry_type_id = sidebar_expandable_entry_get_type_once ();
		g_once_init_leave (&sidebar_expandable_entry_type_id__once, sidebar_expandable_entry_type_id);
	}
	return sidebar_expandable_entry_type_id__once;
}

static void
sidebar_selectable_entry_default_init (SidebarSelectableEntryIface * iface,
                                       gpointer iface_data)
{
}

static GType
sidebar_selectable_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarSelectableEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_selectable_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_selectable_entry_type_id;
	sidebar_selectable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarSelectableEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_selectable_entry_type_id, SIDEBAR_TYPE_ENTRY);
	return sidebar_selectable_entry_type_id;
}

GType
sidebar_selectable_entry_get_type (void)
{
	static volatile gsize sidebar_selectable_entry_type_id__once = 0;
	if (g_once_init_enter (&sidebar_selectable_entry_type_id__once)) {
		GType sidebar_selectable_entry_type_id;
		sidebar_selectable_entry_type_id = sidebar_selectable_entry_get_type_once ();
		g_once_init_leave (&sidebar_selectable_entry_type_id__once, sidebar_selectable_entry_type_id);
	}
	return sidebar_selectable_entry_type_id__once;
}

gboolean
sidebar_page_representative_has_page (SidebarPageRepresentative* self)
{
	SidebarPageRepresentativeIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_PAGE_REPRESENTATIVE (self), FALSE);
	_iface_ = SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE (self);
	if (_iface_->has_page) {
		return _iface_->has_page (self);
	}
	return FALSE;
}

Page*
sidebar_page_representative_get_page (SidebarPageRepresentative* self)
{
	SidebarPageRepresentativeIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_PAGE_REPRESENTATIVE (self), NULL);
	_iface_ = SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE (self);
	if (_iface_->get_page) {
		return _iface_->get_page (self);
	}
	return NULL;
}

static void
sidebar_page_representative_default_init (SidebarPageRepresentativeIface * iface,
                                          gpointer iface_data)
{
	sidebar_page_representative_signals[SIDEBAR_PAGE_REPRESENTATIVE_PAGE_CREATED_SIGNAL] = g_signal_new ("page-created", SIDEBAR_TYPE_PAGE_REPRESENTATIVE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_PAGE);
	sidebar_page_representative_signals[SIDEBAR_PAGE_REPRESENTATIVE_DESTROYING_PAGE_SIGNAL] = g_signal_new ("destroying-page", SIDEBAR_TYPE_PAGE_REPRESENTATIVE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_PAGE);
}

static GType
sidebar_page_representative_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarPageRepresentativeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_page_representative_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_page_representative_type_id;
	sidebar_page_representative_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarPageRepresentative", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_page_representative_type_id, SIDEBAR_TYPE_ENTRY);
	g_type_interface_add_prerequisite (sidebar_page_representative_type_id, SIDEBAR_TYPE_SELECTABLE_ENTRY);
	return sidebar_page_representative_type_id;
}

GType
sidebar_page_representative_get_type (void)
{
	static volatile gsize sidebar_page_representative_type_id__once = 0;
	if (g_once_init_enter (&sidebar_page_representative_type_id__once)) {
		GType sidebar_page_representative_type_id;
		sidebar_page_representative_type_id = sidebar_page_representative_get_type_once ();
		g_once_init_leave (&sidebar_page_representative_type_id__once, sidebar_page_representative_type_id);
	}
	return sidebar_page_representative_type_id__once;
}

void
sidebar_renameable_entry_rename (SidebarRenameableEntry* self,
                                 const gchar* new_name)
{
	SidebarRenameableEntryIface* _iface_;
	g_return_if_fail (SIDEBAR_IS_RENAMEABLE_ENTRY (self));
	_iface_ = SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE (self);
	if (_iface_->rename) {
		_iface_->rename (self, new_name);
	}
}

gboolean
sidebar_renameable_entry_is_user_renameable (SidebarRenameableEntry* self)
{
	SidebarRenameableEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_RENAMEABLE_ENTRY (self), FALSE);
	_iface_ = SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE (self);
	if (_iface_->is_user_renameable) {
		return _iface_->is_user_renameable (self);
	}
	return FALSE;
}

static void
sidebar_renameable_entry_default_init (SidebarRenameableEntryIface * iface,
                                       gpointer iface_data)
{
	sidebar_renameable_entry_signals[SIDEBAR_RENAMEABLE_ENTRY_SIDEBAR_NAME_CHANGED_SIGNAL] = g_signal_new ("sidebar-name-changed", SIDEBAR_TYPE_RENAMEABLE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
}

static GType
sidebar_renameable_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarRenameableEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_renameable_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_renameable_entry_type_id;
	sidebar_renameable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarRenameableEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_renameable_entry_type_id, SIDEBAR_TYPE_ENTRY);
	return sidebar_renameable_entry_type_id;
}

GType
sidebar_renameable_entry_get_type (void)
{
	static volatile gsize sidebar_renameable_entry_type_id__once = 0;
	if (g_once_init_enter (&sidebar_renameable_entry_type_id__once)) {
		GType sidebar_renameable_entry_type_id;
		sidebar_renameable_entry_type_id = sidebar_renameable_entry_get_type_once ();
		g_once_init_leave (&sidebar_renameable_entry_type_id__once, sidebar_renameable_entry_type_id);
	}
	return sidebar_renameable_entry_type_id__once;
}

gboolean
sidebar_emphasizable_entry_is_emphasized (SidebarEmphasizableEntry* self)
{
	SidebarEmphasizableEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_EMPHASIZABLE_ENTRY (self), FALSE);
	_iface_ = SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE (self);
	if (_iface_->is_emphasized) {
		return _iface_->is_emphasized (self);
	}
	return FALSE;
}

static void
sidebar_emphasizable_entry_default_init (SidebarEmphasizableEntryIface * iface,
                                         gpointer iface_data)
{
	sidebar_emphasizable_entry_signals[SIDEBAR_EMPHASIZABLE_ENTRY_IS_EMPHASIZED_CHANGED_SIGNAL] = g_signal_new ("is-emphasized-changed", SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
}

static GType
sidebar_emphasizable_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarEmphasizableEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_emphasizable_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_emphasizable_entry_type_id;
	sidebar_emphasizable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarEmphasizableEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_emphasizable_entry_type_id, SIDEBAR_TYPE_ENTRY);
	return sidebar_emphasizable_entry_type_id;
}

GType
sidebar_emphasizable_entry_get_type (void)
{
	static volatile gsize sidebar_emphasizable_entry_type_id__once = 0;
	if (g_once_init_enter (&sidebar_emphasizable_entry_type_id__once)) {
		GType sidebar_emphasizable_entry_type_id;
		sidebar_emphasizable_entry_type_id = sidebar_emphasizable_entry_get_type_once ();
		g_once_init_leave (&sidebar_emphasizable_entry_type_id__once, sidebar_emphasizable_entry_type_id);
	}
	return sidebar_emphasizable_entry_type_id__once;
}

void
sidebar_destroyable_entry_destroy_source (SidebarDestroyableEntry* self)
{
	SidebarDestroyableEntryIface* _iface_;
	g_return_if_fail (SIDEBAR_IS_DESTROYABLE_ENTRY (self));
	_iface_ = SIDEBAR_DESTROYABLE_ENTRY_GET_INTERFACE (self);
	if (_iface_->destroy_source) {
		_iface_->destroy_source (self);
	}
}

static void
sidebar_destroyable_entry_default_init (SidebarDestroyableEntryIface * iface,
                                        gpointer iface_data)
{
}

static GType
sidebar_destroyable_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarDestroyableEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_destroyable_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_destroyable_entry_type_id;
	sidebar_destroyable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarDestroyableEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_destroyable_entry_type_id, SIDEBAR_TYPE_ENTRY);
	return sidebar_destroyable_entry_type_id;
}

GType
sidebar_destroyable_entry_get_type (void)
{
	static volatile gsize sidebar_destroyable_entry_type_id__once = 0;
	if (g_once_init_enter (&sidebar_destroyable_entry_type_id__once)) {
		GType sidebar_destroyable_entry_type_id;
		sidebar_destroyable_entry_type_id = sidebar_destroyable_entry_get_type_once ();
		g_once_init_leave (&sidebar_destroyable_entry_type_id__once, sidebar_destroyable_entry_type_id);
	}
	return sidebar_destroyable_entry_type_id__once;
}

gboolean
sidebar_internal_drop_target_entry_internal_drop_received (SidebarInternalDropTargetEntry* self,
                                                           GeeList* sources)
{
	SidebarInternalDropTargetEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY (self), FALSE);
	_iface_ = SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE (self);
	if (_iface_->internal_drop_received) {
		return _iface_->internal_drop_received (self, sources);
	}
	return FALSE;
}

gboolean
sidebar_internal_drop_target_entry_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* self,
                                                                     GtkSelectionData* data)
{
	SidebarInternalDropTargetEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY (self), FALSE);
	_iface_ = SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE (self);
	if (_iface_->internal_drop_received_arbitrary) {
		return _iface_->internal_drop_received_arbitrary (self, data);
	}
	return FALSE;
}

static void
sidebar_internal_drop_target_entry_default_init (SidebarInternalDropTargetEntryIface * iface,
                                                 gpointer iface_data)
{
}

static GType
sidebar_internal_drop_target_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarInternalDropTargetEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_internal_drop_target_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_internal_drop_target_entry_type_id;
	sidebar_internal_drop_target_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarInternalDropTargetEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_internal_drop_target_entry_type_id, SIDEBAR_TYPE_ENTRY);
	return sidebar_internal_drop_target_entry_type_id;
}

GType
sidebar_internal_drop_target_entry_get_type (void)
{
	static volatile gsize sidebar_internal_drop_target_entry_type_id__once = 0;
	if (g_once_init_enter (&sidebar_internal_drop_target_entry_type_id__once)) {
		GType sidebar_internal_drop_target_entry_type_id;
		sidebar_internal_drop_target_entry_type_id = sidebar_internal_drop_target_entry_get_type_once ();
		g_once_init_leave (&sidebar_internal_drop_target_entry_type_id__once, sidebar_internal_drop_target_entry_type_id);
	}
	return sidebar_internal_drop_target_entry_type_id__once;
}

void
sidebar_internal_drag_source_entry_prepare_selection_data (SidebarInternalDragSourceEntry* self,
                                                           GtkSelectionData* data)
{
	SidebarInternalDragSourceEntryIface* _iface_;
	g_return_if_fail (SIDEBAR_IS_INTERNAL_DRAG_SOURCE_ENTRY (self));
	_iface_ = SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY_GET_INTERFACE (self);
	if (_iface_->prepare_selection_data) {
		_iface_->prepare_selection_data (self, data);
	}
}

static void
sidebar_internal_drag_source_entry_default_init (SidebarInternalDragSourceEntryIface * iface,
                                                 gpointer iface_data)
{
}

static GType
sidebar_internal_drag_source_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SidebarInternalDragSourceEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_internal_drag_source_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType sidebar_internal_drag_source_entry_type_id;
	sidebar_internal_drag_source_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarInternalDragSourceEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (sidebar_internal_drag_source_entry_type_id, SIDEBAR_TYPE_ENTRY);
	return sidebar_internal_drag_source_entry_type_id;
}

GType
sidebar_internal_drag_source_entry_get_type (void)
{
	static volatile gsize sidebar_internal_drag_source_entry_type_id__once = 0;
	if (g_once_init_enter (&sidebar_internal_drag_source_entry_type_id__once)) {
		GType sidebar_internal_drag_source_entry_type_id;
		sidebar_internal_drag_source_entry_type_id = sidebar_internal_drag_source_entry_get_type_once ();
		g_once_init_leave (&sidebar_internal_drag_source_entry_type_id__once, sidebar_internal_drag_source_entry_type_id);
	}
	return sidebar_internal_drag_source_entry_type_id__once;
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

