/* registry-info.c generated by valac 0.56.3, the Vala compiler
 * generated from registry-info.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 <gtk/gtk.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib/gi18n-lib.h>
#include <float.h>
#include <math.h>
#include <pango/pango.h>

#define MODEL_UTILS_undefined_context_id ((guint16) 0)
#define REGISTRY_INFO_NAME_FIELD_DESCRIPTION _ ("Name")
#define REGISTRY_INFO_DEFINED_BY_FIELD_DESCRIPTION _ ("Defined by")
#define REGISTRY_INFO_SCHEMA_FIELD_DESCRIPTION _ ("Schema")
#define REGISTRY_INFO_SUMMARY_FIELD_DESCRIPTION _ ("Summary")
#define REGISTRY_INFO_DESCRIPTION_FIELD_DESCRIPTION _ ("Description")
#define REGISTRY_INFO_TYPE_FIELD_DESCRIPTION _ ("Type")
#define REGISTRY_INFO__TYPE_FIELD_DESCRIPTION "Type"
#define REGISTRY_INFO_TYPE_NAME_FIELD_DESCRIPTION _ ("Type name")
#define REGISTRY_INFO__TYPE_NAME_FIELD_DESCRIPTION "Type name"
#define REGISTRY_INFO_TYPE_CODE_FIELD_DESCRIPTION _ ("Type code")
#define REGISTRY_INFO_FORCED_RANGE_FIELD_DESCRIPTION _ ("Forced range")
#define REGISTRY_INFO_MINIMUM_FIELD_DESCRIPTION _ ("Minimum")
#define REGISTRY_INFO_MAXIMUM_FIELD_DESCRIPTION _ ("Maximum")
#define REGISTRY_INFO_DEFAULT_FIELD_DESCRIPTION _ ("Default")
#define REGISTRY_INFO_CURRENT_VALUE_FIELD_DESCRIPTION _ ("Current value")
#define REGISTRY_INFO_USE_DEFAULT_FIELD_DESCRIPTION _ ("Use default value")
#define REGISTRY_INFO_CUSTOM_VALUE_FIELD_DESCRIPTION _ ("Custom value")
#define MODEL_UTILS_folder_context_id ((guint16) 1)
#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_BROWSABLE_VIEW (browsable_view_get_type ())
#define BROWSABLE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BROWSABLE_VIEW, BrowsableView))
#define IS_BROWSABLE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BROWSABLE_VIEW))
#define BROWSABLE_VIEW_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_BROWSABLE_VIEW, BrowsableViewIface))

typedef struct _BrowsableView BrowsableView;
typedef struct _BrowsableViewIface BrowsableViewIface;

#define TYPE_REGISTRY_INFO (registry_info_get_type ())
#define REGISTRY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REGISTRY_INFO, RegistryInfo))
#define REGISTRY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REGISTRY_INFO, RegistryInfoClass))
#define IS_REGISTRY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REGISTRY_INFO))
#define IS_REGISTRY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REGISTRY_INFO))
#define REGISTRY_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REGISTRY_INFO, RegistryInfoClass))

typedef struct _RegistryInfo RegistryInfo;
typedef struct _RegistryInfoClass RegistryInfoClass;
typedef struct _RegistryInfoPrivate RegistryInfoPrivate;

#define TYPE_MODIFICATIONS_HANDLER (modifications_handler_get_type ())
#define MODIFICATIONS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MODIFICATIONS_HANDLER, ModificationsHandler))
#define MODIFICATIONS_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MODIFICATIONS_HANDLER, ModificationsHandlerClass))
#define IS_MODIFICATIONS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MODIFICATIONS_HANDLER))
#define IS_MODIFICATIONS_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MODIFICATIONS_HANDLER))
#define MODIFICATIONS_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MODIFICATIONS_HANDLER, ModificationsHandlerClass))

typedef struct _ModificationsHandler ModificationsHandler;
typedef struct _ModificationsHandlerClass ModificationsHandlerClass;
enum  {
	REGISTRY_INFO_0_PROPERTY,
	REGISTRY_INFO_MODIFICATIONS_HANDLER_PROPERTY,
	REGISTRY_INFO_FULL_NAME_PROPERTY,
	REGISTRY_INFO_CONTEXT_ID_PROPERTY,
	REGISTRY_INFO_NUM_PROPERTIES
};
static GParamSpec* registry_info_properties[REGISTRY_INFO_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_KEY_EDITOR_CHILD (key_editor_child_get_type ())
#define KEY_EDITOR_CHILD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD, KeyEditorChild))
#define IS_KEY_EDITOR_CHILD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD))
#define KEY_EDITOR_CHILD_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_KEY_EDITOR_CHILD, KeyEditorChildIface))

typedef struct _KeyEditorChild KeyEditorChild;
typedef struct _KeyEditorChildIface KeyEditorChildIface;
typedef struct _Block26Data Block26Data;

#define TYPE_REGISTRY_VARIANT_DICT (registry_variant_dict_get_type ())
#define REGISTRY_VARIANT_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REGISTRY_VARIANT_DICT, RegistryVariantDict))
#define REGISTRY_VARIANT_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REGISTRY_VARIANT_DICT, RegistryVariantDictClass))
#define IS_REGISTRY_VARIANT_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REGISTRY_VARIANT_DICT))
#define IS_REGISTRY_VARIANT_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REGISTRY_VARIANT_DICT))
#define REGISTRY_VARIANT_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REGISTRY_VARIANT_DICT, RegistryVariantDictClass))

typedef struct _RegistryVariantDict RegistryVariantDict;
typedef struct _RegistryVariantDictClass RegistryVariantDictClass;
typedef enum  {
	PROPERTY_QUERY_HASH = 1 << 0,
	PROPERTY_QUERY_HAS_SCHEMA = 1 << 1,
	PROPERTY_QUERY_KEY_NAME = 1 << 2,
	PROPERTY_QUERY_TYPE_CODE = 1 << 3,
	PROPERTY_QUERY_KEY_VALUE = 1 << 4,
	PROPERTY_QUERY_FIXED_SCHEMA = 1 << 5,
	PROPERTY_QUERY_SCHEMA_ID = 1 << 6,
	PROPERTY_QUERY_SUMMARY = 1 << 7,
	PROPERTY_QUERY_DESCRIPTION = 1 << 8,
	PROPERTY_QUERY_DEFAULT_VALUE = 1 << 9,
	PROPERTY_QUERY_RANGE_TYPE = 1 << 10,
	PROPERTY_QUERY_RANGE_CONTENT = 1 << 11,
	PROPERTY_QUERY_MAXIMUM = 1 << 12,
	PROPERTY_QUERY_MINIMUM = 1 << 13,
	PROPERTY_QUERY_KEY_CONFLICT = 1 << 14,
	PROPERTY_QUERY_IS_DEFAULT = 1 << 15
} PropertyQuery;

#define TYPE_PROPERTY_QUERY (property_query_get_type ())
typedef enum  {
	KEY_CONFLICT_NONE,
	KEY_CONFLICT_SOFT,
	KEY_CONFLICT_HARD
} KeyConflict;

#define TYPE_KEY_CONFLICT (key_conflict_get_type ())
typedef enum  {
	RANGE_TYPE_TYPE,
	RANGE_TYPE_ENUM,
	RANGE_TYPE_FLAGS,
	RANGE_TYPE_RANGE,
	RANGE_TYPE_OTHER
} RangeType;

#define TYPE_RANGE_TYPE (range_type_get_type ())
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define TYPE_KEY_EDITOR_CHILD_BOOL (key_editor_child_bool_get_type ())
#define KEY_EDITOR_CHILD_BOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_BOOL, KeyEditorChildBool))
#define KEY_EDITOR_CHILD_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_BOOL, KeyEditorChildBoolClass))
#define IS_KEY_EDITOR_CHILD_BOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_BOOL))
#define IS_KEY_EDITOR_CHILD_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_BOOL))
#define KEY_EDITOR_CHILD_BOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_BOOL, KeyEditorChildBoolClass))

typedef struct _KeyEditorChildBool KeyEditorChildBool;
typedef struct _KeyEditorChildBoolClass KeyEditorChildBoolClass;

#define TYPE_KEY_EDITOR_CHILD_SINGLE (key_editor_child_single_get_type ())
#define KEY_EDITOR_CHILD_SINGLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_SINGLE, KeyEditorChildSingle))
#define KEY_EDITOR_CHILD_SINGLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_SINGLE, KeyEditorChildSingleClass))
#define IS_KEY_EDITOR_CHILD_SINGLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_SINGLE))
#define IS_KEY_EDITOR_CHILD_SINGLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_SINGLE))
#define KEY_EDITOR_CHILD_SINGLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_SINGLE, KeyEditorChildSingleClass))

typedef struct _KeyEditorChildSingle KeyEditorChildSingle;
typedef struct _KeyEditorChildSingleClass KeyEditorChildSingleClass;

#define TYPE_KEY_EDITOR_CHILD_NUMBER_INT (key_editor_child_number_int_get_type ())
#define KEY_EDITOR_CHILD_NUMBER_INT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_INT, KeyEditorChildNumberInt))
#define KEY_EDITOR_CHILD_NUMBER_INT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_INT, KeyEditorChildNumberIntClass))
#define IS_KEY_EDITOR_CHILD_NUMBER_INT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_INT))
#define IS_KEY_EDITOR_CHILD_NUMBER_INT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_INT))
#define KEY_EDITOR_CHILD_NUMBER_INT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_INT, KeyEditorChildNumberIntClass))

typedef struct _KeyEditorChildNumberInt KeyEditorChildNumberInt;
typedef struct _KeyEditorChildNumberIntClass KeyEditorChildNumberIntClass;

#define TYPE_KEY_EDITOR_CHILD_NUMBER_CUSTOM (key_editor_child_number_custom_get_type ())
#define KEY_EDITOR_CHILD_NUMBER_CUSTOM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_CUSTOM, KeyEditorChildNumberCustom))
#define KEY_EDITOR_CHILD_NUMBER_CUSTOM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_CUSTOM, KeyEditorChildNumberCustomClass))
#define IS_KEY_EDITOR_CHILD_NUMBER_CUSTOM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_CUSTOM))
#define IS_KEY_EDITOR_CHILD_NUMBER_CUSTOM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_CUSTOM))
#define KEY_EDITOR_CHILD_NUMBER_CUSTOM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_CUSTOM, KeyEditorChildNumberCustomClass))

typedef struct _KeyEditorChildNumberCustom KeyEditorChildNumberCustom;
typedef struct _KeyEditorChildNumberCustomClass KeyEditorChildNumberCustomClass;

#define TYPE_KEY_EDITOR_CHILD_NUMBER_DOUBLE (key_editor_child_number_double_get_type ())
#define KEY_EDITOR_CHILD_NUMBER_DOUBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_DOUBLE, KeyEditorChildNumberDouble))
#define KEY_EDITOR_CHILD_NUMBER_DOUBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_DOUBLE, KeyEditorChildNumberDoubleClass))
#define IS_KEY_EDITOR_CHILD_NUMBER_DOUBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_DOUBLE))
#define IS_KEY_EDITOR_CHILD_NUMBER_DOUBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_DOUBLE))
#define KEY_EDITOR_CHILD_NUMBER_DOUBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_DOUBLE, KeyEditorChildNumberDoubleClass))

typedef struct _KeyEditorChildNumberDouble KeyEditorChildNumberDouble;
typedef struct _KeyEditorChildNumberDoubleClass KeyEditorChildNumberDoubleClass;

#define TYPE_KEY_EDITOR_CHILD_NUMBER_UINT64 (key_editor_child_number_uint64_get_type ())
#define KEY_EDITOR_CHILD_NUMBER_UINT64(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_UINT64, KeyEditorChildNumberUint64))
#define KEY_EDITOR_CHILD_NUMBER_UINT64_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_UINT64, KeyEditorChildNumberUint64Class))
#define IS_KEY_EDITOR_CHILD_NUMBER_UINT64(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_UINT64))
#define IS_KEY_EDITOR_CHILD_NUMBER_UINT64_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_UINT64))
#define KEY_EDITOR_CHILD_NUMBER_UINT64_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_UINT64, KeyEditorChildNumberUint64Class))

typedef struct _KeyEditorChildNumberUint64 KeyEditorChildNumberUint64;
typedef struct _KeyEditorChildNumberUint64Class KeyEditorChildNumberUint64Class;

#define TYPE_KEY_EDITOR_CHILD_NUMBER_INT64 (key_editor_child_number_int64_get_type ())
#define KEY_EDITOR_CHILD_NUMBER_INT64(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_INT64, KeyEditorChildNumberInt64))
#define KEY_EDITOR_CHILD_NUMBER_INT64_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_INT64, KeyEditorChildNumberInt64Class))
#define IS_KEY_EDITOR_CHILD_NUMBER_INT64(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_INT64))
#define IS_KEY_EDITOR_CHILD_NUMBER_INT64_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_NUMBER_INT64))
#define KEY_EDITOR_CHILD_NUMBER_INT64_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_NUMBER_INT64, KeyEditorChildNumberInt64Class))

typedef struct _KeyEditorChildNumberInt64 KeyEditorChildNumberInt64;
typedef struct _KeyEditorChildNumberInt64Class KeyEditorChildNumberInt64Class;

#define TYPE_KEY_EDITOR_CHILD_ARRAY (key_editor_child_array_get_type ())
#define KEY_EDITOR_CHILD_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_ARRAY, KeyEditorChildArray))
#define KEY_EDITOR_CHILD_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_ARRAY, KeyEditorChildArrayClass))
#define IS_KEY_EDITOR_CHILD_ARRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_ARRAY))
#define IS_KEY_EDITOR_CHILD_ARRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_ARRAY))
#define KEY_EDITOR_CHILD_ARRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_ARRAY, KeyEditorChildArrayClass))

typedef struct _KeyEditorChildArray KeyEditorChildArray;
typedef struct _KeyEditorChildArrayClass KeyEditorChildArrayClass;

#define TYPE_KEY_EDITOR_CHILD_DEFAULT (key_editor_child_default_get_type ())
#define KEY_EDITOR_CHILD_DEFAULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_DEFAULT, KeyEditorChildDefault))
#define KEY_EDITOR_CHILD_DEFAULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_DEFAULT, KeyEditorChildDefaultClass))
#define IS_KEY_EDITOR_CHILD_DEFAULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_DEFAULT))
#define IS_KEY_EDITOR_CHILD_DEFAULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_DEFAULT))
#define KEY_EDITOR_CHILD_DEFAULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_DEFAULT, KeyEditorChildDefaultClass))

typedef struct _KeyEditorChildDefault KeyEditorChildDefault;
typedef struct _KeyEditorChildDefaultClass KeyEditorChildDefaultClass;
typedef struct _Block27Data Block27Data;

#define TYPE_KEY_EDITOR_CHILD_NULLABLE_BOOL (key_editor_child_nullable_bool_get_type ())
#define KEY_EDITOR_CHILD_NULLABLE_BOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_NULLABLE_BOOL, KeyEditorChildNullableBool))
#define KEY_EDITOR_CHILD_NULLABLE_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_NULLABLE_BOOL, KeyEditorChildNullableBoolClass))
#define IS_KEY_EDITOR_CHILD_NULLABLE_BOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_NULLABLE_BOOL))
#define IS_KEY_EDITOR_CHILD_NULLABLE_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_NULLABLE_BOOL))
#define KEY_EDITOR_CHILD_NULLABLE_BOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_NULLABLE_BOOL, KeyEditorChildNullableBoolClass))

typedef struct _KeyEditorChildNullableBool KeyEditorChildNullableBool;
typedef struct _KeyEditorChildNullableBoolClass KeyEditorChildNullableBoolClass;

#define TYPE_KEY_EDITOR_CHILD_ENUM (key_editor_child_enum_get_type ())
#define KEY_EDITOR_CHILD_ENUM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_ENUM, KeyEditorChildEnum))
#define KEY_EDITOR_CHILD_ENUM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_ENUM, KeyEditorChildEnumClass))
#define IS_KEY_EDITOR_CHILD_ENUM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_ENUM))
#define IS_KEY_EDITOR_CHILD_ENUM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_ENUM))
#define KEY_EDITOR_CHILD_ENUM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_ENUM, KeyEditorChildEnumClass))

typedef struct _KeyEditorChildEnum KeyEditorChildEnum;
typedef struct _KeyEditorChildEnumClass KeyEditorChildEnumClass;

#define TYPE_KEY_EDITOR_CHILD_FLAGS (key_editor_child_flags_get_type ())
#define KEY_EDITOR_CHILD_FLAGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_EDITOR_CHILD_FLAGS, KeyEditorChildFlags))
#define KEY_EDITOR_CHILD_FLAGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_EDITOR_CHILD_FLAGS, KeyEditorChildFlagsClass))
#define IS_KEY_EDITOR_CHILD_FLAGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_EDITOR_CHILD_FLAGS))
#define IS_KEY_EDITOR_CHILD_FLAGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_EDITOR_CHILD_FLAGS))
#define KEY_EDITOR_CHILD_FLAGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_EDITOR_CHILD_FLAGS, KeyEditorChildFlagsClass))

typedef struct _KeyEditorChildFlags KeyEditorChildFlags;
typedef struct _KeyEditorChildFlagsClass KeyEditorChildFlagsClass;
typedef struct _Block28Data Block28Data;

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

#define TYPE_PROPERTY_ROW (property_row_get_type ())
#define PROPERTY_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROPERTY_ROW, PropertyRow))
#define PROPERTY_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROPERTY_ROW, PropertyRowClass))
#define IS_PROPERTY_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROPERTY_ROW))
#define IS_PROPERTY_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROPERTY_ROW))
#define PROPERTY_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROPERTY_ROW, PropertyRowClass))

typedef struct _PropertyRow PropertyRow;
typedef struct _PropertyRowClass PropertyRowClass;

#define TYPE_SETTINGS_MODEL_CORE (settings_model_core_get_type ())
#define SETTINGS_MODEL_CORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SETTINGS_MODEL_CORE, SettingsModelCore))
#define SETTINGS_MODEL_CORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SETTINGS_MODEL_CORE, SettingsModelCoreClass))
#define IS_SETTINGS_MODEL_CORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SETTINGS_MODEL_CORE))
#define IS_SETTINGS_MODEL_CORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SETTINGS_MODEL_CORE))
#define SETTINGS_MODEL_CORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SETTINGS_MODEL_CORE, SettingsModelCoreClass))

typedef struct _SettingsModelCore SettingsModelCore;
typedef struct _SettingsModelCoreClass SettingsModelCoreClass;

#define TYPE_SETTINGS_MODEL (settings_model_get_type ())
#define SETTINGS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SETTINGS_MODEL, SettingsModel))
#define SETTINGS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SETTINGS_MODEL, SettingsModelClass))
#define IS_SETTINGS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SETTINGS_MODEL))
#define IS_SETTINGS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SETTINGS_MODEL))
#define SETTINGS_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SETTINGS_MODEL, SettingsModelClass))

typedef struct _SettingsModel SettingsModel;
typedef struct _SettingsModelClass SettingsModelClass;
typedef struct _Block29Data Block29Data;
typedef struct _ListBoxRowWrapperPrivate ListBoxRowWrapperPrivate;
typedef struct _PropertyRowPrivate PropertyRowPrivate;
enum  {
	PROPERTY_ROW_0_PROPERTY,
	PROPERTY_ROW_NUM_PROPERTIES
};
static GParamSpec* property_row_properties[PROPERTY_ROW_NUM_PROPERTIES];

struct _BrowsableViewIface {
	GTypeInterface parent_iface;
	gboolean (*handle_copy_text) (BrowsableView* self, gchar** copy_text);
};

struct _RegistryInfo {
	GtkGrid parent_instance;
	RegistryInfoPrivate * priv;
};

struct _RegistryInfoClass {
	GtkGridClass parent_class;
};

struct _RegistryInfoPrivate {
	GtkRevealer* conflicting_key_warning_revealer;
	GtkRevealer* hard_conflicting_key_error_revealer;
	GtkRevealer* no_schema_warning;
	GtkRevealer* one_choice_warning_revealer;
	GtkLabel* one_choice_enum_warning;
	GtkLabel* one_choice_integer_warning;
	GtkLabel* one_choice_tuple_warning;
	GtkListBox* properties_list_box;
	GtkButton* erase_button;
	GtkLabel* current_value_label;
	ModificationsHandler* _modifications_handler;
	guint current_key_info_hash;
	gulong revealer_reload_1_handler;
	gulong revealer_reload_2_handler;
	gchar* _full_name;
	guint16 _context_id;
};

struct _KeyEditorChildIface {
	GTypeInterface parent_iface;
	GVariant* (*get_variant) (KeyEditorChild* self);
	void (*reload) (KeyEditorChild* self, GVariant* gvariant);
};

struct _Block26Data {
	int _ref_count_;
	RegistryInfo* self;
	gboolean has_schema;
	gchar* type_code;
	KeyEditorChild* key_editor_child;
	gulong value_has_changed_handler;
	gulong child_activated_handler;
};

struct _Block27Data {
	int _ref_count_;
	Block26Data * _data26_;
	GtkSwitch* custom_value_switch;
	gulong switch_active_handler;
};

struct _Block28Data {
	int _ref_count_;
	KeyEditorChildFlags* key_editor_child_flags;
	gulong delayed_modifications_changed_handler;
	gchar* full_name;
	guint16 context_id;
	ModificationsHandler* modifications_handler;
};

struct _Block29Data {
	int _ref_count_;
	RegistryInfo* self;
	PropertyRow* row;
	gulong default_value_row_activate_handler;
	GtkSwitch* custom_value_switch;
};

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

struct _ListBoxRowWrapperClass {
	GtkListBoxRowClass parent_class;
};

struct _PropertyRow {
	ListBoxRowWrapper parent_instance;
	PropertyRowPrivate * priv;
};

struct _PropertyRowClass {
	ListBoxRowWrapperClass parent_class;
};

struct _PropertyRowPrivate {
	GtkOverlay* overlay;
	GtkLabel* name_label;
	GtkWidget* value_widget;
};

static gint RegistryInfo_private_offset;
static gpointer registry_info_parent_class = NULL;
static BrowsableViewIface * registry_info_browsable_view_parent_iface = NULL;
static gint PropertyRow_private_offset;
static gpointer property_row_parent_class = NULL;

VALA_EXTERN GType browsable_view_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType registry_info_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RegistryInfo, g_object_unref)
VALA_EXTERN GType modifications_handler_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ModificationsHandler, g_object_unref)
VALA_EXTERN void registry_info_clean (RegistryInfo* self);
static void registry_info_disconnect_handler (GObject* object,
                                       gulong* handler);
static ModificationsHandler* registry_info_get_modifications_handler (RegistryInfo* self);
static void __lambda55_ (RegistryInfo* self,
                  GtkWidget* widget);
static void ___lambda55__gtk_callback (GtkWidget* widget,
                                gpointer self);
VALA_EXTERN void registry_info_populate_properties_list_box (RegistryInfo* self,
                                                 const gchar* _full_name,
                                                 guint16 _context_id,
                                                 GVariant* current_key_info);
VALA_EXTERN GType key_editor_child_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChild, g_object_unref)
static Block26Data* block26_data_ref (Block26Data* _data26_);
static void block26_data_unref (void * _userdata_);
static void registry_info_set_full_name (RegistryInfo* self,
                                  const gchar* value);
static void registry_info_set_context_id (RegistryInfo* self,
                                   guint16 value);
VALA_EXTERN GType registry_variant_dict_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RegistryVariantDict, g_object_unref)
VALA_EXTERN RegistryVariantDict* registry_variant_dict_new_from_aqv (GVariant* variant);
VALA_EXTERN RegistryVariantDict* registry_variant_dict_construct_from_aqv (GType object_type,
                                                               GVariant* variant);
static void __lambda56_ (RegistryInfo* self,
                  GtkWidget* widget);
static void ___lambda56__gtk_callback (GtkWidget* widget,
                                gpointer self);
VALA_EXTERN guint16 registry_info_get_context_id (RegistryInfo* self);
VALA_EXTERN gboolean registry_variant_dict_lookup (RegistryVariantDict* self,
                                       guint16 key,
                                       const gchar* format_string,
                                       ...);
VALA_EXTERN GType property_query_get_type (void) G_GNUC_CONST ;
static void registry_info_add_row_from_label (RegistryInfo* self,
                                       const gchar* property_name,
                                       const gchar* property_value,
                                       gboolean use_italic);
VALA_EXTERN GType key_conflict_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* get_defined_by (gboolean has_schema,
                       gboolean fixed_schema);
static void registry_info_add_separator (RegistryInfo* self);
VALA_EXTERN gchar* model_utils_key_to_long_description (const gchar* type);
VALA_EXTERN GType range_type_get_type (void) G_GNUC_CONST ;
static gchar* registry_info_get_current_value_text (GVariant* key_value);
static void registry_info_add_row_from_widget (RegistryInfo* self,
                                        const gchar* property_name,
                                        GtkWidget* widget,
                                        const gchar* type,
                                        gboolean minimum_is_maximum);
VALA_EXTERN GVariant* modifications_handler_get_key_custom_value (ModificationsHandler* self,
                                                      const gchar* full_name,
                                                      guint16 context_id);
VALA_EXTERN const gchar* registry_info_get_full_name (RegistryInfo* self);
VALA_EXTERN KeyEditorChildBool* key_editor_child_bool_new (gboolean initial_value);
VALA_EXTERN KeyEditorChildBool* key_editor_child_bool_construct (GType object_type,
                                                     gboolean initial_value);
VALA_EXTERN GType key_editor_child_bool_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildBool, g_object_unref)
VALA_EXTERN KeyEditorChildSingle* key_editor_child_single_new (GVariant* key_value,
                                                   const gchar* text);
VALA_EXTERN KeyEditorChildSingle* key_editor_child_single_construct (GType object_type,
                                                         GVariant* key_value,
                                                         const gchar* text);
VALA_EXTERN GType key_editor_child_single_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildSingle, g_object_unref)
VALA_EXTERN KeyEditorChildNumberInt* key_editor_child_number_int_new (GVariant* initial_value,
                                                          const gchar* type_string,
                                                          GVariant* range_content_or_null);
VALA_EXTERN KeyEditorChildNumberInt* key_editor_child_number_int_construct (GType object_type,
                                                                GVariant* initial_value,
                                                                const gchar* type_string,
                                                                GVariant* range_content_or_null);
VALA_EXTERN GType key_editor_child_number_int_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildNumberInt, g_object_unref)
VALA_EXTERN KeyEditorChildNumberDouble* key_editor_child_number_double_new (GVariant* initial_value,
                                                                GVariant* range_content_or_null);
VALA_EXTERN KeyEditorChildNumberDouble* key_editor_child_number_double_construct (GType object_type,
                                                                      GVariant* initial_value,
                                                                      GVariant* range_content_or_null);
VALA_EXTERN GType key_editor_child_number_custom_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildNumberCustom, g_object_unref)
VALA_EXTERN GType key_editor_child_number_double_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildNumberDouble, g_object_unref)
VALA_EXTERN KeyEditorChildNumberUint64* key_editor_child_number_uint64_new (GVariant* initial_value,
                                                                GVariant* range_content_or_null);
VALA_EXTERN KeyEditorChildNumberUint64* key_editor_child_number_uint64_construct (GType object_type,
                                                                      GVariant* initial_value,
                                                                      GVariant* range_content_or_null);
VALA_EXTERN GType key_editor_child_number_uint64_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildNumberUint64, g_object_unref)
VALA_EXTERN KeyEditorChildNumberInt64* key_editor_child_number_int64_new (GVariant* initial_value,
                                                              GVariant* range_content_or_null);
VALA_EXTERN KeyEditorChildNumberInt64* key_editor_child_number_int64_construct (GType object_type,
                                                                    GVariant* initial_value,
                                                                    GVariant* range_content_or_null);
VALA_EXTERN GType key_editor_child_number_int64_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildNumberInt64, g_object_unref)
static KeyEditorChild* registry_info_create_child_mb (GVariant* initial_value,
                                               const gchar* full_name,
                                               gboolean has_schema,
                                               ModificationsHandler* modifications_handler);
static KeyEditorChild* registry_info_create_child_enum (GVariant* range_content,
                                                 GVariant* initial_value,
                                                 const gchar* full_name,
                                                 ModificationsHandler* modifications_handler);
static KeyEditorChild* registry_info_create_child_flags (const gchar* full_name,
                                                  guint16 context_id,
                                                  GVariant* range_content,
                                                  GVariant* initial_value,
                                                  ModificationsHandler* modifications_handler);
VALA_EXTERN KeyEditorChildArray* key_editor_child_array_new (const gchar* type_string,
                                                 GVariant* initial_value);
VALA_EXTERN KeyEditorChildArray* key_editor_child_array_construct (GType object_type,
                                                       const gchar* type_string,
                                                       GVariant* initial_value);
VALA_EXTERN GType key_editor_child_array_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildArray, g_object_unref)
VALA_EXTERN KeyEditorChildDefault* key_editor_child_default_new (const gchar* type_string,
                                                     GVariant* initial_value);
VALA_EXTERN KeyEditorChildDefault* key_editor_child_default_construct (GType object_type,
                                                           const gchar* type_string,
                                                           GVariant* initial_value);
VALA_EXTERN GType key_editor_child_default_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildDefault, g_object_unref)
VALA_EXTERN void registry_variant_dict_clear (RegistryVariantDict* self);
static void __lambda75_ (Block26Data* _data26_,
                  KeyEditorChild* _key_editor_child,
                  gboolean is_valid);
static void registry_info_on_value_has_changed (ModificationsHandler* _modifications_handler,
                                         KeyEditorChild* key_editor_child,
                                         const gchar* full_name,
                                         guint16 context_id,
                                         gboolean has_schema,
                                         const gchar* type_code,
                                         gboolean is_valid);
static void ___lambda75__key_editor_child_value_has_changed (KeyEditorChild* _sender,
                                                      gboolean is_valid,
                                                      gpointer self);
static Block27Data* block27_data_ref (Block27Data* _data27_);
static void block27_data_unref (void * _userdata_);
static void registry_info_add_switch_row (RegistryInfo* self,
                                   const gchar* property_name,
                                   GtkSwitch* custom_value_switch);
VALA_EXTERN gboolean modifications_handler_key_has_planned_change (ModificationsHandler* self,
                                                       const gchar* key_path);
VALA_EXTERN GVariant* modifications_handler_get_key_planned_value (ModificationsHandler* self,
                                                       const gchar* key_path);
static void ___lambda78_ (Block27Data* _data27_);
static void registry_info_on_custom_value_switch_toggled (ModificationsHandler* _modifications_handler,
                                                   GtkSwitch* custom_value_switch,
                                                   KeyEditorChild* key_editor_child,
                                                   gulong value_has_changed_handler,
                                                   const gchar* full_name,
                                                   guint16 context_id,
                                                   const gchar* type_code);
static void ____lambda78__g_object_notify (GObject* _sender,
                                    GParamSpec* pspec,
                                    gpointer self);
static void ___lambda79_ (Block27Data* _data27_,
                   ModificationsHandler* _modifications_handler);
static void registry_info_on_revealer_reload_1 (ModificationsHandler* _modifications_handler,
                                         GtkSwitch* custom_value_switch,
                                         gulong switch_active_handler,
                                         const gchar* full_name,
                                         guint16 context_id);
static void ____lambda79__modifications_handler_leave_delay_mode (ModificationsHandler* _sender,
                                                           gpointer self);
static void ___lambda80_ (Block27Data* _data27_);
static void ____lambda80__gtk_widget_destroy (GtkWidget* _sender,
                                       gpointer self);
static void __lambda81_ (RegistryInfo* self);
VALA_EXTERN void modifications_handler_apply_delayed_settings (ModificationsHandler* self);
static void ___lambda81__key_editor_child_child_activated (KeyEditorChild* _sender,
                                                    gpointer self);
static void __lambda82_ (Block26Data* _data26_,
                  ModificationsHandler* _modifications_handler);
static void registry_info_on_revealer_reload_2 (ModificationsHandler* _modifications_handler,
                                         KeyEditorChild* key_editor_child,
                                         gulong value_has_changed_handler,
                                         const gchar* full_name,
                                         guint16 context_id,
                                         gboolean has_schema);
static void ___lambda82__modifications_handler_leave_delay_mode (ModificationsHandler* _sender,
                                                          gpointer self);
static void __lambda83_ (Block26Data* _data26_);
static void ___lambda83__gtk_widget_destroy (GtkWidget* _sender,
                                      gpointer self);
VALA_EXTERN gboolean modifications_handler_get_current_delay_mode (ModificationsHandler* self);
VALA_EXTERN KeyEditorChildNullableBool* key_editor_child_nullable_bool_new (GVariant* initial_value,
                                                                gboolean delay_mode,
                                                                gboolean has_planned_change,
                                                                gboolean has_schema);
VALA_EXTERN KeyEditorChildNullableBool* key_editor_child_nullable_bool_construct (GType object_type,
                                                                      GVariant* initial_value,
                                                                      gboolean delay_mode,
                                                                      gboolean has_planned_change,
                                                                      gboolean has_schema);
VALA_EXTERN GType key_editor_child_nullable_bool_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildNullableBool, g_object_unref)
VALA_EXTERN KeyEditorChildEnum* key_editor_child_enum_new (GVariant* initial_value,
                                               gboolean delay_mode,
                                               gboolean has_planned_change,
                                               GVariant* range_content);
VALA_EXTERN KeyEditorChildEnum* key_editor_child_enum_construct (GType object_type,
                                                     GVariant* initial_value,
                                                     gboolean delay_mode,
                                                     gboolean has_planned_change,
                                                     GVariant* range_content);
VALA_EXTERN GType key_editor_child_enum_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildEnum, g_object_unref)
VALA_EXTERN GType key_editor_child_flags_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyEditorChildFlags, g_object_unref)
static Block28Data* block28_data_ref (Block28Data* _data28_);
static void block28_data_unref (void * _userdata_);
VALA_EXTERN KeyEditorChildFlags* key_editor_child_flags_new (GVariant* initial_value,
                                                 gchar** _all_flags,
                                                 gint _all_flags_length1);
VALA_EXTERN KeyEditorChildFlags* key_editor_child_flags_construct (GType object_type,
                                                       GVariant* initial_value,
                                                       gchar** _all_flags,
                                                       gint _all_flags_length1);
static void __lambda66_ (Block28Data* _data28_);
static gchar** _vala_array_dup10 (gchar** self,
                           gssize length);
VALA_EXTERN void key_editor_child_flags_update_flags (KeyEditorChildFlags* self,
                                          gchar** active_flags,
                                          gint active_flags_length1);
static void ___lambda66__modifications_handler_delayed_changes_changed (ModificationsHandler* _sender,
                                                                 gpointer self);
static void __lambda67_ (Block28Data* _data28_);
static void ___lambda67__gtk_widget_destroy (GtkWidget* _sender,
                                      gpointer self);
VALA_EXTERN gchar* key_cool_text_value_from_variant (GVariant* variant);
static gboolean registry_info_real_handle_copy_text (BrowsableView* base,
                                              gchar** copy_text);
VALA_EXTERN gboolean base_window_copy_clipboard_text (gchar** copy_text);
VALA_EXTERN gboolean base_window_no_copy_text (gchar** copy_text);
VALA_EXTERN GType list_box_row_wrapper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListBoxRowWrapper, g_object_unref)
VALA_EXTERN GType property_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PropertyRow, g_object_unref)
VALA_EXTERN gboolean property_row_handle_copy_text (PropertyRow* self,
                                        gchar** copy_text);
VALA_EXTERN gboolean modifications_handler_should_delay_apply (ModificationsHandler* self,
                                                   const gchar* type_string);
VALA_EXTERN void modifications_handler_add_delayed_setting (ModificationsHandler* self,
                                                const gchar* key_path,
                                                GVariant* new_value,
                                                guint16 context_id);
VALA_EXTERN GVariant* key_editor_child_get_variant (KeyEditorChild* self);
VALA_EXTERN void modifications_handler_dismiss_change (ModificationsHandler* self,
                                           const gchar* key_path);
VALA_EXTERN GType settings_model_core_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SettingsModelCore, g_object_unref)
VALA_EXTERN GType settings_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SettingsModel, g_object_unref)
VALA_EXTERN SettingsModel* modifications_handler_get_model (ModificationsHandler* self);
VALA_EXTERN void settings_model_set_gsettings_key_value (SettingsModel* self,
                                             const gchar* key_path,
                                             guint16 gkey_context_id,
                                             GVariant* key_value);
VALA_EXTERN void settings_model_set_dconf_key_value (SettingsModel* self,
                                         const gchar* key_path,
                                         GVariant* key_value);
VALA_EXTERN void key_editor_child_reload (KeyEditorChild* self,
                              GVariant* gvariant);
VALA_EXTERN GVariant* settings_model_get_key_properties (SettingsModel* self,
                                             const gchar* key_path,
                                             guint16 key_context_id,
                                             guint16 query);
VALA_EXTERN void settings_model_set_key_to_default (SettingsModel* self,
                                        const gchar* key_path,
                                        guint16 gkey_context_id);
VALA_EXTERN gboolean settings_model_is_key_ghost (SettingsModel* self,
                                      const gchar* key_path);
VALA_EXTERN PropertyRow* property_row_new_from_label (const gchar* property_name,
                                          const gchar* property_value,
                                          gboolean use_italic);
VALA_EXTERN PropertyRow* property_row_construct_from_label (GType object_type,
                                                const gchar* property_name,
                                                const gchar* property_value,
                                                gboolean use_italic);
static Block29Data* block29_data_ref (Block29Data* _data29_);
static void block29_data_unref (void * _userdata_);
VALA_EXTERN PropertyRow* property_row_new_from_widgets (const gchar* property_name,
                                            GtkWidget* widget,
                                            GtkWidget* warning);
VALA_EXTERN PropertyRow* property_row_construct_from_widgets (GType object_type,
                                                  const gchar* property_name,
                                                  GtkWidget* widget,
                                                  GtkWidget* warning);
static void __lambda76_ (Block29Data* _data29_);
static void ___lambda76__gtk_list_box_row_activate (GtkListBoxRow* _sender,
                                             gpointer self);
static void __lambda77_ (Block29Data* _data29_);
static void ___lambda77__gtk_widget_destroy (GtkWidget* _sender,
                                      gpointer self);
static GtkWidget* registry_info_add_warning (const gchar* type,
                                      gboolean minimum_is_maximum);
VALA_EXTERN ListBoxRowWrapper* list_box_row_wrapper_new (void);
VALA_EXTERN ListBoxRowWrapper* list_box_row_wrapper_construct (GType object_type);
static GtkWidget* registry_info_warning_label (const gchar* text);
VALA_EXTERN gboolean registry_info_check_reload (RegistryInfo* self,
                                     guint properties_hash);
VALA_EXTERN void registry_info_gkey_value_push (RegistryInfo* self,
                                    GVariant* key_value,
                                    gboolean is_key_default);
VALA_EXTERN void registry_info_dkey_value_push (RegistryInfo* self,
                                    GVariant* key_value_or_null);
VALA_EXTERN RegistryInfo* registry_info_new (void);
VALA_EXTERN RegistryInfo* registry_info_construct (GType object_type);
VALA_EXTERN void registry_info_set_modifications_handler (RegistryInfo* self,
                                              ModificationsHandler* value);
VALA_EXTERN gboolean browsable_view_handle_copy_text (BrowsableView* self,
                                          gchar** copy_text);
static void registry_info_finalize (GObject * obj);
static GType registry_info_get_type_once (void);
static void _vala_registry_info_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec);
static void _vala_registry_info_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec);
VALA_EXTERN PropertyRow* property_row_new (void);
VALA_EXTERN PropertyRow* property_row_construct (GType object_type);
static void property_row_finalize (GObject * obj);
static GType property_row_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 inline gpointer
registry_info_get_instance_private (RegistryInfo* self)
{
	return G_STRUCT_MEMBER_P (self, RegistryInfo_private_offset);
}

static void
__lambda55_ (RegistryInfo* self,
             GtkWidget* widget)
{
	g_return_if_fail (widget != NULL);
	gtk_widget_destroy (widget);
}

static void
___lambda55__gtk_callback (GtkWidget* widget,
                           gpointer self)
{
	__lambda55_ ((RegistryInfo*) self, widget);
}

void
registry_info_clean (RegistryInfo* self)
{
	GtkButton* _tmp0_;
	ModificationsHandler* _tmp1_;
	ModificationsHandler* _tmp2_;
	GtkListBox* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->erase_button;
	gtk_actionable_set_action_target ((GtkActionable*) _tmp0_, "s", "", NULL);
	_tmp1_ = self->priv->_modifications_handler;
	registry_info_disconnect_handler ((GObject*) _tmp1_, &self->priv->revealer_reload_1_handler);
	_tmp2_ = self->priv->_modifications_handler;
	registry_info_disconnect_handler ((GObject*) _tmp2_, &self->priv->revealer_reload_2_handler);
	_tmp3_ = self->priv->properties_list_box;
	gtk_container_foreach ((GtkContainer*) _tmp3_, ___lambda55__gtk_callback, self);
}

static void
registry_info_disconnect_handler (GObject* object,
                                  gulong* handler)
{
	g_return_if_fail (object != NULL);
	if ((*handler) == ((gulong) 0)) {
		return;
	}
	g_signal_handler_disconnect (object, *handler);
	*handler = (gulong) 0;
}

static Block26Data*
block26_data_ref (Block26Data* _data26_)
{
	g_atomic_int_inc (&_data26_->_ref_count_);
	return _data26_;
}

static void
block26_data_unref (void * _userdata_)
{
	Block26Data* _data26_;
	_data26_ = (Block26Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data26_->_ref_count_)) {
		RegistryInfo* self;
		self = _data26_->self;
		_g_object_unref0 (_data26_->key_editor_child);
		_g_free0 (_data26_->type_code);
		_g_object_unref0 (self);
		g_slice_free (Block26Data, _data26_);
	}
}

static void
__lambda56_ (RegistryInfo* self,
             GtkWidget* widget)
{
	g_return_if_fail (widget != NULL);
	gtk_widget_destroy (widget);
}

static void
___lambda56__gtk_callback (GtkWidget* widget,
                           gpointer self)
{
	__lambda56_ ((RegistryInfo*) self, widget);
}

static gboolean
string_contains (const gchar* self,
                 const gchar* needle)
{
	gchar* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (needle != NULL, FALSE);
	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
	result = _tmp0_ != NULL;
	return result;
}

static void
__lambda75_ (Block26Data* _data26_,
             KeyEditorChild* _key_editor_child,
             gboolean is_valid)
{
	RegistryInfo* self;
	ModificationsHandler* _tmp0_;
	const gchar* _tmp1_;
	guint16 _tmp2_;
	const gchar* _tmp3_;
	self = _data26_->self;
	g_return_if_fail (_key_editor_child != NULL);
	_tmp0_ = self->priv->_modifications_handler;
	_tmp1_ = self->priv->_full_name;
	_tmp2_ = self->priv->_context_id;
	_tmp3_ = _data26_->type_code;
	registry_info_on_value_has_changed (_tmp0_, _key_editor_child, _tmp1_, _tmp2_, _data26_->has_schema, _tmp3_, is_valid);
}

static void
___lambda75__key_editor_child_value_has_changed (KeyEditorChild* _sender,
                                                 gboolean is_valid,
                                                 gpointer self)
{
	__lambda75_ (self, _sender, is_valid);
}

static Block27Data*
block27_data_ref (Block27Data* _data27_)
{
	g_atomic_int_inc (&_data27_->_ref_count_);
	return _data27_;
}

static void
block27_data_unref (void * _userdata_)
{
	Block27Data* _data27_;
	_data27_ = (Block27Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data27_->_ref_count_)) {
		RegistryInfo* self;
		self = _data27_->_data26_->self;
		_g_object_unref0 (_data27_->custom_value_switch);
		block26_data_unref (_data27_->_data26_);
		_data27_->_data26_ = NULL;
		g_slice_free (Block27Data, _data27_);
	}
}

static void
___lambda78_ (Block27Data* _data27_)
{
	Block26Data* _data26_;
	RegistryInfo* self;
	ModificationsHandler* _tmp0_;
	GtkSwitch* _tmp1_;
	KeyEditorChild* _tmp2_;
	const gchar* _tmp3_;
	guint16 _tmp4_;
	const gchar* _tmp5_;
	_data26_ = _data27_->_data26_;
	self = _data26_->self;
	_tmp0_ = self->priv->_modifications_handler;
	_tmp1_ = _data27_->custom_value_switch;
	_tmp2_ = _data26_->key_editor_child;
	_tmp3_ = self->priv->_full_name;
	_tmp4_ = self->priv->_context_id;
	_tmp5_ = _data26_->type_code;
	registry_info_on_custom_value_switch_toggled (_tmp0_, _tmp1_, _tmp2_, _data26_->value_has_changed_handler, _tmp3_, _tmp4_, _tmp5_);
}

static void
____lambda78__g_object_notify (GObject* _sender,
                               GParamSpec* pspec,
                               gpointer self)
{
	___lambda78_ (self);
}

static void
___lambda79_ (Block27Data* _data27_,
              ModificationsHandler* _modifications_handler)
{
	Block26Data* _data26_;
	RegistryInfo* self;
	GtkSwitch* _tmp0_;
	const gchar* _tmp1_;
	guint16 _tmp2_;
	_data26_ = _data27_->_data26_;
	self = _data26_->self;
	g_return_if_fail (_modifications_handler != NULL);
	_tmp0_ = _data27_->custom_value_switch;
	_tmp1_ = self->priv->_full_name;
	_tmp2_ = self->priv->_context_id;
	registry_info_on_revealer_reload_1 (_modifications_handler, _tmp0_, _data27_->switch_active_handler, _tmp1_, _tmp2_);
}

static void
____lambda79__modifications_handler_leave_delay_mode (ModificationsHandler* _sender,
                                                      gpointer self)
{
	___lambda79_ (self, _sender);
}

static void
___lambda80_ (Block27Data* _data27_)
{
	Block26Data* _data26_;
	RegistryInfo* self;
	GtkSwitch* _tmp0_;
	_data26_ = _data27_->_data26_;
	self = _data26_->self;
	_tmp0_ = _data27_->custom_value_switch;
	g_signal_handler_disconnect ((GObject*) _tmp0_, _data27_->switch_active_handler);
}

static void
____lambda80__gtk_widget_destroy (GtkWidget* _sender,
                                  gpointer self)
{
	___lambda80_ (self);
}

static void
__lambda81_ (RegistryInfo* self)
{
	ModificationsHandler* _tmp0_;
	_tmp0_ = self->priv->_modifications_handler;
	modifications_handler_apply_delayed_settings (_tmp0_);
}

static void
___lambda81__key_editor_child_child_activated (KeyEditorChild* _sender,
                                               gpointer self)
{
	__lambda81_ ((RegistryInfo*) self);
}

static void
__lambda82_ (Block26Data* _data26_,
             ModificationsHandler* _modifications_handler)
{
	RegistryInfo* self;
	KeyEditorChild* _tmp0_;
	const gchar* _tmp1_;
	guint16 _tmp2_;
	self = _data26_->self;
	g_return_if_fail (_modifications_handler != NULL);
	_tmp0_ = _data26_->key_editor_child;
	_tmp1_ = self->priv->_full_name;
	_tmp2_ = self->priv->_context_id;
	registry_info_on_revealer_reload_2 (_modifications_handler, _tmp0_, _data26_->value_has_changed_handler, _tmp1_, _tmp2_, _data26_->has_schema);
}

static void
___lambda82__modifications_handler_leave_delay_mode (ModificationsHandler* _sender,
                                                     gpointer self)
{
	__lambda82_ (self, _sender);
}

static void
__lambda83_ (Block26Data* _data26_)
{
	RegistryInfo* self;
	KeyEditorChild* _tmp0_;
	KeyEditorChild* _tmp1_;
	self = _data26_->self;
	_tmp0_ = _data26_->key_editor_child;
	g_signal_handler_disconnect ((GObject*) _tmp0_, _data26_->value_has_changed_handler);
	_tmp1_ = _data26_->key_editor_child;
	g_signal_handler_disconnect ((GObject*) _tmp1_, _data26_->child_activated_handler);
}

static void
___lambda83__gtk_widget_destroy (GtkWidget* _sender,
                                 gpointer self)
{
	__lambda83_ (self);
}

void
registry_info_populate_properties_list_box (RegistryInfo* self,
                                            const gchar* _full_name,
                                            guint16 _context_id,
                                            GVariant* current_key_info)
{
	Block26Data* _data26_;
	RegistryVariantDict* properties = NULL;
	RegistryVariantDict* _tmp0_;
	GtkListBox* _tmp1_;
	guint16 _tmp2_;
	RegistryVariantDict* _tmp11_;
	guint _tmp12_ = 0U;
	gboolean _tmp13_;
	RegistryVariantDict* _tmp14_;
	gboolean _tmp15_ = FALSE;
	gboolean _tmp16_;
	KeyConflict key_conflict = 0;
	GtkRevealer* _tmp28_;
	RegistryVariantDict* _tmp29_;
	gchar* _tmp30_ = NULL;
	gboolean _tmp31_;
	gboolean tmp_bool = FALSE;
	gchar* tmp_string = NULL;
	RegistryVariantDict* _tmp32_;
	gboolean _tmp33_ = FALSE;
	gboolean _tmp34_;
	gchar* _tmp35_;
	gchar* _tmp36_;
	RegistryVariantDict* _tmp37_;
	gchar* _tmp38_ = NULL;
	gboolean _tmp39_;
	RegistryVariantDict* _tmp41_;
	gchar* _tmp42_ = NULL;
	gboolean _tmp43_;
	RegistryVariantDict* _tmp47_;
	gchar* _tmp48_ = NULL;
	gboolean _tmp49_;
	const gchar* _tmp53_;
	gchar* _tmp54_;
	gboolean _tmp55_ = FALSE;
	gboolean _tmp56_ = FALSE;
	const gchar* _tmp57_;
	const gchar* _tmp58_;
	gboolean range_type_is_range = FALSE;
	guint8 range_type = 0U;
	RegistryVariantDict* _tmp71_;
	guint8 _tmp72_ = 0U;
	gboolean _tmp73_;
	gboolean minimum_is_maximum = FALSE;
	gchar* tmp = NULL;
	gchar* _tmp90_;
	gchar* _tmp91_;
	RegistryVariantDict* _tmp92_;
	gchar* _tmp93_ = NULL;
	gboolean _tmp94_;
	RegistryVariantDict* _tmp96_;
	gchar* _tmp97_ = NULL;
	gboolean _tmp98_;
	gboolean _tmp100_ = FALSE;
	const gchar* _tmp101_;
	gboolean has_schema_and_is_default = FALSE;
	RegistryVariantDict* _tmp107_;
	gchar* _tmp108_ = NULL;
	gboolean _tmp109_;
	GtkLabel* _tmp124_;
	GtkLabel* _tmp125_;
	GtkLabel* _tmp126_;
	GtkLabel* _tmp127_;
	GtkLabel* _tmp128_;
	GtkLabel* _tmp129_;
	GtkLabel* _tmp130_;
	GtkLabel* _tmp131_;
	GtkLabel* _tmp132_;
	GVariant* initial_value = NULL;
	ModificationsHandler* _tmp133_;
	const gchar* _tmp134_;
	guint16 _tmp135_;
	GVariant* _tmp136_;
	const gchar* _tmp137_;
	const gchar* _tmp138_;
	GQuark _tmp140_ = 0U;
	static GQuark _tmp139_label0 = 0;
	static GQuark _tmp139_label1 = 0;
	static GQuark _tmp139_label2 = 0;
	static GQuark _tmp139_label3 = 0;
	static GQuark _tmp139_label4 = 0;
	static GQuark _tmp139_label5 = 0;
	static GQuark _tmp139_label6 = 0;
	static GQuark _tmp139_label7 = 0;
	static GQuark _tmp139_label8 = 0;
	static GQuark _tmp139_label9 = 0;
	static GQuark _tmp139_label10 = 0;
	static GQuark _tmp139_label11 = 0;
	static GQuark _tmp139_label12 = 0;
	static GQuark _tmp139_label13 = 0;
	gboolean is_key_editor_child_single = FALSE;
	KeyEditorChild* _tmp230_;
	GtkRevealer* _tmp239_;
	RegistryVariantDict* _tmp240_;
	KeyEditorChild* _tmp241_;
	gulong _tmp242_;
	KeyEditorChild* _tmp266_;
	gulong _tmp267_;
	ModificationsHandler* _tmp268_;
	gulong _tmp269_;
	KeyEditorChild* _tmp270_;
	const gchar* _tmp271_;
	KeyEditorChild* _tmp272_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (_full_name != NULL);
	g_return_if_fail (current_key_info != NULL);
	_data26_ = g_slice_new0 (Block26Data);
	_data26_->_ref_count_ = 1;
	_data26_->self = g_object_ref (self);
	registry_info_set_full_name (self, _full_name);
	registry_info_set_context_id (self, _context_id);
	registry_info_clean (self);
	_tmp0_ = registry_variant_dict_new_from_aqv (current_key_info);
	properties = _tmp0_;
	_tmp1_ = self->priv->properties_list_box;
	gtk_container_foreach ((GtkContainer*) _tmp1_, ___lambda56__gtk_callback, self);
	_tmp2_ = self->priv->_context_id;
	if (_tmp2_ == MODEL_UTILS_folder_context_id) {
		gchar* folder_name = NULL;
		RegistryVariantDict* _tmp3_;
		gchar* _tmp4_ = NULL;
		gboolean _tmp5_;
		const gchar* _tmp6_;
		GtkRevealer* _tmp7_;
		GtkRevealer* _tmp8_;
		GtkRevealer* _tmp9_;
		GtkRevealer* _tmp10_;
		_tmp3_ = properties;
		_tmp5_ = registry_variant_dict_lookup (_tmp3_, (guint16) PROPERTY_QUERY_KEY_NAME, "s", &_tmp4_, NULL);
		_g_free0 (folder_name);
		folder_name = _tmp4_;
		if (!_tmp5_) {
			g_assert_not_reached ();
		}
		_tmp6_ = folder_name;
		registry_info_add_row_from_label (self, REGISTRY_INFO_NAME_FIELD_DESCRIPTION, _tmp6_, FALSE);
		_tmp7_ = self->priv->conflicting_key_warning_revealer;
		gtk_revealer_set_reveal_child (_tmp7_, FALSE);
		_tmp8_ = self->priv->hard_conflicting_key_error_revealer;
		gtk_revealer_set_reveal_child (_tmp8_, FALSE);
		_tmp9_ = self->priv->no_schema_warning;
		gtk_revealer_set_reveal_child (_tmp9_, FALSE);
		_tmp10_ = self->priv->one_choice_warning_revealer;
		gtk_revealer_set_reveal_child (_tmp10_, FALSE);
		_g_free0 (folder_name);
		_g_object_unref0 (properties);
		block26_data_unref (_data26_);
		_data26_ = NULL;
		return;
	}
	_tmp11_ = properties;
	_tmp13_ = registry_variant_dict_lookup (_tmp11_, (guint16) PROPERTY_QUERY_HASH, "u", &_tmp12_, NULL);
	self->priv->current_key_info_hash = _tmp12_;
	if (!_tmp13_) {
		g_assert_not_reached ();
	}
	_tmp14_ = properties;
	_tmp16_ = registry_variant_dict_lookup (_tmp14_, (guint16) PROPERTY_QUERY_HAS_SCHEMA, "b", &_tmp15_, NULL);
	_data26_->has_schema = _tmp15_;
	if (!_tmp16_) {
		g_assert_not_reached ();
	}
	key_conflict = KEY_CONFLICT_NONE;
	if (_data26_->has_schema) {
		guint8 _key_conflict = 0U;
		RegistryVariantDict* _tmp17_;
		guint8 _tmp18_ = 0U;
		gboolean _tmp19_;
		_tmp17_ = properties;
		_tmp19_ = registry_variant_dict_lookup (_tmp17_, (guint16) PROPERTY_QUERY_KEY_CONFLICT, "y", &_tmp18_, NULL);
		_key_conflict = _tmp18_;
		if (!_tmp19_) {
			g_assert_not_reached ();
		}
		key_conflict = (KeyConflict) _key_conflict;
		if (key_conflict == KEY_CONFLICT_HARD) {
			GtkRevealer* _tmp20_;
			GtkRevealer* _tmp21_;
			_tmp20_ = self->priv->conflicting_key_warning_revealer;
			gtk_revealer_set_reveal_child (_tmp20_, FALSE);
			_tmp21_ = self->priv->hard_conflicting_key_error_revealer;
			gtk_revealer_set_reveal_child (_tmp21_, TRUE);
		} else {
			if (key_conflict == KEY_CONFLICT_SOFT) {
				GtkRevealer* _tmp22_;
				GtkRevealer* _tmp23_;
				_tmp22_ = self->priv->conflicting_key_warning_revealer;
				gtk_revealer_set_reveal_child (_tmp22_, TRUE);
				_tmp23_ = self->priv->hard_conflicting_key_error_revealer;
				gtk_revealer_set_reveal_child (_tmp23_, FALSE);
			} else {
				GtkRevealer* _tmp24_;
				GtkRevealer* _tmp25_;
				_tmp24_ = self->priv->conflicting_key_warning_revealer;
				gtk_revealer_set_reveal_child (_tmp24_, FALSE);
				_tmp25_ = self->priv->hard_conflicting_key_error_revealer;
				gtk_revealer_set_reveal_child (_tmp25_, FALSE);
			}
		}
	} else {
		GtkRevealer* _tmp26_;
		GtkRevealer* _tmp27_;
		_tmp26_ = self->priv->conflicting_key_warning_revealer;
		gtk_revealer_set_reveal_child (_tmp26_, FALSE);
		_tmp27_ = self->priv->hard_conflicting_key_error_revealer;
		gtk_revealer_set_reveal_child (_tmp27_, FALSE);
	}
	_tmp28_ = self->priv->no_schema_warning;
	gtk_revealer_set_reveal_child (_tmp28_, !_data26_->has_schema);
	_tmp29_ = properties;
	_tmp31_ = registry_variant_dict_lookup (_tmp29_, (guint16) PROPERTY_QUERY_TYPE_CODE, "s", &_tmp30_, NULL);
	_g_free0 (_data26_->type_code);
	_data26_->type_code = _tmp30_;
	if (!_tmp31_) {
		g_assert_not_reached ();
	}
	_tmp32_ = properties;
	_tmp34_ = registry_variant_dict_lookup (_tmp32_, (guint16) PROPERTY_QUERY_FIXED_SCHEMA, "b", &_tmp33_, NULL);
	tmp_bool = _tmp33_;
	if (!_tmp34_) {
		tmp_bool = FALSE;
	}
	_tmp35_ = get_defined_by (_data26_->has_schema, tmp_bool);
	_tmp36_ = _tmp35_;
	registry_info_add_row_from_label (self, REGISTRY_INFO_DEFINED_BY_FIELD_DESCRIPTION, _tmp36_, FALSE);
	_g_free0 (_tmp36_);
	_tmp37_ = properties;
	_tmp39_ = registry_variant_dict_lookup (_tmp37_, (guint16) PROPERTY_QUERY_SCHEMA_ID, "s", &_tmp38_, NULL);
	_g_free0 (tmp_string);
	tmp_string = _tmp38_;
	if (_tmp39_) {
		const gchar* _tmp40_;
		_tmp40_ = tmp_string;
		registry_info_add_row_from_label (self, REGISTRY_INFO_SCHEMA_FIELD_DESCRIPTION, _tmp40_, FALSE);
	}
	registry_info_add_separator (self);
	_tmp41_ = properties;
	_tmp43_ = registry_variant_dict_lookup (_tmp41_, (guint16) PROPERTY_QUERY_SUMMARY, "s", &_tmp42_, NULL);
	_g_free0 (tmp_string);
	tmp_string = _tmp42_;
	if (_tmp43_) {
		const gchar* _tmp44_;
		const gchar* _tmp45_ = NULL;
		_tmp44_ = tmp_string;
		tmp_bool = g_strcmp0 (_tmp44_, "") == 0;
		if (tmp_bool) {
			_tmp45_ = _ ("No summary provided");
		} else {
			const gchar* _tmp46_;
			_tmp46_ = tmp_string;
			_tmp45_ = _tmp46_;
		}
		registry_info_add_row_from_label (self, REGISTRY_INFO_SUMMARY_FIELD_DESCRIPTION, _tmp45_, tmp_bool);
	}
	_tmp47_ = properties;
	_tmp49_ = registry_variant_dict_lookup (_tmp47_, (guint16) PROPERTY_QUERY_DESCRIPTION, "s", &_tmp48_, NULL);
	_g_free0 (tmp_string);
	tmp_string = _tmp48_;
	if (_tmp49_) {
		const gchar* _tmp50_;
		const gchar* _tmp51_ = NULL;
		_tmp50_ = tmp_string;
		tmp_bool = g_strcmp0 (_tmp50_, "") == 0;
		if (tmp_bool) {
			_tmp51_ = _ ("No description provided");
		} else {
			const gchar* _tmp52_;
			_tmp52_ = tmp_string;
			_tmp51_ = _tmp52_;
		}
		registry_info_add_row_from_label (self, REGISTRY_INFO_DESCRIPTION_FIELD_DESCRIPTION, _tmp51_, tmp_bool);
	}
	_tmp53_ = _data26_->type_code;
	_tmp54_ = model_utils_key_to_long_description (_tmp53_);
	_g_free0 (tmp_string);
	tmp_string = _tmp54_;
	_tmp57_ = _data26_->type_code;
	_tmp58_ = tmp_string;
	if (g_strcmp0 (_tmp57_, _tmp58_) == 0) {
		_tmp56_ = TRUE;
	} else {
		const gchar* _tmp59_;
		_tmp59_ = _data26_->type_code;
		_tmp56_ = g_strcmp0 (_tmp59_, "<enum>") == 0;
	}
	if (_tmp56_) {
		_tmp55_ = TRUE;
	} else {
		const gchar* _tmp60_;
		_tmp60_ = _data26_->type_code;
		_tmp55_ = g_strcmp0 (_tmp60_, "<flags>") == 0;
	}
	if (_tmp55_) {
		const gchar* _tmp61_;
		_tmp61_ = tmp_string;
		registry_info_add_row_from_label (self, REGISTRY_INFO_TYPE_FIELD_DESCRIPTION, _tmp61_, FALSE);
	} else {
		gchar* type_name_field_description = NULL;
		const gchar* _tmp65_;
		const gchar* _tmp66_;
		gboolean _tmp67_ = FALSE;
		const gchar* _tmp68_;
		if (g_strcmp0 (REGISTRY_INFO_TYPE_NAME_FIELD_DESCRIPTION, REGISTRY_INFO__TYPE_NAME_FIELD_DESCRIPTION) != 0) {
			gchar* _tmp62_;
			_tmp62_ = g_strdup (REGISTRY_INFO_TYPE_NAME_FIELD_DESCRIPTION);
			_g_free0 (type_name_field_description);
			type_name_field_description = _tmp62_;
		} else {
			if (g_strcmp0 (REGISTRY_INFO_TYPE_FIELD_DESCRIPTION, REGISTRY_INFO__TYPE_FIELD_DESCRIPTION) != 0) {
				gchar* _tmp63_;
				_tmp63_ = g_strdup (REGISTRY_INFO_TYPE_FIELD_DESCRIPTION);
				_g_free0 (type_name_field_description);
				type_name_field_description = _tmp63_;
			} else {
				gchar* _tmp64_;
				_tmp64_ = g_strdup (REGISTRY_INFO__TYPE_NAME_FIELD_DESCRIPTION);
				_g_free0 (type_name_field_description);
				type_name_field_description = _tmp64_;
			}
		}
		_tmp65_ = type_name_field_description;
		_tmp66_ = tmp_string;
		registry_info_add_row_from_label (self, _tmp65_, _tmp66_, FALSE);
		_tmp68_ = _data26_->type_code;
		if (g_strcmp0 (_tmp68_, "b") != 0) {
			const gchar* _tmp69_;
			_tmp69_ = _data26_->type_code;
			_tmp67_ = g_strcmp0 (_tmp69_, "s") != 0;
		} else {
			_tmp67_ = FALSE;
		}
		if (_tmp67_) {
			const gchar* _tmp70_;
			_tmp70_ = _data26_->type_code;
			registry_info_add_row_from_label (self, REGISTRY_INFO_TYPE_CODE_FIELD_DESCRIPTION, _tmp70_, FALSE);
		}
		_g_free0 (type_name_field_description);
	}
	range_type_is_range = FALSE;
	_tmp71_ = properties;
	_tmp73_ = registry_variant_dict_lookup (_tmp71_, (guint16) PROPERTY_QUERY_RANGE_TYPE, "y", &_tmp72_, NULL);
	range_type = _tmp72_;
	if (_tmp73_) {
		gboolean _tmp74_ = FALSE;
		gboolean _tmp75_ = FALSE;
		gboolean _tmp76_ = FALSE;
		gboolean _tmp77_ = FALSE;
		gboolean _tmp78_ = FALSE;
		gboolean _tmp79_ = FALSE;
		gboolean _tmp80_ = FALSE;
		const gchar* _tmp81_;
		_tmp81_ = _data26_->type_code;
		if (g_strcmp0 (_tmp81_, "d") == 0) {
			_tmp80_ = TRUE;
		} else {
			const gchar* _tmp82_;
			_tmp82_ = _data26_->type_code;
			_tmp80_ = g_strcmp0 (_tmp82_, "y") == 0;
		}
		if (_tmp80_) {
			_tmp79_ = TRUE;
		} else {
			const gchar* _tmp83_;
			_tmp83_ = _data26_->type_code;
			_tmp79_ = g_strcmp0 (_tmp83_, "i") == 0;
		}
		if (_tmp79_) {
			_tmp78_ = TRUE;
		} else {
			const gchar* _tmp84_;
			_tmp84_ = _data26_->type_code;
			_tmp78_ = g_strcmp0 (_tmp84_, "u") == 0;
		}
		if (_tmp78_) {
			_tmp77_ = TRUE;
		} else {
			const gchar* _tmp85_;
			_tmp85_ = _data26_->type_code;
			_tmp77_ = g_strcmp0 (_tmp85_, "n") == 0;
		}
		if (_tmp77_) {
			_tmp76_ = TRUE;
		} else {
			const gchar* _tmp86_;
			_tmp86_ = _data26_->type_code;
			_tmp76_ = g_strcmp0 (_tmp86_, "q") == 0;
		}
		if (_tmp76_) {
			_tmp75_ = TRUE;
		} else {
			const gchar* _tmp87_;
			_tmp87_ = _data26_->type_code;
			_tmp75_ = g_strcmp0 (_tmp87_, "x") == 0;
		}
		if (_tmp75_) {
			_tmp74_ = TRUE;
		} else {
			const gchar* _tmp88_;
			_tmp88_ = _data26_->type_code;
			_tmp74_ = g_strcmp0 (_tmp88_, "t") == 0;
		}
		if (_tmp74_) {
			const gchar* _tmp89_ = NULL;
			range_type_is_range = ((RangeType) range_type) == RANGE_TYPE_RANGE;
			if (range_type_is_range) {
				_tmp89_ = _ ("Yes");
			} else {
				_tmp89_ = _ ("No");
			}
			registry_info_add_row_from_label (self, REGISTRY_INFO_FORCED_RANGE_FIELD_DESCRIPTION, _tmp89_, FALSE);
		}
	}
	minimum_is_maximum = FALSE;
	_tmp90_ = g_strdup ("");
	tmp = _tmp90_;
	_tmp91_ = g_strdup ("");
	_g_free0 (tmp_string);
	tmp_string = _tmp91_;
	_tmp92_ = properties;
	_tmp94_ = registry_variant_dict_lookup (_tmp92_, (guint16) PROPERTY_QUERY_MINIMUM, "s", &_tmp93_, NULL);
	_g_free0 (tmp_string);
	tmp_string = _tmp93_;
	if (_tmp94_) {
		const gchar* _tmp95_;
		_tmp95_ = tmp_string;
		registry_info_add_row_from_label (self, REGISTRY_INFO_MINIMUM_FIELD_DESCRIPTION, _tmp95_, FALSE);
	}
	_tmp96_ = properties;
	_tmp98_ = registry_variant_dict_lookup (_tmp96_, (guint16) PROPERTY_QUERY_MAXIMUM, "s", &_tmp97_, NULL);
	_g_free0 (tmp);
	tmp = _tmp97_;
	if (_tmp98_) {
		const gchar* _tmp99_;
		_tmp99_ = tmp;
		registry_info_add_row_from_label (self, REGISTRY_INFO_MAXIMUM_FIELD_DESCRIPTION, _tmp99_, FALSE);
	}
	_tmp101_ = tmp;
	if (g_strcmp0 (_tmp101_, "") != 0) {
		const gchar* _tmp102_;
		const gchar* _tmp103_;
		_tmp102_ = tmp;
		_tmp103_ = tmp_string;
		_tmp100_ = g_strcmp0 (_tmp102_, _tmp103_) == 0;
	} else {
		_tmp100_ = FALSE;
	}
	if (_tmp100_) {
		minimum_is_maximum = TRUE;
	}
	if (!_data26_->has_schema) {
		has_schema_and_is_default = FALSE;
	} else {
		RegistryVariantDict* _tmp104_;
		gboolean _tmp105_ = FALSE;
		gboolean _tmp106_;
		_tmp104_ = properties;
		_tmp106_ = registry_variant_dict_lookup (_tmp104_, (guint16) PROPERTY_QUERY_IS_DEFAULT, "b", &_tmp105_, NULL);
		has_schema_and_is_default = _tmp105_;
		if (!_tmp106_) {
			g_assert_not_reached ();
		}
	}
	_tmp107_ = properties;
	_tmp109_ = registry_variant_dict_lookup (_tmp107_, (guint16) PROPERTY_QUERY_DEFAULT_VALUE, "s", &_tmp108_, NULL);
	_g_free0 (tmp_string);
	tmp_string = _tmp108_;
	if (_tmp109_) {
		const gchar* _tmp110_;
		_tmp110_ = tmp_string;
		registry_info_add_row_from_label (self, REGISTRY_INFO_DEFAULT_FIELD_DESCRIPTION, _tmp110_, FALSE);
	} else {
		if (_data26_->has_schema) {
			g_assert_not_reached ();
		}
	}
	if (key_conflict == KEY_CONFLICT_HARD) {
		GtkLabel* _tmp111_;
		GtkLabel* _tmp112_;
		GtkStyleContext* _tmp113_;
		_tmp111_ = (GtkLabel*) gtk_label_new (_ ("There are conflicting definitions of this key, getting value would be " \
"either problematic or meaningless."));
		g_object_ref_sink (_tmp111_);
		_g_object_unref0 (self->priv->current_value_label);
		self->priv->current_value_label = _tmp111_;
		_tmp112_ = self->priv->current_value_label;
		_tmp113_ = gtk_widget_get_style_context ((GtkWidget*) _tmp112_);
		gtk_style_context_add_class (_tmp113_, "italic-label");
	} else {
		if (has_schema_and_is_default) {
			gchar* _tmp114_;
			gchar* _tmp115_;
			GtkLabel* _tmp116_;
			_tmp114_ = registry_info_get_current_value_text (NULL);
			_tmp115_ = _tmp114_;
			_tmp116_ = (GtkLabel*) gtk_label_new (_tmp115_);
			g_object_ref_sink (_tmp116_);
			_g_object_unref0 (self->priv->current_value_label);
			self->priv->current_value_label = _tmp116_;
			_g_free0 (_tmp115_);
		} else {
			GVariant* key_value = NULL;
			RegistryVariantDict* _tmp117_;
			GVariant* _tmp118_ = NULL;
			gboolean _tmp119_;
			GVariant* _tmp120_;
			gchar* _tmp121_;
			gchar* _tmp122_;
			GtkLabel* _tmp123_;
			_tmp117_ = properties;
			_tmp119_ = registry_variant_dict_lookup (_tmp117_, (guint16) PROPERTY_QUERY_KEY_VALUE, "v", &_tmp118_, NULL);
			_g_variant_unref0 (key_value);
			key_value = _tmp118_;
			if (!_tmp119_) {
				g_assert_not_reached ();
			}
			_tmp120_ = key_value;
			_tmp121_ = registry_info_get_current_value_text (_tmp120_);
			_tmp122_ = _tmp121_;
			_tmp123_ = (GtkLabel*) gtk_label_new (_tmp122_);
			g_object_ref_sink (_tmp123_);
			_g_object_unref0 (self->priv->current_value_label);
			self->priv->current_value_label = _tmp123_;
			_g_free0 (_tmp122_);
			_g_variant_unref0 (key_value);
		}
	}
	_tmp124_ = self->priv->current_value_label;
	gtk_widget_set_halign ((GtkWidget*) _tmp124_, GTK_ALIGN_START);
	_tmp125_ = self->priv->current_value_label;
	gtk_widget_set_valign ((GtkWidget*) _tmp125_, GTK_ALIGN_START);
	_tmp126_ = self->priv->current_value_label;
	gtk_label_set_xalign (_tmp126_, (gfloat) 0);
	_tmp127_ = self->priv->current_value_label;
	gtk_label_set_yalign (_tmp127_, (gfloat) 0);
	_tmp128_ = self->priv->current_value_label;
	g_object_set (_tmp128_, "wrap", TRUE, NULL);
	_tmp129_ = self->priv->current_value_label;
	g_object_set (_tmp129_, "wrap-mode", PANGO_WRAP_WORD_CHAR, NULL);
	_tmp130_ = self->priv->current_value_label;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp130_, TRUE);
	_tmp131_ = self->priv->current_value_label;
	gtk_widget_show ((GtkWidget*) _tmp131_);
	_tmp132_ = self->priv->current_value_label;
	registry_info_add_row_from_widget (self, REGISTRY_INFO_CURRENT_VALUE_FIELD_DESCRIPTION, (GtkWidget*) _tmp132_, NULL, FALSE);
	registry_info_add_separator (self);
	_tmp133_ = self->priv->_modifications_handler;
	_tmp134_ = self->priv->_full_name;
	_tmp135_ = self->priv->_context_id;
	_tmp136_ = modifications_handler_get_key_custom_value (_tmp133_, _tmp134_, _tmp135_);
	initial_value = _tmp136_;
	_tmp137_ = _data26_->type_code;
	_tmp138_ = _tmp137_;
	_tmp140_ = (NULL == _tmp138_) ? 0 : g_quark_from_string (_tmp138_);
	if (_tmp140_ == ((0 != _tmp139_label0) ? _tmp139_label0 : (_tmp139_label0 = g_quark_from_static_string ("b")))) {
		switch (0) {
			default:
			{
				GVariant* _tmp141_;
				KeyEditorChildBool* _tmp142_;
				_tmp141_ = initial_value;
				_tmp142_ = key_editor_child_bool_new (g_variant_get_boolean (_tmp141_));
				g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp142_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
				_g_object_unref0 (_data26_->key_editor_child);
				_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp142_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
				break;
			}
		}
	} else if (((((_tmp140_ == ((0 != _tmp139_label1) ? _tmp139_label1 : (_tmp139_label1 = g_quark_from_static_string ("i")))) || (_tmp140_ == ((0 != _tmp139_label2) ? _tmp139_label2 : (_tmp139_label2 = g_quark_from_static_string ("u"))))) || (_tmp140_ == ((0 != _tmp139_label3) ? _tmp139_label3 : (_tmp139_label3 = g_quark_from_static_string ("n"))))) || (_tmp140_ == ((0 != _tmp139_label4) ? _tmp139_label4 : (_tmp139_label4 = g_quark_from_static_string ("q"))))) || (_tmp140_ == ((0 != _tmp139_label5) ? _tmp139_label5 : (_tmp139_label5 = g_quark_from_static_string ("y"))))) {
		switch (0) {
			default:
			{
				if (minimum_is_maximum) {
					GVariant* _tmp143_;
					GVariant* _tmp144_;
					gchar* _tmp145_;
					gchar* _tmp146_;
					KeyEditorChildSingle* _tmp147_;
					_tmp143_ = initial_value;
					_tmp144_ = initial_value;
					_tmp145_ = g_variant_print (_tmp144_, FALSE);
					_tmp146_ = _tmp145_;
					_tmp147_ = key_editor_child_single_new (_tmp143_, _tmp146_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp147_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp147_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
					_g_free0 (_tmp146_);
				} else {
					GVariant* range = NULL;
					gboolean _tmp148_ = FALSE;
					gboolean _tmp149_ = FALSE;
					GVariant* _tmp153_;
					const gchar* _tmp154_;
					GVariant* _tmp155_;
					KeyEditorChildNumberInt* _tmp156_;
					range = NULL;
					if (_data26_->has_schema) {
						_tmp149_ = range_type_is_range;
					} else {
						_tmp149_ = FALSE;
					}
					if (_tmp149_) {
						RegistryVariantDict* _tmp150_;
						GVariant* _tmp151_ = NULL;
						gboolean _tmp152_;
						_tmp150_ = properties;
						_tmp152_ = registry_variant_dict_lookup (_tmp150_, (guint16) PROPERTY_QUERY_RANGE_CONTENT, "v", &_tmp151_, NULL);
						_g_variant_unref0 (range);
						range = _tmp151_;
						_tmp148_ = !_tmp152_;
					} else {
						_tmp148_ = FALSE;
					}
					if (_tmp148_) {
						g_assert_not_reached ();
					}
					_tmp153_ = initial_value;
					_tmp154_ = _data26_->type_code;
					_tmp155_ = range;
					_tmp156_ = key_editor_child_number_int_new (_tmp153_, _tmp154_, _tmp155_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp156_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp156_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
					_g_variant_unref0 (range);
				}
				break;
			}
		}
	} else if (_tmp140_ == ((0 != _tmp139_label6) ? _tmp139_label6 : (_tmp139_label6 = g_quark_from_static_string ("d")))) {
		switch (0) {
			default:
			{
				if (minimum_is_maximum) {
					GVariant* _tmp157_;
					GVariant* _tmp158_;
					gchar* _tmp159_;
					gchar* _tmp160_;
					KeyEditorChildSingle* _tmp161_;
					_tmp157_ = initial_value;
					_tmp158_ = initial_value;
					_tmp159_ = g_variant_print (_tmp158_, FALSE);
					_tmp160_ = _tmp159_;
					_tmp161_ = key_editor_child_single_new (_tmp157_, _tmp160_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp161_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp161_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
					_g_free0 (_tmp160_);
				} else {
					GVariant* range = NULL;
					gboolean _tmp162_ = FALSE;
					gboolean _tmp163_ = FALSE;
					GVariant* _tmp167_;
					GVariant* _tmp168_;
					KeyEditorChildNumberDouble* _tmp169_;
					range = NULL;
					if (_data26_->has_schema) {
						_tmp163_ = range_type_is_range;
					} else {
						_tmp163_ = FALSE;
					}
					if (_tmp163_) {
						RegistryVariantDict* _tmp164_;
						GVariant* _tmp165_ = NULL;
						gboolean _tmp166_;
						_tmp164_ = properties;
						_tmp166_ = registry_variant_dict_lookup (_tmp164_, (guint16) PROPERTY_QUERY_RANGE_CONTENT, "v", &_tmp165_, NULL);
						_g_variant_unref0 (range);
						range = _tmp165_;
						_tmp162_ = !_tmp166_;
					} else {
						_tmp162_ = FALSE;
					}
					if (_tmp162_) {
						g_assert_not_reached ();
					}
					_tmp167_ = initial_value;
					_tmp168_ = range;
					_tmp169_ = key_editor_child_number_double_new (_tmp167_, _tmp168_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp169_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp169_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
					_g_variant_unref0 (range);
				}
				break;
			}
		}
	} else if (_tmp140_ == ((0 != _tmp139_label7) ? _tmp139_label7 : (_tmp139_label7 = g_quark_from_static_string ("t")))) {
		switch (0) {
			default:
			{
				if (minimum_is_maximum) {
					GVariant* _tmp170_;
					GVariant* _tmp171_;
					gchar* _tmp172_;
					gchar* _tmp173_;
					KeyEditorChildSingle* _tmp174_;
					_tmp170_ = initial_value;
					_tmp171_ = initial_value;
					_tmp172_ = g_variant_print (_tmp171_, FALSE);
					_tmp173_ = _tmp172_;
					_tmp174_ = key_editor_child_single_new (_tmp170_, _tmp173_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp174_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp174_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
					_g_free0 (_tmp173_);
				} else {
					GVariant* range = NULL;
					gboolean _tmp175_ = FALSE;
					gboolean _tmp176_ = FALSE;
					GVariant* _tmp180_;
					GVariant* _tmp181_;
					KeyEditorChildNumberUint64* _tmp182_;
					range = NULL;
					if (_data26_->has_schema) {
						_tmp176_ = range_type_is_range;
					} else {
						_tmp176_ = FALSE;
					}
					if (_tmp176_) {
						RegistryVariantDict* _tmp177_;
						GVariant* _tmp178_ = NULL;
						gboolean _tmp179_;
						_tmp177_ = properties;
						_tmp179_ = registry_variant_dict_lookup (_tmp177_, (guint16) PROPERTY_QUERY_RANGE_CONTENT, "v", &_tmp178_, NULL);
						_g_variant_unref0 (range);
						range = _tmp178_;
						_tmp175_ = !_tmp179_;
					} else {
						_tmp175_ = FALSE;
					}
					if (_tmp175_) {
						g_assert_not_reached ();
					}
					_tmp180_ = initial_value;
					_tmp181_ = range;
					_tmp182_ = key_editor_child_number_uint64_new (_tmp180_, _tmp181_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp182_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp182_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
					_g_variant_unref0 (range);
				}
				break;
			}
		}
	} else if (_tmp140_ == ((0 != _tmp139_label8) ? _tmp139_label8 : (_tmp139_label8 = g_quark_from_static_string ("x")))) {
		switch (0) {
			default:
			{
				if (minimum_is_maximum) {
					GVariant* _tmp183_;
					GVariant* _tmp184_;
					gchar* _tmp185_;
					gchar* _tmp186_;
					KeyEditorChildSingle* _tmp187_;
					_tmp183_ = initial_value;
					_tmp184_ = initial_value;
					_tmp185_ = g_variant_print (_tmp184_, FALSE);
					_tmp186_ = _tmp185_;
					_tmp187_ = key_editor_child_single_new (_tmp183_, _tmp186_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp187_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp187_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
					_g_free0 (_tmp186_);
				} else {
					GVariant* range = NULL;
					gboolean _tmp188_ = FALSE;
					gboolean _tmp189_ = FALSE;
					GVariant* _tmp193_;
					GVariant* _tmp194_;
					KeyEditorChildNumberInt64* _tmp195_;
					range = NULL;
					if (_data26_->has_schema) {
						_tmp189_ = range_type_is_range;
					} else {
						_tmp189_ = FALSE;
					}
					if (_tmp189_) {
						RegistryVariantDict* _tmp190_;
						GVariant* _tmp191_ = NULL;
						gboolean _tmp192_;
						_tmp190_ = properties;
						_tmp192_ = registry_variant_dict_lookup (_tmp190_, (guint16) PROPERTY_QUERY_RANGE_CONTENT, "v", &_tmp191_, NULL);
						_g_variant_unref0 (range);
						range = _tmp191_;
						_tmp188_ = !_tmp192_;
					} else {
						_tmp188_ = FALSE;
					}
					if (_tmp188_) {
						g_assert_not_reached ();
					}
					_tmp193_ = initial_value;
					_tmp194_ = range;
					_tmp195_ = key_editor_child_number_int64_new (_tmp193_, _tmp194_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp195_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp195_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
					_g_variant_unref0 (range);
				}
				break;
			}
		}
	} else if (_tmp140_ == ((0 != _tmp139_label9) ? _tmp139_label9 : (_tmp139_label9 = g_quark_from_static_string ("mb")))) {
		switch (0) {
			default:
			{
				GVariant* _tmp196_;
				const gchar* _tmp197_;
				ModificationsHandler* _tmp198_;
				KeyEditorChild* _tmp199_;
				_tmp196_ = initial_value;
				_tmp197_ = self->priv->_full_name;
				_tmp198_ = self->priv->_modifications_handler;
				_tmp199_ = registry_info_create_child_mb (_tmp196_, _tmp197_, _data26_->has_schema, _tmp198_);
				_g_object_unref0 (_data26_->key_editor_child);
				_data26_->key_editor_child = _tmp199_;
				break;
			}
		}
	} else if (_tmp140_ == ((0 != _tmp139_label10) ? _tmp139_label10 : (_tmp139_label10 = g_quark_from_static_string ("<enum>")))) {
		switch (0) {
			default:
			{
				GVariant* range_content = NULL;
				RegistryVariantDict* _tmp200_;
				GVariant* _tmp201_ = NULL;
				gboolean _tmp202_;
				GVariant* _tmp203_;
				GVariant* _tmp204_;
				const gchar* _tmp205_;
				ModificationsHandler* _tmp206_;
				KeyEditorChild* _tmp207_;
				_tmp200_ = properties;
				_tmp202_ = registry_variant_dict_lookup (_tmp200_, (guint16) PROPERTY_QUERY_RANGE_CONTENT, "v", &_tmp201_, NULL);
				_g_variant_unref0 (range_content);
				range_content = _tmp201_;
				if (!_tmp202_) {
					g_assert_not_reached ();
				}
				_tmp203_ = range_content;
				_tmp204_ = initial_value;
				_tmp205_ = self->priv->_full_name;
				_tmp206_ = self->priv->_modifications_handler;
				_tmp207_ = registry_info_create_child_enum (_tmp203_, _tmp204_, _tmp205_, _tmp206_);
				_g_object_unref0 (_data26_->key_editor_child);
				_data26_->key_editor_child = _tmp207_;
				_g_variant_unref0 (range_content);
				break;
			}
		}
	} else if (_tmp140_ == ((0 != _tmp139_label11) ? _tmp139_label11 : (_tmp139_label11 = g_quark_from_static_string ("<flags>")))) {
		switch (0) {
			default:
			{
				GVariant* range_content = NULL;
				RegistryVariantDict* _tmp208_;
				GVariant* _tmp209_ = NULL;
				gboolean _tmp210_;
				const gchar* _tmp211_;
				guint16 _tmp212_;
				GVariant* _tmp213_;
				GVariant* _tmp214_;
				ModificationsHandler* _tmp215_;
				KeyEditorChild* _tmp216_;
				_tmp208_ = properties;
				_tmp210_ = registry_variant_dict_lookup (_tmp208_, (guint16) PROPERTY_QUERY_RANGE_CONTENT, "v", &_tmp209_, NULL);
				_g_variant_unref0 (range_content);
				range_content = _tmp209_;
				if (!_tmp210_) {
					g_assert_not_reached ();
				}
				_tmp211_ = self->priv->_full_name;
				_tmp212_ = self->priv->_context_id;
				_tmp213_ = range_content;
				_tmp214_ = initial_value;
				_tmp215_ = self->priv->_modifications_handler;
				_tmp216_ = registry_info_create_child_flags (_tmp211_, _tmp212_, _tmp213_, _tmp214_, _tmp215_);
				_g_object_unref0 (_data26_->key_editor_child);
				_data26_->key_editor_child = _tmp216_;
				_g_variant_unref0 (range_content);
				break;
			}
		}
	} else if (_tmp140_ == ((0 != _tmp139_label12) ? _tmp139_label12 : (_tmp139_label12 = g_quark_from_static_string ("h")))) {
		switch (0) {
			default:
			{
				GVariant* _tmp217_;
				const gchar* _tmp218_;
				KeyEditorChildNumberInt* _tmp219_;
				_tmp217_ = initial_value;
				_tmp218_ = _data26_->type_code;
				_tmp219_ = key_editor_child_number_int_new (_tmp217_, _tmp218_, NULL);
				g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp219_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
				_g_object_unref0 (_data26_->key_editor_child);
				_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp219_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
				break;
			}
		}
	} else if (_tmp140_ == ((0 != _tmp139_label13) ? _tmp139_label13 : (_tmp139_label13 = g_quark_from_static_string ("()")))) {
		switch (0) {
			default:
			{
				GVariant* _tmp220_;
				GVariant* _tmp221_;
				KeyEditorChildSingle* _tmp222_;
				_tmp220_ = g_variant_new ("()", "()", NULL);
				g_variant_ref_sink (_tmp220_);
				_tmp221_ = _tmp220_;
				_tmp222_ = key_editor_child_single_new (_tmp221_, "()");
				g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp222_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
				_g_object_unref0 (_data26_->key_editor_child);
				_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp222_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
				_g_variant_unref0 (_tmp221_);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				const gchar* _tmp223_;
				_tmp223_ = _data26_->type_code;
				if (string_contains (_tmp223_, "a")) {
					const gchar* _tmp224_;
					GVariant* _tmp225_;
					KeyEditorChildArray* _tmp226_;
					_tmp224_ = _data26_->type_code;
					_tmp225_ = initial_value;
					_tmp226_ = key_editor_child_array_new (_tmp224_, _tmp225_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp226_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp226_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
				} else {
					const gchar* _tmp227_;
					GVariant* _tmp228_;
					KeyEditorChildDefault* _tmp229_;
					_tmp227_ = _data26_->type_code;
					_tmp228_ = initial_value;
					_tmp229_ = key_editor_child_default_new (_tmp227_, _tmp228_);
					g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp229_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
					_g_object_unref0 (_data26_->key_editor_child);
					_data26_->key_editor_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp229_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
				}
				break;
			}
		}
	}
	_tmp230_ = _data26_->key_editor_child;
	is_key_editor_child_single = IS_KEY_EDITOR_CHILD_SINGLE (_tmp230_);
	if (is_key_editor_child_single) {
		GtkLabel* _tmp231_;
		const gchar* _tmp232_;
		GtkLabel* _tmp233_;
		const gchar* _tmp234_;
		gboolean _tmp235_ = FALSE;
		const gchar* _tmp236_;
		GtkLabel* _tmp238_;
		_tmp231_ = self->priv->one_choice_enum_warning;
		_tmp232_ = _data26_->type_code;
		gtk_widget_set_visible ((GtkWidget*) _tmp231_, g_strcmp0 (_tmp232_, "<enum>") == 0);
		_tmp233_ = self->priv->one_choice_tuple_warning;
		_tmp234_ = _data26_->type_code;
		gtk_widget_set_visible ((GtkWidget*) _tmp233_, g_strcmp0 (_tmp234_, "()") == 0);
		_tmp236_ = _data26_->type_code;
		if (g_strcmp0 (_tmp236_, "<enum>") != 0) {
			const gchar* _tmp237_;
			_tmp237_ = _data26_->type_code;
			_tmp235_ = g_strcmp0 (_tmp237_, "()") != 0;
		} else {
			_tmp235_ = FALSE;
		}
		_tmp238_ = self->priv->one_choice_integer_warning;
		gtk_widget_set_visible ((GtkWidget*) _tmp238_, _tmp235_);
	}
	_tmp239_ = self->priv->one_choice_warning_revealer;
	gtk_revealer_set_reveal_child (_tmp239_, is_key_editor_child_single);
	_tmp240_ = properties;
	registry_variant_dict_clear (_tmp240_);
	if (key_conflict == KEY_CONFLICT_HARD) {
		_g_variant_unref0 (initial_value);
		_g_free0 (tmp);
		_g_free0 (tmp_string);
		_g_object_unref0 (properties);
		block26_data_unref (_data26_);
		_data26_ = NULL;
		return;
	}
	_tmp241_ = _data26_->key_editor_child;
	_tmp242_ = g_signal_connect_data (_tmp241_, "value-has-changed", (GCallback) ___lambda75__key_editor_child_value_has_changed, block26_data_ref (_data26_), (GClosureNotify) block26_data_unref, 0);
	_data26_->value_has_changed_handler = _tmp242_;
	if (_data26_->has_schema) {
		Block27Data* _data27_;
		GtkSwitch* _tmp243_;
		GtkSwitch* _tmp244_;
		GtkSwitch* _tmp245_;
		GtkSwitch* _tmp246_;
		GtkSwitch* _tmp247_;
		GtkSwitch* _tmp248_;
		GtkSwitch* _tmp249_;
		KeyEditorChild* _tmp250_;
		gboolean planned_change = FALSE;
		ModificationsHandler* _tmp251_;
		const gchar* _tmp252_;
		GVariant* planned_value = NULL;
		ModificationsHandler* _tmp253_;
		const gchar* _tmp254_;
		GVariant* _tmp255_;
		gboolean _tmp256_ = FALSE;
		gboolean key_value_is_default = FALSE;
		GtkSwitch* _tmp258_;
		GtkSwitch* _tmp259_;
		gulong _tmp260_;
		ModificationsHandler* _tmp261_;
		gulong _tmp262_;
		GtkSwitch* _tmp263_;
		_data27_ = g_slice_new0 (Block27Data);
		_data27_->_ref_count_ = 1;
		_data27_->_data26_ = block26_data_ref (_data26_);
		_tmp243_ = (GtkSwitch*) gtk_switch_new ();
		g_object_ref_sink (_tmp243_);
		_data27_->custom_value_switch = _tmp243_;
		_tmp244_ = _data27_->custom_value_switch;
		gtk_widget_set_can_focus ((GtkWidget*) _tmp244_, FALSE);
		_tmp245_ = _data27_->custom_value_switch;
		gtk_widget_set_halign ((GtkWidget*) _tmp245_, GTK_ALIGN_START);
		_tmp246_ = _data27_->custom_value_switch;
		gtk_widget_set_hexpand ((GtkWidget*) _tmp246_, TRUE);
		_tmp247_ = _data27_->custom_value_switch;
		gtk_widget_show ((GtkWidget*) _tmp247_);
		_tmp248_ = _data27_->custom_value_switch;
		registry_info_add_switch_row (self, REGISTRY_INFO_USE_DEFAULT_FIELD_DESCRIPTION, _tmp248_);
		_tmp249_ = _data27_->custom_value_switch;
		_tmp250_ = _data26_->key_editor_child;
		g_object_bind_property_with_closures ((GObject*) _tmp249_, "active", (GObject*) _tmp250_, "sensitive", G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
		_tmp251_ = self->priv->_modifications_handler;
		_tmp252_ = self->priv->_full_name;
		planned_change = modifications_handler_key_has_planned_change (_tmp251_, _tmp252_);
		_tmp253_ = self->priv->_modifications_handler;
		_tmp254_ = self->priv->_full_name;
		_tmp255_ = modifications_handler_get_key_planned_value (_tmp253_, _tmp254_);
		planned_value = _tmp255_;
		if (planned_change) {
			GVariant* _tmp257_;
			_tmp257_ = planned_value;
			_tmp256_ = _tmp257_ == NULL;
		} else {
			_tmp256_ = has_schema_and_is_default;
		}
		key_value_is_default = _tmp256_;
		_tmp258_ = _data27_->custom_value_switch;
		gtk_switch_set_active (_tmp258_, key_value_is_default);
		_tmp259_ = _data27_->custom_value_switch;
		_tmp260_ = g_signal_connect_data ((GObject*) _tmp259_, "notify::active", (GCallback) ____lambda78__g_object_notify, block27_data_ref (_data27_), (GClosureNotify) block27_data_unref, 0);
		_data27_->switch_active_handler = _tmp260_;
		_tmp261_ = self->priv->_modifications_handler;
		_tmp262_ = g_signal_connect_data (_tmp261_, "leave-delay-mode", (GCallback) ____lambda79__modifications_handler_leave_delay_mode, block27_data_ref (_data27_), (GClosureNotify) block27_data_unref, 0);
		self->priv->revealer_reload_1_handler = _tmp262_;
		_tmp263_ = _data27_->custom_value_switch;
		g_signal_connect_data ((GtkWidget*) _tmp263_, "destroy", (GCallback) ____lambda80__gtk_widget_destroy, block27_data_ref (_data27_), (GClosureNotify) block27_data_unref, 0);
		_g_variant_unref0 (planned_value);
		block27_data_unref (_data27_);
		_data27_ = NULL;
	} else {
		GtkButton* _tmp264_;
		const gchar* _tmp265_;
		_tmp264_ = self->priv->erase_button;
		_tmp265_ = self->priv->_full_name;
		gtk_actionable_set_action_target ((GtkActionable*) _tmp264_, "s", _tmp265_, NULL);
	}
	_tmp266_ = _data26_->key_editor_child;
	_tmp267_ = g_signal_connect_object (_tmp266_, "child-activated", (GCallback) ___lambda81__key_editor_child_child_activated, self, 0);
	_data26_->child_activated_handler = _tmp267_;
	_tmp268_ = self->priv->_modifications_handler;
	_tmp269_ = g_signal_connect_data (_tmp268_, "leave-delay-mode", (GCallback) ___lambda82__modifications_handler_leave_delay_mode, block26_data_ref (_data26_), (GClosureNotify) block26_data_unref, 0);
	self->priv->revealer_reload_2_handler = _tmp269_;
	_tmp270_ = _data26_->key_editor_child;
	_tmp271_ = _data26_->type_code;
	registry_info_add_row_from_widget (self, REGISTRY_INFO_CUSTOM_VALUE_FIELD_DESCRIPTION, (GtkWidget*) _tmp270_, _tmp271_, minimum_is_maximum);
	_tmp272_ = _data26_->key_editor_child;
	g_signal_connect_data ((GtkWidget*) _tmp272_, "destroy", (GCallback) ___lambda83__gtk_widget_destroy, block26_data_ref (_data26_), (GClosureNotify) block26_data_unref, 0);
	_g_variant_unref0 (initial_value);
	_g_free0 (tmp);
	_g_free0 (tmp_string);
	_g_object_unref0 (properties);
	block26_data_unref (_data26_);
	_data26_ = NULL;
}

static KeyEditorChild*
registry_info_create_child_mb (GVariant* initial_value,
                               const gchar* full_name,
                               gboolean has_schema,
                               ModificationsHandler* modifications_handler)
{
	gboolean delay_mode = FALSE;
	gboolean has_planned_change = FALSE;
	KeyEditorChildNullableBool* _tmp0_;
	KeyEditorChild* result;
	g_return_val_if_fail (initial_value != NULL, NULL);
	g_return_val_if_fail (full_name != NULL, NULL);
	g_return_val_if_fail (modifications_handler != NULL, NULL);
	delay_mode = modifications_handler_get_current_delay_mode (modifications_handler);
	has_planned_change = modifications_handler_key_has_planned_change (modifications_handler, full_name);
	_tmp0_ = key_editor_child_nullable_bool_new (initial_value, delay_mode, has_planned_change, has_schema);
	g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
	return result;
}

static KeyEditorChild*
registry_info_create_child_enum (GVariant* range_content,
                                 GVariant* initial_value,
                                 const gchar* full_name,
                                 ModificationsHandler* modifications_handler)
{
	KeyEditorChild* result;
	g_return_val_if_fail (range_content != NULL, NULL);
	g_return_val_if_fail (initial_value != NULL, NULL);
	g_return_val_if_fail (full_name != NULL, NULL);
	g_return_val_if_fail (modifications_handler != NULL, NULL);
	switch (g_variant_n_children (range_content)) {
		case 0:
		{
			g_assert_not_reached ();
		}
		case 1:
		{
			const gchar* _tmp0_;
			KeyEditorChildSingle* _tmp1_;
			_tmp0_ = g_variant_get_string (initial_value, NULL);
			_tmp1_ = key_editor_child_single_new (initial_value, _tmp0_);
			g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
			result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
			return result;
		}
		default:
		{
			gboolean delay_mode = FALSE;
			gboolean has_planned_change = FALSE;
			KeyEditorChildEnum* _tmp2_;
			delay_mode = modifications_handler_get_current_delay_mode (modifications_handler);
			has_planned_change = modifications_handler_key_has_planned_change (modifications_handler, full_name);
			_tmp2_ = key_editor_child_enum_new (initial_value, delay_mode, has_planned_change, range_content);
			g_object_ref_sink (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
			result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_KEY_EDITOR_CHILD, KeyEditorChild);
			return result;
		}
	}
}

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

static Block28Data*
block28_data_ref (Block28Data* _data28_)
{
	g_atomic_int_inc (&_data28_->_ref_count_);
	return _data28_;
}

static void
block28_data_unref (void * _userdata_)
{
	Block28Data* _data28_;
	_data28_ = (Block28Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data28_->_ref_count_)) {
		_g_object_unref0 (_data28_->key_editor_child_flags);
		_g_free0 (_data28_->full_name);
		_g_object_unref0 (_data28_->modifications_handler);
		g_slice_free (Block28Data, _data28_);
	}
}

static gchar**
_vala_array_dup10 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static void
__lambda66_ (Block28Data* _data28_)
{
	gchar** active_flags = NULL;
	GVariant* _tmp0_;
	GVariant* _tmp1_;
	gsize _tmp2_ = 0;
	const gchar** _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gint active_flags_length1;
	gint _active_flags_size_;
	_tmp0_ = modifications_handler_get_key_custom_value (_data28_->modifications_handler, _data28_->full_name, _data28_->context_id);
	_tmp1_ = _tmp0_;
	_tmp3_ = g_variant_get_strv (_tmp1_, &_tmp2_);
	_tmp4_ = (_tmp3_ != NULL) ? _vala_array_dup10 (_tmp3_, _tmp2_) : _tmp3_;
	_tmp4__length1 = _tmp2_;
	_tmp3_ = (g_free (_tmp3_), NULL);
	_tmp5_ = _tmp4_;
	_tmp5__length1 = _tmp4__length1;
	_g_variant_unref0 (_tmp1_);
	active_flags = _tmp5_;
	active_flags_length1 = _tmp5__length1;
	_active_flags_size_ = active_flags_length1;
	key_editor_child_flags_update_flags (_data28_->key_editor_child_flags, active_flags, (gint) active_flags_length1);
	active_flags = (_vala_array_free (active_flags, active_flags_length1, (GDestroyNotify) g_free), NULL);
}

static void
___lambda66__modifications_handler_delayed_changes_changed (ModificationsHandler* _sender,
                                                            gpointer self)
{
	__lambda66_ (self);
}

static void
__lambda67_ (Block28Data* _data28_)
{
	g_signal_handler_disconnect ((GObject*) _data28_->modifications_handler, _data28_->delayed_modifications_changed_handler);
}

static void
___lambda67__gtk_widget_destroy (GtkWidget* _sender,
                                 gpointer self)
{
	__lambda67_ (self);
}

static KeyEditorChild*
registry_info_create_child_flags (const gchar* full_name,
                                  guint16 context_id,
                                  GVariant* range_content,
                                  GVariant* initial_value,
                                  ModificationsHandler* modifications_handler)
{
	Block28Data* _data28_;
	gchar* _tmp0_;
	ModificationsHandler* _tmp1_;
	gsize _tmp2_ = 0;
	const gchar** _tmp3_;
	const gchar** _tmp4_;
	gint _tmp4__length1;
	KeyEditorChildFlags* _tmp5_;
	KeyEditorChildFlags* _tmp6_;
	gulong _tmp7_;
	KeyEditorChild* _tmp8_;
	KeyEditorChild* result;
	g_return_val_if_fail (full_name != NULL, NULL);
	g_return_val_if_fail (range_content != NULL, NULL);
	g_return_val_if_fail (initial_value != NULL, NULL);
	g_return_val_if_fail (modifications_handler != NULL, NULL);
	_data28_ = g_slice_new0 (Block28Data);
	_data28_->_ref_count_ = 1;
	_tmp0_ = g_strdup (full_name);
	_g_free0 (_data28_->full_name);
	_data28_->full_name = _tmp0_;
	_data28_->context_id = context_id;
	_tmp1_ = _g_object_ref0 (modifications_handler);
	_g_object_unref0 (_data28_->modifications_handler);
	_data28_->modifications_handler = _tmp1_;
	_tmp3_ = g_variant_get_strv (range_content, &_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp4__length1 = _tmp2_;
	_tmp5_ = key_editor_child_flags_new (initial_value, _tmp4_, _tmp2_);
	g_object_ref_sink (_tmp5_);
	_tmp6_ = _tmp5_;
	_tmp4_ = (g_free (_tmp4_), NULL);
	_data28_->key_editor_child_flags = _tmp6_;
	_tmp7_ = g_signal_connect_data (_data28_->modifications_handler, "delayed-changes-changed", (GCallback) ___lambda66__modifications_handler_delayed_changes_changed, block28_data_ref (_data28_), (GClosureNotify) block28_data_unref, 0);
	_data28_->delayed_modifications_changed_handler = _tmp7_;
	g_signal_connect_data ((GtkWidget*) _data28_->key_editor_child_flags, "destroy", (GCallback) ___lambda67__gtk_widget_destroy, block28_data_ref (_data28_), (GClosureNotify) block28_data_unref, 0);
	_tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_data28_->key_editor_child_flags, TYPE_KEY_EDITOR_CHILD, KeyEditorChild));
	result = _tmp8_;
	block28_data_unref (_data28_);
	_data28_ = NULL;
	return result;
}

static gchar*
registry_info_get_current_value_text (GVariant* key_value)
{
	gchar* _tmp1_;
	gchar* result;
	if (key_value == NULL) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (_ ("Default value"));
		result = _tmp0_;
		return result;
	}
	_tmp1_ = key_cool_text_value_from_variant ((GVariant*) key_value);
	result = _tmp1_;
	return result;
}

static gboolean
registry_info_real_handle_copy_text (BrowsableView* base,
                                     gchar** copy_text)
{
	RegistryInfo * self;
	gchar* _vala_copy_text = NULL;
	gchar* _tmp0_ = NULL;
	gboolean _tmp1_;
	GtkWidget* focused_row = NULL;
	GtkListBox* _tmp2_;
	GtkWidget* _tmp3_;
	GtkWidget* _tmp4_;
	GtkWidget* _tmp5_;
	gboolean result;
	self = (RegistryInfo*) base;
	_tmp1_ = base_window_copy_clipboard_text (&_tmp0_);
	_g_free0 (_vala_copy_text);
	_vala_copy_text = _tmp0_;
	if (_tmp1_) {
		result = TRUE;
		if (copy_text) {
			*copy_text = _vala_copy_text;
		} else {
			_g_free0 (_vala_copy_text);
		}
		return result;
	}
	_tmp2_ = self->priv->properties_list_box;
	_tmp3_ = gtk_container_get_focus_child ((GtkContainer*) _tmp2_);
	_tmp4_ = _g_object_ref0 (_tmp3_);
	focused_row = _tmp4_;
	_tmp5_ = focused_row;
	if (_tmp5_ == NULL) {
		gchar* _tmp6_ = NULL;
		gboolean _tmp7_;
		_tmp7_ = base_window_no_copy_text (&_tmp6_);
		_g_free0 (_vala_copy_text);
		_vala_copy_text = _tmp6_;
		result = _tmp7_;
		_g_object_unref0 (focused_row);
		if (copy_text) {
			*copy_text = _vala_copy_text;
		} else {
			_g_free0 (_vala_copy_text);
		}
		return result;
	} else {
		GtkWidget* _tmp8_;
		_tmp8_ = focused_row;
		if (IS_PROPERTY_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget))) {
			GtkWidget* _tmp9_;
			gchar* _tmp10_ = NULL;
			gboolean _tmp11_;
			_tmp9_ = focused_row;
			_tmp11_ = property_row_handle_copy_text (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), TYPE_PROPERTY_ROW, PropertyRow), &_tmp10_);
			_g_free0 (_vala_copy_text);
			_vala_copy_text = _tmp10_;
			result = _tmp11_;
			_g_object_unref0 (focused_row);
			if (copy_text) {
				*copy_text = _vala_copy_text;
			} else {
				_g_free0 (_vala_copy_text);
			}
			return result;
		} else {
			gchar* _tmp12_ = NULL;
			gboolean _tmp13_;
			_tmp13_ = base_window_no_copy_text (&_tmp12_);
			_g_free0 (_vala_copy_text);
			_vala_copy_text = _tmp12_;
			result = _tmp13_;
			_g_object_unref0 (focused_row);
			if (copy_text) {
				*copy_text = _vala_copy_text;
			} else {
				_g_free0 (_vala_copy_text);
			}
			return result;
		}
	}
}

static void
registry_info_on_value_has_changed (ModificationsHandler* _modifications_handler,
                                    KeyEditorChild* key_editor_child,
                                    const gchar* full_name,
                                    guint16 context_id,
                                    gboolean has_schema,
                                    const gchar* type_code,
                                    gboolean is_valid)
{
	g_return_if_fail (_modifications_handler != NULL);
	g_return_if_fail (key_editor_child != NULL);
	g_return_if_fail (full_name != NULL);
	g_return_if_fail (type_code != NULL);
	if (modifications_handler_should_delay_apply (_modifications_handler, type_code)) {
		if (is_valid) {
			GVariant* _tmp0_;
			GVariant* _tmp1_;
			_tmp0_ = key_editor_child_get_variant (key_editor_child);
			_tmp1_ = _tmp0_;
			modifications_handler_add_delayed_setting (_modifications_handler, full_name, _tmp1_, context_id);
			_g_variant_unref0 (_tmp1_);
		} else {
			modifications_handler_dismiss_change (_modifications_handler, full_name);
		}
	} else {
		if (has_schema) {
			SettingsModel* _tmp2_;
			SettingsModel* _tmp3_;
			GVariant* _tmp4_;
			GVariant* _tmp5_;
			_tmp2_ = modifications_handler_get_model (_modifications_handler);
			_tmp3_ = _tmp2_;
			_tmp4_ = key_editor_child_get_variant (key_editor_child);
			_tmp5_ = _tmp4_;
			settings_model_set_gsettings_key_value (_tmp3_, full_name, context_id, _tmp5_);
			_g_variant_unref0 (_tmp5_);
		} else {
			SettingsModel* _tmp6_;
			SettingsModel* _tmp7_;
			GVariant* _tmp8_;
			GVariant* _tmp9_;
			_tmp6_ = modifications_handler_get_model (_modifications_handler);
			_tmp7_ = _tmp6_;
			_tmp8_ = key_editor_child_get_variant (key_editor_child);
			_tmp9_ = _tmp8_;
			settings_model_set_dconf_key_value (_tmp7_, full_name, _tmp9_);
			_g_variant_unref0 (_tmp9_);
		}
	}
}

static void
registry_info_on_custom_value_switch_toggled (ModificationsHandler* _modifications_handler,
                                              GtkSwitch* custom_value_switch,
                                              KeyEditorChild* key_editor_child,
                                              gulong value_has_changed_handler,
                                              const gchar* full_name,
                                              guint16 context_id,
                                              const gchar* type_code)
{
	g_return_if_fail (_modifications_handler != NULL);
	g_return_if_fail (custom_value_switch != NULL);
	g_return_if_fail (key_editor_child != NULL);
	g_return_if_fail (full_name != NULL);
	g_return_if_fail (type_code != NULL);
	if (modifications_handler_should_delay_apply (_modifications_handler, type_code)) {
		if (gtk_switch_get_active (custom_value_switch)) {
			modifications_handler_add_delayed_setting (_modifications_handler, full_name, NULL, context_id);
		} else {
			GVariant* tmp_variant = NULL;
			GVariant* _tmp0_;
			GVariant* _tmp1_;
			GVariant* _tmp2_;
			_tmp0_ = modifications_handler_get_key_custom_value (_modifications_handler, full_name, context_id);
			tmp_variant = _tmp0_;
			_tmp1_ = tmp_variant;
			modifications_handler_add_delayed_setting (_modifications_handler, full_name, _tmp1_, context_id);
			_tmp2_ = tmp_variant;
			key_editor_child_reload (key_editor_child, _tmp2_);
			_g_variant_unref0 (tmp_variant);
		}
	} else {
		SettingsModel* model = NULL;
		SettingsModel* _tmp3_;
		SettingsModel* _tmp4_;
		SettingsModel* _tmp5_;
		RegistryVariantDict* local_properties = NULL;
		SettingsModel* _tmp6_;
		GVariant* _tmp7_;
		GVariant* _tmp8_;
		RegistryVariantDict* _tmp9_;
		RegistryVariantDict* _tmp10_;
		GVariant* key_value = NULL;
		RegistryVariantDict* _tmp11_;
		GVariant* _tmp12_ = NULL;
		gboolean _tmp13_;
		RegistryVariantDict* _tmp14_;
		_tmp3_ = modifications_handler_get_model (_modifications_handler);
		_tmp4_ = _tmp3_;
		_tmp5_ = _g_object_ref0 (_tmp4_);
		model = _tmp5_;
		_tmp6_ = model;
		_tmp7_ = settings_model_get_key_properties (_tmp6_, full_name, context_id, (guint16) PROPERTY_QUERY_KEY_VALUE);
		_tmp8_ = _tmp7_;
		_tmp9_ = registry_variant_dict_new_from_aqv (_tmp8_);
		_tmp10_ = _tmp9_;
		_g_variant_unref0 (_tmp8_);
		local_properties = _tmp10_;
		_tmp11_ = local_properties;
		_tmp13_ = registry_variant_dict_lookup (_tmp11_, (guint16) PROPERTY_QUERY_KEY_VALUE, "v", &_tmp12_, NULL);
		_g_variant_unref0 (key_value);
		key_value = _tmp12_;
		if (!_tmp13_) {
			g_assert_not_reached ();
		}
		_tmp14_ = local_properties;
		registry_variant_dict_clear (_tmp14_);
		if (gtk_switch_get_active (custom_value_switch)) {
			SettingsModel* _tmp15_;
			GVariant* _tmp16_;
			_tmp15_ = model;
			settings_model_set_key_to_default (_tmp15_, full_name, context_id);
			g_signal_handler_block (key_editor_child, value_has_changed_handler);
			_tmp16_ = key_value;
			key_editor_child_reload (key_editor_child, _tmp16_);
			g_signal_handler_unblock (key_editor_child, value_has_changed_handler);
		} else {
			SettingsModel* _tmp17_;
			GVariant* _tmp18_;
			_tmp17_ = model;
			_tmp18_ = key_value;
			settings_model_set_gsettings_key_value (_tmp17_, full_name, context_id, _tmp18_);
		}
		_g_variant_unref0 (key_value);
		_g_object_unref0 (local_properties);
		_g_object_unref0 (model);
	}
}

static void
registry_info_on_revealer_reload_1 (ModificationsHandler* _modifications_handler,
                                    GtkSwitch* custom_value_switch,
                                    gulong switch_active_handler,
                                    const gchar* full_name,
                                    guint16 context_id)
{
	RegistryVariantDict* local_properties = NULL;
	SettingsModel* _tmp0_;
	SettingsModel* _tmp1_;
	GVariant* _tmp2_;
	GVariant* _tmp3_;
	RegistryVariantDict* _tmp4_;
	RegistryVariantDict* _tmp5_;
	gboolean is_key_default = FALSE;
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_;
	g_return_if_fail (_modifications_handler != NULL);
	g_return_if_fail (custom_value_switch != NULL);
	g_return_if_fail (full_name != NULL);
	g_signal_handler_block (custom_value_switch, switch_active_handler);
	_tmp0_ = modifications_handler_get_model (_modifications_handler);
	_tmp1_ = _tmp0_;
	_tmp2_ = settings_model_get_key_properties (_tmp1_, full_name, context_id, (guint16) PROPERTY_QUERY_IS_DEFAULT);
	_tmp3_ = _tmp2_;
	_tmp4_ = registry_variant_dict_new_from_aqv (_tmp3_);
	_tmp5_ = _tmp4_;
	_g_variant_unref0 (_tmp3_);
	local_properties = _tmp5_;
	_tmp7_ = registry_variant_dict_lookup (local_properties, (guint16) PROPERTY_QUERY_IS_DEFAULT, "b", &_tmp6_, NULL);
	is_key_default = _tmp6_;
	if (!_tmp7_) {
		g_assert_not_reached ();
	}
	registry_variant_dict_clear (local_properties);
	gtk_switch_set_active (custom_value_switch, is_key_default);
	g_signal_handler_unblock (custom_value_switch, switch_active_handler);
	_g_object_unref0 (local_properties);
}

static void
registry_info_on_revealer_reload_2 (ModificationsHandler* _modifications_handler,
                                    KeyEditorChild* key_editor_child,
                                    gulong value_has_changed_handler,
                                    const gchar* full_name,
                                    guint16 context_id,
                                    gboolean has_schema)
{
	gboolean _tmp0_ = FALSE;
	RegistryVariantDict* local_properties = NULL;
	SettingsModel* _tmp3_;
	SettingsModel* _tmp4_;
	GVariant* _tmp5_;
	GVariant* _tmp6_;
	RegistryVariantDict* _tmp7_;
	RegistryVariantDict* _tmp8_;
	GVariant* key_value = NULL;
	RegistryVariantDict* _tmp9_;
	GVariant* _tmp10_ = NULL;
	gboolean _tmp11_;
	RegistryVariantDict* _tmp12_;
	GVariant* _tmp13_;
	g_return_if_fail (_modifications_handler != NULL);
	g_return_if_fail (key_editor_child != NULL);
	g_return_if_fail (full_name != NULL);
	if (!has_schema) {
		SettingsModel* _tmp1_;
		SettingsModel* _tmp2_;
		_tmp1_ = modifications_handler_get_model (_modifications_handler);
		_tmp2_ = _tmp1_;
		_tmp0_ = settings_model_is_key_ghost (_tmp2_, full_name);
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		return;
	}
	g_signal_handler_block (key_editor_child, value_has_changed_handler);
	_tmp3_ = modifications_handler_get_model (_modifications_handler);
	_tmp4_ = _tmp3_;
	_tmp5_ = settings_model_get_key_properties (_tmp4_, full_name, context_id, (guint16) PROPERTY_QUERY_KEY_VALUE);
	_tmp6_ = _tmp5_;
	_tmp7_ = registry_variant_dict_new_from_aqv (_tmp6_);
	_tmp8_ = _tmp7_;
	_g_variant_unref0 (_tmp6_);
	local_properties = _tmp8_;
	_tmp9_ = local_properties;
	_tmp11_ = registry_variant_dict_lookup (_tmp9_, (guint16) PROPERTY_QUERY_KEY_VALUE, "v", &_tmp10_, NULL);
	_g_variant_unref0 (key_value);
	key_value = _tmp10_;
	if (!_tmp11_) {
		g_assert_not_reached ();
	}
	_tmp12_ = local_properties;
	registry_variant_dict_clear (_tmp12_);
	_tmp13_ = key_value;
	key_editor_child_reload (key_editor_child, _tmp13_);
	g_signal_handler_unblock (key_editor_child, value_has_changed_handler);
	_g_variant_unref0 (key_value);
	_g_object_unref0 (local_properties);
}

static void
registry_info_add_row_from_label (RegistryInfo* self,
                                  const gchar* property_name,
                                  const gchar* property_value,
                                  gboolean use_italic)
{
	GtkListBox* _tmp0_;
	PropertyRow* _tmp1_;
	PropertyRow* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (property_name != NULL);
	g_return_if_fail (property_value != NULL);
	_tmp0_ = self->priv->properties_list_box;
	_tmp1_ = property_row_new_from_label (property_name, property_value, use_italic);
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	gtk_container_add ((GtkContainer*) _tmp0_, (GtkWidget*) _tmp2_);
	_g_object_unref0 (_tmp2_);
}

static Block29Data*
block29_data_ref (Block29Data* _data29_)
{
	g_atomic_int_inc (&_data29_->_ref_count_);
	return _data29_;
}

static void
block29_data_unref (void * _userdata_)
{
	Block29Data* _data29_;
	_data29_ = (Block29Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data29_->_ref_count_)) {
		RegistryInfo* self;
		self = _data29_->self;
		_g_object_unref0 (_data29_->row);
		_g_object_unref0 (_data29_->custom_value_switch);
		_g_object_unref0 (self);
		g_slice_free (Block29Data, _data29_);
	}
}

static void
__lambda76_ (Block29Data* _data29_)
{
	RegistryInfo* self;
	self = _data29_->self;
	gtk_switch_set_active (_data29_->custom_value_switch, !gtk_switch_get_active (_data29_->custom_value_switch));
}

static void
___lambda76__gtk_list_box_row_activate (GtkListBoxRow* _sender,
                                        gpointer self)
{
	__lambda76_ (self);
}

static void
__lambda77_ (Block29Data* _data29_)
{
	RegistryInfo* self;
	self = _data29_->self;
	g_signal_handler_disconnect ((GObject*) _data29_->row, _data29_->default_value_row_activate_handler);
}

static void
___lambda77__gtk_widget_destroy (GtkWidget* _sender,
                                 gpointer self)
{
	__lambda77_ (self);
}

static void
registry_info_add_switch_row (RegistryInfo* self,
                              const gchar* property_name,
                              GtkSwitch* custom_value_switch)
{
	Block29Data* _data29_;
	GtkSwitch* _tmp0_;
	PropertyRow* _tmp1_;
	gulong _tmp2_;
	GtkListBox* _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (property_name != NULL);
	g_return_if_fail (custom_value_switch != NULL);
	_data29_ = g_slice_new0 (Block29Data);
	_data29_->_ref_count_ = 1;
	_data29_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (custom_value_switch);
	_g_object_unref0 (_data29_->custom_value_switch);
	_data29_->custom_value_switch = _tmp0_;
	_tmp1_ = property_row_new_from_widgets (property_name, (GtkWidget*) _data29_->custom_value_switch, NULL);
	g_object_ref_sink (_tmp1_);
	_data29_->row = _tmp1_;
	_tmp2_ = g_signal_connect_data ((GtkListBoxRow*) _data29_->row, "activate", (GCallback) ___lambda76__gtk_list_box_row_activate, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
	_data29_->default_value_row_activate_handler = _tmp2_;
	g_signal_connect_data ((GtkWidget*) _data29_->row, "destroy", (GCallback) ___lambda77__gtk_widget_destroy, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
	_tmp3_ = self->priv->properties_list_box;
	gtk_container_add ((GtkContainer*) _tmp3_, (GtkWidget*) _data29_->row);
	block29_data_unref (_data29_);
	_data29_ = NULL;
}

static void
registry_info_add_row_from_widget (RegistryInfo* self,
                                   const gchar* property_name,
                                   GtkWidget* widget,
                                   const gchar* type,
                                   gboolean minimum_is_maximum)
{
	GtkWidget* _tmp0_ = NULL;
	PropertyRow* row = NULL;
	PropertyRow* _tmp2_;
	GtkListBox* _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (property_name != NULL);
	g_return_if_fail (widget != NULL);
	if (type != NULL) {
		GtkWidget* _tmp1_;
		_tmp1_ = registry_info_add_warning ((const gchar*) type, minimum_is_maximum);
		_g_object_unref0 (_tmp0_);
		_tmp0_ = _tmp1_;
	} else {
		_g_object_unref0 (_tmp0_);
		_tmp0_ = NULL;
	}
	_tmp2_ = property_row_new_from_widgets (property_name, widget, _tmp0_);
	g_object_ref_sink (_tmp2_);
	row = _tmp2_;
	g_object_bind_property_with_closures ((GObject*) widget, "sensitive", (GObject*) row, "sensitive", G_BINDING_SYNC_CREATE, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
	_tmp3_ = self->priv->properties_list_box;
	gtk_container_add ((GtkContainer*) _tmp3_, (GtkWidget*) row);
	_g_object_unref0 (row);
	_g_object_unref0 (_tmp0_);
}

static void
registry_info_add_separator (RegistryInfo* self)
{
	GtkSeparator* separator = NULL;
	GtkSeparator* _tmp0_;
	ListBoxRowWrapper* row = NULL;
	ListBoxRowWrapper* _tmp1_;
	GtkListBox* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (GtkSeparator*) gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
	g_object_ref_sink (_tmp0_);
	separator = _tmp0_;
	gtk_widget_set_halign ((GtkWidget*) separator, GTK_ALIGN_FILL);
	gtk_widget_set_margin_bottom ((GtkWidget*) separator, 5);
	gtk_widget_set_margin_top ((GtkWidget*) separator, 5);
	gtk_widget_show ((GtkWidget*) separator);
	_tmp1_ = list_box_row_wrapper_new ();
	g_object_ref_sink (_tmp1_);
	row = _tmp1_;
	gtk_widget_set_halign ((GtkWidget*) row, GTK_ALIGN_CENTER);
	gtk_container_add ((GtkContainer*) row, (GtkWidget*) separator);
	gtk_widget_set_sensitive ((GtkWidget*) row, FALSE);
	gtk_widget_show ((GtkWidget*) row);
	_tmp2_ = self->priv->properties_list_box;
	gtk_container_add ((GtkContainer*) _tmp2_, (GtkWidget*) row);
	_g_object_unref0 (row);
	_g_object_unref0 (separator);
}

static GtkWidget*
registry_info_add_warning (const gchar* type,
                           gboolean minimum_is_maximum)
{
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	GtkWidget* result;
	g_return_val_if_fail (type != NULL, NULL);
	if (g_strcmp0 (type, "d") == 0) {
		GtkWidget* _tmp0_;
		if (minimum_is_maximum) {
			result = NULL;
			return result;
		}
		_tmp0_ = registry_info_warning_label (_ ("Use a dot as decimal mark and no thousands separator. You can use the " \
"X.Ye+Z notation."));
		result = _tmp0_;
		return result;
	}
	if (string_contains (type, "v")) {
		GtkWidget* _tmp1_;
		_tmp1_ = registry_info_warning_label (_ ("Variants content should be surrounded by XML brackets (‘<’ and ‘>’). S" \
"ee https://developer.gnome.org/glib/stable/gvariant-text.html for comp" \
"lete documentation."));
		result = _tmp1_;
		return result;
	}
	if (g_strcmp0 (type, "<flags>") != 0) {
		gboolean _tmp4_ = FALSE;
		gboolean _tmp5_ = FALSE;
		if (g_strcmp0 (type, "s") != 0) {
			_tmp5_ = string_contains (type, "s");
		} else {
			_tmp5_ = FALSE;
		}
		if (_tmp5_) {
			_tmp4_ = TRUE;
		} else {
			gboolean _tmp6_ = FALSE;
			if (g_strcmp0 (type, "g") != 0) {
				_tmp6_ = string_contains (type, "g");
			} else {
				_tmp6_ = FALSE;
			}
			_tmp4_ = _tmp6_;
		}
		_tmp3_ = _tmp4_;
	} else {
		_tmp3_ = FALSE;
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		gboolean _tmp7_ = FALSE;
		if (g_strcmp0 (type, "o") != 0) {
			_tmp7_ = string_contains (type, "o");
		} else {
			_tmp7_ = FALSE;
		}
		_tmp2_ = _tmp7_;
	}
	if (_tmp2_) {
		if (string_contains (type, "m")) {
			GtkWidget* _tmp8_;
			_tmp8_ = registry_info_warning_label (_ ("Use the keyword “nothing” to set a maybe type (beginning with “m”) to " \
"its empty value. Strings, signatures and object paths should be surrou" \
"nded by quotation marks."));
			result = _tmp8_;
			return result;
		} else {
			GtkWidget* _tmp9_;
			_tmp9_ = registry_info_warning_label (_ ("Strings, signatures and object paths should be surrounded by quotation" \
" marks."));
			result = _tmp9_;
			return result;
		}
	} else {
		gboolean _tmp10_ = FALSE;
		gboolean _tmp11_ = FALSE;
		if (g_strcmp0 (type, "mb") != 0) {
			_tmp11_ = g_strcmp0 (type, "<enum>") != 0;
		} else {
			_tmp11_ = FALSE;
		}
		if (_tmp11_) {
			_tmp10_ = string_contains (type, "m");
		} else {
			_tmp10_ = FALSE;
		}
		if (_tmp10_) {
			GtkWidget* _tmp12_;
			_tmp12_ = registry_info_warning_label (_ ("Use the keyword “nothing” to set a maybe type (beginning with “m”) to " \
"its empty value."));
			result = _tmp12_;
			return result;
		}
	}
	result = NULL;
	return result;
}

static GtkWidget*
registry_info_warning_label (const gchar* text)
{
	GtkLabel* label = NULL;
	GtkLabel* _tmp0_;
	GtkStyleContext* context = NULL;
	GtkStyleContext* _tmp1_;
	GtkStyleContext* _tmp2_;
	GtkWidget* _tmp3_;
	GtkWidget* result;
	g_return_val_if_fail (text != NULL, NULL);
	_tmp0_ = (GtkLabel*) gtk_label_new (text);
	g_object_ref_sink (_tmp0_);
	label = _tmp0_;
	g_object_set (label, "wrap", TRUE, NULL);
	_tmp1_ = gtk_widget_get_style_context ((GtkWidget*) label);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	context = _tmp2_;
	gtk_style_context_add_class (context, "italic-label");
	gtk_style_context_add_class (context, "greyed-label");
	gtk_style_context_add_class (context, "warning-label");
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (label, gtk_widget_get_type (), GtkWidget));
	result = _tmp3_;
	_g_object_unref0 (context);
	_g_object_unref0 (label);
	return result;
}

gboolean
registry_info_check_reload (RegistryInfo* self,
                            guint properties_hash)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	if (self->priv->current_key_info_hash == ((guint) 0)) {
		result = TRUE;
		return result;
	}
	result = self->priv->current_key_info_hash == properties_hash;
	return result;
}

void
registry_info_gkey_value_push (RegistryInfo* self,
                               GVariant* key_value,
                               gboolean is_key_default)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (key_value != NULL);
	if (is_key_default) {
		GtkLabel* _tmp0_;
		gchar* _tmp1_;
		gchar* _tmp2_;
		_tmp0_ = self->priv->current_value_label;
		_tmp1_ = registry_info_get_current_value_text (NULL);
		_tmp2_ = _tmp1_;
		gtk_label_set_text (_tmp0_, _tmp2_);
		_g_free0 (_tmp2_);
	} else {
		GtkLabel* _tmp3_;
		gchar* _tmp4_;
		gchar* _tmp5_;
		_tmp3_ = self->priv->current_value_label;
		_tmp4_ = registry_info_get_current_value_text (key_value);
		_tmp5_ = _tmp4_;
		gtk_label_set_text (_tmp3_, _tmp5_);
		_g_free0 (_tmp5_);
	}
}

void
registry_info_dkey_value_push (RegistryInfo* self,
                               GVariant* key_value_or_null)
{
	g_return_if_fail (self != NULL);
	if (key_value_or_null == NULL) {
		GtkLabel* _tmp0_;
		GtkStyleContext* _tmp1_;
		GtkLabel* _tmp2_;
		_tmp0_ = self->priv->current_value_label;
		_tmp1_ = gtk_widget_get_style_context ((GtkWidget*) _tmp0_);
		gtk_style_context_add_class (_tmp1_, "italic-label");
		_tmp2_ = self->priv->current_value_label;
		gtk_label_set_text (_tmp2_, _ ("Key erased."));
	} else {
		GtkLabel* _tmp3_;
		GtkStyleContext* _tmp4_;
		GtkLabel* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		_tmp3_ = self->priv->current_value_label;
		_tmp4_ = gtk_widget_get_style_context ((GtkWidget*) _tmp3_);
		gtk_style_context_remove_class (_tmp4_, "italic-label");
		_tmp5_ = self->priv->current_value_label;
		_tmp6_ = registry_info_get_current_value_text (key_value_or_null);
		_tmp7_ = _tmp6_;
		gtk_label_set_text (_tmp5_, _tmp7_);
		_g_free0 (_tmp7_);
	}
}

RegistryInfo*
registry_info_construct (GType object_type)
{
	RegistryInfo * self = NULL;
	self = (RegistryInfo*) g_object_new (object_type, NULL);
	return self;
}

RegistryInfo*
registry_info_new (void)
{
	return registry_info_construct (TYPE_REGISTRY_INFO);
}

static ModificationsHandler*
registry_info_get_modifications_handler (RegistryInfo* self)
{
	ModificationsHandler* result;
	ModificationsHandler* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_modifications_handler;
	result = _tmp0_;
	return result;
}

void
registry_info_set_modifications_handler (RegistryInfo* self,
                                         ModificationsHandler* value)
{
	ModificationsHandler* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_modifications_handler);
	self->priv->_modifications_handler = _tmp0_;
}

const gchar*
registry_info_get_full_name (RegistryInfo* 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
registry_info_set_full_name (RegistryInfo* 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
registry_info_get_context_id (RegistryInfo* self)
{
	guint16 result;
	g_return_val_if_fail (self != NULL, 0U);
	result = self->priv->_context_id;
	return result;
}

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

static void
registry_info_class_init (RegistryInfoClass * klass,
                          gpointer klass_data)
{
	registry_info_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &RegistryInfo_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_registry_info_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_registry_info_set_property;
	G_OBJECT_CLASS (klass)->finalize = registry_info_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), REGISTRY_INFO_MODIFICATIONS_HANDLER_PROPERTY, registry_info_properties[REGISTRY_INFO_MODIFICATIONS_HANDLER_PROPERTY] = g_param_spec_object ("modifications-handler", "modifications-handler", "modifications-handler", TYPE_MODIFICATIONS_HANDLER, G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), REGISTRY_INFO_FULL_NAME_PROPERTY, registry_info_properties[REGISTRY_INFO_FULL_NAME_PROPERTY] = g_param_spec_string ("full-name", "full-name", "full-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), REGISTRY_INFO_CONTEXT_ID_PROPERTY, registry_info_properties[REGISTRY_INFO_CONTEXT_ID_PROPERTY] = g_param_spec_uint ("context-id", "context-id", "context-id", 0, G_MAXUINT, MODEL_UTILS_undefined_context_id, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/ca/desrt/dconf-editor/ui/registry-info.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "conflicting_key_warning_revealer", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, conflicting_key_warning_revealer));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "hard_conflicting_key_error_revealer", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, hard_conflicting_key_error_revealer));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "no_schema_warning", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, no_schema_warning));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "one_choice_warning_revealer", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, one_choice_warning_revealer));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "one_choice_enum_warning", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, one_choice_enum_warning));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "one_choice_integer_warning", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, one_choice_integer_warning));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "one_choice_tuple_warning", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, one_choice_tuple_warning));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "properties_list_box", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, properties_list_box));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "erase_button", FALSE, RegistryInfo_private_offset + G_STRUCT_OFFSET (RegistryInfoPrivate, erase_button));
}

static void
registry_info_browsable_view_interface_init (BrowsableViewIface * iface,
                                             gpointer iface_data)
{
	registry_info_browsable_view_parent_iface = g_type_interface_peek_parent (iface);
	iface->handle_copy_text = (gboolean (*) (BrowsableView*, gchar**)) registry_info_real_handle_copy_text;
}

static void
registry_info_instance_init (RegistryInfo * self,
                             gpointer klass)
{
	gchar* _tmp0_;
	self->priv = registry_info_get_instance_private (self);
	self->priv->current_key_info_hash = (guint) 0;
	self->priv->revealer_reload_1_handler = (gulong) 0;
	self->priv->revealer_reload_2_handler = (gulong) 0;
	_tmp0_ = g_strdup ("");
	self->priv->_full_name = _tmp0_;
	self->priv->_context_id = MODEL_UTILS_undefined_context_id;
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
registry_info_finalize (GObject * obj)
{
	RegistryInfo * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_REGISTRY_INFO, RegistryInfo);
	_g_object_unref0 (self->priv->current_value_label);
	_g_object_unref0 (self->priv->_modifications_handler);
	_g_free0 (self->priv->_full_name);
	G_OBJECT_CLASS (registry_info_parent_class)->finalize (obj);
}

static GType
registry_info_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (RegistryInfoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) registry_info_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RegistryInfo), 0, (GInstanceInitFunc) registry_info_instance_init, NULL };
	static const GInterfaceInfo browsable_view_info = { (GInterfaceInitFunc) registry_info_browsable_view_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType registry_info_type_id;
	registry_info_type_id = g_type_register_static (gtk_grid_get_type (), "RegistryInfo", &g_define_type_info, 0);
	g_type_add_interface_static (registry_info_type_id, TYPE_BROWSABLE_VIEW, &browsable_view_info);
	RegistryInfo_private_offset = g_type_add_instance_private (registry_info_type_id, sizeof (RegistryInfoPrivate));
	return registry_info_type_id;
}

GType
registry_info_get_type (void)
{
	static volatile gsize registry_info_type_id__once = 0;
	if (g_once_init_enter (&registry_info_type_id__once)) {
		GType registry_info_type_id;
		registry_info_type_id = registry_info_get_type_once ();
		g_once_init_leave (&registry_info_type_id__once, registry_info_type_id);
	}
	return registry_info_type_id__once;
}

static void
_vala_registry_info_get_property (GObject * object,
                                  guint property_id,
                                  GValue * value,
                                  GParamSpec * pspec)
{
	RegistryInfo * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_REGISTRY_INFO, RegistryInfo);
	switch (property_id) {
		case REGISTRY_INFO_MODIFICATIONS_HANDLER_PROPERTY:
		g_value_set_object (value, registry_info_get_modifications_handler (self));
		break;
		case REGISTRY_INFO_FULL_NAME_PROPERTY:
		g_value_set_string (value, registry_info_get_full_name (self));
		break;
		case REGISTRY_INFO_CONTEXT_ID_PROPERTY:
		g_value_set_uint (value, registry_info_get_context_id (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_registry_info_set_property (GObject * object,
                                  guint property_id,
                                  const GValue * value,
                                  GParamSpec * pspec)
{
	RegistryInfo * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_REGISTRY_INFO, RegistryInfo);
	switch (property_id) {
		case REGISTRY_INFO_MODIFICATIONS_HANDLER_PROPERTY:
		registry_info_set_modifications_handler (self, g_value_get_object (value));
		break;
		case REGISTRY_INFO_FULL_NAME_PROPERTY:
		registry_info_set_full_name (self, g_value_get_string (value));
		break;
		case REGISTRY_INFO_CONTEXT_ID_PROPERTY:
		registry_info_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
property_row_get_instance_private (PropertyRow* self)
{
	return G_STRUCT_MEMBER_P (self, PropertyRow_private_offset);
}

PropertyRow*
property_row_construct_from_label (GType object_type,
                                   const gchar* property_name,
                                   const gchar* property_value,
                                   gboolean use_italic)
{
	PropertyRow * self = NULL;
	GtkLabel* _tmp0_;
	GtkLabel* value_label = NULL;
	GtkLabel* _tmp1_;
	GtkLabel* _tmp2_;
	GtkWidget* _tmp3_;
	GtkLabel* _tmp4_;
	GtkLabel* _tmp5_;
	GtkLabel* _tmp6_;
	GtkLabel* _tmp7_;
	GtkLabel* _tmp8_;
	GtkLabel* _tmp9_;
	GtkLabel* _tmp10_;
	GtkLabel* _tmp11_;
	GtkLabel* _tmp12_;
	GtkStyleContext* context = NULL;
	GtkLabel* _tmp13_;
	GtkStyleContext* _tmp14_;
	GtkStyleContext* _tmp15_;
	GtkStyleContext* _tmp17_;
	GtkLabel* _tmp18_;
	GtkOverlay* _tmp19_;
	GtkLabel* _tmp20_;
	g_return_val_if_fail (property_name != NULL, NULL);
	g_return_val_if_fail (property_value != NULL, NULL);
	self = (PropertyRow*) list_box_row_wrapper_construct (object_type);
	_tmp0_ = self->priv->name_label;
	gtk_label_set_text (_tmp0_, property_name);
	_tmp1_ = (GtkLabel*) gtk_label_new (property_value);
	g_object_ref_sink (_tmp1_);
	value_label = _tmp1_;
	_tmp2_ = value_label;
	_tmp3_ = _g_object_ref0 ((GtkWidget*) _tmp2_);
	_g_object_unref0 (self->priv->value_widget);
	self->priv->value_widget = _tmp3_;
	_tmp4_ = value_label;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp4_, TRUE);
	_tmp5_ = value_label;
	gtk_widget_set_halign ((GtkWidget*) _tmp5_, GTK_ALIGN_FILL);
	_tmp6_ = value_label;
	gtk_widget_set_valign ((GtkWidget*) _tmp6_, GTK_ALIGN_START);
	_tmp7_ = value_label;
	gtk_label_set_xalign (_tmp7_, (gfloat) 0);
	_tmp8_ = value_label;
	gtk_label_set_yalign (_tmp8_, (gfloat) 0);
	_tmp9_ = value_label;
	g_object_set (_tmp9_, "wrap", TRUE, NULL);
	_tmp10_ = value_label;
	g_object_set (_tmp10_, "wrap-mode", PANGO_WRAP_WORD_CHAR, NULL);
	_tmp11_ = value_label;
	gtk_label_set_selectable (_tmp11_, TRUE);
	_tmp12_ = value_label;
	gtk_widget_set_can_focus ((GtkWidget*) _tmp12_, FALSE);
	_tmp13_ = value_label;
	_tmp14_ = gtk_widget_get_style_context ((GtkWidget*) _tmp13_);
	_tmp15_ = _g_object_ref0 (_tmp14_);
	context = _tmp15_;
	if (use_italic) {
		GtkStyleContext* _tmp16_;
		_tmp16_ = context;
		gtk_style_context_add_class (_tmp16_, "italic-label");
	}
	_tmp17_ = context;
	gtk_style_context_add_class (_tmp17_, "property-value");
	_tmp18_ = value_label;
	gtk_widget_show ((GtkWidget*) _tmp18_);
	_tmp19_ = self->priv->overlay;
	_tmp20_ = value_label;
	gtk_container_add ((GtkContainer*) _tmp19_, (GtkWidget*) _tmp20_);
	_g_object_unref0 (context);
	_g_object_unref0 (value_label);
	return self;
}

PropertyRow*
property_row_new_from_label (const gchar* property_name,
                             const gchar* property_value,
                             gboolean use_italic)
{
	return property_row_construct_from_label (TYPE_PROPERTY_ROW, property_name, property_value, use_italic);
}

PropertyRow*
property_row_construct_from_widgets (GType object_type,
                                     const gchar* property_name,
                                     GtkWidget* widget,
                                     GtkWidget* warning)
{
	PropertyRow * self = NULL;
	GtkLabel* _tmp0_;
	GtkGrid* grid = NULL;
	GtkGrid* _tmp2_;
	GtkGrid* _tmp3_;
	GtkGrid* _tmp4_;
	GtkStyleContext* context = NULL;
	GtkGrid* _tmp5_;
	GtkStyleContext* _tmp6_;
	GtkStyleContext* _tmp7_;
	GtkStyleContext* _tmp8_;
	GtkGrid* _tmp11_;
	GtkOverlay* _tmp12_;
	GtkGrid* _tmp13_;
	GtkGrid* _tmp14_;
	g_return_val_if_fail (property_name != NULL, NULL);
	g_return_val_if_fail (widget != NULL, NULL);
	self = (PropertyRow*) list_box_row_wrapper_construct (object_type);
	_tmp0_ = self->priv->name_label;
	gtk_label_set_text (_tmp0_, property_name);
	if (G_TYPE_CHECK_INSTANCE_TYPE (widget, gtk_label_get_type ())) {
		GtkWidget* _tmp1_;
		_tmp1_ = _g_object_ref0 (widget);
		_g_object_unref0 (self->priv->value_widget);
		self->priv->value_widget = _tmp1_;
	}
	_tmp2_ = (GtkGrid*) gtk_grid_new ();
	g_object_ref_sink (_tmp2_);
	grid = _tmp2_;
	_tmp3_ = grid;
	gtk_orientable_set_orientation ((GtkOrientable*) _tmp3_, GTK_ORIENTATION_VERTICAL);
	_tmp4_ = grid;
	gtk_container_add ((GtkContainer*) _tmp4_, widget);
	_tmp5_ = grid;
	_tmp6_ = gtk_widget_get_style_context ((GtkWidget*) _tmp5_);
	_tmp7_ = _g_object_ref0 (_tmp6_);
	context = _tmp7_;
	_tmp8_ = context;
	gtk_style_context_add_class (_tmp8_, "property-value");
	if (warning != NULL) {
		GtkStyleContext* _tmp9_;
		GtkGrid* _tmp10_;
		gtk_widget_set_hexpand (G_TYPE_CHECK_INSTANCE_CAST (warning, gtk_widget_get_type (), GtkWidget), TRUE);
		gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (warning, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
		_tmp9_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (warning, gtk_widget_get_type (), GtkWidget));
		gtk_style_context_add_class (_tmp9_, "property-warning");
		gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (warning, gtk_widget_get_type (), GtkWidget));
		_tmp10_ = grid;
		gtk_container_add ((GtkContainer*) _tmp10_, G_TYPE_CHECK_INSTANCE_CAST (warning, gtk_widget_get_type (), GtkWidget));
	}
	_tmp11_ = grid;
	gtk_widget_show ((GtkWidget*) _tmp11_);
	_tmp12_ = self->priv->overlay;
	_tmp13_ = grid;
	gtk_container_add ((GtkContainer*) _tmp12_, (GtkWidget*) _tmp13_);
	_tmp14_ = grid;
	gtk_widget_set_valign ((GtkWidget*) _tmp14_, GTK_ALIGN_CENTER);
	_g_object_unref0 (context);
	_g_object_unref0 (grid);
	return self;
}

PropertyRow*
property_row_new_from_widgets (const gchar* property_name,
                               GtkWidget* widget,
                               GtkWidget* warning)
{
	return property_row_construct_from_widgets (TYPE_PROPERTY_ROW, property_name, widget, warning);
}

gboolean
property_row_handle_copy_text (PropertyRow* self,
                               gchar** copy_text)
{
	gchar* _vala_copy_text = NULL;
	GtkWidget* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->value_widget;
	if (_tmp0_ != NULL) {
		GtkWidget* _tmp1_;
		const gchar* _tmp2_;
		gchar* _tmp3_;
		_tmp1_ = self->priv->value_widget;
		_tmp2_ = gtk_label_get_label (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), gtk_label_get_type (), GtkLabel));
		_tmp3_ = g_strdup (_tmp2_);
		_g_free0 (_vala_copy_text);
		_vala_copy_text = _tmp3_;
		result = TRUE;
		if (copy_text) {
			*copy_text = _vala_copy_text;
		} else {
			_g_free0 (_vala_copy_text);
		}
		return result;
	} else {
		gchar* _tmp4_ = NULL;
		gboolean _tmp5_;
		_tmp5_ = base_window_no_copy_text (&_tmp4_);
		_g_free0 (_vala_copy_text);
		_vala_copy_text = _tmp4_;
		result = _tmp5_;
		if (copy_text) {
			*copy_text = _vala_copy_text;
		} else {
			_g_free0 (_vala_copy_text);
		}
		return result;
	}
}

PropertyRow*
property_row_construct (GType object_type)
{
	PropertyRow * self = NULL;
	self = (PropertyRow*) list_box_row_wrapper_construct (object_type);
	return self;
}

PropertyRow*
property_row_new (void)
{
	return property_row_construct (TYPE_PROPERTY_ROW);
}

static void
property_row_class_init (PropertyRowClass * klass,
                         gpointer klass_data)
{
	property_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &PropertyRow_private_offset);
	G_OBJECT_CLASS (klass)->finalize = property_row_finalize;
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/ca/desrt/dconf-editor/ui/property-row.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "overlay", FALSE, PropertyRow_private_offset + G_STRUCT_OFFSET (PropertyRowPrivate, overlay));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "name_label", FALSE, PropertyRow_private_offset + G_STRUCT_OFFSET (PropertyRowPrivate, name_label));
}

static void
property_row_instance_init (PropertyRow * self,
                            gpointer klass)
{
	self->priv = property_row_get_instance_private (self);
	self->priv->value_widget = NULL;
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
property_row_finalize (GObject * obj)
{
	PropertyRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROPERTY_ROW, PropertyRow);
	_g_object_unref0 (self->priv->value_widget);
	G_OBJECT_CLASS (property_row_parent_class)->finalize (obj);
}

static GType
property_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PropertyRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) property_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropertyRow), 0, (GInstanceInitFunc) property_row_instance_init, NULL };
	GType property_row_type_id;
	property_row_type_id = g_type_register_static (TYPE_LIST_BOX_ROW_WRAPPER, "PropertyRow", &g_define_type_info, 0);
	PropertyRow_private_offset = g_type_add_instance_private (property_row_type_id, sizeof (PropertyRowPrivate));
	return property_row_type_id;
}

GType
property_row_get_type (void)
{
	static volatile gsize property_row_type_id__once = 0;
	if (g_once_init_enter (&property_row_type_id__once)) {
		GType property_row_type_id;
		property_row_type_id = property_row_get_type_once ();
		g_once_init_leave (&property_row_type_id__once, property_row_type_id);
	}
	return property_row_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;
}

