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

/*
 * This file is part of budgie-desktop.
 *
 * Copyright © 2015-2022 Budgie Desktop Developers
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 */

#include "budgie-private.h"
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include "plugin.h"
#include <libpeas/peas.h>
#include <glib-object.h>

enum  {
	BUDGIE_DESKTOP_MANAGER_0_PROPERTY,
	BUDGIE_DESKTOP_MANAGER_NUM_PROPERTIES
};
static GParamSpec* budgie_desktop_manager_properties[BUDGIE_DESKTOP_MANAGER_NUM_PROPERTIES];
enum  {
	BUDGIE_DESKTOP_MANAGER_PANELS_CHANGED_SIGNAL,
	BUDGIE_DESKTOP_MANAGER_PANEL_DELETED_SIGNAL,
	BUDGIE_DESKTOP_MANAGER_PANEL_ADDED_SIGNAL,
	BUDGIE_DESKTOP_MANAGER_NUM_SIGNALS
};
static guint budgie_desktop_manager_signals[BUDGIE_DESKTOP_MANAGER_NUM_SIGNALS] = {0};

static gpointer budgie_desktop_manager_parent_class = NULL;

static GList* budgie_desktop_manager_real_get_panels (BudgieDesktopManager* self);
static guint budgie_desktop_manager_real_slots_available (BudgieDesktopManager* self);
static guint budgie_desktop_manager_real_slots_used (BudgieDesktopManager* self);
static void budgie_desktop_manager_real_set_placement (BudgieDesktopManager* self,
                                                const gchar* uuid,
                                                BudgiePanelPosition position);
static void budgie_desktop_manager_real_set_transparency (BudgieDesktopManager* self,
                                                   const gchar* uuid,
                                                   BudgiePanelTransparency transparency);
static void budgie_desktop_manager_real_set_autohide (BudgieDesktopManager* self,
                                               const gchar* uuid,
                                               BudgieAutohidePolicy policy);
static void budgie_desktop_manager_real_set_dock_mode (BudgieDesktopManager* self,
                                                const gchar* uuid,
                                                gboolean dock_mode);
static void budgie_desktop_manager_real_set_size (BudgieDesktopManager* self,
                                           const gchar* uuid,
                                           gint size);
static void budgie_desktop_manager_real_create_new_panel (BudgieDesktopManager* self);
static void budgie_desktop_manager_real_delete_panel (BudgieDesktopManager* self,
                                               const gchar* uuid);
static GList* budgie_desktop_manager_real_get_panel_plugins (BudgieDesktopManager* self);
static void g_cclosure_user_marshal_VOID__STRING_OBJECT (GClosure * closure,
                                                  GValue * return_value,
                                                  guint n_param_values,
                                                  const GValue * param_values,
                                                  gpointer invocation_hint,
                                                  gpointer marshal_data);
static GType budgie_desktop_manager_get_type_once (void);

static GList*
budgie_desktop_manager_real_get_panels (BudgieDesktopManager* self)
{
	GList* result;
	result = NULL;
	return result;
}

GList*
budgie_desktop_manager_get_panels (BudgieDesktopManager* self)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->get_panels) {
		return _klass_->get_panels (self);
	}
	return NULL;
}

static guint
budgie_desktop_manager_real_slots_available (BudgieDesktopManager* self)
{
	guint _tmp0_ = 0U;
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_slots_available'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return _tmp0_;
}

guint
budgie_desktop_manager_slots_available (BudgieDesktopManager* self)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_val_if_fail (self != NULL, 0U);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->slots_available) {
		return _klass_->slots_available (self);
	}
	return 0U;
}

static guint
budgie_desktop_manager_real_slots_used (BudgieDesktopManager* self)
{
	guint _tmp0_ = 0U;
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_slots_used'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return _tmp0_;
}

guint
budgie_desktop_manager_slots_used (BudgieDesktopManager* self)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_val_if_fail (self != NULL, 0U);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->slots_used) {
		return _klass_->slots_used (self);
	}
	return 0U;
}

static void
budgie_desktop_manager_real_set_placement (BudgieDesktopManager* self,
                                           const gchar* uuid,
                                           BudgiePanelPosition position)
{
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_set_placement'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
budgie_desktop_manager_set_placement (BudgieDesktopManager* self,
                                      const gchar* uuid,
                                      BudgiePanelPosition position)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->set_placement) {
		_klass_->set_placement (self, uuid, position);
	}
}

static void
budgie_desktop_manager_real_set_transparency (BudgieDesktopManager* self,
                                              const gchar* uuid,
                                              BudgiePanelTransparency transparency)
{
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_set_transparency'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
budgie_desktop_manager_set_transparency (BudgieDesktopManager* self,
                                         const gchar* uuid,
                                         BudgiePanelTransparency transparency)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->set_transparency) {
		_klass_->set_transparency (self, uuid, transparency);
	}
}

static void
budgie_desktop_manager_real_set_autohide (BudgieDesktopManager* self,
                                          const gchar* uuid,
                                          BudgieAutohidePolicy policy)
{
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_set_autohide'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
budgie_desktop_manager_set_autohide (BudgieDesktopManager* self,
                                     const gchar* uuid,
                                     BudgieAutohidePolicy policy)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->set_autohide) {
		_klass_->set_autohide (self, uuid, policy);
	}
}

static void
budgie_desktop_manager_real_set_dock_mode (BudgieDesktopManager* self,
                                           const gchar* uuid,
                                           gboolean dock_mode)
{
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_set_dock_mode'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
budgie_desktop_manager_set_dock_mode (BudgieDesktopManager* self,
                                      const gchar* uuid,
                                      gboolean dock_mode)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->set_dock_mode) {
		_klass_->set_dock_mode (self, uuid, dock_mode);
	}
}

static void
budgie_desktop_manager_real_set_size (BudgieDesktopManager* self,
                                      const gchar* uuid,
                                      gint size)
{
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_set_size'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
budgie_desktop_manager_set_size (BudgieDesktopManager* self,
                                 const gchar* uuid,
                                 gint size)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->set_size) {
		_klass_->set_size (self, uuid, size);
	}
}

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

void
budgie_desktop_manager_create_new_panel (BudgieDesktopManager* self)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->create_new_panel) {
		_klass_->create_new_panel (self);
	}
}

static void
budgie_desktop_manager_real_delete_panel (BudgieDesktopManager* self,
                                          const gchar* uuid)
{
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_delete_panel'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
budgie_desktop_manager_delete_panel (BudgieDesktopManager* self,
                                     const gchar* uuid)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->delete_panel) {
		_klass_->delete_panel (self, uuid);
	}
}

static GList*
budgie_desktop_manager_real_get_panel_plugins (BudgieDesktopManager* self)
{
	g_critical ("Type `%s' does not implement abstract method `budgie_desktop_manager_get_panel_plugins'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}

GList*
budgie_desktop_manager_get_panel_plugins (BudgieDesktopManager* self)
{
	BudgieDesktopManagerClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = BUDGIE_DESKTOP_MANAGER_GET_CLASS (self);
	if (_klass_->get_panel_plugins) {
		return _klass_->get_panel_plugins (self);
	}
	return NULL;
}

BudgieDesktopManager*
budgie_desktop_manager_construct (GType object_type)
{
	BudgieDesktopManager * self = NULL;
	self = (BudgieDesktopManager*) g_object_new (object_type, NULL);
	return self;
}

static void
g_cclosure_user_marshal_VOID__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_OBJECT) (gpointer data1, const char* arg_1, gpointer arg_2, gpointer data2);
	register GMarshalFunc_VOID__STRING_OBJECT 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_OBJECT) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_object (param_values + 2), data2);
}

static void
budgie_desktop_manager_class_init (BudgieDesktopManagerClass * klass,
                                   gpointer klass_data)
{
	budgie_desktop_manager_parent_class = g_type_class_peek_parent (klass);
	((BudgieDesktopManagerClass *) klass)->get_panels = (GList* (*) (BudgieDesktopManager*)) budgie_desktop_manager_real_get_panels;
	((BudgieDesktopManagerClass *) klass)->slots_available = (guint (*) (BudgieDesktopManager*)) budgie_desktop_manager_real_slots_available;
	((BudgieDesktopManagerClass *) klass)->slots_used = (guint (*) (BudgieDesktopManager*)) budgie_desktop_manager_real_slots_used;
	((BudgieDesktopManagerClass *) klass)->set_placement = (void (*) (BudgieDesktopManager*, const gchar*, BudgiePanelPosition)) budgie_desktop_manager_real_set_placement;
	((BudgieDesktopManagerClass *) klass)->set_transparency = (void (*) (BudgieDesktopManager*, const gchar*, BudgiePanelTransparency)) budgie_desktop_manager_real_set_transparency;
	((BudgieDesktopManagerClass *) klass)->set_autohide = (void (*) (BudgieDesktopManager*, const gchar*, BudgieAutohidePolicy)) budgie_desktop_manager_real_set_autohide;
	((BudgieDesktopManagerClass *) klass)->set_dock_mode = (void (*) (BudgieDesktopManager*, const gchar*, gboolean)) budgie_desktop_manager_real_set_dock_mode;
	((BudgieDesktopManagerClass *) klass)->set_size = (void (*) (BudgieDesktopManager*, const gchar*, gint)) budgie_desktop_manager_real_set_size;
	((BudgieDesktopManagerClass *) klass)->create_new_panel = (void (*) (BudgieDesktopManager*)) budgie_desktop_manager_real_create_new_panel;
	((BudgieDesktopManagerClass *) klass)->delete_panel = (void (*) (BudgieDesktopManager*, const gchar*)) budgie_desktop_manager_real_delete_panel;
	((BudgieDesktopManagerClass *) klass)->get_panel_plugins = (GList* (*) (BudgieDesktopManager*)) budgie_desktop_manager_real_get_panel_plugins;
	budgie_desktop_manager_signals[BUDGIE_DESKTOP_MANAGER_PANELS_CHANGED_SIGNAL] = g_signal_new ("panels-changed", BUDGIE_TYPE_DESKTOP_MANAGER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	budgie_desktop_manager_signals[BUDGIE_DESKTOP_MANAGER_PANEL_DELETED_SIGNAL] = g_signal_new ("panel-deleted", BUDGIE_TYPE_DESKTOP_MANAGER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	budgie_desktop_manager_signals[BUDGIE_DESKTOP_MANAGER_PANEL_ADDED_SIGNAL] = g_signal_new ("panel-added", BUDGIE_TYPE_DESKTOP_MANAGER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_OBJECT, G_TYPE_NONE, 2, G_TYPE_STRING, BUDGIE_TYPE_TOPLEVEL);
}

static void
budgie_desktop_manager_instance_init (BudgieDesktopManager * self,
                                      gpointer klass)
{
}

static GType
budgie_desktop_manager_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (BudgieDesktopManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) budgie_desktop_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BudgieDesktopManager), 0, (GInstanceInitFunc) budgie_desktop_manager_instance_init, NULL };
	GType budgie_desktop_manager_type_id;
	budgie_desktop_manager_type_id = g_type_register_static (G_TYPE_OBJECT, "BudgieDesktopManager", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return budgie_desktop_manager_type_id;
}

GType
budgie_desktop_manager_get_type (void)
{
	static volatile gsize budgie_desktop_manager_type_id__once = 0;
	if (g_once_init_enter (&budgie_desktop_manager_type_id__once)) {
		GType budgie_desktop_manager_type_id;
		budgie_desktop_manager_type_id = budgie_desktop_manager_get_type_once ();
		g_once_init_leave (&budgie_desktop_manager_type_id__once, budgie_desktop_manager_type_id);
	}
	return budgie_desktop_manager_type_id__once;
}

