/* settings_wm.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from settings_wm.vala, do not modify */

/*
 * This file is part of budgie-desktop
 *
 * Copyright Budgie Desktop Developers
 *
 * This program 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 2 of the License, or
 * (at your option) any later version.
 */

#include <gtk/gtk.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib/gi18n-lib.h>

#define BUDGIE_SETTINGS_GROUP_APPEARANCE "appearance"
#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 BUDGIE_TYPE_SETTINGS_PAGE (budgie_settings_page_get_type ())
#define BUDGIE_SETTINGS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_SETTINGS_PAGE, BudgieSettingsPage))
#define BUDGIE_SETTINGS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_SETTINGS_PAGE, BudgieSettingsPageClass))
#define BUDGIE_IS_SETTINGS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_SETTINGS_PAGE))
#define BUDGIE_IS_SETTINGS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_SETTINGS_PAGE))
#define BUDGIE_SETTINGS_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_SETTINGS_PAGE, BudgieSettingsPageClass))

typedef struct _BudgieSettingsPage BudgieSettingsPage;
typedef struct _BudgieSettingsPageClass BudgieSettingsPageClass;
typedef struct _BudgieSettingsPagePrivate BudgieSettingsPagePrivate;

#define BUDGIE_TYPE_WINDOWS_PAGE (budgie_windows_page_get_type ())
#define BUDGIE_WINDOWS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_WINDOWS_PAGE, BudgieWindowsPage))
#define BUDGIE_WINDOWS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_WINDOWS_PAGE, BudgieWindowsPageClass))
#define BUDGIE_IS_WINDOWS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_WINDOWS_PAGE))
#define BUDGIE_IS_WINDOWS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_WINDOWS_PAGE))
#define BUDGIE_WINDOWS_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_WINDOWS_PAGE, BudgieWindowsPageClass))

typedef struct _BudgieWindowsPage BudgieWindowsPage;
typedef struct _BudgieWindowsPageClass BudgieWindowsPageClass;
typedef struct _BudgieWindowsPagePrivate BudgieWindowsPagePrivate;
enum  {
	BUDGIE_WINDOWS_PAGE_0_PROPERTY,
	BUDGIE_WINDOWS_PAGE_NUM_PROPERTIES
};
static GParamSpec* budgie_windows_page_properties[BUDGIE_WINDOWS_PAGE_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define BUDGIE_TYPE_SETTINGS_GRID (budgie_settings_grid_get_type ())
#define BUDGIE_SETTINGS_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_SETTINGS_GRID, BudgieSettingsGrid))
#define BUDGIE_SETTINGS_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_SETTINGS_GRID, BudgieSettingsGridClass))
#define BUDGIE_IS_SETTINGS_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_SETTINGS_GRID))
#define BUDGIE_IS_SETTINGS_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_SETTINGS_GRID))
#define BUDGIE_SETTINGS_GRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_SETTINGS_GRID, BudgieSettingsGridClass))

typedef struct _BudgieSettingsGrid BudgieSettingsGrid;
typedef struct _BudgieSettingsGridClass BudgieSettingsGridClass;

#define BUDGIE_TYPE_SETTINGS_ROW (budgie_settings_row_get_type ())
#define BUDGIE_SETTINGS_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_TYPE_SETTINGS_ROW, BudgieSettingsRow))
#define BUDGIE_SETTINGS_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_TYPE_SETTINGS_ROW, BudgieSettingsRowClass))
#define BUDGIE_IS_SETTINGS_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_TYPE_SETTINGS_ROW))
#define BUDGIE_IS_SETTINGS_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_TYPE_SETTINGS_ROW))
#define BUDGIE_SETTINGS_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_TYPE_SETTINGS_ROW, BudgieSettingsRowClass))

typedef struct _BudgieSettingsRow BudgieSettingsRow;
typedef struct _BudgieSettingsRowClass BudgieSettingsRowClass;

struct _BudgieSettingsPage {
	GtkBox parent_instance;
	BudgieSettingsPagePrivate * priv;
};

struct _BudgieSettingsPageClass {
	GtkBoxClass parent_class;
};

struct _BudgieWindowsPage {
	BudgieSettingsPage parent_instance;
	BudgieWindowsPagePrivate * priv;
};

struct _BudgieWindowsPageClass {
	BudgieSettingsPageClass parent_class;
};

struct _BudgieWindowsPagePrivate {
	GSettings* budgie_wm_settings;
	GtkSwitch* center_windows;
	GtkSwitch* disable_night_light;
	GtkSwitch* pause_notifications;
	GtkComboBox* combo_layouts;
	GtkComboBox* combo_window_focus_mode;
	GtkSwitch* switch_tiling;
	GtkSwitch* switch_all_windows_tabswitcher;
};

static gint BudgieWindowsPage_private_offset;
static gpointer budgie_windows_page_parent_class = NULL;

VALA_EXTERN GType budgie_settings_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieSettingsPage, g_object_unref)
VALA_EXTERN GType budgie_windows_page_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieWindowsPage, g_object_unref)
VALA_EXTERN BudgieWindowsPage* budgie_windows_page_new (void);
VALA_EXTERN BudgieWindowsPage* budgie_windows_page_construct (GType object_type);
VALA_EXTERN GType budgie_settings_grid_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieSettingsGrid, g_object_unref)
VALA_EXTERN BudgieSettingsGrid* budgie_settings_grid_new (void);
VALA_EXTERN BudgieSettingsGrid* budgie_settings_grid_construct (GType object_type);
VALA_EXTERN GType budgie_settings_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieSettingsRow, g_object_unref)
VALA_EXTERN void budgie_settings_grid_add_row (BudgieSettingsGrid* self,
                                   BudgieSettingsRow* row);
VALA_EXTERN BudgieSettingsRow* budgie_settings_row_new (GtkWidget* widget,
                                            const gchar* label,
                                            const gchar* description);
VALA_EXTERN BudgieSettingsRow* budgie_settings_row_construct (GType object_type,
                                                  GtkWidget* widget,
                                                  const gchar* label,
                                                  const gchar* description);
static void budgie_windows_page_finalize (GObject * obj);
static GType budgie_windows_page_get_type_once (void);

static inline gpointer
budgie_windows_page_get_instance_private (BudgieWindowsPage* self)
{
	return G_STRUCT_MEMBER_P (self, BudgieWindowsPage_private_offset);
}

BudgieWindowsPage*
budgie_windows_page_construct (GType object_type)
{
	BudgieWindowsPage * self = NULL;
	BudgieSettingsGrid* grid = NULL;
	BudgieSettingsGrid* _tmp0_;
	GtkComboBox* _tmp1_;
	GtkComboBox* _tmp2_;
	BudgieSettingsRow* _tmp3_;
	BudgieSettingsRow* _tmp4_;
	GtkSwitch* _tmp5_;
	GtkSwitch* _tmp6_;
	BudgieSettingsRow* _tmp7_;
	BudgieSettingsRow* _tmp8_;
	GtkSwitch* _tmp9_;
	GtkSwitch* _tmp10_;
	BudgieSettingsRow* _tmp11_;
	BudgieSettingsRow* _tmp12_;
	GtkSwitch* _tmp13_;
	GtkSwitch* _tmp14_;
	BudgieSettingsRow* _tmp15_;
	BudgieSettingsRow* _tmp16_;
	GtkSwitch* _tmp17_;
	GtkSwitch* _tmp18_;
	BudgieSettingsRow* _tmp19_;
	BudgieSettingsRow* _tmp20_;
	GtkComboBox* _tmp21_;
	GtkComboBox* _tmp22_;
	BudgieSettingsRow* _tmp23_;
	BudgieSettingsRow* _tmp24_;
	GtkSwitch* _tmp25_;
	GtkSwitch* _tmp26_;
	BudgieSettingsRow* _tmp27_;
	BudgieSettingsRow* _tmp28_;
	GtkListStore* model = NULL;
	GtkListStore* _tmp29_;
	GtkTreeIter iter = {0};
	GtkTreeIter _tmp30_ = {0};
	GtkTreeIter _tmp31_;
	GtkTreeIter _tmp32_ = {0};
	GtkTreeIter _tmp33_;
	GtkComboBox* _tmp34_;
	GtkComboBox* _tmp35_;
	GtkCellRendererText* render = NULL;
	GtkCellRendererText* _tmp36_;
	GtkComboBox* _tmp37_;
	GtkComboBox* _tmp38_;
	GtkComboBox* _tmp39_;
	GtkListStore* focus_model = NULL;
	GtkListStore* _tmp40_;
	GtkTreeIter focus_iter = {0};
	GtkTreeIter _tmp41_ = {0};
	GtkTreeIter _tmp42_;
	GtkTreeIter _tmp43_ = {0};
	GtkTreeIter _tmp44_;
	GtkTreeIter _tmp45_ = {0};
	GtkTreeIter _tmp46_;
	GtkComboBox* _tmp47_;
	GtkComboBox* _tmp48_;
	GtkCellRendererText* focus_render = NULL;
	GtkCellRendererText* _tmp49_;
	GtkComboBox* _tmp50_;
	GtkComboBox* _tmp51_;
	GtkComboBox* _tmp52_;
	GSettings* _tmp53_;
	GSettings* _tmp54_;
	GtkComboBox* _tmp55_;
	GSettings* _tmp56_;
	GtkSwitch* _tmp57_;
	GSettings* _tmp58_;
	GtkSwitch* _tmp59_;
	GSettings* _tmp60_;
	GtkSwitch* _tmp61_;
	GSettings* _tmp62_;
	GtkSwitch* _tmp63_;
	GSettings* _tmp64_;
	GtkComboBox* _tmp65_;
	GSettings* _tmp66_;
	GtkSwitch* _tmp67_;
	self = (BudgieWindowsPage*) g_object_new (object_type, "group", BUDGIE_SETTINGS_GROUP_APPEARANCE, "content-id", "windows", "title", _ ("Windows"), "display-weight", 4, "icon-name", "preferences-system-windows", NULL);
	_tmp0_ = budgie_settings_grid_new ();
	g_object_ref_sink (_tmp0_);
	grid = _tmp0_;
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) grid);
	_tmp1_ = (GtkComboBox*) gtk_combo_box_new ();
	g_object_ref_sink (_tmp1_);
	_g_object_unref0 (self->priv->combo_layouts);
	self->priv->combo_layouts = _tmp1_;
	_tmp2_ = self->priv->combo_layouts;
	_tmp3_ = budgie_settings_row_new ((GtkWidget*) _tmp2_, _ ("Button layout"), _ ("Change the layout of buttons in application titlebars."));
	_tmp4_ = _tmp3_;
	budgie_settings_grid_add_row (grid, _tmp4_);
	_g_object_unref0 (_tmp4_);
	_tmp5_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp5_);
	_g_object_unref0 (self->priv->center_windows);
	self->priv->center_windows = _tmp5_;
	_tmp6_ = self->priv->center_windows;
	_tmp7_ = budgie_settings_row_new ((GtkWidget*) _tmp6_, _ ("Center new windows on screen"), _ ("Center newly launched windows on the current screen."));
	_tmp8_ = _tmp7_;
	budgie_settings_grid_add_row (grid, _tmp8_);
	_g_object_unref0 (_tmp8_);
	_tmp9_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp9_);
	_g_object_unref0 (self->priv->disable_night_light);
	self->priv->disable_night_light = _tmp9_;
	_tmp10_ = self->priv->disable_night_light;
	_tmp11_ = budgie_settings_row_new ((GtkWidget*) _tmp10_, _ ("Disable Night Light mode when windows are fullscreen"), _ ("Disables Night Light mode when a window is fullscreen. Re-enables when" \
" leaving fullscreen."));
	_tmp12_ = _tmp11_;
	budgie_settings_grid_add_row (grid, _tmp12_);
	_g_object_unref0 (_tmp12_);
	_tmp13_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp13_);
	_g_object_unref0 (self->priv->pause_notifications);
	self->priv->pause_notifications = _tmp13_;
	_tmp14_ = self->priv->pause_notifications;
	_tmp15_ = budgie_settings_row_new ((GtkWidget*) _tmp14_, _ ("Pause notifications when windows are fullscreen"), _ ("Prevents notifications from appearing when a window is fullscreen. Unp" \
"auses when leaving fullscreen."));
	_tmp16_ = _tmp15_;
	budgie_settings_grid_add_row (grid, _tmp16_);
	_g_object_unref0 (_tmp16_);
	_tmp17_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp17_);
	_g_object_unref0 (self->priv->switch_tiling);
	self->priv->switch_tiling = _tmp17_;
	_tmp18_ = self->priv->switch_tiling;
	_tmp19_ = budgie_settings_row_new ((GtkWidget*) _tmp18_, _ ("Automatic tiling"), _ ("Windows will automatically tile when dragged into the top of the scree" \
"n or the far corners."));
	_tmp20_ = _tmp19_;
	budgie_settings_grid_add_row (grid, _tmp20_);
	_g_object_unref0 (_tmp20_);
	_tmp21_ = (GtkComboBox*) gtk_combo_box_new ();
	g_object_ref_sink (_tmp21_);
	_g_object_unref0 (self->priv->combo_window_focus_mode);
	self->priv->combo_window_focus_mode = _tmp21_;
	_tmp22_ = self->priv->combo_window_focus_mode;
	_tmp23_ = budgie_settings_row_new ((GtkWidget*) _tmp22_, _ ("Window focus mode"), _ ("Choose how windows receive focus: click to focus; sloppy to focus with" \
"out raising windows; mouse to focus with raising."));
	_tmp24_ = _tmp23_;
	budgie_settings_grid_add_row (grid, _tmp24_);
	_g_object_unref0 (_tmp24_);
	_tmp25_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp25_);
	_g_object_unref0 (self->priv->switch_all_windows_tabswitcher);
	self->priv->switch_all_windows_tabswitcher = _tmp25_;
	_tmp26_ = self->priv->switch_all_windows_tabswitcher;
	_tmp27_ = budgie_settings_row_new ((GtkWidget*) _tmp26_, _ ("Show all windows in tab switcher"), _ ("All tabs will be displayed in tab switcher regardless of the workspace" \
" in use."));
	_tmp28_ = _tmp27_;
	budgie_settings_grid_add_row (grid, _tmp28_);
	_g_object_unref0 (_tmp28_);
	_tmp29_ = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING, -1);
	model = _tmp29_;
	gtk_list_store_append (model, &_tmp30_);
	iter = _tmp30_;
	_tmp31_ = iter;
	gtk_list_store_set (model, &_tmp31_, 0, "traditional", 1, _ ("Right (standard)"), -1, -1);
	gtk_list_store_append (model, &_tmp32_);
	iter = _tmp32_;
	_tmp33_ = iter;
	gtk_list_store_set (model, &_tmp33_, 0, "left", 1, _ ("Left"), -1, -1);
	_tmp34_ = self->priv->combo_layouts;
	gtk_combo_box_set_model (_tmp34_, (GtkTreeModel*) model);
	_tmp35_ = self->priv->combo_layouts;
	gtk_combo_box_set_id_column (_tmp35_, 0);
	_tmp36_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
	g_object_ref_sink (_tmp36_);
	render = _tmp36_;
	_tmp37_ = self->priv->combo_layouts;
	gtk_cell_layout_pack_start ((GtkCellLayout*) _tmp37_, (GtkCellRenderer*) render, TRUE);
	_tmp38_ = self->priv->combo_layouts;
	gtk_cell_layout_add_attribute ((GtkCellLayout*) _tmp38_, (GtkCellRenderer*) render, "text", 1);
	_tmp39_ = self->priv->combo_layouts;
	gtk_combo_box_set_id_column (_tmp39_, 0);
	_tmp40_ = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING, -1);
	focus_model = _tmp40_;
	gtk_list_store_append (focus_model, &_tmp41_);
	focus_iter = _tmp41_;
	_tmp42_ = focus_iter;
	gtk_list_store_set (focus_model, &_tmp42_, 0, "click", 1, _ ("Click"), -1, -1);
	gtk_list_store_append (focus_model, &_tmp43_);
	focus_iter = _tmp43_;
	_tmp44_ = focus_iter;
	gtk_list_store_set (focus_model, &_tmp44_, 0, "sloppy", 1, _ ("Sloppy"), -1, -1);
	gtk_list_store_append (focus_model, &_tmp45_);
	focus_iter = _tmp45_;
	_tmp46_ = focus_iter;
	gtk_list_store_set (focus_model, &_tmp46_, 0, "mouse", 1, _ ("Mouse"), -1, -1);
	_tmp47_ = self->priv->combo_window_focus_mode;
	gtk_combo_box_set_model (_tmp47_, (GtkTreeModel*) focus_model);
	_tmp48_ = self->priv->combo_window_focus_mode;
	gtk_combo_box_set_id_column (_tmp48_, 0);
	_tmp49_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
	g_object_ref_sink (_tmp49_);
	focus_render = _tmp49_;
	_tmp50_ = self->priv->combo_window_focus_mode;
	gtk_cell_layout_pack_start ((GtkCellLayout*) _tmp50_, (GtkCellRenderer*) focus_render, TRUE);
	_tmp51_ = self->priv->combo_window_focus_mode;
	gtk_cell_layout_add_attribute ((GtkCellLayout*) _tmp51_, (GtkCellRenderer*) focus_render, "text", 1);
	_tmp52_ = self->priv->combo_window_focus_mode;
	gtk_combo_box_set_id_column (_tmp52_, 0);
	_tmp53_ = g_settings_new ("com.solus-project.budgie-wm");
	_g_object_unref0 (self->priv->budgie_wm_settings);
	self->priv->budgie_wm_settings = _tmp53_;
	_tmp54_ = self->priv->budgie_wm_settings;
	_tmp55_ = self->priv->combo_layouts;
	g_settings_bind (_tmp54_, "button-style", (GObject*) _tmp55_, "active-id", G_SETTINGS_BIND_DEFAULT);
	_tmp56_ = self->priv->budgie_wm_settings;
	_tmp57_ = self->priv->center_windows;
	g_settings_bind (_tmp56_, "center-windows", (GObject*) _tmp57_, "active", G_SETTINGS_BIND_DEFAULT);
	_tmp58_ = self->priv->budgie_wm_settings;
	_tmp59_ = self->priv->disable_night_light;
	g_settings_bind (_tmp58_, "disable-night-light-on-fullscreen", (GObject*) _tmp59_, "active", G_SETTINGS_BIND_DEFAULT);
	_tmp60_ = self->priv->budgie_wm_settings;
	_tmp61_ = self->priv->pause_notifications;
	g_settings_bind (_tmp60_, "pause-notifications-on-fullscreen", (GObject*) _tmp61_, "active", G_SETTINGS_BIND_DEFAULT);
	_tmp62_ = self->priv->budgie_wm_settings;
	_tmp63_ = self->priv->switch_tiling;
	g_settings_bind (_tmp62_, "edge-tiling", (GObject*) _tmp63_, "active", G_SETTINGS_BIND_DEFAULT);
	_tmp64_ = self->priv->budgie_wm_settings;
	_tmp65_ = self->priv->combo_window_focus_mode;
	g_settings_bind (_tmp64_, "window-focus-mode", (GObject*) _tmp65_, "active-id", G_SETTINGS_BIND_DEFAULT);
	_tmp66_ = self->priv->budgie_wm_settings;
	_tmp67_ = self->priv->switch_all_windows_tabswitcher;
	g_settings_bind (_tmp66_, "show-all-windows-tabswitcher", (GObject*) _tmp67_, "active", G_SETTINGS_BIND_DEFAULT);
	_g_object_unref0 (focus_render);
	_g_object_unref0 (focus_model);
	_g_object_unref0 (render);
	_g_object_unref0 (model);
	_g_object_unref0 (grid);
	return self;
}

BudgieWindowsPage*
budgie_windows_page_new (void)
{
	return budgie_windows_page_construct (BUDGIE_TYPE_WINDOWS_PAGE);
}

static void
budgie_windows_page_class_init (BudgieWindowsPageClass * klass,
                                gpointer klass_data)
{
	budgie_windows_page_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &BudgieWindowsPage_private_offset);
	G_OBJECT_CLASS (klass)->finalize = budgie_windows_page_finalize;
}

static void
budgie_windows_page_instance_init (BudgieWindowsPage * self,
                                   gpointer klass)
{
	self->priv = budgie_windows_page_get_instance_private (self);
}

static void
budgie_windows_page_finalize (GObject * obj)
{
	BudgieWindowsPage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BUDGIE_TYPE_WINDOWS_PAGE, BudgieWindowsPage);
	_g_object_unref0 (self->priv->budgie_wm_settings);
	_g_object_unref0 (self->priv->center_windows);
	_g_object_unref0 (self->priv->disable_night_light);
	_g_object_unref0 (self->priv->pause_notifications);
	_g_object_unref0 (self->priv->combo_layouts);
	_g_object_unref0 (self->priv->combo_window_focus_mode);
	_g_object_unref0 (self->priv->switch_tiling);
	_g_object_unref0 (self->priv->switch_all_windows_tabswitcher);
	G_OBJECT_CLASS (budgie_windows_page_parent_class)->finalize (obj);
}

/**
* WindowsPage allows users to control window manager settings
*/
static GType
budgie_windows_page_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (BudgieWindowsPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) budgie_windows_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BudgieWindowsPage), 0, (GInstanceInitFunc) budgie_windows_page_instance_init, NULL };
	GType budgie_windows_page_type_id;
	budgie_windows_page_type_id = g_type_register_static (BUDGIE_TYPE_SETTINGS_PAGE, "BudgieWindowsPage", &g_define_type_info, 0);
	BudgieWindowsPage_private_offset = g_type_add_instance_private (budgie_windows_page_type_id, sizeof (BudgieWindowsPagePrivate));
	return budgie_windows_page_type_id;
}

GType
budgie_windows_page_get_type (void)
{
	static volatile gsize budgie_windows_page_type_id__once = 0;
	if (g_once_init_enter (&budgie_windows_page_type_id__once)) {
		GType budgie_windows_page_type_id;
		budgie_windows_page_type_id = budgie_windows_page_get_type_once ();
		g_once_init_leave (&budgie_windows_page_type_id__once, budgie_windows_page_type_id);
	}
	return budgie_windows_page_type_id__once;
}

