/* sidebar-entry.c generated by valac 0.56.3, the Vala compiler
 * generated from sidebar-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 "geary-client-43.0.h"
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gdk/gdk.h>
#include <gtk/gtk.h>

enum  {
	SIDEBAR_ENTRY_ENTRY_CHANGED_SIGNAL,
	SIDEBAR_ENTRY_NUM_SIGNALS
};
static guint sidebar_entry_signals[SIDEBAR_ENTRY_NUM_SIGNALS] = {0};

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);
static GType sidebar_expandable_entry_get_type_once (void);
static GType sidebar_selectable_entry_get_type_once (void);
static GType sidebar_renameable_entry_get_type_once (void);
static GType sidebar_emphasizable_entry_get_type_once (void);
static GType sidebar_destroyable_entry_get_type_once (void);
static GType sidebar_internal_drop_target_entry_get_type_once (void);
static GType sidebar_internal_drag_source_entry_get_type_once (void);

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;
}

gint
sidebar_entry_get_count (SidebarEntry* self)
{
	SidebarEntryIface* _iface_;
	g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), 0);
	_iface_ = SIDEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_count) {
		return _iface_->get_count (self);
	}
	return -1;
}

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_ENTRY_CHANGED_SIGNAL] = g_signal_new ("entry-changed", SIDEBAR_TYPE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	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;
}

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)
{
}

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)
{
}

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,
                                                           SidebarTree* parent,
                                                           GdkDragContext* context,
                                                           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) {
		return _iface_->internal_drop_received (self, parent, context, 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;
}

