/* key-list-box-row.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from key-list-box-row.vala, do not modify */

/*
  This file is part of Dconf Editor

  Dconf Editor 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.

  Dconf Editor 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 Dconf Editor.  If not, see <https://www.gnu.org/licenses/>.
*/

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

#define LARGE_WINDOW_SIZE 1042
#define MAX_ROW_WIDTH (LARGE_WINDOW_SIZE - 42)
#define MODEL_UTILS_folder_context_id ((guint16) 1)
#define MODEL_UTILS_undefined_context_id ((guint16) 0)
#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 TYPE_LIST_BOX_ROW_WRAPPER (list_box_row_wrapper_get_type ())
#define LIST_BOX_ROW_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIST_BOX_ROW_WRAPPER, ListBoxRowWrapper))
#define LIST_BOX_ROW_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIST_BOX_ROW_WRAPPER, ListBoxRowWrapperClass))
#define IS_LIST_BOX_ROW_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIST_BOX_ROW_WRAPPER))
#define IS_LIST_BOX_ROW_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIST_BOX_ROW_WRAPPER))
#define LIST_BOX_ROW_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIST_BOX_ROW_WRAPPER, ListBoxRowWrapperClass))

typedef struct _ListBoxRowWrapper ListBoxRowWrapper;
typedef struct _ListBoxRowWrapperClass ListBoxRowWrapperClass;
typedef struct _ListBoxRowWrapperPrivate ListBoxRowWrapperPrivate;
enum  {
	LIST_BOX_ROW_WRAPPER_0_PROPERTY,
	LIST_BOX_ROW_WRAPPER_NUM_PROPERTIES
};
static GParamSpec* list_box_row_wrapper_properties[LIST_BOX_ROW_WRAPPER_NUM_PROPERTIES];

#define TYPE_REGISTRY_WARNING (registry_warning_get_type ())
#define REGISTRY_WARNING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REGISTRY_WARNING, RegistryWarning))
#define REGISTRY_WARNING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REGISTRY_WARNING, RegistryWarningClass))
#define IS_REGISTRY_WARNING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REGISTRY_WARNING))
#define IS_REGISTRY_WARNING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REGISTRY_WARNING))
#define REGISTRY_WARNING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REGISTRY_WARNING, RegistryWarningClass))

typedef struct _RegistryWarning RegistryWarning;
typedef struct _RegistryWarningClass RegistryWarningClass;
typedef struct _RegistryWarningPrivate RegistryWarningPrivate;
enum  {
	REGISTRY_WARNING_0_PROPERTY,
	REGISTRY_WARNING_NUM_PROPERTIES
};
static GParamSpec* registry_warning_properties[REGISTRY_WARNING_NUM_PROPERTIES];

#define TYPE_LIST_BOX_ROW_HEADER (list_box_row_header_get_type ())
#define LIST_BOX_ROW_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIST_BOX_ROW_HEADER, ListBoxRowHeader))
#define LIST_BOX_ROW_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIST_BOX_ROW_HEADER, ListBoxRowHeaderClass))
#define IS_LIST_BOX_ROW_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIST_BOX_ROW_HEADER))
#define IS_LIST_BOX_ROW_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIST_BOX_ROW_HEADER))
#define LIST_BOX_ROW_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIST_BOX_ROW_HEADER, ListBoxRowHeaderClass))

typedef struct _ListBoxRowHeader ListBoxRowHeader;
typedef struct _ListBoxRowHeaderClass ListBoxRowHeaderClass;
typedef struct _ListBoxRowHeaderPrivate ListBoxRowHeaderPrivate;
enum  {
	LIST_BOX_ROW_HEADER_0_PROPERTY,
	LIST_BOX_ROW_HEADER_NUM_PROPERTIES
};
static GParamSpec* list_box_row_header_properties[LIST_BOX_ROW_HEADER_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define TYPE_CLICKABLE_LIST_BOX_ROW (clickable_list_box_row_get_type ())
#define CLICKABLE_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))
#define CLICKABLE_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRowClass))
#define IS_CLICKABLE_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CLICKABLE_LIST_BOX_ROW))
#define IS_CLICKABLE_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CLICKABLE_LIST_BOX_ROW))
#define CLICKABLE_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRowClass))

typedef struct _ClickableListBoxRow ClickableListBoxRow;
typedef struct _ClickableListBoxRowClass ClickableListBoxRowClass;
typedef struct _ClickableListBoxRowPrivate ClickableListBoxRowPrivate;

#define TYPE_CONTEXT_POPOVER (context_popover_get_type ())
#define CONTEXT_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTEXT_POPOVER, ContextPopover))
#define CONTEXT_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTEXT_POPOVER, ContextPopoverClass))
#define IS_CONTEXT_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTEXT_POPOVER))
#define IS_CONTEXT_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTEXT_POPOVER))
#define CONTEXT_POPOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTEXT_POPOVER, ContextPopoverClass))

typedef struct _ContextPopover ContextPopover;
typedef struct _ContextPopoverClass ContextPopoverClass;
enum  {
	CLICKABLE_LIST_BOX_ROW_0_PROPERTY,
	CLICKABLE_LIST_BOX_ROW_SEARCH_RESULT_MODE_PROPERTY,
	CLICKABLE_LIST_BOX_ROW_FULL_NAME_PROPERTY,
	CLICKABLE_LIST_BOX_ROW_CONTEXT_ID_PROPERTY,
	CLICKABLE_LIST_BOX_ROW_NUM_PROPERTIES
};
static GParamSpec* clickable_list_box_row_properties[CLICKABLE_LIST_BOX_ROW_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_RETURN_LIST_BOX_ROW (return_list_box_row_get_type ())
#define RETURN_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RETURN_LIST_BOX_ROW, ReturnListBoxRow))
#define RETURN_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RETURN_LIST_BOX_ROW, ReturnListBoxRowClass))
#define IS_RETURN_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RETURN_LIST_BOX_ROW))
#define IS_RETURN_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RETURN_LIST_BOX_ROW))
#define RETURN_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RETURN_LIST_BOX_ROW, ReturnListBoxRowClass))

typedef struct _ReturnListBoxRow ReturnListBoxRow;
typedef struct _ReturnListBoxRowClass ReturnListBoxRowClass;
typedef struct _ReturnListBoxRowPrivate ReturnListBoxRowPrivate;
enum  {
	RETURN_LIST_BOX_ROW_0_PROPERTY,
	RETURN_LIST_BOX_ROW_NUM_PROPERTIES
};
static GParamSpec* return_list_box_row_properties[RETURN_LIST_BOX_ROW_NUM_PROPERTIES];

#define TYPE_FOLDER_LIST_BOX_ROW (folder_list_box_row_get_type ())
#define FOLDER_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRow))
#define FOLDER_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRowClass))
#define IS_FOLDER_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FOLDER_LIST_BOX_ROW))
#define IS_FOLDER_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FOLDER_LIST_BOX_ROW))
#define FOLDER_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRowClass))

typedef struct _FolderListBoxRow FolderListBoxRow;
typedef struct _FolderListBoxRowClass FolderListBoxRowClass;
typedef struct _FolderListBoxRowPrivate FolderListBoxRowPrivate;
enum  {
	FOLDER_LIST_BOX_ROW_0_PROPERTY,
	FOLDER_LIST_BOX_ROW_PATH_SEARCH_PROPERTY,
	FOLDER_LIST_BOX_ROW_NUM_PROPERTIES
};
static GParamSpec* folder_list_box_row_properties[FOLDER_LIST_BOX_ROW_NUM_PROPERTIES];

#define TYPE_FILTER_LIST_BOX_ROW (filter_list_box_row_get_type ())
#define FILTER_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRow))
#define FILTER_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRowClass))
#define IS_FILTER_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FILTER_LIST_BOX_ROW))
#define IS_FILTER_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FILTER_LIST_BOX_ROW))
#define FILTER_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRowClass))

typedef struct _FilterListBoxRow FilterListBoxRow;
typedef struct _FilterListBoxRowClass FilterListBoxRowClass;
typedef struct _FilterListBoxRowPrivate FilterListBoxRowPrivate;
enum  {
	FILTER_LIST_BOX_ROW_0_PROPERTY,
	FILTER_LIST_BOX_ROW_IS_LOCAL_SEARCH_PROPERTY,
	FILTER_LIST_BOX_ROW_NUM_PROPERTIES
};
static GParamSpec* filter_list_box_row_properties[FILTER_LIST_BOX_ROW_NUM_PROPERTIES];

#define TYPE_SEARCH_LIST_BOX_ROW (search_list_box_row_get_type ())
#define SEARCH_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_LIST_BOX_ROW, SearchListBoxRow))
#define SEARCH_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_LIST_BOX_ROW, SearchListBoxRowClass))
#define IS_SEARCH_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_LIST_BOX_ROW))
#define IS_SEARCH_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_LIST_BOX_ROW))
#define SEARCH_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_LIST_BOX_ROW, SearchListBoxRowClass))

typedef struct _SearchListBoxRow SearchListBoxRow;
typedef struct _SearchListBoxRowClass SearchListBoxRowClass;
typedef struct _SearchListBoxRowPrivate SearchListBoxRowPrivate;
enum  {
	SEARCH_LIST_BOX_ROW_0_PROPERTY,
	SEARCH_LIST_BOX_ROW_NUM_PROPERTIES
};
static GParamSpec* search_list_box_row_properties[SEARCH_LIST_BOX_ROW_NUM_PROPERTIES];

#define TYPE_ADAPTATIVE_WIDGET (adaptative_widget_get_type ())
#define ADAPTATIVE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADAPTATIVE_WIDGET, AdaptativeWidget))
#define IS_ADAPTATIVE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADAPTATIVE_WIDGET))
#define ADAPTATIVE_WIDGET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_ADAPTATIVE_WIDGET, AdaptativeWidgetIface))

typedef struct _AdaptativeWidget AdaptativeWidget;
typedef struct _AdaptativeWidgetIface AdaptativeWidgetIface;
typedef enum  {
	ADAPTATIVE_WIDGET_WINDOW_SIZE_START_SIZE,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_USUAL_SIZE,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_QUITE_THIN,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_PHONE_VERT,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_PHONE_HZTL,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_PHONE_BOTH,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_EXTRA_THIN,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_EXTRA_FLAT
} AdaptativeWidgetWindowSize;

#define ADAPTATIVE_WIDGET_TYPE_WINDOW_SIZE (adaptative_widget_window_size_get_type ())

#define TYPE_KEY_LIST_BOX_ROW (key_list_box_row_get_type ())
#define KEY_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow))
#define KEY_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRowClass))
#define IS_KEY_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_LIST_BOX_ROW))
#define IS_KEY_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_LIST_BOX_ROW))
#define KEY_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRowClass))

typedef struct _KeyListBoxRow KeyListBoxRow;
typedef struct _KeyListBoxRowClass KeyListBoxRowClass;
typedef struct _KeyListBoxRowPrivate KeyListBoxRowPrivate;
enum  {
	KEY_LIST_BOX_ROW_0_PROPERTY,
	KEY_LIST_BOX_ROW_KEY_NAME_PROPERTY,
	KEY_LIST_BOX_ROW_TYPE_STRING_PROPERTY,
	KEY_LIST_BOX_ROW_HAS_SCHEMA_PROPERTY,
	KEY_LIST_BOX_ROW_DELAY_MODE_PROPERTY,
	KEY_LIST_BOX_ROW_SMALL_KEYS_LIST_ROWS_PROPERTY,
	KEY_LIST_BOX_ROW_NUM_PROPERTIES
};
static GParamSpec* key_list_box_row_properties[KEY_LIST_BOX_ROW_NUM_PROPERTIES];
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
typedef struct _ContextPopoverPrivate ContextPopoverPrivate;
enum  {
	CONTEXT_POPOVER_0_PROPERTY,
	CONTEXT_POPOVER_NUM_PROPERTIES
};
static GParamSpec* context_popover_properties[CONTEXT_POPOVER_NUM_PROPERTIES];
typedef struct _Block14Data Block14Data;
#define _g_variant_type_free0(var) ((var == NULL) ? NULL : (var = (g_variant_type_free (var), NULL)))
enum  {
	CONTEXT_POPOVER_VALUE_CHANGED_SIGNAL,
	CONTEXT_POPOVER_CHANGE_DISMISSED_SIGNAL,
	CONTEXT_POPOVER_NUM_SIGNALS
};
static guint context_popover_signals[CONTEXT_POPOVER_NUM_SIGNALS] = {0};
#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);

struct _ListBoxRowWrapper {
	GtkListBoxRow parent_instance;
	ListBoxRowWrapperPrivate * priv;
};

struct _ListBoxRowWrapperClass {
	GtkListBoxRowClass parent_class;
};

struct _RegistryWarning {
	GtkGrid parent_instance;
	RegistryWarningPrivate * priv;
};

struct _RegistryWarningClass {
	GtkGridClass parent_class;
};

struct _ListBoxRowHeader {
	GtkGrid parent_instance;
	ListBoxRowHeaderPrivate * priv;
};

struct _ListBoxRowHeaderClass {
	GtkGridClass parent_class;
};

struct _ClickableListBoxRow {
	GtkEventBox parent_instance;
	ClickableListBoxRowPrivate * priv;
	ContextPopover* nullable_popover;
};

struct _ClickableListBoxRowClass {
	GtkEventBoxClass parent_class;
};

struct _ClickableListBoxRowPrivate {
	gboolean _search_result_mode;
	gchar* _full_name;
	guint16 _context_id;
};

struct _ReturnListBoxRow {
	ClickableListBoxRow parent_instance;
	ReturnListBoxRowPrivate * priv;
};

struct _ReturnListBoxRowClass {
	ClickableListBoxRowClass parent_class;
};

struct _ReturnListBoxRowPrivate {
	GtkLabel* folder_name_label;
};

struct _FolderListBoxRow {
	ClickableListBoxRow parent_instance;
	FolderListBoxRowPrivate * priv;
};

struct _FolderListBoxRowClass {
	ClickableListBoxRowClass parent_class;
};

struct _FolderListBoxRowPrivate {
	GtkLabel* folder_name_label;
	gboolean _path_search;
};

struct _FilterListBoxRow {
	ClickableListBoxRow parent_instance;
	FilterListBoxRowPrivate * priv;
};

struct _FilterListBoxRowClass {
	ClickableListBoxRowClass parent_class;
};

struct _FilterListBoxRowPrivate {
	gboolean _is_local_search;
	GtkLabel* folder_name_label;
};

struct _SearchListBoxRow {
	ClickableListBoxRow parent_instance;
	SearchListBoxRowPrivate * priv;
};

struct _SearchListBoxRowClass {
	ClickableListBoxRowClass parent_class;
};

struct _SearchListBoxRowPrivate {
	GtkLabel* search_label;
};

struct _AdaptativeWidgetIface {
	GTypeInterface parent_iface;
	void (*set_window_size) (AdaptativeWidget* self, AdaptativeWidgetWindowSize new_size);
};

struct _KeyListBoxRow {
	ClickableListBoxRow parent_instance;
	KeyListBoxRowPrivate * priv;
};

struct _KeyListBoxRowClass {
	ClickableListBoxRowClass parent_class;
};

struct _KeyListBoxRowPrivate {
	GtkGrid* key_name_and_value_grid;
	GtkLabel* key_name_label;
	GtkLabel* key_type_label;
	GtkLabel* key_value_label;
	GtkLabel* key_info_label;
	GtkSwitch* boolean_switch;
	gchar* _key_name;
	gchar* _type_string;
	gboolean _has_schema;
	gboolean _delay_mode;
	gboolean thin_window;
	gboolean key_value_label_has_italic_label_class;
	gboolean key_type_label_has_italic_label_class;
	gboolean _use_switch;
};

struct _ContextPopover {
	GtkPopover parent_instance;
	ContextPopoverPrivate * priv;
};

struct _ContextPopoverClass {
	GtkPopoverClass parent_class;
};

struct _ContextPopoverPrivate {
	GMenu* menu;
	GMenu* current_section;
	GActionMap* current_group;
};

struct _Block14Data {
	int _ref_count_;
	ContextPopover* self;
	gchar** all_flags;
	gint all_flags_length1;
};

static gpointer list_box_row_wrapper_parent_class = NULL;
static gpointer registry_warning_parent_class = NULL;
static gpointer list_box_row_header_parent_class = NULL;
static gint ClickableListBoxRow_private_offset;
static gpointer clickable_list_box_row_parent_class = NULL;
static gint ReturnListBoxRow_private_offset;
static gpointer return_list_box_row_parent_class = NULL;
static gint FolderListBoxRow_private_offset;
static gpointer folder_list_box_row_parent_class = NULL;
static gint FilterListBoxRow_private_offset;
static gpointer filter_list_box_row_parent_class = NULL;
static gint SearchListBoxRow_private_offset;
static gpointer search_list_box_row_parent_class = NULL;
static gint KeyListBoxRow_private_offset;
static gpointer key_list_box_row_parent_class = NULL;
static AdaptativeWidgetIface * key_list_box_row_adaptative_widget_parent_iface = NULL;
static gint ContextPopover_private_offset;
static gpointer context_popover_parent_class = NULL;

VALA_EXTERN GType list_box_row_wrapper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListBoxRowWrapper, g_object_unref)
static void list_box_row_wrapper_real_get_preferred_width (GtkWidget* base,
                                                    gint* minimum_width,
                                                    gint* natural_width);
VALA_EXTERN ListBoxRowWrapper* list_box_row_wrapper_new (void);
VALA_EXTERN ListBoxRowWrapper* list_box_row_wrapper_construct (GType object_type);
static GType list_box_row_wrapper_get_type_once (void);
VALA_EXTERN GType registry_warning_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RegistryWarning, g_object_unref)
static void registry_warning_real_get_preferred_width (GtkWidget* base,
                                                gint* minimum_width,
                                                gint* natural_width);
VALA_EXTERN RegistryWarning* registry_warning_new (void);
VALA_EXTERN RegistryWarning* registry_warning_construct (GType object_type);
static GType registry_warning_get_type_once (void);
VALA_EXTERN GType list_box_row_header_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListBoxRowHeader, g_object_unref)
static void list_box_row_header_real_get_preferred_width (GtkWidget* base,
                                                   gint* minimum_width,
                                                   gint* natural_width);
VALA_EXTERN ListBoxRowHeader* list_box_row_header_new (gboolean is_first_row,
                                           const gchar* header_text);
VALA_EXTERN ListBoxRowHeader* list_box_row_header_construct (GType object_type,
                                                 gboolean is_first_row,
                                                 const gchar* header_text);
static GType list_box_row_header_get_type_once (void);
VALA_EXTERN GType clickable_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClickableListBoxRow, g_object_unref)
VALA_EXTERN GType context_popover_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ContextPopover, g_object_unref)
VALA_EXTERN void clickable_list_box_row_destroy_popover (ClickableListBoxRow* self);
VALA_EXTERN void clickable_list_box_row_hide_right_click_popover (ClickableListBoxRow* self);
VALA_EXTERN gboolean clickable_list_box_row_right_click_popover_visible (ClickableListBoxRow* self);
VALA_EXTERN ClickableListBoxRow* clickable_list_box_row_construct (GType object_type);
VALA_EXTERN gboolean clickable_list_box_row_get_search_result_mode (ClickableListBoxRow* self);
static void clickable_list_box_row_set_search_result_mode (ClickableListBoxRow* self,
                                                    gboolean value);
VALA_EXTERN const gchar* clickable_list_box_row_get_full_name (ClickableListBoxRow* self);
static void clickable_list_box_row_set_full_name (ClickableListBoxRow* self,
                                           const gchar* value);
VALA_EXTERN guint16 clickable_list_box_row_get_context_id (ClickableListBoxRow* self);
static void clickable_list_box_row_set_context_id (ClickableListBoxRow* self,
                                            guint16 value);
static void clickable_list_box_row_finalize (GObject * obj);
static GType clickable_list_box_row_get_type_once (void);
static void _vala_clickable_list_box_row_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec);
static void _vala_clickable_list_box_row_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec);
VALA_EXTERN GType return_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReturnListBoxRow, g_object_unref)
VALA_EXTERN ReturnListBoxRow* return_list_box_row_new (const gchar* _full_name,
                                           guint16 _context_id);
VALA_EXTERN ReturnListBoxRow* return_list_box_row_construct (GType object_type,
                                                 const gchar* _full_name,
                                                 guint16 _context_id);
static void return_list_box_row_finalize (GObject * obj);
static GType return_list_box_row_get_type_once (void);
VALA_EXTERN GType folder_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FolderListBoxRow, g_object_unref)
VALA_EXTERN FolderListBoxRow* folder_list_box_row_new (const gchar* label,
                                           const gchar* path,
                                           gboolean path_search,
                                           gboolean search_result_mode);
VALA_EXTERN FolderListBoxRow* folder_list_box_row_construct (GType object_type,
                                                 const gchar* label,
                                                 const gchar* path,
                                                 gboolean path_search,
                                                 gboolean search_result_mode);
VALA_EXTERN gboolean folder_list_box_row_get_path_search (FolderListBoxRow* self);
static void folder_list_box_row_set_path_search (FolderListBoxRow* self,
                                          gboolean value);
static void folder_list_box_row_finalize (GObject * obj);
static GType folder_list_box_row_get_type_once (void);
static void _vala_folder_list_box_row_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec);
static void _vala_folder_list_box_row_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec);
VALA_EXTERN GType filter_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FilterListBoxRow, g_object_unref)
VALA_EXTERN FilterListBoxRow* filter_list_box_row_new (const gchar* name,
                                           const gchar* path);
VALA_EXTERN FilterListBoxRow* filter_list_box_row_construct (GType object_type,
                                                 const gchar* name,
                                                 const gchar* path);
VALA_EXTERN gboolean filter_list_box_row_get_is_local_search (FilterListBoxRow* self);
static void filter_list_box_row_set_is_local_search (FilterListBoxRow* self,
                                              gboolean value);
static void filter_list_box_row_finalize (GObject * obj);
static GType filter_list_box_row_get_type_once (void);
static void _vala_filter_list_box_row_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec);
static void _vala_filter_list_box_row_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec);
VALA_EXTERN GType search_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SearchListBoxRow, g_object_unref)
VALA_EXTERN SearchListBoxRow* search_list_box_row_new (const gchar* search);
VALA_EXTERN SearchListBoxRow* search_list_box_row_construct (GType object_type,
                                                 const gchar* search);
static void search_list_box_row_finalize (GObject * obj);
static GType search_list_box_row_get_type_once (void);
VALA_EXTERN GType adaptative_widget_window_size_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType adaptative_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AdaptativeWidget, g_object_unref)
VALA_EXTERN GType key_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyListBoxRow, g_object_unref)
static void key_list_box_row_real_set_window_size (AdaptativeWidget* base,
                                            AdaptativeWidgetWindowSize new_size);
VALA_EXTERN gboolean adaptative_widget_window_size_is_extra_thin (AdaptativeWidgetWindowSize window_size);
static gboolean key_list_box_row_get_delay_mode (KeyListBoxRow* self);
VALA_EXTERN KeyListBoxRow* key_list_box_row_new (gboolean _has_schema,
                                     const gchar* _type_string,
                                     guint16 _context_id,
                                     const gchar* summary,
                                     gboolean italic_summary,
                                     gboolean _delay_mode,
                                     const gchar* _key_name,
                                     const gchar* _full_name,
                                     gboolean _search_result_mode);
VALA_EXTERN KeyListBoxRow* key_list_box_row_construct (GType object_type,
                                           gboolean _has_schema,
                                           const gchar* _type_string,
                                           guint16 _context_id,
                                           const gchar* summary,
                                           gboolean italic_summary,
                                           gboolean _delay_mode,
                                           const gchar* _key_name,
                                           const gchar* _full_name,
                                           gboolean _search_result_mode);
VALA_EXTERN void key_list_box_row_toggle_boolean_key (KeyListBoxRow* self);
VALA_EXTERN const gchar* key_list_box_row_get_type_string (KeyListBoxRow* self);
VALA_EXTERN void key_list_box_row_change_dismissed (KeyListBoxRow* self);
VALA_EXTERN void key_list_box_row_on_delete_call (KeyListBoxRow* self);
VALA_EXTERN void key_list_box_row_set_key_value (KeyListBoxRow* self,
                                     GVariant* new_value);
VALA_EXTERN gboolean key_list_box_row_get_has_schema (KeyListBoxRow* self);
VALA_EXTERN void key_list_box_row_update_label (KeyListBoxRow* self,
                                    const gchar* key_value_string,
                                    gboolean key_value_italic,
                                    const gchar* key_type_string,
                                    gboolean key_type_italic);
VALA_EXTERN void key_list_box_row_use_switch (KeyListBoxRow* self,
                                  gboolean show);
static void key_list_box_row_hide_or_show_switch (KeyListBoxRow* self);
VALA_EXTERN void key_list_box_row_update_switch (KeyListBoxRow* self,
                                     gboolean key_value_boolean,
                                     const gchar* detailed_action_name);
VALA_EXTERN const gchar* key_list_box_row_get_key_name (KeyListBoxRow* self);
static void key_list_box_row_set_key_name (KeyListBoxRow* self,
                                    const gchar* value);
static void key_list_box_row_set_type_string (KeyListBoxRow* self,
                                       const gchar* value);
static void key_list_box_row_set_has_schema (KeyListBoxRow* self,
                                      gboolean value);
VALA_EXTERN void key_list_box_row_set_delay_mode (KeyListBoxRow* self,
                                      gboolean value);
VALA_EXTERN void key_list_box_row_set_small_keys_list_rows (KeyListBoxRow* self,
                                                gboolean value);
static GObject * key_list_box_row_constructor (GType type,
                                        guint n_construct_properties,
                                        GObjectConstructParam * construct_properties);
VALA_EXTERN void adaptative_widget_set_window_size (AdaptativeWidget* self,
                                        AdaptativeWidgetWindowSize new_size);
static void key_list_box_row_finalize (GObject * obj);
static GType key_list_box_row_get_type_once (void);
static void _vala_key_list_box_row_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec);
static void _vala_key_list_box_row_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec);
VALA_EXTERN ContextPopover* context_popover_new (void);
VALA_EXTERN ContextPopover* context_popover_construct (GType object_type);
static void context_popover_new_section_real (ContextPopover* self);
VALA_EXTERN void context_popover_new_gaction (ContextPopover* self,
                                  const gchar* action_name,
                                  const gchar* action_action);
static void context_popover_new_multi_default_action (ContextPopover* self,
                                               const gchar* action);
VALA_EXTERN void context_popover_new_section (ContextPopover* self);
VALA_EXTERN void context_popover_create_flags_list (ContextPopover* self,
                                        gchar** active_flags,
                                        gint active_flags_length1,
                                        gchar** all_flags,
                                        gint all_flags_length1);
static void context_popover_create_flag (ContextPopover* self,
                                  const gchar* flag,
                                  gboolean active,
                                  gchar** all_flags,
                                  gint all_flags_length1);
static gboolean _vala_string_array_contains (gchar* * stack,
                                      gssize stack_length,
                                      const gchar* needle);
static void context_popover_finalize_menu (ContextPopover* self);
static Block14Data* block14_data_ref (Block14Data* _data14_);
static void block14_data_unref (void * _userdata_);
static void __lambda38_ (Block14Data* _data14_,
                  GSimpleAction* gaction,
                  GVariant* gvariant);
static void _vala_array_add21 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void ___lambda38__g_simple_action_change_state (GSimpleAction* _sender,
                                                GVariant* value,
                                                gpointer self);
VALA_EXTERN void context_popover_update_flag_status (ContextPopover* self,
                                         const gchar* flag,
                                         gboolean active);
VALA_EXTERN GAction* context_popover_create_buttons_list (ContextPopover* self,
                                              gboolean display_default_value,
                                              gboolean delayed_apply_menu,
                                              gboolean planned_change,
                                              const gchar* settings_type,
                                              GVariant* range_content_or_null,
                                              GVariant* value_variant);
VALA_EXTERN gchar* key_cool_boolean_text_value (gboolean* nullable_boolean,
                                    gboolean capitalized);
VALA_EXTERN guint64 key_get_variant_as_uint64 (GVariant* variant);
VALA_EXTERN gint64 key_get_variant_as_int64 (GVariant* variant);
static void __lambda39_ (ContextPopover* self,
                  const gchar* unknown_string,
                  GVariant* tmp_variant);
static void ___lambda39__g_action_group_action_state_changed (GActionGroup* _sender,
                                                       const gchar* action_name,
                                                       GVariant* state,
                                                       gpointer self);
static void context_popover_finalize (GObject * obj);
static GType context_popover_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static void
list_box_row_wrapper_real_get_preferred_width (GtkWidget* base,
                                               gint* minimum_width,
                                               gint* natural_width)
{
	ListBoxRowWrapper * self;
	gint _vala_minimum_width = 0;
	gint _vala_natural_width = 0;
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
	self = (ListBoxRowWrapper*) base;
	GTK_WIDGET_CLASS (list_box_row_wrapper_parent_class)->get_preferred_width ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_list_box_row_get_type (), GtkListBoxRow), &_tmp0_, &_tmp1_);
	_vala_minimum_width = _tmp0_;
	_vala_natural_width = _tmp1_;
	_vala_natural_width = MAX_ROW_WIDTH;
	if (minimum_width) {
		*minimum_width = _vala_minimum_width;
	}
	if (natural_width) {
		*natural_width = _vala_natural_width;
	}
}

ListBoxRowWrapper*
list_box_row_wrapper_construct (GType object_type)
{
	ListBoxRowWrapper * self = NULL;
	self = (ListBoxRowWrapper*) g_object_new (object_type, NULL);
	return self;
}

ListBoxRowWrapper*
list_box_row_wrapper_new (void)
{
	return list_box_row_wrapper_construct (TYPE_LIST_BOX_ROW_WRAPPER);
}

static void
list_box_row_wrapper_class_init (ListBoxRowWrapperClass * klass,
                                 gpointer klass_data)
{
	list_box_row_wrapper_parent_class = g_type_class_peek_parent (klass);
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) list_box_row_wrapper_real_get_preferred_width;
}

static void
list_box_row_wrapper_instance_init (ListBoxRowWrapper * self,
                                    gpointer klass)
{
}

static GType
list_box_row_wrapper_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ListBoxRowWrapperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) list_box_row_wrapper_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ListBoxRowWrapper), 0, (GInstanceInitFunc) list_box_row_wrapper_instance_init, NULL };
	GType list_box_row_wrapper_type_id;
	list_box_row_wrapper_type_id = g_type_register_static (gtk_list_box_row_get_type (), "ListBoxRowWrapper", &g_define_type_info, 0);
	return list_box_row_wrapper_type_id;
}

GType
list_box_row_wrapper_get_type (void)
{
	static volatile gsize list_box_row_wrapper_type_id__once = 0;
	if (g_once_init_enter (&list_box_row_wrapper_type_id__once)) {
		GType list_box_row_wrapper_type_id;
		list_box_row_wrapper_type_id = list_box_row_wrapper_get_type_once ();
		g_once_init_leave (&list_box_row_wrapper_type_id__once, list_box_row_wrapper_type_id);
	}
	return list_box_row_wrapper_type_id__once;
}

static void
registry_warning_real_get_preferred_width (GtkWidget* base,
                                           gint* minimum_width,
                                           gint* natural_width)
{
	RegistryWarning * self;
	gint _vala_minimum_width = 0;
	gint _vala_natural_width = 0;
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
	self = (RegistryWarning*) base;
	GTK_WIDGET_CLASS (registry_warning_parent_class)->get_preferred_width ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_grid_get_type (), GtkGrid), &_tmp0_, &_tmp1_);
	_vala_minimum_width = _tmp0_;
	_vala_natural_width = _tmp1_;
	_vala_natural_width = MAX_ROW_WIDTH;
	if (minimum_width) {
		*minimum_width = _vala_minimum_width;
	}
	if (natural_width) {
		*natural_width = _vala_natural_width;
	}
}

RegistryWarning*
registry_warning_construct (GType object_type)
{
	RegistryWarning * self = NULL;
	self = (RegistryWarning*) g_object_new (object_type, NULL);
	return self;
}

RegistryWarning*
registry_warning_new (void)
{
	return registry_warning_construct (TYPE_REGISTRY_WARNING);
}

static void
registry_warning_class_init (RegistryWarningClass * klass,
                             gpointer klass_data)
{
	registry_warning_parent_class = g_type_class_peek_parent (klass);
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) registry_warning_real_get_preferred_width;
}

static void
registry_warning_instance_init (RegistryWarning * self,
                                gpointer klass)
{
}

static GType
registry_warning_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (RegistryWarningClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) registry_warning_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RegistryWarning), 0, (GInstanceInitFunc) registry_warning_instance_init, NULL };
	GType registry_warning_type_id;
	registry_warning_type_id = g_type_register_static (gtk_grid_get_type (), "RegistryWarning", &g_define_type_info, 0);
	return registry_warning_type_id;
}

GType
registry_warning_get_type (void)
{
	static volatile gsize registry_warning_type_id__once = 0;
	if (g_once_init_enter (&registry_warning_type_id__once)) {
		GType registry_warning_type_id;
		registry_warning_type_id = registry_warning_get_type_once ();
		g_once_init_leave (&registry_warning_type_id__once, registry_warning_type_id);
	}
	return registry_warning_type_id__once;
}

static void
list_box_row_header_real_get_preferred_width (GtkWidget* base,
                                              gint* minimum_width,
                                              gint* natural_width)
{
	ListBoxRowHeader * self;
	gint _vala_minimum_width = 0;
	gint _vala_natural_width = 0;
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
	self = (ListBoxRowHeader*) base;
	GTK_WIDGET_CLASS (list_box_row_header_parent_class)->get_preferred_width ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_grid_get_type (), GtkGrid), &_tmp0_, &_tmp1_);
	_vala_minimum_width = _tmp0_;
	_vala_natural_width = _tmp1_;
	_vala_natural_width = MAX_ROW_WIDTH;
	if (minimum_width) {
		*minimum_width = _vala_minimum_width;
	}
	if (natural_width) {
		*natural_width = _vala_natural_width;
	}
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

ListBoxRowHeader*
list_box_row_header_construct (GType object_type,
                               gboolean is_first_row,
                               const gchar* header_text)
{
	ListBoxRowHeader * self = NULL;
	GtkSeparator* separator = NULL;
	GtkSeparator* _tmp10_;
	GtkSeparator* _tmp11_;
	GtkSeparator* _tmp12_;
	GtkSeparator* _tmp13_;
	self = (ListBoxRowHeader*) g_object_new (object_type, NULL);
	if (header_text != NULL) {
		GtkLabel* label = NULL;
		GtkLabel* _tmp0_;
		GtkLabel* _tmp1_;
		GtkLabel* _tmp2_;
		GtkLabel* _tmp3_;
		GtkStyleContext* context = NULL;
		GtkLabel* _tmp4_;
		GtkStyleContext* _tmp5_;
		GtkStyleContext* _tmp6_;
		GtkStyleContext* _tmp7_;
		GtkStyleContext* _tmp8_;
		GtkLabel* _tmp9_;
		gtk_orientable_set_orientation ((GtkOrientable*) self, GTK_ORIENTATION_VERTICAL);
		_tmp0_ = (GtkLabel*) gtk_label_new ((const gchar*) header_text);
		g_object_ref_sink (_tmp0_);
		label = _tmp0_;
		_tmp1_ = label;
		gtk_widget_set_visible ((GtkWidget*) _tmp1_, TRUE);
		_tmp2_ = label;
		gtk_widget_set_halign ((GtkWidget*) _tmp2_, GTK_ALIGN_START);
		_tmp3_ = label;
		gtk_label_set_ellipsize (_tmp3_, PANGO_ELLIPSIZE_END);
		_tmp4_ = label;
		_tmp5_ = gtk_widget_get_style_context ((GtkWidget*) _tmp4_);
		_tmp6_ = _g_object_ref0 (_tmp5_);
		context = _tmp6_;
		_tmp7_ = context;
		gtk_style_context_add_class (_tmp7_, "dim-label");
		_tmp8_ = context;
		gtk_style_context_add_class (_tmp8_, "header-label");
		_tmp9_ = label;
		gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp9_);
		_g_object_unref0 (context);
		_g_object_unref0 (label);
	}
	gtk_widget_set_halign ((GtkWidget*) self, GTK_ALIGN_CENTER);
	if (is_first_row) {
		return self;
	}
	_tmp10_ = (GtkSeparator*) gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
	g_object_ref_sink (_tmp10_);
	separator = _tmp10_;
	_tmp11_ = separator;
	gtk_widget_set_visible ((GtkWidget*) _tmp11_, TRUE);
	_tmp12_ = separator;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp12_, TRUE);
	_tmp13_ = separator;
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp13_);
	_g_object_unref0 (separator);
	return self;
}

ListBoxRowHeader*
list_box_row_header_new (gboolean is_first_row,
                         const gchar* header_text)
{
	return list_box_row_header_construct (TYPE_LIST_BOX_ROW_HEADER, is_first_row, header_text);
}

static void
list_box_row_header_class_init (ListBoxRowHeaderClass * klass,
                                gpointer klass_data)
{
	list_box_row_header_parent_class = g_type_class_peek_parent (klass);
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) list_box_row_header_real_get_preferred_width;
}

static void
list_box_row_header_instance_init (ListBoxRowHeader * self,
                                   gpointer klass)
{
}

static GType
list_box_row_header_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ListBoxRowHeaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) list_box_row_header_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ListBoxRowHeader), 0, (GInstanceInitFunc) list_box_row_header_instance_init, NULL };
	GType list_box_row_header_type_id;
	list_box_row_header_type_id = g_type_register_static (gtk_grid_get_type (), "ListBoxRowHeader", &g_define_type_info, 0);
	return list_box_row_header_type_id;
}

GType
list_box_row_header_get_type (void)
{
	static volatile gsize list_box_row_header_type_id__once = 0;
	if (g_once_init_enter (&list_box_row_header_type_id__once)) {
		GType list_box_row_header_type_id;
		list_box_row_header_type_id = list_box_row_header_get_type_once ();
		g_once_init_leave (&list_box_row_header_type_id__once, list_box_row_header_type_id);
	}
	return list_box_row_header_type_id__once;
}

static inline gpointer
clickable_list_box_row_get_instance_private (ClickableListBoxRow* self)
{
	return G_STRUCT_MEMBER_P (self, ClickableListBoxRow_private_offset);
}

void
clickable_list_box_row_destroy_popover (ClickableListBoxRow* self)
{
	ContextPopover* _tmp0_;
	ContextPopover* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->nullable_popover;
	if (_tmp0_ == NULL) {
		return;
	}
	_tmp1_ = self->nullable_popover;
	gtk_widget_destroy ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONTEXT_POPOVER, ContextPopover));
	_g_object_unref0 (self->nullable_popover);
	self->nullable_popover = NULL;
}

void
clickable_list_box_row_hide_right_click_popover (ClickableListBoxRow* self)
{
	ContextPopover* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->nullable_popover;
	if (_tmp0_ != NULL) {
		ContextPopover* _tmp1_;
		_tmp1_ = self->nullable_popover;
		gtk_popover_popdown ((GtkPopover*) G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONTEXT_POPOVER, ContextPopover));
	}
}

gboolean
clickable_list_box_row_right_click_popover_visible (ClickableListBoxRow* self)
{
	gboolean _tmp0_ = FALSE;
	ContextPopover* _tmp1_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp1_ = self->nullable_popover;
	if (_tmp1_ != NULL) {
		ContextPopover* _tmp2_;
		gboolean _tmp3_;
		gboolean _tmp4_;
		_tmp2_ = self->nullable_popover;
		_tmp3_ = gtk_widget_get_visible ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONTEXT_POPOVER, ContextPopover));
		_tmp4_ = _tmp3_;
		_tmp0_ = _tmp4_;
	} else {
		_tmp0_ = FALSE;
	}
	result = _tmp0_;
	return result;
}

ClickableListBoxRow*
clickable_list_box_row_construct (GType object_type)
{
	ClickableListBoxRow * self = NULL;
	self = (ClickableListBoxRow*) g_object_new (object_type, NULL);
	return self;
}

gboolean
clickable_list_box_row_get_search_result_mode (ClickableListBoxRow* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_search_result_mode;
	return result;
}

static void
clickable_list_box_row_set_search_result_mode (ClickableListBoxRow* self,
                                               gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_search_result_mode = value;
}

const gchar*
clickable_list_box_row_get_full_name (ClickableListBoxRow* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_full_name;
	result = _tmp0_;
	return result;
}

static void
clickable_list_box_row_set_full_name (ClickableListBoxRow* self,
                                      const gchar* value)
{
	gchar* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup (value);
	_g_free0 (self->priv->_full_name);
	self->priv->_full_name = _tmp0_;
}

guint16
clickable_list_box_row_get_context_id (ClickableListBoxRow* self)
{
	guint16 result;
	g_return_val_if_fail (self != NULL, 0U);
	result = self->priv->_context_id;
	return result;
}

static void
clickable_list_box_row_set_context_id (ClickableListBoxRow* self,
                                       guint16 value)
{
	g_return_if_fail (self != NULL);
	self->priv->_context_id = value;
}

static void
clickable_list_box_row_class_init (ClickableListBoxRowClass * klass,
                                   gpointer klass_data)
{
	clickable_list_box_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ClickableListBoxRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_clickable_list_box_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_clickable_list_box_row_set_property;
	G_OBJECT_CLASS (klass)->finalize = clickable_list_box_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), CLICKABLE_LIST_BOX_ROW_SEARCH_RESULT_MODE_PROPERTY, clickable_list_box_row_properties[CLICKABLE_LIST_BOX_ROW_SEARCH_RESULT_MODE_PROPERTY] = g_param_spec_boolean ("search-result-mode", "search-result-mode", "search-result-mode", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), CLICKABLE_LIST_BOX_ROW_FULL_NAME_PROPERTY, clickable_list_box_row_properties[CLICKABLE_LIST_BOX_ROW_FULL_NAME_PROPERTY] = g_param_spec_string ("full-name", "full-name", "full-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), CLICKABLE_LIST_BOX_ROW_CONTEXT_ID_PROPERTY, clickable_list_box_row_properties[CLICKABLE_LIST_BOX_ROW_CONTEXT_ID_PROPERTY] = g_param_spec_uint ("context-id", "context-id", "context-id", 0, G_MAXUINT, 0U, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY));
}

static void
clickable_list_box_row_instance_init (ClickableListBoxRow * self,
                                      gpointer klass)
{
	self->priv = clickable_list_box_row_get_instance_private (self);
	self->priv->_search_result_mode = FALSE;
	self->nullable_popover = NULL;
}

static void
clickable_list_box_row_finalize (GObject * obj)
{
	ClickableListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow);
	_g_free0 (self->priv->_full_name);
	_g_object_unref0 (self->nullable_popover);
	G_OBJECT_CLASS (clickable_list_box_row_parent_class)->finalize (obj);
}

static GType
clickable_list_box_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ClickableListBoxRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) clickable_list_box_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ClickableListBoxRow), 0, (GInstanceInitFunc) clickable_list_box_row_instance_init, NULL };
	GType clickable_list_box_row_type_id;
	clickable_list_box_row_type_id = g_type_register_static (gtk_event_box_get_type (), "ClickableListBoxRow", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	ClickableListBoxRow_private_offset = g_type_add_instance_private (clickable_list_box_row_type_id, sizeof (ClickableListBoxRowPrivate));
	return clickable_list_box_row_type_id;
}

GType
clickable_list_box_row_get_type (void)
{
	static volatile gsize clickable_list_box_row_type_id__once = 0;
	if (g_once_init_enter (&clickable_list_box_row_type_id__once)) {
		GType clickable_list_box_row_type_id;
		clickable_list_box_row_type_id = clickable_list_box_row_get_type_once ();
		g_once_init_leave (&clickable_list_box_row_type_id__once, clickable_list_box_row_type_id);
	}
	return clickable_list_box_row_type_id__once;
}

static void
_vala_clickable_list_box_row_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec)
{
	ClickableListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow);
	switch (property_id) {
		case CLICKABLE_LIST_BOX_ROW_SEARCH_RESULT_MODE_PROPERTY:
		g_value_set_boolean (value, clickable_list_box_row_get_search_result_mode (self));
		break;
		case CLICKABLE_LIST_BOX_ROW_FULL_NAME_PROPERTY:
		g_value_set_string (value, clickable_list_box_row_get_full_name (self));
		break;
		case CLICKABLE_LIST_BOX_ROW_CONTEXT_ID_PROPERTY:
		g_value_set_uint (value, clickable_list_box_row_get_context_id (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_clickable_list_box_row_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec)
{
	ClickableListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow);
	switch (property_id) {
		case CLICKABLE_LIST_BOX_ROW_SEARCH_RESULT_MODE_PROPERTY:
		clickable_list_box_row_set_search_result_mode (self, g_value_get_boolean (value));
		break;
		case CLICKABLE_LIST_BOX_ROW_FULL_NAME_PROPERTY:
		clickable_list_box_row_set_full_name (self, g_value_get_string (value));
		break;
		case CLICKABLE_LIST_BOX_ROW_CONTEXT_ID_PROPERTY:
		clickable_list_box_row_set_context_id (self, g_value_get_uint (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
return_list_box_row_get_instance_private (ReturnListBoxRow* self)
{
	return G_STRUCT_MEMBER_P (self, ReturnListBoxRow_private_offset);
}

ReturnListBoxRow*
return_list_box_row_construct (GType object_type,
                               const gchar* _full_name,
                               guint16 _context_id)
{
	ReturnListBoxRow * self = NULL;
	GtkLabel* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	g_return_val_if_fail (_full_name != NULL, NULL);
	self = (ReturnListBoxRow*) g_object_new (object_type, "full-name", _full_name, "context-id", _context_id, "search-result-mode", TRUE, NULL);
	_tmp0_ = self->priv->folder_name_label;
	_tmp1_ = g_strdup_printf (_ ("Go to “%s”"), _full_name);
	_tmp2_ = _tmp1_;
	gtk_label_set_text (_tmp0_, _tmp2_);
	_g_free0 (_tmp2_);
	return self;
}

ReturnListBoxRow*
return_list_box_row_new (const gchar* _full_name,
                         guint16 _context_id)
{
	return return_list_box_row_construct (TYPE_RETURN_LIST_BOX_ROW, _full_name, _context_id);
}

static void
return_list_box_row_class_init (ReturnListBoxRowClass * klass,
                                gpointer klass_data)
{
	return_list_box_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ReturnListBoxRow_private_offset);
	G_OBJECT_CLASS (klass)->finalize = return_list_box_row_finalize;
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/ca/desrt/dconf-editor/ui/return-list-box-row.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "folder_name_label", FALSE, ReturnListBoxRow_private_offset + G_STRUCT_OFFSET (ReturnListBoxRowPrivate, folder_name_label));
}

static void
return_list_box_row_instance_init (ReturnListBoxRow * self,
                                   gpointer klass)
{
	self->priv = return_list_box_row_get_instance_private (self);
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
return_list_box_row_finalize (GObject * obj)
{
	ReturnListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RETURN_LIST_BOX_ROW, ReturnListBoxRow);
	G_OBJECT_CLASS (return_list_box_row_parent_class)->finalize (obj);
}

static GType
return_list_box_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ReturnListBoxRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) return_list_box_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReturnListBoxRow), 0, (GInstanceInitFunc) return_list_box_row_instance_init, NULL };
	GType return_list_box_row_type_id;
	return_list_box_row_type_id = g_type_register_static (TYPE_CLICKABLE_LIST_BOX_ROW, "ReturnListBoxRow", &g_define_type_info, 0);
	ReturnListBoxRow_private_offset = g_type_add_instance_private (return_list_box_row_type_id, sizeof (ReturnListBoxRowPrivate));
	return return_list_box_row_type_id;
}

GType
return_list_box_row_get_type (void)
{
	static volatile gsize return_list_box_row_type_id__once = 0;
	if (g_once_init_enter (&return_list_box_row_type_id__once)) {
		GType return_list_box_row_type_id;
		return_list_box_row_type_id = return_list_box_row_get_type_once ();
		g_once_init_leave (&return_list_box_row_type_id__once, return_list_box_row_type_id);
	}
	return return_list_box_row_type_id__once;
}

static inline gpointer
folder_list_box_row_get_instance_private (FolderListBoxRow* self)
{
	return G_STRUCT_MEMBER_P (self, FolderListBoxRow_private_offset);
}

FolderListBoxRow*
folder_list_box_row_construct (GType object_type,
                               const gchar* label,
                               const gchar* path,
                               gboolean path_search,
                               gboolean search_result_mode)
{
	FolderListBoxRow * self = NULL;
	const gchar* _tmp0_ = NULL;
	GtkLabel* _tmp1_;
	g_return_val_if_fail (label != NULL, NULL);
	g_return_val_if_fail (path != NULL, NULL);
	self = (FolderListBoxRow*) g_object_new (object_type, "full-name", path, "context-id", MODEL_UTILS_folder_context_id, "path-search", path_search, "search-result-mode", search_result_mode, NULL);
	if (search_result_mode) {
		_tmp0_ = path;
	} else {
		_tmp0_ = label;
	}
	_tmp1_ = self->priv->folder_name_label;
	gtk_label_set_text (_tmp1_, _tmp0_);
	return self;
}

FolderListBoxRow*
folder_list_box_row_new (const gchar* label,
                         const gchar* path,
                         gboolean path_search,
                         gboolean search_result_mode)
{
	return folder_list_box_row_construct (TYPE_FOLDER_LIST_BOX_ROW, label, path, path_search, search_result_mode);
}

gboolean
folder_list_box_row_get_path_search (FolderListBoxRow* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_path_search;
	return result;
}

static void
folder_list_box_row_set_path_search (FolderListBoxRow* self,
                                     gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_path_search = value;
}

static void
folder_list_box_row_class_init (FolderListBoxRowClass * klass,
                                gpointer klass_data)
{
	folder_list_box_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &FolderListBoxRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_folder_list_box_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_folder_list_box_row_set_property;
	G_OBJECT_CLASS (klass)->finalize = folder_list_box_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), FOLDER_LIST_BOX_ROW_PATH_SEARCH_PROPERTY, folder_list_box_row_properties[FOLDER_LIST_BOX_ROW_PATH_SEARCH_PROPERTY] = g_param_spec_boolean ("path-search", "path-search", "path-search", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/ca/desrt/dconf-editor/ui/folder-list-box-row.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "folder_name_label", FALSE, FolderListBoxRow_private_offset + G_STRUCT_OFFSET (FolderListBoxRowPrivate, folder_name_label));
}

static void
folder_list_box_row_instance_init (FolderListBoxRow * self,
                                   gpointer klass)
{
	self->priv = folder_list_box_row_get_instance_private (self);
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
folder_list_box_row_finalize (GObject * obj)
{
	FolderListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRow);
	G_OBJECT_CLASS (folder_list_box_row_parent_class)->finalize (obj);
}

static GType
folder_list_box_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (FolderListBoxRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) folder_list_box_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FolderListBoxRow), 0, (GInstanceInitFunc) folder_list_box_row_instance_init, NULL };
	GType folder_list_box_row_type_id;
	folder_list_box_row_type_id = g_type_register_static (TYPE_CLICKABLE_LIST_BOX_ROW, "FolderListBoxRow", &g_define_type_info, 0);
	FolderListBoxRow_private_offset = g_type_add_instance_private (folder_list_box_row_type_id, sizeof (FolderListBoxRowPrivate));
	return folder_list_box_row_type_id;
}

GType
folder_list_box_row_get_type (void)
{
	static volatile gsize folder_list_box_row_type_id__once = 0;
	if (g_once_init_enter (&folder_list_box_row_type_id__once)) {
		GType folder_list_box_row_type_id;
		folder_list_box_row_type_id = folder_list_box_row_get_type_once ();
		g_once_init_leave (&folder_list_box_row_type_id__once, folder_list_box_row_type_id);
	}
	return folder_list_box_row_type_id__once;
}

static void
_vala_folder_list_box_row_get_property (GObject * object,
                                        guint property_id,
                                        GValue * value,
                                        GParamSpec * pspec)
{
	FolderListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRow);
	switch (property_id) {
		case FOLDER_LIST_BOX_ROW_PATH_SEARCH_PROPERTY:
		g_value_set_boolean (value, folder_list_box_row_get_path_search (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_folder_list_box_row_set_property (GObject * object,
                                        guint property_id,
                                        const GValue * value,
                                        GParamSpec * pspec)
{
	FolderListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRow);
	switch (property_id) {
		case FOLDER_LIST_BOX_ROW_PATH_SEARCH_PROPERTY:
		folder_list_box_row_set_path_search (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
filter_list_box_row_get_instance_private (FilterListBoxRow* self)
{
	return G_STRUCT_MEMBER_P (self, FilterListBoxRow_private_offset);
}

FilterListBoxRow*
filter_list_box_row_construct (GType object_type,
                               const gchar* name,
                               const gchar* path)
{
	FilterListBoxRow * self = NULL;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_;
	g_return_val_if_fail (name != NULL, NULL);
	g_return_val_if_fail (path != NULL, NULL);
	if (g_strcmp0 (name, "") != 0) {
		_tmp0_ = g_strcmp0 (path, "/") != 0;
	} else {
		_tmp0_ = FALSE;
	}
	self = (FilterListBoxRow*) g_object_new (object_type, "is-local-search", _tmp0_, "full-name", path, "context-id", MODEL_UTILS_folder_context_id, "search-result-mode", TRUE, NULL);
	_tmp1_ = self->priv->_is_local_search;
	if (_tmp1_) {
		GtkLabel* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		_tmp2_ = self->priv->folder_name_label;
		_tmp3_ = g_strdup_printf (_ ("Search in “%s” folder"), name);
		_tmp4_ = _tmp3_;
		gtk_label_set_text (_tmp2_, _tmp4_);
		_g_free0 (_tmp4_);
	} else {
		if (g_strcmp0 (path, "/") == 0) {
			GtkLabel* _tmp5_;
			_tmp5_ = self->priv->folder_name_label;
			gtk_label_set_text (_tmp5_, _ ("Open path entry"));
		} else {
			GtkLabel* _tmp6_;
			_tmp6_ = self->priv->folder_name_label;
			gtk_label_set_text (_tmp6_, _ ("Search everywhere"));
		}
	}
	return self;
}

FilterListBoxRow*
filter_list_box_row_new (const gchar* name,
                         const gchar* path)
{
	return filter_list_box_row_construct (TYPE_FILTER_LIST_BOX_ROW, name, path);
}

gboolean
filter_list_box_row_get_is_local_search (FilterListBoxRow* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_local_search;
	return result;
}

static void
filter_list_box_row_set_is_local_search (FilterListBoxRow* self,
                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = filter_list_box_row_get_is_local_search (self);
	if (old_value != value) {
		self->priv->_is_local_search = value;
		g_object_notify_by_pspec ((GObject *) self, filter_list_box_row_properties[FILTER_LIST_BOX_ROW_IS_LOCAL_SEARCH_PROPERTY]);
	}
}

static void
filter_list_box_row_class_init (FilterListBoxRowClass * klass,
                                gpointer klass_data)
{
	filter_list_box_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &FilterListBoxRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_filter_list_box_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_filter_list_box_row_set_property;
	G_OBJECT_CLASS (klass)->finalize = filter_list_box_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), FILTER_LIST_BOX_ROW_IS_LOCAL_SEARCH_PROPERTY, filter_list_box_row_properties[FILTER_LIST_BOX_ROW_IS_LOCAL_SEARCH_PROPERTY] = g_param_spec_boolean ("is-local-search", "is-local-search", "is-local-search", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/ca/desrt/dconf-editor/ui/filter-list-box-row.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "folder_name_label", FALSE, FilterListBoxRow_private_offset + G_STRUCT_OFFSET (FilterListBoxRowPrivate, folder_name_label));
}

static void
filter_list_box_row_instance_init (FilterListBoxRow * self,
                                   gpointer klass)
{
	self->priv = filter_list_box_row_get_instance_private (self);
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
filter_list_box_row_finalize (GObject * obj)
{
	FilterListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRow);
	G_OBJECT_CLASS (filter_list_box_row_parent_class)->finalize (obj);
}

static GType
filter_list_box_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (FilterListBoxRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) filter_list_box_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FilterListBoxRow), 0, (GInstanceInitFunc) filter_list_box_row_instance_init, NULL };
	GType filter_list_box_row_type_id;
	filter_list_box_row_type_id = g_type_register_static (TYPE_CLICKABLE_LIST_BOX_ROW, "FilterListBoxRow", &g_define_type_info, 0);
	FilterListBoxRow_private_offset = g_type_add_instance_private (filter_list_box_row_type_id, sizeof (FilterListBoxRowPrivate));
	return filter_list_box_row_type_id;
}

GType
filter_list_box_row_get_type (void)
{
	static volatile gsize filter_list_box_row_type_id__once = 0;
	if (g_once_init_enter (&filter_list_box_row_type_id__once)) {
		GType filter_list_box_row_type_id;
		filter_list_box_row_type_id = filter_list_box_row_get_type_once ();
		g_once_init_leave (&filter_list_box_row_type_id__once, filter_list_box_row_type_id);
	}
	return filter_list_box_row_type_id__once;
}

static void
_vala_filter_list_box_row_get_property (GObject * object,
                                        guint property_id,
                                        GValue * value,
                                        GParamSpec * pspec)
{
	FilterListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRow);
	switch (property_id) {
		case FILTER_LIST_BOX_ROW_IS_LOCAL_SEARCH_PROPERTY:
		g_value_set_boolean (value, filter_list_box_row_get_is_local_search (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_filter_list_box_row_set_property (GObject * object,
                                        guint property_id,
                                        const GValue * value,
                                        GParamSpec * pspec)
{
	FilterListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRow);
	switch (property_id) {
		case FILTER_LIST_BOX_ROW_IS_LOCAL_SEARCH_PROPERTY:
		filter_list_box_row_set_is_local_search (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
search_list_box_row_get_instance_private (SearchListBoxRow* self)
{
	return G_STRUCT_MEMBER_P (self, SearchListBoxRow_private_offset);
}

SearchListBoxRow*
search_list_box_row_construct (GType object_type,
                               const gchar* search)
{
	SearchListBoxRow * self = NULL;
	GtkLabel* _tmp0_;
	g_return_val_if_fail (search != NULL, NULL);
	self = (SearchListBoxRow*) g_object_new (object_type, "full-name", search, "context-id", MODEL_UTILS_undefined_context_id, NULL);
	_tmp0_ = self->priv->search_label;
	gtk_label_set_text (_tmp0_, search);
	return self;
}

SearchListBoxRow*
search_list_box_row_new (const gchar* search)
{
	return search_list_box_row_construct (TYPE_SEARCH_LIST_BOX_ROW, search);
}

static void
search_list_box_row_class_init (SearchListBoxRowClass * klass,
                                gpointer klass_data)
{
	search_list_box_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SearchListBoxRow_private_offset);
	G_OBJECT_CLASS (klass)->finalize = search_list_box_row_finalize;
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/ca/desrt/dconf-editor/ui/search-list-box-row.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "search_label", FALSE, SearchListBoxRow_private_offset + G_STRUCT_OFFSET (SearchListBoxRowPrivate, search_label));
}

static void
search_list_box_row_instance_init (SearchListBoxRow * self,
                                   gpointer klass)
{
	self->priv = search_list_box_row_get_instance_private (self);
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
search_list_box_row_finalize (GObject * obj)
{
	SearchListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_LIST_BOX_ROW, SearchListBoxRow);
	G_OBJECT_CLASS (search_list_box_row_parent_class)->finalize (obj);
}

static GType
search_list_box_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SearchListBoxRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_list_box_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchListBoxRow), 0, (GInstanceInitFunc) search_list_box_row_instance_init, NULL };
	GType search_list_box_row_type_id;
	search_list_box_row_type_id = g_type_register_static (TYPE_CLICKABLE_LIST_BOX_ROW, "SearchListBoxRow", &g_define_type_info, 0);
	SearchListBoxRow_private_offset = g_type_add_instance_private (search_list_box_row_type_id, sizeof (SearchListBoxRowPrivate));
	return search_list_box_row_type_id;
}

GType
search_list_box_row_get_type (void)
{
	static volatile gsize search_list_box_row_type_id__once = 0;
	if (g_once_init_enter (&search_list_box_row_type_id__once)) {
		GType search_list_box_row_type_id;
		search_list_box_row_type_id = search_list_box_row_get_type_once ();
		g_once_init_leave (&search_list_box_row_type_id__once, search_list_box_row_type_id);
	}
	return search_list_box_row_type_id__once;
}

static inline gpointer
key_list_box_row_get_instance_private (KeyListBoxRow* self)
{
	return G_STRUCT_MEMBER_P (self, KeyListBoxRow_private_offset);
}

static void
key_list_box_row_real_set_window_size (AdaptativeWidget* base,
                                       AdaptativeWidgetWindowSize new_size)
{
	KeyListBoxRow * self;
	gboolean _thin_window = FALSE;
	self = (KeyListBoxRow*) base;
	_thin_window = adaptative_widget_window_size_is_extra_thin (new_size);
	if (self->priv->thin_window == _thin_window) {
		return;
	}
	self->priv->thin_window = _thin_window;
	if (_thin_window) {
		GtkSwitch* _tmp0_;
		GtkLabel* _tmp2_;
		GtkLabel* _tmp3_;
		_tmp0_ = self->priv->boolean_switch;
		if (_tmp0_ != NULL) {
			GtkSwitch* _tmp1_;
			_tmp1_ = self->priv->boolean_switch;
			gtk_widget_hide ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_switch_get_type (), GtkSwitch));
		}
		_tmp2_ = self->priv->key_value_label;
		gtk_widget_hide ((GtkWidget*) _tmp2_);
		_tmp3_ = self->priv->key_type_label;
		gtk_widget_show ((GtkWidget*) _tmp3_);
	} else {
		GtkLabel* _tmp4_;
		gboolean _tmp5_ = FALSE;
		_tmp4_ = self->priv->key_type_label;
		gtk_widget_hide ((GtkWidget*) _tmp4_);
		if (self->priv->_use_switch) {
			gboolean _tmp6_;
			gboolean _tmp7_;
			_tmp6_ = key_list_box_row_get_delay_mode (self);
			_tmp7_ = _tmp6_;
			_tmp5_ = !_tmp7_;
		} else {
			_tmp5_ = FALSE;
		}
		if (_tmp5_) {
			GtkSwitch* _tmp8_;
			_tmp8_ = self->priv->boolean_switch;
			gtk_widget_show ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_switch_get_type (), GtkSwitch));
		} else {
			GtkLabel* _tmp9_;
			_tmp9_ = self->priv->key_value_label;
			gtk_widget_show ((GtkWidget*) _tmp9_);
		}
	}
}

KeyListBoxRow*
key_list_box_row_construct (GType object_type,
                            gboolean _has_schema,
                            const gchar* _type_string,
                            guint16 _context_id,
                            const gchar* summary,
                            gboolean italic_summary,
                            gboolean _delay_mode,
                            const gchar* _key_name,
                            const gchar* _full_name,
                            gboolean _search_result_mode)
{
	KeyListBoxRow * self = NULL;
	GtkLabel* _tmp2_;
	g_return_val_if_fail (_type_string != NULL, NULL);
	g_return_val_if_fail (summary != NULL, NULL);
	g_return_val_if_fail (_key_name != NULL, NULL);
	g_return_val_if_fail (_full_name != NULL, NULL);
	self = (KeyListBoxRow*) g_object_new (object_type, "has-schema", _has_schema, "type-string", _type_string, "context-id", _context_id, "delay-mode", _delay_mode, "key-name", _key_name, "full-name", _full_name, "search-result-mode", _search_result_mode, NULL);
	if (italic_summary) {
		GtkLabel* _tmp0_;
		GtkStyleContext* _tmp1_;
		_tmp0_ = self->priv->key_info_label;
		_tmp1_ = gtk_widget_get_style_context ((GtkWidget*) _tmp0_);
		gtk_style_context_add_class (_tmp1_, "italic-label");
	}
	_tmp2_ = self->priv->key_info_label;
	gtk_label_set_label (_tmp2_, summary);
	return self;
}

KeyListBoxRow*
key_list_box_row_new (gboolean _has_schema,
                      const gchar* _type_string,
                      guint16 _context_id,
                      const gchar* summary,
                      gboolean italic_summary,
                      gboolean _delay_mode,
                      const gchar* _key_name,
                      const gchar* _full_name,
                      gboolean _search_result_mode)
{
	return key_list_box_row_construct (TYPE_KEY_LIST_BOX_ROW, _has_schema, _type_string, _context_id, summary, italic_summary, _delay_mode, _key_name, _full_name, _search_result_mode);
}

void
key_list_box_row_toggle_boolean_key (KeyListBoxRow* self)
{
	const gchar* _tmp0_;
	GtkSwitch* _tmp1_;
	gboolean state = FALSE;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_type_string;
	if (g_strcmp0 (_tmp0_, "b") != 0) {
		return;
	}
	_tmp1_ = self->priv->boolean_switch;
	if (_tmp1_ == NULL) {
		return;
	}
	_tmp2_ = self->priv->boolean_switch;
	state = gtk_switch_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_switch_get_type (), GtkSwitch));
	_tmp3_ = self->priv->boolean_switch;
	gtk_switch_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_switch_get_type (), GtkSwitch), !state);
}

void
key_list_box_row_change_dismissed (KeyListBoxRow* self)
{
	GtkModelButton* actionable = NULL;
	GtkModelButton* _tmp0_;
	GVariant* variant = NULL;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	GVariant* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	GtkContainer* child = NULL;
	GtkWidget* _tmp10_;
	GtkContainer* _tmp11_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (GtkModelButton*) gtk_model_button_new ();
	g_object_ref_sink (_tmp0_);
	actionable = _tmp0_;
	gtk_widget_set_visible ((GtkWidget*) actionable, FALSE);
	_tmp1_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) self);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_variant_new_string (_tmp2_);
	g_variant_ref_sink (_tmp3_);
	variant = _tmp3_;
	_tmp4_ = g_variant_print (variant, FALSE);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strconcat ("ui.dismiss-change(", _tmp5_, NULL);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, ")", NULL);
	_tmp9_ = _tmp8_;
	gtk_actionable_set_detailed_action_name ((GtkActionable*) actionable, _tmp9_);
	_g_free0 (_tmp9_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_tmp10_ = gtk_bin_get_child ((GtkBin*) self);
	_tmp11_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_container_get_type (), GtkContainer));
	child = _tmp11_;
	gtk_container_add (child, (GtkWidget*) actionable);
	gtk_button_clicked ((GtkButton*) actionable);
	gtk_container_remove (child, (GtkWidget*) actionable);
	gtk_widget_destroy ((GtkWidget*) actionable);
	_g_object_unref0 (child);
	_g_variant_unref0 (variant);
	_g_object_unref0 (actionable);
}

void
key_list_box_row_on_delete_call (KeyListBoxRow* self)
{
	g_return_if_fail (self != NULL);
	key_list_box_row_set_key_value (self, NULL);
}

void
key_list_box_row_set_key_value (KeyListBoxRow* self,
                                GVariant* new_value)
{
	GtkModelButton* actionable = NULL;
	GtkModelButton* _tmp0_;
	GtkModelButton* _tmp1_;
	GVariant* variant = NULL;
	GtkContainer* child = NULL;
	GtkWidget* _tmp40_;
	GtkContainer* _tmp41_;
	GtkModelButton* _tmp42_;
	GtkModelButton* _tmp43_;
	GtkModelButton* _tmp44_;
	GtkModelButton* _tmp45_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (GtkModelButton*) gtk_model_button_new ();
	g_object_ref_sink (_tmp0_);
	actionable = _tmp0_;
	_tmp1_ = actionable;
	gtk_widget_set_visible ((GtkWidget*) _tmp1_, FALSE);
	if (new_value == NULL) {
		gboolean _tmp2_;
		_tmp2_ = self->priv->_has_schema;
		if (_tmp2_) {
			const gchar* _tmp3_;
			const gchar* _tmp4_;
			guint16 _tmp5_;
			guint16 _tmp6_;
			GVariant* _tmp7_;
			GtkModelButton* _tmp8_;
			GVariant* _tmp9_;
			gchar* _tmp10_;
			gchar* _tmp11_;
			gchar* _tmp12_;
			gchar* _tmp13_;
			gchar* _tmp14_;
			gchar* _tmp15_;
			_tmp3_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) self);
			_tmp4_ = _tmp3_;
			_tmp5_ = clickable_list_box_row_get_context_id ((ClickableListBoxRow*) self);
			_tmp6_ = _tmp5_;
			_tmp7_ = g_variant_new ("(sq)", _tmp4_, _tmp6_, NULL);
			g_variant_ref_sink (_tmp7_);
			_g_variant_unref0 (variant);
			variant = _tmp7_;
			_tmp8_ = actionable;
			_tmp9_ = variant;
			_tmp10_ = g_variant_print (_tmp9_, TRUE);
			_tmp11_ = _tmp10_;
			_tmp12_ = g_strconcat ("view.set-to-default(", _tmp11_, NULL);
			_tmp13_ = _tmp12_;
			_tmp14_ = g_strconcat (_tmp13_, ")", NULL);
			_tmp15_ = _tmp14_;
			gtk_actionable_set_detailed_action_name ((GtkActionable*) _tmp8_, _tmp15_);
			_g_free0 (_tmp15_);
			_g_free0 (_tmp13_);
			_g_free0 (_tmp11_);
		} else {
			const gchar* _tmp16_;
			const gchar* _tmp17_;
			GVariant* _tmp18_;
			GtkModelButton* _tmp19_;
			GVariant* _tmp20_;
			gchar* _tmp21_;
			gchar* _tmp22_;
			gchar* _tmp23_;
			gchar* _tmp24_;
			gchar* _tmp25_;
			gchar* _tmp26_;
			_tmp16_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) self);
			_tmp17_ = _tmp16_;
			_tmp18_ = g_variant_new_string (_tmp17_);
			g_variant_ref_sink (_tmp18_);
			_g_variant_unref0 (variant);
			variant = _tmp18_;
			_tmp19_ = actionable;
			_tmp20_ = variant;
			_tmp21_ = g_variant_print (_tmp20_, FALSE);
			_tmp22_ = _tmp21_;
			_tmp23_ = g_strconcat ("ui.erase(", _tmp22_, NULL);
			_tmp24_ = _tmp23_;
			_tmp25_ = g_strconcat (_tmp24_, ")", NULL);
			_tmp26_ = _tmp25_;
			gtk_actionable_set_detailed_action_name ((GtkActionable*) _tmp19_, _tmp26_);
			_g_free0 (_tmp26_);
			_g_free0 (_tmp24_);
			_g_free0 (_tmp22_);
		}
	} else {
		const gchar* _tmp27_;
		const gchar* _tmp28_;
		guint16 _tmp29_;
		guint16 _tmp30_;
		GVariant* _tmp31_;
		GtkModelButton* _tmp32_;
		GVariant* _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		gchar* _tmp39_;
		_tmp27_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) self);
		_tmp28_ = _tmp27_;
		_tmp29_ = clickable_list_box_row_get_context_id ((ClickableListBoxRow*) self);
		_tmp30_ = _tmp29_;
		_tmp31_ = g_variant_new ("(sqv)", _tmp28_, _tmp30_, (GVariant*) new_value, NULL);
		g_variant_ref_sink (_tmp31_);
		_g_variant_unref0 (variant);
		variant = _tmp31_;
		_tmp32_ = actionable;
		_tmp33_ = variant;
		_tmp34_ = g_variant_print (_tmp33_, TRUE);
		_tmp35_ = _tmp34_;
		_tmp36_ = g_strconcat ("view.set-key-value(", _tmp35_, NULL);
		_tmp37_ = _tmp36_;
		_tmp38_ = g_strconcat (_tmp37_, ")", NULL);
		_tmp39_ = _tmp38_;
		gtk_actionable_set_detailed_action_name ((GtkActionable*) _tmp32_, _tmp39_);
		_g_free0 (_tmp39_);
		_g_free0 (_tmp37_);
		_g_free0 (_tmp35_);
	}
	_tmp40_ = gtk_bin_get_child ((GtkBin*) self);
	_tmp41_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_container_get_type (), GtkContainer));
	child = _tmp41_;
	_tmp42_ = actionable;
	gtk_container_add (child, (GtkWidget*) _tmp42_);
	_tmp43_ = actionable;
	gtk_button_clicked ((GtkButton*) _tmp43_);
	_tmp44_ = actionable;
	gtk_container_remove (child, (GtkWidget*) _tmp44_);
	_tmp45_ = actionable;
	gtk_widget_destroy ((GtkWidget*) _tmp45_);
	_g_object_unref0 (child);
	_g_variant_unref0 (variant);
	_g_object_unref0 (actionable);
}

void
key_list_box_row_update_label (KeyListBoxRow* self,
                               const gchar* key_value_string,
                               gboolean key_value_italic,
                               const gchar* key_type_string,
                               gboolean key_type_italic)
{
	GtkLabel* _tmp4_;
	GtkLabel* _tmp9_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (key_value_string != NULL);
	g_return_if_fail (key_type_string != NULL);
	if (key_value_italic) {
		if (!self->priv->key_value_label_has_italic_label_class) {
			GtkLabel* _tmp0_;
			GtkStyleContext* _tmp1_;
			_tmp0_ = self->priv->key_value_label;
			_tmp1_ = gtk_widget_get_style_context ((GtkWidget*) _tmp0_);
			gtk_style_context_add_class (_tmp1_, "italic-label");
		}
	} else {
		if (self->priv->key_value_label_has_italic_label_class) {
			GtkLabel* _tmp2_;
			GtkStyleContext* _tmp3_;
			_tmp2_ = self->priv->key_value_label;
			_tmp3_ = gtk_widget_get_style_context ((GtkWidget*) _tmp2_);
			gtk_style_context_remove_class (_tmp3_, "italic-label");
		}
	}
	self->priv->key_value_label_has_italic_label_class = key_value_italic;
	_tmp4_ = self->priv->key_value_label;
	gtk_label_set_label (_tmp4_, key_value_string);
	if (key_type_italic) {
		if (!self->priv->key_type_label_has_italic_label_class) {
			GtkLabel* _tmp5_;
			GtkStyleContext* _tmp6_;
			_tmp5_ = self->priv->key_type_label;
			_tmp6_ = gtk_widget_get_style_context ((GtkWidget*) _tmp5_);
			gtk_style_context_add_class (_tmp6_, "italic-label");
		}
	} else {
		if (self->priv->key_type_label_has_italic_label_class) {
			GtkLabel* _tmp7_;
			GtkStyleContext* _tmp8_;
			_tmp7_ = self->priv->key_type_label;
			_tmp8_ = gtk_widget_get_style_context ((GtkWidget*) _tmp7_);
			gtk_style_context_remove_class (_tmp8_, "italic-label");
		}
	}
	self->priv->key_type_label_has_italic_label_class = key_type_italic;
	_tmp9_ = self->priv->key_type_label;
	gtk_label_set_label (_tmp9_, key_type_string);
}

void
key_list_box_row_use_switch (KeyListBoxRow* self,
                             gboolean show)
{
	GtkSwitch* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->boolean_switch;
	_vala_return_if_fail (_tmp0_ != NULL, "boolean_switch != null");
	if (self->priv->_use_switch != show) {
		self->priv->_use_switch = show;
		key_list_box_row_hide_or_show_switch (self);
	}
}

static void
key_list_box_row_hide_or_show_switch (KeyListBoxRow* self)
{
	GtkSwitch* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->boolean_switch;
	_vala_return_if_fail (_tmp0_ != NULL, "boolean_switch != null");
	if (self->priv->thin_window) {
		GtkLabel* _tmp1_;
		GtkSwitch* _tmp2_;
		GtkLabel* _tmp3_;
		_tmp1_ = self->priv->key_value_label;
		gtk_widget_hide ((GtkWidget*) _tmp1_);
		_tmp2_ = self->priv->boolean_switch;
		gtk_widget_hide ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_switch_get_type (), GtkSwitch));
		_tmp3_ = self->priv->key_type_label;
		gtk_widget_show ((GtkWidget*) _tmp3_);
	} else {
		gboolean _tmp4_ = FALSE;
		if (self->priv->_use_switch) {
			gboolean _tmp5_;
			gboolean _tmp6_;
			_tmp5_ = key_list_box_row_get_delay_mode (self);
			_tmp6_ = _tmp5_;
			_tmp4_ = !_tmp6_;
		} else {
			_tmp4_ = FALSE;
		}
		if (_tmp4_) {
			GtkLabel* _tmp7_;
			GtkLabel* _tmp8_;
			GtkSwitch* _tmp9_;
			_tmp7_ = self->priv->key_value_label;
			gtk_widget_hide ((GtkWidget*) _tmp7_);
			_tmp8_ = self->priv->key_type_label;
			gtk_widget_hide ((GtkWidget*) _tmp8_);
			_tmp9_ = self->priv->boolean_switch;
			gtk_widget_show ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_switch_get_type (), GtkSwitch));
		} else {
			GtkSwitch* _tmp10_;
			GtkLabel* _tmp11_;
			GtkLabel* _tmp12_;
			_tmp10_ = self->priv->boolean_switch;
			gtk_widget_hide ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_switch_get_type (), GtkSwitch));
			_tmp11_ = self->priv->key_type_label;
			gtk_widget_hide ((GtkWidget*) _tmp11_);
			_tmp12_ = self->priv->key_value_label;
			gtk_widget_show ((GtkWidget*) _tmp12_);
		}
	}
}

void
key_list_box_row_update_switch (KeyListBoxRow* self,
                                gboolean key_value_boolean,
                                const gchar* detailed_action_name)
{
	GtkSwitch* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (detailed_action_name != NULL);
	_tmp0_ = self->priv->boolean_switch;
	_vala_return_if_fail (_tmp0_ != NULL, "boolean_switch != null");
	_tmp1_ = self->priv->boolean_switch;
	gtk_actionable_set_action_name ((GtkActionable*) G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_switch_get_type (), GtkSwitch), "browser.empty");
	_tmp2_ = self->priv->boolean_switch;
	gtk_switch_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_switch_get_type (), GtkSwitch), key_value_boolean);
	_tmp3_ = self->priv->boolean_switch;
	gtk_actionable_set_detailed_action_name ((GtkActionable*) G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_switch_get_type (), GtkSwitch), detailed_action_name);
}

const gchar*
key_list_box_row_get_key_name (KeyListBoxRow* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_key_name;
	result = _tmp0_;
	return result;
}

static void
key_list_box_row_set_key_name (KeyListBoxRow* self,
                               const gchar* value)
{
	gchar* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup (value);
	_g_free0 (self->priv->_key_name);
	self->priv->_key_name = _tmp0_;
}

const gchar*
key_list_box_row_get_type_string (KeyListBoxRow* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_type_string;
	result = _tmp0_;
	return result;
}

static void
key_list_box_row_set_type_string (KeyListBoxRow* self,
                                  const gchar* value)
{
	gchar* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup (value);
	_g_free0 (self->priv->_type_string);
	self->priv->_type_string = _tmp0_;
}

gboolean
key_list_box_row_get_has_schema (KeyListBoxRow* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_has_schema;
	return result;
}

static void
key_list_box_row_set_has_schema (KeyListBoxRow* self,
                                 gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_has_schema = value;
}

static gboolean
key_list_box_row_get_delay_mode (KeyListBoxRow* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_delay_mode;
	return result;
}

void
key_list_box_row_set_delay_mode (KeyListBoxRow* self,
                                 gboolean value)
{
	GtkSwitch* _tmp0_;
	g_return_if_fail (self != NULL);
	self->priv->_delay_mode = value;
	_tmp0_ = self->priv->boolean_switch;
	if (_tmp0_ != NULL) {
		key_list_box_row_hide_or_show_switch (self);
	}
}

void
key_list_box_row_set_small_keys_list_rows (KeyListBoxRow* self,
                                           gboolean value)
{
	g_return_if_fail (self != NULL);
	if (value) {
		GtkLabel* _tmp0_;
		GtkLabel* _tmp1_;
		_tmp0_ = self->priv->key_value_label;
		gtk_label_set_lines (_tmp0_, 2);
		_tmp1_ = self->priv->key_info_label;
		gtk_label_set_lines (_tmp1_, 1);
	} else {
		GtkLabel* _tmp2_;
		GtkLabel* _tmp3_;
		_tmp2_ = self->priv->key_value_label;
		gtk_label_set_lines (_tmp2_, 3);
		_tmp3_ = self->priv->key_info_label;
		gtk_label_set_lines (_tmp3_, 2);
	}
}

static GObject *
key_list_box_row_constructor (GType type,
                              guint n_construct_properties,
                              GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	KeyListBoxRow * self;
	gboolean _tmp0_;
	const gchar* _tmp3_;
	const gchar* _tmp13_ = NULL;
	gboolean _tmp14_;
	gboolean _tmp15_;
	GtkLabel* _tmp19_;
	parent_class = G_OBJECT_CLASS (key_list_box_row_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow);
	_tmp0_ = self->priv->_has_schema;
	if (_tmp0_) {
		GtkStyleContext* _tmp1_;
		_tmp1_ = gtk_widget_get_style_context ((GtkWidget*) self);
		gtk_style_context_add_class (_tmp1_, "gsettings-key");
	} else {
		GtkStyleContext* _tmp2_;
		_tmp2_ = gtk_widget_get_style_context ((GtkWidget*) self);
		gtk_style_context_add_class (_tmp2_, "dconf-key");
	}
	_tmp3_ = self->priv->_type_string;
	if (g_strcmp0 (_tmp3_, "b") == 0) {
		GtkSwitch* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		GtkSwitch* _tmp7_;
		gboolean _tmp8_;
		GtkGrid* _tmp11_;
		GtkSwitch* _tmp12_;
		_tmp4_ = (GtkSwitch*) gtk_switch_new ();
		g_object_ref_sink (_tmp4_);
		_g_object_unref0 (self->priv->boolean_switch);
		self->priv->boolean_switch = _tmp4_;
		_tmp5_ = self->priv->boolean_switch;
		gtk_widget_set_can_focus ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_switch_get_type (), GtkSwitch), FALSE);
		_tmp6_ = self->priv->boolean_switch;
		gtk_widget_set_halign ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_switch_get_type (), GtkSwitch), GTK_ALIGN_END);
		_tmp7_ = self->priv->boolean_switch;
		gtk_widget_set_valign ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_switch_get_type (), GtkSwitch), GTK_ALIGN_CENTER);
		_tmp8_ = self->priv->_has_schema;
		if (_tmp8_) {
			GtkSwitch* _tmp9_;
			_tmp9_ = self->priv->boolean_switch;
			gtk_actionable_set_detailed_action_name ((GtkActionable*) G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_switch_get_type (), GtkSwitch), "browser.empty(('',uint16 0,true,true))");
		} else {
			GtkSwitch* _tmp10_;
			_tmp10_ = self->priv->boolean_switch;
			gtk_actionable_set_detailed_action_name ((GtkActionable*) G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_switch_get_type (), GtkSwitch), "browser.empty(('',true))");
		}
		self->priv->_use_switch = TRUE;
		key_list_box_row_hide_or_show_switch (self);
		_tmp11_ = self->priv->key_name_and_value_grid;
		_tmp12_ = self->priv->boolean_switch;
		gtk_grid_attach (_tmp11_, (GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_switch_get_type (), GtkSwitch), 1, 0, 1, 2);
	}
	_tmp14_ = clickable_list_box_row_get_search_result_mode ((ClickableListBoxRow*) self);
	_tmp15_ = _tmp14_;
	if (_tmp15_) {
		const gchar* _tmp16_;
		const gchar* _tmp17_;
		_tmp16_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) self);
		_tmp17_ = _tmp16_;
		_tmp13_ = _tmp17_;
	} else {
		const gchar* _tmp18_;
		_tmp18_ = self->priv->_key_name;
		_tmp13_ = _tmp18_;
	}
	_tmp19_ = self->priv->key_name_label;
	gtk_label_set_label (_tmp19_, _tmp13_);
	return obj;
}

static void
key_list_box_row_class_init (KeyListBoxRowClass * klass,
                             gpointer klass_data)
{
	key_list_box_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &KeyListBoxRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_key_list_box_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_key_list_box_row_set_property;
	G_OBJECT_CLASS (klass)->constructor = key_list_box_row_constructor;
	G_OBJECT_CLASS (klass)->finalize = key_list_box_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEY_LIST_BOX_ROW_KEY_NAME_PROPERTY, key_list_box_row_properties[KEY_LIST_BOX_ROW_KEY_NAME_PROPERTY] = g_param_spec_string ("key-name", "key-name", "key-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEY_LIST_BOX_ROW_TYPE_STRING_PROPERTY, key_list_box_row_properties[KEY_LIST_BOX_ROW_TYPE_STRING_PROPERTY] = g_param_spec_string ("type-string", "type-string", "type-string", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEY_LIST_BOX_ROW_HAS_SCHEMA_PROPERTY, key_list_box_row_properties[KEY_LIST_BOX_ROW_HAS_SCHEMA_PROPERTY] = g_param_spec_boolean ("has-schema", "has-schema", "has-schema", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEY_LIST_BOX_ROW_DELAY_MODE_PROPERTY, key_list_box_row_properties[KEY_LIST_BOX_ROW_DELAY_MODE_PROPERTY] = g_param_spec_boolean ("delay-mode", "delay-mode", "delay-mode", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), KEY_LIST_BOX_ROW_SMALL_KEYS_LIST_ROWS_PROPERTY, key_list_box_row_properties[KEY_LIST_BOX_ROW_SMALL_KEYS_LIST_ROWS_PROPERTY] = g_param_spec_boolean ("small-keys-list-rows", "small-keys-list-rows", "small-keys-list-rows", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_EXPLICIT_NOTIFY));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/ca/desrt/dconf-editor/ui/key-list-box-row.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "key_name_and_value_grid", FALSE, KeyListBoxRow_private_offset + G_STRUCT_OFFSET (KeyListBoxRowPrivate, key_name_and_value_grid));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "key_name_label", FALSE, KeyListBoxRow_private_offset + G_STRUCT_OFFSET (KeyListBoxRowPrivate, key_name_label));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "key_type_label", FALSE, KeyListBoxRow_private_offset + G_STRUCT_OFFSET (KeyListBoxRowPrivate, key_type_label));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "key_value_label", FALSE, KeyListBoxRow_private_offset + G_STRUCT_OFFSET (KeyListBoxRowPrivate, key_value_label));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "key_info_label", FALSE, KeyListBoxRow_private_offset + G_STRUCT_OFFSET (KeyListBoxRowPrivate, key_info_label));
}

static void
key_list_box_row_adaptative_widget_interface_init (AdaptativeWidgetIface * iface,
                                                   gpointer iface_data)
{
	key_list_box_row_adaptative_widget_parent_iface = g_type_interface_peek_parent (iface);
	iface->set_window_size = (void (*) (AdaptativeWidget*, AdaptativeWidgetWindowSize)) key_list_box_row_real_set_window_size;
}

static void
key_list_box_row_instance_init (KeyListBoxRow * self,
                                gpointer klass)
{
	self->priv = key_list_box_row_get_instance_private (self);
	self->priv->boolean_switch = NULL;
	self->priv->_delay_mode = FALSE;
	self->priv->thin_window = FALSE;
	self->priv->key_value_label_has_italic_label_class = FALSE;
	self->priv->key_type_label_has_italic_label_class = FALSE;
	self->priv->_use_switch = FALSE;
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
key_list_box_row_finalize (GObject * obj)
{
	KeyListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow);
	_g_object_unref0 (self->priv->boolean_switch);
	_g_free0 (self->priv->_key_name);
	_g_free0 (self->priv->_type_string);
	G_OBJECT_CLASS (key_list_box_row_parent_class)->finalize (obj);
}

static GType
key_list_box_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (KeyListBoxRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) key_list_box_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeyListBoxRow), 0, (GInstanceInitFunc) key_list_box_row_instance_init, NULL };
	static const GInterfaceInfo adaptative_widget_info = { (GInterfaceInitFunc) key_list_box_row_adaptative_widget_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType key_list_box_row_type_id;
	key_list_box_row_type_id = g_type_register_static (TYPE_CLICKABLE_LIST_BOX_ROW, "KeyListBoxRow", &g_define_type_info, 0);
	g_type_add_interface_static (key_list_box_row_type_id, TYPE_ADAPTATIVE_WIDGET, &adaptative_widget_info);
	KeyListBoxRow_private_offset = g_type_add_instance_private (key_list_box_row_type_id, sizeof (KeyListBoxRowPrivate));
	return key_list_box_row_type_id;
}

GType
key_list_box_row_get_type (void)
{
	static volatile gsize key_list_box_row_type_id__once = 0;
	if (g_once_init_enter (&key_list_box_row_type_id__once)) {
		GType key_list_box_row_type_id;
		key_list_box_row_type_id = key_list_box_row_get_type_once ();
		g_once_init_leave (&key_list_box_row_type_id__once, key_list_box_row_type_id);
	}
	return key_list_box_row_type_id__once;
}

static void
_vala_key_list_box_row_get_property (GObject * object,
                                     guint property_id,
                                     GValue * value,
                                     GParamSpec * pspec)
{
	KeyListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow);
	switch (property_id) {
		case KEY_LIST_BOX_ROW_KEY_NAME_PROPERTY:
		g_value_set_string (value, key_list_box_row_get_key_name (self));
		break;
		case KEY_LIST_BOX_ROW_TYPE_STRING_PROPERTY:
		g_value_set_string (value, key_list_box_row_get_type_string (self));
		break;
		case KEY_LIST_BOX_ROW_HAS_SCHEMA_PROPERTY:
		g_value_set_boolean (value, key_list_box_row_get_has_schema (self));
		break;
		case KEY_LIST_BOX_ROW_DELAY_MODE_PROPERTY:
		g_value_set_boolean (value, key_list_box_row_get_delay_mode (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_key_list_box_row_set_property (GObject * object,
                                     guint property_id,
                                     const GValue * value,
                                     GParamSpec * pspec)
{
	KeyListBoxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow);
	switch (property_id) {
		case KEY_LIST_BOX_ROW_KEY_NAME_PROPERTY:
		key_list_box_row_set_key_name (self, g_value_get_string (value));
		break;
		case KEY_LIST_BOX_ROW_TYPE_STRING_PROPERTY:
		key_list_box_row_set_type_string (self, g_value_get_string (value));
		break;
		case KEY_LIST_BOX_ROW_HAS_SCHEMA_PROPERTY:
		key_list_box_row_set_has_schema (self, g_value_get_boolean (value));
		break;
		case KEY_LIST_BOX_ROW_DELAY_MODE_PROPERTY:
		key_list_box_row_set_delay_mode (self, g_value_get_boolean (value));
		break;
		case KEY_LIST_BOX_ROW_SMALL_KEYS_LIST_ROWS_PROPERTY:
		key_list_box_row_set_small_keys_list_rows (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
context_popover_get_instance_private (ContextPopover* self)
{
	return G_STRUCT_MEMBER_P (self, ContextPopover_private_offset);
}

ContextPopover*
context_popover_construct (GType object_type)
{
	ContextPopover * self = NULL;
	GActionMap* _tmp0_;
	GMenu* _tmp1_;
	self = (ContextPopover*) g_object_new (object_type, NULL);
	context_popover_new_section_real (self);
	_tmp0_ = self->priv->current_group;
	gtk_widget_insert_action_group ((GtkWidget*) self, "popmenu", (GActionGroup*) G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, g_simple_action_group_get_type (), GSimpleActionGroup));
	_tmp1_ = self->priv->menu;
	gtk_popover_bind_model ((GtkPopover*) self, (GMenuModel*) _tmp1_, NULL);
	return self;
}

ContextPopover*
context_popover_new (void)
{
	return context_popover_construct (TYPE_CONTEXT_POPOVER);
}

void
context_popover_new_gaction (ContextPopover* self,
                             const gchar* action_name,
                             const gchar* action_action)
{
	gchar* action_text = NULL;
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	static GQuark _tmp1_label1 = 0;
	static GQuark _tmp1_label2 = 0;
	static GQuark _tmp1_label3 = 0;
	static GQuark _tmp1_label4 = 0;
	static GQuark _tmp1_label5 = 0;
	static GQuark _tmp1_label6 = 0;
	static GQuark _tmp1_label7 = 0;
	static GQuark _tmp1_label8 = 0;
	static GQuark _tmp1_label9 = 0;
	static GQuark _tmp1_label10 = 0;
	static GQuark _tmp1_label11 = 0;
	static GQuark _tmp1_label12 = 0;
	static GQuark _tmp1_label13 = 0;
	GMenu* _tmp16_;
	const gchar* _tmp17_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action_name != NULL);
	g_return_if_fail (action_action != NULL);
	_tmp0_ = action_name;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string ("copy")))) {
		switch (0) {
			default:
			{
				gchar* _tmp3_;
				_tmp3_ = g_strdup (_ ("Copy"));
				_g_free0 (action_text);
				action_text = _tmp3_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label1) ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("customize")))) {
		switch (0) {
			default:
			{
				gchar* _tmp4_;
				_tmp4_ = g_strdup (_ ("Customize…"));
				_g_free0 (action_text);
				action_text = _tmp4_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label2) ? _tmp1_label2 : (_tmp1_label2 = g_quark_from_static_string ("default1")))) {
		switch (0) {
			default:
			{
				gchar* _tmp5_;
				_tmp5_ = g_strdup (_ ("Set to default"));
				_g_free0 (action_text);
				action_text = _tmp5_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label3) ? _tmp1_label3 : (_tmp1_label3 = g_quark_from_static_string ("default2")))) {
		switch (0) {
			default:
			{
				context_popover_new_multi_default_action (self, action_action);
				_g_free0 (action_text);
				return;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label4) ? _tmp1_label4 : (_tmp1_label4 = g_quark_from_static_string ("detail")))) {
		switch (0) {
			default:
			{
				gchar* _tmp6_;
				_tmp6_ = g_strdup (_ ("Show details…"));
				_g_free0 (action_text);
				action_text = _tmp6_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label5) ? _tmp1_label5 : (_tmp1_label5 = g_quark_from_static_string ("dismiss")))) {
		switch (0) {
			default:
			{
				gchar* _tmp7_;
				_tmp7_ = g_strdup (_ ("Dismiss change"));
				_g_free0 (action_text);
				action_text = _tmp7_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label6) ? _tmp1_label6 : (_tmp1_label6 = g_quark_from_static_string ("erase")))) {
		switch (0) {
			default:
			{
				gchar* _tmp8_;
				_tmp8_ = g_strdup (_ ("Erase key"));
				_g_free0 (action_text);
				action_text = _tmp8_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label7) ? _tmp1_label7 : (_tmp1_label7 = g_quark_from_static_string ("go-back")))) {
		switch (0) {
			default:
			{
				gchar* _tmp9_;
				_tmp9_ = g_strdup (_ ("Go to this path"));
				_g_free0 (action_text);
				action_text = _tmp9_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label8) ? _tmp1_label8 : (_tmp1_label8 = g_quark_from_static_string ("open-folder")))) {
		switch (0) {
			default:
			{
				gchar* _tmp10_;
				_tmp10_ = g_strdup (_ ("Open"));
				_g_free0 (action_text);
				action_text = _tmp10_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label9) ? _tmp1_label9 : (_tmp1_label9 = g_quark_from_static_string ("open-config")))) {
		switch (0) {
			default:
			{
				gchar* _tmp11_;
				_tmp11_ = g_strdup (_ ("Show properties"));
				_g_free0 (action_text);
				action_text = _tmp11_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label10) ? _tmp1_label10 : (_tmp1_label10 = g_quark_from_static_string ("open-search")))) {
		switch (0) {
			default:
			{
				gchar* _tmp12_;
				_tmp12_ = g_strdup (_ ("Search"));
				_g_free0 (action_text);
				action_text = _tmp12_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label11) ? _tmp1_label11 : (_tmp1_label11 = g_quark_from_static_string ("open-parent")))) {
		switch (0) {
			default:
			{
				gchar* _tmp13_;
				_tmp13_ = g_strdup (_ ("Open parent folder"));
				_g_free0 (action_text);
				action_text = _tmp13_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label12) ? _tmp1_label12 : (_tmp1_label12 = g_quark_from_static_string ("recursivereset")))) {
		switch (0) {
			default:
			{
				gchar* _tmp14_;
				_tmp14_ = g_strdup (_ ("Reset recursively"));
				_g_free0 (action_text);
				action_text = _tmp14_;
				break;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label13) ? _tmp1_label13 : (_tmp1_label13 = g_quark_from_static_string ("unerase")))) {
		switch (0) {
			default:
			{
				gchar* _tmp15_;
				_tmp15_ = g_strdup (_ ("Do not erase"));
				_g_free0 (action_text);
				action_text = _tmp15_;
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				g_assert_not_reached ();
			}
		}
	}
	_tmp16_ = self->priv->current_section;
	_tmp17_ = action_text;
	g_menu_append (_tmp16_, _tmp17_, action_action);
	_g_free0 (action_text);
}

void
context_popover_new_section (ContextPopover* self)
{
	GMenu* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->current_section;
	g_menu_freeze (_tmp0_);
	context_popover_new_section_real (self);
}

static void
context_popover_new_section_real (ContextPopover* self)
{
	GMenu* _tmp0_;
	GMenu* _tmp1_;
	GMenu* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_menu_new ();
	_g_object_unref0 (self->priv->current_section);
	self->priv->current_section = _tmp0_;
	_tmp1_ = self->priv->menu;
	_tmp2_ = self->priv->current_section;
	g_menu_append_section (_tmp1_, NULL, (GMenuModel*) _tmp2_);
}

static gboolean
_vala_string_array_contains (gchar* * stack,
                             gssize stack_length,
                             const gchar* needle)
{
	gssize i;
	for (i = 0; i < stack_length; i++) {
		if (g_strcmp0 (stack[i], needle) == 0) {
			return TRUE;
		}
	}
	return FALSE;
}

void
context_popover_create_flags_list (ContextPopover* self,
                                   gchar** active_flags,
                                   gint active_flags_length1,
                                   gchar** all_flags,
                                   gint all_flags_length1)
{
	g_return_if_fail (self != NULL);
	{
		gchar** flag_collection = NULL;
		gint flag_collection_length1 = 0;
		gint _flag_collection_size_ = 0;
		gint flag_it = 0;
		flag_collection = all_flags;
		flag_collection_length1 = all_flags_length1;
		for (flag_it = 0; flag_it < flag_collection_length1; flag_it = flag_it + 1) {
			gchar* _tmp0_;
			gchar* flag = NULL;
			_tmp0_ = g_strdup (flag_collection[flag_it]);
			flag = _tmp0_;
			{
				const gchar* _tmp1_;
				const gchar* _tmp2_;
				_tmp1_ = flag;
				_tmp2_ = flag;
				context_popover_create_flag (self, _tmp1_, _vala_string_array_contains (active_flags, active_flags_length1, _tmp2_), all_flags, (gint) all_flags_length1);
				_g_free0 (flag);
			}
		}
	}
	context_popover_finalize_menu (self);
}

static Block14Data*
block14_data_ref (Block14Data* _data14_)
{
	g_atomic_int_inc (&_data14_->_ref_count_);
	return _data14_;
}

static void
block14_data_unref (void * _userdata_)
{
	Block14Data* _data14_;
	_data14_ = (Block14Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
		ContextPopover* self;
		self = _data14_->self;
		_g_object_unref0 (self);
		g_slice_free (Block14Data, _data14_);
	}
}

static const gchar*
string_to_string (const gchar* self)
{
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	result = self;
	return result;
}

static void
_vala_array_add21 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
__lambda38_ (Block14Data* _data14_,
             GSimpleAction* gaction,
             GVariant* gvariant)
{
	ContextPopover* self;
	gchar** new_flags = NULL;
	gchar** _tmp0_;
	gint new_flags_length1;
	gint _new_flags_size_;
	GVariant* variant = NULL;
	gchar** _tmp15_;
	gint _tmp15__length1;
	GVariant* _tmp16_;
	self = _data14_->self;
	g_return_if_fail (gaction != NULL);
	g_simple_action_set_state (gaction, (GVariant*) gvariant);
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	new_flags = _tmp0_;
	new_flags_length1 = 0;
	_new_flags_size_ = new_flags_length1;
	{
		gchar** iter_collection = NULL;
		gint iter_collection_length1 = 0;
		gint _iter_collection_size_ = 0;
		gint iter_it = 0;
		iter_collection = _data14_->all_flags;
		iter_collection_length1 = _data14_->all_flags_length1;
		for (iter_it = 0; iter_it < iter_collection_length1; iter_it = iter_it + 1) {
			gchar* _tmp1_;
			gchar* iter = NULL;
			_tmp1_ = g_strdup (iter_collection[iter_it]);
			iter = _tmp1_;
			{
				GSimpleAction* action = NULL;
				GActionMap* _tmp2_;
				const gchar* _tmp3_;
				GAction* _tmp4_;
				GSimpleAction* _tmp5_;
				GSimpleAction* _tmp6_;
				GVariant* _tmp7_;
				GVariant* _tmp8_;
				GVariant* _tmp9_;
				gboolean _tmp10_;
				_tmp2_ = self->priv->current_group;
				_tmp3_ = iter;
				_tmp4_ = g_action_map_lookup_action (_tmp2_, _tmp3_);
				_tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, g_simple_action_get_type (), GSimpleAction));
				action = _tmp5_;
				_tmp6_ = action;
				_tmp7_ = g_action_get_state ((GAction*) _tmp6_);
				_tmp8_ = _tmp7_;
				_tmp9_ = (GVariant*) _tmp8_;
				_tmp10_ = g_variant_get_boolean (_tmp9_);
				_g_variant_unref0 (_tmp9_);
				if (_tmp10_) {
					GSimpleAction* _tmp11_;
					const gchar* _tmp12_;
					const gchar* _tmp13_;
					gchar* _tmp14_;
					_tmp11_ = action;
					_tmp12_ = g_action_get_name ((GAction*) _tmp11_);
					_tmp13_ = _tmp12_;
					_tmp14_ = g_strdup (_tmp13_);
					_vala_array_add21 (&new_flags, &new_flags_length1, &_new_flags_size_, _tmp14_);
				}
				_g_object_unref0 (action);
				_g_free0 (iter);
			}
		}
	}
	_tmp15_ = new_flags;
	_tmp15__length1 = new_flags_length1;
	_tmp16_ = g_variant_new_strv (_tmp15_, _tmp15__length1);
	g_variant_ref_sink (_tmp16_);
	variant = _tmp16_;
	g_signal_emit (self, context_popover_signals[CONTEXT_POPOVER_VALUE_CHANGED_SIGNAL], 0, variant);
	_g_variant_unref0 (variant);
	new_flags = (_vala_array_free (new_flags, new_flags_length1, (GDestroyNotify) g_free), NULL);
}

static void
___lambda38__g_simple_action_change_state (GSimpleAction* _sender,
                                           GVariant* value,
                                           gpointer self)
{
	__lambda38_ (self, _sender, value);
}

static void
context_popover_create_flag (ContextPopover* self,
                             const gchar* flag,
                             gboolean active,
                             gchar** all_flags,
                             gint all_flags_length1)
{
	Block14Data* _data14_;
	GSimpleAction* simple_action = NULL;
	GVariant* _tmp0_;
	GVariant* _tmp1_;
	GSimpleAction* _tmp2_;
	GSimpleAction* _tmp3_;
	GActionMap* _tmp4_;
	GMenu* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (flag != NULL);
	_data14_ = g_slice_new0 (Block14Data);
	_data14_->_ref_count_ = 1;
	_data14_->self = g_object_ref (self);
	_data14_->all_flags = all_flags;
	_data14_->all_flags_length1 = all_flags_length1;
	_tmp0_ = g_variant_new_boolean (active);
	g_variant_ref_sink (_tmp0_);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_simple_action_new_stateful (flag, NULL, _tmp1_);
	_tmp3_ = _tmp2_;
	_g_variant_unref0 (_tmp1_);
	simple_action = _tmp3_;
	_tmp4_ = self->priv->current_group;
	g_action_map_add_action (_tmp4_, (GAction*) simple_action);
	_tmp5_ = self->priv->current_section;
	_tmp6_ = string_to_string (flag);
	_tmp7_ = g_strconcat ("popmenu.", _tmp6_, NULL);
	_tmp8_ = _tmp7_;
	g_menu_append (_tmp5_, flag, _tmp8_);
	_g_free0 (_tmp8_);
	g_signal_connect_data (simple_action, "change-state", (GCallback) ___lambda38__g_simple_action_change_state, block14_data_ref (_data14_), (GClosureNotify) block14_data_unref, 0);
	_g_object_unref0 (simple_action);
	block14_data_unref (_data14_);
	_data14_ = NULL;
}

void
context_popover_update_flag_status (ContextPopover* self,
                                    const gchar* flag,
                                    gboolean active)
{
	GSimpleAction* simple_action = NULL;
	GActionMap* _tmp0_;
	GAction* _tmp1_;
	GSimpleAction* _tmp2_;
	GSimpleAction* _tmp3_;
	GVariant* _tmp4_;
	GVariant* _tmp5_;
	gboolean _tmp6_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (flag != NULL);
	_tmp0_ = self->priv->current_group;
	_tmp1_ = g_action_map_lookup_action (_tmp0_, flag);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, g_simple_action_get_type (), GSimpleAction));
	simple_action = _tmp2_;
	_tmp3_ = simple_action;
	_tmp4_ = g_action_get_state ((GAction*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = (&active) != _tmp5_;
	_g_variant_unref0 (_tmp5_);
	if (_tmp6_) {
		GSimpleAction* _tmp7_;
		GVariant* _tmp8_;
		GVariant* _tmp9_;
		_tmp7_ = simple_action;
		_tmp8_ = g_variant_new_boolean (active);
		g_variant_ref_sink (_tmp8_);
		_tmp9_ = _tmp8_;
		g_simple_action_set_state (_tmp7_, _tmp9_);
		_g_variant_unref0 (_tmp9_);
	}
	_g_object_unref0 (simple_action);
}

static gpointer
_g_variant_ref0 (gpointer self)
{
	return self ? g_variant_ref (self) : NULL;
}

static void
__lambda39_ (ContextPopover* self,
             const gchar* unknown_string,
             GVariant* tmp_variant)
{
	GVariant* change_variant = NULL;
	GVariant* _tmp0_;
	GVariant* _tmp1_;
	g_return_if_fail (unknown_string != NULL);
	g_return_if_fail (tmp_variant != NULL);
	_tmp0_ = g_variant_get_maybe (tmp_variant);
	change_variant = _tmp0_;
	_tmp1_ = change_variant;
	if (_tmp1_ != NULL) {
		GVariant* _tmp2_;
		GVariant* _tmp3_;
		GVariant* _tmp4_;
		_tmp2_ = change_variant;
		_tmp3_ = g_variant_get_maybe ((GVariant*) _tmp2_);
		_tmp4_ = _tmp3_;
		g_signal_emit (self, context_popover_signals[CONTEXT_POPOVER_VALUE_CHANGED_SIGNAL], 0, _tmp4_);
		_g_variant_unref0 (_tmp4_);
	} else {
		g_signal_emit (self, context_popover_signals[CONTEXT_POPOVER_CHANGE_DISMISSED_SIGNAL], 0);
	}
	_g_variant_unref0 (change_variant);
}

static void
___lambda39__g_action_group_action_state_changed (GActionGroup* _sender,
                                                  const gchar* action_name,
                                                  GVariant* state,
                                                  gpointer self)
{
	__lambda39_ ((ContextPopover*) self, action_name, state);
}

GAction*
context_popover_create_buttons_list (ContextPopover* self,
                                     gboolean display_default_value,
                                     gboolean delayed_apply_menu,
                                     gboolean planned_change,
                                     const gchar* settings_type,
                                     GVariant* range_content_or_null,
                                     GVariant* value_variant)
{
	static const char ACTION_NAME[] = "choice";
	gchar* group_dot_action = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_ = NULL;
	gchar* type_string = NULL;
	gchar* _tmp2_;
	GVariantType* original_type = NULL;
	const gchar* _tmp3_;
	GVariantType* _tmp4_;
	GVariantType* nullable_type = NULL;
	const GVariantType* _tmp5_;
	GVariantType* _tmp6_;
	GVariantType* nullable_nullable_type = NULL;
	const GVariantType* _tmp7_;
	GVariantType* _tmp8_;
	GVariant* variant = NULL;
	const GVariantType* _tmp9_;
	GVariant* _tmp10_;
	GVariant* nullable_variant = NULL;
	gboolean _tmp11_ = FALSE;
	GAction* action = NULL;
	const GVariantType* _tmp17_;
	GVariant* _tmp18_;
	GSimpleAction* _tmp19_;
	GActionMap* _tmp20_;
	GAction* _tmp21_;
	const gchar* _tmp43_;
	GQuark _tmp45_ = 0U;
	static GQuark _tmp44_label0 = 0;
	static GQuark _tmp44_label1 = 0;
	static GQuark _tmp44_label2 = 0;
	static GQuark _tmp44_label3 = 0;
	static GQuark _tmp44_label4 = 0;
	static GQuark _tmp44_label5 = 0;
	static GQuark _tmp44_label6 = 0;
	static GQuark _tmp44_label7 = 0;
	static GQuark _tmp44_label8 = 0;
	static GQuark _tmp44_label9 = 0;
	static GQuark _tmp44_label10 = 0;
	static GQuark _tmp44_label11 = 0;
	GActionMap* _tmp158_;
	gchar* _tmp159_;
	GAction* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (settings_type != NULL, NULL);
	_tmp0_ = g_strdup ("popmenu.choice");
	group_dot_action = _tmp0_;
	if (g_strcmp0 (settings_type, "<enum>") == 0) {
		_tmp1_ = "s";
	} else {
		_tmp1_ = settings_type;
	}
	_tmp2_ = g_strdup (_tmp1_);
	type_string = _tmp2_;
	_tmp3_ = type_string;
	_tmp4_ = g_variant_type_new (_tmp3_);
	original_type = _tmp4_;
	_tmp5_ = original_type;
	_tmp6_ = g_variant_type_new_maybe (_tmp5_);
	nullable_type = _tmp6_;
	_tmp7_ = nullable_type;
	_tmp8_ = g_variant_type_new_maybe (_tmp7_);
	nullable_nullable_type = _tmp8_;
	_tmp9_ = original_type;
	_tmp10_ = g_variant_new_maybe (_tmp9_, value_variant);
	g_variant_ref_sink (_tmp10_);
	variant = _tmp10_;
	if (delayed_apply_menu) {
		_tmp11_ = !planned_change;
	} else {
		_tmp11_ = FALSE;
	}
	if (_tmp11_) {
		const GVariantType* _tmp12_;
		GVariant* _tmp13_;
		_tmp12_ = nullable_type;
		_tmp13_ = g_variant_new_maybe (_tmp12_, NULL);
		g_variant_ref_sink (_tmp13_);
		_g_variant_unref0 (nullable_variant);
		nullable_variant = _tmp13_;
	} else {
		const GVariantType* _tmp14_;
		GVariant* _tmp15_;
		GVariant* _tmp16_;
		_tmp14_ = nullable_type;
		_tmp15_ = variant;
		_tmp16_ = g_variant_new_maybe (_tmp14_, _tmp15_);
		g_variant_ref_sink (_tmp16_);
		_g_variant_unref0 (nullable_variant);
		nullable_variant = _tmp16_;
	}
	_tmp17_ = nullable_nullable_type;
	_tmp18_ = nullable_variant;
	_tmp19_ = g_simple_action_new_stateful (ACTION_NAME, _tmp17_, _tmp18_);
	action = G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, g_action_get_type (), GAction);
	_tmp20_ = self->priv->current_group;
	_tmp21_ = action;
	g_action_map_add_action (_tmp20_, _tmp21_);
	if (display_default_value) {
		gboolean _tmp22_ = FALSE;
		gboolean complete_menu = FALSE;
		if (delayed_apply_menu) {
			_tmp22_ = TRUE;
		} else {
			_tmp22_ = planned_change;
		}
		complete_menu = _tmp22_;
		if (complete_menu) {
			GMenu* _tmp23_;
			const gchar* _tmp24_;
			const gchar* _tmp25_;
			const gchar* _tmp26_;
			const gchar* _tmp27_;
			gchar* _tmp28_;
			gchar* _tmp29_;
			_tmp23_ = self->priv->current_section;
			_tmp24_ = group_dot_action;
			_tmp25_ = string_to_string (_tmp24_);
			_tmp26_ = type_string;
			_tmp27_ = string_to_string (_tmp26_);
			_tmp28_ = g_strconcat (_tmp25_, "(@mm", _tmp27_, " nothing)", NULL);
			_tmp29_ = _tmp28_;
			g_menu_append (_tmp23_, _ ("No change"), _tmp29_);
			_g_free0 (_tmp29_);
		}
		if (range_content_or_null != NULL) {
			const gchar* _tmp30_;
			const gchar* _tmp31_;
			const gchar* _tmp32_;
			const gchar* _tmp33_;
			gchar* _tmp34_;
			gchar* _tmp35_;
			_tmp30_ = group_dot_action;
			_tmp31_ = string_to_string (_tmp30_);
			_tmp32_ = type_string;
			_tmp33_ = string_to_string (_tmp32_);
			_tmp34_ = g_strconcat (_tmp31_, "(@mm", _tmp33_, " just nothing)", NULL);
			_tmp35_ = _tmp34_;
			context_popover_new_multi_default_action (self, _tmp35_);
			_g_free0 (_tmp35_);
		} else {
			if (complete_menu) {
				GMenu* _tmp36_;
				const gchar* _tmp37_;
				const gchar* _tmp38_;
				const gchar* _tmp39_;
				const gchar* _tmp40_;
				gchar* _tmp41_;
				gchar* _tmp42_;
				_tmp36_ = self->priv->current_section;
				_tmp37_ = group_dot_action;
				_tmp38_ = string_to_string (_tmp37_);
				_tmp39_ = type_string;
				_tmp40_ = string_to_string (_tmp39_);
				_tmp41_ = g_strconcat (_tmp38_, "(@mm", _tmp40_, " just nothing)", NULL);
				_tmp42_ = _tmp41_;
				g_menu_append (_tmp36_, _ ("Erase key"), _tmp42_);
				_g_free0 (_tmp42_);
			}
		}
	}
	_tmp43_ = settings_type;
	_tmp45_ = (NULL == _tmp43_) ? 0 : g_quark_from_string (_tmp43_);
	if (_tmp45_ == ((0 != _tmp44_label0) ? _tmp44_label0 : (_tmp44_label0 = g_quark_from_static_string ("b")))) {
		switch (0) {
			default:
			{
				GMenu* _tmp46_;
				gboolean _tmp47_;
				gchar* _tmp48_;
				gchar* _tmp49_;
				const gchar* _tmp50_;
				const gchar* _tmp51_;
				gchar* _tmp52_;
				gchar* _tmp53_;
				GMenu* _tmp54_;
				gboolean _tmp55_;
				gchar* _tmp56_;
				gchar* _tmp57_;
				const gchar* _tmp58_;
				const gchar* _tmp59_;
				gchar* _tmp60_;
				gchar* _tmp61_;
				_tmp46_ = self->priv->current_section;
				_tmp47_ = TRUE;
				_tmp48_ = key_cool_boolean_text_value (&_tmp47_, TRUE);
				_tmp49_ = _tmp48_;
				_tmp50_ = group_dot_action;
				_tmp51_ = string_to_string (_tmp50_);
				_tmp52_ = g_strconcat (_tmp51_, "(@mmb true)", NULL);
				_tmp53_ = _tmp52_;
				g_menu_append (_tmp46_, _tmp49_, _tmp53_);
				_g_free0 (_tmp53_);
				_g_free0 (_tmp49_);
				_tmp54_ = self->priv->current_section;
				_tmp55_ = FALSE;
				_tmp56_ = key_cool_boolean_text_value (&_tmp55_, TRUE);
				_tmp57_ = _tmp56_;
				_tmp58_ = group_dot_action;
				_tmp59_ = string_to_string (_tmp58_);
				_tmp60_ = g_strconcat (_tmp59_, "(@mmb false)", NULL);
				_tmp61_ = _tmp60_;
				g_menu_append (_tmp54_, _tmp57_, _tmp61_);
				_g_free0 (_tmp61_);
				_g_free0 (_tmp57_);
				break;
			}
		}
	} else if (_tmp45_ == ((0 != _tmp44_label1) ? _tmp44_label1 : (_tmp44_label1 = g_quark_from_static_string ("<enum>")))) {
		switch (0) {
			default:
			{
				GVariant* range = NULL;
				GVariant* _tmp62_;
				guint size = 0U;
				GVariant* _tmp63_;
				gboolean _tmp64_ = FALSE;
				_tmp62_ = _g_variant_ref0 ((GVariant*) range_content_or_null);
				range = _tmp62_;
				_tmp63_ = range;
				size = (guint) g_variant_n_children (_tmp63_);
				if (size == ((guint) 0)) {
					_tmp64_ = TRUE;
				} else {
					gboolean _tmp65_ = FALSE;
					if (size == ((guint) 1)) {
						_tmp65_ = !display_default_value;
					} else {
						_tmp65_ = FALSE;
					}
					_tmp64_ = _tmp65_;
				}
				if (_tmp64_) {
					g_assert_not_reached ();
				}
				{
					guint index = 0U;
					index = (guint) 0;
					{
						gboolean _tmp66_ = FALSE;
						_tmp66_ = TRUE;
						while (TRUE) {
							GMenu* _tmp68_;
							GVariant* _tmp69_;
							GVariant* _tmp70_;
							GVariant* _tmp71_;
							gchar* _tmp72_;
							gchar* _tmp73_;
							const gchar* _tmp74_;
							const gchar* _tmp75_;
							gchar* _tmp76_;
							gchar* _tmp77_;
							GVariant* _tmp78_;
							GVariant* _tmp79_;
							GVariant* _tmp80_;
							const gchar* _tmp81_;
							gchar* _tmp82_;
							gchar* _tmp83_;
							gchar* _tmp84_;
							gchar* _tmp85_;
							if (!_tmp66_) {
								guint _tmp67_;
								_tmp67_ = index;
								index = _tmp67_ + 1;
							}
							_tmp66_ = FALSE;
							if (!(index < size)) {
								break;
							}
							_tmp68_ = self->priv->current_section;
							_tmp69_ = range;
							_tmp70_ = g_variant_get_child_value (_tmp69_, (gsize) index);
							_tmp71_ = _tmp70_;
							_tmp72_ = g_variant_print (_tmp71_, FALSE);
							_tmp73_ = _tmp72_;
							_tmp74_ = group_dot_action;
							_tmp75_ = string_to_string (_tmp74_);
							_tmp76_ = g_strconcat (_tmp75_, "(@mms '", NULL);
							_tmp77_ = _tmp76_;
							_tmp78_ = range;
							_tmp79_ = g_variant_get_child_value (_tmp78_, (gsize) index);
							_tmp80_ = _tmp79_;
							_tmp81_ = g_variant_get_string (_tmp80_, NULL);
							_tmp82_ = g_strconcat (_tmp77_, _tmp81_, NULL);
							_tmp83_ = _tmp82_;
							_tmp84_ = g_strconcat (_tmp83_, "')", NULL);
							_tmp85_ = _tmp84_;
							g_menu_append (_tmp68_, _tmp73_, _tmp85_);
							_g_free0 (_tmp85_);
							_g_free0 (_tmp83_);
							_g_variant_unref0 (_tmp80_);
							_g_free0 (_tmp77_);
							_g_free0 (_tmp73_);
							_g_variant_unref0 (_tmp71_);
						}
					}
				}
				_g_variant_unref0 (range);
				break;
			}
		}
	} else if (_tmp45_ == ((0 != _tmp44_label2) ? _tmp44_label2 : (_tmp44_label2 = g_quark_from_static_string ("mb")))) {
		switch (0) {
			default:
			{
				GMenu* _tmp86_;
				gchar* _tmp87_;
				gchar* _tmp88_;
				const gchar* _tmp89_;
				const gchar* _tmp90_;
				gchar* _tmp91_;
				gchar* _tmp92_;
				GMenu* _tmp93_;
				gboolean _tmp94_;
				gchar* _tmp95_;
				gchar* _tmp96_;
				const gchar* _tmp97_;
				const gchar* _tmp98_;
				gchar* _tmp99_;
				gchar* _tmp100_;
				GMenu* _tmp101_;
				gboolean _tmp102_;
				gchar* _tmp103_;
				gchar* _tmp104_;
				const gchar* _tmp105_;
				const gchar* _tmp106_;
				gchar* _tmp107_;
				gchar* _tmp108_;
				_tmp86_ = self->priv->current_section;
				_tmp87_ = key_cool_boolean_text_value (NULL, TRUE);
				_tmp88_ = _tmp87_;
				_tmp89_ = group_dot_action;
				_tmp90_ = string_to_string (_tmp89_);
				_tmp91_ = g_strconcat (_tmp90_, "(@mmmb just just nothing)", NULL);
				_tmp92_ = _tmp91_;
				g_menu_append (_tmp86_, _tmp88_, _tmp92_);
				_g_free0 (_tmp92_);
				_g_free0 (_tmp88_);
				_tmp93_ = self->priv->current_section;
				_tmp94_ = TRUE;
				_tmp95_ = key_cool_boolean_text_value (&_tmp94_, TRUE);
				_tmp96_ = _tmp95_;
				_tmp97_ = group_dot_action;
				_tmp98_ = string_to_string (_tmp97_);
				_tmp99_ = g_strconcat (_tmp98_, "(@mmmb true)", NULL);
				_tmp100_ = _tmp99_;
				g_menu_append (_tmp93_, _tmp96_, _tmp100_);
				_g_free0 (_tmp100_);
				_g_free0 (_tmp96_);
				_tmp101_ = self->priv->current_section;
				_tmp102_ = FALSE;
				_tmp103_ = key_cool_boolean_text_value (&_tmp102_, TRUE);
				_tmp104_ = _tmp103_;
				_tmp105_ = group_dot_action;
				_tmp106_ = string_to_string (_tmp105_);
				_tmp107_ = g_strconcat (_tmp106_, "(@mmmb false)", NULL);
				_tmp108_ = _tmp107_;
				g_menu_append (_tmp101_, _tmp104_, _tmp108_);
				_g_free0 (_tmp108_);
				_g_free0 (_tmp104_);
				break;
			}
		}
	} else if ((((_tmp45_ == ((0 != _tmp44_label3) ? _tmp44_label3 : (_tmp44_label3 = g_quark_from_static_string ("y")))) || (_tmp45_ == ((0 != _tmp44_label4) ? _tmp44_label4 : (_tmp44_label4 = g_quark_from_static_string ("q"))))) || (_tmp45_ == ((0 != _tmp44_label5) ? _tmp44_label5 : (_tmp44_label5 = g_quark_from_static_string ("u"))))) || (_tmp45_ == ((0 != _tmp44_label6) ? _tmp44_label6 : (_tmp44_label6 = g_quark_from_static_string ("t"))))) {
		switch (0) {
			default:
			{
				GVariant* range = NULL;
				GVariant* _tmp109_;
				_tmp109_ = _g_variant_ref0 ((GVariant*) range_content_or_null);
				range = _tmp109_;
				{
					guint64 number = 0ULL;
					GVariant* _tmp110_;
					GVariant* _tmp111_;
					GVariant* _tmp112_;
					guint64 _tmp113_;
					_tmp110_ = range;
					_tmp111_ = g_variant_get_child_value (_tmp110_, (gsize) 0);
					_tmp112_ = _tmp111_;
					_tmp113_ = key_get_variant_as_uint64 (_tmp112_);
					_g_variant_unref0 (_tmp112_);
					number = _tmp113_;
					{
						gboolean _tmp114_ = FALSE;
						_tmp114_ = TRUE;
						while (TRUE) {
							GVariant* _tmp116_;
							GVariant* _tmp117_;
							GVariant* _tmp118_;
							gboolean _tmp119_;
							GMenu* _tmp120_;
							gchar* _tmp121_;
							gchar* _tmp122_;
							const gchar* _tmp123_;
							const gchar* _tmp124_;
							const gchar* _tmp125_;
							const gchar* _tmp126_;
							gchar* _tmp127_;
							gchar* _tmp128_;
							gchar* _tmp129_;
							gchar* _tmp130_;
							if (!_tmp114_) {
								guint64 _tmp115_;
								_tmp115_ = number;
								number = _tmp115_ + 1;
							}
							_tmp114_ = FALSE;
							_tmp116_ = range;
							_tmp117_ = g_variant_get_child_value (_tmp116_, (gsize) 1);
							_tmp118_ = _tmp117_;
							_tmp119_ = !(number <= key_get_variant_as_uint64 (_tmp118_));
							_g_variant_unref0 (_tmp118_);
							if (_tmp119_) {
								break;
							}
							_tmp120_ = self->priv->current_section;
							_tmp121_ = g_strdup_printf ("%" G_GUINT64_FORMAT, number);
							_tmp122_ = _tmp121_;
							_tmp123_ = group_dot_action;
							_tmp124_ = string_to_string (_tmp123_);
							_tmp125_ = type_string;
							_tmp126_ = string_to_string (_tmp125_);
							_tmp127_ = g_strdup_printf ("%" G_GUINT64_FORMAT, number);
							_tmp128_ = _tmp127_;
							_tmp129_ = g_strconcat (_tmp124_, "(@mm", _tmp126_, " ", _tmp128_, ")", NULL);
							_tmp130_ = _tmp129_;
							g_menu_append (_tmp120_, _tmp122_, _tmp130_);
							_g_free0 (_tmp130_);
							_g_free0 (_tmp128_);
							_g_free0 (_tmp122_);
						}
					}
				}
				_g_variant_unref0 (range);
				break;
			}
		}
	} else if ((((_tmp45_ == ((0 != _tmp44_label7) ? _tmp44_label7 : (_tmp44_label7 = g_quark_from_static_string ("n")))) || (_tmp45_ == ((0 != _tmp44_label8) ? _tmp44_label8 : (_tmp44_label8 = g_quark_from_static_string ("i"))))) || (_tmp45_ == ((0 != _tmp44_label9) ? _tmp44_label9 : (_tmp44_label9 = g_quark_from_static_string ("h"))))) || (_tmp45_ == ((0 != _tmp44_label10) ? _tmp44_label10 : (_tmp44_label10 = g_quark_from_static_string ("x"))))) {
		switch (0) {
			default:
			{
				GVariant* range = NULL;
				GVariant* _tmp131_;
				_tmp131_ = _g_variant_ref0 ((GVariant*) range_content_or_null);
				range = _tmp131_;
				{
					gint64 number = 0LL;
					GVariant* _tmp132_;
					GVariant* _tmp133_;
					GVariant* _tmp134_;
					gint64 _tmp135_;
					_tmp132_ = range;
					_tmp133_ = g_variant_get_child_value (_tmp132_, (gsize) 0);
					_tmp134_ = _tmp133_;
					_tmp135_ = key_get_variant_as_int64 (_tmp134_);
					_g_variant_unref0 (_tmp134_);
					number = _tmp135_;
					{
						gboolean _tmp136_ = FALSE;
						_tmp136_ = TRUE;
						while (TRUE) {
							GVariant* _tmp138_;
							GVariant* _tmp139_;
							GVariant* _tmp140_;
							gboolean _tmp141_;
							GMenu* _tmp142_;
							gchar* _tmp143_;
							gchar* _tmp144_;
							const gchar* _tmp145_;
							const gchar* _tmp146_;
							const gchar* _tmp147_;
							const gchar* _tmp148_;
							gchar* _tmp149_;
							gchar* _tmp150_;
							gchar* _tmp151_;
							gchar* _tmp152_;
							if (!_tmp136_) {
								gint64 _tmp137_;
								_tmp137_ = number;
								number = _tmp137_ + 1;
							}
							_tmp136_ = FALSE;
							_tmp138_ = range;
							_tmp139_ = g_variant_get_child_value (_tmp138_, (gsize) 1);
							_tmp140_ = _tmp139_;
							_tmp141_ = !(number <= key_get_variant_as_int64 (_tmp140_));
							_g_variant_unref0 (_tmp140_);
							if (_tmp141_) {
								break;
							}
							_tmp142_ = self->priv->current_section;
							_tmp143_ = g_strdup_printf ("%" G_GINT64_FORMAT, number);
							_tmp144_ = _tmp143_;
							_tmp145_ = group_dot_action;
							_tmp146_ = string_to_string (_tmp145_);
							_tmp147_ = type_string;
							_tmp148_ = string_to_string (_tmp147_);
							_tmp149_ = g_strdup_printf ("%" G_GINT64_FORMAT, number);
							_tmp150_ = _tmp149_;
							_tmp151_ = g_strconcat (_tmp146_, "(@mm", _tmp148_, " ", _tmp150_, ")", NULL);
							_tmp152_ = _tmp151_;
							g_menu_append (_tmp142_, _tmp144_, _tmp152_);
							_g_free0 (_tmp152_);
							_g_free0 (_tmp150_);
							_g_free0 (_tmp144_);
						}
					}
				}
				_g_variant_unref0 (range);
				break;
			}
		}
	} else if (_tmp45_ == ((0 != _tmp44_label11) ? _tmp44_label11 : (_tmp44_label11 = g_quark_from_static_string ("()")))) {
		switch (0) {
			default:
			{
				GMenu* _tmp153_;
				const gchar* _tmp154_;
				const gchar* _tmp155_;
				gchar* _tmp156_;
				gchar* _tmp157_;
				_tmp153_ = self->priv->current_section;
				_tmp154_ = group_dot_action;
				_tmp155_ = string_to_string (_tmp154_);
				_tmp156_ = g_strconcat (_tmp155_, "(@mm() ())", NULL);
				_tmp157_ = _tmp156_;
				g_menu_append (_tmp153_, "()", _tmp157_);
				_g_free0 (_tmp157_);
				break;
			}
		}
	}
	_tmp158_ = self->priv->current_group;
	_tmp159_ = g_strconcat ("action-state-changed::", ACTION_NAME, NULL);
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp158_, g_action_group_get_type (), GActionGroup), _tmp159_, (GCallback) ___lambda39__g_action_group_action_state_changed, self, 0);
	_g_free0 (_tmp159_);
	context_popover_finalize_menu (self);
	result = action;
	_g_variant_unref0 (nullable_variant);
	_g_variant_unref0 (variant);
	_g_variant_type_free0 (nullable_nullable_type);
	_g_variant_type_free0 (nullable_type);
	_g_variant_type_free0 (original_type);
	_g_free0 (type_string);
	_g_free0 (group_dot_action);
	return result;
}

static void
context_popover_new_multi_default_action (ContextPopover* self,
                                          const gchar* action)
{
	GMenu* _tmp0_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	_tmp0_ = self->priv->current_section;
	g_menu_append (_tmp0_, _ ("Default value"), action);
}

static void
context_popover_finalize_menu (ContextPopover* self)
{
	GMenu* _tmp0_;
	GMenu* _tmp1_;
	GMenu* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->menu;
	_vala_return_if_fail (g_menu_model_is_mutable ((GMenuModel*) _tmp0_), "menu.is_mutable ()");
	_tmp1_ = self->priv->current_section;
	g_menu_freeze (_tmp1_);
	_tmp2_ = self->priv->menu;
	g_menu_freeze (_tmp2_);
}

static void
context_popover_class_init (ContextPopoverClass * klass,
                            gpointer klass_data)
{
	context_popover_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ContextPopover_private_offset);
	G_OBJECT_CLASS (klass)->finalize = context_popover_finalize;
	context_popover_signals[CONTEXT_POPOVER_VALUE_CHANGED_SIGNAL] = g_signal_new ("value-changed", TYPE_CONTEXT_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VARIANT, G_TYPE_NONE, 1, G_TYPE_VARIANT);
	context_popover_signals[CONTEXT_POPOVER_CHANGE_DISMISSED_SIGNAL] = g_signal_new ("change-dismissed", TYPE_CONTEXT_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
context_popover_instance_init (ContextPopover * self,
                               gpointer klass)
{
	GMenu* _tmp0_;
	GSimpleActionGroup* _tmp1_;
	self->priv = context_popover_get_instance_private (self);
	_tmp0_ = g_menu_new ();
	self->priv->menu = _tmp0_;
	_tmp1_ = g_simple_action_group_new ();
	self->priv->current_group = (GActionMap*) _tmp1_;
}

static void
context_popover_finalize (GObject * obj)
{
	ContextPopover * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CONTEXT_POPOVER, ContextPopover);
	_g_object_unref0 (self->priv->menu);
	_g_object_unref0 (self->priv->current_section);
	_g_object_unref0 (self->priv->current_group);
	G_OBJECT_CLASS (context_popover_parent_class)->finalize (obj);
}

static GType
context_popover_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ContextPopoverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) context_popover_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContextPopover), 0, (GInstanceInitFunc) context_popover_instance_init, NULL };
	GType context_popover_type_id;
	context_popover_type_id = g_type_register_static (gtk_popover_get_type (), "ContextPopover", &g_define_type_info, 0);
	ContextPopover_private_offset = g_type_add_instance_private (context_popover_type_id, sizeof (ContextPopoverPrivate));
	return context_popover_type_id;
}

GType
context_popover_get_type (void)
{
	static volatile gsize context_popover_type_id__once = 0;
	if (g_once_init_enter (&context_popover_type_id__once)) {
		GType context_popover_type_id;
		context_popover_type_id = context_popover_get_type_once ();
		g_once_init_leave (&context_popover_type_id__once, context_popover_type_id);
	}
	return context_popover_type_id__once;
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

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;
}

