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

#include <glib-object.h>
#include <glib.h>
#include <adwaita.h>

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

#define TUBA_DIALOGS_COMPOSER_COMPONENTS_TYPE_ATTACHABLE (tuba_dialogs_composer_components_attachable_get_type ())
#define TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_COMPOSER_COMPONENTS_TYPE_ATTACHABLE, TubaDialogsComposerComponentsAttachable))
#define TUBA_DIALOGS_COMPOSER_COMPONENTS_IS_ATTACHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_COMPOSER_COMPONENTS_TYPE_ATTACHABLE))
#define TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_DIALOGS_COMPOSER_COMPONENTS_TYPE_ATTACHABLE, TubaDialogsComposerComponentsAttachableIface))

typedef struct _TubaDialogsComposerComponentsAttachable TubaDialogsComposerComponentsAttachable;
typedef struct _TubaDialogsComposerComponentsAttachableIface TubaDialogsComposerComponentsAttachableIface;
enum  {
	TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_SCROLL_SIGNAL,
	TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_TOAST_SIGNAL,
	TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_PUSH_SUBPAGE_SIGNAL,
	TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_POP_SUBPAGE_SIGNAL,
	TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_NUM_SIGNALS
};
static guint tuba_dialogs_composer_components_attachable_signals[TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_NUM_SIGNALS] = {0};

struct _TubaDialogsComposerComponentsAttachableIface {
	GTypeInterface parent_iface;
	gboolean (*get_edit_mode) (TubaDialogsComposerComponentsAttachable* self);
	void (*set_edit_mode) (TubaDialogsComposerComponentsAttachable* self, gboolean value);
};

VALA_EXTERN GType tuba_dialogs_composer_components_attachable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsComposerComponentsAttachable, g_object_unref)
VALA_EXTERN gboolean tuba_dialogs_composer_components_attachable_get_edit_mode (TubaDialogsComposerComponentsAttachable* self);
VALA_EXTERN void tuba_dialogs_composer_components_attachable_set_edit_mode (TubaDialogsComposerComponentsAttachable* self,
                                                                gboolean value);
static GType tuba_dialogs_composer_components_attachable_get_type_once (void);

gboolean
tuba_dialogs_composer_components_attachable_get_edit_mode (TubaDialogsComposerComponentsAttachable* self)
{
	TubaDialogsComposerComponentsAttachableIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_GET_INTERFACE (self);
	if (_iface_->get_edit_mode) {
		return _iface_->get_edit_mode (self);
	}
	return FALSE;
}

void
tuba_dialogs_composer_components_attachable_set_edit_mode (TubaDialogsComposerComponentsAttachable* self,
                                                           gboolean value)
{
	TubaDialogsComposerComponentsAttachableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_GET_INTERFACE (self);
	if (_iface_->set_edit_mode) {
		_iface_->set_edit_mode (self, value);
	}
}

static void
tuba_dialogs_composer_components_attachable_default_init (TubaDialogsComposerComponentsAttachableIface * iface,
                                                          gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_boolean ("edit-mode", "edit-mode", "edit-mode", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	tuba_dialogs_composer_components_attachable_signals[TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_SCROLL_SIGNAL] = g_signal_new ("scroll", TUBA_DIALOGS_COMPOSER_COMPONENTS_TYPE_ATTACHABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
	tuba_dialogs_composer_components_attachable_signals[TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_TOAST_SIGNAL] = g_signal_new ("toast", TUBA_DIALOGS_COMPOSER_COMPONENTS_TYPE_ATTACHABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, adw_toast_get_type ());
	tuba_dialogs_composer_components_attachable_signals[TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_PUSH_SUBPAGE_SIGNAL] = g_signal_new ("push-subpage", TUBA_DIALOGS_COMPOSER_COMPONENTS_TYPE_ATTACHABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, adw_navigation_page_get_type ());
	tuba_dialogs_composer_components_attachable_signals[TUBA_DIALOGS_COMPOSER_COMPONENTS_ATTACHABLE_POP_SUBPAGE_SIGNAL] = g_signal_new ("pop-subpage", TUBA_DIALOGS_COMPOSER_COMPONENTS_TYPE_ATTACHABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_composer_components_attachable_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaDialogsComposerComponentsAttachableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_dialogs_composer_components_attachable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType tuba_dialogs_composer_components_attachable_type_id;
	tuba_dialogs_composer_components_attachable_type_id = g_type_register_static (G_TYPE_INTERFACE, "TubaDialogsComposerComponentsAttachable", &g_define_type_info, G_TYPE_FLAG_NONE);
	g_type_interface_add_prerequisite (tuba_dialogs_composer_components_attachable_type_id, G_TYPE_OBJECT);
	return tuba_dialogs_composer_components_attachable_type_id;
}

GType
tuba_dialogs_composer_components_attachable_get_type (void)
{
	static GType tuba_dialogs_composer_components_attachable_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_composer_components_attachable_type_id__once)) {
		GType tuba_dialogs_composer_components_attachable_type_id;
		tuba_dialogs_composer_components_attachable_type_id = tuba_dialogs_composer_components_attachable_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_composer_components_attachable_type_id__once, tuba_dialogs_composer_components_attachable_type_id);
	}
	return tuba_dialogs_composer_components_attachable_type_id__once;
}

