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

#include "libdino.h"
#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include "xmpp-vala.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

enum  {
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_0_PROPERTY,
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_ID_PROPERTY,
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_PRIORITY_PROPERTY,
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_NAME_PROPERTY,
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_LABEL_TOP_PADDING_PROPERTY,
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_NUM_PROPERTIES
};
static GParamSpec* dino_plugins_account_settings_entry_properties[DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_NUM_PROPERTIES];
enum  {
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_ACTIVATED_SIGNAL,
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_NUM_SIGNALS
};
static guint dino_plugins_account_settings_entry_signals[DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_NUM_SIGNALS] = {0};
enum  {
	DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_0_PROPERTY,
	DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_ID_PROPERTY,
	DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_PRIORITY_PROPERTY,
	DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_NUM_PROPERTIES
};
static GParamSpec* dino_plugins_encryption_preferences_entry_properties[DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_NUM_PROPERTIES];
enum  {
	DINO_PLUGINS_CONTACT_DETAILS_0_PROPERTY,
	DINO_PLUGINS_CONTACT_DETAILS_NUM_PROPERTIES
};
static GParamSpec* dino_plugins_contact_details_properties[DINO_PLUGINS_CONTACT_DETAILS_NUM_PROPERTIES];
enum  {
	DINO_PLUGINS_CONTACT_DETAILS_SAVE_SIGNAL,
	DINO_PLUGINS_CONTACT_DETAILS_ADD_SIGNAL,
	DINO_PLUGINS_CONTACT_DETAILS_NUM_SIGNALS
};
static guint dino_plugins_contact_details_signals[DINO_PLUGINS_CONTACT_DETAILS_NUM_SIGNALS] = {0};
enum  {
	DINO_PLUGINS_VIDEO_CALL_PLUGIN_DEVICES_CHANGED_SIGNAL,
	DINO_PLUGINS_VIDEO_CALL_PLUGIN_NUM_SIGNALS
};
static guint dino_plugins_video_call_plugin_signals[DINO_PLUGINS_VIDEO_CALL_PLUGIN_NUM_SIGNALS] = {0};
enum  {
	DINO_PLUGINS_VIDEO_CALL_WIDGET_RESOLUTION_CHANGED_SIGNAL,
	DINO_PLUGINS_VIDEO_CALL_WIDGET_NUM_SIGNALS
};
static guint dino_plugins_video_call_widget_signals[DINO_PLUGINS_VIDEO_CALL_WIDGET_NUM_SIGNALS] = {0};
enum  {
	DINO_PLUGINS_META_CONVERSATION_ITEM_0_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_POPULATOR_ID_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_JID_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_TIME_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_SECONDARY_SORT_INDICATOR_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_ENCRYPTION_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_MARK_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_CAN_MERGE_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_AVATAR_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_HEADER_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_IN_EDIT_MODE_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_ITEM_NUM_PROPERTIES
};
static GParamSpec* dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
#define _xmpp_jid_unref0(var) ((var == NULL) ? NULL : (var = (xmpp_jid_unref (var), NULL)))
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
enum  {
	DINO_PLUGINS_MESSAGE_ACTION_0_PROPERTY,
	DINO_PLUGINS_MESSAGE_ACTION_NUM_PROPERTIES
};
static GParamSpec* dino_plugins_message_action_properties[DINO_PLUGINS_MESSAGE_ACTION_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
enum  {
	DINO_PLUGINS_META_CONVERSATION_NOTIFICATION_0_PROPERTY,
	DINO_PLUGINS_META_CONVERSATION_NOTIFICATION_NUM_PROPERTIES
};
static GParamSpec* dino_plugins_meta_conversation_notification_properties[DINO_PLUGINS_META_CONVERSATION_NOTIFICATION_NUM_PROPERTIES];
enum  {
	DINO_PLUGINS_CONVERSATION_ITEM_COLLECTION_INSERTED_ITEM_SIGNAL,
	DINO_PLUGINS_CONVERSATION_ITEM_COLLECTION_REMOVED_ITEM_SIGNAL,
	DINO_PLUGINS_CONVERSATION_ITEM_COLLECTION_NUM_SIGNALS
};
static guint dino_plugins_conversation_item_collection_signals[DINO_PLUGINS_CONVERSATION_ITEM_COLLECTION_NUM_SIGNALS] = {0};
enum  {
	DINO_PLUGINS_NOTIFICATION_COLLECTION_ADD_META_NOTIFICATION_SIGNAL,
	DINO_PLUGINS_NOTIFICATION_COLLECTION_REMOVE_META_NOTIFICATION_SIGNAL,
	DINO_PLUGINS_NOTIFICATION_COLLECTION_NUM_SIGNALS
};
static guint dino_plugins_notification_collection_signals[DINO_PLUGINS_NOTIFICATION_COLLECTION_NUM_SIGNALS] = {0};
enum  {
	DINO_PLUGINS_INPUT_FIELD_STATUS_0_PROPERTY,
	DINO_PLUGINS_INPUT_FIELD_STATUS_NUM_PROPERTIES
};
static GParamSpec* dino_plugins_input_field_status_properties[DINO_PLUGINS_INPUT_FIELD_STATUS_NUM_PROPERTIES];

struct _DinoPluginsMetaConversationItemPrivate {
	gchar* _populator_id;
	XmppJid* _jid;
	GDateTime* _time;
	gint _secondary_sort_indicator;
	DinoEntitiesEncryption _encryption;
	DinoEntitiesMessageMarked _mark;
	gboolean _can_merge;
	gboolean _requires_avatar;
	gboolean _requires_header;
	gboolean _in_edit_mode;
};

static gpointer dino_plugins_account_settings_entry_parent_class = NULL;
static gpointer dino_plugins_encryption_preferences_entry_parent_class = NULL;
static gpointer dino_plugins_contact_details_parent_class = NULL;
static gint DinoPluginsMetaConversationItem_private_offset;
static gpointer dino_plugins_meta_conversation_item_parent_class = NULL;
static gpointer dino_plugins_message_action_parent_class = NULL;
static gpointer dino_plugins_meta_conversation_notification_parent_class = NULL;
static gpointer dino_plugins_input_field_status_parent_class = NULL;

static GType dino_plugins_root_interface_get_type_once (void);
static GType dino_plugins_encryption_list_entry_get_type_once (void);
static GType dino_plugins_call_encryption_entry_get_type_once (void);
static GType dino_plugins_call_encryption_widget_get_type_once (void);
static void dino_plugins_account_settings_entry_real_deactivate (DinoPluginsAccountSettingsEntry* self);
static void dino_plugins_account_settings_entry_real_set_account (DinoPluginsAccountSettingsEntry* self,
                                                           DinoEntitiesAccount* account);
static GObject* dino_plugins_account_settings_entry_real_get_widget (DinoPluginsAccountSettingsEntry* self,
                                                              DinoPluginsWidgetType type);
static GType dino_plugins_account_settings_entry_get_type_once (void);
static void _vala_dino_plugins_account_settings_entry_get_property (GObject * object,
                                                             guint property_id,
                                                             GValue * value,
                                                             GParamSpec * pspec);
static GObject* dino_plugins_encryption_preferences_entry_real_get_widget (DinoPluginsEncryptionPreferencesEntry* self,
                                                                    DinoEntitiesAccount* account,
                                                                    DinoPluginsWidgetType type);
static GType dino_plugins_encryption_preferences_entry_get_type_once (void);
static void _vala_dino_plugins_encryption_preferences_entry_get_property (GObject * object,
                                                                   guint property_id,
                                                                   GValue * value,
                                                                   GParamSpec * pspec);
static GType dino_plugins_contact_details_provider_get_type_once (void);
static void g_cclosure_user_marshal_VOID__STRING_STRING_STRING_OBJECT (GClosure * closure,
                                                                GValue * return_value,
                                                                guint n_param_values,
                                                                const GValue * param_values,
                                                                gpointer invocation_hint,
                                                                gpointer marshal_data);
static GType dino_plugins_contact_details_get_type_once (void);
static GType dino_plugins_text_command_get_type_once (void);
static GType dino_plugins_conversation_titlebar_entry_get_type_once (void);
static GType dino_plugins_conversation_item_populator_get_type_once (void);
static void dino_plugins_conversation_addition_populator_real_populate_timespan (DinoPluginsConversationAdditionPopulator* self,
                                                                          DinoEntitiesConversation* conversation,
                                                                          GDateTime* from,
                                                                          GDateTime* to);
static GType dino_plugins_conversation_addition_populator_get_type_once (void);
static void g_cclosure_user_marshal_VOID__STRING_BOOLEAN (GClosure * closure,
                                                   GValue * return_value,
                                                   guint n_param_values,
                                                   const GValue * param_values,
                                                   gpointer invocation_hint,
                                                   gpointer marshal_data);
static GType dino_plugins_video_call_plugin_get_type_once (void);
static void g_cclosure_user_marshal_VOID__UINT_UINT (GClosure * closure,
                                              GValue * return_value,
                                              guint n_param_values,
                                              const GValue * param_values,
                                              gpointer invocation_hint,
                                              gpointer marshal_data);
static GType dino_plugins_video_call_widget_get_type_once (void);
static GType dino_plugins_media_device_get_type_once (void);
static GType dino_plugins_notification_populator_get_type_once (void);
static GObject* dino_plugins_meta_conversation_item_real_get_widget (DinoPluginsMetaConversationItem* self,
                                                              DinoPluginsConversationItemWidgetInterface* outer,
                                                              DinoPluginsWidgetType type);
static GeeList* dino_plugins_meta_conversation_item_real_get_item_actions (DinoPluginsMetaConversationItem* self,
                                                                    DinoPluginsWidgetType type);
static void dino_plugins_meta_conversation_item_finalize (GObject * obj);
static GType dino_plugins_meta_conversation_item_get_type_once (void);
static void _vala_dino_plugins_meta_conversation_item_get_property (GObject * object,
                                                             guint property_id,
                                                             GValue * value,
                                                             GParamSpec * pspec);
static void _vala_dino_plugins_meta_conversation_item_set_property (GObject * object,
                                                             guint property_id,
                                                             const GValue * value,
                                                             GParamSpec * pspec);
static GType dino_plugins_conversation_item_widget_interface_get_type_once (void);
static void dino_plugins_message_action_finalize (GObject * obj);
static GType dino_plugins_message_action_get_type_once (void);
static GObject* dino_plugins_meta_conversation_notification_real_get_widget (DinoPluginsMetaConversationNotification* self,
                                                                      DinoPluginsWidgetType type);
static GType dino_plugins_meta_conversation_notification_get_type_once (void);
static GType dino_plugins_conversation_item_collection_get_type_once (void);
static GType dino_plugins_notification_collection_get_type_once (void);
static void dino_plugins_input_field_status_finalize (GObject * obj);
static GType dino_plugins_input_field_status_get_type_once (void);

static GType
dino_plugins_priority_get_type_once (void)
{
	static const GEnumValue values[] = {{DINO_PLUGINS_PRIORITY_LOWEST, "DINO_PLUGINS_PRIORITY_LOWEST", "lowest"}, {DINO_PLUGINS_PRIORITY_LOWER, "DINO_PLUGINS_PRIORITY_LOWER", "lower"}, {DINO_PLUGINS_PRIORITY_DEFAULT, "DINO_PLUGINS_PRIORITY_DEFAULT", "default"}, {DINO_PLUGINS_PRIORITY_HIGHER, "DINO_PLUGINS_PRIORITY_HIGHER", "higher"}, {DINO_PLUGINS_PRIORITY_HIGHEST, "DINO_PLUGINS_PRIORITY_HIGHEST", "highest"}, {0, NULL, NULL}};
	GType dino_plugins_priority_type_id;
	dino_plugins_priority_type_id = g_enum_register_static ("DinoPluginsPriority", values);
	return dino_plugins_priority_type_id;
}

GType
dino_plugins_priority_get_type (void)
{
	static volatile gsize dino_plugins_priority_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_priority_type_id__once)) {
		GType dino_plugins_priority_type_id;
		dino_plugins_priority_type_id = dino_plugins_priority_get_type_once ();
		g_once_init_leave (&dino_plugins_priority_type_id__once, dino_plugins_priority_type_id);
	}
	return dino_plugins_priority_type_id__once;
}

static GType
dino_plugins_widget_type_get_type_once (void)
{
	static const GEnumValue values[] = {{DINO_PLUGINS_WIDGET_TYPE_GTK3, "DINO_PLUGINS_WIDGET_TYPE_GTK3", "gtk3"}, {DINO_PLUGINS_WIDGET_TYPE_GTK4, "DINO_PLUGINS_WIDGET_TYPE_GTK4", "gtk4"}, {0, NULL, NULL}};
	GType dino_plugins_widget_type_type_id;
	dino_plugins_widget_type_type_id = g_enum_register_static ("DinoPluginsWidgetType", values);
	return dino_plugins_widget_type_type_id;
}

GType
dino_plugins_widget_type_get_type (void)
{
	static volatile gsize dino_plugins_widget_type_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_widget_type_type_id__once)) {
		GType dino_plugins_widget_type_type_id;
		dino_plugins_widget_type_type_id = dino_plugins_widget_type_get_type_once ();
		g_once_init_leave (&dino_plugins_widget_type_type_id__once, dino_plugins_widget_type_type_id);
	}
	return dino_plugins_widget_type_type_id__once;
}

void
dino_plugins_root_interface_registered (DinoPluginsRootInterface* self,
                                        DinoApplication* app)
{
	DinoPluginsRootInterfaceIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_ROOT_INTERFACE_GET_INTERFACE (self);
	if (_iface_->registered) {
		_iface_->registered (self, app);
	}
}

void
dino_plugins_root_interface_shutdown (DinoPluginsRootInterface* self)
{
	DinoPluginsRootInterfaceIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_ROOT_INTERFACE_GET_INTERFACE (self);
	if (_iface_->shutdown) {
		_iface_->shutdown (self);
	}
}

static void
dino_plugins_root_interface_default_init (DinoPluginsRootInterfaceIface * iface,
                                          gpointer iface_data)
{
}

static GType
dino_plugins_root_interface_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsRootInterfaceIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_root_interface_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_root_interface_type_id;
	dino_plugins_root_interface_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsRootInterface", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_root_interface_type_id, G_TYPE_OBJECT);
	return dino_plugins_root_interface_type_id;
}

GType
dino_plugins_root_interface_get_type (void)
{
	static volatile gsize dino_plugins_root_interface_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_root_interface_type_id__once)) {
		GType dino_plugins_root_interface_type_id;
		dino_plugins_root_interface_type_id = dino_plugins_root_interface_get_type_once ();
		g_once_init_leave (&dino_plugins_root_interface_type_id__once, dino_plugins_root_interface_type_id);
	}
	return dino_plugins_root_interface_type_id__once;
}

void
dino_plugins_encryption_list_entry_encryption_activated (DinoPluginsEncryptionListEntry* self,
                                                         DinoEntitiesConversation* conversation,
                                                         DinoPluginsSetInputFieldStatus callback,
                                                         gpointer callback_target)
{
	DinoPluginsEncryptionListEntryIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_ENCRYPTION_LIST_ENTRY_GET_INTERFACE (self);
	if (_iface_->encryption_activated) {
		_iface_->encryption_activated (self, conversation, callback, callback_target);
	}
}

GObject*
dino_plugins_encryption_list_entry_get_encryption_icon (DinoPluginsEncryptionListEntry* self,
                                                        DinoEntitiesConversation* conversation,
                                                        DinoContentItem* content_item)
{
	DinoPluginsEncryptionListEntryIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_ENCRYPTION_LIST_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_encryption_icon) {
		return _iface_->get_encryption_icon (self, conversation, content_item);
	}
	return NULL;
}

gchar*
dino_plugins_encryption_list_entry_get_encryption_icon_name (DinoPluginsEncryptionListEntry* self,
                                                             DinoEntitiesConversation* conversation,
                                                             DinoContentItem* content_item)
{
	DinoPluginsEncryptionListEntryIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_ENCRYPTION_LIST_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_encryption_icon_name) {
		return _iface_->get_encryption_icon_name (self, conversation, content_item);
	}
	return NULL;
}

DinoEntitiesEncryption
dino_plugins_encryption_list_entry_get_encryption (DinoPluginsEncryptionListEntry* self)
{
	DinoPluginsEncryptionListEntryIface* _iface_;
	g_return_val_if_fail (self != NULL, 0);
	_iface_ = DINO_PLUGINS_ENCRYPTION_LIST_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_encryption) {
		return _iface_->get_encryption (self);
	}
	return 0;
}

const gchar*
dino_plugins_encryption_list_entry_get_name (DinoPluginsEncryptionListEntry* self)
{
	DinoPluginsEncryptionListEntryIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_ENCRYPTION_LIST_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_name) {
		return _iface_->get_name (self);
	}
	return NULL;
}

static void
dino_plugins_encryption_list_entry_default_init (DinoPluginsEncryptionListEntryIface * iface,
                                                 gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_enum ("encryption", "encryption", "encryption", DINO_ENTITIES_TYPE_ENCRYPTION, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
dino_plugins_encryption_list_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsEncryptionListEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_encryption_list_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_encryption_list_entry_type_id;
	dino_plugins_encryption_list_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsEncryptionListEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_encryption_list_entry_type_id, G_TYPE_OBJECT);
	return dino_plugins_encryption_list_entry_type_id;
}

GType
dino_plugins_encryption_list_entry_get_type (void)
{
	static volatile gsize dino_plugins_encryption_list_entry_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_encryption_list_entry_type_id__once)) {
		GType dino_plugins_encryption_list_entry_type_id;
		dino_plugins_encryption_list_entry_type_id = dino_plugins_encryption_list_entry_get_type_once ();
		g_once_init_leave (&dino_plugins_encryption_list_entry_type_id__once, dino_plugins_encryption_list_entry_type_id);
	}
	return dino_plugins_encryption_list_entry_type_id__once;
}

DinoPluginsCallEncryptionWidget*
dino_plugins_call_encryption_entry_get_widget (DinoPluginsCallEncryptionEntry* self,
                                               DinoEntitiesAccount* account,
                                               XmppXepJingleContentEncryption* encryption)
{
	DinoPluginsCallEncryptionEntryIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CALL_ENCRYPTION_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_widget) {
		return _iface_->get_widget (self, account, encryption);
	}
	return NULL;
}

static void
dino_plugins_call_encryption_entry_default_init (DinoPluginsCallEncryptionEntryIface * iface,
                                                 gpointer iface_data)
{
}

static GType
dino_plugins_call_encryption_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsCallEncryptionEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_call_encryption_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_call_encryption_entry_type_id;
	dino_plugins_call_encryption_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsCallEncryptionEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_call_encryption_entry_type_id, G_TYPE_OBJECT);
	return dino_plugins_call_encryption_entry_type_id;
}

GType
dino_plugins_call_encryption_entry_get_type (void)
{
	static volatile gsize dino_plugins_call_encryption_entry_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_call_encryption_entry_type_id__once)) {
		GType dino_plugins_call_encryption_entry_type_id;
		dino_plugins_call_encryption_entry_type_id = dino_plugins_call_encryption_entry_get_type_once ();
		g_once_init_leave (&dino_plugins_call_encryption_entry_type_id__once, dino_plugins_call_encryption_entry_type_id);
	}
	return dino_plugins_call_encryption_entry_type_id__once;
}

gchar*
dino_plugins_call_encryption_widget_get_title (DinoPluginsCallEncryptionWidget* self)
{
	DinoPluginsCallEncryptionWidgetIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CALL_ENCRYPTION_WIDGET_GET_INTERFACE (self);
	if (_iface_->get_title) {
		return _iface_->get_title (self);
	}
	return NULL;
}

gboolean
dino_plugins_call_encryption_widget_show_keys (DinoPluginsCallEncryptionWidget* self)
{
	DinoPluginsCallEncryptionWidgetIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = DINO_PLUGINS_CALL_ENCRYPTION_WIDGET_GET_INTERFACE (self);
	if (_iface_->show_keys) {
		return _iface_->show_keys (self);
	}
	return FALSE;
}

gchar*
dino_plugins_call_encryption_widget_get_icon_name (DinoPluginsCallEncryptionWidget* self)
{
	DinoPluginsCallEncryptionWidgetIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CALL_ENCRYPTION_WIDGET_GET_INTERFACE (self);
	if (_iface_->get_icon_name) {
		return _iface_->get_icon_name (self);
	}
	return NULL;
}

static void
dino_plugins_call_encryption_widget_default_init (DinoPluginsCallEncryptionWidgetIface * iface,
                                                  gpointer iface_data)
{
}

static GType
dino_plugins_call_encryption_widget_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsCallEncryptionWidgetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_call_encryption_widget_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_call_encryption_widget_type_id;
	dino_plugins_call_encryption_widget_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsCallEncryptionWidget", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_call_encryption_widget_type_id, G_TYPE_OBJECT);
	return dino_plugins_call_encryption_widget_type_id;
}

GType
dino_plugins_call_encryption_widget_get_type (void)
{
	static volatile gsize dino_plugins_call_encryption_widget_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_call_encryption_widget_type_id__once)) {
		GType dino_plugins_call_encryption_widget_type_id;
		dino_plugins_call_encryption_widget_type_id = dino_plugins_call_encryption_widget_get_type_once ();
		g_once_init_leave (&dino_plugins_call_encryption_widget_type_id__once, dino_plugins_call_encryption_widget_type_id);
	}
	return dino_plugins_call_encryption_widget_type_id__once;
}

static void
dino_plugins_account_settings_entry_real_deactivate (DinoPluginsAccountSettingsEntry* self)
{
	g_critical ("Type `%s' does not implement abstract method `dino_plugins_account_settings_entry_deactivate'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
dino_plugins_account_settings_entry_deactivate (DinoPluginsAccountSettingsEntry* self)
{
	DinoPluginsAccountSettingsEntryClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_GET_CLASS (self);
	if (_klass_->deactivate) {
		_klass_->deactivate (self);
	}
}

static void
dino_plugins_account_settings_entry_real_set_account (DinoPluginsAccountSettingsEntry* self,
                                                      DinoEntitiesAccount* account)
{
	g_critical ("Type `%s' does not implement abstract method `dino_plugins_account_settings_entry_set_account'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
dino_plugins_account_settings_entry_set_account (DinoPluginsAccountSettingsEntry* self,
                                                 DinoEntitiesAccount* account)
{
	DinoPluginsAccountSettingsEntryClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_GET_CLASS (self);
	if (_klass_->set_account) {
		_klass_->set_account (self, account);
	}
}

static GObject*
dino_plugins_account_settings_entry_real_get_widget (DinoPluginsAccountSettingsEntry* self,
                                                     DinoPluginsWidgetType type)
{
	g_critical ("Type `%s' does not implement abstract method `dino_plugins_account_settings_entry_get_widget'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}

GObject*
dino_plugins_account_settings_entry_get_widget (DinoPluginsAccountSettingsEntry* self,
                                                DinoPluginsWidgetType type)
{
	DinoPluginsAccountSettingsEntryClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_GET_CLASS (self);
	if (_klass_->get_widget) {
		return _klass_->get_widget (self, type);
	}
	return NULL;
}

DinoPluginsAccountSettingsEntry*
dino_plugins_account_settings_entry_construct (GType object_type)
{
	DinoPluginsAccountSettingsEntry * self = NULL;
	self = (DinoPluginsAccountSettingsEntry*) g_object_new (object_type, NULL);
	return self;
}

const gchar*
dino_plugins_account_settings_entry_get_id (DinoPluginsAccountSettingsEntry* self)
{
	DinoPluginsAccountSettingsEntryClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_GET_CLASS (self);
	if (_klass_->get_id) {
		return _klass_->get_id (self);
	}
	return NULL;
}

DinoPluginsPriority
dino_plugins_account_settings_entry_get_priority (DinoPluginsAccountSettingsEntry* self)
{
	DinoPluginsAccountSettingsEntryClass* _klass_;
	g_return_val_if_fail (self != NULL, 0);
	_klass_ = DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_GET_CLASS (self);
	if (_klass_->get_priority) {
		return _klass_->get_priority (self);
	}
	return 0;
}

static DinoPluginsPriority
dino_plugins_account_settings_entry_real_get_priority (DinoPluginsAccountSettingsEntry* base)
{
	DinoPluginsPriority result;
	DinoPluginsAccountSettingsEntry* self;
	self = base;
	result = DINO_PLUGINS_PRIORITY_DEFAULT;
	return result;
}

const gchar*
dino_plugins_account_settings_entry_get_name (DinoPluginsAccountSettingsEntry* self)
{
	DinoPluginsAccountSettingsEntryClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_GET_CLASS (self);
	if (_klass_->get_name) {
		return _klass_->get_name (self);
	}
	return NULL;
}

gint16
dino_plugins_account_settings_entry_get_label_top_padding (DinoPluginsAccountSettingsEntry* self)
{
	DinoPluginsAccountSettingsEntryClass* _klass_;
	g_return_val_if_fail (self != NULL, -1);
	_klass_ = DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_GET_CLASS (self);
	if (_klass_->get_label_top_padding) {
		return _klass_->get_label_top_padding (self);
	}
	return -1;
}

static gint16
dino_plugins_account_settings_entry_real_get_label_top_padding (DinoPluginsAccountSettingsEntry* base)
{
	gint16 result;
	DinoPluginsAccountSettingsEntry* self;
	self = base;
	result = (gint16) -1;
	return result;
}

static void
dino_plugins_account_settings_entry_class_init (DinoPluginsAccountSettingsEntryClass * klass,
                                                gpointer klass_data)
{
	dino_plugins_account_settings_entry_parent_class = g_type_class_peek_parent (klass);
	((DinoPluginsAccountSettingsEntryClass *) klass)->deactivate = (void (*) (DinoPluginsAccountSettingsEntry*)) dino_plugins_account_settings_entry_real_deactivate;
	((DinoPluginsAccountSettingsEntryClass *) klass)->set_account = (void (*) (DinoPluginsAccountSettingsEntry*, DinoEntitiesAccount*)) dino_plugins_account_settings_entry_real_set_account;
	((DinoPluginsAccountSettingsEntryClass *) klass)->get_widget = (GObject* (*) (DinoPluginsAccountSettingsEntry*, DinoPluginsWidgetType)) dino_plugins_account_settings_entry_real_get_widget;
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_CLASS (klass)->get_priority = (DinoPluginsPriority (*) (DinoPluginsAccountSettingsEntry*)) dino_plugins_account_settings_entry_real_get_priority;
	DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_CLASS (klass)->get_label_top_padding = (gint16 (*) (DinoPluginsAccountSettingsEntry*)) dino_plugins_account_settings_entry_real_get_label_top_padding;
	G_OBJECT_CLASS (klass)->get_property = _vala_dino_plugins_account_settings_entry_get_property;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_ID_PROPERTY, dino_plugins_account_settings_entry_properties[DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_ID_PROPERTY] = g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_PRIORITY_PROPERTY, dino_plugins_account_settings_entry_properties[DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_PRIORITY_PROPERTY] = g_param_spec_enum ("priority", "priority", "priority", DINO_PLUGINS_TYPE_PRIORITY, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_NAME_PROPERTY, dino_plugins_account_settings_entry_properties[DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_LABEL_TOP_PADDING_PROPERTY, dino_plugins_account_settings_entry_properties[DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_LABEL_TOP_PADDING_PROPERTY] = g_param_spec_int ("label-top-padding", "label-top-padding", "label-top-padding", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	dino_plugins_account_settings_entry_signals[DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_ACTIVATED_SIGNAL] = g_signal_new ("activated", DINO_PLUGINS_TYPE_ACCOUNT_SETTINGS_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
dino_plugins_account_settings_entry_instance_init (DinoPluginsAccountSettingsEntry * self,
                                                   gpointer klass)
{
}

static GType
dino_plugins_account_settings_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsAccountSettingsEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_account_settings_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoPluginsAccountSettingsEntry), 0, (GInstanceInitFunc) dino_plugins_account_settings_entry_instance_init, NULL };
	GType dino_plugins_account_settings_entry_type_id;
	dino_plugins_account_settings_entry_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoPluginsAccountSettingsEntry", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return dino_plugins_account_settings_entry_type_id;
}

GType
dino_plugins_account_settings_entry_get_type (void)
{
	static volatile gsize dino_plugins_account_settings_entry_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_account_settings_entry_type_id__once)) {
		GType dino_plugins_account_settings_entry_type_id;
		dino_plugins_account_settings_entry_type_id = dino_plugins_account_settings_entry_get_type_once ();
		g_once_init_leave (&dino_plugins_account_settings_entry_type_id__once, dino_plugins_account_settings_entry_type_id);
	}
	return dino_plugins_account_settings_entry_type_id__once;
}

static void
_vala_dino_plugins_account_settings_entry_get_property (GObject * object,
                                                        guint property_id,
                                                        GValue * value,
                                                        GParamSpec * pspec)
{
	DinoPluginsAccountSettingsEntry * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_PLUGINS_TYPE_ACCOUNT_SETTINGS_ENTRY, DinoPluginsAccountSettingsEntry);
	switch (property_id) {
		case DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_PRIORITY_PROPERTY:
		g_value_set_enum (value, dino_plugins_account_settings_entry_get_priority (self));
		break;
		case DINO_PLUGINS_ACCOUNT_SETTINGS_ENTRY_LABEL_TOP_PADDING_PROPERTY:
		g_value_set_int (value, dino_plugins_account_settings_entry_get_label_top_padding (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static GObject*
dino_plugins_encryption_preferences_entry_real_get_widget (DinoPluginsEncryptionPreferencesEntry* self,
                                                           DinoEntitiesAccount* account,
                                                           DinoPluginsWidgetType type)
{
	g_critical ("Type `%s' does not implement abstract method `dino_plugins_encryption_preferences_entry_get_widget'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}

GObject*
dino_plugins_encryption_preferences_entry_get_widget (DinoPluginsEncryptionPreferencesEntry* self,
                                                      DinoEntitiesAccount* account,
                                                      DinoPluginsWidgetType type)
{
	DinoPluginsEncryptionPreferencesEntryClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_GET_CLASS (self);
	if (_klass_->get_widget) {
		return _klass_->get_widget (self, account, type);
	}
	return NULL;
}

DinoPluginsEncryptionPreferencesEntry*
dino_plugins_encryption_preferences_entry_construct (GType object_type)
{
	DinoPluginsEncryptionPreferencesEntry * self = NULL;
	self = (DinoPluginsEncryptionPreferencesEntry*) g_object_new (object_type, NULL);
	return self;
}

const gchar*
dino_plugins_encryption_preferences_entry_get_id (DinoPluginsEncryptionPreferencesEntry* self)
{
	DinoPluginsEncryptionPreferencesEntryClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_GET_CLASS (self);
	if (_klass_->get_id) {
		return _klass_->get_id (self);
	}
	return NULL;
}

DinoPluginsPriority
dino_plugins_encryption_preferences_entry_get_priority (DinoPluginsEncryptionPreferencesEntry* self)
{
	DinoPluginsEncryptionPreferencesEntryClass* _klass_;
	g_return_val_if_fail (self != NULL, 0);
	_klass_ = DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_GET_CLASS (self);
	if (_klass_->get_priority) {
		return _klass_->get_priority (self);
	}
	return 0;
}

static DinoPluginsPriority
dino_plugins_encryption_preferences_entry_real_get_priority (DinoPluginsEncryptionPreferencesEntry* base)
{
	DinoPluginsPriority result;
	DinoPluginsEncryptionPreferencesEntry* self;
	self = base;
	result = DINO_PLUGINS_PRIORITY_DEFAULT;
	return result;
}

static void
dino_plugins_encryption_preferences_entry_class_init (DinoPluginsEncryptionPreferencesEntryClass * klass,
                                                      gpointer klass_data)
{
	dino_plugins_encryption_preferences_entry_parent_class = g_type_class_peek_parent (klass);
	((DinoPluginsEncryptionPreferencesEntryClass *) klass)->get_widget = (GObject* (*) (DinoPluginsEncryptionPreferencesEntry*, DinoEntitiesAccount*, DinoPluginsWidgetType)) dino_plugins_encryption_preferences_entry_real_get_widget;
	DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_CLASS (klass)->get_priority = (DinoPluginsPriority (*) (DinoPluginsEncryptionPreferencesEntry*)) dino_plugins_encryption_preferences_entry_real_get_priority;
	G_OBJECT_CLASS (klass)->get_property = _vala_dino_plugins_encryption_preferences_entry_get_property;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_ID_PROPERTY, dino_plugins_encryption_preferences_entry_properties[DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_ID_PROPERTY] = g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_PRIORITY_PROPERTY, dino_plugins_encryption_preferences_entry_properties[DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_PRIORITY_PROPERTY] = g_param_spec_enum ("priority", "priority", "priority", DINO_PLUGINS_TYPE_PRIORITY, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
dino_plugins_encryption_preferences_entry_instance_init (DinoPluginsEncryptionPreferencesEntry * self,
                                                         gpointer klass)
{
}

static GType
dino_plugins_encryption_preferences_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsEncryptionPreferencesEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_encryption_preferences_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoPluginsEncryptionPreferencesEntry), 0, (GInstanceInitFunc) dino_plugins_encryption_preferences_entry_instance_init, NULL };
	GType dino_plugins_encryption_preferences_entry_type_id;
	dino_plugins_encryption_preferences_entry_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoPluginsEncryptionPreferencesEntry", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return dino_plugins_encryption_preferences_entry_type_id;
}

GType
dino_plugins_encryption_preferences_entry_get_type (void)
{
	static volatile gsize dino_plugins_encryption_preferences_entry_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_encryption_preferences_entry_type_id__once)) {
		GType dino_plugins_encryption_preferences_entry_type_id;
		dino_plugins_encryption_preferences_entry_type_id = dino_plugins_encryption_preferences_entry_get_type_once ();
		g_once_init_leave (&dino_plugins_encryption_preferences_entry_type_id__once, dino_plugins_encryption_preferences_entry_type_id);
	}
	return dino_plugins_encryption_preferences_entry_type_id__once;
}

static void
_vala_dino_plugins_encryption_preferences_entry_get_property (GObject * object,
                                                              guint property_id,
                                                              GValue * value,
                                                              GParamSpec * pspec)
{
	DinoPluginsEncryptionPreferencesEntry * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_PLUGINS_TYPE_ENCRYPTION_PREFERENCES_ENTRY, DinoPluginsEncryptionPreferencesEntry);
	switch (property_id) {
		case DINO_PLUGINS_ENCRYPTION_PREFERENCES_ENTRY_PRIORITY_PROPERTY:
		g_value_set_enum (value, dino_plugins_encryption_preferences_entry_get_priority (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

void
dino_plugins_contact_details_provider_populate (DinoPluginsContactDetailsProvider* self,
                                                DinoEntitiesConversation* conversation,
                                                DinoPluginsContactDetails* contact_details,
                                                DinoPluginsWidgetType type)
{
	DinoPluginsContactDetailsProviderIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONTACT_DETAILS_PROVIDER_GET_INTERFACE (self);
	if (_iface_->populate) {
		_iface_->populate (self, conversation, contact_details, type);
	}
}

GObject*
dino_plugins_contact_details_provider_get_widget (DinoPluginsContactDetailsProvider* self,
                                                  DinoEntitiesConversation* conversation)
{
	DinoPluginsContactDetailsProviderIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CONTACT_DETAILS_PROVIDER_GET_INTERFACE (self);
	if (_iface_->get_widget) {
		return _iface_->get_widget (self, conversation);
	}
	return NULL;
}

const gchar*
dino_plugins_contact_details_provider_get_id (DinoPluginsContactDetailsProvider* self)
{
	DinoPluginsContactDetailsProviderIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CONTACT_DETAILS_PROVIDER_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

const gchar*
dino_plugins_contact_details_provider_get_tab (DinoPluginsContactDetailsProvider* self)
{
	DinoPluginsContactDetailsProviderIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CONTACT_DETAILS_PROVIDER_GET_INTERFACE (self);
	if (_iface_->get_tab) {
		return _iface_->get_tab (self);
	}
	return NULL;
}

static void
dino_plugins_contact_details_provider_default_init (DinoPluginsContactDetailsProviderIface * iface,
                                                    gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("tab", "tab", "tab", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
dino_plugins_contact_details_provider_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsContactDetailsProviderIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_contact_details_provider_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_contact_details_provider_type_id;
	dino_plugins_contact_details_provider_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsContactDetailsProvider", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_contact_details_provider_type_id, G_TYPE_OBJECT);
	return dino_plugins_contact_details_provider_type_id;
}

GType
dino_plugins_contact_details_provider_get_type (void)
{
	static volatile gsize dino_plugins_contact_details_provider_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_contact_details_provider_type_id__once)) {
		GType dino_plugins_contact_details_provider_type_id;
		dino_plugins_contact_details_provider_type_id = dino_plugins_contact_details_provider_get_type_once ();
		g_once_init_leave (&dino_plugins_contact_details_provider_type_id__once, dino_plugins_contact_details_provider_type_id);
	}
	return dino_plugins_contact_details_provider_type_id__once;
}

DinoPluginsContactDetails*
dino_plugins_contact_details_construct (GType object_type)
{
	DinoPluginsContactDetails * self = NULL;
	self = (DinoPluginsContactDetails*) g_object_new (object_type, NULL);
	return self;
}

DinoPluginsContactDetails*
dino_plugins_contact_details_new (void)
{
	return dino_plugins_contact_details_construct (DINO_PLUGINS_TYPE_CONTACT_DETAILS);
}

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

static void
dino_plugins_contact_details_class_init (DinoPluginsContactDetailsClass * klass,
                                         gpointer klass_data)
{
	dino_plugins_contact_details_parent_class = g_type_class_peek_parent (klass);
	dino_plugins_contact_details_signals[DINO_PLUGINS_CONTACT_DETAILS_SAVE_SIGNAL] = g_signal_new ("save", DINO_PLUGINS_TYPE_CONTACT_DETAILS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	dino_plugins_contact_details_signals[DINO_PLUGINS_CONTACT_DETAILS_ADD_SIGNAL] = g_signal_new ("add", DINO_PLUGINS_TYPE_CONTACT_DETAILS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING_STRING_OBJECT, G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_OBJECT);
}

static void
dino_plugins_contact_details_instance_init (DinoPluginsContactDetails * self,
                                            gpointer klass)
{
}

static GType
dino_plugins_contact_details_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsContactDetailsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_contact_details_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoPluginsContactDetails), 0, (GInstanceInitFunc) dino_plugins_contact_details_instance_init, NULL };
	GType dino_plugins_contact_details_type_id;
	dino_plugins_contact_details_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoPluginsContactDetails", &g_define_type_info, 0);
	return dino_plugins_contact_details_type_id;
}

GType
dino_plugins_contact_details_get_type (void)
{
	static volatile gsize dino_plugins_contact_details_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_contact_details_type_id__once)) {
		GType dino_plugins_contact_details_type_id;
		dino_plugins_contact_details_type_id = dino_plugins_contact_details_get_type_once ();
		g_once_init_leave (&dino_plugins_contact_details_type_id__once, dino_plugins_contact_details_type_id);
	}
	return dino_plugins_contact_details_type_id__once;
}

gchar*
dino_plugins_text_command_handle_command (DinoPluginsTextCommand* self,
                                          const gchar* text,
                                          DinoEntitiesConversation* conversation)
{
	DinoPluginsTextCommandIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_TEXT_COMMAND_GET_INTERFACE (self);
	if (_iface_->handle_command) {
		return _iface_->handle_command (self, text, conversation);
	}
	return NULL;
}

const gchar*
dino_plugins_text_command_get_cmd (DinoPluginsTextCommand* self)
{
	DinoPluginsTextCommandIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_TEXT_COMMAND_GET_INTERFACE (self);
	if (_iface_->get_cmd) {
		return _iface_->get_cmd (self);
	}
	return NULL;
}

static void
dino_plugins_text_command_default_init (DinoPluginsTextCommandIface * iface,
                                        gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("cmd", "cmd", "cmd", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
dino_plugins_text_command_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsTextCommandIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_text_command_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_text_command_type_id;
	dino_plugins_text_command_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsTextCommand", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_text_command_type_id, G_TYPE_OBJECT);
	return dino_plugins_text_command_type_id;
}

GType
dino_plugins_text_command_get_type (void)
{
	static volatile gsize dino_plugins_text_command_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_text_command_type_id__once)) {
		GType dino_plugins_text_command_type_id;
		dino_plugins_text_command_type_id = dino_plugins_text_command_get_type_once ();
		g_once_init_leave (&dino_plugins_text_command_type_id__once, dino_plugins_text_command_type_id);
	}
	return dino_plugins_text_command_type_id__once;
}

GObject*
dino_plugins_conversation_titlebar_entry_get_widget (DinoPluginsConversationTitlebarEntry* self,
                                                     DinoPluginsWidgetType type)
{
	DinoPluginsConversationTitlebarEntryIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_TITLEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_widget) {
		return _iface_->get_widget (self, type);
	}
	return NULL;
}

void
dino_plugins_conversation_titlebar_entry_set_conversation (DinoPluginsConversationTitlebarEntry* self,
                                                           DinoEntitiesConversation* conversation)
{
	DinoPluginsConversationTitlebarEntryIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_TITLEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->set_conversation) {
		_iface_->set_conversation (self, conversation);
	}
}

void
dino_plugins_conversation_titlebar_entry_unset_conversation (DinoPluginsConversationTitlebarEntry* self)
{
	DinoPluginsConversationTitlebarEntryIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_TITLEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->unset_conversation) {
		_iface_->unset_conversation (self);
	}
}

const gchar*
dino_plugins_conversation_titlebar_entry_get_id (DinoPluginsConversationTitlebarEntry* self)
{
	DinoPluginsConversationTitlebarEntryIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_TITLEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

gdouble
dino_plugins_conversation_titlebar_entry_get_order (DinoPluginsConversationTitlebarEntry* self)
{
	DinoPluginsConversationTitlebarEntryIface* _iface_;
	g_return_val_if_fail (self != NULL, -1.0);
	_iface_ = DINO_PLUGINS_CONVERSATION_TITLEBAR_ENTRY_GET_INTERFACE (self);
	if (_iface_->get_order) {
		return _iface_->get_order (self);
	}
	return -1.0;
}

static void
dino_plugins_conversation_titlebar_entry_default_init (DinoPluginsConversationTitlebarEntryIface * iface,
                                                       gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_double ("order", "order", "order", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
dino_plugins_conversation_titlebar_entry_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsConversationTitlebarEntryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_conversation_titlebar_entry_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_conversation_titlebar_entry_type_id;
	dino_plugins_conversation_titlebar_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsConversationTitlebarEntry", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_conversation_titlebar_entry_type_id, G_TYPE_OBJECT);
	return dino_plugins_conversation_titlebar_entry_type_id;
}

GType
dino_plugins_conversation_titlebar_entry_get_type (void)
{
	static volatile gsize dino_plugins_conversation_titlebar_entry_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_conversation_titlebar_entry_type_id__once)) {
		GType dino_plugins_conversation_titlebar_entry_type_id;
		dino_plugins_conversation_titlebar_entry_type_id = dino_plugins_conversation_titlebar_entry_get_type_once ();
		g_once_init_leave (&dino_plugins_conversation_titlebar_entry_type_id__once, dino_plugins_conversation_titlebar_entry_type_id);
	}
	return dino_plugins_conversation_titlebar_entry_type_id__once;
}

void
dino_plugins_conversation_item_populator_init (DinoPluginsConversationItemPopulator* self,
                                               DinoEntitiesConversation* conversation,
                                               DinoPluginsConversationItemCollection* summary,
                                               DinoPluginsWidgetType type)
{
	DinoPluginsConversationItemPopulatorIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_ITEM_POPULATOR_GET_INTERFACE (self);
	if (_iface_->init) {
		_iface_->init (self, conversation, summary, type);
	}
}

void
dino_plugins_conversation_item_populator_close (DinoPluginsConversationItemPopulator* self,
                                                DinoEntitiesConversation* conversation)
{
	DinoPluginsConversationItemPopulatorIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_ITEM_POPULATOR_GET_INTERFACE (self);
	if (_iface_->close) {
		_iface_->close (self, conversation);
	}
}

const gchar*
dino_plugins_conversation_item_populator_get_id (DinoPluginsConversationItemPopulator* self)
{
	DinoPluginsConversationItemPopulatorIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_ITEM_POPULATOR_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

static void
dino_plugins_conversation_item_populator_default_init (DinoPluginsConversationItemPopulatorIface * iface,
                                                       gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
dino_plugins_conversation_item_populator_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsConversationItemPopulatorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_conversation_item_populator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_conversation_item_populator_type_id;
	dino_plugins_conversation_item_populator_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsConversationItemPopulator", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_conversation_item_populator_type_id, G_TYPE_OBJECT);
	return dino_plugins_conversation_item_populator_type_id;
}

GType
dino_plugins_conversation_item_populator_get_type (void)
{
	static volatile gsize dino_plugins_conversation_item_populator_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_conversation_item_populator_type_id__once)) {
		GType dino_plugins_conversation_item_populator_type_id;
		dino_plugins_conversation_item_populator_type_id = dino_plugins_conversation_item_populator_get_type_once ();
		g_once_init_leave (&dino_plugins_conversation_item_populator_type_id__once, dino_plugins_conversation_item_populator_type_id);
	}
	return dino_plugins_conversation_item_populator_type_id__once;
}

static void
dino_plugins_conversation_addition_populator_real_populate_timespan (DinoPluginsConversationAdditionPopulator* self,
                                                                     DinoEntitiesConversation* conversation,
                                                                     GDateTime* from,
                                                                     GDateTime* to)
{
	g_return_if_fail (conversation != NULL);
	g_return_if_fail (from != NULL);
	g_return_if_fail (to != NULL);
}

void
dino_plugins_conversation_addition_populator_populate_timespan (DinoPluginsConversationAdditionPopulator* self,
                                                                DinoEntitiesConversation* conversation,
                                                                GDateTime* from,
                                                                GDateTime* to)
{
	DinoPluginsConversationAdditionPopulatorIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_ADDITION_POPULATOR_GET_INTERFACE (self);
	if (_iface_->populate_timespan) {
		_iface_->populate_timespan (self, conversation, from, to);
	}
}

static void
dino_plugins_conversation_addition_populator_default_init (DinoPluginsConversationAdditionPopulatorIface * iface,
                                                           gpointer iface_data)
{
	iface->populate_timespan = dino_plugins_conversation_addition_populator_real_populate_timespan;
}

static GType
dino_plugins_conversation_addition_populator_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsConversationAdditionPopulatorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_conversation_addition_populator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_conversation_addition_populator_type_id;
	dino_plugins_conversation_addition_populator_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsConversationAdditionPopulator", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_conversation_addition_populator_type_id, DINO_PLUGINS_TYPE_CONVERSATION_ITEM_POPULATOR);
	return dino_plugins_conversation_addition_populator_type_id;
}

GType
dino_plugins_conversation_addition_populator_get_type (void)
{
	static volatile gsize dino_plugins_conversation_addition_populator_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_conversation_addition_populator_type_id__once)) {
		GType dino_plugins_conversation_addition_populator_type_id;
		dino_plugins_conversation_addition_populator_type_id = dino_plugins_conversation_addition_populator_get_type_once ();
		g_once_init_leave (&dino_plugins_conversation_addition_populator_type_id__once, dino_plugins_conversation_addition_populator_type_id);
	}
	return dino_plugins_conversation_addition_populator_type_id__once;
}

gboolean
dino_plugins_video_call_plugin_supported (DinoPluginsVideoCallPlugin* self)
{
	DinoPluginsVideoCallPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_PLUGIN_GET_INTERFACE (self);
	if (_iface_->supported) {
		return _iface_->supported (self);
	}
	return FALSE;
}

DinoPluginsVideoCallWidget*
dino_plugins_video_call_plugin_create_widget (DinoPluginsVideoCallPlugin* self,
                                              DinoPluginsWidgetType type)
{
	DinoPluginsVideoCallPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_PLUGIN_GET_INTERFACE (self);
	if (_iface_->create_widget) {
		return _iface_->create_widget (self, type);
	}
	return NULL;
}

GeeList*
dino_plugins_video_call_plugin_get_devices (DinoPluginsVideoCallPlugin* self,
                                            const gchar* media,
                                            gboolean incoming)
{
	DinoPluginsVideoCallPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_devices) {
		return _iface_->get_devices (self, media, incoming);
	}
	return NULL;
}

DinoPluginsMediaDevice*
dino_plugins_video_call_plugin_get_preferred_device (DinoPluginsVideoCallPlugin* self,
                                                     const gchar* media,
                                                     gboolean incoming)
{
	DinoPluginsVideoCallPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_preferred_device) {
		return _iface_->get_preferred_device (self, media, incoming);
	}
	return NULL;
}

DinoPluginsMediaDevice*
dino_plugins_video_call_plugin_get_device (DinoPluginsVideoCallPlugin* self,
                                           XmppXepJingleRtpStream* stream,
                                           gboolean incoming)
{
	DinoPluginsVideoCallPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_device) {
		return _iface_->get_device (self, stream, incoming);
	}
	return NULL;
}

void
dino_plugins_video_call_plugin_set_pause (DinoPluginsVideoCallPlugin* self,
                                          XmppXepJingleRtpStream* stream,
                                          gboolean pause)
{
	DinoPluginsVideoCallPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_PLUGIN_GET_INTERFACE (self);
	if (_iface_->set_pause) {
		_iface_->set_pause (self, stream, pause);
	}
}

void
dino_plugins_video_call_plugin_set_device (DinoPluginsVideoCallPlugin* self,
                                           XmppXepJingleRtpStream* stream,
                                           DinoPluginsMediaDevice* device)
{
	DinoPluginsVideoCallPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_PLUGIN_GET_INTERFACE (self);
	if (_iface_->set_device) {
		_iface_->set_device (self, stream, device);
	}
}

void
dino_plugins_video_call_plugin_dump_dot (DinoPluginsVideoCallPlugin* self)
{
	DinoPluginsVideoCallPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_PLUGIN_GET_INTERFACE (self);
	if (_iface_->dump_dot) {
		_iface_->dump_dot (self);
	}
}

static void
g_cclosure_user_marshal_VOID__STRING_BOOLEAN (GClosure * closure,
                                              GValue * return_value,
                                              guint n_param_values,
                                              const GValue * param_values,
                                              gpointer invocation_hint,
                                              gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__STRING_BOOLEAN) (gpointer data1, const char* arg_1, gboolean arg_2, gpointer data2);
	register GMarshalFunc_VOID__STRING_BOOLEAN callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 3);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__STRING_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_boolean (param_values + 2), data2);
}

static void
dino_plugins_video_call_plugin_default_init (DinoPluginsVideoCallPluginIface * iface,
                                             gpointer iface_data)
{
	dino_plugins_video_call_plugin_signals[DINO_PLUGINS_VIDEO_CALL_PLUGIN_DEVICES_CHANGED_SIGNAL] = g_signal_new ("devices-changed", DINO_PLUGINS_TYPE_VIDEO_CALL_PLUGIN, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_BOOLEAN, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_BOOLEAN);
}

static GType
dino_plugins_video_call_plugin_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsVideoCallPluginIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_video_call_plugin_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_video_call_plugin_type_id;
	dino_plugins_video_call_plugin_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsVideoCallPlugin", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_video_call_plugin_type_id, G_TYPE_OBJECT);
	return dino_plugins_video_call_plugin_type_id;
}

GType
dino_plugins_video_call_plugin_get_type (void)
{
	static volatile gsize dino_plugins_video_call_plugin_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_video_call_plugin_type_id__once)) {
		GType dino_plugins_video_call_plugin_type_id;
		dino_plugins_video_call_plugin_type_id = dino_plugins_video_call_plugin_get_type_once ();
		g_once_init_leave (&dino_plugins_video_call_plugin_type_id__once, dino_plugins_video_call_plugin_type_id);
	}
	return dino_plugins_video_call_plugin_type_id__once;
}

void
dino_plugins_video_call_widget_display_stream (DinoPluginsVideoCallWidget* self,
                                               XmppXepJingleRtpStream* stream,
                                               XmppJid* jid)
{
	DinoPluginsVideoCallWidgetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_WIDGET_GET_INTERFACE (self);
	if (_iface_->display_stream) {
		_iface_->display_stream (self, stream, jid);
	}
}

void
dino_plugins_video_call_widget_display_device (DinoPluginsVideoCallWidget* self,
                                               DinoPluginsMediaDevice* device)
{
	DinoPluginsVideoCallWidgetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_WIDGET_GET_INTERFACE (self);
	if (_iface_->display_device) {
		_iface_->display_device (self, device);
	}
}

void
dino_plugins_video_call_widget_detach (DinoPluginsVideoCallWidget* self)
{
	DinoPluginsVideoCallWidgetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_VIDEO_CALL_WIDGET_GET_INTERFACE (self);
	if (_iface_->detach) {
		_iface_->detach (self);
	}
}

static void
g_cclosure_user_marshal_VOID__UINT_UINT (GClosure * closure,
                                         GValue * return_value,
                                         guint n_param_values,
                                         const GValue * param_values,
                                         gpointer invocation_hint,
                                         gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer data1, guint arg_1, guint arg_2, gpointer data2);
	register GMarshalFunc_VOID__UINT_UINT callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 3);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_uint (param_values + 1), g_value_get_uint (param_values + 2), data2);
}

static void
dino_plugins_video_call_widget_default_init (DinoPluginsVideoCallWidgetIface * iface,
                                             gpointer iface_data)
{
	dino_plugins_video_call_widget_signals[DINO_PLUGINS_VIDEO_CALL_WIDGET_RESOLUTION_CHANGED_SIGNAL] = g_signal_new ("resolution-changed", DINO_PLUGINS_TYPE_VIDEO_CALL_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__UINT_UINT, G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
}

static GType
dino_plugins_video_call_widget_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsVideoCallWidgetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_video_call_widget_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_video_call_widget_type_id;
	dino_plugins_video_call_widget_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsVideoCallWidget", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_video_call_widget_type_id, G_TYPE_OBJECT);
	return dino_plugins_video_call_widget_type_id;
}

GType
dino_plugins_video_call_widget_get_type (void)
{
	static volatile gsize dino_plugins_video_call_widget_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_video_call_widget_type_id__once)) {
		GType dino_plugins_video_call_widget_type_id;
		dino_plugins_video_call_widget_type_id = dino_plugins_video_call_widget_get_type_once ();
		g_once_init_leave (&dino_plugins_video_call_widget_type_id__once, dino_plugins_video_call_widget_type_id);
	}
	return dino_plugins_video_call_widget_type_id__once;
}

gchar*
dino_plugins_media_device_get_id (DinoPluginsMediaDevice* self)
{
	DinoPluginsMediaDeviceIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_MEDIA_DEVICE_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

gchar*
dino_plugins_media_device_get_display_name (DinoPluginsMediaDevice* self)
{
	DinoPluginsMediaDeviceIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_MEDIA_DEVICE_GET_INTERFACE (self);
	if (_iface_->get_display_name) {
		return _iface_->get_display_name (self);
	}
	return NULL;
}

gchar*
dino_plugins_media_device_get_detail_name (DinoPluginsMediaDevice* self)
{
	DinoPluginsMediaDeviceIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_MEDIA_DEVICE_GET_INTERFACE (self);
	if (_iface_->get_detail_name) {
		return _iface_->get_detail_name (self);
	}
	return NULL;
}

gchar*
dino_plugins_media_device_get_media (DinoPluginsMediaDevice* self)
{
	DinoPluginsMediaDeviceIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_MEDIA_DEVICE_GET_INTERFACE (self);
	if (_iface_->get_media) {
		return _iface_->get_media (self);
	}
	return NULL;
}

gboolean
dino_plugins_media_device_get_incoming (DinoPluginsMediaDevice* self)
{
	DinoPluginsMediaDeviceIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = DINO_PLUGINS_MEDIA_DEVICE_GET_INTERFACE (self);
	if (_iface_->get_incoming) {
		return _iface_->get_incoming (self);
	}
	return FALSE;
}

static void
dino_plugins_media_device_default_init (DinoPluginsMediaDeviceIface * iface,
                                        gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("display-name", "display-name", "display-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("detail-name", "detail-name", "detail-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("media", "media", "media", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_boolean ("incoming", "incoming", "incoming", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
dino_plugins_media_device_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsMediaDeviceIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_media_device_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_media_device_type_id;
	dino_plugins_media_device_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsMediaDevice", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_media_device_type_id, G_TYPE_OBJECT);
	return dino_plugins_media_device_type_id;
}

GType
dino_plugins_media_device_get_type (void)
{
	static volatile gsize dino_plugins_media_device_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_media_device_type_id__once)) {
		GType dino_plugins_media_device_type_id;
		dino_plugins_media_device_type_id = dino_plugins_media_device_get_type_once ();
		g_once_init_leave (&dino_plugins_media_device_type_id__once, dino_plugins_media_device_type_id);
	}
	return dino_plugins_media_device_type_id__once;
}

void
dino_plugins_notification_populator_init (DinoPluginsNotificationPopulator* self,
                                          DinoEntitiesConversation* conversation,
                                          DinoPluginsNotificationCollection* summary,
                                          DinoPluginsWidgetType type)
{
	DinoPluginsNotificationPopulatorIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_NOTIFICATION_POPULATOR_GET_INTERFACE (self);
	if (_iface_->init) {
		_iface_->init (self, conversation, summary, type);
	}
}

void
dino_plugins_notification_populator_close (DinoPluginsNotificationPopulator* self,
                                           DinoEntitiesConversation* conversation)
{
	DinoPluginsNotificationPopulatorIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_NOTIFICATION_POPULATOR_GET_INTERFACE (self);
	if (_iface_->close) {
		_iface_->close (self, conversation);
	}
}

const gchar*
dino_plugins_notification_populator_get_id (DinoPluginsNotificationPopulator* self)
{
	DinoPluginsNotificationPopulatorIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = DINO_PLUGINS_NOTIFICATION_POPULATOR_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

static void
dino_plugins_notification_populator_default_init (DinoPluginsNotificationPopulatorIface * iface,
                                                  gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static GType
dino_plugins_notification_populator_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsNotificationPopulatorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_notification_populator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_notification_populator_type_id;
	dino_plugins_notification_populator_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsNotificationPopulator", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_notification_populator_type_id, G_TYPE_OBJECT);
	return dino_plugins_notification_populator_type_id;
}

GType
dino_plugins_notification_populator_get_type (void)
{
	static volatile gsize dino_plugins_notification_populator_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_notification_populator_type_id__once)) {
		GType dino_plugins_notification_populator_type_id;
		dino_plugins_notification_populator_type_id = dino_plugins_notification_populator_get_type_once ();
		g_once_init_leave (&dino_plugins_notification_populator_type_id__once, dino_plugins_notification_populator_type_id);
	}
	return dino_plugins_notification_populator_type_id__once;
}

static inline gpointer
dino_plugins_meta_conversation_item_get_instance_private (DinoPluginsMetaConversationItem* self)
{
	return G_STRUCT_MEMBER_P (self, DinoPluginsMetaConversationItem_private_offset);
}

static GObject*
dino_plugins_meta_conversation_item_real_get_widget (DinoPluginsMetaConversationItem* self,
                                                     DinoPluginsConversationItemWidgetInterface* outer,
                                                     DinoPluginsWidgetType type)
{
	g_critical ("Type `%s' does not implement abstract method `dino_plugins_meta_conversation_item_get_widget'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}

GObject*
dino_plugins_meta_conversation_item_get_widget (DinoPluginsMetaConversationItem* self,
                                                DinoPluginsConversationItemWidgetInterface* outer,
                                                DinoPluginsWidgetType type)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->get_widget) {
		return _klass_->get_widget (self, outer, type);
	}
	return NULL;
}

static GeeList*
dino_plugins_meta_conversation_item_real_get_item_actions (DinoPluginsMetaConversationItem* self,
                                                           DinoPluginsWidgetType type)
{
	g_critical ("Type `%s' does not implement abstract method `dino_plugins_meta_conversation_item_get_item_actions'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}

GeeList*
dino_plugins_meta_conversation_item_get_item_actions (DinoPluginsMetaConversationItem* self,
                                                      DinoPluginsWidgetType type)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->get_item_actions) {
		return _klass_->get_item_actions (self, type);
	}
	return NULL;
}

DinoPluginsMetaConversationItem*
dino_plugins_meta_conversation_item_construct (GType object_type)
{
	DinoPluginsMetaConversationItem * self = NULL;
	self = (DinoPluginsMetaConversationItem*) g_object_new (object_type, NULL);
	return self;
}

const gchar*
dino_plugins_meta_conversation_item_get_populator_id (DinoPluginsMetaConversationItem* self)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->get_populator_id) {
		return _klass_->get_populator_id (self);
	}
	return NULL;
}

static const gchar*
dino_plugins_meta_conversation_item_real_get_populator_id (DinoPluginsMetaConversationItem* base)
{
	const gchar* result;
	DinoPluginsMetaConversationItem* self;
	const gchar* _tmp0_;
	self = base;
	_tmp0_ = self->priv->_populator_id;
	result = _tmp0_;
	return result;
}

void
dino_plugins_meta_conversation_item_set_populator_id (DinoPluginsMetaConversationItem* self,
                                                      const gchar* value)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->set_populator_id) {
		_klass_->set_populator_id (self, value);
	}
}

static void
dino_plugins_meta_conversation_item_real_set_populator_id (DinoPluginsMetaConversationItem* base,
                                                           const gchar* value)
{
	DinoPluginsMetaConversationItem* self;
	gchar* old_value;
	self = base;
	old_value = dino_plugins_meta_conversation_item_real_get_populator_id (base);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_populator_id);
		self->priv->_populator_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_POPULATOR_ID_PROPERTY]);
	}
}

XmppJid*
dino_plugins_meta_conversation_item_get_jid (DinoPluginsMetaConversationItem* self)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->get_jid) {
		return _klass_->get_jid (self);
	}
	return NULL;
}

static XmppJid*
dino_plugins_meta_conversation_item_real_get_jid (DinoPluginsMetaConversationItem* base)
{
	XmppJid* result;
	DinoPluginsMetaConversationItem* self;
	XmppJid* _tmp0_;
	self = base;
	_tmp0_ = self->priv->_jid;
	result = _tmp0_;
	return result;
}

void
dino_plugins_meta_conversation_item_set_jid (DinoPluginsMetaConversationItem* self,
                                             XmppJid* value)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->set_jid) {
		_klass_->set_jid (self, value);
	}
}

static gpointer
_xmpp_jid_ref0 (gpointer self)
{
	return self ? xmpp_jid_ref (self) : NULL;
}

static void
dino_plugins_meta_conversation_item_real_set_jid (DinoPluginsMetaConversationItem* base,
                                                  XmppJid* value)
{
	DinoPluginsMetaConversationItem* self;
	XmppJid* old_value;
	self = base;
	old_value = dino_plugins_meta_conversation_item_real_get_jid (base);
	if (old_value != value) {
		XmppJid* _tmp0_;
		_tmp0_ = _xmpp_jid_ref0 (value);
		_xmpp_jid_unref0 (self->priv->_jid);
		self->priv->_jid = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_JID_PROPERTY]);
	}
}

GDateTime*
dino_plugins_meta_conversation_item_get_time (DinoPluginsMetaConversationItem* self)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->get_time) {
		return _klass_->get_time (self);
	}
	return NULL;
}

static GDateTime*
dino_plugins_meta_conversation_item_real_get_time (DinoPluginsMetaConversationItem* base)
{
	GDateTime* result;
	DinoPluginsMetaConversationItem* self;
	GDateTime* _tmp0_;
	self = base;
	_tmp0_ = self->priv->_time;
	result = _tmp0_;
	return result;
}

void
dino_plugins_meta_conversation_item_set_time (DinoPluginsMetaConversationItem* self,
                                              GDateTime* value)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->set_time) {
		_klass_->set_time (self, value);
	}
}

static gpointer
_g_date_time_ref0 (gpointer self)
{
	return self ? g_date_time_ref (self) : NULL;
}

static void
dino_plugins_meta_conversation_item_real_set_time (DinoPluginsMetaConversationItem* base,
                                                   GDateTime* value)
{
	DinoPluginsMetaConversationItem* self;
	GDateTime* old_value;
	self = base;
	old_value = dino_plugins_meta_conversation_item_real_get_time (base);
	if (old_value != value) {
		GDateTime* _tmp0_;
		_tmp0_ = _g_date_time_ref0 (value);
		_g_date_time_unref0 (self->priv->_time);
		self->priv->_time = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_TIME_PROPERTY]);
	}
}

gint
dino_plugins_meta_conversation_item_get_secondary_sort_indicator (DinoPluginsMetaConversationItem* self)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_val_if_fail (self != NULL, -1);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->get_secondary_sort_indicator) {
		return _klass_->get_secondary_sort_indicator (self);
	}
	return -1;
}

static gint
dino_plugins_meta_conversation_item_real_get_secondary_sort_indicator (DinoPluginsMetaConversationItem* base)
{
	gint result;
	DinoPluginsMetaConversationItem* self;
	self = base;
	result = self->priv->_secondary_sort_indicator;
	return result;
}

void
dino_plugins_meta_conversation_item_set_secondary_sort_indicator (DinoPluginsMetaConversationItem* self,
                                                                  gint value)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->set_secondary_sort_indicator) {
		_klass_->set_secondary_sort_indicator (self, value);
	}
}

static void
dino_plugins_meta_conversation_item_real_set_secondary_sort_indicator (DinoPluginsMetaConversationItem* base,
                                                                       gint value)
{
	DinoPluginsMetaConversationItem* self;
	gint old_value;
	self = base;
	old_value = dino_plugins_meta_conversation_item_real_get_secondary_sort_indicator (base);
	if (old_value != value) {
		self->priv->_secondary_sort_indicator = value;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_SECONDARY_SORT_INDICATOR_PROPERTY]);
	}
}

DinoEntitiesEncryption
dino_plugins_meta_conversation_item_get_encryption (DinoPluginsMetaConversationItem* self)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_val_if_fail (self != NULL, 0);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->get_encryption) {
		return _klass_->get_encryption (self);
	}
	return 0;
}

static DinoEntitiesEncryption
dino_plugins_meta_conversation_item_real_get_encryption (DinoPluginsMetaConversationItem* base)
{
	DinoEntitiesEncryption result;
	DinoPluginsMetaConversationItem* self;
	self = base;
	result = self->priv->_encryption;
	return result;
}

void
dino_plugins_meta_conversation_item_set_encryption (DinoPluginsMetaConversationItem* self,
                                                    DinoEntitiesEncryption value)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->set_encryption) {
		_klass_->set_encryption (self, value);
	}
}

static void
dino_plugins_meta_conversation_item_real_set_encryption (DinoPluginsMetaConversationItem* base,
                                                         DinoEntitiesEncryption value)
{
	DinoPluginsMetaConversationItem* self;
	DinoEntitiesEncryption old_value;
	self = base;
	old_value = dino_plugins_meta_conversation_item_real_get_encryption (base);
	if (old_value != value) {
		self->priv->_encryption = value;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_ENCRYPTION_PROPERTY]);
	}
}

DinoEntitiesMessageMarked
dino_plugins_meta_conversation_item_get_mark (DinoPluginsMetaConversationItem* self)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_val_if_fail (self != NULL, 0);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->get_mark) {
		return _klass_->get_mark (self);
	}
	return 0;
}

static DinoEntitiesMessageMarked
dino_plugins_meta_conversation_item_real_get_mark (DinoPluginsMetaConversationItem* base)
{
	DinoEntitiesMessageMarked result;
	DinoPluginsMetaConversationItem* self;
	self = base;
	result = self->priv->_mark;
	return result;
}

void
dino_plugins_meta_conversation_item_set_mark (DinoPluginsMetaConversationItem* self,
                                              DinoEntitiesMessageMarked value)
{
	DinoPluginsMetaConversationItemClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_ITEM_GET_CLASS (self);
	if (_klass_->set_mark) {
		_klass_->set_mark (self, value);
	}
}

static void
dino_plugins_meta_conversation_item_real_set_mark (DinoPluginsMetaConversationItem* base,
                                                   DinoEntitiesMessageMarked value)
{
	DinoPluginsMetaConversationItem* self;
	DinoEntitiesMessageMarked old_value;
	self = base;
	old_value = dino_plugins_meta_conversation_item_real_get_mark (base);
	if (old_value != value) {
		self->priv->_mark = value;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_MARK_PROPERTY]);
	}
}

gboolean
dino_plugins_meta_conversation_item_get_can_merge (DinoPluginsMetaConversationItem* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_can_merge;
	return result;
}

void
dino_plugins_meta_conversation_item_set_can_merge (DinoPluginsMetaConversationItem* self,
                                                   gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_plugins_meta_conversation_item_get_can_merge (self);
	if (old_value != value) {
		self->priv->_can_merge = value;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_CAN_MERGE_PROPERTY]);
	}
}

gboolean
dino_plugins_meta_conversation_item_get_requires_avatar (DinoPluginsMetaConversationItem* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_requires_avatar;
	return result;
}

void
dino_plugins_meta_conversation_item_set_requires_avatar (DinoPluginsMetaConversationItem* self,
                                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_plugins_meta_conversation_item_get_requires_avatar (self);
	if (old_value != value) {
		self->priv->_requires_avatar = value;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_AVATAR_PROPERTY]);
	}
}

gboolean
dino_plugins_meta_conversation_item_get_requires_header (DinoPluginsMetaConversationItem* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_requires_header;
	return result;
}

void
dino_plugins_meta_conversation_item_set_requires_header (DinoPluginsMetaConversationItem* self,
                                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_plugins_meta_conversation_item_get_requires_header (self);
	if (old_value != value) {
		self->priv->_requires_header = value;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_HEADER_PROPERTY]);
	}
}

gboolean
dino_plugins_meta_conversation_item_get_in_edit_mode (DinoPluginsMetaConversationItem* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_in_edit_mode;
	return result;
}

void
dino_plugins_meta_conversation_item_set_in_edit_mode (DinoPluginsMetaConversationItem* self,
                                                      gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_plugins_meta_conversation_item_get_in_edit_mode (self);
	if (old_value != value) {
		self->priv->_in_edit_mode = value;
		g_object_notify_by_pspec ((GObject *) self, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_IN_EDIT_MODE_PROPERTY]);
	}
}

static void
dino_plugins_meta_conversation_item_class_init (DinoPluginsMetaConversationItemClass * klass,
                                                gpointer klass_data)
{
	dino_plugins_meta_conversation_item_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &DinoPluginsMetaConversationItem_private_offset);
	((DinoPluginsMetaConversationItemClass *) klass)->get_widget = (GObject* (*) (DinoPluginsMetaConversationItem*, DinoPluginsConversationItemWidgetInterface*, DinoPluginsWidgetType)) dino_plugins_meta_conversation_item_real_get_widget;
	((DinoPluginsMetaConversationItemClass *) klass)->get_item_actions = (GeeList* (*) (DinoPluginsMetaConversationItem*, DinoPluginsWidgetType)) dino_plugins_meta_conversation_item_real_get_item_actions;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->get_populator_id = (const gchar* (*) (DinoPluginsMetaConversationItem*)) dino_plugins_meta_conversation_item_real_get_populator_id;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->set_populator_id = (void (*) (DinoPluginsMetaConversationItem*, const gchar*)) dino_plugins_meta_conversation_item_real_set_populator_id;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->get_jid = (XmppJid* (*) (DinoPluginsMetaConversationItem*)) dino_plugins_meta_conversation_item_real_get_jid;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->set_jid = (void (*) (DinoPluginsMetaConversationItem*, XmppJid*)) dino_plugins_meta_conversation_item_real_set_jid;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->get_time = (GDateTime* (*) (DinoPluginsMetaConversationItem*)) dino_plugins_meta_conversation_item_real_get_time;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->set_time = (void (*) (DinoPluginsMetaConversationItem*, GDateTime*)) dino_plugins_meta_conversation_item_real_set_time;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->get_secondary_sort_indicator = (gint (*) (DinoPluginsMetaConversationItem*)) dino_plugins_meta_conversation_item_real_get_secondary_sort_indicator;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->set_secondary_sort_indicator = (void (*) (DinoPluginsMetaConversationItem*, gint)) dino_plugins_meta_conversation_item_real_set_secondary_sort_indicator;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->get_encryption = (DinoEntitiesEncryption (*) (DinoPluginsMetaConversationItem*)) dino_plugins_meta_conversation_item_real_get_encryption;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->set_encryption = (void (*) (DinoPluginsMetaConversationItem*, DinoEntitiesEncryption)) dino_plugins_meta_conversation_item_real_set_encryption;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->get_mark = (DinoEntitiesMessageMarked (*) (DinoPluginsMetaConversationItem*)) dino_plugins_meta_conversation_item_real_get_mark;
	DINO_PLUGINS_META_CONVERSATION_ITEM_CLASS (klass)->set_mark = (void (*) (DinoPluginsMetaConversationItem*, DinoEntitiesMessageMarked)) dino_plugins_meta_conversation_item_real_set_mark;
	G_OBJECT_CLASS (klass)->get_property = _vala_dino_plugins_meta_conversation_item_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_dino_plugins_meta_conversation_item_set_property;
	G_OBJECT_CLASS (klass)->finalize = dino_plugins_meta_conversation_item_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_POPULATOR_ID_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_POPULATOR_ID_PROPERTY] = g_param_spec_string ("populator-id", "populator-id", "populator-id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_JID_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_JID_PROPERTY] = xmpp_param_spec_jid ("jid", "jid", "jid", XMPP_TYPE_JID, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_TIME_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_TIME_PROPERTY] = g_param_spec_boxed ("time", "time", "time", G_TYPE_DATE_TIME, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_SECONDARY_SORT_INDICATOR_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_SECONDARY_SORT_INDICATOR_PROPERTY] = g_param_spec_int ("secondary-sort-indicator", "secondary-sort-indicator", "secondary-sort-indicator", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_ENCRYPTION_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_ENCRYPTION_PROPERTY] = g_param_spec_enum ("encryption", "encryption", "encryption", DINO_ENTITIES_TYPE_ENCRYPTION, DINO_ENTITIES_ENCRYPTION_NONE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_MARK_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_MARK_PROPERTY] = g_param_spec_enum ("mark", "mark", "mark", DINO_ENTITIES_MESSAGE_TYPE_MARKED, DINO_ENTITIES_MESSAGE_MARKED_NONE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_CAN_MERGE_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_CAN_MERGE_PROPERTY] = g_param_spec_boolean ("can-merge", "can-merge", "can-merge", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_AVATAR_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_AVATAR_PROPERTY] = g_param_spec_boolean ("requires-avatar", "requires-avatar", "requires-avatar", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_HEADER_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_HEADER_PROPERTY] = g_param_spec_boolean ("requires-header", "requires-header", "requires-header", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_PLUGINS_META_CONVERSATION_ITEM_IN_EDIT_MODE_PROPERTY, dino_plugins_meta_conversation_item_properties[DINO_PLUGINS_META_CONVERSATION_ITEM_IN_EDIT_MODE_PROPERTY] = g_param_spec_boolean ("in-edit-mode", "in-edit-mode", "in-edit-mode", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
dino_plugins_meta_conversation_item_instance_init (DinoPluginsMetaConversationItem * self,
                                                   gpointer klass)
{
	GDateTime* _tmp0_;
	self->priv = dino_plugins_meta_conversation_item_get_instance_private (self);
	self->priv->_jid = NULL;
	_tmp0_ = g_date_time_new_now_utc ();
	self->priv->_time = _tmp0_;
	self->priv->_encryption = DINO_ENTITIES_ENCRYPTION_NONE;
	self->priv->_mark = DINO_ENTITIES_MESSAGE_MARKED_NONE;
	self->priv->_can_merge = FALSE;
	self->priv->_requires_avatar = FALSE;
	self->priv->_requires_header = FALSE;
	self->priv->_in_edit_mode = FALSE;
}

static void
dino_plugins_meta_conversation_item_finalize (GObject * obj)
{
	DinoPluginsMetaConversationItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_PLUGINS_TYPE_META_CONVERSATION_ITEM, DinoPluginsMetaConversationItem);
	_g_free0 (self->priv->_populator_id);
	_xmpp_jid_unref0 (self->priv->_jid);
	_g_date_time_unref0 (self->priv->_time);
	G_OBJECT_CLASS (dino_plugins_meta_conversation_item_parent_class)->finalize (obj);
}

static GType
dino_plugins_meta_conversation_item_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsMetaConversationItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_meta_conversation_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoPluginsMetaConversationItem), 0, (GInstanceInitFunc) dino_plugins_meta_conversation_item_instance_init, NULL };
	GType dino_plugins_meta_conversation_item_type_id;
	dino_plugins_meta_conversation_item_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoPluginsMetaConversationItem", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	DinoPluginsMetaConversationItem_private_offset = g_type_add_instance_private (dino_plugins_meta_conversation_item_type_id, sizeof (DinoPluginsMetaConversationItemPrivate));
	return dino_plugins_meta_conversation_item_type_id;
}

GType
dino_plugins_meta_conversation_item_get_type (void)
{
	static volatile gsize dino_plugins_meta_conversation_item_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_meta_conversation_item_type_id__once)) {
		GType dino_plugins_meta_conversation_item_type_id;
		dino_plugins_meta_conversation_item_type_id = dino_plugins_meta_conversation_item_get_type_once ();
		g_once_init_leave (&dino_plugins_meta_conversation_item_type_id__once, dino_plugins_meta_conversation_item_type_id);
	}
	return dino_plugins_meta_conversation_item_type_id__once;
}

static void
_vala_dino_plugins_meta_conversation_item_get_property (GObject * object,
                                                        guint property_id,
                                                        GValue * value,
                                                        GParamSpec * pspec)
{
	DinoPluginsMetaConversationItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_PLUGINS_TYPE_META_CONVERSATION_ITEM, DinoPluginsMetaConversationItem);
	switch (property_id) {
		case DINO_PLUGINS_META_CONVERSATION_ITEM_POPULATOR_ID_PROPERTY:
		g_value_set_string (value, dino_plugins_meta_conversation_item_get_populator_id (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_JID_PROPERTY:
		xmpp_value_set_jid (value, dino_plugins_meta_conversation_item_get_jid (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_TIME_PROPERTY:
		g_value_set_boxed (value, dino_plugins_meta_conversation_item_get_time (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_SECONDARY_SORT_INDICATOR_PROPERTY:
		g_value_set_int (value, dino_plugins_meta_conversation_item_get_secondary_sort_indicator (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_ENCRYPTION_PROPERTY:
		g_value_set_enum (value, dino_plugins_meta_conversation_item_get_encryption (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_MARK_PROPERTY:
		g_value_set_enum (value, dino_plugins_meta_conversation_item_get_mark (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_CAN_MERGE_PROPERTY:
		g_value_set_boolean (value, dino_plugins_meta_conversation_item_get_can_merge (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_AVATAR_PROPERTY:
		g_value_set_boolean (value, dino_plugins_meta_conversation_item_get_requires_avatar (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_HEADER_PROPERTY:
		g_value_set_boolean (value, dino_plugins_meta_conversation_item_get_requires_header (self));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_IN_EDIT_MODE_PROPERTY:
		g_value_set_boolean (value, dino_plugins_meta_conversation_item_get_in_edit_mode (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_dino_plugins_meta_conversation_item_set_property (GObject * object,
                                                        guint property_id,
                                                        const GValue * value,
                                                        GParamSpec * pspec)
{
	DinoPluginsMetaConversationItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_PLUGINS_TYPE_META_CONVERSATION_ITEM, DinoPluginsMetaConversationItem);
	switch (property_id) {
		case DINO_PLUGINS_META_CONVERSATION_ITEM_POPULATOR_ID_PROPERTY:
		dino_plugins_meta_conversation_item_set_populator_id (self, g_value_get_string (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_JID_PROPERTY:
		dino_plugins_meta_conversation_item_set_jid (self, xmpp_value_get_jid (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_TIME_PROPERTY:
		dino_plugins_meta_conversation_item_set_time (self, g_value_get_boxed (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_SECONDARY_SORT_INDICATOR_PROPERTY:
		dino_plugins_meta_conversation_item_set_secondary_sort_indicator (self, g_value_get_int (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_ENCRYPTION_PROPERTY:
		dino_plugins_meta_conversation_item_set_encryption (self, g_value_get_enum (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_MARK_PROPERTY:
		dino_plugins_meta_conversation_item_set_mark (self, g_value_get_enum (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_CAN_MERGE_PROPERTY:
		dino_plugins_meta_conversation_item_set_can_merge (self, g_value_get_boolean (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_AVATAR_PROPERTY:
		dino_plugins_meta_conversation_item_set_requires_avatar (self, g_value_get_boolean (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_REQUIRES_HEADER_PROPERTY:
		dino_plugins_meta_conversation_item_set_requires_header (self, g_value_get_boolean (value));
		break;
		case DINO_PLUGINS_META_CONVERSATION_ITEM_IN_EDIT_MODE_PROPERTY:
		dino_plugins_meta_conversation_item_set_in_edit_mode (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

void
dino_plugins_conversation_item_widget_interface_set_widget (DinoPluginsConversationItemWidgetInterface* self,
                                                            GObject* object,
                                                            DinoPluginsWidgetType type,
                                                            gint priority)
{
	DinoPluginsConversationItemWidgetInterfaceIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_ITEM_WIDGET_INTERFACE_GET_INTERFACE (self);
	if (_iface_->set_widget) {
		_iface_->set_widget (self, object, type, priority);
	}
}

static void
dino_plugins_conversation_item_widget_interface_default_init (DinoPluginsConversationItemWidgetInterfaceIface * iface,
                                                              gpointer iface_data)
{
}

static GType
dino_plugins_conversation_item_widget_interface_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsConversationItemWidgetInterfaceIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_conversation_item_widget_interface_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_conversation_item_widget_interface_type_id;
	dino_plugins_conversation_item_widget_interface_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsConversationItemWidgetInterface", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_conversation_item_widget_interface_type_id, G_TYPE_OBJECT);
	return dino_plugins_conversation_item_widget_interface_type_id;
}

GType
dino_plugins_conversation_item_widget_interface_get_type (void)
{
	static volatile gsize dino_plugins_conversation_item_widget_interface_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_conversation_item_widget_interface_type_id__once)) {
		GType dino_plugins_conversation_item_widget_interface_type_id;
		dino_plugins_conversation_item_widget_interface_type_id = dino_plugins_conversation_item_widget_interface_get_type_once ();
		g_once_init_leave (&dino_plugins_conversation_item_widget_interface_type_id__once, dino_plugins_conversation_item_widget_interface_type_id);
	}
	return dino_plugins_conversation_item_widget_interface_type_id__once;
}

DinoPluginsMessageAction*
dino_plugins_message_action_construct (GType object_type)
{
	DinoPluginsMessageAction * self = NULL;
	self = (DinoPluginsMessageAction*) g_object_new (object_type, NULL);
	return self;
}

DinoPluginsMessageAction*
dino_plugins_message_action_new (void)
{
	return dino_plugins_message_action_construct (DINO_PLUGINS_TYPE_MESSAGE_ACTION);
}

static void
dino_plugins_message_action_class_init (DinoPluginsMessageActionClass * klass,
                                        gpointer klass_data)
{
	dino_plugins_message_action_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = dino_plugins_message_action_finalize;
}

static void
dino_plugins_message_action_instance_init (DinoPluginsMessageAction * self,
                                           gpointer klass)
{
	self->sensitive = TRUE;
}

static void
dino_plugins_message_action_finalize (GObject * obj)
{
	DinoPluginsMessageAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_PLUGINS_TYPE_MESSAGE_ACTION, DinoPluginsMessageAction);
	_g_free0 (self->name);
	_g_free0 (self->icon_name);
	_g_free0 (self->tooltip);
	_g_object_unref0 (self->popover);
	(self->callback_target_destroy_notify == NULL) ? NULL : (self->callback_target_destroy_notify (self->callback_target), NULL);
	self->callback = NULL;
	self->callback_target = NULL;
	self->callback_target_destroy_notify = NULL;
	G_OBJECT_CLASS (dino_plugins_message_action_parent_class)->finalize (obj);
}

static GType
dino_plugins_message_action_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsMessageActionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_message_action_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoPluginsMessageAction), 0, (GInstanceInitFunc) dino_plugins_message_action_instance_init, NULL };
	GType dino_plugins_message_action_type_id;
	dino_plugins_message_action_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoPluginsMessageAction", &g_define_type_info, 0);
	return dino_plugins_message_action_type_id;
}

GType
dino_plugins_message_action_get_type (void)
{
	static volatile gsize dino_plugins_message_action_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_message_action_type_id__once)) {
		GType dino_plugins_message_action_type_id;
		dino_plugins_message_action_type_id = dino_plugins_message_action_get_type_once ();
		g_once_init_leave (&dino_plugins_message_action_type_id__once, dino_plugins_message_action_type_id);
	}
	return dino_plugins_message_action_type_id__once;
}

static GObject*
dino_plugins_meta_conversation_notification_real_get_widget (DinoPluginsMetaConversationNotification* self,
                                                             DinoPluginsWidgetType type)
{
	g_critical ("Type `%s' does not implement abstract method `dino_plugins_meta_conversation_notification_get_widget'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}

GObject*
dino_plugins_meta_conversation_notification_get_widget (DinoPluginsMetaConversationNotification* self,
                                                        DinoPluginsWidgetType type)
{
	DinoPluginsMetaConversationNotificationClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = DINO_PLUGINS_META_CONVERSATION_NOTIFICATION_GET_CLASS (self);
	if (_klass_->get_widget) {
		return _klass_->get_widget (self, type);
	}
	return NULL;
}

DinoPluginsMetaConversationNotification*
dino_plugins_meta_conversation_notification_construct (GType object_type)
{
	DinoPluginsMetaConversationNotification * self = NULL;
	self = (DinoPluginsMetaConversationNotification*) g_object_new (object_type, NULL);
	return self;
}

static void
dino_plugins_meta_conversation_notification_class_init (DinoPluginsMetaConversationNotificationClass * klass,
                                                        gpointer klass_data)
{
	dino_plugins_meta_conversation_notification_parent_class = g_type_class_peek_parent (klass);
	((DinoPluginsMetaConversationNotificationClass *) klass)->get_widget = (GObject* (*) (DinoPluginsMetaConversationNotification*, DinoPluginsWidgetType)) dino_plugins_meta_conversation_notification_real_get_widget;
}

static void
dino_plugins_meta_conversation_notification_instance_init (DinoPluginsMetaConversationNotification * self,
                                                           gpointer klass)
{
}

static GType
dino_plugins_meta_conversation_notification_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsMetaConversationNotificationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_meta_conversation_notification_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoPluginsMetaConversationNotification), 0, (GInstanceInitFunc) dino_plugins_meta_conversation_notification_instance_init, NULL };
	GType dino_plugins_meta_conversation_notification_type_id;
	dino_plugins_meta_conversation_notification_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoPluginsMetaConversationNotification", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return dino_plugins_meta_conversation_notification_type_id;
}

GType
dino_plugins_meta_conversation_notification_get_type (void)
{
	static volatile gsize dino_plugins_meta_conversation_notification_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_meta_conversation_notification_type_id__once)) {
		GType dino_plugins_meta_conversation_notification_type_id;
		dino_plugins_meta_conversation_notification_type_id = dino_plugins_meta_conversation_notification_get_type_once ();
		g_once_init_leave (&dino_plugins_meta_conversation_notification_type_id__once, dino_plugins_meta_conversation_notification_type_id);
	}
	return dino_plugins_meta_conversation_notification_type_id__once;
}

void
dino_plugins_conversation_item_collection_insert_item (DinoPluginsConversationItemCollection* self,
                                                       DinoPluginsMetaConversationItem* item)
{
	DinoPluginsConversationItemCollectionIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_ITEM_COLLECTION_GET_INTERFACE (self);
	if (_iface_->insert_item) {
		_iface_->insert_item (self, item);
	}
}

void
dino_plugins_conversation_item_collection_remove_item (DinoPluginsConversationItemCollection* self,
                                                       DinoPluginsMetaConversationItem* item)
{
	DinoPluginsConversationItemCollectionIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = DINO_PLUGINS_CONVERSATION_ITEM_COLLECTION_GET_INTERFACE (self);
	if (_iface_->remove_item) {
		_iface_->remove_item (self, item);
	}
}

static void
dino_plugins_conversation_item_collection_default_init (DinoPluginsConversationItemCollectionIface * iface,
                                                        gpointer iface_data)
{
	dino_plugins_conversation_item_collection_signals[DINO_PLUGINS_CONVERSATION_ITEM_COLLECTION_INSERTED_ITEM_SIGNAL] = g_signal_new ("inserted-item", DINO_PLUGINS_TYPE_CONVERSATION_ITEM_COLLECTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, DINO_PLUGINS_TYPE_META_CONVERSATION_ITEM);
	dino_plugins_conversation_item_collection_signals[DINO_PLUGINS_CONVERSATION_ITEM_COLLECTION_REMOVED_ITEM_SIGNAL] = g_signal_new ("removed-item", DINO_PLUGINS_TYPE_CONVERSATION_ITEM_COLLECTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, DINO_PLUGINS_TYPE_META_CONVERSATION_ITEM);
}

static GType
dino_plugins_conversation_item_collection_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsConversationItemCollectionIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_conversation_item_collection_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_conversation_item_collection_type_id;
	dino_plugins_conversation_item_collection_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsConversationItemCollection", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_conversation_item_collection_type_id, G_TYPE_OBJECT);
	return dino_plugins_conversation_item_collection_type_id;
}

GType
dino_plugins_conversation_item_collection_get_type (void)
{
	static volatile gsize dino_plugins_conversation_item_collection_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_conversation_item_collection_type_id__once)) {
		GType dino_plugins_conversation_item_collection_type_id;
		dino_plugins_conversation_item_collection_type_id = dino_plugins_conversation_item_collection_get_type_once ();
		g_once_init_leave (&dino_plugins_conversation_item_collection_type_id__once, dino_plugins_conversation_item_collection_type_id);
	}
	return dino_plugins_conversation_item_collection_type_id__once;
}

static void
dino_plugins_notification_collection_default_init (DinoPluginsNotificationCollectionIface * iface,
                                                   gpointer iface_data)
{
	dino_plugins_notification_collection_signals[DINO_PLUGINS_NOTIFICATION_COLLECTION_ADD_META_NOTIFICATION_SIGNAL] = g_signal_new ("add-meta-notification", DINO_PLUGINS_TYPE_NOTIFICATION_COLLECTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, DINO_PLUGINS_TYPE_META_CONVERSATION_NOTIFICATION);
	dino_plugins_notification_collection_signals[DINO_PLUGINS_NOTIFICATION_COLLECTION_REMOVE_META_NOTIFICATION_SIGNAL] = g_signal_new ("remove-meta-notification", DINO_PLUGINS_TYPE_NOTIFICATION_COLLECTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, DINO_PLUGINS_TYPE_META_CONVERSATION_NOTIFICATION);
}

static GType
dino_plugins_notification_collection_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsNotificationCollectionIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_notification_collection_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType dino_plugins_notification_collection_type_id;
	dino_plugins_notification_collection_type_id = g_type_register_static (G_TYPE_INTERFACE, "DinoPluginsNotificationCollection", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (dino_plugins_notification_collection_type_id, G_TYPE_OBJECT);
	return dino_plugins_notification_collection_type_id;
}

GType
dino_plugins_notification_collection_get_type (void)
{
	static volatile gsize dino_plugins_notification_collection_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_notification_collection_type_id__once)) {
		GType dino_plugins_notification_collection_type_id;
		dino_plugins_notification_collection_type_id = dino_plugins_notification_collection_get_type_once ();
		g_once_init_leave (&dino_plugins_notification_collection_type_id__once, dino_plugins_notification_collection_type_id);
	}
	return dino_plugins_notification_collection_type_id__once;
}

static GType
dino_plugins_input_field_status_message_type_get_type_once (void)
{
	static const GEnumValue values[] = {{DINO_PLUGINS_INPUT_FIELD_STATUS_MESSAGE_TYPE_NONE, "DINO_PLUGINS_INPUT_FIELD_STATUS_MESSAGE_TYPE_NONE", "none"}, {DINO_PLUGINS_INPUT_FIELD_STATUS_MESSAGE_TYPE_INFO, "DINO_PLUGINS_INPUT_FIELD_STATUS_MESSAGE_TYPE_INFO", "info"}, {DINO_PLUGINS_INPUT_FIELD_STATUS_MESSAGE_TYPE_WARNING, "DINO_PLUGINS_INPUT_FIELD_STATUS_MESSAGE_TYPE_WARNING", "warning"}, {DINO_PLUGINS_INPUT_FIELD_STATUS_MESSAGE_TYPE_ERROR, "DINO_PLUGINS_INPUT_FIELD_STATUS_MESSAGE_TYPE_ERROR", "error"}, {0, NULL, NULL}};
	GType dino_plugins_input_field_status_message_type_type_id;
	dino_plugins_input_field_status_message_type_type_id = g_enum_register_static ("DinoPluginsInputFieldStatusMessageType", values);
	return dino_plugins_input_field_status_message_type_type_id;
}

GType
dino_plugins_input_field_status_message_type_get_type (void)
{
	static volatile gsize dino_plugins_input_field_status_message_type_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_input_field_status_message_type_type_id__once)) {
		GType dino_plugins_input_field_status_message_type_type_id;
		dino_plugins_input_field_status_message_type_type_id = dino_plugins_input_field_status_message_type_get_type_once ();
		g_once_init_leave (&dino_plugins_input_field_status_message_type_type_id__once, dino_plugins_input_field_status_message_type_type_id);
	}
	return dino_plugins_input_field_status_message_type_type_id__once;
}

static GType
dino_plugins_input_field_status_input_state_get_type_once (void)
{
	static const GEnumValue values[] = {{DINO_PLUGINS_INPUT_FIELD_STATUS_INPUT_STATE_NORMAL, "DINO_PLUGINS_INPUT_FIELD_STATUS_INPUT_STATE_NORMAL", "normal"}, {DINO_PLUGINS_INPUT_FIELD_STATUS_INPUT_STATE_DISABLED, "DINO_PLUGINS_INPUT_FIELD_STATUS_INPUT_STATE_DISABLED", "disabled"}, {DINO_PLUGINS_INPUT_FIELD_STATUS_INPUT_STATE_NO_SEND, "DINO_PLUGINS_INPUT_FIELD_STATUS_INPUT_STATE_NO_SEND", "no-send"}, {0, NULL, NULL}};
	GType dino_plugins_input_field_status_input_state_type_id;
	dino_plugins_input_field_status_input_state_type_id = g_enum_register_static ("DinoPluginsInputFieldStatusInputState", values);
	return dino_plugins_input_field_status_input_state_type_id;
}

GType
dino_plugins_input_field_status_input_state_get_type (void)
{
	static volatile gsize dino_plugins_input_field_status_input_state_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_input_field_status_input_state_type_id__once)) {
		GType dino_plugins_input_field_status_input_state_type_id;
		dino_plugins_input_field_status_input_state_type_id = dino_plugins_input_field_status_input_state_get_type_once ();
		g_once_init_leave (&dino_plugins_input_field_status_input_state_type_id__once, dino_plugins_input_field_status_input_state_type_id);
	}
	return dino_plugins_input_field_status_input_state_type_id__once;
}

DinoPluginsInputFieldStatus*
dino_plugins_input_field_status_construct (GType object_type,
                                           const gchar* message,
                                           DinoPluginsInputFieldStatusMessageType message_type,
                                           DinoPluginsInputFieldStatusInputState input_state,
                                           gboolean contains_markup)
{
	DinoPluginsInputFieldStatus * self = NULL;
	gchar* _tmp0_;
	self = (DinoPluginsInputFieldStatus*) g_object_new (object_type, NULL);
	_tmp0_ = g_strdup (message);
	_g_free0 (self->message);
	self->message = _tmp0_;
	self->message_type = message_type;
	self->input_state = input_state;
	self->contains_markup = contains_markup;
	return self;
}

DinoPluginsInputFieldStatus*
dino_plugins_input_field_status_new (const gchar* message,
                                     DinoPluginsInputFieldStatusMessageType message_type,
                                     DinoPluginsInputFieldStatusInputState input_state,
                                     gboolean contains_markup)
{
	return dino_plugins_input_field_status_construct (DINO_PLUGINS_TYPE_INPUT_FIELD_STATUS, message, message_type, input_state, contains_markup);
}

static void
dino_plugins_input_field_status_class_init (DinoPluginsInputFieldStatusClass * klass,
                                            gpointer klass_data)
{
	dino_plugins_input_field_status_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = dino_plugins_input_field_status_finalize;
}

static void
dino_plugins_input_field_status_instance_init (DinoPluginsInputFieldStatus * self,
                                               gpointer klass)
{
}

static void
dino_plugins_input_field_status_finalize (GObject * obj)
{
	DinoPluginsInputFieldStatus * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_PLUGINS_TYPE_INPUT_FIELD_STATUS, DinoPluginsInputFieldStatus);
	_g_free0 (self->message);
	G_OBJECT_CLASS (dino_plugins_input_field_status_parent_class)->finalize (obj);
}

static GType
dino_plugins_input_field_status_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoPluginsInputFieldStatusClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_plugins_input_field_status_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoPluginsInputFieldStatus), 0, (GInstanceInitFunc) dino_plugins_input_field_status_instance_init, NULL };
	GType dino_plugins_input_field_status_type_id;
	dino_plugins_input_field_status_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoPluginsInputFieldStatus", &g_define_type_info, 0);
	return dino_plugins_input_field_status_type_id;
}

GType
dino_plugins_input_field_status_get_type (void)
{
	static volatile gsize dino_plugins_input_field_status_type_id__once = 0;
	if (g_once_init_enter (&dino_plugins_input_field_status_type_id__once)) {
		GType dino_plugins_input_field_status_type_id;
		dino_plugins_input_field_status_type_id = dino_plugins_input_field_status_get_type_once ();
		g_once_init_leave (&dino_plugins_input_field_status_type_id__once, dino_plugins_input_field_status_type_id);
	}
	return dino_plugins_input_field_status_type_id__once;
}

