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

#include "pantheon-files-core.h"
#include <stdlib.h>
#include <string.h>
#include <glib.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  {
	FILES_VIEW_CHROME_NAVIGATABLE_ENTRY_TEXT_CHANGED_SIGNAL,
	FILES_VIEW_CHROME_NAVIGATABLE_ACTIVATE_PATH_SIGNAL,
	FILES_VIEW_CHROME_NAVIGATABLE_ACTION_ICON_PRESS_SIGNAL,
	FILES_VIEW_CHROME_NAVIGATABLE_PRIMARY_ICON_PRESS_SIGNAL,
	FILES_VIEW_CHROME_NAVIGATABLE_NUM_SIGNALS
};
static guint files_view_chrome_navigatable_signals[FILES_VIEW_CHROME_NAVIGATABLE_NUM_SIGNALS] = {0};

static void files_view_chrome_navigatable_real_set_animation_visible (FilesViewChromeNavigatable* self,
                                                               gboolean visible);
static void g_cclosure_user_marshal_VOID__STRING_ENUM (GClosure * closure,
                                                GValue * return_value,
                                                guint n_param_values,
                                                const GValue * param_values,
                                                gpointer invocation_hint,
                                                gpointer marshal_data);
static GType files_view_chrome_navigatable_get_type_once (void);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

void
files_view_chrome_navigatable_set_breadcrumbs_path (FilesViewChromeNavigatable* self,
                                                    const gchar* newpath)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_breadcrumbs_path) {
		_iface_->set_breadcrumbs_path (self, newpath);
	}
}

gchar*
files_view_chrome_navigatable_get_breadcrumbs_path (FilesViewChromeNavigatable* self,
                                                    gboolean include_file_protocol)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->get_breadcrumbs_path) {
		return _iface_->get_breadcrumbs_path (self, include_file_protocol);
	}
	return NULL;
}

void
files_view_chrome_navigatable_set_action_icon_tooltip (FilesViewChromeNavigatable* self,
                                                       const gchar* tip)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_action_icon_tooltip) {
		_iface_->set_action_icon_tooltip (self, tip);
	}
}

void
files_view_chrome_navigatable_hide_action_icon (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->hide_action_icon) {
		_iface_->hide_action_icon (self);
	}
}

void
files_view_chrome_navigatable_set_entry_text (FilesViewChromeNavigatable* self,
                                              const gchar* txt)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_entry_text) {
		_iface_->set_entry_text (self, txt);
	}
}

void
files_view_chrome_navigatable_reset (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->reset) {
		_iface_->reset (self);
	}
}

static void
files_view_chrome_navigatable_real_set_animation_visible (FilesViewChromeNavigatable* self,
                                                          gboolean visible)
{
}

void
files_view_chrome_navigatable_set_animation_visible (FilesViewChromeNavigatable* self,
                                                     gboolean visible)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_animation_visible) {
		_iface_->set_animation_visible (self, visible);
	}
}

void
files_view_chrome_navigatable_set_placeholder (FilesViewChromeNavigatable* self,
                                               const gchar* placeholder)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_placeholder) {
		_iface_->set_placeholder (self, placeholder);
	}
}

void
files_view_chrome_navigatable_show_default_action_icon (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->show_default_action_icon) {
		_iface_->show_default_action_icon (self);
	}
}

void
files_view_chrome_navigatable_set_default_action_icon_tooltip (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_default_action_icon_tooltip) {
		_iface_->set_default_action_icon_tooltip (self);
	}
}

gchar*
files_view_chrome_navigatable_get_entry_text (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->get_entry_text) {
		return _iface_->get_entry_text (self);
	}
	return NULL;
}

gint
files_view_chrome_navigatable_get_minimum_width (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_val_if_fail (self != NULL, -1);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->get_minimum_width) {
		return _iface_->get_minimum_width (self);
	}
	return -1;
}

void
files_view_chrome_navigatable_set_default_entry_tooltip (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_default_entry_tooltip) {
		_iface_->set_default_entry_tooltip (self);
	}
}

const gchar*
files_view_chrome_navigatable_get_action_icon_name (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->get_action_icon_name) {
		return _iface_->get_action_icon_name (self);
	}
	return NULL;
}

void
files_view_chrome_navigatable_set_action_icon_name (FilesViewChromeNavigatable* self,
                                                    const gchar* value)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_action_icon_name) {
		_iface_->set_action_icon_name (self, value);
	}
}

gboolean
files_view_chrome_navigatable_get_hide_breadcrumbs (FilesViewChromeNavigatable* self)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->get_hide_breadcrumbs) {
		return _iface_->get_hide_breadcrumbs (self);
	}
	return FALSE;
}

void
files_view_chrome_navigatable_set_hide_breadcrumbs (FilesViewChromeNavigatable* self,
                                                    gboolean value)
{
	FilesViewChromeNavigatableIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = FILES_VIEW_CHROME_NAVIGATABLE_GET_INTERFACE (self);
	if (_iface_->set_hide_breadcrumbs) {
		_iface_->set_hide_breadcrumbs (self, value);
	}
}

static void
g_cclosure_user_marshal_VOID__STRING_ENUM (GClosure * closure,
                                           GValue * return_value,
                                           guint n_param_values,
                                           const GValue * param_values,
                                           gpointer invocation_hint,
                                           gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__STRING_ENUM) (gpointer data1, const char* arg_1, gint arg_2, gpointer data2);
	register GMarshalFunc_VOID__STRING_ENUM 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_ENUM) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_enum (param_values + 2), data2);
}

static void
files_view_chrome_navigatable_default_init (FilesViewChromeNavigatableIface * iface,
                                            gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_string ("action-icon-name", "action-icon-name", "action-icon-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_boolean ("hide-breadcrumbs", "hide-breadcrumbs", "hide-breadcrumbs", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	files_view_chrome_navigatable_signals[FILES_VIEW_CHROME_NAVIGATABLE_ENTRY_TEXT_CHANGED_SIGNAL] = g_signal_new ("entry-text-changed", FILES_VIEW_CHROME_TYPE_NAVIGATABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	files_view_chrome_navigatable_signals[FILES_VIEW_CHROME_NAVIGATABLE_ACTIVATE_PATH_SIGNAL] = g_signal_new ("activate-path", FILES_VIEW_CHROME_TYPE_NAVIGATABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_ENUM, G_TYPE_NONE, 2, G_TYPE_STRING, FILES_TYPE_OPEN_FLAG);
	files_view_chrome_navigatable_signals[FILES_VIEW_CHROME_NAVIGATABLE_ACTION_ICON_PRESS_SIGNAL] = g_signal_new ("action-icon-press", FILES_VIEW_CHROME_TYPE_NAVIGATABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	files_view_chrome_navigatable_signals[FILES_VIEW_CHROME_NAVIGATABLE_PRIMARY_ICON_PRESS_SIGNAL] = g_signal_new ("primary-icon-press", FILES_VIEW_CHROME_TYPE_NAVIGATABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	iface->set_animation_visible = files_view_chrome_navigatable_real_set_animation_visible;
}

 G_GNUC_NO_INLINE static GType
files_view_chrome_navigatable_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (FilesViewChromeNavigatableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) files_view_chrome_navigatable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType files_view_chrome_navigatable_type_id;
	files_view_chrome_navigatable_type_id = g_type_register_static (G_TYPE_INTERFACE, "FilesViewChromeNavigatable", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (files_view_chrome_navigatable_type_id, gtk_widget_get_type ());
	return files_view_chrome_navigatable_type_id;
}

GType
files_view_chrome_navigatable_get_type (void)
{
	static volatile gsize files_view_chrome_navigatable_type_id__once = 0;
	if (g_once_init_enter (&files_view_chrome_navigatable_type_id__once)) {
		GType files_view_chrome_navigatable_type_id;
		files_view_chrome_navigatable_type_id = files_view_chrome_navigatable_get_type_once ();
		g_once_init_leave (&files_view_chrome_navigatable_type_id__once, files_view_chrome_navigatable_type_id);
	}
	return files_view_chrome_navigatable_type_id__once;
}

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

