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

/**/
/*  Copyright (C) 2011 Robert Dyer*/
/**/
/*  This file is part of Plank.*/
/**/
/*  Plank is free software: you can redistribute it and/or modify*/
/*  it under the terms of the GNU General Public License as published by*/
/*  the Free Software Foundation, either version 3 of the License, or*/
/*  (at your option) any later version.*/
/**/
/*  Plank is distributed in the hope that it will be useful,*/
/*  but WITHOUT ANY WARRANTY; without even the implied warranty of*/
/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*/
/*  GNU General Public License for more details.*/
/**/
/*  You should have received a copy of the GNU General Public License*/
/*  along with this program.  If not, see <http://www.gnu.org/licenses/>.*/
/**/

#include "plank.h"
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gio/gio.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

static GType plank_docklet_get_type_once (void);

const gchar*
plank_docklet_get_id (PlankDocklet* self)
{
	PlankDockletIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PLANK_DOCKLET_GET_INTERFACE (self);
	if (_iface_->get_id) {
		return _iface_->get_id (self);
	}
	return NULL;
}

const gchar*
plank_docklet_get_name (PlankDocklet* self)
{
	PlankDockletIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PLANK_DOCKLET_GET_INTERFACE (self);
	if (_iface_->get_name) {
		return _iface_->get_name (self);
	}
	return NULL;
}

const gchar*
plank_docklet_get_description (PlankDocklet* self)
{
	PlankDockletIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PLANK_DOCKLET_GET_INTERFACE (self);
	if (_iface_->get_description) {
		return _iface_->get_description (self);
	}
	return NULL;
}

const gchar*
plank_docklet_get_icon (PlankDocklet* self)
{
	PlankDockletIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PLANK_DOCKLET_GET_INTERFACE (self);
	if (_iface_->get_icon) {
		return _iface_->get_icon (self);
	}
	return NULL;
}

gboolean
plank_docklet_is_supported (PlankDocklet* self)
{
	PlankDockletIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = PLANK_DOCKLET_GET_INTERFACE (self);
	if (_iface_->is_supported) {
		return _iface_->is_supported (self);
	}
	return FALSE;
}

PlankDockElement*
plank_docklet_make_element (PlankDocklet* self,
                            const gchar* launcher,
                            GFile* file)
{
	PlankDockletIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PLANK_DOCKLET_GET_INTERFACE (self);
	if (_iface_->make_element) {
		return _iface_->make_element (self, launcher, file);
	}
	return NULL;
}

static void
plank_docklet_default_init (PlankDockletIface * iface,
                            gpointer iface_data)
{
}

/**
 * The common interface for all docklets.
 */
static GType
plank_docklet_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PlankDockletIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plank_docklet_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType plank_docklet_type_id;
	plank_docklet_type_id = g_type_register_static (G_TYPE_INTERFACE, "PlankDocklet", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (plank_docklet_type_id, G_TYPE_OBJECT);
	return plank_docklet_type_id;
}

GType
plank_docklet_get_type (void)
{
	static volatile gsize plank_docklet_type_id__once = 0;
	if (g_once_init_enter (&plank_docklet_type_id__once)) {
		GType plank_docklet_type_id;
		plank_docklet_type_id = plank_docklet_get_type_once ();
		g_once_init_leave (&plank_docklet_type_id__once, plank_docklet_type_id);
	}
	return plank_docklet_type_id__once;
}

