/* launch-options-editor.c generated by valac 0.56.19, the Vala compiler
 * generated from launch-options-editor.vala, do not modify */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <adwaita.h>
#include <float.h>
#include <math.h>
#include <glib/gi18n-lib.h>
#include <errno.h>
#include <gee.h>
#include <gio/gio.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#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

typedef enum  {
	PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE,
	PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE,
	PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY
} ProtonPlusWidgetsWrapperMode;

#define PROTON_PLUS_WIDGETS_TYPE_WRAPPER_MODE (proton_plus_widgets_wrapper_mode_get_type ())

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING (proton_plus_widgets_launch_option_binding_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING, ProtonPlusWidgetsLaunchOptionBinding))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING, ProtonPlusWidgetsLaunchOptionBindingClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING, ProtonPlusWidgetsLaunchOptionBindingClass))

typedef struct _ProtonPlusWidgetsLaunchOptionBinding ProtonPlusWidgetsLaunchOptionBinding;
typedef struct _ProtonPlusWidgetsLaunchOptionBindingClass ProtonPlusWidgetsLaunchOptionBindingClass;
typedef struct _ProtonPlusWidgetsLaunchOptionBindingPrivate ProtonPlusWidgetsLaunchOptionBindingPrivate;
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_0_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOKENS_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOGGLE_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_launch_option_binding_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE (proton_plus_widgets_launch_option_tile_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE, ProtonPlusWidgetsLaunchOptionTile))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE, ProtonPlusWidgetsLaunchOptionTileClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_TILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_TILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE, ProtonPlusWidgetsLaunchOptionTileClass))

typedef struct _ProtonPlusWidgetsLaunchOptionTile ProtonPlusWidgetsLaunchOptionTile;
typedef struct _ProtonPlusWidgetsLaunchOptionTileClass ProtonPlusWidgetsLaunchOptionTileClass;
typedef struct _ProtonPlusWidgetsLaunchOptionTilePrivate ProtonPlusWidgetsLaunchOptionTilePrivate;
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_0_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_TOGGLE_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_launch_option_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_NUM_PROPERTIES];

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE (proton_plus_widgets_launch_option_spin_tile_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE, ProtonPlusWidgetsLaunchOptionSpinTile))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE, ProtonPlusWidgetsLaunchOptionSpinTileClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_SPIN_TILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_SPIN_TILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE, ProtonPlusWidgetsLaunchOptionSpinTileClass))

typedef struct _ProtonPlusWidgetsLaunchOptionSpinTile ProtonPlusWidgetsLaunchOptionSpinTile;
typedef struct _ProtonPlusWidgetsLaunchOptionSpinTileClass ProtonPlusWidgetsLaunchOptionSpinTileClass;
typedef struct _ProtonPlusWidgetsLaunchOptionSpinTilePrivate ProtonPlusWidgetsLaunchOptionSpinTilePrivate;
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_0_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_TOGGLE_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_ENTRY_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_APPLY_BUTTON_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_launch_option_spin_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_APPLIED_SIGNAL,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_NUM_SIGNALS
};
static guint proton_plus_widgets_launch_option_spin_tile_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_NUM_SIGNALS] = {0};

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD (proton_plus_widgets_launch_option_entry_field_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD, ProtonPlusWidgetsLaunchOptionEntryField))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD, ProtonPlusWidgetsLaunchOptionEntryFieldClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_ENTRY_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_ENTRY_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD, ProtonPlusWidgetsLaunchOptionEntryFieldClass))

typedef struct _ProtonPlusWidgetsLaunchOptionEntryField ProtonPlusWidgetsLaunchOptionEntryField;
typedef struct _ProtonPlusWidgetsLaunchOptionEntryFieldClass ProtonPlusWidgetsLaunchOptionEntryFieldClass;
typedef struct _ProtonPlusWidgetsLaunchOptionEntryFieldPrivate ProtonPlusWidgetsLaunchOptionEntryFieldPrivate;
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_0_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_APPLY_BUTTON_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_launch_option_entry_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_NUM_PROPERTIES];
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_VALUE_APPLIED_SIGNAL,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_NUM_SIGNALS
};
static guint proton_plus_widgets_launch_option_entry_field_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_NUM_SIGNALS] = {0};

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE (proton_plus_widgets_launch_option_resolution_choice_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE, ProtonPlusWidgetsLaunchOptionResolutionChoice))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE, ProtonPlusWidgetsLaunchOptionResolutionChoiceClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_RESOLUTION_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_RESOLUTION_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE, ProtonPlusWidgetsLaunchOptionResolutionChoiceClass))

typedef struct _ProtonPlusWidgetsLaunchOptionResolutionChoice ProtonPlusWidgetsLaunchOptionResolutionChoice;
typedef struct _ProtonPlusWidgetsLaunchOptionResolutionChoiceClass ProtonPlusWidgetsLaunchOptionResolutionChoiceClass;
typedef struct _ProtonPlusWidgetsLaunchOptionResolutionChoicePrivate ProtonPlusWidgetsLaunchOptionResolutionChoicePrivate;
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_0_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_LABEL_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_WIDTH_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_HEIGHT_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_AUTO_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_CUSTOM_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_NUM_PROPERTIES];

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD (proton_plus_widgets_launch_option_resolution_field_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD, ProtonPlusWidgetsLaunchOptionResolutionField))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD, ProtonPlusWidgetsLaunchOptionResolutionFieldClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_RESOLUTION_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_RESOLUTION_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD, ProtonPlusWidgetsLaunchOptionResolutionFieldClass))

typedef struct _ProtonPlusWidgetsLaunchOptionResolutionField ProtonPlusWidgetsLaunchOptionResolutionField;
typedef struct _ProtonPlusWidgetsLaunchOptionResolutionFieldClass ProtonPlusWidgetsLaunchOptionResolutionFieldClass;
typedef struct _ProtonPlusWidgetsLaunchOptionResolutionFieldPrivate ProtonPlusWidgetsLaunchOptionResolutionFieldPrivate;
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_0_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_TOGGLE_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_DROPDOWN_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_WIDTH_ENTRY_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_HEIGHT_ENTRY_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_APPLY_BUTTON_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_NUM_PROPERTIES];
#define _gtk_expression_unref0(var) ((var == NULL) ? NULL : (var = (gtk_expression_unref (var), NULL)))
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_VALUE_APPLIED_SIGNAL,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_NUM_SIGNALS
};
static guint proton_plus_widgets_launch_option_resolution_field_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_NUM_SIGNALS] = {0};

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD (proton_plus_widgets_launch_option_preview_field_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD, ProtonPlusWidgetsLaunchOptionPreviewField))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD, ProtonPlusWidgetsLaunchOptionPreviewFieldClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_PREVIEW_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTION_PREVIEW_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD, ProtonPlusWidgetsLaunchOptionPreviewFieldClass))

typedef struct _ProtonPlusWidgetsLaunchOptionPreviewField ProtonPlusWidgetsLaunchOptionPreviewField;
typedef struct _ProtonPlusWidgetsLaunchOptionPreviewFieldClass ProtonPlusWidgetsLaunchOptionPreviewFieldClass;
typedef struct _ProtonPlusWidgetsLaunchOptionPreviewFieldPrivate ProtonPlusWidgetsLaunchOptionPreviewFieldPrivate;
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_0_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_PREVIEW_LABEL_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_launch_option_preview_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_NUM_PROPERTIES];

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR (proton_plus_widgets_launch_options_editor_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR, ProtonPlusWidgetsLaunchOptionsEditor))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR, ProtonPlusWidgetsLaunchOptionsEditorClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTIONS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTIONS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR, ProtonPlusWidgetsLaunchOptionsEditorClass))

typedef struct _ProtonPlusWidgetsLaunchOptionsEditor ProtonPlusWidgetsLaunchOptionsEditor;
typedef struct _ProtonPlusWidgetsLaunchOptionsEditorClass ProtonPlusWidgetsLaunchOptionsEditorClass;
typedef struct _ProtonPlusWidgetsLaunchOptionsEditorPrivate ProtonPlusWidgetsLaunchOptionsEditorPrivate;
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_0_PROPERTY,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_launch_options_editor_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_NUM_PROPERTIES];
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
enum  {
	PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_CONTENT_CHANGED_SIGNAL,
	PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_NUM_SIGNALS
};
static guint proton_plus_widgets_launch_options_editor_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_NUM_SIGNALS] = {0};

struct _ProtonPlusWidgetsLaunchOptionBinding {
	GObject parent_instance;
	ProtonPlusWidgetsLaunchOptionBindingPrivate * priv;
};

struct _ProtonPlusWidgetsLaunchOptionBindingClass {
	GObjectClass parent_class;
};

struct _ProtonPlusWidgetsLaunchOptionBindingPrivate {
	gchar** _tokens;
	gint _tokens_length1;
	gint __tokens_size_;
	GtkSwitch* _toggle;
};

struct _ProtonPlusWidgetsLaunchOptionTile {
	AdwActionRow parent_instance;
	ProtonPlusWidgetsLaunchOptionTilePrivate * priv;
};

struct _ProtonPlusWidgetsLaunchOptionTileClass {
	AdwActionRowClass parent_class;
};

struct _ProtonPlusWidgetsLaunchOptionTilePrivate {
	GtkSwitch* _toggle;
};

struct _ProtonPlusWidgetsLaunchOptionSpinTile {
	AdwActionRow parent_instance;
	ProtonPlusWidgetsLaunchOptionSpinTilePrivate * priv;
};

struct _ProtonPlusWidgetsLaunchOptionSpinTileClass {
	AdwActionRowClass parent_class;
};

struct _ProtonPlusWidgetsLaunchOptionSpinTilePrivate {
	GtkSwitch* _toggle;
	GtkEntry* _value_entry;
	GtkButton* _apply_button;
	GtkBox* value_box;
	gint lower_value;
	gint upper_value;
	gint committed_value;
};

struct _ProtonPlusWidgetsLaunchOptionEntryField {
	AdwEntryRow parent_instance;
	ProtonPlusWidgetsLaunchOptionEntryFieldPrivate * priv;
};

struct _ProtonPlusWidgetsLaunchOptionEntryFieldClass {
	AdwEntryRowClass parent_class;
};

struct _ProtonPlusWidgetsLaunchOptionEntryFieldPrivate {
	GtkButton* _apply_button;
	gchar* committed_text;
};

struct _ProtonPlusWidgetsLaunchOptionResolutionChoice {
	GObject parent_instance;
	ProtonPlusWidgetsLaunchOptionResolutionChoicePrivate * priv;
};

struct _ProtonPlusWidgetsLaunchOptionResolutionChoiceClass {
	GObjectClass parent_class;
};

struct _ProtonPlusWidgetsLaunchOptionResolutionChoicePrivate {
	gchar* _label;
	gint _width;
	gint _height;
	gboolean _is_auto;
	gboolean _is_custom;
};

struct _ProtonPlusWidgetsLaunchOptionResolutionField {
	AdwActionRow parent_instance;
	ProtonPlusWidgetsLaunchOptionResolutionFieldPrivate * priv;
};

struct _ProtonPlusWidgetsLaunchOptionResolutionFieldClass {
	AdwActionRowClass parent_class;
};

struct _ProtonPlusWidgetsLaunchOptionResolutionFieldPrivate {
	GtkSwitch* _toggle;
	GtkDropDown* _dropdown;
	GtkEntry* _width_entry;
	GtkEntry* _height_entry;
	GtkButton* _apply_button;
	GtkBox* custom_box;
	GeeArrayList* choices;
	gint committed_width;
	gint committed_height;
};

struct _ProtonPlusWidgetsLaunchOptionPreviewField {
	GtkBox parent_instance;
	ProtonPlusWidgetsLaunchOptionPreviewFieldPrivate * priv;
};

struct _ProtonPlusWidgetsLaunchOptionPreviewFieldClass {
	GtkBoxClass parent_class;
};

struct _ProtonPlusWidgetsLaunchOptionPreviewFieldPrivate {
	GtkLabel* _preview_label;
};

struct _ProtonPlusWidgetsLaunchOptionsEditor {
	GtkBox parent_instance;
	ProtonPlusWidgetsLaunchOptionsEditorPrivate * priv;
};

struct _ProtonPlusWidgetsLaunchOptionsEditorClass {
	GtkBoxClass parent_class;
};

struct _ProtonPlusWidgetsLaunchOptionsEditorPrivate {
	AdwPreferencesGroup* _more_options_group;
	AdwPreferencesGroup* _gpu_vendor_group;
	AdwPreferencesGroup* _game_arguments_group;
	AdwPreferencesGroup* _advanced_options_group;
	ProtonPlusWidgetsLaunchOptionTile* _mangohud_tile;
	ProtonPlusWidgetsLaunchOptionTile* _steam_deck_tile;
	ProtonPlusWidgetsLaunchOptionTile* _hdr_tile;
	ProtonPlusWidgetsLaunchOptionTile* _wayland_tile;
	ProtonPlusWidgetsLaunchOptionTile* _vkbasalt_tile;
	ProtonPlusWidgetsLaunchOptionTile* _wined3d_tile;
	ProtonPlusWidgetsLaunchOptionTile* _amd_fsr4_upgrade_tile;
	ProtonPlusWidgetsLaunchOptionTile* _amd_fsr4_rdna3_upgrade_tile;
	ProtonPlusWidgetsLaunchOptionTile* _amd_anti_lag_tile;
	ProtonPlusWidgetsLaunchOptionTile* _amd_prime_tile;
	ProtonPlusWidgetsLaunchOptionTile* _amd_hide_apu_tile;
	ProtonPlusWidgetsLaunchOptionTile* _nvapi_tile;
	ProtonPlusWidgetsLaunchOptionTile* _nvidia_ngx_updater_tile;
	ProtonPlusWidgetsLaunchOptionTile* _nvidia_hide_gpu_tile;
	ProtonPlusWidgetsLaunchOptionTile* _dlss_indicator_tile;
	ProtonPlusWidgetsLaunchOptionTile* _nvidia_libs_tile;
	ProtonPlusWidgetsLaunchOptionTile* _intel_xess_upgrade_tile;
	ProtonPlusWidgetsLaunchOptionTile* _prefer_sdl_tile;
	ProtonPlusWidgetsLaunchOptionTile* _no_steaminput_tile;
	ProtonPlusWidgetsLaunchOptionTile* _ntsync_tile;
	ProtonPlusWidgetsLaunchOptionTile* _local_shader_cache_tile;
	ProtonPlusWidgetsLaunchOptionEntryField* _additional_args_field;
	ProtonPlusWidgetsLaunchOptionTile* _additional_args_tile;
	ProtonPlusWidgetsLaunchOptionTile* _command_tile;
	ProtonPlusWidgetsLaunchOptionTile* _skip_launcher_tile;
	ProtonPlusWidgetsLaunchOptionTile* _vulkan_tile;
	ProtonPlusWidgetsLaunchOptionTile* _dx11_tile;
	ProtonPlusWidgetsLaunchOptionTile* _dx12_tile;
	ProtonPlusWidgetsLaunchOptionTile* _console_tile;
	ProtonPlusWidgetsLaunchOptionPreviewField* _preview_field;
	GtkStack* _wrapper_stack;
	GtkStackSwitcher* _wrapper_switcher;
	GtkStack* _gpu_vendor_stack;
	GtkStackSwitcher* _gpu_vendor_switcher;
	ProtonPlusWidgetsLaunchOptionTile* _gamescope_fullscreen_tile;
	ProtonPlusWidgetsLaunchOptionTile* _gamescope_hdr_tile;
	ProtonPlusWidgetsLaunchOptionTile* _gamescope_vrr_tile;
	ProtonPlusWidgetsLaunchOptionSpinTile* _gamescope_framerate_tile;
	ProtonPlusWidgetsLaunchOptionResolutionField* _gamescope_resolution_field;
	ProtonPlusWidgetsLaunchOptionEntryField* _gamescope_args_field;
	ProtonPlusWidgetsLaunchOptionTile* _scopebuddy_fullscreen_tile;
	ProtonPlusWidgetsLaunchOptionTile* _scopebuddy_auto_hdr_tile;
	ProtonPlusWidgetsLaunchOptionTile* _scopebuddy_auto_vrr_tile;
	ProtonPlusWidgetsLaunchOptionSpinTile* _scopebuddy_framerate_tile;
	ProtonPlusWidgetsLaunchOptionResolutionField* _scopebuddy_resolution_field;
	ProtonPlusWidgetsLaunchOptionEntryField* _scopebuddy_args_field;
	GList* common_bindings;
	GList* gpu_vendor_bindings;
	GList* game_argument_bindings;
	GList* scopebuddy_bindings;
	gboolean advanced_visible;
	gboolean refreshing_controls;
	gboolean can_auto_enable_command;
};

static gint ProtonPlusWidgetsLaunchOptionBinding_private_offset;
static gpointer proton_plus_widgets_launch_option_binding_parent_class = NULL;
static gint ProtonPlusWidgetsLaunchOptionTile_private_offset;
static gpointer proton_plus_widgets_launch_option_tile_parent_class = NULL;
static gint ProtonPlusWidgetsLaunchOptionSpinTile_private_offset;
static gpointer proton_plus_widgets_launch_option_spin_tile_parent_class = NULL;
static gint ProtonPlusWidgetsLaunchOptionEntryField_private_offset;
static gpointer proton_plus_widgets_launch_option_entry_field_parent_class = NULL;
static gint ProtonPlusWidgetsLaunchOptionResolutionChoice_private_offset;
static gpointer proton_plus_widgets_launch_option_resolution_choice_parent_class = NULL;
static gint ProtonPlusWidgetsLaunchOptionResolutionField_private_offset;
static gpointer proton_plus_widgets_launch_option_resolution_field_parent_class = NULL;
static gint ProtonPlusWidgetsLaunchOptionPreviewField_private_offset;
static gpointer proton_plus_widgets_launch_option_preview_field_parent_class = NULL;
static gint ProtonPlusWidgetsLaunchOptionsEditor_private_offset;
static gpointer proton_plus_widgets_launch_options_editor_parent_class = NULL;

VALA_EXTERN GType proton_plus_widgets_wrapper_mode_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType proton_plus_widgets_launch_option_binding_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionBinding, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsLaunchOptionBinding* proton_plus_widgets_launch_option_binding_new (gchar** tokens,
                                                                                     gint tokens_length1,
                                                                                     GtkSwitch* toggle);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionBinding* proton_plus_widgets_launch_option_binding_construct (GType object_type,
                                                                                           gchar** tokens,
                                                                                           gint tokens_length1,
                                                                                           GtkSwitch* toggle);
VALA_EXTERN void proton_plus_widgets_launch_option_binding_set_tokens (ProtonPlusWidgetsLaunchOptionBinding* self,
                                                           gchar** value,
                                                           gint value_length1);
VALA_EXTERN void proton_plus_widgets_launch_option_binding_set_toggle (ProtonPlusWidgetsLaunchOptionBinding* self,
                                                           GtkSwitch* value);
VALA_EXTERN gchar** proton_plus_widgets_launch_option_binding_get_tokens (ProtonPlusWidgetsLaunchOptionBinding* self,
                                                              gint* result_length1);
static gchar** _vala_array_dup2 (gchar** self,
                          gssize length);
VALA_EXTERN GtkSwitch* proton_plus_widgets_launch_option_binding_get_toggle (ProtonPlusWidgetsLaunchOptionBinding* self);
static void proton_plus_widgets_launch_option_binding_finalize (GObject * obj);
static GType proton_plus_widgets_launch_option_binding_get_type_once (void);
static void _vala_proton_plus_widgets_launch_option_binding_get_property (GObject * object,
                                                                   guint property_id,
                                                                   GValue * value,
                                                                   GParamSpec * pspec);
static void _vala_proton_plus_widgets_launch_option_binding_set_property (GObject * object,
                                                                   guint property_id,
                                                                   const GValue * value,
                                                                   GParamSpec * pspec);
VALA_EXTERN GType proton_plus_widgets_launch_option_tile_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionTile, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_option_tile_new (const gchar* title,
                                                                               const gchar* subtitle);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_option_tile_construct (GType object_type,
                                                                                     const gchar* title,
                                                                                     const gchar* subtitle);
static void proton_plus_widgets_launch_option_tile_set_toggle (ProtonPlusWidgetsLaunchOptionTile* self,
                                                        GtkSwitch* value);
VALA_EXTERN GtkSwitch* proton_plus_widgets_launch_option_tile_get_toggle (ProtonPlusWidgetsLaunchOptionTile* self);
static void proton_plus_widgets_launch_option_tile_finalize (GObject * obj);
static GType proton_plus_widgets_launch_option_tile_get_type_once (void);
static void _vala_proton_plus_widgets_launch_option_tile_get_property (GObject * object,
                                                                guint property_id,
                                                                GValue * value,
                                                                GParamSpec * pspec);
static void _vala_proton_plus_widgets_launch_option_tile_set_property (GObject * object,
                                                                guint property_id,
                                                                const GValue * value,
                                                                GParamSpec * pspec);
VALA_EXTERN GType proton_plus_widgets_launch_option_spin_tile_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionSpinTile, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsLaunchOptionSpinTile* proton_plus_widgets_launch_option_spin_tile_new (const gchar* title,
                                                                                        const gchar* subtitle,
                                                                                        const gchar* value_label,
                                                                                        gdouble lower,
                                                                                        gdouble upper,
                                                                                        gint default_value);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionSpinTile* proton_plus_widgets_launch_option_spin_tile_construct (GType object_type,
                                                                                              const gchar* title,
                                                                                              const gchar* subtitle,
                                                                                              const gchar* value_label,
                                                                                              gdouble lower,
                                                                                              gdouble upper,
                                                                                              gint default_value);
static void proton_plus_widgets_launch_option_spin_tile_set_value_entry (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                                  GtkEntry* value);
VALA_EXTERN GtkEntry* proton_plus_widgets_launch_option_spin_tile_get_value_entry (ProtonPlusWidgetsLaunchOptionSpinTile* self);
static void proton_plus_widgets_launch_option_spin_tile_apply_pending_value (ProtonPlusWidgetsLaunchOptionSpinTile* self);
static void _proton_plus_widgets_launch_option_spin_tile_apply_pending_value_gtk_entry_activate (GtkEntry* _sender,
                                                                                          gpointer self);
static void proton_plus_widgets_launch_option_spin_tile_set_apply_button (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                                   GtkButton* value);
VALA_EXTERN GtkButton* proton_plus_widgets_launch_option_spin_tile_get_apply_button (ProtonPlusWidgetsLaunchOptionSpinTile* self);
static void _proton_plus_widgets_launch_option_spin_tile_apply_pending_value_gtk_button_clicked (GtkButton* _sender,
                                                                                          gpointer self);
static void proton_plus_widgets_launch_option_spin_tile_set_toggle (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                             GtkSwitch* value);
VALA_EXTERN GtkSwitch* proton_plus_widgets_launch_option_spin_tile_get_toggle (ProtonPlusWidgetsLaunchOptionSpinTile* self);
static void proton_plus_widgets_launch_option_spin_tile_refresh_value_state (ProtonPlusWidgetsLaunchOptionSpinTile* self);
static void _proton_plus_widgets_launch_option_spin_tile_refresh_value_state_gtk_editable_changed (GtkEditable* _sender,
                                                                                            gpointer self);
static void _proton_plus_widgets_launch_option_spin_tile_refresh_value_state_g_object_notify (GObject* _sender,
                                                                                       GParamSpec* pspec,
                                                                                       gpointer self);
VALA_EXTERN gint proton_plus_widgets_launch_option_spin_tile_get_value_as_int (ProtonPlusWidgetsLaunchOptionSpinTile* self);
VALA_EXTERN void proton_plus_widgets_launch_option_spin_tile_set_value (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                            gint value);
static gboolean proton_plus_widgets_launch_option_spin_tile_get_pending_value (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                                        gint* value);
static void proton_plus_widgets_launch_option_spin_tile_finalize (GObject * obj);
static GType proton_plus_widgets_launch_option_spin_tile_get_type_once (void);
static void _vala_proton_plus_widgets_launch_option_spin_tile_get_property (GObject * object,
                                                                     guint property_id,
                                                                     GValue * value,
                                                                     GParamSpec * pspec);
static void _vala_proton_plus_widgets_launch_option_spin_tile_set_property (GObject * object,
                                                                     guint property_id,
                                                                     const GValue * value,
                                                                     GParamSpec * pspec);
VALA_EXTERN GType proton_plus_widgets_launch_option_entry_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionEntryField, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsLaunchOptionEntryField* proton_plus_widgets_launch_option_entry_field_new (const gchar* title,
                                                                                            const gchar* subtitle,
                                                                                            const gchar* placeholder);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionEntryField* proton_plus_widgets_launch_option_entry_field_construct (GType object_type,
                                                                                                  const gchar* title,
                                                                                                  const gchar* subtitle,
                                                                                                  const gchar* placeholder);
static void proton_plus_widgets_launch_option_entry_field_set_apply_button (ProtonPlusWidgetsLaunchOptionEntryField* self,
                                                                     GtkButton* value);
VALA_EXTERN GtkButton* proton_plus_widgets_launch_option_entry_field_get_apply_button (ProtonPlusWidgetsLaunchOptionEntryField* self);
static void proton_plus_widgets_launch_option_entry_field_apply_pending_text (ProtonPlusWidgetsLaunchOptionEntryField* self);
static void _proton_plus_widgets_launch_option_entry_field_apply_pending_text_gtk_button_clicked (GtkButton* _sender,
                                                                                           gpointer self);
static void _proton_plus_widgets_launch_option_entry_field_apply_pending_text_gtk_list_box_row_activate (GtkListBoxRow* _sender,
                                                                                                  gpointer self);
static void proton_plus_widgets_launch_option_entry_field_refresh_apply_state (ProtonPlusWidgetsLaunchOptionEntryField* self);
static void _proton_plus_widgets_launch_option_entry_field_refresh_apply_state_gtk_editable_changed (GtkEditable* _sender,
                                                                                              gpointer self);
VALA_EXTERN gchar* proton_plus_widgets_launch_option_entry_field_get_text (ProtonPlusWidgetsLaunchOptionEntryField* self);
VALA_EXTERN void proton_plus_widgets_launch_option_entry_field_set_text (ProtonPlusWidgetsLaunchOptionEntryField* self,
                                                             const gchar* text);
VALA_EXTERN void proton_plus_widgets_launch_option_entry_field_focus_entry (ProtonPlusWidgetsLaunchOptionEntryField* self);
static void proton_plus_widgets_launch_option_entry_field_finalize (GObject * obj);
static GType proton_plus_widgets_launch_option_entry_field_get_type_once (void);
static void _vala_proton_plus_widgets_launch_option_entry_field_get_property (GObject * object,
                                                                       guint property_id,
                                                                       GValue * value,
                                                                       GParamSpec * pspec);
static void _vala_proton_plus_widgets_launch_option_entry_field_set_property (GObject * object,
                                                                       guint property_id,
                                                                       const GValue * value,
                                                                       GParamSpec * pspec);
VALA_EXTERN GType proton_plus_widgets_launch_option_resolution_choice_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionResolutionChoice, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsLaunchOptionResolutionChoice* proton_plus_widgets_launch_option_resolution_choice_new (const gchar* label,
                                                                                                        gint width,
                                                                                                        gint height,
                                                                                                        gboolean is_auto,
                                                                                                        gboolean is_custom);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionResolutionChoice* proton_plus_widgets_launch_option_resolution_choice_construct (GType object_type,
                                                                                                              const gchar* label,
                                                                                                              gint width,
                                                                                                              gint height,
                                                                                                              gboolean is_auto,
                                                                                                              gboolean is_custom);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_choice_set_label (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                                    const gchar* value);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_choice_set_width (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                                    gint value);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_choice_set_height (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                                     gint value);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_choice_set_is_auto (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                                      gboolean value);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_choice_set_is_custom (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                                        gboolean value);
VALA_EXTERN const gchar* proton_plus_widgets_launch_option_resolution_choice_get_label (ProtonPlusWidgetsLaunchOptionResolutionChoice* self);
VALA_EXTERN gint proton_plus_widgets_launch_option_resolution_choice_get_width (ProtonPlusWidgetsLaunchOptionResolutionChoice* self);
VALA_EXTERN gint proton_plus_widgets_launch_option_resolution_choice_get_height (ProtonPlusWidgetsLaunchOptionResolutionChoice* self);
VALA_EXTERN gboolean proton_plus_widgets_launch_option_resolution_choice_get_is_auto (ProtonPlusWidgetsLaunchOptionResolutionChoice* self);
VALA_EXTERN gboolean proton_plus_widgets_launch_option_resolution_choice_get_is_custom (ProtonPlusWidgetsLaunchOptionResolutionChoice* self);
static void proton_plus_widgets_launch_option_resolution_choice_finalize (GObject * obj);
static GType proton_plus_widgets_launch_option_resolution_choice_get_type_once (void);
static void _vala_proton_plus_widgets_launch_option_resolution_choice_get_property (GObject * object,
                                                                             guint property_id,
                                                                             GValue * value,
                                                                             GParamSpec * pspec);
static void _vala_proton_plus_widgets_launch_option_resolution_choice_set_property (GObject * object,
                                                                             guint property_id,
                                                                             const GValue * value,
                                                                             GParamSpec * pspec);
VALA_EXTERN GType proton_plus_widgets_launch_option_resolution_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionResolutionField, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsLaunchOptionResolutionField* proton_plus_widgets_launch_option_resolution_field_new (const gchar* title,
                                                                                                      const gchar* subtitle,
                                                                                                      gboolean include_auto);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionResolutionField* proton_plus_widgets_launch_option_resolution_field_construct (GType object_type,
                                                                                                            const gchar* title,
                                                                                                            const gchar* subtitle,
                                                                                                            gboolean include_auto);
static void proton_plus_widgets_launch_option_resolution_field_set_dropdown (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                      GtkDropDown* value);
VALA_EXTERN GtkDropDown* proton_plus_widgets_launch_option_resolution_field_get_dropdown (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void proton_plus_widgets_launch_option_resolution_field_set_toggle (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                    GtkSwitch* value);
VALA_EXTERN GtkSwitch* proton_plus_widgets_launch_option_resolution_field_get_toggle (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void proton_plus_widgets_launch_option_resolution_field_set_width_entry (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                         GtkEntry* value);
VALA_EXTERN GtkEntry* proton_plus_widgets_launch_option_resolution_field_get_width_entry (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void _proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution_gtk_entry_activate (GtkEntry* _sender,
                                                                                                      gpointer self);
static void proton_plus_widgets_launch_option_resolution_field_set_height_entry (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                          GtkEntry* value);
VALA_EXTERN GtkEntry* proton_plus_widgets_launch_option_resolution_field_get_height_entry (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void proton_plus_widgets_launch_option_resolution_field_set_apply_button (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                          GtkButton* value);
VALA_EXTERN GtkButton* proton_plus_widgets_launch_option_resolution_field_get_apply_button (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void _proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution_gtk_button_clicked (GtkButton* _sender,
                                                                                                      gpointer self);
static void proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void _proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility_g_object_notify (GObject* _sender,
                                                                                                     GParamSpec* pspec,
                                                                                                     gpointer self);
static void proton_plus_widgets_launch_option_resolution_field_refresh_custom_visibility (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void _proton_plus_widgets_launch_option_resolution_field_refresh_custom_visibility_g_object_notify (GObject* _sender,
                                                                                                    GParamSpec* pspec,
                                                                                                    gpointer self);
static void proton_plus_widgets_launch_option_resolution_field_refresh_custom_state (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static void _proton_plus_widgets_launch_option_resolution_field_refresh_custom_state_gtk_editable_changed (GtkEditable* _sender,
                                                                                                    gpointer self);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_field_reset (ProtonPlusWidgetsLaunchOptionResolutionField* self);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_field_set_auto (ProtonPlusWidgetsLaunchOptionResolutionField* self);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_field_set_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                        gint width,
                                                                        gint height);
VALA_EXTERN gboolean proton_plus_widgets_launch_option_resolution_field_is_default (ProtonPlusWidgetsLaunchOptionResolutionField* self);
VALA_EXTERN gboolean proton_plus_widgets_launch_option_resolution_field_is_auto (ProtonPlusWidgetsLaunchOptionResolutionField* self);
static ProtonPlusWidgetsLaunchOptionResolutionChoice* proton_plus_widgets_launch_option_resolution_field_get_selected_choice (ProtonPlusWidgetsLaunchOptionResolutionField* self);
VALA_EXTERN gboolean proton_plus_widgets_launch_option_resolution_field_has_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self);
VALA_EXTERN void proton_plus_widgets_launch_option_resolution_field_get_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                        gint* width,
                                                                        gint* height);
static gboolean proton_plus_widgets_launch_option_resolution_field_get_pending_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                                    gint* width,
                                                                                    gint* height);
static void proton_plus_widgets_launch_option_resolution_field_finalize (GObject * obj);
static GType proton_plus_widgets_launch_option_resolution_field_get_type_once (void);
static void _vala_proton_plus_widgets_launch_option_resolution_field_get_property (GObject * object,
                                                                            guint property_id,
                                                                            GValue * value,
                                                                            GParamSpec * pspec);
static void _vala_proton_plus_widgets_launch_option_resolution_field_set_property (GObject * object,
                                                                            guint property_id,
                                                                            const GValue * value,
                                                                            GParamSpec * pspec);
VALA_EXTERN GType proton_plus_widgets_launch_option_preview_field_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionPreviewField, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsLaunchOptionPreviewField* proton_plus_widgets_launch_option_preview_field_new (const gchar* title);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionPreviewField* proton_plus_widgets_launch_option_preview_field_construct (GType object_type,
                                                                                                      const gchar* title);
static void proton_plus_widgets_launch_option_preview_field_set_preview_label (ProtonPlusWidgetsLaunchOptionPreviewField* self,
                                                                        GtkLabel* value);
VALA_EXTERN GtkLabel* proton_plus_widgets_launch_option_preview_field_get_preview_label (ProtonPlusWidgetsLaunchOptionPreviewField* self);
static void proton_plus_widgets_launch_option_preview_field_finalize (GObject * obj);
static GType proton_plus_widgets_launch_option_preview_field_get_type_once (void);
static void _vala_proton_plus_widgets_launch_option_preview_field_get_property (GObject * object,
                                                                         guint property_id,
                                                                         GValue * value,
                                                                         GParamSpec * pspec);
static void _vala_proton_plus_widgets_launch_option_preview_field_set_property (GObject * object,
                                                                         guint property_id,
                                                                         const GValue * value,
                                                                         GParamSpec * pspec);
VALA_EXTERN GType proton_plus_widgets_launch_options_editor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionsEditor, g_object_unref)
static void _g_object_unref0_ (gpointer var);
static inline void _g_list_free__g_object_unref0_ (GList* self);
VALA_EXTERN gboolean proton_plus_widgets_launch_options_editor_get_advanced_visible (ProtonPlusWidgetsLaunchOptionsEditor* self);
VALA_EXTERN void proton_plus_widgets_launch_options_editor_set_advanced_visible (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     gboolean visible);
static void proton_plus_widgets_launch_options_editor_refresh_advanced_visibility (ProtonPlusWidgetsLaunchOptionsEditor* self);
VALA_EXTERN void proton_plus_widgets_launch_options_editor_clear (ProtonPlusWidgetsLaunchOptionsEditor* self);
VALA_EXTERN void proton_plus_widgets_launch_options_editor_set_text (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                         const gchar* launch_options);
VALA_EXTERN gboolean proton_plus_widgets_launch_options_editor_has_clearable_state (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsWrapperMode proton_plus_widgets_launch_options_editor_get_selected_wrapper_mode (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_gamescope_fullscreen_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_gamescope_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_gamescope_vrr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionSpinTile* proton_plus_widgets_launch_options_editor_get_gamescope_framerate_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionResolutionField* proton_plus_widgets_launch_options_editor_get_gamescope_resolution_field (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionEntryField* proton_plus_widgets_launch_options_editor_get_gamescope_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_scopebuddy_fullscreen_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionSpinTile* proton_plus_widgets_launch_options_editor_get_scopebuddy_framerate_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionResolutionField* proton_plus_widgets_launch_options_editor_get_scopebuddy_resolution_field (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionEntryField* proton_plus_widgets_launch_options_editor_get_scopebuddy_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_additional_args_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionEntryField* proton_plus_widgets_launch_options_editor_get_additional_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_command_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
VALA_EXTERN gchar* proton_plus_widgets_launch_options_editor_get_text (ProtonPlusWidgetsLaunchOptionsEditor* self);
static GeeArrayList* proton_plus_widgets_launch_options_editor_get_command_segments (ProtonPlusWidgetsLaunchOptionsEditor* self);
static gchar** proton_plus_widgets_launch_options_editor_get_launch_option_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                            const gchar* launch_options,
                                                                            gint* result_length1);
static ProtonPlusWidgetsWrapperMode proton_plus_widgets_launch_options_editor_detect_wrapper_mode (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                            gchar** tokens,
                                                                                            gint tokens_length1);
static void proton_plus_widgets_launch_options_editor_reset_controls (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_apply_bindings_from_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                           GList* bindings,
                                                                           gchar** tokens,
                                                                           gint tokens_length1,
                                                                           gboolean* consumed,
                                                                           gint consumed_length1);
static void proton_plus_widgets_launch_options_editor_parse_none_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  gchar** tokens,
                                                                  gint tokens_length1,
                                                                  gboolean* consumed,
                                                                  gint consumed_length1);
static void proton_plus_widgets_launch_options_editor_parse_gamescope_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       gchar** tokens,
                                                                       gint tokens_length1,
                                                                       gboolean* consumed,
                                                                       gint consumed_length1);
static void proton_plus_widgets_launch_options_editor_parse_scopebuddy_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                        gchar** tokens,
                                                                        gint tokens_length1,
                                                                        gboolean* consumed,
                                                                        gint consumed_length1);
static void proton_plus_widgets_launch_options_editor_normalize_nvidia_vendor_dependencies (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_normalize_amd_fsr_upgrade_dependencies (ProtonPlusWidgetsLaunchOptionsEditor* self);
static gint proton_plus_widgets_launch_options_editor_get_token_index (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                gchar** tokens,
                                                                gint tokens_length1,
                                                                const gchar* token);
static void proton_plus_widgets_launch_options_editor_apply_game_argument_bindings_from_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                         gchar** tokens,
                                                                                         gint tokens_length1,
                                                                                         gboolean* consumed,
                                                                                         gint consumed_length1,
                                                                                         gint command_index);
static void proton_plus_widgets_launch_options_editor_set_selected_wrapper_mode (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                          ProtonPlusWidgetsWrapperMode wrapper_mode);
static gchar* proton_plus_widgets_launch_options_editor_join_unconsumed_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                         gchar** tokens,
                                                                         gint tokens_length1,
                                                                         gboolean* consumed,
                                                                         gint consumed_length1);
static void proton_plus_widgets_launch_options_editor_select_preferred_gpu_vendor_page (ProtonPlusWidgetsLaunchOptionsEditor* self);
static gboolean proton_plus_widgets_launch_options_editor_should_show_advanced_controls (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_refresh_preview (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_create_common_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                                 const gchar* title,
                                                                                                 const gchar* subtitle,
                                                                                                 gchar** tokens,
                                                                                                 gint tokens_length1);
static void proton_plus_widgets_launch_options_editor_standard_control_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify (GObject* _sender,
                                                                                          GParamSpec* pspec,
                                                                                          gpointer self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                                     const gchar* title,
                                                                                                     const gchar* subtitle,
                                                                                                     gchar** tokens,
                                                                                                     gint tokens_length1);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_create_game_argument_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                                        const gchar* title,
                                                                                                        const gchar* subtitle,
                                                                                                        gchar** tokens,
                                                                                                        gint tokens_length1);
static GtkWidget* proton_plus_widgets_launch_options_editor_create_none_page (ProtonPlusWidgetsLaunchOptionsEditor* self);
static GtkWidget* proton_plus_widgets_launch_options_editor_create_gpu_vendor_page (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                             ProtonPlusWidgetsLaunchOptionTile** tiles,
                                                                             gint tiles_length1);
static GtkWidget* proton_plus_widgets_launch_options_editor_create_gamescope_page (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_gamescope_fullscreen_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                              ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_gamescope_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_gamescope_vrr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_gamescope_framerate_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                             ProtonPlusWidgetsLaunchOptionSpinTile* value);
static void _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_spin_tile_value_applied (ProtonPlusWidgetsLaunchOptionSpinTile* _sender,
                                                                                                                                    gpointer self);
static void proton_plus_widgets_launch_options_editor_set_gamescope_resolution_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                               ProtonPlusWidgetsLaunchOptionResolutionField* value);
static void _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_resolution_field_value_applied (ProtonPlusWidgetsLaunchOptionResolutionField* _sender,
                                                                                                                                           gpointer self);
static void proton_plus_widgets_launch_options_editor_set_gamescope_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                         ProtonPlusWidgetsLaunchOptionEntryField* value);
static void _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_entry_field_value_applied (ProtonPlusWidgetsLaunchOptionEntryField* _sender,
                                                                                                                                      gpointer self);
static GtkWidget* proton_plus_widgets_launch_options_editor_create_scopebuddy_page (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_scopebuddy_fullscreen_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                               ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_scopebuddy_auto_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                             ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_scopebuddy_auto_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_scopebuddy_auto_vrr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                             ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_scopebuddy_auto_vrr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_scopebuddy_framerate_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                              ProtonPlusWidgetsLaunchOptionSpinTile* value);
static void proton_plus_widgets_launch_options_editor_set_scopebuddy_resolution_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                ProtonPlusWidgetsLaunchOptionResolutionField* value);
static void proton_plus_widgets_launch_options_editor_set_scopebuddy_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                          ProtonPlusWidgetsLaunchOptionEntryField* value);
static GtkStack* proton_plus_widgets_launch_options_editor_get_gpu_vendor_stack (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_maybe_auto_enable_command (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionPreviewField* proton_plus_widgets_launch_options_editor_get_preview_field (ProtonPlusWidgetsLaunchOptionsEditor* self);
static AdwPreferencesGroup* proton_plus_widgets_launch_options_editor_get_more_options_group (ProtonPlusWidgetsLaunchOptionsEditor* self);
static AdwPreferencesGroup* proton_plus_widgets_launch_options_editor_get_gpu_vendor_group (ProtonPlusWidgetsLaunchOptionsEditor* self);
static AdwPreferencesGroup* proton_plus_widgets_launch_options_editor_get_game_arguments_group (ProtonPlusWidgetsLaunchOptionsEditor* self);
static AdwPreferencesGroup* proton_plus_widgets_launch_options_editor_get_advanced_options_group (ProtonPlusWidgetsLaunchOptionsEditor* self);
static GtkStack* proton_plus_widgets_launch_options_editor_get_wrapper_stack (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_additional_args_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_command_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static gboolean proton_plus_widgets_launch_options_editor_has_active_binding (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       GList* bindings);
static void proton_plus_widgets_launch_options_editor_reset_binding_toggles (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                      GList* bindings);
static void proton_plus_widgets_launch_options_editor_wrapper_selection_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_gpu_vendor_selection_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_amd_anti_lag_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_amd_fsr4_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_amd_fsr4_rdna3_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_amd_prime_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_amd_hide_apu_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_nvapi_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_nvidia_ngx_updater_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_nvidia_hide_gpu_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_dlss_indicator_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_nvidia_libs_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_intel_xess_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_vkbasalt_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_wined3d_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_ntsync_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_local_shader_cache_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static gboolean proton_plus_widgets_launch_options_editor_has_structured_content (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_append_binding_segments (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                        GeeArrayList* segments,
                                                                        GList* bindings);
static void proton_plus_widgets_launch_options_editor_append_segments_from_text (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                          GeeArrayList* segments,
                                                                          const gchar* launch_options);
static void proton_plus_widgets_launch_options_editor_append_none_segments (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     GeeArrayList* segments);
static gint proton_plus_widgets_launch_options_editor_get_unconsumed_token_index_after (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                 gchar** tokens,
                                                                                 gint tokens_length1,
                                                                                 const gchar* token,
                                                                                 gboolean* consumed,
                                                                                 gint consumed_length1,
                                                                                 gint start_index);
static void proton_plus_widgets_launch_options_editor_amd_fsr4_upgrade_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_amd_fsr4_rdna3_upgrade_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_nvidia_nvapi_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_nvidia_dlss_updater_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self);
static gchar* proton_plus_widgets_launch_options_editor_build_preview_markup (ProtonPlusWidgetsLaunchOptionsEditor* self);
static gint proton_plus_widgets_launch_options_editor_get_unconsumed_token_index (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                           gchar** tokens,
                                                                           gint tokens_length1,
                                                                           const gchar* token,
                                                                           gboolean* consumed,
                                                                           gint consumed_length1);
static gint proton_plus_widgets_launch_options_editor_get_first_present_index (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                        gchar** tokens,
                                                                        gint tokens_length1,
                                                                        gchar** candidates,
                                                                        gint candidates_length1);
static gint proton_plus_widgets_launch_options_editor_get_wrapper_end_index (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                      gchar** tokens,
                                                                      gint tokens_length1,
                                                                      gint wrapper_index,
                                                                      gboolean* consumed,
                                                                      gint consumed_length1);
static void proton_plus_widgets_launch_options_editor_append_token (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                             GString* output,
                                                             const gchar* token);
static gchar* proton_plus_widgets_launch_options_editor_normalize_launch_options (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                           const gchar* launch_options);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionsEditor* proton_plus_widgets_launch_options_editor_new (void);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionsEditor* proton_plus_widgets_launch_options_editor_construct (GType object_type);
static void proton_plus_widgets_launch_options_editor_set_more_options_group (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       AdwPreferencesGroup* value);
static void proton_plus_widgets_launch_options_editor_set_gpu_vendor_group (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     AdwPreferencesGroup* value);
static void proton_plus_widgets_launch_options_editor_set_game_arguments_group (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                         AdwPreferencesGroup* value);
static void proton_plus_widgets_launch_options_editor_set_advanced_options_group (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                           AdwPreferencesGroup* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_mangohud_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_mangohud_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_steam_deck_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_steam_deck_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                    ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                             ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_wayland_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_wayland_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                 ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_vkbasalt_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_wined3d_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                 ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_amd_fsr4_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                          ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_amd_fsr4_rdna3_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_amd_anti_lag_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                      ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_amd_prime_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                   ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_amd_hide_apu_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                      ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_nvapi_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                               ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_nvidia_ngx_updater_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                            ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_nvidia_hide_gpu_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                         ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_dlss_indicator_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                        ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_nvidia_libs_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_intel_xess_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                            ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_prefer_sdl_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_prefer_sdl_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                    ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_no_steaminput_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_no_steaminput_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_ntsync_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_local_shader_cache_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                            ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_additional_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                          ProtonPlusWidgetsLaunchOptionEntryField* value);
static void proton_plus_widgets_launch_options_editor_set_additional_args_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                         ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_command_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                 ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_skip_launcher_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_skip_launcher_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_vulkan_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_vulkan_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_dx11_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_dx11_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                              ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_dx12_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_dx12_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                              ProtonPlusWidgetsLaunchOptionTile* value);
static ProtonPlusWidgetsLaunchOptionTile* proton_plus_widgets_launch_options_editor_get_console_tile (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_console_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                 ProtonPlusWidgetsLaunchOptionTile* value);
static void proton_plus_widgets_launch_options_editor_set_preview_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  ProtonPlusWidgetsLaunchOptionPreviewField* value);
static void proton_plus_widgets_launch_options_editor_set_wrapper_stack (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  GtkStack* value);
static GtkStackSwitcher* proton_plus_widgets_launch_options_editor_get_wrapper_switcher (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_wrapper_switcher (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     GtkStackSwitcher* value);
static void proton_plus_widgets_launch_options_editor_set_gpu_vendor_stack (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     GtkStack* value);
static GtkStackSwitcher* proton_plus_widgets_launch_options_editor_get_gpu_vendor_switcher (ProtonPlusWidgetsLaunchOptionsEditor* self);
static void proton_plus_widgets_launch_options_editor_set_gpu_vendor_switcher (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                        GtkStackSwitcher* value);
static GObject * proton_plus_widgets_launch_options_editor_constructor (GType type,
                                                                 guint n_construct_properties,
                                                                 GObjectConstructParam * construct_properties);
static void _proton_plus_widgets_launch_options_editor_wrapper_selection_changed_g_object_notify (GObject* _sender,
                                                                                           GParamSpec* pspec,
                                                                                           gpointer self);
static void _proton_plus_widgets_launch_options_editor_amd_fsr4_upgrade_toggle_changed_g_object_notify (GObject* _sender,
                                                                                                 GParamSpec* pspec,
                                                                                                 gpointer self);
static void _proton_plus_widgets_launch_options_editor_amd_fsr4_rdna3_upgrade_toggle_changed_g_object_notify (GObject* _sender,
                                                                                                       GParamSpec* pspec,
                                                                                                       gpointer self);
static void _proton_plus_widgets_launch_options_editor_nvidia_nvapi_toggle_changed_g_object_notify (GObject* _sender,
                                                                                             GParamSpec* pspec,
                                                                                             gpointer self);
static void _proton_plus_widgets_launch_options_editor_nvidia_dlss_updater_toggle_changed_g_object_notify (GObject* _sender,
                                                                                                    GParamSpec* pspec,
                                                                                                    gpointer self);
static void _proton_plus_widgets_launch_options_editor_gpu_vendor_selection_changed_g_object_notify (GObject* _sender,
                                                                                              GParamSpec* pspec,
                                                                                              gpointer self);
static void _proton_plus_widgets_launch_options_editor_command_toggle_changed_g_object_notify (GObject* _sender,
                                                                                        GParamSpec* pspec,
                                                                                        gpointer self);
static void _proton_plus_widgets_launch_options_editor_additional_args_toggle_changed_g_object_notify (GObject* _sender,
                                                                                                GParamSpec* pspec,
                                                                                                gpointer self);
static void proton_plus_widgets_launch_options_editor_finalize (GObject * obj);
static GType proton_plus_widgets_launch_options_editor_get_type_once (void);
static void _vala_proton_plus_widgets_launch_options_editor_get_property (GObject * object,
                                                                   guint property_id,
                                                                   GValue * value,
                                                                   GParamSpec * pspec);
static void _vala_proton_plus_widgets_launch_options_editor_set_property (GObject * object,
                                                                   guint property_id,
                                                                   const GValue * value,
                                                                   GParamSpec * pspec);
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 gssize _vala_array_length (gpointer array);

static GType
proton_plus_widgets_wrapper_mode_get_type_once (void)
{
	static const GEnumValue values[] = {{PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE, "PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE", "none"}, {PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE, "PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE", "gamescope"}, {PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY, "PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY", "scopebuddy"}, {0, NULL, NULL}};
	GType proton_plus_widgets_wrapper_mode_type_id;
	proton_plus_widgets_wrapper_mode_type_id = g_enum_register_static ("ProtonPlusWidgetsWrapperMode", values);
	return proton_plus_widgets_wrapper_mode_type_id;
}

GType
proton_plus_widgets_wrapper_mode_get_type (void)
{
	static volatile gsize proton_plus_widgets_wrapper_mode_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_wrapper_mode_type_id__once)) {
		GType proton_plus_widgets_wrapper_mode_type_id;
		proton_plus_widgets_wrapper_mode_type_id = proton_plus_widgets_wrapper_mode_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_wrapper_mode_type_id__once, proton_plus_widgets_wrapper_mode_type_id);
	}
	return proton_plus_widgets_wrapper_mode_type_id__once;
}

static inline gpointer
proton_plus_widgets_launch_option_binding_get_instance_private (ProtonPlusWidgetsLaunchOptionBinding* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsLaunchOptionBinding_private_offset);
}

ProtonPlusWidgetsLaunchOptionBinding*
proton_plus_widgets_launch_option_binding_construct (GType object_type,
                                                     gchar** tokens,
                                                     gint tokens_length1,
                                                     GtkSwitch* toggle)
{
	ProtonPlusWidgetsLaunchOptionBinding * self = NULL;
	g_return_val_if_fail (toggle != NULL, NULL);
	self = (ProtonPlusWidgetsLaunchOptionBinding*) g_object_new (object_type, NULL);
	proton_plus_widgets_launch_option_binding_set_tokens (self, tokens, tokens_length1);
	proton_plus_widgets_launch_option_binding_set_toggle (self, toggle);
	return self;
}

ProtonPlusWidgetsLaunchOptionBinding*
proton_plus_widgets_launch_option_binding_new (gchar** tokens,
                                               gint tokens_length1,
                                               GtkSwitch* toggle)
{
	return proton_plus_widgets_launch_option_binding_construct (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING, tokens, tokens_length1, toggle);
}

gchar**
proton_plus_widgets_launch_option_binding_get_tokens (ProtonPlusWidgetsLaunchOptionBinding* self,
                                                      gint* result_length1)
{
	gchar** result;
	gchar** _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint _tmp1__length1;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_tokens;
	_tmp0__length1 = self->priv->_tokens_length1;
	_tmp1_ = _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	if (result_length1) {
		*result_length1 = _tmp1__length1;
	}
	result = _tmp1_;
	return result;
}

static gchar**
_vala_array_dup2 (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;
}

void
proton_plus_widgets_launch_option_binding_set_tokens (ProtonPlusWidgetsLaunchOptionBinding* self,
                                                      gchar** value,
                                                      gint value_length1)
{
	gchar** old_value;
	gint old_value_length;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_binding_get_tokens (self, &old_value_length);
	if (old_value != value) {
		gchar** _tmp0_;
		gint _tmp0__length1;
		_tmp0_ = (value != NULL) ? _vala_array_dup2 (value, value_length1) : value;
		_tmp0__length1 = value_length1;
		self->priv->_tokens = (_vala_array_free (self->priv->_tokens, self->priv->_tokens_length1, (GDestroyNotify) g_free), NULL);
		self->priv->_tokens = _tmp0_;
		self->priv->_tokens_length1 = _tmp0__length1;
		self->priv->__tokens_size_ = self->priv->_tokens_length1;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_binding_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOKENS_PROPERTY]);
	}
}

GtkSwitch*
proton_plus_widgets_launch_option_binding_get_toggle (ProtonPlusWidgetsLaunchOptionBinding* self)
{
	GtkSwitch* result;
	GtkSwitch* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_toggle;
	result = _tmp0_;
	return result;
}

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

void
proton_plus_widgets_launch_option_binding_set_toggle (ProtonPlusWidgetsLaunchOptionBinding* self,
                                                      GtkSwitch* value)
{
	GtkSwitch* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_binding_get_toggle (self);
	if (old_value != value) {
		GtkSwitch* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_toggle);
		self->priv->_toggle = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_binding_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOGGLE_PROPERTY]);
	}
}

static void
proton_plus_widgets_launch_option_binding_class_init (ProtonPlusWidgetsLaunchOptionBindingClass * klass,
                                                      gpointer klass_data)
{
	proton_plus_widgets_launch_option_binding_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsLaunchOptionBinding_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_launch_option_binding_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_launch_option_binding_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_launch_option_binding_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOKENS_PROPERTY, proton_plus_widgets_launch_option_binding_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOKENS_PROPERTY] = g_param_spec_boxed ("tokens", "tokens", "tokens", G_TYPE_STRV, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOGGLE_PROPERTY, proton_plus_widgets_launch_option_binding_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOGGLE_PROPERTY] = g_param_spec_object ("toggle", "toggle", "toggle", gtk_switch_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
proton_plus_widgets_launch_option_binding_instance_init (ProtonPlusWidgetsLaunchOptionBinding * self,
                                                         gpointer klass)
{
	self->priv = proton_plus_widgets_launch_option_binding_get_instance_private (self);
}

static void
proton_plus_widgets_launch_option_binding_finalize (GObject * obj)
{
	ProtonPlusWidgetsLaunchOptionBinding * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING, ProtonPlusWidgetsLaunchOptionBinding);
	self->priv->_tokens = (_vala_array_free (self->priv->_tokens, self->priv->_tokens_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (self->priv->_toggle);
	G_OBJECT_CLASS (proton_plus_widgets_launch_option_binding_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_launch_option_binding_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsLaunchOptionBindingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_launch_option_binding_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsLaunchOptionBinding), 0, (GInstanceInitFunc) proton_plus_widgets_launch_option_binding_instance_init, NULL };
	GType proton_plus_widgets_launch_option_binding_type_id;
	proton_plus_widgets_launch_option_binding_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsLaunchOptionBinding", &g_define_type_info, 0);
	ProtonPlusWidgetsLaunchOptionBinding_private_offset = g_type_add_instance_private (proton_plus_widgets_launch_option_binding_type_id, sizeof (ProtonPlusWidgetsLaunchOptionBindingPrivate));
	return proton_plus_widgets_launch_option_binding_type_id;
}

GType
proton_plus_widgets_launch_option_binding_get_type (void)
{
	static volatile gsize proton_plus_widgets_launch_option_binding_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_launch_option_binding_type_id__once)) {
		GType proton_plus_widgets_launch_option_binding_type_id;
		proton_plus_widgets_launch_option_binding_type_id = proton_plus_widgets_launch_option_binding_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_launch_option_binding_type_id__once, proton_plus_widgets_launch_option_binding_type_id);
	}
	return proton_plus_widgets_launch_option_binding_type_id__once;
}

static void
_vala_proton_plus_widgets_launch_option_binding_get_property (GObject * object,
                                                              guint property_id,
                                                              GValue * value,
                                                              GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionBinding * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING, ProtonPlusWidgetsLaunchOptionBinding);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOKENS_PROPERTY:
		{
			int length;
			g_value_set_boxed (value, proton_plus_widgets_launch_option_binding_get_tokens (self, &length));
		}
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOGGLE_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_binding_get_toggle (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_launch_option_binding_set_property (GObject * object,
                                                              guint property_id,
                                                              const GValue * value,
                                                              GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionBinding * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_BINDING, ProtonPlusWidgetsLaunchOptionBinding);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOKENS_PROPERTY:
		{
			gpointer boxed;
			boxed = g_value_get_boxed (value);
			proton_plus_widgets_launch_option_binding_set_tokens (self, boxed, (boxed == NULL) ? 0 : g_strv_length (boxed));
		}
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_BINDING_TOGGLE_PROPERTY:
		proton_plus_widgets_launch_option_binding_set_toggle (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_launch_option_tile_get_instance_private (ProtonPlusWidgetsLaunchOptionTile* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsLaunchOptionTile_private_offset);
}

ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_option_tile_construct (GType object_type,
                                                  const gchar* title,
                                                  const gchar* subtitle)
{
	ProtonPlusWidgetsLaunchOptionTile * self = NULL;
	GtkSwitch* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	GtkSwitch* _tmp4_;
	g_return_val_if_fail (title != NULL, NULL);
	g_return_val_if_fail (subtitle != NULL, NULL);
	self = (ProtonPlusWidgetsLaunchOptionTile*) g_object_new (object_type, "title", title, "subtitle", subtitle, NULL);
	adw_action_row_set_subtitle_lines ((AdwActionRow*) self, 0);
	_tmp0_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp0_);
	_tmp1_ = _tmp0_;
	proton_plus_widgets_launch_option_tile_set_toggle (self, _tmp1_);
	_g_object_unref0 (_tmp1_);
	_tmp2_ = self->priv->_toggle;
	gtk_widget_set_valign ((GtkWidget*) _tmp2_, GTK_ALIGN_CENTER);
	_tmp3_ = self->priv->_toggle;
	adw_action_row_add_suffix ((AdwActionRow*) self, (GtkWidget*) _tmp3_);
	_tmp4_ = self->priv->_toggle;
	adw_action_row_set_activatable_widget ((AdwActionRow*) self, (GtkWidget*) _tmp4_);
	return self;
}

ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_option_tile_new (const gchar* title,
                                            const gchar* subtitle)
{
	return proton_plus_widgets_launch_option_tile_construct (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE, title, subtitle);
}

GtkSwitch*
proton_plus_widgets_launch_option_tile_get_toggle (ProtonPlusWidgetsLaunchOptionTile* self)
{
	GtkSwitch* result;
	GtkSwitch* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_toggle;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_tile_set_toggle (ProtonPlusWidgetsLaunchOptionTile* self,
                                                   GtkSwitch* value)
{
	GtkSwitch* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_tile_get_toggle (self);
	if (old_value != value) {
		GtkSwitch* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_toggle);
		self->priv->_toggle = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_TOGGLE_PROPERTY]);
	}
}

static void
proton_plus_widgets_launch_option_tile_class_init (ProtonPlusWidgetsLaunchOptionTileClass * klass,
                                                   gpointer klass_data)
{
	proton_plus_widgets_launch_option_tile_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsLaunchOptionTile_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_launch_option_tile_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_launch_option_tile_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_launch_option_tile_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_TOGGLE_PROPERTY, proton_plus_widgets_launch_option_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_TOGGLE_PROPERTY] = g_param_spec_object ("toggle", "toggle", "toggle", gtk_switch_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
proton_plus_widgets_launch_option_tile_instance_init (ProtonPlusWidgetsLaunchOptionTile * self,
                                                      gpointer klass)
{
	self->priv = proton_plus_widgets_launch_option_tile_get_instance_private (self);
}

static void
proton_plus_widgets_launch_option_tile_finalize (GObject * obj)
{
	ProtonPlusWidgetsLaunchOptionTile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE, ProtonPlusWidgetsLaunchOptionTile);
	_g_object_unref0 (self->priv->_toggle);
	G_OBJECT_CLASS (proton_plus_widgets_launch_option_tile_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_launch_option_tile_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsLaunchOptionTileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_launch_option_tile_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsLaunchOptionTile), 0, (GInstanceInitFunc) proton_plus_widgets_launch_option_tile_instance_init, NULL };
	GType proton_plus_widgets_launch_option_tile_type_id;
	proton_plus_widgets_launch_option_tile_type_id = g_type_register_static (adw_action_row_get_type (), "ProtonPlusWidgetsLaunchOptionTile", &g_define_type_info, 0);
	ProtonPlusWidgetsLaunchOptionTile_private_offset = g_type_add_instance_private (proton_plus_widgets_launch_option_tile_type_id, sizeof (ProtonPlusWidgetsLaunchOptionTilePrivate));
	return proton_plus_widgets_launch_option_tile_type_id;
}

GType
proton_plus_widgets_launch_option_tile_get_type (void)
{
	static volatile gsize proton_plus_widgets_launch_option_tile_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_launch_option_tile_type_id__once)) {
		GType proton_plus_widgets_launch_option_tile_type_id;
		proton_plus_widgets_launch_option_tile_type_id = proton_plus_widgets_launch_option_tile_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_launch_option_tile_type_id__once, proton_plus_widgets_launch_option_tile_type_id);
	}
	return proton_plus_widgets_launch_option_tile_type_id__once;
}

static void
_vala_proton_plus_widgets_launch_option_tile_get_property (GObject * object,
                                                           guint property_id,
                                                           GValue * value,
                                                           GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionTile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE, ProtonPlusWidgetsLaunchOptionTile);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_TOGGLE_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_tile_get_toggle (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_launch_option_tile_set_property (GObject * object,
                                                           guint property_id,
                                                           const GValue * value,
                                                           GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionTile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_TILE, ProtonPlusWidgetsLaunchOptionTile);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_TILE_TOGGLE_PROPERTY:
		proton_plus_widgets_launch_option_tile_set_toggle (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_launch_option_spin_tile_get_instance_private (ProtonPlusWidgetsLaunchOptionSpinTile* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsLaunchOptionSpinTile_private_offset);
}

static void
_proton_plus_widgets_launch_option_spin_tile_apply_pending_value_gtk_entry_activate (GtkEntry* _sender,
                                                                                     gpointer self)
{
	proton_plus_widgets_launch_option_spin_tile_apply_pending_value ((ProtonPlusWidgetsLaunchOptionSpinTile*) self);
}

static void
_proton_plus_widgets_launch_option_spin_tile_apply_pending_value_gtk_button_clicked (GtkButton* _sender,
                                                                                     gpointer self)
{
	proton_plus_widgets_launch_option_spin_tile_apply_pending_value ((ProtonPlusWidgetsLaunchOptionSpinTile*) self);
}

static void
_proton_plus_widgets_launch_option_spin_tile_refresh_value_state_gtk_editable_changed (GtkEditable* _sender,
                                                                                       gpointer self)
{
	proton_plus_widgets_launch_option_spin_tile_refresh_value_state ((ProtonPlusWidgetsLaunchOptionSpinTile*) self);
}

static void
_proton_plus_widgets_launch_option_spin_tile_refresh_value_state_g_object_notify (GObject* _sender,
                                                                                  GParamSpec* pspec,
                                                                                  gpointer self)
{
	proton_plus_widgets_launch_option_spin_tile_refresh_value_state ((ProtonPlusWidgetsLaunchOptionSpinTile*) self);
}

ProtonPlusWidgetsLaunchOptionSpinTile*
proton_plus_widgets_launch_option_spin_tile_construct (GType object_type,
                                                       const gchar* title,
                                                       const gchar* subtitle,
                                                       const gchar* value_label,
                                                       gdouble lower,
                                                       gdouble upper,
                                                       gint default_value)
{
	ProtonPlusWidgetsLaunchOptionSpinTile * self = NULL;
	GtkBox* _tmp0_;
	GtkBox* _tmp1_;
	GtkLabel* value_caption = NULL;
	GtkLabel* _tmp2_;
	GtkEntry* _tmp3_;
	GtkEntry* _tmp4_;
	GtkEntry* _tmp5_;
	GtkEntry* _tmp6_;
	GtkEntry* _tmp7_;
	GtkEntry* _tmp8_;
	GtkEntry* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	GtkEntry* _tmp12_;
	GtkButton* _tmp13_;
	GtkButton* _tmp14_;
	GtkButton* _tmp15_;
	GtkButton* _tmp16_;
	GtkBox* _tmp17_;
	GtkBox* _tmp18_;
	GtkEntry* _tmp19_;
	GtkBox* _tmp20_;
	GtkButton* _tmp21_;
	GtkSwitch* _tmp22_;
	GtkSwitch* _tmp23_;
	GtkSwitch* _tmp24_;
	GtkBox* _tmp25_;
	GtkSwitch* _tmp26_;
	GtkSwitch* _tmp27_;
	GtkEntry* _tmp28_;
	GtkSwitch* _tmp29_;
	g_return_val_if_fail (title != NULL, NULL);
	g_return_val_if_fail (subtitle != NULL, NULL);
	g_return_val_if_fail (value_label != NULL, NULL);
	self = (ProtonPlusWidgetsLaunchOptionSpinTile*) g_object_new (object_type, "title", title, "subtitle", subtitle, NULL);
	adw_action_row_set_subtitle_lines ((AdwActionRow*) self, 0);
	self->priv->lower_value = (gint) lower;
	self->priv->upper_value = (gint) upper;
	self->priv->committed_value = default_value;
	_tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->value_box);
	self->priv->value_box = _tmp0_;
	_tmp1_ = self->priv->value_box;
	gtk_widget_set_valign ((GtkWidget*) _tmp1_, GTK_ALIGN_CENTER);
	_tmp2_ = (GtkLabel*) gtk_label_new (value_label);
	g_object_ref_sink (_tmp2_);
	value_caption = _tmp2_;
	gtk_label_set_xalign (value_caption, (gfloat) 0);
	gtk_widget_add_css_class ((GtkWidget*) value_caption, "dim-label");
	_tmp3_ = (GtkEntry*) gtk_entry_new ();
	g_object_ref_sink (_tmp3_);
	_tmp4_ = _tmp3_;
	proton_plus_widgets_launch_option_spin_tile_set_value_entry (self, _tmp4_);
	_g_object_unref0 (_tmp4_);
	_tmp5_ = self->priv->_value_entry;
	gtk_entry_set_input_purpose (_tmp5_, GTK_INPUT_PURPOSE_DIGITS);
	_tmp6_ = self->priv->_value_entry;
	gtk_editable_set_width_chars ((GtkEditable*) _tmp6_, 5);
	_tmp7_ = self->priv->_value_entry;
	gtk_editable_set_max_width_chars ((GtkEditable*) _tmp7_, 5);
	_tmp8_ = self->priv->_value_entry;
	gtk_widget_set_halign ((GtkWidget*) _tmp8_, GTK_ALIGN_START);
	_tmp9_ = self->priv->_value_entry;
	_tmp10_ = g_strdup_printf ("%i", default_value);
	_tmp11_ = _tmp10_;
	gtk_editable_set_text ((GtkEditable*) _tmp9_, _tmp11_);
	_g_free0 (_tmp11_);
	_tmp12_ = self->priv->_value_entry;
	g_signal_connect_object (_tmp12_, "activate", (GCallback) _proton_plus_widgets_launch_option_spin_tile_apply_pending_value_gtk_entry_activate, self, 0);
	_tmp13_ = (GtkButton*) gtk_button_new_with_label (_ ("Set"));
	g_object_ref_sink (_tmp13_);
	_tmp14_ = _tmp13_;
	proton_plus_widgets_launch_option_spin_tile_set_apply_button (self, _tmp14_);
	_g_object_unref0 (_tmp14_);
	_tmp15_ = self->priv->_apply_button;
	gtk_widget_set_tooltip_text ((GtkWidget*) _tmp15_, _ ("Apply the FPS value"));
	_tmp16_ = self->priv->_apply_button;
	g_signal_connect_object (_tmp16_, "clicked", (GCallback) _proton_plus_widgets_launch_option_spin_tile_apply_pending_value_gtk_button_clicked, self, 0);
	_tmp17_ = self->priv->value_box;
	gtk_box_append (_tmp17_, (GtkWidget*) value_caption);
	_tmp18_ = self->priv->value_box;
	_tmp19_ = self->priv->_value_entry;
	gtk_box_append (_tmp18_, (GtkWidget*) _tmp19_);
	_tmp20_ = self->priv->value_box;
	_tmp21_ = self->priv->_apply_button;
	gtk_box_append (_tmp20_, (GtkWidget*) _tmp21_);
	_tmp22_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp22_);
	_tmp23_ = _tmp22_;
	proton_plus_widgets_launch_option_spin_tile_set_toggle (self, _tmp23_);
	_g_object_unref0 (_tmp23_);
	_tmp24_ = self->priv->_toggle;
	gtk_widget_set_valign ((GtkWidget*) _tmp24_, GTK_ALIGN_CENTER);
	_tmp25_ = self->priv->value_box;
	adw_action_row_add_suffix ((AdwActionRow*) self, (GtkWidget*) _tmp25_);
	_tmp26_ = self->priv->_toggle;
	adw_action_row_add_suffix ((AdwActionRow*) self, (GtkWidget*) _tmp26_);
	_tmp27_ = self->priv->_toggle;
	adw_action_row_set_activatable_widget ((AdwActionRow*) self, (GtkWidget*) _tmp27_);
	_tmp28_ = self->priv->_value_entry;
	g_signal_connect_object ((GtkEditable*) _tmp28_, "changed", (GCallback) _proton_plus_widgets_launch_option_spin_tile_refresh_value_state_gtk_editable_changed, self, 0);
	_tmp29_ = self->priv->_toggle;
	g_signal_connect_object ((GObject*) _tmp29_, "notify::active", (GCallback) _proton_plus_widgets_launch_option_spin_tile_refresh_value_state_g_object_notify, self, 0);
	proton_plus_widgets_launch_option_spin_tile_refresh_value_state (self);
	_g_object_unref0 (value_caption);
	return self;
}

ProtonPlusWidgetsLaunchOptionSpinTile*
proton_plus_widgets_launch_option_spin_tile_new (const gchar* title,
                                                 const gchar* subtitle,
                                                 const gchar* value_label,
                                                 gdouble lower,
                                                 gdouble upper,
                                                 gint default_value)
{
	return proton_plus_widgets_launch_option_spin_tile_construct (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE, title, subtitle, value_label, lower, upper, default_value);
}

gint
proton_plus_widgets_launch_option_spin_tile_get_value_as_int (ProtonPlusWidgetsLaunchOptionSpinTile* self)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	result = self->priv->committed_value;
	return result;
}

void
proton_plus_widgets_launch_option_spin_tile_set_value (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                       gint value)
{
	GtkEntry* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	self->priv->committed_value = MAX (self->priv->lower_value, MIN (self->priv->upper_value, value));
	_tmp0_ = self->priv->_value_entry;
	_tmp1_ = g_strdup_printf ("%i", self->priv->committed_value);
	_tmp2_ = _tmp1_;
	gtk_editable_set_text ((GtkEditable*) _tmp0_, _tmp2_);
	_g_free0 (_tmp2_);
	proton_plus_widgets_launch_option_spin_tile_refresh_value_state (self);
}

static void
proton_plus_widgets_launch_option_spin_tile_apply_pending_value (ProtonPlusWidgetsLaunchOptionSpinTile* self)
{
	gint pending_value = 0;
	gint _tmp0_ = 0;
	gboolean _tmp1_;
	GtkEntry* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp1_ = proton_plus_widgets_launch_option_spin_tile_get_pending_value (self, &_tmp0_);
	pending_value = _tmp0_;
	if (!_tmp1_) {
		return;
	}
	self->priv->committed_value = pending_value;
	_tmp2_ = self->priv->_value_entry;
	_tmp3_ = g_strdup_printf ("%i", self->priv->committed_value);
	_tmp4_ = _tmp3_;
	gtk_editable_set_text ((GtkEditable*) _tmp2_, _tmp4_);
	_g_free0 (_tmp4_);
	proton_plus_widgets_launch_option_spin_tile_refresh_value_state (self);
	g_signal_emit (self, proton_plus_widgets_launch_option_spin_tile_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_APPLIED_SIGNAL], 0);
}

static gchar*
string_strip (const gchar* self)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup (self);
	_result_ = _tmp0_;
	g_strstrip (_result_);
	result = _result_;
	return result;
}

static gboolean
int_try_parse (const gchar* str,
               gint* _result_,
               const gchar** unparsed,
               guint _base)
{
	gint _vala__result_ = 0;
	const gchar* _vala_unparsed = NULL;
	gchar* endptr = NULL;
	glong long_result = 0L;
	gchar* _tmp0_ = NULL;
	glong _tmp1_;
	gchar* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	glong _tmp6_;
	gboolean result;
	g_return_val_if_fail (str != NULL, FALSE);
	errno = 0;
	_tmp1_ = strtol (str, &_tmp0_, (gint) _base);
	endptr = _tmp0_;
	long_result = _tmp1_;
	_tmp2_ = endptr;
	_tmp3_ = strlen (str);
	_tmp4_ = _tmp3_;
	if (_tmp2_ == (((gchar*) str) + _tmp4_)) {
		_vala_unparsed = "";
	} else {
		gchar* _tmp5_;
		_tmp5_ = endptr;
		_vala_unparsed = (const gchar*) _tmp5_;
	}
	_tmp6_ = long_result;
	if ((((glong) G_MININT) <= _tmp6_) && (_tmp6_ <= ((glong) G_MAXINT))) {
		gboolean _tmp7_ = FALSE;
		gboolean _tmp8_ = FALSE;
		_vala__result_ = (gint) long_result;
		if (errno != ERANGE) {
			_tmp8_ = errno != EINVAL;
		} else {
			_tmp8_ = FALSE;
		}
		if (_tmp8_) {
			const gchar* _tmp9_;
			gchar* _tmp10_;
			_tmp9_ = _vala_unparsed;
			_tmp10_ = endptr;
			_tmp7_ = _tmp9_ != _tmp10_;
		} else {
			_tmp7_ = FALSE;
		}
		result = _tmp7_;
		if (_result_) {
			*_result_ = _vala__result_;
		}
		if (unparsed) {
			*unparsed = _vala_unparsed;
		}
		return result;
	} else {
		_vala__result_ = G_MAXINT;
		result = FALSE;
		if (_result_) {
			*_result_ = _vala__result_;
		}
		if (unparsed) {
			*unparsed = _vala_unparsed;
		}
		return result;
	}
}

static gboolean
proton_plus_widgets_launch_option_spin_tile_get_pending_value (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                               gint* value)
{
	gint _vala_value = 0;
	gchar* text = NULL;
	GtkEntry* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	gint parsed_value = 0;
	const gchar* _tmp4_;
	gint _tmp5_ = 0;
	gboolean _tmp6_;
	gboolean _tmp7_ = FALSE;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_vala_value = self->priv->committed_value;
	_tmp0_ = self->priv->_value_entry;
	_tmp1_ = gtk_editable_get_text ((GtkEditable*) _tmp0_);
	_tmp2_ = string_strip (_tmp1_);
	text = _tmp2_;
	_tmp3_ = text;
	if (g_strcmp0 (_tmp3_, "") == 0) {
		result = FALSE;
		_g_free0 (text);
		if (value) {
			*value = _vala_value;
		}
		return result;
	}
	_tmp4_ = text;
	_tmp6_ = int_try_parse (_tmp4_, &_tmp5_, NULL, (guint) 0);
	parsed_value = _tmp5_;
	if (!_tmp6_) {
		result = FALSE;
		_g_free0 (text);
		if (value) {
			*value = _vala_value;
		}
		return result;
	}
	if (parsed_value < self->priv->lower_value) {
		_tmp7_ = TRUE;
	} else {
		_tmp7_ = parsed_value > self->priv->upper_value;
	}
	if (_tmp7_) {
		result = FALSE;
		_g_free0 (text);
		if (value) {
			*value = _vala_value;
		}
		return result;
	}
	_vala_value = parsed_value;
	result = TRUE;
	_g_free0 (text);
	if (value) {
		*value = _vala_value;
	}
	return result;
}

static void
proton_plus_widgets_launch_option_spin_tile_refresh_value_state (ProtonPlusWidgetsLaunchOptionSpinTile* self)
{
	gboolean is_active = FALSE;
	GtkSwitch* _tmp0_;
	GtkBox* _tmp1_;
	GtkEntry* _tmp2_;
	gint pending_value = 0;
	gboolean has_pending_value = FALSE;
	gint _tmp3_ = 0;
	gboolean _tmp4_;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_ = FALSE;
	GtkButton* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_toggle;
	is_active = gtk_switch_get_active (_tmp0_);
	_tmp1_ = self->priv->value_box;
	gtk_widget_set_visible ((GtkWidget*) _tmp1_, is_active);
	_tmp2_ = self->priv->_value_entry;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp2_, is_active);
	_tmp4_ = proton_plus_widgets_launch_option_spin_tile_get_pending_value (self, &_tmp3_);
	pending_value = _tmp3_;
	has_pending_value = _tmp4_;
	if (is_active) {
		_tmp6_ = has_pending_value;
	} else {
		_tmp6_ = FALSE;
	}
	if (_tmp6_) {
		_tmp5_ = pending_value != self->priv->committed_value;
	} else {
		_tmp5_ = FALSE;
	}
	_tmp7_ = self->priv->_apply_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp7_, _tmp5_);
}

GtkSwitch*
proton_plus_widgets_launch_option_spin_tile_get_toggle (ProtonPlusWidgetsLaunchOptionSpinTile* self)
{
	GtkSwitch* result;
	GtkSwitch* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_toggle;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_spin_tile_set_toggle (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                        GtkSwitch* value)
{
	GtkSwitch* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_spin_tile_get_toggle (self);
	if (old_value != value) {
		GtkSwitch* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_toggle);
		self->priv->_toggle = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_spin_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_TOGGLE_PROPERTY]);
	}
}

GtkEntry*
proton_plus_widgets_launch_option_spin_tile_get_value_entry (ProtonPlusWidgetsLaunchOptionSpinTile* self)
{
	GtkEntry* result;
	GtkEntry* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_value_entry;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_spin_tile_set_value_entry (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                             GtkEntry* value)
{
	GtkEntry* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_spin_tile_get_value_entry (self);
	if (old_value != value) {
		GtkEntry* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_value_entry);
		self->priv->_value_entry = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_spin_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_ENTRY_PROPERTY]);
	}
}

GtkButton*
proton_plus_widgets_launch_option_spin_tile_get_apply_button (ProtonPlusWidgetsLaunchOptionSpinTile* self)
{
	GtkButton* result;
	GtkButton* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_apply_button;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_spin_tile_set_apply_button (ProtonPlusWidgetsLaunchOptionSpinTile* self,
                                                              GtkButton* value)
{
	GtkButton* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_spin_tile_get_apply_button (self);
	if (old_value != value) {
		GtkButton* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_apply_button);
		self->priv->_apply_button = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_spin_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_APPLY_BUTTON_PROPERTY]);
	}
}

static void
proton_plus_widgets_launch_option_spin_tile_class_init (ProtonPlusWidgetsLaunchOptionSpinTileClass * klass,
                                                        gpointer klass_data)
{
	proton_plus_widgets_launch_option_spin_tile_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsLaunchOptionSpinTile_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_launch_option_spin_tile_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_launch_option_spin_tile_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_launch_option_spin_tile_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_TOGGLE_PROPERTY, proton_plus_widgets_launch_option_spin_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_TOGGLE_PROPERTY] = g_param_spec_object ("toggle", "toggle", "toggle", gtk_switch_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_ENTRY_PROPERTY, proton_plus_widgets_launch_option_spin_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_ENTRY_PROPERTY] = g_param_spec_object ("value-entry", "value-entry", "value-entry", gtk_entry_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_APPLY_BUTTON_PROPERTY, proton_plus_widgets_launch_option_spin_tile_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_APPLY_BUTTON_PROPERTY] = g_param_spec_object ("apply-button", "apply-button", "apply-button", gtk_button_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	proton_plus_widgets_launch_option_spin_tile_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_APPLIED_SIGNAL] = g_signal_new ("value-applied", PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
proton_plus_widgets_launch_option_spin_tile_instance_init (ProtonPlusWidgetsLaunchOptionSpinTile * self,
                                                           gpointer klass)
{
	self->priv = proton_plus_widgets_launch_option_spin_tile_get_instance_private (self);
}

static void
proton_plus_widgets_launch_option_spin_tile_finalize (GObject * obj)
{
	ProtonPlusWidgetsLaunchOptionSpinTile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE, ProtonPlusWidgetsLaunchOptionSpinTile);
	_g_object_unref0 (self->priv->_toggle);
	_g_object_unref0 (self->priv->_value_entry);
	_g_object_unref0 (self->priv->_apply_button);
	_g_object_unref0 (self->priv->value_box);
	G_OBJECT_CLASS (proton_plus_widgets_launch_option_spin_tile_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_launch_option_spin_tile_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsLaunchOptionSpinTileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_launch_option_spin_tile_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsLaunchOptionSpinTile), 0, (GInstanceInitFunc) proton_plus_widgets_launch_option_spin_tile_instance_init, NULL };
	GType proton_plus_widgets_launch_option_spin_tile_type_id;
	proton_plus_widgets_launch_option_spin_tile_type_id = g_type_register_static (adw_action_row_get_type (), "ProtonPlusWidgetsLaunchOptionSpinTile", &g_define_type_info, 0);
	ProtonPlusWidgetsLaunchOptionSpinTile_private_offset = g_type_add_instance_private (proton_plus_widgets_launch_option_spin_tile_type_id, sizeof (ProtonPlusWidgetsLaunchOptionSpinTilePrivate));
	return proton_plus_widgets_launch_option_spin_tile_type_id;
}

GType
proton_plus_widgets_launch_option_spin_tile_get_type (void)
{
	static volatile gsize proton_plus_widgets_launch_option_spin_tile_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_launch_option_spin_tile_type_id__once)) {
		GType proton_plus_widgets_launch_option_spin_tile_type_id;
		proton_plus_widgets_launch_option_spin_tile_type_id = proton_plus_widgets_launch_option_spin_tile_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_launch_option_spin_tile_type_id__once, proton_plus_widgets_launch_option_spin_tile_type_id);
	}
	return proton_plus_widgets_launch_option_spin_tile_type_id__once;
}

static void
_vala_proton_plus_widgets_launch_option_spin_tile_get_property (GObject * object,
                                                                guint property_id,
                                                                GValue * value,
                                                                GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionSpinTile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE, ProtonPlusWidgetsLaunchOptionSpinTile);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_TOGGLE_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_spin_tile_get_toggle (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_ENTRY_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_spin_tile_get_value_entry (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_APPLY_BUTTON_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_spin_tile_get_apply_button (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_launch_option_spin_tile_set_property (GObject * object,
                                                                guint property_id,
                                                                const GValue * value,
                                                                GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionSpinTile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_SPIN_TILE, ProtonPlusWidgetsLaunchOptionSpinTile);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_TOGGLE_PROPERTY:
		proton_plus_widgets_launch_option_spin_tile_set_toggle (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_VALUE_ENTRY_PROPERTY:
		proton_plus_widgets_launch_option_spin_tile_set_value_entry (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_SPIN_TILE_APPLY_BUTTON_PROPERTY:
		proton_plus_widgets_launch_option_spin_tile_set_apply_button (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_launch_option_entry_field_get_instance_private (ProtonPlusWidgetsLaunchOptionEntryField* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsLaunchOptionEntryField_private_offset);
}

static void
_proton_plus_widgets_launch_option_entry_field_apply_pending_text_gtk_button_clicked (GtkButton* _sender,
                                                                                      gpointer self)
{
	proton_plus_widgets_launch_option_entry_field_apply_pending_text ((ProtonPlusWidgetsLaunchOptionEntryField*) self);
}

static void
_proton_plus_widgets_launch_option_entry_field_apply_pending_text_gtk_list_box_row_activate (GtkListBoxRow* _sender,
                                                                                             gpointer self)
{
	proton_plus_widgets_launch_option_entry_field_apply_pending_text ((ProtonPlusWidgetsLaunchOptionEntryField*) self);
}

static void
_proton_plus_widgets_launch_option_entry_field_refresh_apply_state_gtk_editable_changed (GtkEditable* _sender,
                                                                                         gpointer self)
{
	proton_plus_widgets_launch_option_entry_field_refresh_apply_state ((ProtonPlusWidgetsLaunchOptionEntryField*) self);
}

ProtonPlusWidgetsLaunchOptionEntryField*
proton_plus_widgets_launch_option_entry_field_construct (GType object_type,
                                                         const gchar* title,
                                                         const gchar* subtitle,
                                                         const gchar* placeholder)
{
	ProtonPlusWidgetsLaunchOptionEntryField * self = NULL;
	gchar* _tmp0_;
	GtkButton* _tmp1_;
	GtkButton* _tmp2_;
	GtkButton* _tmp3_;
	GtkButton* _tmp4_;
	GtkButton* _tmp5_;
	GtkButton* _tmp6_;
	g_return_val_if_fail (title != NULL, NULL);
	g_return_val_if_fail (subtitle != NULL, NULL);
	g_return_val_if_fail (placeholder != NULL, NULL);
	self = (ProtonPlusWidgetsLaunchOptionEntryField*) g_object_new (object_type, "title", title, NULL);
	_tmp0_ = g_strdup ("");
	_g_free0 (self->priv->committed_text);
	self->priv->committed_text = _tmp0_;
	_tmp1_ = (GtkButton*) gtk_button_new_from_icon_name ("check-symbolic");
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	proton_plus_widgets_launch_option_entry_field_set_apply_button (self, _tmp2_);
	_g_object_unref0 (_tmp2_);
	_tmp3_ = self->priv->_apply_button;
	gtk_widget_set_valign ((GtkWidget*) _tmp3_, GTK_ALIGN_CENTER);
	_tmp4_ = self->priv->_apply_button;
	gtk_widget_add_css_class ((GtkWidget*) _tmp4_, "flat");
	_tmp5_ = self->priv->_apply_button;
	g_signal_connect_object (_tmp5_, "clicked", (GCallback) _proton_plus_widgets_launch_option_entry_field_apply_pending_text_gtk_button_clicked, self, 0);
	_tmp6_ = self->priv->_apply_button;
	adw_entry_row_add_suffix ((AdwEntryRow*) self, (GtkWidget*) _tmp6_);
	g_signal_connect_object ((GtkListBoxRow*) self, "activate", (GCallback) _proton_plus_widgets_launch_option_entry_field_apply_pending_text_gtk_list_box_row_activate, self, 0);
	g_signal_connect_object ((GtkEditable*) self, "changed", (GCallback) _proton_plus_widgets_launch_option_entry_field_refresh_apply_state_gtk_editable_changed, self, 0);
	proton_plus_widgets_launch_option_entry_field_refresh_apply_state (self);
	return self;
}

ProtonPlusWidgetsLaunchOptionEntryField*
proton_plus_widgets_launch_option_entry_field_new (const gchar* title,
                                                   const gchar* subtitle,
                                                   const gchar* placeholder)
{
	return proton_plus_widgets_launch_option_entry_field_construct (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD, title, subtitle, placeholder);
}

gchar*
proton_plus_widgets_launch_option_entry_field_get_text (ProtonPlusWidgetsLaunchOptionEntryField* self)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->committed_text;
	_tmp1_ = g_strdup (_tmp0_);
	result = _tmp1_;
	return result;
}

void
proton_plus_widgets_launch_option_entry_field_set_text (ProtonPlusWidgetsLaunchOptionEntryField* self,
                                                        const gchar* text)
{
	gchar* _tmp0_;
	const gchar* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (text != NULL);
	_tmp0_ = string_strip (text);
	_g_free0 (self->priv->committed_text);
	self->priv->committed_text = _tmp0_;
	_tmp1_ = self->priv->committed_text;
	gtk_editable_set_text ((GtkEditable*) self, _tmp1_);
	proton_plus_widgets_launch_option_entry_field_refresh_apply_state (self);
}

void
proton_plus_widgets_launch_option_entry_field_focus_entry (ProtonPlusWidgetsLaunchOptionEntryField* self)
{
	g_return_if_fail (self != NULL);
	gtk_widget_grab_focus ((GtkWidget*) self);
}

static void
proton_plus_widgets_launch_option_entry_field_apply_pending_text (ProtonPlusWidgetsLaunchOptionEntryField* self)
{
	gchar* pending_text = NULL;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = gtk_editable_get_text ((GtkEditable*) self);
	_tmp1_ = _tmp0_;
	_tmp2_ = string_strip (_tmp1_);
	pending_text = _tmp2_;
	_tmp3_ = pending_text;
	_tmp4_ = self->priv->committed_text;
	if (g_strcmp0 (_tmp3_, _tmp4_) == 0) {
		_g_free0 (pending_text);
		return;
	}
	_tmp5_ = pending_text;
	_tmp6_ = g_strdup (_tmp5_);
	_g_free0 (self->priv->committed_text);
	self->priv->committed_text = _tmp6_;
	_tmp7_ = self->priv->committed_text;
	gtk_editable_set_text ((GtkEditable*) self, _tmp7_);
	proton_plus_widgets_launch_option_entry_field_refresh_apply_state (self);
	g_signal_emit (self, proton_plus_widgets_launch_option_entry_field_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_VALUE_APPLIED_SIGNAL], 0);
	_g_free0 (pending_text);
}

static void
proton_plus_widgets_launch_option_entry_field_refresh_apply_state (ProtonPlusWidgetsLaunchOptionEntryField* self)
{
	GtkButton* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_apply_button;
	_tmp1_ = gtk_editable_get_text ((GtkEditable*) self);
	_tmp2_ = _tmp1_;
	_tmp3_ = string_strip (_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = self->priv->committed_text;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, g_strcmp0 (_tmp4_, _tmp5_) != 0);
	_g_free0 (_tmp4_);
}

GtkButton*
proton_plus_widgets_launch_option_entry_field_get_apply_button (ProtonPlusWidgetsLaunchOptionEntryField* self)
{
	GtkButton* result;
	GtkButton* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_apply_button;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_entry_field_set_apply_button (ProtonPlusWidgetsLaunchOptionEntryField* self,
                                                                GtkButton* value)
{
	GtkButton* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_entry_field_get_apply_button (self);
	if (old_value != value) {
		GtkButton* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_apply_button);
		self->priv->_apply_button = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_entry_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_APPLY_BUTTON_PROPERTY]);
	}
}

static void
proton_plus_widgets_launch_option_entry_field_class_init (ProtonPlusWidgetsLaunchOptionEntryFieldClass * klass,
                                                          gpointer klass_data)
{
	proton_plus_widgets_launch_option_entry_field_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsLaunchOptionEntryField_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_launch_option_entry_field_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_launch_option_entry_field_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_launch_option_entry_field_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_APPLY_BUTTON_PROPERTY, proton_plus_widgets_launch_option_entry_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_APPLY_BUTTON_PROPERTY] = g_param_spec_object ("apply-button", "apply-button", "apply-button", gtk_button_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	proton_plus_widgets_launch_option_entry_field_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_VALUE_APPLIED_SIGNAL] = g_signal_new ("value-applied", PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
proton_plus_widgets_launch_option_entry_field_instance_init (ProtonPlusWidgetsLaunchOptionEntryField * self,
                                                             gpointer klass)
{
	self->priv = proton_plus_widgets_launch_option_entry_field_get_instance_private (self);
}

static void
proton_plus_widgets_launch_option_entry_field_finalize (GObject * obj)
{
	ProtonPlusWidgetsLaunchOptionEntryField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD, ProtonPlusWidgetsLaunchOptionEntryField);
	_g_object_unref0 (self->priv->_apply_button);
	_g_free0 (self->priv->committed_text);
	G_OBJECT_CLASS (proton_plus_widgets_launch_option_entry_field_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_launch_option_entry_field_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsLaunchOptionEntryFieldClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_launch_option_entry_field_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsLaunchOptionEntryField), 0, (GInstanceInitFunc) proton_plus_widgets_launch_option_entry_field_instance_init, NULL };
	GType proton_plus_widgets_launch_option_entry_field_type_id;
	proton_plus_widgets_launch_option_entry_field_type_id = g_type_register_static (adw_entry_row_get_type (), "ProtonPlusWidgetsLaunchOptionEntryField", &g_define_type_info, 0);
	ProtonPlusWidgetsLaunchOptionEntryField_private_offset = g_type_add_instance_private (proton_plus_widgets_launch_option_entry_field_type_id, sizeof (ProtonPlusWidgetsLaunchOptionEntryFieldPrivate));
	return proton_plus_widgets_launch_option_entry_field_type_id;
}

GType
proton_plus_widgets_launch_option_entry_field_get_type (void)
{
	static volatile gsize proton_plus_widgets_launch_option_entry_field_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_launch_option_entry_field_type_id__once)) {
		GType proton_plus_widgets_launch_option_entry_field_type_id;
		proton_plus_widgets_launch_option_entry_field_type_id = proton_plus_widgets_launch_option_entry_field_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_launch_option_entry_field_type_id__once, proton_plus_widgets_launch_option_entry_field_type_id);
	}
	return proton_plus_widgets_launch_option_entry_field_type_id__once;
}

static void
_vala_proton_plus_widgets_launch_option_entry_field_get_property (GObject * object,
                                                                  guint property_id,
                                                                  GValue * value,
                                                                  GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionEntryField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD, ProtonPlusWidgetsLaunchOptionEntryField);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_APPLY_BUTTON_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_entry_field_get_apply_button (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_launch_option_entry_field_set_property (GObject * object,
                                                                  guint property_id,
                                                                  const GValue * value,
                                                                  GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionEntryField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_ENTRY_FIELD, ProtonPlusWidgetsLaunchOptionEntryField);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_ENTRY_FIELD_APPLY_BUTTON_PROPERTY:
		proton_plus_widgets_launch_option_entry_field_set_apply_button (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_launch_option_resolution_choice_get_instance_private (ProtonPlusWidgetsLaunchOptionResolutionChoice* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsLaunchOptionResolutionChoice_private_offset);
}

ProtonPlusWidgetsLaunchOptionResolutionChoice*
proton_plus_widgets_launch_option_resolution_choice_construct (GType object_type,
                                                               const gchar* label,
                                                               gint width,
                                                               gint height,
                                                               gboolean is_auto,
                                                               gboolean is_custom)
{
	ProtonPlusWidgetsLaunchOptionResolutionChoice * self = NULL;
	g_return_val_if_fail (label != NULL, NULL);
	self = (ProtonPlusWidgetsLaunchOptionResolutionChoice*) g_object_new (object_type, NULL);
	proton_plus_widgets_launch_option_resolution_choice_set_label (self, label);
	proton_plus_widgets_launch_option_resolution_choice_set_width (self, width);
	proton_plus_widgets_launch_option_resolution_choice_set_height (self, height);
	proton_plus_widgets_launch_option_resolution_choice_set_is_auto (self, is_auto);
	proton_plus_widgets_launch_option_resolution_choice_set_is_custom (self, is_custom);
	return self;
}

ProtonPlusWidgetsLaunchOptionResolutionChoice*
proton_plus_widgets_launch_option_resolution_choice_new (const gchar* label,
                                                         gint width,
                                                         gint height,
                                                         gboolean is_auto,
                                                         gboolean is_custom)
{
	return proton_plus_widgets_launch_option_resolution_choice_construct (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE, label, width, height, is_auto, is_custom);
}

const gchar*
proton_plus_widgets_launch_option_resolution_choice_get_label (ProtonPlusWidgetsLaunchOptionResolutionChoice* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_label;
	result = _tmp0_;
	return result;
}

void
proton_plus_widgets_launch_option_resolution_choice_set_label (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                               const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_choice_get_label (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_label);
		self->priv->_label = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_LABEL_PROPERTY]);
	}
}

gint
proton_plus_widgets_launch_option_resolution_choice_get_width (ProtonPlusWidgetsLaunchOptionResolutionChoice* self)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	result = self->priv->_width;
	return result;
}

void
proton_plus_widgets_launch_option_resolution_choice_set_width (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                               gint value)
{
	gint old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_choice_get_width (self);
	if (old_value != value) {
		self->priv->_width = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_WIDTH_PROPERTY]);
	}
}

gint
proton_plus_widgets_launch_option_resolution_choice_get_height (ProtonPlusWidgetsLaunchOptionResolutionChoice* self)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	result = self->priv->_height;
	return result;
}

void
proton_plus_widgets_launch_option_resolution_choice_set_height (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                                gint value)
{
	gint old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_choice_get_height (self);
	if (old_value != value) {
		self->priv->_height = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_HEIGHT_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_launch_option_resolution_choice_get_is_auto (ProtonPlusWidgetsLaunchOptionResolutionChoice* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_auto;
	return result;
}

void
proton_plus_widgets_launch_option_resolution_choice_set_is_auto (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                                 gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_choice_get_is_auto (self);
	if (old_value != value) {
		self->priv->_is_auto = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_AUTO_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_launch_option_resolution_choice_get_is_custom (ProtonPlusWidgetsLaunchOptionResolutionChoice* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_custom;
	return result;
}

void
proton_plus_widgets_launch_option_resolution_choice_set_is_custom (ProtonPlusWidgetsLaunchOptionResolutionChoice* self,
                                                                   gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_choice_get_is_custom (self);
	if (old_value != value) {
		self->priv->_is_custom = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_CUSTOM_PROPERTY]);
	}
}

static void
proton_plus_widgets_launch_option_resolution_choice_class_init (ProtonPlusWidgetsLaunchOptionResolutionChoiceClass * klass,
                                                                gpointer klass_data)
{
	proton_plus_widgets_launch_option_resolution_choice_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsLaunchOptionResolutionChoice_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_launch_option_resolution_choice_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_launch_option_resolution_choice_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_launch_option_resolution_choice_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_LABEL_PROPERTY, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_LABEL_PROPERTY] = g_param_spec_string ("label", "label", "label", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_WIDTH_PROPERTY, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_WIDTH_PROPERTY] = g_param_spec_int ("width", "width", "width", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_HEIGHT_PROPERTY, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_HEIGHT_PROPERTY] = g_param_spec_int ("height", "height", "height", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_AUTO_PROPERTY, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_AUTO_PROPERTY] = g_param_spec_boolean ("is-auto", "is-auto", "is-auto", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_CUSTOM_PROPERTY, proton_plus_widgets_launch_option_resolution_choice_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_CUSTOM_PROPERTY] = g_param_spec_boolean ("is-custom", "is-custom", "is-custom", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
proton_plus_widgets_launch_option_resolution_choice_instance_init (ProtonPlusWidgetsLaunchOptionResolutionChoice * self,
                                                                   gpointer klass)
{
	self->priv = proton_plus_widgets_launch_option_resolution_choice_get_instance_private (self);
}

static void
proton_plus_widgets_launch_option_resolution_choice_finalize (GObject * obj)
{
	ProtonPlusWidgetsLaunchOptionResolutionChoice * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE, ProtonPlusWidgetsLaunchOptionResolutionChoice);
	_g_free0 (self->priv->_label);
	G_OBJECT_CLASS (proton_plus_widgets_launch_option_resolution_choice_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_launch_option_resolution_choice_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsLaunchOptionResolutionChoiceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_launch_option_resolution_choice_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsLaunchOptionResolutionChoice), 0, (GInstanceInitFunc) proton_plus_widgets_launch_option_resolution_choice_instance_init, NULL };
	GType proton_plus_widgets_launch_option_resolution_choice_type_id;
	proton_plus_widgets_launch_option_resolution_choice_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsLaunchOptionResolutionChoice", &g_define_type_info, 0);
	ProtonPlusWidgetsLaunchOptionResolutionChoice_private_offset = g_type_add_instance_private (proton_plus_widgets_launch_option_resolution_choice_type_id, sizeof (ProtonPlusWidgetsLaunchOptionResolutionChoicePrivate));
	return proton_plus_widgets_launch_option_resolution_choice_type_id;
}

GType
proton_plus_widgets_launch_option_resolution_choice_get_type (void)
{
	static volatile gsize proton_plus_widgets_launch_option_resolution_choice_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_launch_option_resolution_choice_type_id__once)) {
		GType proton_plus_widgets_launch_option_resolution_choice_type_id;
		proton_plus_widgets_launch_option_resolution_choice_type_id = proton_plus_widgets_launch_option_resolution_choice_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_launch_option_resolution_choice_type_id__once, proton_plus_widgets_launch_option_resolution_choice_type_id);
	}
	return proton_plus_widgets_launch_option_resolution_choice_type_id__once;
}

static void
_vala_proton_plus_widgets_launch_option_resolution_choice_get_property (GObject * object,
                                                                        guint property_id,
                                                                        GValue * value,
                                                                        GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionResolutionChoice * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE, ProtonPlusWidgetsLaunchOptionResolutionChoice);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_LABEL_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_launch_option_resolution_choice_get_label (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_WIDTH_PROPERTY:
		g_value_set_int (value, proton_plus_widgets_launch_option_resolution_choice_get_width (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_HEIGHT_PROPERTY:
		g_value_set_int (value, proton_plus_widgets_launch_option_resolution_choice_get_height (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_AUTO_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_launch_option_resolution_choice_get_is_auto (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_CUSTOM_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_launch_option_resolution_choice_get_is_custom (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_launch_option_resolution_choice_set_property (GObject * object,
                                                                        guint property_id,
                                                                        const GValue * value,
                                                                        GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionResolutionChoice * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE, ProtonPlusWidgetsLaunchOptionResolutionChoice);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_LABEL_PROPERTY:
		proton_plus_widgets_launch_option_resolution_choice_set_label (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_WIDTH_PROPERTY:
		proton_plus_widgets_launch_option_resolution_choice_set_width (self, g_value_get_int (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_HEIGHT_PROPERTY:
		proton_plus_widgets_launch_option_resolution_choice_set_height (self, g_value_get_int (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_AUTO_PROPERTY:
		proton_plus_widgets_launch_option_resolution_choice_set_is_auto (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_CHOICE_IS_CUSTOM_PROPERTY:
		proton_plus_widgets_launch_option_resolution_choice_set_is_custom (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_launch_option_resolution_field_get_instance_private (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsLaunchOptionResolutionField_private_offset);
}

static gpointer
_gtk_expression_ref0 (gpointer self)
{
	return self ? gtk_expression_ref (self) : NULL;
}

static void
_proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution_gtk_entry_activate (GtkEntry* _sender,
                                                                                                 gpointer self)
{
	proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution ((ProtonPlusWidgetsLaunchOptionResolutionField*) self);
}

static void
_proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution_gtk_button_clicked (GtkButton* _sender,
                                                                                                 gpointer self)
{
	proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution ((ProtonPlusWidgetsLaunchOptionResolutionField*) self);
}

static void
_proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility_g_object_notify (GObject* _sender,
                                                                                                GParamSpec* pspec,
                                                                                                gpointer self)
{
	proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility ((ProtonPlusWidgetsLaunchOptionResolutionField*) self);
}

static void
_proton_plus_widgets_launch_option_resolution_field_refresh_custom_visibility_g_object_notify (GObject* _sender,
                                                                                               GParamSpec* pspec,
                                                                                               gpointer self)
{
	proton_plus_widgets_launch_option_resolution_field_refresh_custom_visibility ((ProtonPlusWidgetsLaunchOptionResolutionField*) self);
}

static void
_proton_plus_widgets_launch_option_resolution_field_refresh_custom_state_gtk_editable_changed (GtkEditable* _sender,
                                                                                               gpointer self)
{
	proton_plus_widgets_launch_option_resolution_field_refresh_custom_state ((ProtonPlusWidgetsLaunchOptionResolutionField*) self);
}

ProtonPlusWidgetsLaunchOptionResolutionField*
proton_plus_widgets_launch_option_resolution_field_construct (GType object_type,
                                                              const gchar* title,
                                                              const gchar* subtitle,
                                                              gboolean include_auto)
{
	ProtonPlusWidgetsLaunchOptionResolutionField * self = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp2_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp3_;
	GeeArrayList* _tmp4_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp5_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp6_;
	GeeArrayList* _tmp7_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp8_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp9_;
	GeeArrayList* _tmp10_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp11_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp12_;
	GeeArrayList* _tmp13_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp14_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp15_;
	GeeArrayList* _tmp19_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp20_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp21_;
	gchar** labels = NULL;
	GeeArrayList* _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	gchar** _tmp25_;
	gint labels_length1;
	gint _labels_size_;
	GtkPropertyExpression* expression = NULL;
	GtkPropertyExpression* _tmp38_;
	gchar** _tmp39_;
	gint _tmp39__length1;
	GtkStringList* _tmp40_;
	GtkExpression* _tmp41_;
	GtkDropDown* _tmp42_;
	GtkDropDown* _tmp43_;
	GtkDropDown* _tmp44_;
	GtkSwitch* _tmp45_;
	GtkSwitch* _tmp46_;
	GtkSwitch* _tmp47_;
	GtkEntry* _tmp48_;
	GtkEntry* _tmp49_;
	GtkEntry* _tmp50_;
	GtkEntry* _tmp51_;
	GtkEntry* _tmp52_;
	GtkEntry* _tmp53_;
	gchar* _tmp54_;
	gchar* _tmp55_;
	GtkEntry* _tmp56_;
	GtkLabel* separator_label = NULL;
	GtkLabel* _tmp57_;
	GtkEntry* _tmp58_;
	GtkEntry* _tmp59_;
	GtkEntry* _tmp60_;
	GtkEntry* _tmp61_;
	GtkEntry* _tmp62_;
	GtkEntry* _tmp63_;
	gchar* _tmp64_;
	gchar* _tmp65_;
	GtkEntry* _tmp66_;
	GtkButton* _tmp67_;
	GtkButton* _tmp68_;
	GtkButton* _tmp69_;
	GtkButton* _tmp70_;
	GtkBox* _tmp71_;
	GtkBox* _tmp72_;
	GtkBox* _tmp73_;
	GtkEntry* _tmp74_;
	GtkBox* _tmp75_;
	GtkBox* _tmp76_;
	GtkEntry* _tmp77_;
	GtkBox* _tmp78_;
	GtkButton* _tmp79_;
	GtkBox* _tmp80_;
	GtkDropDown* _tmp81_;
	GtkSwitch* _tmp82_;
	GtkSwitch* _tmp83_;
	GtkSwitch* _tmp84_;
	GtkDropDown* _tmp85_;
	GtkEntry* _tmp86_;
	GtkEntry* _tmp87_;
	g_return_val_if_fail (title != NULL, NULL);
	g_return_val_if_fail (subtitle != NULL, NULL);
	self = (ProtonPlusWidgetsLaunchOptionResolutionField*) g_object_new (object_type, NULL);
	self->priv->committed_width = 3840;
	self->priv->committed_height = 2160;
	_tmp0_ = gee_array_list_new (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_CHOICE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	_g_object_unref0 (self->priv->choices);
	self->priv->choices = _tmp0_;
	_tmp1_ = self->priv->choices;
	_tmp2_ = proton_plus_widgets_launch_option_resolution_choice_new ("3840 x 2160", 3840, 2160, FALSE, FALSE);
	_tmp3_ = _tmp2_;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp1_, _tmp3_);
	_g_object_unref0 (_tmp3_);
	_tmp4_ = self->priv->choices;
	_tmp5_ = proton_plus_widgets_launch_option_resolution_choice_new ("2560 x 1440", 2560, 1440, FALSE, FALSE);
	_tmp6_ = _tmp5_;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp4_, _tmp6_);
	_g_object_unref0 (_tmp6_);
	_tmp7_ = self->priv->choices;
	_tmp8_ = proton_plus_widgets_launch_option_resolution_choice_new ("1920 x 1080", 1920, 1080, FALSE, FALSE);
	_tmp9_ = _tmp8_;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, _tmp9_);
	_g_object_unref0 (_tmp9_);
	_tmp10_ = self->priv->choices;
	_tmp11_ = proton_plus_widgets_launch_option_resolution_choice_new ("1600 x 900", 1600, 900, FALSE, FALSE);
	_tmp12_ = _tmp11_;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp10_, _tmp12_);
	_g_object_unref0 (_tmp12_);
	_tmp13_ = self->priv->choices;
	_tmp14_ = proton_plus_widgets_launch_option_resolution_choice_new ("1280 x 720", 1280, 720, FALSE, FALSE);
	_tmp15_ = _tmp14_;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp13_, _tmp15_);
	_g_object_unref0 (_tmp15_);
	if (include_auto) {
		GeeArrayList* _tmp16_;
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp17_;
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp18_;
		_tmp16_ = self->priv->choices;
		_tmp17_ = proton_plus_widgets_launch_option_resolution_choice_new (_ ("Auto detect"), 0, 0, TRUE, FALSE);
		_tmp18_ = _tmp17_;
		gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _tmp18_);
		_g_object_unref0 (_tmp18_);
	}
	_tmp19_ = self->priv->choices;
	_tmp20_ = proton_plus_widgets_launch_option_resolution_choice_new (_ ("Custom"), 0, 0, FALSE, TRUE);
	_tmp21_ = _tmp20_;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp19_, _tmp21_);
	_g_object_unref0 (_tmp21_);
	_tmp22_ = self->priv->choices;
	_tmp23_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = g_new0 (gchar*, _tmp24_ + 1);
	labels = _tmp25_;
	labels_length1 = _tmp24_;
	_labels_size_ = labels_length1;
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp26_ = FALSE;
			_tmp26_ = TRUE;
			while (TRUE) {
				GeeArrayList* _tmp28_;
				gint _tmp29_;
				gint _tmp30_;
				gchar** _tmp31_;
				gint _tmp31__length1;
				GeeArrayList* _tmp32_;
				gpointer _tmp33_;
				ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp34_;
				const gchar* _tmp35_;
				const gchar* _tmp36_;
				gchar* _tmp37_;
				if (!_tmp26_) {
					gint _tmp27_;
					_tmp27_ = index;
					index = _tmp27_ + 1;
				}
				_tmp26_ = FALSE;
				_tmp28_ = self->priv->choices;
				_tmp29_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp28_);
				_tmp30_ = _tmp29_;
				if (!(index < _tmp30_)) {
					break;
				}
				_tmp31_ = labels;
				_tmp31__length1 = labels_length1;
				_tmp32_ = self->priv->choices;
				_tmp33_ = gee_abstract_list_get ((GeeAbstractList*) _tmp32_, index);
				_tmp34_ = (ProtonPlusWidgetsLaunchOptionResolutionChoice*) _tmp33_;
				_tmp35_ = proton_plus_widgets_launch_option_resolution_choice_get_label (_tmp34_);
				_tmp36_ = _tmp35_;
				_tmp37_ = g_strdup (_tmp36_);
				_g_free0 (_tmp31_[index]);
				_tmp31_[index] = _tmp37_;
				_g_object_unref0 (_tmp34_);
			}
		}
	}
	_tmp38_ = (GtkPropertyExpression*) gtk_property_expression_new (gtk_string_object_get_type (), NULL, "string");
	expression = _tmp38_;
	_tmp39_ = labels;
	_tmp39__length1 = labels_length1;
	_tmp40_ = gtk_string_list_new (_tmp39_);
	_tmp41_ = _gtk_expression_ref0 ((GtkExpression*) expression);
	_tmp42_ = (GtkDropDown*) gtk_drop_down_new ((GListModel*) _tmp40_, _tmp41_);
	g_object_ref_sink (_tmp42_);
	_tmp43_ = _tmp42_;
	proton_plus_widgets_launch_option_resolution_field_set_dropdown (self, _tmp43_);
	_g_object_unref0 (_tmp43_);
	_tmp44_ = self->priv->_dropdown;
	gtk_widget_set_valign ((GtkWidget*) _tmp44_, GTK_ALIGN_CENTER);
	_tmp45_ = (GtkSwitch*) gtk_switch_new ();
	g_object_ref_sink (_tmp45_);
	_tmp46_ = _tmp45_;
	proton_plus_widgets_launch_option_resolution_field_set_toggle (self, _tmp46_);
	_g_object_unref0 (_tmp46_);
	_tmp47_ = self->priv->_toggle;
	gtk_widget_set_valign ((GtkWidget*) _tmp47_, GTK_ALIGN_CENTER);
	_tmp48_ = (GtkEntry*) gtk_entry_new ();
	g_object_ref_sink (_tmp48_);
	_tmp49_ = _tmp48_;
	proton_plus_widgets_launch_option_resolution_field_set_width_entry (self, _tmp49_);
	_g_object_unref0 (_tmp49_);
	_tmp50_ = self->priv->_width_entry;
	gtk_entry_set_input_purpose (_tmp50_, GTK_INPUT_PURPOSE_DIGITS);
	_tmp51_ = self->priv->_width_entry;
	gtk_editable_set_width_chars ((GtkEditable*) _tmp51_, 5);
	_tmp52_ = self->priv->_width_entry;
	gtk_editable_set_max_width_chars ((GtkEditable*) _tmp52_, 5);
	_tmp53_ = self->priv->_width_entry;
	_tmp54_ = g_strdup_printf ("%i", self->priv->committed_width);
	_tmp55_ = _tmp54_;
	gtk_editable_set_text ((GtkEditable*) _tmp53_, _tmp55_);
	_g_free0 (_tmp55_);
	_tmp56_ = self->priv->_width_entry;
	g_signal_connect_object (_tmp56_, "activate", (GCallback) _proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution_gtk_entry_activate, self, 0);
	_tmp57_ = (GtkLabel*) gtk_label_new ("x");
	g_object_ref_sink (_tmp57_);
	separator_label = _tmp57_;
	gtk_widget_add_css_class ((GtkWidget*) separator_label, "dim-label");
	_tmp58_ = (GtkEntry*) gtk_entry_new ();
	g_object_ref_sink (_tmp58_);
	_tmp59_ = _tmp58_;
	proton_plus_widgets_launch_option_resolution_field_set_height_entry (self, _tmp59_);
	_g_object_unref0 (_tmp59_);
	_tmp60_ = self->priv->_height_entry;
	gtk_entry_set_input_purpose (_tmp60_, GTK_INPUT_PURPOSE_DIGITS);
	_tmp61_ = self->priv->_height_entry;
	gtk_editable_set_width_chars ((GtkEditable*) _tmp61_, 5);
	_tmp62_ = self->priv->_height_entry;
	gtk_editable_set_max_width_chars ((GtkEditable*) _tmp62_, 5);
	_tmp63_ = self->priv->_height_entry;
	_tmp64_ = g_strdup_printf ("%i", self->priv->committed_height);
	_tmp65_ = _tmp64_;
	gtk_editable_set_text ((GtkEditable*) _tmp63_, _tmp65_);
	_g_free0 (_tmp65_);
	_tmp66_ = self->priv->_height_entry;
	g_signal_connect_object (_tmp66_, "activate", (GCallback) _proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution_gtk_entry_activate, self, 0);
	_tmp67_ = (GtkButton*) gtk_button_new_with_label (_ ("Set"));
	g_object_ref_sink (_tmp67_);
	_tmp68_ = _tmp67_;
	proton_plus_widgets_launch_option_resolution_field_set_apply_button (self, _tmp68_);
	_g_object_unref0 (_tmp68_);
	_tmp69_ = self->priv->_apply_button;
	gtk_widget_set_tooltip_text ((GtkWidget*) _tmp69_, _ ("Apply the custom resolution"));
	_tmp70_ = self->priv->_apply_button;
	g_signal_connect_object (_tmp70_, "clicked", (GCallback) _proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution_gtk_button_clicked, self, 0);
	_tmp71_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
	g_object_ref_sink (_tmp71_);
	_g_object_unref0 (self->priv->custom_box);
	self->priv->custom_box = _tmp71_;
	_tmp72_ = self->priv->custom_box;
	gtk_widget_set_valign ((GtkWidget*) _tmp72_, GTK_ALIGN_CENTER);
	_tmp73_ = self->priv->custom_box;
	_tmp74_ = self->priv->_width_entry;
	gtk_box_append (_tmp73_, (GtkWidget*) _tmp74_);
	_tmp75_ = self->priv->custom_box;
	gtk_box_append (_tmp75_, (GtkWidget*) separator_label);
	_tmp76_ = self->priv->custom_box;
	_tmp77_ = self->priv->_height_entry;
	gtk_box_append (_tmp76_, (GtkWidget*) _tmp77_);
	_tmp78_ = self->priv->custom_box;
	_tmp79_ = self->priv->_apply_button;
	gtk_box_append (_tmp78_, (GtkWidget*) _tmp79_);
	adw_preferences_row_set_title ((AdwPreferencesRow*) self, title);
	adw_action_row_set_subtitle ((AdwActionRow*) self, subtitle);
	_tmp80_ = self->priv->custom_box;
	adw_action_row_add_suffix ((AdwActionRow*) self, (GtkWidget*) _tmp80_);
	_tmp81_ = self->priv->_dropdown;
	adw_action_row_add_suffix ((AdwActionRow*) self, (GtkWidget*) _tmp81_);
	_tmp82_ = self->priv->_toggle;
	adw_action_row_add_suffix ((AdwActionRow*) self, (GtkWidget*) _tmp82_);
	_tmp83_ = self->priv->_toggle;
	adw_action_row_set_activatable_widget ((AdwActionRow*) self, (GtkWidget*) _tmp83_);
	_tmp84_ = self->priv->_toggle;
	g_signal_connect_object ((GObject*) _tmp84_, "notify::active", (GCallback) _proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility_g_object_notify, self, 0);
	_tmp85_ = self->priv->_dropdown;
	g_signal_connect_object ((GObject*) _tmp85_, "notify::selected", (GCallback) _proton_plus_widgets_launch_option_resolution_field_refresh_custom_visibility_g_object_notify, self, 0);
	_tmp86_ = self->priv->_width_entry;
	g_signal_connect_object ((GtkEditable*) _tmp86_, "changed", (GCallback) _proton_plus_widgets_launch_option_resolution_field_refresh_custom_state_gtk_editable_changed, self, 0);
	_tmp87_ = self->priv->_height_entry;
	g_signal_connect_object ((GtkEditable*) _tmp87_, "changed", (GCallback) _proton_plus_widgets_launch_option_resolution_field_refresh_custom_state_gtk_editable_changed, self, 0);
	proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility (self);
	_g_object_unref0 (separator_label);
	_gtk_expression_unref0 (expression);
	labels = (_vala_array_free (labels, labels_length1, (GDestroyNotify) g_free), NULL);
	return self;
}

ProtonPlusWidgetsLaunchOptionResolutionField*
proton_plus_widgets_launch_option_resolution_field_new (const gchar* title,
                                                        const gchar* subtitle,
                                                        gboolean include_auto)
{
	return proton_plus_widgets_launch_option_resolution_field_construct (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD, title, subtitle, include_auto);
}

void
proton_plus_widgets_launch_option_resolution_field_reset (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GtkSwitch* _tmp0_;
	GtkDropDown* _tmp1_;
	GtkEntry* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GtkEntry* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_toggle;
	gtk_switch_set_active (_tmp0_, FALSE);
	_tmp1_ = self->priv->_dropdown;
	gtk_drop_down_set_selected (_tmp1_, (guint) 0);
	self->priv->committed_width = 3840;
	self->priv->committed_height = 2160;
	_tmp2_ = self->priv->_width_entry;
	_tmp3_ = g_strdup_printf ("%i", self->priv->committed_width);
	_tmp4_ = _tmp3_;
	gtk_editable_set_text ((GtkEditable*) _tmp2_, _tmp4_);
	_g_free0 (_tmp4_);
	_tmp5_ = self->priv->_height_entry;
	_tmp6_ = g_strdup_printf ("%i", self->priv->committed_height);
	_tmp7_ = _tmp6_;
	gtk_editable_set_text ((GtkEditable*) _tmp5_, _tmp7_);
	_g_free0 (_tmp7_);
	proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility (self);
}

void
proton_plus_widgets_launch_option_resolution_field_set_auto (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	g_return_if_fail (self != NULL);
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp0_ = FALSE;
			_tmp0_ = TRUE;
			while (TRUE) {
				GeeArrayList* _tmp2_;
				gint _tmp3_;
				gint _tmp4_;
				GeeArrayList* _tmp5_;
				gpointer _tmp6_;
				ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp7_;
				gboolean _tmp8_;
				gboolean _tmp9_;
				gboolean _tmp10_;
				if (!_tmp0_) {
					gint _tmp1_;
					_tmp1_ = index;
					index = _tmp1_ + 1;
				}
				_tmp0_ = FALSE;
				_tmp2_ = self->priv->choices;
				_tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
				_tmp4_ = _tmp3_;
				if (!(index < _tmp4_)) {
					break;
				}
				_tmp5_ = self->priv->choices;
				_tmp6_ = gee_abstract_list_get ((GeeAbstractList*) _tmp5_, index);
				_tmp7_ = (ProtonPlusWidgetsLaunchOptionResolutionChoice*) _tmp6_;
				_tmp8_ = proton_plus_widgets_launch_option_resolution_choice_get_is_auto (_tmp7_);
				_tmp9_ = _tmp8_;
				_tmp10_ = _tmp9_;
				_g_object_unref0 (_tmp7_);
				if (_tmp10_) {
					GtkSwitch* _tmp11_;
					GtkDropDown* _tmp12_;
					_tmp11_ = self->priv->_toggle;
					gtk_switch_set_active (_tmp11_, TRUE);
					_tmp12_ = self->priv->_dropdown;
					gtk_drop_down_set_selected (_tmp12_, (guint) index);
					proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility (self);
					return;
				}
			}
		}
	}
}

void
proton_plus_widgets_launch_option_resolution_field_set_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                   gint width,
                                                                   gint height)
{
	g_return_if_fail (self != NULL);
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp0_ = FALSE;
			_tmp0_ = TRUE;
			while (TRUE) {
				GeeArrayList* _tmp2_;
				gint _tmp3_;
				gint _tmp4_;
				gboolean _tmp5_ = FALSE;
				gboolean _tmp6_ = FALSE;
				GeeArrayList* _tmp7_;
				gpointer _tmp8_;
				ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp9_;
				gint _tmp10_;
				gint _tmp11_;
				gboolean _tmp12_;
				if (!_tmp0_) {
					gint _tmp1_;
					_tmp1_ = index;
					index = _tmp1_ + 1;
				}
				_tmp0_ = FALSE;
				_tmp2_ = self->priv->choices;
				_tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
				_tmp4_ = _tmp3_;
				if (!(index < _tmp4_)) {
					break;
				}
				_tmp7_ = self->priv->choices;
				_tmp8_ = gee_abstract_list_get ((GeeAbstractList*) _tmp7_, index);
				_tmp9_ = (ProtonPlusWidgetsLaunchOptionResolutionChoice*) _tmp8_;
				_tmp10_ = proton_plus_widgets_launch_option_resolution_choice_get_width (_tmp9_);
				_tmp11_ = _tmp10_;
				_tmp12_ = _tmp11_ == width;
				_g_object_unref0 (_tmp9_);
				if (_tmp12_) {
					GeeArrayList* _tmp13_;
					gpointer _tmp14_;
					ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp15_;
					gint _tmp16_;
					gint _tmp17_;
					_tmp13_ = self->priv->choices;
					_tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, index);
					_tmp15_ = (ProtonPlusWidgetsLaunchOptionResolutionChoice*) _tmp14_;
					_tmp16_ = proton_plus_widgets_launch_option_resolution_choice_get_height (_tmp15_);
					_tmp17_ = _tmp16_;
					_tmp6_ = _tmp17_ == height;
					_g_object_unref0 (_tmp15_);
				} else {
					_tmp6_ = FALSE;
				}
				if (_tmp6_) {
					GeeArrayList* _tmp18_;
					gpointer _tmp19_;
					ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp20_;
					gboolean _tmp21_;
					gboolean _tmp22_;
					_tmp18_ = self->priv->choices;
					_tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, index);
					_tmp20_ = (ProtonPlusWidgetsLaunchOptionResolutionChoice*) _tmp19_;
					_tmp21_ = proton_plus_widgets_launch_option_resolution_choice_get_is_custom (_tmp20_);
					_tmp22_ = _tmp21_;
					_tmp5_ = !_tmp22_;
					_g_object_unref0 (_tmp20_);
				} else {
					_tmp5_ = FALSE;
				}
				if (_tmp5_) {
					GtkSwitch* _tmp23_;
					GtkDropDown* _tmp24_;
					_tmp23_ = self->priv->_toggle;
					gtk_switch_set_active (_tmp23_, TRUE);
					_tmp24_ = self->priv->_dropdown;
					gtk_drop_down_set_selected (_tmp24_, (guint) index);
					proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility (self);
					return;
				}
			}
		}
	}
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp25_ = FALSE;
			_tmp25_ = TRUE;
			while (TRUE) {
				GeeArrayList* _tmp27_;
				gint _tmp28_;
				gint _tmp29_;
				GeeArrayList* _tmp30_;
				gpointer _tmp31_;
				ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp32_;
				gboolean _tmp33_;
				gboolean _tmp34_;
				gboolean _tmp35_;
				GtkEntry* _tmp36_;
				gchar* _tmp37_;
				gchar* _tmp38_;
				GtkEntry* _tmp39_;
				gchar* _tmp40_;
				gchar* _tmp41_;
				GtkSwitch* _tmp42_;
				GtkDropDown* _tmp43_;
				if (!_tmp25_) {
					gint _tmp26_;
					_tmp26_ = index;
					index = _tmp26_ + 1;
				}
				_tmp25_ = FALSE;
				_tmp27_ = self->priv->choices;
				_tmp28_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp27_);
				_tmp29_ = _tmp28_;
				if (!(index < _tmp29_)) {
					break;
				}
				_tmp30_ = self->priv->choices;
				_tmp31_ = gee_abstract_list_get ((GeeAbstractList*) _tmp30_, index);
				_tmp32_ = (ProtonPlusWidgetsLaunchOptionResolutionChoice*) _tmp31_;
				_tmp33_ = proton_plus_widgets_launch_option_resolution_choice_get_is_custom (_tmp32_);
				_tmp34_ = _tmp33_;
				_tmp35_ = !_tmp34_;
				_g_object_unref0 (_tmp32_);
				if (_tmp35_) {
					continue;
				}
				self->priv->committed_width = width;
				self->priv->committed_height = height;
				_tmp36_ = self->priv->_width_entry;
				_tmp37_ = g_strdup_printf ("%i", self->priv->committed_width);
				_tmp38_ = _tmp37_;
				gtk_editable_set_text ((GtkEditable*) _tmp36_, _tmp38_);
				_g_free0 (_tmp38_);
				_tmp39_ = self->priv->_height_entry;
				_tmp40_ = g_strdup_printf ("%i", self->priv->committed_height);
				_tmp41_ = _tmp40_;
				gtk_editable_set_text ((GtkEditable*) _tmp39_, _tmp41_);
				_g_free0 (_tmp41_);
				_tmp42_ = self->priv->_toggle;
				gtk_switch_set_active (_tmp42_, TRUE);
				_tmp43_ = self->priv->_dropdown;
				gtk_drop_down_set_selected (_tmp43_, (guint) index);
				proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility (self);
				return;
			}
		}
	}
}

gboolean
proton_plus_widgets_launch_option_resolution_field_is_default (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GtkSwitch* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->_toggle;
	result = !gtk_switch_get_active (_tmp0_);
	return result;
}

gboolean
proton_plus_widgets_launch_option_resolution_field_is_auto (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	gboolean _tmp0_ = FALSE;
	GtkSwitch* _tmp1_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp1_ = self->priv->_toggle;
	if (gtk_switch_get_active (_tmp1_)) {
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp2_;
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp3_;
		gboolean _tmp4_;
		gboolean _tmp5_;
		_tmp2_ = proton_plus_widgets_launch_option_resolution_field_get_selected_choice (self);
		_tmp3_ = _tmp2_;
		_tmp4_ = proton_plus_widgets_launch_option_resolution_choice_get_is_auto (_tmp3_);
		_tmp5_ = _tmp4_;
		_tmp0_ = _tmp5_;
		_g_object_unref0 (_tmp3_);
	} else {
		_tmp0_ = FALSE;
	}
	result = _tmp0_;
	return result;
}

gboolean
proton_plus_widgets_launch_option_resolution_field_has_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GtkSwitch* _tmp0_;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp3_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->_toggle;
	if (!gtk_switch_get_active (_tmp0_)) {
		result = FALSE;
		return result;
	}
	_tmp3_ = proton_plus_widgets_launch_option_resolution_field_get_selected_choice (self);
	_tmp4_ = _tmp3_;
	_tmp5_ = proton_plus_widgets_launch_option_resolution_choice_get_is_custom (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = _tmp6_;
	_g_object_unref0 (_tmp4_);
	if (_tmp7_) {
		_tmp2_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp8_;
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
		_tmp8_ = proton_plus_widgets_launch_option_resolution_field_get_selected_choice (self);
		_tmp9_ = _tmp8_;
		_tmp10_ = proton_plus_widgets_launch_option_resolution_choice_get_width (_tmp9_);
		_tmp11_ = _tmp10_;
		_tmp2_ = _tmp11_ > 0;
		_g_object_unref0 (_tmp9_);
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp12_;
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp13_;
		gint _tmp14_;
		gint _tmp15_;
		_tmp12_ = proton_plus_widgets_launch_option_resolution_field_get_selected_choice (self);
		_tmp13_ = _tmp12_;
		_tmp14_ = proton_plus_widgets_launch_option_resolution_choice_get_height (_tmp13_);
		_tmp15_ = _tmp14_;
		_tmp1_ = _tmp15_ > 0;
		_g_object_unref0 (_tmp13_);
	}
	result = _tmp1_;
	return result;
}

void
proton_plus_widgets_launch_option_resolution_field_get_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                   gint* width,
                                                                   gint* height)
{
	gint _vala_width = 0;
	gint _vala_height = 0;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* selected_choice = NULL;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp0_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = proton_plus_widgets_launch_option_resolution_field_get_selected_choice (self);
	selected_choice = _tmp0_;
	_tmp1_ = selected_choice;
	_tmp2_ = proton_plus_widgets_launch_option_resolution_choice_get_is_custom (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		_vala_width = self->priv->committed_width;
		_vala_height = self->priv->committed_height;
	} else {
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
		_tmp4_ = selected_choice;
		_tmp5_ = proton_plus_widgets_launch_option_resolution_choice_get_width (_tmp4_);
		_tmp6_ = _tmp5_;
		_vala_width = _tmp6_;
		_tmp7_ = selected_choice;
		_tmp8_ = proton_plus_widgets_launch_option_resolution_choice_get_height (_tmp7_);
		_tmp9_ = _tmp8_;
		_vala_height = _tmp9_;
	}
	_g_object_unref0 (selected_choice);
	if (width) {
		*width = _vala_width;
	}
	if (height) {
		*height = _vala_height;
	}
}

static ProtonPlusWidgetsLaunchOptionResolutionChoice*
proton_plus_widgets_launch_option_resolution_field_get_selected_choice (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GeeArrayList* _tmp0_;
	GtkDropDown* _tmp1_;
	gpointer _tmp2_;
	ProtonPlusWidgetsLaunchOptionResolutionChoice* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->choices;
	_tmp1_ = self->priv->_dropdown;
	_tmp2_ = gee_abstract_list_get ((GeeAbstractList*) _tmp0_, (gint) gtk_drop_down_get_selected (_tmp1_));
	result = (ProtonPlusWidgetsLaunchOptionResolutionChoice*) _tmp2_;
	return result;
}

static void
proton_plus_widgets_launch_option_resolution_field_refresh_options_visibility (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	gboolean is_active = FALSE;
	GtkSwitch* _tmp0_;
	GtkDropDown* _tmp1_;
	GtkDropDown* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_toggle;
	is_active = gtk_switch_get_active (_tmp0_);
	_tmp1_ = self->priv->_dropdown;
	gtk_widget_set_visible ((GtkWidget*) _tmp1_, is_active);
	_tmp2_ = self->priv->_dropdown;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp2_, is_active);
	proton_plus_widgets_launch_option_resolution_field_refresh_custom_visibility (self);
}

static void
proton_plus_widgets_launch_option_resolution_field_refresh_custom_visibility (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	gboolean _tmp0_ = FALSE;
	GtkSwitch* _tmp1_;
	GtkBox* _tmp6_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->_toggle;
	if (gtk_switch_get_active (_tmp1_)) {
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp2_;
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp3_;
		gboolean _tmp4_;
		gboolean _tmp5_;
		_tmp2_ = proton_plus_widgets_launch_option_resolution_field_get_selected_choice (self);
		_tmp3_ = _tmp2_;
		_tmp4_ = proton_plus_widgets_launch_option_resolution_choice_get_is_custom (_tmp3_);
		_tmp5_ = _tmp4_;
		_tmp0_ = _tmp5_;
		_g_object_unref0 (_tmp3_);
	} else {
		_tmp0_ = FALSE;
	}
	_tmp6_ = self->priv->custom_box;
	gtk_widget_set_visible ((GtkWidget*) _tmp6_, _tmp0_);
	proton_plus_widgets_launch_option_resolution_field_refresh_custom_state (self);
}

static void
proton_plus_widgets_launch_option_resolution_field_apply_pending_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	gint pending_width = 0;
	gint pending_height = 0;
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
	gboolean _tmp2_;
	GtkEntry* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	GtkEntry* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	g_return_if_fail (self != NULL);
	_tmp2_ = proton_plus_widgets_launch_option_resolution_field_get_pending_resolution (self, &_tmp0_, &_tmp1_);
	pending_width = _tmp0_;
	pending_height = _tmp1_;
	if (!_tmp2_) {
		return;
	}
	self->priv->committed_width = pending_width;
	self->priv->committed_height = pending_height;
	_tmp3_ = self->priv->_width_entry;
	_tmp4_ = g_strdup_printf ("%i", self->priv->committed_width);
	_tmp5_ = _tmp4_;
	gtk_editable_set_text ((GtkEditable*) _tmp3_, _tmp5_);
	_g_free0 (_tmp5_);
	_tmp6_ = self->priv->_height_entry;
	_tmp7_ = g_strdup_printf ("%i", self->priv->committed_height);
	_tmp8_ = _tmp7_;
	gtk_editable_set_text ((GtkEditable*) _tmp6_, _tmp8_);
	_g_free0 (_tmp8_);
	proton_plus_widgets_launch_option_resolution_field_refresh_custom_state (self);
	g_signal_emit (self, proton_plus_widgets_launch_option_resolution_field_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_VALUE_APPLIED_SIGNAL], 0);
}

static gboolean
proton_plus_widgets_launch_option_resolution_field_get_pending_resolution (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                           gint* width,
                                                                           gint* height)
{
	gint _vala_width = 0;
	gint _vala_height = 0;
	gchar* width_text = NULL;
	GtkEntry* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* height_text = NULL;
	GtkEntry* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gboolean _tmp6_ = FALSE;
	const gchar* _tmp7_;
	gboolean _tmp9_ = FALSE;
	const gchar* _tmp10_;
	gint _tmp11_ = 0;
	gboolean _tmp12_;
	gboolean _tmp16_ = FALSE;
	gboolean _tmp17_ = FALSE;
	gboolean _tmp18_ = FALSE;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_vala_width = self->priv->committed_width;
	_vala_height = self->priv->committed_height;
	_tmp0_ = self->priv->_width_entry;
	_tmp1_ = gtk_editable_get_text ((GtkEditable*) _tmp0_);
	_tmp2_ = string_strip (_tmp1_);
	width_text = _tmp2_;
	_tmp3_ = self->priv->_height_entry;
	_tmp4_ = gtk_editable_get_text ((GtkEditable*) _tmp3_);
	_tmp5_ = string_strip (_tmp4_);
	height_text = _tmp5_;
	_tmp7_ = width_text;
	if (g_strcmp0 (_tmp7_, "") == 0) {
		_tmp6_ = TRUE;
	} else {
		const gchar* _tmp8_;
		_tmp8_ = height_text;
		_tmp6_ = g_strcmp0 (_tmp8_, "") == 0;
	}
	if (_tmp6_) {
		result = FALSE;
		_g_free0 (height_text);
		_g_free0 (width_text);
		if (width) {
			*width = _vala_width;
		}
		if (height) {
			*height = _vala_height;
		}
		return result;
	}
	_tmp10_ = width_text;
	_tmp12_ = int_try_parse (_tmp10_, &_tmp11_, NULL, (guint) 0);
	_vala_width = _tmp11_;
	if (!_tmp12_) {
		_tmp9_ = TRUE;
	} else {
		const gchar* _tmp13_;
		gint _tmp14_ = 0;
		gboolean _tmp15_;
		_tmp13_ = height_text;
		_tmp15_ = int_try_parse (_tmp13_, &_tmp14_, NULL, (guint) 0);
		_vala_height = _tmp14_;
		_tmp9_ = !_tmp15_;
	}
	if (_tmp9_) {
		result = FALSE;
		_g_free0 (height_text);
		_g_free0 (width_text);
		if (width) {
			*width = _vala_width;
		}
		if (height) {
			*height = _vala_height;
		}
		return result;
	}
	if (_vala_width >= 320) {
		_tmp18_ = _vala_width <= 7680;
	} else {
		_tmp18_ = FALSE;
	}
	if (_tmp18_) {
		_tmp17_ = _vala_height >= 240;
	} else {
		_tmp17_ = FALSE;
	}
	if (_tmp17_) {
		_tmp16_ = _vala_height <= 4320;
	} else {
		_tmp16_ = FALSE;
	}
	result = _tmp16_;
	_g_free0 (height_text);
	_g_free0 (width_text);
	if (width) {
		*width = _vala_width;
	}
	if (height) {
		*height = _vala_height;
	}
	return result;
}

static void
proton_plus_widgets_launch_option_resolution_field_refresh_custom_state (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	gboolean _tmp0_ = FALSE;
	GtkSwitch* _tmp1_;
	gboolean is_custom = FALSE;
	GtkEntry* _tmp6_;
	GtkEntry* _tmp7_;
	gint pending_width = 0;
	gint pending_height = 0;
	gboolean has_pending_resolution = FALSE;
	gint _tmp8_ = 0;
	gint _tmp9_ = 0;
	gboolean _tmp10_;
	gboolean _tmp11_ = FALSE;
	gboolean _tmp12_ = FALSE;
	GtkButton* _tmp14_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->_toggle;
	if (gtk_switch_get_active (_tmp1_)) {
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp2_;
		ProtonPlusWidgetsLaunchOptionResolutionChoice* _tmp3_;
		gboolean _tmp4_;
		gboolean _tmp5_;
		_tmp2_ = proton_plus_widgets_launch_option_resolution_field_get_selected_choice (self);
		_tmp3_ = _tmp2_;
		_tmp4_ = proton_plus_widgets_launch_option_resolution_choice_get_is_custom (_tmp3_);
		_tmp5_ = _tmp4_;
		_tmp0_ = _tmp5_;
		_g_object_unref0 (_tmp3_);
	} else {
		_tmp0_ = FALSE;
	}
	is_custom = _tmp0_;
	_tmp6_ = self->priv->_width_entry;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp6_, is_custom);
	_tmp7_ = self->priv->_height_entry;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp7_, is_custom);
	_tmp10_ = proton_plus_widgets_launch_option_resolution_field_get_pending_resolution (self, &_tmp8_, &_tmp9_);
	pending_width = _tmp8_;
	pending_height = _tmp9_;
	has_pending_resolution = _tmp10_;
	if (is_custom) {
		_tmp12_ = has_pending_resolution;
	} else {
		_tmp12_ = FALSE;
	}
	if (_tmp12_) {
		gboolean _tmp13_ = FALSE;
		if (pending_width != self->priv->committed_width) {
			_tmp13_ = TRUE;
		} else {
			_tmp13_ = pending_height != self->priv->committed_height;
		}
		_tmp11_ = _tmp13_;
	} else {
		_tmp11_ = FALSE;
	}
	_tmp14_ = self->priv->_apply_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp14_, _tmp11_);
}

GtkSwitch*
proton_plus_widgets_launch_option_resolution_field_get_toggle (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GtkSwitch* result;
	GtkSwitch* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_toggle;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_resolution_field_set_toggle (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                               GtkSwitch* value)
{
	GtkSwitch* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_field_get_toggle (self);
	if (old_value != value) {
		GtkSwitch* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_toggle);
		self->priv->_toggle = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_TOGGLE_PROPERTY]);
	}
}

GtkDropDown*
proton_plus_widgets_launch_option_resolution_field_get_dropdown (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GtkDropDown* result;
	GtkDropDown* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_dropdown;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_resolution_field_set_dropdown (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                 GtkDropDown* value)
{
	GtkDropDown* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_field_get_dropdown (self);
	if (old_value != value) {
		GtkDropDown* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_dropdown);
		self->priv->_dropdown = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_DROPDOWN_PROPERTY]);
	}
}

GtkEntry*
proton_plus_widgets_launch_option_resolution_field_get_width_entry (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GtkEntry* result;
	GtkEntry* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_width_entry;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_resolution_field_set_width_entry (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                    GtkEntry* value)
{
	GtkEntry* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_field_get_width_entry (self);
	if (old_value != value) {
		GtkEntry* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_width_entry);
		self->priv->_width_entry = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_WIDTH_ENTRY_PROPERTY]);
	}
}

GtkEntry*
proton_plus_widgets_launch_option_resolution_field_get_height_entry (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GtkEntry* result;
	GtkEntry* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_height_entry;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_resolution_field_set_height_entry (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                     GtkEntry* value)
{
	GtkEntry* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_field_get_height_entry (self);
	if (old_value != value) {
		GtkEntry* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_height_entry);
		self->priv->_height_entry = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_HEIGHT_ENTRY_PROPERTY]);
	}
}

GtkButton*
proton_plus_widgets_launch_option_resolution_field_get_apply_button (ProtonPlusWidgetsLaunchOptionResolutionField* self)
{
	GtkButton* result;
	GtkButton* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_apply_button;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_resolution_field_set_apply_button (ProtonPlusWidgetsLaunchOptionResolutionField* self,
                                                                     GtkButton* value)
{
	GtkButton* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_resolution_field_get_apply_button (self);
	if (old_value != value) {
		GtkButton* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_apply_button);
		self->priv->_apply_button = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_APPLY_BUTTON_PROPERTY]);
	}
}

static void
proton_plus_widgets_launch_option_resolution_field_class_init (ProtonPlusWidgetsLaunchOptionResolutionFieldClass * klass,
                                                               gpointer klass_data)
{
	proton_plus_widgets_launch_option_resolution_field_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsLaunchOptionResolutionField_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_launch_option_resolution_field_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_launch_option_resolution_field_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_launch_option_resolution_field_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_TOGGLE_PROPERTY, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_TOGGLE_PROPERTY] = g_param_spec_object ("toggle", "toggle", "toggle", gtk_switch_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_DROPDOWN_PROPERTY, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_DROPDOWN_PROPERTY] = g_param_spec_object ("dropdown", "dropdown", "dropdown", gtk_drop_down_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_WIDTH_ENTRY_PROPERTY, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_WIDTH_ENTRY_PROPERTY] = g_param_spec_object ("width-entry", "width-entry", "width-entry", gtk_entry_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_HEIGHT_ENTRY_PROPERTY, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_HEIGHT_ENTRY_PROPERTY] = g_param_spec_object ("height-entry", "height-entry", "height-entry", gtk_entry_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_APPLY_BUTTON_PROPERTY, proton_plus_widgets_launch_option_resolution_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_APPLY_BUTTON_PROPERTY] = g_param_spec_object ("apply-button", "apply-button", "apply-button", gtk_button_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	proton_plus_widgets_launch_option_resolution_field_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_VALUE_APPLIED_SIGNAL] = g_signal_new ("value-applied", PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
proton_plus_widgets_launch_option_resolution_field_instance_init (ProtonPlusWidgetsLaunchOptionResolutionField * self,
                                                                  gpointer klass)
{
	self->priv = proton_plus_widgets_launch_option_resolution_field_get_instance_private (self);
}

static void
proton_plus_widgets_launch_option_resolution_field_finalize (GObject * obj)
{
	ProtonPlusWidgetsLaunchOptionResolutionField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD, ProtonPlusWidgetsLaunchOptionResolutionField);
	_g_object_unref0 (self->priv->_toggle);
	_g_object_unref0 (self->priv->_dropdown);
	_g_object_unref0 (self->priv->_width_entry);
	_g_object_unref0 (self->priv->_height_entry);
	_g_object_unref0 (self->priv->_apply_button);
	_g_object_unref0 (self->priv->custom_box);
	_g_object_unref0 (self->priv->choices);
	G_OBJECT_CLASS (proton_plus_widgets_launch_option_resolution_field_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_launch_option_resolution_field_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsLaunchOptionResolutionFieldClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_launch_option_resolution_field_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsLaunchOptionResolutionField), 0, (GInstanceInitFunc) proton_plus_widgets_launch_option_resolution_field_instance_init, NULL };
	GType proton_plus_widgets_launch_option_resolution_field_type_id;
	proton_plus_widgets_launch_option_resolution_field_type_id = g_type_register_static (adw_action_row_get_type (), "ProtonPlusWidgetsLaunchOptionResolutionField", &g_define_type_info, 0);
	ProtonPlusWidgetsLaunchOptionResolutionField_private_offset = g_type_add_instance_private (proton_plus_widgets_launch_option_resolution_field_type_id, sizeof (ProtonPlusWidgetsLaunchOptionResolutionFieldPrivate));
	return proton_plus_widgets_launch_option_resolution_field_type_id;
}

GType
proton_plus_widgets_launch_option_resolution_field_get_type (void)
{
	static volatile gsize proton_plus_widgets_launch_option_resolution_field_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_launch_option_resolution_field_type_id__once)) {
		GType proton_plus_widgets_launch_option_resolution_field_type_id;
		proton_plus_widgets_launch_option_resolution_field_type_id = proton_plus_widgets_launch_option_resolution_field_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_launch_option_resolution_field_type_id__once, proton_plus_widgets_launch_option_resolution_field_type_id);
	}
	return proton_plus_widgets_launch_option_resolution_field_type_id__once;
}

static void
_vala_proton_plus_widgets_launch_option_resolution_field_get_property (GObject * object,
                                                                       guint property_id,
                                                                       GValue * value,
                                                                       GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionResolutionField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD, ProtonPlusWidgetsLaunchOptionResolutionField);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_TOGGLE_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_resolution_field_get_toggle (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_DROPDOWN_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_resolution_field_get_dropdown (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_WIDTH_ENTRY_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_resolution_field_get_width_entry (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_HEIGHT_ENTRY_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_resolution_field_get_height_entry (self));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_APPLY_BUTTON_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_resolution_field_get_apply_button (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_launch_option_resolution_field_set_property (GObject * object,
                                                                       guint property_id,
                                                                       const GValue * value,
                                                                       GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionResolutionField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_RESOLUTION_FIELD, ProtonPlusWidgetsLaunchOptionResolutionField);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_TOGGLE_PROPERTY:
		proton_plus_widgets_launch_option_resolution_field_set_toggle (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_DROPDOWN_PROPERTY:
		proton_plus_widgets_launch_option_resolution_field_set_dropdown (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_WIDTH_ENTRY_PROPERTY:
		proton_plus_widgets_launch_option_resolution_field_set_width_entry (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_HEIGHT_ENTRY_PROPERTY:
		proton_plus_widgets_launch_option_resolution_field_set_height_entry (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_RESOLUTION_FIELD_APPLY_BUTTON_PROPERTY:
		proton_plus_widgets_launch_option_resolution_field_set_apply_button (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_launch_option_preview_field_get_instance_private (ProtonPlusWidgetsLaunchOptionPreviewField* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsLaunchOptionPreviewField_private_offset);
}

ProtonPlusWidgetsLaunchOptionPreviewField*
proton_plus_widgets_launch_option_preview_field_construct (GType object_type,
                                                           const gchar* title)
{
	ProtonPlusWidgetsLaunchOptionPreviewField * self = NULL;
	AdwPreferencesGroup* group = NULL;
	AdwPreferencesGroup* _tmp0_;
	GtkLabel* _tmp1_;
	GtkLabel* _tmp2_;
	GtkLabel* _tmp3_;
	GtkLabel* _tmp4_;
	GtkLabel* _tmp5_;
	GtkLabel* _tmp6_;
	GtkLabel* _tmp7_;
	GtkLabel* _tmp8_;
	GtkLabel* _tmp9_;
	GtkLabel* _tmp10_;
	GtkLabel* _tmp11_;
	GtkScrolledWindow* scrolled_window = NULL;
	GtkScrolledWindow* _tmp12_;
	GtkLabel* _tmp13_;
	g_return_val_if_fail (title != NULL, NULL);
	self = (ProtonPlusWidgetsLaunchOptionPreviewField*) g_object_new (object_type, "orientation", GTK_ORIENTATION_VERTICAL, "spacing", 0, NULL);
	_tmp0_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp0_);
	group = _tmp0_;
	adw_preferences_group_set_title (group, title);
	_tmp1_ = (GtkLabel*) gtk_label_new ("");
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	proton_plus_widgets_launch_option_preview_field_set_preview_label (self, _tmp2_);
	_g_object_unref0 (_tmp2_);
	_tmp3_ = self->priv->_preview_label;
	gtk_label_set_xalign (_tmp3_, (gfloat) 0);
	_tmp4_ = self->priv->_preview_label;
	gtk_label_set_yalign (_tmp4_, (gfloat) 0);
	_tmp5_ = self->priv->_preview_label;
	gtk_label_set_use_markup (_tmp5_, TRUE);
	_tmp6_ = self->priv->_preview_label;
	gtk_label_set_selectable (_tmp6_, TRUE);
	_tmp7_ = self->priv->_preview_label;
	gtk_label_set_wrap (_tmp7_, FALSE);
	_tmp8_ = self->priv->_preview_label;
	gtk_widget_set_margin_start ((GtkWidget*) _tmp8_, 12);
	_tmp9_ = self->priv->_preview_label;
	gtk_widget_set_margin_end ((GtkWidget*) _tmp9_, 12);
	_tmp10_ = self->priv->_preview_label;
	gtk_widget_set_margin_top ((GtkWidget*) _tmp10_, 12);
	_tmp11_ = self->priv->_preview_label;
	gtk_widget_set_margin_bottom ((GtkWidget*) _tmp11_, 12);
	_tmp12_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
	g_object_ref_sink (_tmp12_);
	scrolled_window = _tmp12_;
	gtk_scrolled_window_set_policy (scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
	gtk_scrolled_window_set_min_content_height (scrolled_window, 56);
	_tmp13_ = self->priv->_preview_label;
	gtk_scrolled_window_set_child (scrolled_window, (GtkWidget*) _tmp13_);
	gtk_widget_add_css_class ((GtkWidget*) scrolled_window, "card");
	adw_preferences_group_add (group, (GtkWidget*) scrolled_window);
	gtk_box_append ((GtkBox*) self, (GtkWidget*) group);
	_g_object_unref0 (scrolled_window);
	_g_object_unref0 (group);
	return self;
}

ProtonPlusWidgetsLaunchOptionPreviewField*
proton_plus_widgets_launch_option_preview_field_new (const gchar* title)
{
	return proton_plus_widgets_launch_option_preview_field_construct (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD, title);
}

GtkLabel*
proton_plus_widgets_launch_option_preview_field_get_preview_label (ProtonPlusWidgetsLaunchOptionPreviewField* self)
{
	GtkLabel* result;
	GtkLabel* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_preview_label;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_option_preview_field_set_preview_label (ProtonPlusWidgetsLaunchOptionPreviewField* self,
                                                                   GtkLabel* value)
{
	GtkLabel* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_launch_option_preview_field_get_preview_label (self);
	if (old_value != value) {
		GtkLabel* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_preview_label);
		self->priv->_preview_label = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_launch_option_preview_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_PREVIEW_LABEL_PROPERTY]);
	}
}

static void
proton_plus_widgets_launch_option_preview_field_class_init (ProtonPlusWidgetsLaunchOptionPreviewFieldClass * klass,
                                                            gpointer klass_data)
{
	proton_plus_widgets_launch_option_preview_field_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsLaunchOptionPreviewField_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_launch_option_preview_field_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_launch_option_preview_field_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_launch_option_preview_field_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_PREVIEW_LABEL_PROPERTY, proton_plus_widgets_launch_option_preview_field_properties[PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_PREVIEW_LABEL_PROPERTY] = g_param_spec_object ("preview-label", "preview-label", "preview-label", gtk_label_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
proton_plus_widgets_launch_option_preview_field_instance_init (ProtonPlusWidgetsLaunchOptionPreviewField * self,
                                                               gpointer klass)
{
	self->priv = proton_plus_widgets_launch_option_preview_field_get_instance_private (self);
}

static void
proton_plus_widgets_launch_option_preview_field_finalize (GObject * obj)
{
	ProtonPlusWidgetsLaunchOptionPreviewField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD, ProtonPlusWidgetsLaunchOptionPreviewField);
	_g_object_unref0 (self->priv->_preview_label);
	G_OBJECT_CLASS (proton_plus_widgets_launch_option_preview_field_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_launch_option_preview_field_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsLaunchOptionPreviewFieldClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_launch_option_preview_field_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsLaunchOptionPreviewField), 0, (GInstanceInitFunc) proton_plus_widgets_launch_option_preview_field_instance_init, NULL };
	GType proton_plus_widgets_launch_option_preview_field_type_id;
	proton_plus_widgets_launch_option_preview_field_type_id = g_type_register_static (gtk_box_get_type (), "ProtonPlusWidgetsLaunchOptionPreviewField", &g_define_type_info, 0);
	ProtonPlusWidgetsLaunchOptionPreviewField_private_offset = g_type_add_instance_private (proton_plus_widgets_launch_option_preview_field_type_id, sizeof (ProtonPlusWidgetsLaunchOptionPreviewFieldPrivate));
	return proton_plus_widgets_launch_option_preview_field_type_id;
}

GType
proton_plus_widgets_launch_option_preview_field_get_type (void)
{
	static volatile gsize proton_plus_widgets_launch_option_preview_field_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_launch_option_preview_field_type_id__once)) {
		GType proton_plus_widgets_launch_option_preview_field_type_id;
		proton_plus_widgets_launch_option_preview_field_type_id = proton_plus_widgets_launch_option_preview_field_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_launch_option_preview_field_type_id__once, proton_plus_widgets_launch_option_preview_field_type_id);
	}
	return proton_plus_widgets_launch_option_preview_field_type_id__once;
}

static void
_vala_proton_plus_widgets_launch_option_preview_field_get_property (GObject * object,
                                                                    guint property_id,
                                                                    GValue * value,
                                                                    GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionPreviewField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD, ProtonPlusWidgetsLaunchOptionPreviewField);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_PREVIEW_LABEL_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_launch_option_preview_field_get_preview_label (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_launch_option_preview_field_set_property (GObject * object,
                                                                    guint property_id,
                                                                    const GValue * value,
                                                                    GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionPreviewField * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTION_PREVIEW_FIELD, ProtonPlusWidgetsLaunchOptionPreviewField);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_LAUNCH_OPTION_PREVIEW_FIELD_PREVIEW_LABEL_PROPERTY:
		proton_plus_widgets_launch_option_preview_field_set_preview_label (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_launch_options_editor_get_instance_private (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsLaunchOptionsEditor_private_offset);
}

static void
_g_object_unref0_ (gpointer var)
{
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
}

static inline void
_g_list_free__g_object_unref0_ (GList* self)
{
	g_list_free_full (self, (GDestroyNotify) _g_object_unref0_);
}

gboolean
proton_plus_widgets_launch_options_editor_get_advanced_visible (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->advanced_visible;
	return result;
}

void
proton_plus_widgets_launch_options_editor_set_advanced_visible (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                gboolean visible)
{
	g_return_if_fail (self != NULL);
	self->priv->advanced_visible = visible;
	proton_plus_widgets_launch_options_editor_refresh_advanced_visibility (self);
}

void
proton_plus_widgets_launch_options_editor_clear (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean keep_advanced_visible = FALSE;
	g_return_if_fail (self != NULL);
	keep_advanced_visible = self->priv->advanced_visible;
	proton_plus_widgets_launch_options_editor_set_text (self, "");
	proton_plus_widgets_launch_options_editor_set_advanced_visible (self, keep_advanced_visible);
}

gboolean
proton_plus_widgets_launch_options_editor_has_clearable_state (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	GList* _tmp3_;
	GList* _tmp8_;
	GList* _tmp13_;
	GList* _tmp18_;
	gboolean _tmp23_ = FALSE;
	gboolean _tmp24_ = FALSE;
	gboolean _tmp25_ = FALSE;
	gboolean _tmp26_ = FALSE;
	gboolean _tmp27_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp28_;
	GtkSwitch* _tmp29_;
	GtkSwitch* _tmp30_;
	gboolean _tmp46_ = FALSE;
	gboolean _tmp47_ = FALSE;
	gboolean _tmp48_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp49_;
	GtkSwitch* _tmp50_;
	GtkSwitch* _tmp51_;
	gboolean _tmp61_ = FALSE;
	gboolean _tmp62_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp63_;
	GtkSwitch* _tmp64_;
	GtkSwitch* _tmp65_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->_hdr_tile;
	_tmp1_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp0_);
	_tmp2_ = _tmp1_;
	if (gtk_switch_get_active (_tmp2_)) {
		result = TRUE;
		return result;
	}
	_tmp3_ = self->priv->common_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp3_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp4_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp4_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp4_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp5_;
				GtkSwitch* _tmp6_;
				GtkSwitch* _tmp7_;
				_tmp5_ = binding;
				_tmp6_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp5_);
				_tmp7_ = _tmp6_;
				if (gtk_switch_get_active (_tmp7_)) {
					result = TRUE;
					_g_object_unref0 (binding);
					return result;
				}
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp8_ = self->priv->gpu_vendor_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp8_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp9_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp9_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp9_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp10_;
				GtkSwitch* _tmp11_;
				GtkSwitch* _tmp12_;
				_tmp10_ = binding;
				_tmp11_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp10_);
				_tmp12_ = _tmp11_;
				if (gtk_switch_get_active (_tmp12_)) {
					result = TRUE;
					_g_object_unref0 (binding);
					return result;
				}
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp13_ = self->priv->game_argument_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp13_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp14_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp14_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp14_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp15_;
				GtkSwitch* _tmp16_;
				GtkSwitch* _tmp17_;
				_tmp15_ = binding;
				_tmp16_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp15_);
				_tmp17_ = _tmp16_;
				if (gtk_switch_get_active (_tmp17_)) {
					result = TRUE;
					_g_object_unref0 (binding);
					return result;
				}
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp18_ = self->priv->scopebuddy_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp18_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp19_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp19_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp19_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp20_;
				GtkSwitch* _tmp21_;
				GtkSwitch* _tmp22_;
				_tmp20_ = binding;
				_tmp21_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp20_);
				_tmp22_ = _tmp21_;
				if (gtk_switch_get_active (_tmp22_)) {
					result = TRUE;
					_g_object_unref0 (binding);
					return result;
				}
				_g_object_unref0 (binding);
			}
		}
	}
	if (proton_plus_widgets_launch_options_editor_get_selected_wrapper_mode (self) != PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE) {
		result = TRUE;
		return result;
	}
	_tmp28_ = self->priv->_gamescope_fullscreen_tile;
	_tmp29_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp28_);
	_tmp30_ = _tmp29_;
	if (gtk_switch_get_active (_tmp30_)) {
		_tmp27_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp31_;
		GtkSwitch* _tmp32_;
		GtkSwitch* _tmp33_;
		_tmp31_ = self->priv->_gamescope_hdr_tile;
		_tmp32_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp31_);
		_tmp33_ = _tmp32_;
		_tmp27_ = gtk_switch_get_active (_tmp33_);
	}
	if (_tmp27_) {
		_tmp26_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp34_;
		GtkSwitch* _tmp35_;
		GtkSwitch* _tmp36_;
		_tmp34_ = self->priv->_gamescope_vrr_tile;
		_tmp35_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp34_);
		_tmp36_ = _tmp35_;
		_tmp26_ = gtk_switch_get_active (_tmp36_);
	}
	if (_tmp26_) {
		_tmp25_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionSpinTile* _tmp37_;
		GtkSwitch* _tmp38_;
		GtkSwitch* _tmp39_;
		_tmp37_ = self->priv->_gamescope_framerate_tile;
		_tmp38_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp37_);
		_tmp39_ = _tmp38_;
		_tmp25_ = gtk_switch_get_active (_tmp39_);
	}
	if (_tmp25_) {
		_tmp24_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionResolutionField* _tmp40_;
		GtkSwitch* _tmp41_;
		GtkSwitch* _tmp42_;
		_tmp40_ = self->priv->_gamescope_resolution_field;
		_tmp41_ = proton_plus_widgets_launch_option_resolution_field_get_toggle (_tmp40_);
		_tmp42_ = _tmp41_;
		_tmp24_ = gtk_switch_get_active (_tmp42_);
	}
	if (_tmp24_) {
		_tmp23_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp43_;
		gchar* _tmp44_;
		gchar* _tmp45_;
		_tmp43_ = self->priv->_gamescope_args_field;
		_tmp44_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp43_);
		_tmp45_ = _tmp44_;
		_tmp23_ = g_strcmp0 (_tmp45_, "") != 0;
		_g_free0 (_tmp45_);
	}
	if (_tmp23_) {
		result = TRUE;
		return result;
	}
	_tmp49_ = self->priv->_scopebuddy_fullscreen_tile;
	_tmp50_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp49_);
	_tmp51_ = _tmp50_;
	if (gtk_switch_get_active (_tmp51_)) {
		_tmp48_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionSpinTile* _tmp52_;
		GtkSwitch* _tmp53_;
		GtkSwitch* _tmp54_;
		_tmp52_ = self->priv->_scopebuddy_framerate_tile;
		_tmp53_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp52_);
		_tmp54_ = _tmp53_;
		_tmp48_ = gtk_switch_get_active (_tmp54_);
	}
	if (_tmp48_) {
		_tmp47_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionResolutionField* _tmp55_;
		GtkSwitch* _tmp56_;
		GtkSwitch* _tmp57_;
		_tmp55_ = self->priv->_scopebuddy_resolution_field;
		_tmp56_ = proton_plus_widgets_launch_option_resolution_field_get_toggle (_tmp55_);
		_tmp57_ = _tmp56_;
		_tmp47_ = gtk_switch_get_active (_tmp57_);
	}
	if (_tmp47_) {
		_tmp46_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp58_;
		gchar* _tmp59_;
		gchar* _tmp60_;
		_tmp58_ = self->priv->_scopebuddy_args_field;
		_tmp59_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp58_);
		_tmp60_ = _tmp59_;
		_tmp46_ = g_strcmp0 (_tmp60_, "") != 0;
		_g_free0 (_tmp60_);
	}
	if (_tmp46_) {
		result = TRUE;
		return result;
	}
	_tmp63_ = self->priv->_additional_args_tile;
	_tmp64_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp63_);
	_tmp65_ = _tmp64_;
	if (gtk_switch_get_active (_tmp65_)) {
		_tmp62_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp66_;
		gchar* _tmp67_;
		gchar* _tmp68_;
		_tmp66_ = self->priv->_additional_args_field;
		_tmp67_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp66_);
		_tmp68_ = _tmp67_;
		_tmp62_ = g_strcmp0 (_tmp68_, "") != 0;
		_g_free0 (_tmp68_);
	}
	if (_tmp62_) {
		_tmp61_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp69_;
		GtkSwitch* _tmp70_;
		GtkSwitch* _tmp71_;
		_tmp69_ = self->priv->_command_tile;
		_tmp70_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp69_);
		_tmp71_ = _tmp70_;
		_tmp61_ = gtk_switch_get_active (_tmp71_);
	}
	if (_tmp61_) {
		result = TRUE;
		return result;
	}
	result = FALSE;
	return result;
}

gchar*
proton_plus_widgets_launch_options_editor_get_text (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GString* output = NULL;
	GString* _tmp0_;
	GeeArrayList* command_segments = NULL;
	GeeArrayList* _tmp1_;
	GeeArrayList* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	GString* _tmp18_;
	const gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_string_new ("");
	output = _tmp0_;
	_tmp1_ = proton_plus_widgets_launch_options_editor_get_command_segments (self);
	command_segments = _tmp1_;
	_tmp2_ = command_segments;
	_tmp3_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp2_);
	_tmp4_ = _tmp3_;
	if (_tmp4_ == 0) {
		gchar* _tmp5_;
		_tmp5_ = g_strdup ("");
		result = _tmp5_;
		_g_object_unref0 (command_segments);
		_g_string_free0 (output);
		return result;
	}
	{
		GeeArrayList* _segment_list = NULL;
		GeeArrayList* _tmp6_;
		gint _segment_size = 0;
		GeeArrayList* _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
		gint _segment_index = 0;
		_tmp6_ = command_segments;
		_segment_list = _tmp6_;
		_tmp7_ = _segment_list;
		_tmp8_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp7_);
		_tmp9_ = _tmp8_;
		_segment_size = _tmp9_;
		_segment_index = -1;
		while (TRUE) {
			gint _tmp10_;
			gint _tmp11_;
			gchar* segment = NULL;
			GeeArrayList* _tmp12_;
			gpointer _tmp13_;
			GString* _tmp14_;
			GString* _tmp16_;
			const gchar* _tmp17_;
			_segment_index = _segment_index + 1;
			_tmp10_ = _segment_index;
			_tmp11_ = _segment_size;
			if (!(_tmp10_ < _tmp11_)) {
				break;
			}
			_tmp12_ = _segment_list;
			_tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _tmp12_, _segment_index);
			segment = (gchar*) _tmp13_;
			_tmp14_ = output;
			if (_tmp14_->len > ((gssize) 0)) {
				GString* _tmp15_;
				_tmp15_ = output;
				g_string_append (_tmp15_, " ");
			}
			_tmp16_ = output;
			_tmp17_ = segment;
			g_string_append (_tmp16_, _tmp17_);
			_g_free0 (segment);
		}
	}
	_tmp18_ = output;
	_tmp19_ = _tmp18_->str;
	_tmp20_ = g_strdup (_tmp19_);
	result = _tmp20_;
	_g_object_unref0 (command_segments);
	_g_string_free0 (output);
	return result;
}

void
proton_plus_widgets_launch_options_editor_set_text (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                    const gchar* launch_options)
{
	gchar** tokens = NULL;
	gint _tmp0_ = 0;
	gchar** _tmp1_;
	gint tokens_length1;
	gint _tokens_size_;
	gboolean* consumed = NULL;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gboolean* _tmp3_;
	gint consumed_length1;
	gint _consumed_size_;
	ProtonPlusWidgetsWrapperMode selected_wrapper_mode = 0;
	gchar** _tmp4_;
	gint _tmp4__length1;
	GList* _tmp5_;
	gchar** _tmp6_;
	gint _tmp6__length1;
	gboolean* _tmp7_;
	gint _tmp7__length1;
	GList* _tmp8_;
	gchar** _tmp9_;
	gint _tmp9__length1;
	gboolean* _tmp10_;
	gint _tmp10__length1;
	gint command_index = 0;
	gchar** _tmp17_;
	gint _tmp17__length1;
	gchar** _tmp18_;
	gint _tmp18__length1;
	gboolean* _tmp19_;
	gint _tmp19__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp20_;
	GtkSwitch* _tmp21_;
	GtkSwitch* _tmp22_;
	gchar* additional_args = NULL;
	gchar** _tmp24_;
	gint _tmp24__length1;
	gboolean* _tmp25_;
	gint _tmp25__length1;
	gchar* _tmp26_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp27_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp28_;
	GtkSwitch* _tmp29_;
	GtkSwitch* _tmp30_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (launch_options != NULL);
	_tmp1_ = proton_plus_widgets_launch_options_editor_get_launch_option_tokens (self, launch_options, &_tmp0_);
	tokens = _tmp1_;
	tokens_length1 = _tmp0_;
	_tokens_size_ = tokens_length1;
	_tmp2_ = tokens;
	_tmp2__length1 = tokens_length1;
	_tmp3_ = g_new0 (gboolean, _tmp2__length1);
	consumed = _tmp3_;
	consumed_length1 = _tmp2__length1;
	_consumed_size_ = consumed_length1;
	_tmp4_ = tokens;
	_tmp4__length1 = tokens_length1;
	selected_wrapper_mode = proton_plus_widgets_launch_options_editor_detect_wrapper_mode (self, _tmp4_, (gint) _tmp4__length1);
	self->priv->refreshing_controls = TRUE;
	proton_plus_widgets_launch_options_editor_reset_controls (self);
	_tmp5_ = self->priv->common_bindings;
	_tmp6_ = tokens;
	_tmp6__length1 = tokens_length1;
	_tmp7_ = consumed;
	_tmp7__length1 = consumed_length1;
	proton_plus_widgets_launch_options_editor_apply_bindings_from_tokens (self, _tmp5_, _tmp6_, (gint) _tmp6__length1, _tmp7_, (gint) _tmp7__length1);
	_tmp8_ = self->priv->gpu_vendor_bindings;
	_tmp9_ = tokens;
	_tmp9__length1 = tokens_length1;
	_tmp10_ = consumed;
	_tmp10__length1 = consumed_length1;
	proton_plus_widgets_launch_options_editor_apply_bindings_from_tokens (self, _tmp8_, _tmp9_, (gint) _tmp9__length1, _tmp10_, (gint) _tmp10__length1);
	if (selected_wrapper_mode == PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE) {
		gchar** _tmp11_;
		gint _tmp11__length1;
		gboolean* _tmp12_;
		gint _tmp12__length1;
		_tmp11_ = tokens;
		_tmp11__length1 = tokens_length1;
		_tmp12_ = consumed;
		_tmp12__length1 = consumed_length1;
		proton_plus_widgets_launch_options_editor_parse_none_tokens (self, _tmp11_, (gint) _tmp11__length1, _tmp12_, (gint) _tmp12__length1);
	} else {
		if (selected_wrapper_mode == PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE) {
			gchar** _tmp13_;
			gint _tmp13__length1;
			gboolean* _tmp14_;
			gint _tmp14__length1;
			_tmp13_ = tokens;
			_tmp13__length1 = tokens_length1;
			_tmp14_ = consumed;
			_tmp14__length1 = consumed_length1;
			proton_plus_widgets_launch_options_editor_parse_gamescope_tokens (self, _tmp13_, (gint) _tmp13__length1, _tmp14_, (gint) _tmp14__length1);
		} else {
			if (selected_wrapper_mode == PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY) {
				gchar** _tmp15_;
				gint _tmp15__length1;
				gboolean* _tmp16_;
				gint _tmp16__length1;
				_tmp15_ = tokens;
				_tmp15__length1 = tokens_length1;
				_tmp16_ = consumed;
				_tmp16__length1 = consumed_length1;
				proton_plus_widgets_launch_options_editor_parse_scopebuddy_tokens (self, _tmp15_, (gint) _tmp15__length1, _tmp16_, (gint) _tmp16__length1);
			}
		}
	}
	proton_plus_widgets_launch_options_editor_normalize_nvidia_vendor_dependencies (self);
	proton_plus_widgets_launch_options_editor_normalize_amd_fsr_upgrade_dependencies (self);
	_tmp17_ = tokens;
	_tmp17__length1 = tokens_length1;
	command_index = proton_plus_widgets_launch_options_editor_get_token_index (self, _tmp17_, (gint) _tmp17__length1, "%command%");
	_tmp18_ = tokens;
	_tmp18__length1 = tokens_length1;
	_tmp19_ = consumed;
	_tmp19__length1 = consumed_length1;
	proton_plus_widgets_launch_options_editor_apply_game_argument_bindings_from_tokens (self, _tmp18_, (gint) _tmp18__length1, _tmp19_, (gint) _tmp19__length1, command_index);
	_tmp20_ = self->priv->_command_tile;
	_tmp21_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp20_);
	_tmp22_ = _tmp21_;
	gtk_switch_set_active (_tmp22_, command_index >= 0);
	if (command_index >= 0) {
		gboolean* _tmp23_;
		gint _tmp23__length1;
		_tmp23_ = consumed;
		_tmp23__length1 = consumed_length1;
		_tmp23_[command_index] = TRUE;
	}
	proton_plus_widgets_launch_options_editor_set_selected_wrapper_mode (self, selected_wrapper_mode);
	_tmp24_ = tokens;
	_tmp24__length1 = tokens_length1;
	_tmp25_ = consumed;
	_tmp25__length1 = consumed_length1;
	_tmp26_ = proton_plus_widgets_launch_options_editor_join_unconsumed_tokens (self, _tmp24_, (gint) _tmp24__length1, _tmp25_, (gint) _tmp25__length1);
	additional_args = _tmp26_;
	_tmp27_ = self->priv->_additional_args_field;
	proton_plus_widgets_launch_option_entry_field_set_text (_tmp27_, additional_args);
	_tmp28_ = self->priv->_additional_args_tile;
	_tmp29_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp28_);
	_tmp30_ = _tmp29_;
	gtk_switch_set_active (_tmp30_, g_strcmp0 (additional_args, "") != 0);
	proton_plus_widgets_launch_options_editor_select_preferred_gpu_vendor_page (self);
	self->priv->advanced_visible = proton_plus_widgets_launch_options_editor_should_show_advanced_controls (self);
	proton_plus_widgets_launch_options_editor_refresh_advanced_visibility (self);
	self->priv->can_auto_enable_command = command_index < 0;
	self->priv->refreshing_controls = FALSE;
	proton_plus_widgets_launch_options_editor_refresh_preview (self);
	_g_free0 (additional_args);
	consumed = (g_free (consumed), NULL);
	tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
}

static void
_proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify (GObject* _sender,
                                                                                     GParamSpec* pspec,
                                                                                     gpointer self)
{
	proton_plus_widgets_launch_options_editor_standard_control_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_create_common_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                              const gchar* title,
                                                              const gchar* subtitle,
                                                              gchar** tokens,
                                                              gint tokens_length1)
{
	ProtonPlusWidgetsLaunchOptionTile* tile = NULL;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	GtkSwitch* _tmp4_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp5_;
	ProtonPlusWidgetsLaunchOptionTile* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (title != NULL, NULL);
	g_return_val_if_fail (subtitle != NULL, NULL);
	_tmp0_ = proton_plus_widgets_launch_option_tile_new (title, subtitle);
	g_object_ref_sink (_tmp0_);
	tile = _tmp0_;
	_tmp1_ = proton_plus_widgets_launch_option_tile_get_toggle (tile);
	_tmp2_ = _tmp1_;
	g_signal_connect_object ((GObject*) _tmp2_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp3_ = proton_plus_widgets_launch_option_tile_get_toggle (tile);
	_tmp4_ = _tmp3_;
	_tmp5_ = proton_plus_widgets_launch_option_binding_new (tokens, tokens_length1, _tmp4_);
	self->priv->common_bindings = g_list_append (self->priv->common_bindings, _tmp5_);
	result = tile;
	return result;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  const gchar* title,
                                                                  const gchar* subtitle,
                                                                  gchar** tokens,
                                                                  gint tokens_length1)
{
	ProtonPlusWidgetsLaunchOptionTile* tile = NULL;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	GtkSwitch* _tmp4_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp5_;
	ProtonPlusWidgetsLaunchOptionTile* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (title != NULL, NULL);
	g_return_val_if_fail (subtitle != NULL, NULL);
	_tmp0_ = proton_plus_widgets_launch_option_tile_new (title, subtitle);
	g_object_ref_sink (_tmp0_);
	tile = _tmp0_;
	_tmp1_ = proton_plus_widgets_launch_option_tile_get_toggle (tile);
	_tmp2_ = _tmp1_;
	g_signal_connect_object ((GObject*) _tmp2_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp3_ = proton_plus_widgets_launch_option_tile_get_toggle (tile);
	_tmp4_ = _tmp3_;
	_tmp5_ = proton_plus_widgets_launch_option_binding_new (tokens, tokens_length1, _tmp4_);
	self->priv->gpu_vendor_bindings = g_list_append (self->priv->gpu_vendor_bindings, _tmp5_);
	result = tile;
	return result;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_create_game_argument_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     const gchar* title,
                                                                     const gchar* subtitle,
                                                                     gchar** tokens,
                                                                     gint tokens_length1)
{
	ProtonPlusWidgetsLaunchOptionTile* tile = NULL;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	GtkSwitch* _tmp4_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp5_;
	ProtonPlusWidgetsLaunchOptionTile* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (title != NULL, NULL);
	g_return_val_if_fail (subtitle != NULL, NULL);
	_tmp0_ = proton_plus_widgets_launch_option_tile_new (title, subtitle);
	g_object_ref_sink (_tmp0_);
	tile = _tmp0_;
	_tmp1_ = proton_plus_widgets_launch_option_tile_get_toggle (tile);
	_tmp2_ = _tmp1_;
	g_signal_connect_object ((GObject*) _tmp2_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp3_ = proton_plus_widgets_launch_option_tile_get_toggle (tile);
	_tmp4_ = _tmp3_;
	_tmp5_ = proton_plus_widgets_launch_option_binding_new (tokens, tokens_length1, _tmp4_);
	self->priv->game_argument_bindings = g_list_append (self->priv->game_argument_bindings, _tmp5_);
	result = tile;
	return result;
}

static GtkWidget*
proton_plus_widgets_launch_options_editor_create_none_page (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	AdwPreferencesGroup* group = NULL;
	AdwPreferencesGroup* _tmp0_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	GtkWidget* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp0_);
	group = _tmp0_;
	_tmp1_ = self->priv->_hdr_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp1_);
	result = (GtkWidget*) group;
	return result;
}

static GtkWidget*
proton_plus_widgets_launch_options_editor_create_gpu_vendor_page (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  ProtonPlusWidgetsLaunchOptionTile** tiles,
                                                                  gint tiles_length1)
{
	AdwPreferencesGroup* group = NULL;
	AdwPreferencesGroup* _tmp0_;
	GtkWidget* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp0_);
	group = _tmp0_;
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp1_ = FALSE;
			_tmp1_ = TRUE;
			while (TRUE) {
				AdwPreferencesGroup* _tmp3_;
				ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
				if (!_tmp1_) {
					gint _tmp2_;
					_tmp2_ = index;
					index = _tmp2_ + 1;
				}
				_tmp1_ = FALSE;
				if (!(index < tiles_length1)) {
					break;
				}
				_tmp3_ = group;
				_tmp4_ = tiles[index];
				adw_preferences_group_add (_tmp3_, (GtkWidget*) _tmp4_);
			}
		}
	}
	result = (GtkWidget*) group;
	return result;
}

static void
_proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_spin_tile_value_applied (ProtonPlusWidgetsLaunchOptionSpinTile* _sender,
                                                                                                                               gpointer self)
{
	proton_plus_widgets_launch_options_editor_standard_control_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_resolution_field_value_applied (ProtonPlusWidgetsLaunchOptionResolutionField* _sender,
                                                                                                                                      gpointer self)
{
	proton_plus_widgets_launch_options_editor_standard_control_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_entry_field_value_applied (ProtonPlusWidgetsLaunchOptionEntryField* _sender,
                                                                                                                                 gpointer self)
{
	proton_plus_widgets_launch_options_editor_standard_control_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static GtkWidget*
proton_plus_widgets_launch_options_editor_create_gamescope_page (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	AdwPreferencesGroup* group = NULL;
	AdwPreferencesGroup* _tmp0_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp2_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp3_;
	GtkSwitch* _tmp4_;
	GtkSwitch* _tmp5_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp6_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp8_;
	GtkSwitch* _tmp9_;
	GtkSwitch* _tmp10_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp11_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp12_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp13_;
	GtkSwitch* _tmp14_;
	GtkSwitch* _tmp15_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp16_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp17_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp18_;
	GtkSwitch* _tmp19_;
	GtkSwitch* _tmp20_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp21_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp22_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp23_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp24_;
	GtkSwitch* _tmp25_;
	GtkSwitch* _tmp26_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp27_;
	GtkDropDown* _tmp28_;
	GtkDropDown* _tmp29_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp30_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp31_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp32_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp33_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp34_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp35_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp36_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp37_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp38_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp39_;
	GtkWidget* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp0_);
	group = _tmp0_;
	_tmp1_ = proton_plus_widgets_launch_option_tile_new (_ ("Fullscreen"), _ ("Runs the game in a fullscreen session."));
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	proton_plus_widgets_launch_options_editor_set_gamescope_fullscreen_tile (self, _tmp2_);
	_g_object_unref0 (_tmp2_);
	_tmp3_ = self->priv->_gamescope_fullscreen_tile;
	_tmp4_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp3_);
	_tmp5_ = _tmp4_;
	g_signal_connect_object ((GObject*) _tmp5_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp6_ = proton_plus_widgets_launch_option_tile_new (_ ("HDR"), _ ("Outputs HDR colors if your display supports it."));
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	proton_plus_widgets_launch_options_editor_set_gamescope_hdr_tile (self, _tmp7_);
	_g_object_unref0 (_tmp7_);
	_tmp8_ = self->priv->_gamescope_hdr_tile;
	_tmp9_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp8_);
	_tmp10_ = _tmp9_;
	g_signal_connect_object ((GObject*) _tmp10_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp11_ = proton_plus_widgets_launch_option_tile_new (_ ("VRR"), _ ("Matches your display's refresh rate to the game's FPS."));
	g_object_ref_sink (_tmp11_);
	_tmp12_ = _tmp11_;
	proton_plus_widgets_launch_options_editor_set_gamescope_vrr_tile (self, _tmp12_);
	_g_object_unref0 (_tmp12_);
	_tmp13_ = self->priv->_gamescope_vrr_tile;
	_tmp14_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp13_);
	_tmp15_ = _tmp14_;
	g_signal_connect_object ((GObject*) _tmp15_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp16_ = proton_plus_widgets_launch_option_spin_tile_new (_ ("Frame limit"), _ ("Caps the frame rate inside Gamescope."), _ ("FPS"), (gdouble) 30, (gdouble) 360, 60);
	g_object_ref_sink (_tmp16_);
	_tmp17_ = _tmp16_;
	proton_plus_widgets_launch_options_editor_set_gamescope_framerate_tile (self, _tmp17_);
	_g_object_unref0 (_tmp17_);
	_tmp18_ = self->priv->_gamescope_framerate_tile;
	_tmp19_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp18_);
	_tmp20_ = _tmp19_;
	g_signal_connect_object ((GObject*) _tmp20_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp21_ = self->priv->_gamescope_framerate_tile;
	g_signal_connect_object (_tmp21_, "value-applied", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_spin_tile_value_applied, self, 0);
	_tmp22_ = proton_plus_widgets_launch_option_resolution_field_new (_ ("Resolution"), _ ("Sets the Gamescope output resolution."), FALSE);
	g_object_ref_sink (_tmp22_);
	_tmp23_ = _tmp22_;
	proton_plus_widgets_launch_options_editor_set_gamescope_resolution_field (self, _tmp23_);
	_g_object_unref0 (_tmp23_);
	_tmp24_ = self->priv->_gamescope_resolution_field;
	_tmp25_ = proton_plus_widgets_launch_option_resolution_field_get_toggle (_tmp24_);
	_tmp26_ = _tmp25_;
	g_signal_connect_object ((GObject*) _tmp26_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp27_ = self->priv->_gamescope_resolution_field;
	_tmp28_ = proton_plus_widgets_launch_option_resolution_field_get_dropdown (_tmp27_);
	_tmp29_ = _tmp28_;
	g_signal_connect_object ((GObject*) _tmp29_, "notify::selected", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp30_ = self->priv->_gamescope_resolution_field;
	g_signal_connect_object (_tmp30_, "value-applied", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_resolution_field_value_applied, self, 0);
	_tmp31_ = self->priv->_gamescope_fullscreen_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp31_);
	_tmp32_ = self->priv->_gamescope_hdr_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp32_);
	_tmp33_ = self->priv->_gamescope_vrr_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp33_);
	_tmp34_ = self->priv->_gamescope_framerate_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp34_);
	_tmp35_ = self->priv->_gamescope_resolution_field;
	adw_preferences_group_add (group, (GtkWidget*) _tmp35_);
	_tmp36_ = proton_plus_widgets_launch_option_entry_field_new (_ ("Additional Gamescope arguments"), _ ("Keeps extra Gamescope flags such as output or resolution tweaks."), _ ("Add Gamescope arguments"));
	g_object_ref_sink (_tmp36_);
	_tmp37_ = _tmp36_;
	proton_plus_widgets_launch_options_editor_set_gamescope_args_field (self, _tmp37_);
	_g_object_unref0 (_tmp37_);
	_tmp38_ = self->priv->_gamescope_args_field;
	g_signal_connect_object (_tmp38_, "value-applied", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_entry_field_value_applied, self, 0);
	_tmp39_ = self->priv->_gamescope_args_field;
	adw_preferences_group_add (group, (GtkWidget*) _tmp39_);
	result = (GtkWidget*) group;
	return result;
}

static GtkWidget*
proton_plus_widgets_launch_options_editor_create_scopebuddy_page (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	AdwPreferencesGroup* group = NULL;
	AdwPreferencesGroup* _tmp0_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp2_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp3_;
	GtkSwitch* _tmp4_;
	GtkSwitch* _tmp5_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp6_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp8_;
	GtkSwitch* _tmp9_;
	GtkSwitch* _tmp10_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp11_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp12_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp13_;
	GtkSwitch* _tmp14_;
	GtkSwitch* _tmp15_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp16_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp17_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp18_;
	GtkSwitch* _tmp19_;
	GtkSwitch* _tmp20_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp21_;
	gchar* _tmp22_;
	gchar** _tmp23_;
	gchar** _tmp24_;
	gint _tmp24__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp25_;
	GtkSwitch* _tmp26_;
	GtkSwitch* _tmp27_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp28_;
	gchar* _tmp29_;
	gchar** _tmp30_;
	gchar** _tmp31_;
	gint _tmp31__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp32_;
	GtkSwitch* _tmp33_;
	GtkSwitch* _tmp34_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp35_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp36_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp37_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp38_;
	GtkSwitch* _tmp39_;
	GtkSwitch* _tmp40_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp41_;
	GtkDropDown* _tmp42_;
	GtkDropDown* _tmp43_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp44_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp45_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp46_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp47_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp48_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp49_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp50_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp51_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp52_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp53_;
	GtkWidget* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp0_);
	group = _tmp0_;
	_tmp1_ = proton_plus_widgets_launch_option_tile_new (_ ("Fullscreen"), _ ("Runs the game in a fullscreen session."));
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	proton_plus_widgets_launch_options_editor_set_scopebuddy_fullscreen_tile (self, _tmp2_);
	_g_object_unref0 (_tmp2_);
	_tmp3_ = self->priv->_scopebuddy_fullscreen_tile;
	_tmp4_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp3_);
	_tmp5_ = _tmp4_;
	g_signal_connect_object ((GObject*) _tmp5_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp6_ = proton_plus_widgets_launch_option_tile_new (_ ("Auto HDR"), _ ("Outputs HDR colors if your display supports it."));
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	proton_plus_widgets_launch_options_editor_set_scopebuddy_auto_hdr_tile (self, _tmp7_);
	_g_object_unref0 (_tmp7_);
	_tmp8_ = self->priv->_scopebuddy_auto_hdr_tile;
	_tmp9_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp8_);
	_tmp10_ = _tmp9_;
	g_signal_connect_object ((GObject*) _tmp10_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp11_ = proton_plus_widgets_launch_option_tile_new (_ ("VRR"), _ ("Matches your display's refresh rate to the game's FPS."));
	g_object_ref_sink (_tmp11_);
	_tmp12_ = _tmp11_;
	proton_plus_widgets_launch_options_editor_set_scopebuddy_auto_vrr_tile (self, _tmp12_);
	_g_object_unref0 (_tmp12_);
	_tmp13_ = self->priv->_scopebuddy_auto_vrr_tile;
	_tmp14_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp13_);
	_tmp15_ = _tmp14_;
	g_signal_connect_object ((GObject*) _tmp15_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp16_ = proton_plus_widgets_launch_option_spin_tile_new (_ ("Frame limit"), _ ("Caps the frame rate inside ScopeBuddy."), _ ("FPS"), (gdouble) 30, (gdouble) 360, 60);
	g_object_ref_sink (_tmp16_);
	_tmp17_ = _tmp16_;
	proton_plus_widgets_launch_options_editor_set_scopebuddy_framerate_tile (self, _tmp17_);
	_g_object_unref0 (_tmp17_);
	_tmp18_ = self->priv->_scopebuddy_framerate_tile;
	_tmp19_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp18_);
	_tmp20_ = _tmp19_;
	g_signal_connect_object ((GObject*) _tmp20_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp21_ = self->priv->_scopebuddy_framerate_tile;
	g_signal_connect_object (_tmp21_, "value-applied", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_spin_tile_value_applied, self, 0);
	_tmp22_ = g_strdup ("SCB_AUTO_HDR=1");
	_tmp23_ = g_new0 (gchar*, 1 + 1);
	_tmp23_[0] = _tmp22_;
	_tmp24_ = _tmp23_;
	_tmp24__length1 = 1;
	_tmp25_ = self->priv->_scopebuddy_auto_hdr_tile;
	_tmp26_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp25_);
	_tmp27_ = _tmp26_;
	_tmp28_ = proton_plus_widgets_launch_option_binding_new (_tmp24_, 1, _tmp27_);
	self->priv->scopebuddy_bindings = g_list_append (self->priv->scopebuddy_bindings, _tmp28_);
	_tmp24_ = (_vala_array_free (_tmp24_, _tmp24__length1, (GDestroyNotify) g_free), NULL);
	_tmp29_ = g_strdup ("SCB_AUTO_VRR=1");
	_tmp30_ = g_new0 (gchar*, 1 + 1);
	_tmp30_[0] = _tmp29_;
	_tmp31_ = _tmp30_;
	_tmp31__length1 = 1;
	_tmp32_ = self->priv->_scopebuddy_auto_vrr_tile;
	_tmp33_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp32_);
	_tmp34_ = _tmp33_;
	_tmp35_ = proton_plus_widgets_launch_option_binding_new (_tmp31_, 1, _tmp34_);
	self->priv->scopebuddy_bindings = g_list_append (self->priv->scopebuddy_bindings, _tmp35_);
	_tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_free), NULL);
	_tmp36_ = proton_plus_widgets_launch_option_resolution_field_new (_ ("Resolution"), _ ("Sets the ScopeBuddy output resolution."), TRUE);
	g_object_ref_sink (_tmp36_);
	_tmp37_ = _tmp36_;
	proton_plus_widgets_launch_options_editor_set_scopebuddy_resolution_field (self, _tmp37_);
	_g_object_unref0 (_tmp37_);
	_tmp38_ = self->priv->_scopebuddy_resolution_field;
	_tmp39_ = proton_plus_widgets_launch_option_resolution_field_get_toggle (_tmp38_);
	_tmp40_ = _tmp39_;
	g_signal_connect_object ((GObject*) _tmp40_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp41_ = self->priv->_scopebuddy_resolution_field;
	_tmp42_ = proton_plus_widgets_launch_option_resolution_field_get_dropdown (_tmp41_);
	_tmp43_ = _tmp42_;
	g_signal_connect_object ((GObject*) _tmp43_, "notify::selected", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp44_ = self->priv->_scopebuddy_resolution_field;
	g_signal_connect_object (_tmp44_, "value-applied", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_resolution_field_value_applied, self, 0);
	_tmp45_ = proton_plus_widgets_launch_option_entry_field_new (_ ("Additional ScopeBuddy arguments"), _ ("Keeps extra ScopeBuddy flags such as preferred output selection."), _ ("Add ScopeBuddy arguments"));
	g_object_ref_sink (_tmp45_);
	_tmp46_ = _tmp45_;
	proton_plus_widgets_launch_options_editor_set_scopebuddy_args_field (self, _tmp46_);
	_g_object_unref0 (_tmp46_);
	_tmp47_ = self->priv->_scopebuddy_args_field;
	g_signal_connect_object (_tmp47_, "value-applied", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_entry_field_value_applied, self, 0);
	_tmp48_ = self->priv->_scopebuddy_fullscreen_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp48_);
	_tmp49_ = self->priv->_scopebuddy_auto_hdr_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp49_);
	_tmp50_ = self->priv->_scopebuddy_auto_vrr_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp50_);
	_tmp51_ = self->priv->_scopebuddy_framerate_tile;
	adw_preferences_group_add (group, (GtkWidget*) _tmp51_);
	_tmp52_ = self->priv->_scopebuddy_resolution_field;
	adw_preferences_group_add (group, (GtkWidget*) _tmp52_);
	_tmp53_ = self->priv->_scopebuddy_args_field;
	adw_preferences_group_add (group, (GtkWidget*) _tmp53_);
	result = (GtkWidget*) group;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_reset_controls (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GList* _tmp0_;
	GList* _tmp5_;
	GList* _tmp10_;
	GList* _tmp15_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp20_;
	GtkSwitch* _tmp21_;
	GtkSwitch* _tmp22_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp23_;
	GtkSwitch* _tmp24_;
	GtkSwitch* _tmp25_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp26_;
	GtkSwitch* _tmp27_;
	GtkSwitch* _tmp28_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp29_;
	GtkSwitch* _tmp30_;
	GtkSwitch* _tmp31_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp32_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp33_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp34_;
	GtkSwitch* _tmp35_;
	GtkSwitch* _tmp36_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp37_;
	GtkSwitch* _tmp38_;
	GtkSwitch* _tmp39_;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp40_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp41_;
	GtkSwitch* _tmp42_;
	GtkSwitch* _tmp43_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp44_;
	GtkSwitch* _tmp45_;
	GtkSwitch* _tmp46_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp47_;
	GtkSwitch* _tmp48_;
	GtkSwitch* _tmp49_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp50_;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp51_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp52_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp53_;
	GtkStack* _tmp54_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->common_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp0_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp1_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp1_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp1_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp2_;
				GtkSwitch* _tmp3_;
				GtkSwitch* _tmp4_;
				_tmp2_ = binding;
				_tmp3_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp2_);
				_tmp4_ = _tmp3_;
				gtk_switch_set_active (_tmp4_, FALSE);
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp5_ = self->priv->gpu_vendor_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp5_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp6_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp6_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp6_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp7_;
				GtkSwitch* _tmp8_;
				GtkSwitch* _tmp9_;
				_tmp7_ = binding;
				_tmp8_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp7_);
				_tmp9_ = _tmp8_;
				gtk_switch_set_active (_tmp9_, FALSE);
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp10_ = self->priv->game_argument_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp10_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp11_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp11_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp11_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp12_;
				GtkSwitch* _tmp13_;
				GtkSwitch* _tmp14_;
				_tmp12_ = binding;
				_tmp13_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp12_);
				_tmp14_ = _tmp13_;
				gtk_switch_set_active (_tmp14_, FALSE);
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp15_ = self->priv->scopebuddy_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp15_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp16_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp16_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp16_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp17_;
				GtkSwitch* _tmp18_;
				GtkSwitch* _tmp19_;
				_tmp17_ = binding;
				_tmp18_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp17_);
				_tmp19_ = _tmp18_;
				gtk_switch_set_active (_tmp19_, FALSE);
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp20_ = self->priv->_gamescope_fullscreen_tile;
	_tmp21_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp20_);
	_tmp22_ = _tmp21_;
	gtk_switch_set_active (_tmp22_, FALSE);
	_tmp23_ = self->priv->_gamescope_hdr_tile;
	_tmp24_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp23_);
	_tmp25_ = _tmp24_;
	gtk_switch_set_active (_tmp25_, FALSE);
	_tmp26_ = self->priv->_gamescope_vrr_tile;
	_tmp27_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp26_);
	_tmp28_ = _tmp27_;
	gtk_switch_set_active (_tmp28_, FALSE);
	_tmp29_ = self->priv->_gamescope_framerate_tile;
	_tmp30_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp29_);
	_tmp31_ = _tmp30_;
	gtk_switch_set_active (_tmp31_, FALSE);
	_tmp32_ = self->priv->_gamescope_framerate_tile;
	proton_plus_widgets_launch_option_spin_tile_set_value (_tmp32_, 60);
	_tmp33_ = self->priv->_gamescope_resolution_field;
	proton_plus_widgets_launch_option_resolution_field_reset (_tmp33_);
	_tmp34_ = self->priv->_scopebuddy_fullscreen_tile;
	_tmp35_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp34_);
	_tmp36_ = _tmp35_;
	gtk_switch_set_active (_tmp36_, FALSE);
	_tmp37_ = self->priv->_scopebuddy_framerate_tile;
	_tmp38_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp37_);
	_tmp39_ = _tmp38_;
	gtk_switch_set_active (_tmp39_, FALSE);
	_tmp40_ = self->priv->_scopebuddy_framerate_tile;
	proton_plus_widgets_launch_option_spin_tile_set_value (_tmp40_, 60);
	_tmp41_ = self->priv->_additional_args_tile;
	_tmp42_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp41_);
	_tmp43_ = _tmp42_;
	gtk_switch_set_active (_tmp43_, FALSE);
	_tmp44_ = self->priv->_command_tile;
	_tmp45_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp44_);
	_tmp46_ = _tmp45_;
	gtk_switch_set_active (_tmp46_, FALSE);
	_tmp47_ = self->priv->_hdr_tile;
	_tmp48_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp47_);
	_tmp49_ = _tmp48_;
	gtk_switch_set_active (_tmp49_, FALSE);
	_tmp50_ = self->priv->_additional_args_field;
	proton_plus_widgets_launch_option_entry_field_set_text (_tmp50_, "");
	_tmp51_ = self->priv->_scopebuddy_resolution_field;
	proton_plus_widgets_launch_option_resolution_field_reset (_tmp51_);
	_tmp52_ = self->priv->_gamescope_args_field;
	proton_plus_widgets_launch_option_entry_field_set_text (_tmp52_, "");
	_tmp53_ = self->priv->_scopebuddy_args_field;
	proton_plus_widgets_launch_option_entry_field_set_text (_tmp53_, "");
	_tmp54_ = self->priv->_gpu_vendor_stack;
	gtk_stack_set_visible_child_name (_tmp54_, "amd");
}

static void
proton_plus_widgets_launch_options_editor_standard_control_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	proton_plus_widgets_launch_options_editor_maybe_auto_enable_command (self);
	proton_plus_widgets_launch_options_editor_refresh_preview (self);
	g_signal_emit (self, proton_plus_widgets_launch_options_editor_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_CONTENT_CHANGED_SIGNAL], 0);
}

static void
proton_plus_widgets_launch_options_editor_refresh_advanced_visibility (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean is_advanced = FALSE;
	ProtonPlusWidgetsLaunchOptionPreviewField* _tmp0_;
	AdwPreferencesGroup* _tmp1_;
	AdwPreferencesGroup* _tmp2_;
	AdwPreferencesGroup* _tmp3_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp4_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp5_;
	AdwPreferencesGroup* _tmp6_;
	gboolean _tmp7_ = FALSE;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp11_;
	GtkStack* _tmp12_;
	g_return_if_fail (self != NULL);
	is_advanced = self->priv->advanced_visible;
	_tmp0_ = self->priv->_preview_field;
	gtk_widget_set_visible ((GtkWidget*) _tmp0_, is_advanced);
	_tmp1_ = self->priv->_more_options_group;
	gtk_widget_set_visible ((GtkWidget*) _tmp1_, is_advanced);
	_tmp2_ = self->priv->_gpu_vendor_group;
	gtk_widget_set_visible ((GtkWidget*) _tmp2_, is_advanced);
	_tmp3_ = self->priv->_game_arguments_group;
	gtk_widget_set_visible ((GtkWidget*) _tmp3_, is_advanced);
	_tmp4_ = self->priv->_gamescope_args_field;
	gtk_widget_set_visible ((GtkWidget*) _tmp4_, is_advanced);
	_tmp5_ = self->priv->_scopebuddy_args_field;
	gtk_widget_set_visible ((GtkWidget*) _tmp5_, is_advanced);
	_tmp6_ = self->priv->_advanced_options_group;
	gtk_widget_set_visible ((GtkWidget*) _tmp6_, is_advanced);
	if (is_advanced) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp8_;
		GtkSwitch* _tmp9_;
		GtkSwitch* _tmp10_;
		_tmp8_ = self->priv->_additional_args_tile;
		_tmp9_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp7_ = gtk_switch_get_active (_tmp10_);
	} else {
		_tmp7_ = FALSE;
	}
	_tmp11_ = self->priv->_additional_args_field;
	gtk_widget_set_visible ((GtkWidget*) _tmp11_, _tmp7_);
	_tmp12_ = self->priv->_wrapper_stack;
	gtk_widget_set_visible ((GtkWidget*) _tmp12_, TRUE);
}

static void
proton_plus_widgets_launch_options_editor_additional_args_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	proton_plus_widgets_launch_options_editor_refresh_advanced_visibility (self);
	_tmp0_ = self->priv->_additional_args_tile;
	_tmp1_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp0_);
	_tmp2_ = _tmp1_;
	if (gtk_switch_get_active (_tmp2_)) {
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp3_;
		_tmp3_ = self->priv->_additional_args_field;
		proton_plus_widgets_launch_option_entry_field_focus_entry (_tmp3_);
	}
	proton_plus_widgets_launch_options_editor_maybe_auto_enable_command (self);
	proton_plus_widgets_launch_options_editor_refresh_preview (self);
	g_signal_emit (self, proton_plus_widgets_launch_options_editor_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_CONTENT_CHANGED_SIGNAL], 0);
}

static void
proton_plus_widgets_launch_options_editor_command_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	_tmp1_ = self->priv->_command_tile;
	_tmp2_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp1_);
	_tmp3_ = _tmp2_;
	if (!gtk_switch_get_active (_tmp3_)) {
		GList* _tmp4_;
		_tmp4_ = self->priv->game_argument_bindings;
		_tmp0_ = proton_plus_widgets_launch_options_editor_has_active_binding (self, _tmp4_);
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		GList* _tmp5_;
		self->priv->refreshing_controls = TRUE;
		_tmp5_ = self->priv->game_argument_bindings;
		proton_plus_widgets_launch_options_editor_reset_binding_toggles (self, _tmp5_);
		self->priv->refreshing_controls = FALSE;
	}
	self->priv->can_auto_enable_command = FALSE;
	proton_plus_widgets_launch_options_editor_refresh_preview (self);
	g_signal_emit (self, proton_plus_widgets_launch_options_editor_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_CONTENT_CHANGED_SIGNAL], 0);
}

static void
proton_plus_widgets_launch_options_editor_wrapper_selection_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gchar* current_wrapper = NULL;
	GtkStack* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp7_;
	const gchar* _tmp23_;
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	self->priv->refreshing_controls = TRUE;
	_tmp0_ = self->priv->_wrapper_stack;
	_tmp1_ = gtk_stack_get_visible_child_name (_tmp0_);
	_tmp2_ = g_strdup (_tmp1_);
	current_wrapper = _tmp2_;
	_tmp3_ = current_wrapper;
	if (g_strcmp0 (_tmp3_, "none") != 0) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		_tmp4_ = self->priv->_hdr_tile;
		_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
		_tmp6_ = _tmp5_;
		gtk_switch_set_active (_tmp6_, FALSE);
	}
	_tmp7_ = current_wrapper;
	if (g_strcmp0 (_tmp7_, "gamescope") != 0) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp8_;
		GtkSwitch* _tmp9_;
		GtkSwitch* _tmp10_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp11_;
		GtkSwitch* _tmp12_;
		GtkSwitch* _tmp13_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp14_;
		GtkSwitch* _tmp15_;
		GtkSwitch* _tmp16_;
		ProtonPlusWidgetsLaunchOptionSpinTile* _tmp17_;
		GtkSwitch* _tmp18_;
		GtkSwitch* _tmp19_;
		ProtonPlusWidgetsLaunchOptionSpinTile* _tmp20_;
		ProtonPlusWidgetsLaunchOptionResolutionField* _tmp21_;
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp22_;
		_tmp8_ = self->priv->_gamescope_fullscreen_tile;
		_tmp9_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp8_);
		_tmp10_ = _tmp9_;
		gtk_switch_set_active (_tmp10_, FALSE);
		_tmp11_ = self->priv->_gamescope_hdr_tile;
		_tmp12_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp11_);
		_tmp13_ = _tmp12_;
		gtk_switch_set_active (_tmp13_, FALSE);
		_tmp14_ = self->priv->_gamescope_vrr_tile;
		_tmp15_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp14_);
		_tmp16_ = _tmp15_;
		gtk_switch_set_active (_tmp16_, FALSE);
		_tmp17_ = self->priv->_gamescope_framerate_tile;
		_tmp18_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp17_);
		_tmp19_ = _tmp18_;
		gtk_switch_set_active (_tmp19_, FALSE);
		_tmp20_ = self->priv->_gamescope_framerate_tile;
		proton_plus_widgets_launch_option_spin_tile_set_value (_tmp20_, 60);
		_tmp21_ = self->priv->_gamescope_resolution_field;
		proton_plus_widgets_launch_option_resolution_field_reset (_tmp21_);
		_tmp22_ = self->priv->_gamescope_args_field;
		proton_plus_widgets_launch_option_entry_field_set_text (_tmp22_, "");
	}
	_tmp23_ = current_wrapper;
	if (g_strcmp0 (_tmp23_, "scopebuddy") != 0) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp24_;
		GtkSwitch* _tmp25_;
		GtkSwitch* _tmp26_;
		ProtonPlusWidgetsLaunchOptionSpinTile* _tmp27_;
		GtkSwitch* _tmp28_;
		GtkSwitch* _tmp29_;
		ProtonPlusWidgetsLaunchOptionSpinTile* _tmp30_;
		ProtonPlusWidgetsLaunchOptionResolutionField* _tmp31_;
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp32_;
		GList* _tmp33_;
		_tmp24_ = self->priv->_scopebuddy_fullscreen_tile;
		_tmp25_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp24_);
		_tmp26_ = _tmp25_;
		gtk_switch_set_active (_tmp26_, FALSE);
		_tmp27_ = self->priv->_scopebuddy_framerate_tile;
		_tmp28_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp27_);
		_tmp29_ = _tmp28_;
		gtk_switch_set_active (_tmp29_, FALSE);
		_tmp30_ = self->priv->_scopebuddy_framerate_tile;
		proton_plus_widgets_launch_option_spin_tile_set_value (_tmp30_, 60);
		_tmp31_ = self->priv->_scopebuddy_resolution_field;
		proton_plus_widgets_launch_option_resolution_field_reset (_tmp31_);
		_tmp32_ = self->priv->_scopebuddy_args_field;
		proton_plus_widgets_launch_option_entry_field_set_text (_tmp32_, "");
		_tmp33_ = self->priv->scopebuddy_bindings;
		{
			GList* binding_collection = NULL;
			GList* binding_it = NULL;
			binding_collection = _tmp33_;
			for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
				ProtonPlusWidgetsLaunchOptionBinding* _tmp34_;
				ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
				_tmp34_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
				binding = _tmp34_;
				{
					ProtonPlusWidgetsLaunchOptionBinding* _tmp35_;
					GtkSwitch* _tmp36_;
					GtkSwitch* _tmp37_;
					_tmp35_ = binding;
					_tmp36_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp35_);
					_tmp37_ = _tmp36_;
					gtk_switch_set_active (_tmp37_, FALSE);
					_g_object_unref0 (binding);
				}
			}
		}
	}
	self->priv->refreshing_controls = FALSE;
	proton_plus_widgets_launch_options_editor_refresh_advanced_visibility (self);
	proton_plus_widgets_launch_options_editor_maybe_auto_enable_command (self);
	proton_plus_widgets_launch_options_editor_refresh_preview (self);
	g_signal_emit (self, proton_plus_widgets_launch_options_editor_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_CONTENT_CHANGED_SIGNAL], 0);
	_g_free0 (current_wrapper);
}

static void
proton_plus_widgets_launch_options_editor_gpu_vendor_selection_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gchar* current_vendor = NULL;
	GtkStack* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp19_;
	const gchar* _tmp35_;
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	self->priv->refreshing_controls = TRUE;
	_tmp0_ = self->priv->_gpu_vendor_stack;
	_tmp1_ = gtk_stack_get_visible_child_name (_tmp0_);
	_tmp2_ = g_strdup (_tmp1_);
	current_vendor = _tmp2_;
	_tmp3_ = current_vendor;
	if (g_strcmp0 (_tmp3_, "amd") != 0) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
		GtkSwitch* _tmp8_;
		GtkSwitch* _tmp9_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp10_;
		GtkSwitch* _tmp11_;
		GtkSwitch* _tmp12_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp13_;
		GtkSwitch* _tmp14_;
		GtkSwitch* _tmp15_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp16_;
		GtkSwitch* _tmp17_;
		GtkSwitch* _tmp18_;
		_tmp4_ = self->priv->_amd_anti_lag_tile;
		_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
		_tmp6_ = _tmp5_;
		gtk_switch_set_active (_tmp6_, FALSE);
		_tmp7_ = self->priv->_amd_fsr4_upgrade_tile;
		_tmp8_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp7_);
		_tmp9_ = _tmp8_;
		gtk_switch_set_active (_tmp9_, FALSE);
		_tmp10_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
		_tmp11_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp10_);
		_tmp12_ = _tmp11_;
		gtk_switch_set_active (_tmp12_, FALSE);
		_tmp13_ = self->priv->_amd_prime_tile;
		_tmp14_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp13_);
		_tmp15_ = _tmp14_;
		gtk_switch_set_active (_tmp15_, FALSE);
		_tmp16_ = self->priv->_amd_hide_apu_tile;
		_tmp17_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp16_);
		_tmp18_ = _tmp17_;
		gtk_switch_set_active (_tmp18_, FALSE);
	}
	_tmp19_ = current_vendor;
	if (g_strcmp0 (_tmp19_, "nvidia") != 0) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp20_;
		GtkSwitch* _tmp21_;
		GtkSwitch* _tmp22_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp23_;
		GtkSwitch* _tmp24_;
		GtkSwitch* _tmp25_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp26_;
		GtkSwitch* _tmp27_;
		GtkSwitch* _tmp28_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp29_;
		GtkSwitch* _tmp30_;
		GtkSwitch* _tmp31_;
		ProtonPlusWidgetsLaunchOptionTile* _tmp32_;
		GtkSwitch* _tmp33_;
		GtkSwitch* _tmp34_;
		_tmp20_ = self->priv->_nvapi_tile;
		_tmp21_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp20_);
		_tmp22_ = _tmp21_;
		gtk_switch_set_active (_tmp22_, FALSE);
		_tmp23_ = self->priv->_nvidia_ngx_updater_tile;
		_tmp24_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp23_);
		_tmp25_ = _tmp24_;
		gtk_switch_set_active (_tmp25_, FALSE);
		_tmp26_ = self->priv->_nvidia_hide_gpu_tile;
		_tmp27_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp26_);
		_tmp28_ = _tmp27_;
		gtk_switch_set_active (_tmp28_, FALSE);
		_tmp29_ = self->priv->_dlss_indicator_tile;
		_tmp30_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp29_);
		_tmp31_ = _tmp30_;
		gtk_switch_set_active (_tmp31_, FALSE);
		_tmp32_ = self->priv->_nvidia_libs_tile;
		_tmp33_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp32_);
		_tmp34_ = _tmp33_;
		gtk_switch_set_active (_tmp34_, FALSE);
	}
	_tmp35_ = current_vendor;
	if (g_strcmp0 (_tmp35_, "intel") != 0) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp36_;
		GtkSwitch* _tmp37_;
		GtkSwitch* _tmp38_;
		_tmp36_ = self->priv->_intel_xess_upgrade_tile;
		_tmp37_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp36_);
		_tmp38_ = _tmp37_;
		gtk_switch_set_active (_tmp38_, FALSE);
	}
	self->priv->refreshing_controls = FALSE;
	proton_plus_widgets_launch_options_editor_refresh_preview (self);
	g_signal_emit (self, proton_plus_widgets_launch_options_editor_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_CONTENT_CHANGED_SIGNAL], 0);
	_g_free0 (current_vendor);
}

static gboolean
proton_plus_widgets_launch_options_editor_should_show_advanced_controls (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_ = FALSE;
	gboolean _tmp8_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp9_;
	GtkSwitch* _tmp10_;
	GtkSwitch* _tmp11_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp9_ = self->priv->_vkbasalt_tile;
	_tmp10_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp9_);
	_tmp11_ = _tmp10_;
	if (gtk_switch_get_active (_tmp11_)) {
		_tmp8_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp12_;
		GtkSwitch* _tmp13_;
		GtkSwitch* _tmp14_;
		_tmp12_ = self->priv->_wined3d_tile;
		_tmp13_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp12_);
		_tmp14_ = _tmp13_;
		_tmp8_ = gtk_switch_get_active (_tmp14_);
	}
	if (_tmp8_) {
		_tmp7_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp15_;
		GtkSwitch* _tmp16_;
		GtkSwitch* _tmp17_;
		_tmp15_ = self->priv->_ntsync_tile;
		_tmp16_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp15_);
		_tmp17_ = _tmp16_;
		_tmp7_ = gtk_switch_get_active (_tmp17_);
	}
	if (_tmp7_) {
		_tmp6_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp18_;
		GtkSwitch* _tmp19_;
		GtkSwitch* _tmp20_;
		_tmp18_ = self->priv->_local_shader_cache_tile;
		_tmp19_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp18_);
		_tmp20_ = _tmp19_;
		_tmp6_ = gtk_switch_get_active (_tmp20_);
	}
	if (_tmp6_) {
		_tmp5_ = TRUE;
	} else {
		GList* _tmp21_;
		_tmp21_ = self->priv->gpu_vendor_bindings;
		_tmp5_ = proton_plus_widgets_launch_options_editor_has_active_binding (self, _tmp21_);
	}
	if (_tmp5_) {
		_tmp4_ = TRUE;
	} else {
		GList* _tmp22_;
		_tmp22_ = self->priv->game_argument_bindings;
		_tmp4_ = proton_plus_widgets_launch_options_editor_has_active_binding (self, _tmp22_);
	}
	if (_tmp4_) {
		_tmp3_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp23_;
		GtkSwitch* _tmp24_;
		GtkSwitch* _tmp25_;
		_tmp23_ = self->priv->_additional_args_tile;
		_tmp24_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp23_);
		_tmp25_ = _tmp24_;
		_tmp3_ = gtk_switch_get_active (_tmp25_);
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		_tmp26_ = self->priv->_additional_args_field;
		_tmp27_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp26_);
		_tmp28_ = _tmp27_;
		_tmp2_ = g_strcmp0 (_tmp28_, "") != 0;
		_g_free0 (_tmp28_);
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp29_;
		gchar* _tmp30_;
		gchar* _tmp31_;
		_tmp29_ = self->priv->_gamescope_args_field;
		_tmp30_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp29_);
		_tmp31_ = _tmp30_;
		_tmp1_ = g_strcmp0 (_tmp31_, "") != 0;
		_g_free0 (_tmp31_);
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp32_;
		gchar* _tmp33_;
		gchar* _tmp34_;
		_tmp32_ = self->priv->_scopebuddy_args_field;
		_tmp33_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp32_);
		_tmp34_ = _tmp33_;
		_tmp0_ = g_strcmp0 (_tmp34_, "") != 0;
		_g_free0 (_tmp34_);
	}
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_maybe_auto_enable_command (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp5_;
	GtkSwitch* _tmp6_;
	GtkSwitch* _tmp7_;
	g_return_if_fail (self != NULL);
	if (!self->priv->can_auto_enable_command) {
		_tmp1_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp2_;
		GtkSwitch* _tmp3_;
		GtkSwitch* _tmp4_;
		_tmp2_ = self->priv->_command_tile;
		_tmp3_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp2_);
		_tmp4_ = _tmp3_;
		_tmp1_ = gtk_switch_get_active (_tmp4_);
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = !proton_plus_widgets_launch_options_editor_has_structured_content (self);
	}
	if (_tmp0_) {
		return;
	}
	self->priv->refreshing_controls = TRUE;
	_tmp5_ = self->priv->_command_tile;
	_tmp6_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp5_);
	_tmp7_ = _tmp6_;
	gtk_switch_set_active (_tmp7_, TRUE);
	self->priv->refreshing_controls = FALSE;
	self->priv->can_auto_enable_command = FALSE;
}

static gboolean
proton_plus_widgets_launch_options_editor_has_structured_content (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GList* _tmp0_;
	GList* _tmp5_;
	GList* _tmp10_;
	gboolean _tmp11_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp12_;
	GtkSwitch* _tmp13_;
	GtkSwitch* _tmp14_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->common_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp0_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp1_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp1_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp1_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp2_;
				GtkSwitch* _tmp3_;
				GtkSwitch* _tmp4_;
				_tmp2_ = binding;
				_tmp3_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp2_);
				_tmp4_ = _tmp3_;
				if (gtk_switch_get_active (_tmp4_)) {
					result = TRUE;
					_g_object_unref0 (binding);
					return result;
				}
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp5_ = self->priv->gpu_vendor_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp5_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp6_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp6_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp6_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp7_;
				GtkSwitch* _tmp8_;
				GtkSwitch* _tmp9_;
				_tmp7_ = binding;
				_tmp8_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp7_);
				_tmp9_ = _tmp8_;
				if (gtk_switch_get_active (_tmp9_)) {
					result = TRUE;
					_g_object_unref0 (binding);
					return result;
				}
				_g_object_unref0 (binding);
			}
		}
	}
	_tmp10_ = self->priv->game_argument_bindings;
	if (proton_plus_widgets_launch_options_editor_has_active_binding (self, _tmp10_)) {
		result = TRUE;
		return result;
	}
	_tmp12_ = self->priv->_additional_args_tile;
	_tmp13_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp12_);
	_tmp14_ = _tmp13_;
	if (gtk_switch_get_active (_tmp14_)) {
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		_tmp15_ = self->priv->_additional_args_field;
		_tmp16_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp15_);
		_tmp17_ = _tmp16_;
		_tmp11_ = g_strcmp0 (_tmp17_, "") != 0;
		_g_free0 (_tmp17_);
	} else {
		_tmp11_ = FALSE;
	}
	if (_tmp11_) {
		result = TRUE;
		return result;
	}
	switch (proton_plus_widgets_launch_options_editor_get_selected_wrapper_mode (self)) {
		case PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE:
		{
			ProtonPlusWidgetsLaunchOptionTile* _tmp18_;
			GtkSwitch* _tmp19_;
			GtkSwitch* _tmp20_;
			_tmp18_ = self->priv->_hdr_tile;
			_tmp19_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp18_);
			_tmp20_ = _tmp19_;
			if (gtk_switch_get_active (_tmp20_)) {
				result = TRUE;
				return result;
			}
			result = FALSE;
			return result;
		}
		case PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE:
		{
			gboolean _tmp21_ = FALSE;
			gboolean _tmp22_ = FALSE;
			gboolean _tmp23_ = FALSE;
			gboolean _tmp24_ = FALSE;
			ProtonPlusWidgetsLaunchOptionTile* _tmp25_;
			GtkSwitch* _tmp26_;
			GtkSwitch* _tmp27_;
			ProtonPlusWidgetsLaunchOptionEntryField* _tmp38_;
			gchar* _tmp39_;
			gchar* _tmp40_;
			gboolean _tmp41_;
			_tmp25_ = self->priv->_gamescope_fullscreen_tile;
			_tmp26_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp25_);
			_tmp27_ = _tmp26_;
			if (gtk_switch_get_active (_tmp27_)) {
				_tmp24_ = TRUE;
			} else {
				ProtonPlusWidgetsLaunchOptionTile* _tmp28_;
				GtkSwitch* _tmp29_;
				GtkSwitch* _tmp30_;
				_tmp28_ = self->priv->_gamescope_hdr_tile;
				_tmp29_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp28_);
				_tmp30_ = _tmp29_;
				_tmp24_ = gtk_switch_get_active (_tmp30_);
			}
			if (_tmp24_) {
				_tmp23_ = TRUE;
			} else {
				ProtonPlusWidgetsLaunchOptionTile* _tmp31_;
				GtkSwitch* _tmp32_;
				GtkSwitch* _tmp33_;
				_tmp31_ = self->priv->_gamescope_vrr_tile;
				_tmp32_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp31_);
				_tmp33_ = _tmp32_;
				_tmp23_ = gtk_switch_get_active (_tmp33_);
			}
			if (_tmp23_) {
				_tmp22_ = TRUE;
			} else {
				ProtonPlusWidgetsLaunchOptionSpinTile* _tmp34_;
				GtkSwitch* _tmp35_;
				GtkSwitch* _tmp36_;
				_tmp34_ = self->priv->_gamescope_framerate_tile;
				_tmp35_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp34_);
				_tmp36_ = _tmp35_;
				_tmp22_ = gtk_switch_get_active (_tmp36_);
			}
			if (_tmp22_) {
				_tmp21_ = TRUE;
			} else {
				ProtonPlusWidgetsLaunchOptionResolutionField* _tmp37_;
				_tmp37_ = self->priv->_gamescope_resolution_field;
				_tmp21_ = proton_plus_widgets_launch_option_resolution_field_has_resolution (_tmp37_);
			}
			if (_tmp21_) {
				result = TRUE;
				return result;
			}
			_tmp38_ = self->priv->_gamescope_args_field;
			_tmp39_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp38_);
			_tmp40_ = _tmp39_;
			_tmp41_ = g_strcmp0 (_tmp40_, "") != 0;
			_g_free0 (_tmp40_);
			if (_tmp41_) {
				result = TRUE;
				return result;
			}
			result = FALSE;
			return result;
		}
		case PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY:
		{
			GList* _tmp42_;
			gboolean _tmp47_ = FALSE;
			ProtonPlusWidgetsLaunchOptionTile* _tmp48_;
			GtkSwitch* _tmp49_;
			GtkSwitch* _tmp50_;
			ProtonPlusWidgetsLaunchOptionResolutionField* _tmp54_;
			ProtonPlusWidgetsLaunchOptionEntryField* _tmp55_;
			gchar* _tmp56_;
			gchar* _tmp57_;
			gboolean _tmp58_;
			_tmp42_ = self->priv->scopebuddy_bindings;
			{
				GList* binding_collection = NULL;
				GList* binding_it = NULL;
				binding_collection = _tmp42_;
				for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
					ProtonPlusWidgetsLaunchOptionBinding* _tmp43_;
					ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
					_tmp43_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
					binding = _tmp43_;
					{
						ProtonPlusWidgetsLaunchOptionBinding* _tmp44_;
						GtkSwitch* _tmp45_;
						GtkSwitch* _tmp46_;
						_tmp44_ = binding;
						_tmp45_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp44_);
						_tmp46_ = _tmp45_;
						if (gtk_switch_get_active (_tmp46_)) {
							result = TRUE;
							_g_object_unref0 (binding);
							return result;
						}
						_g_object_unref0 (binding);
					}
				}
			}
			_tmp48_ = self->priv->_scopebuddy_fullscreen_tile;
			_tmp49_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp48_);
			_tmp50_ = _tmp49_;
			if (gtk_switch_get_active (_tmp50_)) {
				_tmp47_ = TRUE;
			} else {
				ProtonPlusWidgetsLaunchOptionSpinTile* _tmp51_;
				GtkSwitch* _tmp52_;
				GtkSwitch* _tmp53_;
				_tmp51_ = self->priv->_scopebuddy_framerate_tile;
				_tmp52_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp51_);
				_tmp53_ = _tmp52_;
				_tmp47_ = gtk_switch_get_active (_tmp53_);
			}
			if (_tmp47_) {
				result = TRUE;
				return result;
			}
			_tmp54_ = self->priv->_scopebuddy_resolution_field;
			if (!proton_plus_widgets_launch_option_resolution_field_is_default (_tmp54_)) {
				result = TRUE;
				return result;
			}
			_tmp55_ = self->priv->_scopebuddy_args_field;
			_tmp56_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp55_);
			_tmp57_ = _tmp56_;
			_tmp58_ = g_strcmp0 (_tmp57_, "") != 0;
			_g_free0 (_tmp57_);
			if (_tmp58_) {
				result = TRUE;
				return result;
			}
			result = FALSE;
			return result;
		}
		default:
		{
			result = FALSE;
			return result;
		}
	}
}

static GeeArrayList*
proton_plus_widgets_launch_options_editor_get_command_segments (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GeeArrayList* segments = NULL;
	GeeArrayList* _tmp0_;
	ProtonPlusWidgetsWrapperMode selected_wrapper_mode = 0;
	GeeArrayList* _tmp1_;
	GList* _tmp2_;
	GeeArrayList* _tmp3_;
	GList* _tmp4_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp5_;
	GtkSwitch* _tmp6_;
	GtkSwitch* _tmp7_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp77_;
	GtkSwitch* _tmp78_;
	GtkSwitch* _tmp79_;
	GeeArrayList* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	segments = _tmp0_;
	selected_wrapper_mode = proton_plus_widgets_launch_options_editor_get_selected_wrapper_mode (self);
	_tmp1_ = segments;
	_tmp2_ = self->priv->common_bindings;
	proton_plus_widgets_launch_options_editor_append_binding_segments (self, _tmp1_, _tmp2_);
	_tmp3_ = segments;
	_tmp4_ = self->priv->gpu_vendor_bindings;
	proton_plus_widgets_launch_options_editor_append_binding_segments (self, _tmp3_, _tmp4_);
	_tmp5_ = self->priv->_additional_args_tile;
	_tmp6_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp5_);
	_tmp7_ = _tmp6_;
	if (gtk_switch_get_active (_tmp7_)) {
		GeeArrayList* _tmp8_;
		ProtonPlusWidgetsLaunchOptionEntryField* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		_tmp8_ = segments;
		_tmp9_ = self->priv->_additional_args_field;
		_tmp10_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp9_);
		_tmp11_ = _tmp10_;
		proton_plus_widgets_launch_options_editor_append_segments_from_text (self, _tmp8_, _tmp11_);
		_g_free0 (_tmp11_);
	}
	switch (selected_wrapper_mode) {
		case PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE:
		{
			GeeArrayList* _tmp12_;
			_tmp12_ = segments;
			proton_plus_widgets_launch_options_editor_append_none_segments (self, _tmp12_);
			break;
		}
		case PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE:
		{
			GeeArrayList* _tmp13_;
			ProtonPlusWidgetsLaunchOptionTile* _tmp14_;
			GtkSwitch* _tmp15_;
			GtkSwitch* _tmp16_;
			ProtonPlusWidgetsLaunchOptionTile* _tmp18_;
			GtkSwitch* _tmp19_;
			GtkSwitch* _tmp20_;
			ProtonPlusWidgetsLaunchOptionTile* _tmp22_;
			GtkSwitch* _tmp23_;
			GtkSwitch* _tmp24_;
			ProtonPlusWidgetsLaunchOptionSpinTile* _tmp26_;
			GtkSwitch* _tmp27_;
			GtkSwitch* _tmp28_;
			ProtonPlusWidgetsLaunchOptionResolutionField* _tmp33_;
			GeeArrayList* _tmp43_;
			ProtonPlusWidgetsLaunchOptionEntryField* _tmp44_;
			gchar* _tmp45_;
			gchar* _tmp46_;
			_tmp13_ = segments;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp13_, "gamescope");
			_tmp14_ = self->priv->_gamescope_fullscreen_tile;
			_tmp15_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp14_);
			_tmp16_ = _tmp15_;
			if (gtk_switch_get_active (_tmp16_)) {
				GeeArrayList* _tmp17_;
				_tmp17_ = segments;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp17_, "-f");
			}
			_tmp18_ = self->priv->_gamescope_hdr_tile;
			_tmp19_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp18_);
			_tmp20_ = _tmp19_;
			if (gtk_switch_get_active (_tmp20_)) {
				GeeArrayList* _tmp21_;
				_tmp21_ = segments;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp21_, "--hdr-enabled");
			}
			_tmp22_ = self->priv->_gamescope_vrr_tile;
			_tmp23_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp22_);
			_tmp24_ = _tmp23_;
			if (gtk_switch_get_active (_tmp24_)) {
				GeeArrayList* _tmp25_;
				_tmp25_ = segments;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp25_, "--adaptive-sync");
			}
			_tmp26_ = self->priv->_gamescope_framerate_tile;
			_tmp27_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp26_);
			_tmp28_ = _tmp27_;
			if (gtk_switch_get_active (_tmp28_)) {
				GeeArrayList* _tmp29_;
				ProtonPlusWidgetsLaunchOptionSpinTile* _tmp30_;
				gchar* _tmp31_;
				gchar* _tmp32_;
				_tmp29_ = segments;
				_tmp30_ = self->priv->_gamescope_framerate_tile;
				_tmp31_ = g_strdup_printf ("-r %d", proton_plus_widgets_launch_option_spin_tile_get_value_as_int (_tmp30_));
				_tmp32_ = _tmp31_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp29_, _tmp32_);
				_g_free0 (_tmp32_);
			}
			_tmp33_ = self->priv->_gamescope_resolution_field;
			if (proton_plus_widgets_launch_option_resolution_field_has_resolution (_tmp33_)) {
				gint width = 0;
				gint height = 0;
				ProtonPlusWidgetsLaunchOptionResolutionField* _tmp34_;
				gint _tmp35_ = 0;
				gint _tmp36_ = 0;
				GeeArrayList* _tmp37_;
				gchar* _tmp38_;
				gchar* _tmp39_;
				GeeArrayList* _tmp40_;
				gchar* _tmp41_;
				gchar* _tmp42_;
				_tmp34_ = self->priv->_gamescope_resolution_field;
				proton_plus_widgets_launch_option_resolution_field_get_resolution (_tmp34_, &_tmp35_, &_tmp36_);
				width = _tmp35_;
				height = _tmp36_;
				_tmp37_ = segments;
				_tmp38_ = g_strdup_printf ("-W %d", width);
				_tmp39_ = _tmp38_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp37_, _tmp39_);
				_g_free0 (_tmp39_);
				_tmp40_ = segments;
				_tmp41_ = g_strdup_printf ("-H %d", height);
				_tmp42_ = _tmp41_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp40_, _tmp42_);
				_g_free0 (_tmp42_);
			}
			_tmp43_ = segments;
			_tmp44_ = self->priv->_gamescope_args_field;
			_tmp45_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp44_);
			_tmp46_ = _tmp45_;
			proton_plus_widgets_launch_options_editor_append_segments_from_text (self, _tmp43_, _tmp46_);
			_g_free0 (_tmp46_);
			break;
		}
		case PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY:
		{
			GeeArrayList* _tmp47_;
			GList* _tmp48_;
			ProtonPlusWidgetsLaunchOptionResolutionField* _tmp49_;
			GeeArrayList* _tmp51_;
			ProtonPlusWidgetsLaunchOptionTile* _tmp52_;
			GtkSwitch* _tmp53_;
			GtkSwitch* _tmp54_;
			ProtonPlusWidgetsLaunchOptionSpinTile* _tmp56_;
			GtkSwitch* _tmp57_;
			GtkSwitch* _tmp58_;
			ProtonPlusWidgetsLaunchOptionResolutionField* _tmp63_;
			GeeArrayList* _tmp73_;
			ProtonPlusWidgetsLaunchOptionEntryField* _tmp74_;
			gchar* _tmp75_;
			gchar* _tmp76_;
			_tmp47_ = segments;
			_tmp48_ = self->priv->scopebuddy_bindings;
			proton_plus_widgets_launch_options_editor_append_binding_segments (self, _tmp47_, _tmp48_);
			_tmp49_ = self->priv->_scopebuddy_resolution_field;
			if (proton_plus_widgets_launch_option_resolution_field_is_auto (_tmp49_)) {
				GeeArrayList* _tmp50_;
				_tmp50_ = segments;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp50_, "SCB_AUTO_RES=1");
			}
			_tmp51_ = segments;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp51_, "scopebuddy");
			_tmp52_ = self->priv->_scopebuddy_fullscreen_tile;
			_tmp53_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp52_);
			_tmp54_ = _tmp53_;
			if (gtk_switch_get_active (_tmp54_)) {
				GeeArrayList* _tmp55_;
				_tmp55_ = segments;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp55_, "-f");
			}
			_tmp56_ = self->priv->_scopebuddy_framerate_tile;
			_tmp57_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp56_);
			_tmp58_ = _tmp57_;
			if (gtk_switch_get_active (_tmp58_)) {
				GeeArrayList* _tmp59_;
				ProtonPlusWidgetsLaunchOptionSpinTile* _tmp60_;
				gchar* _tmp61_;
				gchar* _tmp62_;
				_tmp59_ = segments;
				_tmp60_ = self->priv->_scopebuddy_framerate_tile;
				_tmp61_ = g_strdup_printf ("-r %d", proton_plus_widgets_launch_option_spin_tile_get_value_as_int (_tmp60_));
				_tmp62_ = _tmp61_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp59_, _tmp62_);
				_g_free0 (_tmp62_);
			}
			_tmp63_ = self->priv->_scopebuddy_resolution_field;
			if (proton_plus_widgets_launch_option_resolution_field_has_resolution (_tmp63_)) {
				gint width = 0;
				gint height = 0;
				ProtonPlusWidgetsLaunchOptionResolutionField* _tmp64_;
				gint _tmp65_ = 0;
				gint _tmp66_ = 0;
				GeeArrayList* _tmp67_;
				gchar* _tmp68_;
				gchar* _tmp69_;
				GeeArrayList* _tmp70_;
				gchar* _tmp71_;
				gchar* _tmp72_;
				_tmp64_ = self->priv->_scopebuddy_resolution_field;
				proton_plus_widgets_launch_option_resolution_field_get_resolution (_tmp64_, &_tmp65_, &_tmp66_);
				width = _tmp65_;
				height = _tmp66_;
				_tmp67_ = segments;
				_tmp68_ = g_strdup_printf ("-W %d", width);
				_tmp69_ = _tmp68_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp67_, _tmp69_);
				_g_free0 (_tmp69_);
				_tmp70_ = segments;
				_tmp71_ = g_strdup_printf ("-H %d", height);
				_tmp72_ = _tmp71_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp70_, _tmp72_);
				_g_free0 (_tmp72_);
			}
			_tmp73_ = segments;
			_tmp74_ = self->priv->_scopebuddy_args_field;
			_tmp75_ = proton_plus_widgets_launch_option_entry_field_get_text (_tmp74_);
			_tmp76_ = _tmp75_;
			proton_plus_widgets_launch_options_editor_append_segments_from_text (self, _tmp73_, _tmp76_);
			_g_free0 (_tmp76_);
			break;
		}
		default:
		{
			break;
		}
	}
	_tmp77_ = self->priv->_command_tile;
	_tmp78_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp77_);
	_tmp79_ = _tmp78_;
	if (gtk_switch_get_active (_tmp79_)) {
		GeeArrayList* _tmp82_;
		GList* _tmp83_;
		if (selected_wrapper_mode != PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE) {
			GeeArrayList* _tmp80_;
			_tmp80_ = segments;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp80_, "-- %command%");
		} else {
			GeeArrayList* _tmp81_;
			_tmp81_ = segments;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp81_, "%command%");
		}
		_tmp82_ = segments;
		_tmp83_ = self->priv->game_argument_bindings;
		proton_plus_widgets_launch_options_editor_append_binding_segments (self, _tmp82_, _tmp83_);
	}
	result = segments;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_append_binding_segments (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                   GeeArrayList* segments,
                                                                   GList* bindings)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (segments != NULL);
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = bindings;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp0_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp0_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp0_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp1_;
				GtkSwitch* _tmp2_;
				GtkSwitch* _tmp3_;
				ProtonPlusWidgetsLaunchOptionBinding* _tmp4_;
				gchar** _tmp5_;
				gint _tmp5__length1;
				gint _tmp6_ = 0;
				gchar** _tmp7_;
				gint _tmp7__length1;
				_tmp1_ = binding;
				_tmp2_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp1_);
				_tmp3_ = _tmp2_;
				if (!gtk_switch_get_active (_tmp3_)) {
					_g_object_unref0 (binding);
					continue;
				}
				_tmp4_ = binding;
				_tmp5_ = proton_plus_widgets_launch_option_binding_get_tokens (_tmp4_, &_tmp6_);
				_tmp5__length1 = _tmp6_;
				_tmp7_ = _tmp5_;
				_tmp7__length1 = _tmp5__length1;
				{
					gchar** token_collection = NULL;
					gint token_collection_length1 = 0;
					gint _token_collection_size_ = 0;
					gint token_it = 0;
					token_collection = _tmp7_;
					token_collection_length1 = _tmp7__length1;
					for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
						gchar* _tmp8_;
						gchar* token = NULL;
						_tmp8_ = g_strdup (token_collection[token_it]);
						token = _tmp8_;
						{
							const gchar* _tmp9_;
							_tmp9_ = token;
							gee_abstract_collection_add ((GeeAbstractCollection*) segments, _tmp9_);
							_g_free0 (token);
						}
					}
				}
				_g_object_unref0 (binding);
			}
		}
	}
}

static void
proton_plus_widgets_launch_options_editor_append_segments_from_text (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     GeeArrayList* segments,
                                                                     const gchar* launch_options)
{
	gint _tmp0_ = 0;
	gchar** _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (segments != NULL);
	g_return_if_fail (launch_options != NULL);
	_tmp1_ = proton_plus_widgets_launch_options_editor_get_launch_option_tokens (self, launch_options, &_tmp0_);
	{
		gchar** token_collection = NULL;
		gint token_collection_length1 = 0;
		gint _token_collection_size_ = 0;
		gint token_it = 0;
		token_collection = _tmp1_;
		token_collection_length1 = _tmp0_;
		for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
			gchar* _tmp2_;
			gchar* token = NULL;
			_tmp2_ = g_strdup (token_collection[token_it]);
			token = _tmp2_;
			{
				const gchar* _tmp3_;
				const gchar* _tmp4_;
				_tmp3_ = token;
				if (g_strcmp0 (_tmp3_, "") == 0) {
					_g_free0 (token);
					continue;
				}
				_tmp4_ = token;
				gee_abstract_collection_add ((GeeAbstractCollection*) segments, _tmp4_);
				_g_free0 (token);
			}
		}
		token_collection = (_vala_array_free (token_collection, token_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}

static void
proton_plus_widgets_launch_options_editor_append_none_segments (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                GeeArrayList* segments)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (segments != NULL);
	_tmp0_ = self->priv->_hdr_tile;
	_tmp1_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp0_);
	_tmp2_ = _tmp1_;
	if (gtk_switch_get_active (_tmp2_)) {
		gee_abstract_collection_add ((GeeAbstractCollection*) segments, "PROTON_ENABLE_HDR=1");
	}
}

static void
proton_plus_widgets_launch_options_editor_apply_game_argument_bindings_from_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                                    gchar** tokens,
                                                                                    gint tokens_length1,
                                                                                    gboolean* consumed,
                                                                                    gint consumed_length1,
                                                                                    gint command_index)
{
	GList* _tmp0_;
	g_return_if_fail (self != NULL);
	if (command_index < 0) {
		return;
	}
	_tmp0_ = self->priv->game_argument_bindings;
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = _tmp0_;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp1_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp1_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp1_;
			{
				GeeArrayList* token_indexes = NULL;
				GeeArrayList* _tmp2_;
				gboolean all_tokens_present = FALSE;
				ProtonPlusWidgetsLaunchOptionBinding* _tmp3_;
				gchar** _tmp4_;
				gint _tmp4__length1;
				gint _tmp5_ = 0;
				gchar** _tmp6_;
				gint _tmp6__length1;
				ProtonPlusWidgetsLaunchOptionBinding* _tmp10_;
				GtkSwitch* _tmp11_;
				GtkSwitch* _tmp12_;
				_tmp2_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL);
				token_indexes = _tmp2_;
				all_tokens_present = TRUE;
				_tmp3_ = binding;
				_tmp4_ = proton_plus_widgets_launch_option_binding_get_tokens (_tmp3_, &_tmp5_);
				_tmp4__length1 = _tmp5_;
				_tmp6_ = _tmp4_;
				_tmp6__length1 = _tmp4__length1;
				{
					gchar** token_collection = NULL;
					gint token_collection_length1 = 0;
					gint _token_collection_size_ = 0;
					gint token_it = 0;
					token_collection = _tmp6_;
					token_collection_length1 = _tmp6__length1;
					for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
						gchar* _tmp7_;
						gchar* token = NULL;
						_tmp7_ = g_strdup (token_collection[token_it]);
						token = _tmp7_;
						{
							gint token_index = 0;
							const gchar* _tmp8_;
							GeeArrayList* _tmp9_;
							_tmp8_ = token;
							token_index = proton_plus_widgets_launch_options_editor_get_unconsumed_token_index_after (self, tokens, (gint) tokens_length1, _tmp8_, consumed, (gint) consumed_length1, command_index + 1);
							if (token_index < 0) {
								all_tokens_present = FALSE;
								_g_free0 (token);
								break;
							}
							_tmp9_ = token_indexes;
							gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, (gpointer) ((gintptr) token_index));
							_g_free0 (token);
						}
					}
				}
				if (!all_tokens_present) {
					_g_object_unref0 (token_indexes);
					_g_object_unref0 (binding);
					continue;
				}
				_tmp10_ = binding;
				_tmp11_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp10_);
				_tmp12_ = _tmp11_;
				gtk_switch_set_active (_tmp12_, TRUE);
				{
					GeeArrayList* _token_index_list = NULL;
					GeeArrayList* _tmp13_;
					gint _token_index_size = 0;
					GeeArrayList* _tmp14_;
					gint _tmp15_;
					gint _tmp16_;
					gint _token_index_index = 0;
					_tmp13_ = token_indexes;
					_token_index_list = _tmp13_;
					_tmp14_ = _token_index_list;
					_tmp15_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp14_);
					_tmp16_ = _tmp15_;
					_token_index_size = _tmp16_;
					_token_index_index = -1;
					while (TRUE) {
						gint _tmp17_;
						gint _tmp18_;
						gint token_index = 0;
						GeeArrayList* _tmp19_;
						gpointer _tmp20_;
						_token_index_index = _token_index_index + 1;
						_tmp17_ = _token_index_index;
						_tmp18_ = _token_index_size;
						if (!(_tmp17_ < _tmp18_)) {
							break;
						}
						_tmp19_ = _token_index_list;
						_tmp20_ = gee_abstract_list_get ((GeeAbstractList*) _tmp19_, _token_index_index);
						token_index = (gint) ((gintptr) _tmp20_);
						consumed[token_index] = TRUE;
					}
				}
				_g_object_unref0 (token_indexes);
				_g_object_unref0 (binding);
			}
		}
	}
}

static gboolean
proton_plus_widgets_launch_options_editor_has_active_binding (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                              GList* bindings)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = bindings;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp0_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp0_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp0_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp1_;
				GtkSwitch* _tmp2_;
				GtkSwitch* _tmp3_;
				_tmp1_ = binding;
				_tmp2_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp1_);
				_tmp3_ = _tmp2_;
				if (gtk_switch_get_active (_tmp3_)) {
					result = TRUE;
					_g_object_unref0 (binding);
					return result;
				}
				_g_object_unref0 (binding);
			}
		}
	}
	result = FALSE;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_reset_binding_toggles (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                 GList* bindings)
{
	g_return_if_fail (self != NULL);
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = bindings;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp0_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp0_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp0_;
			{
				ProtonPlusWidgetsLaunchOptionBinding* _tmp1_;
				GtkSwitch* _tmp2_;
				GtkSwitch* _tmp3_;
				_tmp1_ = binding;
				_tmp2_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp1_);
				_tmp3_ = _tmp2_;
				gtk_switch_set_active (_tmp3_, FALSE);
				_g_object_unref0 (binding);
			}
		}
	}
}

static void
proton_plus_widgets_launch_options_editor_amd_fsr4_upgrade_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	_tmp1_ = self->priv->_amd_fsr4_upgrade_tile;
	_tmp2_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp1_);
	_tmp3_ = _tmp2_;
	if (gtk_switch_get_active (_tmp3_)) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		_tmp4_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
		_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp0_ = gtk_switch_get_active (_tmp6_);
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
		GtkSwitch* _tmp8_;
		GtkSwitch* _tmp9_;
		self->priv->refreshing_controls = TRUE;
		_tmp7_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
		_tmp8_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp7_);
		_tmp9_ = _tmp8_;
		gtk_switch_set_active (_tmp9_, FALSE);
		self->priv->refreshing_controls = FALSE;
	}
	proton_plus_widgets_launch_options_editor_standard_control_changed (self);
}

static void
proton_plus_widgets_launch_options_editor_amd_fsr4_rdna3_upgrade_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	_tmp1_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
	_tmp2_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp1_);
	_tmp3_ = _tmp2_;
	if (gtk_switch_get_active (_tmp3_)) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		_tmp4_ = self->priv->_amd_fsr4_upgrade_tile;
		_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp0_ = gtk_switch_get_active (_tmp6_);
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
		GtkSwitch* _tmp8_;
		GtkSwitch* _tmp9_;
		self->priv->refreshing_controls = TRUE;
		_tmp7_ = self->priv->_amd_fsr4_upgrade_tile;
		_tmp8_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp7_);
		_tmp9_ = _tmp8_;
		gtk_switch_set_active (_tmp9_, FALSE);
		self->priv->refreshing_controls = FALSE;
	}
	proton_plus_widgets_launch_options_editor_standard_control_changed (self);
}

static void
proton_plus_widgets_launch_options_editor_normalize_amd_fsr_upgrade_dependencies (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	gboolean was_refreshing = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
	GtkSwitch* _tmp8_;
	GtkSwitch* _tmp9_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->_amd_fsr4_upgrade_tile;
	_tmp2_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp1_);
	_tmp3_ = _tmp2_;
	if (!gtk_switch_get_active (_tmp3_)) {
		_tmp0_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		_tmp4_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
		_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp0_ = !gtk_switch_get_active (_tmp6_);
	}
	if (_tmp0_) {
		return;
	}
	was_refreshing = self->priv->refreshing_controls;
	self->priv->refreshing_controls = TRUE;
	_tmp7_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
	_tmp8_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp7_);
	_tmp9_ = _tmp8_;
	gtk_switch_set_active (_tmp9_, FALSE);
	self->priv->refreshing_controls = was_refreshing;
}

static void
proton_plus_widgets_launch_options_editor_nvidia_nvapi_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	_tmp1_ = self->priv->_nvapi_tile;
	_tmp2_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp1_);
	_tmp3_ = _tmp2_;
	if (!gtk_switch_get_active (_tmp3_)) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		_tmp4_ = self->priv->_nvidia_ngx_updater_tile;
		_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp0_ = gtk_switch_get_active (_tmp6_);
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
		GtkSwitch* _tmp8_;
		GtkSwitch* _tmp9_;
		self->priv->refreshing_controls = TRUE;
		_tmp7_ = self->priv->_nvidia_ngx_updater_tile;
		_tmp8_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp7_);
		_tmp9_ = _tmp8_;
		gtk_switch_set_active (_tmp9_, FALSE);
		self->priv->refreshing_controls = FALSE;
	}
	proton_plus_widgets_launch_options_editor_standard_control_changed (self);
}

static void
proton_plus_widgets_launch_options_editor_nvidia_dlss_updater_toggle_changed (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	g_return_if_fail (self != NULL);
	if (self->priv->refreshing_controls) {
		return;
	}
	_tmp1_ = self->priv->_nvidia_ngx_updater_tile;
	_tmp2_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp1_);
	_tmp3_ = _tmp2_;
	if (gtk_switch_get_active (_tmp3_)) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		_tmp4_ = self->priv->_nvapi_tile;
		_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp0_ = !gtk_switch_get_active (_tmp6_);
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
		GtkSwitch* _tmp8_;
		GtkSwitch* _tmp9_;
		self->priv->refreshing_controls = TRUE;
		_tmp7_ = self->priv->_nvapi_tile;
		_tmp8_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp7_);
		_tmp9_ = _tmp8_;
		gtk_switch_set_active (_tmp9_, TRUE);
		self->priv->refreshing_controls = FALSE;
	}
	proton_plus_widgets_launch_options_editor_standard_control_changed (self);
}

static void
proton_plus_widgets_launch_options_editor_normalize_nvidia_vendor_dependencies (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp1_;
	GtkSwitch* _tmp2_;
	GtkSwitch* _tmp3_;
	gboolean was_refreshing = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
	GtkSwitch* _tmp8_;
	GtkSwitch* _tmp9_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->_nvidia_ngx_updater_tile;
	_tmp2_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp1_);
	_tmp3_ = _tmp2_;
	if (!gtk_switch_get_active (_tmp3_)) {
		_tmp0_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
		GtkSwitch* _tmp5_;
		GtkSwitch* _tmp6_;
		_tmp4_ = self->priv->_nvapi_tile;
		_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp0_ = gtk_switch_get_active (_tmp6_);
	}
	if (_tmp0_) {
		return;
	}
	was_refreshing = self->priv->refreshing_controls;
	self->priv->refreshing_controls = TRUE;
	_tmp7_ = self->priv->_nvapi_tile;
	_tmp8_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp7_);
	_tmp9_ = _tmp8_;
	gtk_switch_set_active (_tmp9_, TRUE);
	self->priv->refreshing_controls = was_refreshing;
}

static void
proton_plus_widgets_launch_options_editor_refresh_preview (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionPreviewField* _tmp0_;
	GtkLabel* _tmp1_;
	GtkLabel* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_preview_field;
	_tmp1_ = proton_plus_widgets_launch_option_preview_field_get_preview_label (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = proton_plus_widgets_launch_options_editor_build_preview_markup (self);
	_tmp4_ = _tmp3_;
	gtk_label_set_markup (_tmp2_, _tmp4_);
	_g_free0 (_tmp4_);
}

static gchar*
proton_plus_widgets_launch_options_editor_build_preview_markup (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GeeArrayList* segments = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gchar** preview_colors = NULL;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar** _tmp14_;
	gint preview_colors_length1;
	gint _preview_colors_size_;
	GString* markup = NULL;
	GString* _tmp15_;
	GString* _tmp16_;
	GString* _tmp35_;
	GString* _tmp36_;
	const gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = proton_plus_widgets_launch_options_editor_get_command_segments (self);
	segments = _tmp0_;
	_tmp1_ = segments;
	_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_ == 0) {
		gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		_tmp4_ = g_markup_escape_text (_ ("No launch options configured yet."), (gssize) -1);
		_tmp5_ = _tmp4_;
		_tmp6_ = g_strdup_printf ("<tt><span foreground='#8b949e'>%s</span></tt>", _tmp5_);
		_tmp7_ = _tmp6_;
		_g_free0 (_tmp5_);
		result = _tmp7_;
		_g_object_unref0 (segments);
		return result;
	}
	_tmp8_ = g_strdup ("#79c0ff");
	_tmp9_ = g_strdup ("#ff938a");
	_tmp10_ = g_strdup ("#7ee787");
	_tmp11_ = g_strdup ("#d2a8ff");
	_tmp12_ = g_strdup ("#e3b341");
	_tmp13_ = g_strdup ("#56d4dd");
	_tmp14_ = g_new0 (gchar*, 6 + 1);
	_tmp14_[0] = _tmp8_;
	_tmp14_[1] = _tmp9_;
	_tmp14_[2] = _tmp10_;
	_tmp14_[3] = _tmp11_;
	_tmp14_[4] = _tmp12_;
	_tmp14_[5] = _tmp13_;
	preview_colors = _tmp14_;
	preview_colors_length1 = 6;
	_preview_colors_size_ = preview_colors_length1;
	_tmp15_ = g_string_new ("");
	markup = _tmp15_;
	_tmp16_ = markup;
	g_string_append (_tmp16_, "<tt>");
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp17_ = FALSE;
			_tmp17_ = TRUE;
			while (TRUE) {
				GeeArrayList* _tmp19_;
				gint _tmp20_;
				gint _tmp21_;
				gchar* escaped_segment = NULL;
				GeeArrayList* _tmp23_;
				gpointer _tmp24_;
				gchar* _tmp25_;
				gchar* _tmp26_;
				gchar* _tmp27_;
				GString* _tmp28_;
				gchar** _tmp29_;
				gint _tmp29__length1;
				gchar** _tmp30_;
				gint _tmp30__length1;
				const gchar* _tmp31_;
				const gchar* _tmp32_;
				gchar* _tmp33_;
				gchar* _tmp34_;
				if (!_tmp17_) {
					gint _tmp18_;
					_tmp18_ = index;
					index = _tmp18_ + 1;
				}
				_tmp17_ = FALSE;
				_tmp19_ = segments;
				_tmp20_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp19_);
				_tmp21_ = _tmp20_;
				if (!(index < _tmp21_)) {
					break;
				}
				if (index > 0) {
					GString* _tmp22_;
					_tmp22_ = markup;
					g_string_append (_tmp22_, " ");
				}
				_tmp23_ = segments;
				_tmp24_ = gee_abstract_list_get ((GeeAbstractList*) _tmp23_, index);
				_tmp25_ = (gchar*) _tmp24_;
				_tmp26_ = g_markup_escape_text (_tmp25_, (gssize) -1);
				_tmp27_ = _tmp26_;
				_g_free0 (_tmp25_);
				escaped_segment = _tmp27_;
				_tmp28_ = markup;
				_tmp29_ = preview_colors;
				_tmp29__length1 = preview_colors_length1;
				_tmp30_ = preview_colors;
				_tmp30__length1 = preview_colors_length1;
				_tmp31_ = _tmp29_[index % _tmp30__length1];
				_tmp32_ = escaped_segment;
				_tmp33_ = g_strdup_printf ("<span foreground='%s'>%s</span>", _tmp31_, _tmp32_);
				_tmp34_ = _tmp33_;
				g_string_append (_tmp28_, _tmp34_);
				_g_free0 (_tmp34_);
				_g_free0 (escaped_segment);
			}
		}
	}
	_tmp35_ = markup;
	g_string_append (_tmp35_, "</tt>");
	_tmp36_ = markup;
	_tmp37_ = _tmp36_->str;
	_tmp38_ = g_strdup (_tmp37_);
	result = _tmp38_;
	_g_string_free0 (markup);
	preview_colors = (_vala_array_free (preview_colors, preview_colors_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (segments);
	return result;
}

static void
proton_plus_widgets_launch_options_editor_apply_bindings_from_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                      GList* bindings,
                                                                      gchar** tokens,
                                                                      gint tokens_length1,
                                                                      gboolean* consumed,
                                                                      gint consumed_length1)
{
	g_return_if_fail (self != NULL);
	{
		GList* binding_collection = NULL;
		GList* binding_it = NULL;
		binding_collection = bindings;
		for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
			ProtonPlusWidgetsLaunchOptionBinding* _tmp0_;
			ProtonPlusWidgetsLaunchOptionBinding* binding = NULL;
			_tmp0_ = _g_object_ref0 ((ProtonPlusWidgetsLaunchOptionBinding*) binding_it->data);
			binding = _tmp0_;
			{
				GeeArrayList* token_indexes = NULL;
				GeeArrayList* _tmp1_;
				gboolean all_tokens_present = FALSE;
				ProtonPlusWidgetsLaunchOptionBinding* _tmp2_;
				gchar** _tmp3_;
				gint _tmp3__length1;
				gint _tmp4_ = 0;
				gchar** _tmp5_;
				gint _tmp5__length1;
				ProtonPlusWidgetsLaunchOptionBinding* _tmp9_;
				GtkSwitch* _tmp10_;
				GtkSwitch* _tmp11_;
				_tmp1_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL);
				token_indexes = _tmp1_;
				all_tokens_present = TRUE;
				_tmp2_ = binding;
				_tmp3_ = proton_plus_widgets_launch_option_binding_get_tokens (_tmp2_, &_tmp4_);
				_tmp3__length1 = _tmp4_;
				_tmp5_ = _tmp3_;
				_tmp5__length1 = _tmp3__length1;
				{
					gchar** token_collection = NULL;
					gint token_collection_length1 = 0;
					gint _token_collection_size_ = 0;
					gint token_it = 0;
					token_collection = _tmp5_;
					token_collection_length1 = _tmp5__length1;
					for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
						gchar* _tmp6_;
						gchar* token = NULL;
						_tmp6_ = g_strdup (token_collection[token_it]);
						token = _tmp6_;
						{
							gint token_index = 0;
							const gchar* _tmp7_;
							GeeArrayList* _tmp8_;
							_tmp7_ = token;
							token_index = proton_plus_widgets_launch_options_editor_get_unconsumed_token_index (self, tokens, (gint) tokens_length1, _tmp7_, consumed, (gint) consumed_length1);
							if (token_index < 0) {
								all_tokens_present = FALSE;
								_g_free0 (token);
								break;
							}
							_tmp8_ = token_indexes;
							gee_abstract_collection_add ((GeeAbstractCollection*) _tmp8_, (gpointer) ((gintptr) token_index));
							_g_free0 (token);
						}
					}
				}
				if (!all_tokens_present) {
					_g_object_unref0 (token_indexes);
					_g_object_unref0 (binding);
					continue;
				}
				_tmp9_ = binding;
				_tmp10_ = proton_plus_widgets_launch_option_binding_get_toggle (_tmp9_);
				_tmp11_ = _tmp10_;
				gtk_switch_set_active (_tmp11_, TRUE);
				{
					GeeArrayList* _token_index_list = NULL;
					GeeArrayList* _tmp12_;
					gint _token_index_size = 0;
					GeeArrayList* _tmp13_;
					gint _tmp14_;
					gint _tmp15_;
					gint _token_index_index = 0;
					_tmp12_ = token_indexes;
					_token_index_list = _tmp12_;
					_tmp13_ = _token_index_list;
					_tmp14_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp13_);
					_tmp15_ = _tmp14_;
					_token_index_size = _tmp15_;
					_token_index_index = -1;
					while (TRUE) {
						gint _tmp16_;
						gint _tmp17_;
						gint token_index = 0;
						GeeArrayList* _tmp18_;
						gpointer _tmp19_;
						_token_index_index = _token_index_index + 1;
						_tmp16_ = _token_index_index;
						_tmp17_ = _token_index_size;
						if (!(_tmp16_ < _tmp17_)) {
							break;
						}
						_tmp18_ = _token_index_list;
						_tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, _token_index_index);
						token_index = (gint) ((gintptr) _tmp19_);
						consumed[token_index] = TRUE;
					}
				}
				_g_object_unref0 (token_indexes);
				_g_object_unref0 (binding);
			}
		}
	}
}

static void
proton_plus_widgets_launch_options_editor_parse_gamescope_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  gchar** tokens,
                                                                  gint tokens_length1,
                                                                  gboolean* consumed,
                                                                  gint consumed_length1)
{
	gint wrapper_index = 0;
	gchar* _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gint _tmp3_;
	gint end_index = 0;
	GString* extra_args = NULL;
	GString* _tmp4_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp45_;
	GString* _tmp46_;
	const gchar* _tmp47_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup ("gamescope");
	_tmp1_ = g_new0 (gchar*, 1 + 1);
	_tmp1_[0] = _tmp0_;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = 1;
	_tmp3_ = proton_plus_widgets_launch_options_editor_get_first_present_index (self, tokens, (gint) tokens_length1, _tmp2_, (gint) 1);
	_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
	wrapper_index = _tmp3_;
	if (wrapper_index < 0) {
		return;
	}
	consumed[wrapper_index] = TRUE;
	end_index = proton_plus_widgets_launch_options_editor_get_wrapper_end_index (self, tokens, (gint) tokens_length1, wrapper_index, consumed, (gint) consumed_length1);
	_tmp4_ = g_string_new ("");
	extra_args = _tmp4_;
	{
		gint index = 0;
		index = wrapper_index + 1;
		{
			gboolean _tmp5_ = FALSE;
			_tmp5_ = TRUE;
			while (TRUE) {
				gchar* token = NULL;
				const gchar* _tmp7_;
				gchar* _tmp8_;
				const gchar* _tmp9_;
				const gchar* _tmp13_;
				const gchar* _tmp17_;
				gboolean _tmp21_ = FALSE;
				const gchar* _tmp22_;
				gboolean _tmp31_ = FALSE;
				gboolean _tmp32_ = FALSE;
				const gchar* _tmp33_;
				GString* _tmp43_;
				const gchar* _tmp44_;
				if (!_tmp5_) {
					gint _tmp6_;
					_tmp6_ = index;
					index = _tmp6_ + 1;
				}
				_tmp5_ = FALSE;
				if (!(index < end_index)) {
					break;
				}
				_tmp7_ = tokens[index];
				_tmp8_ = g_strdup (_tmp7_);
				token = _tmp8_;
				_tmp9_ = token;
				if (g_strcmp0 (_tmp9_, "-f") == 0) {
					ProtonPlusWidgetsLaunchOptionTile* _tmp10_;
					GtkSwitch* _tmp11_;
					GtkSwitch* _tmp12_;
					_tmp10_ = self->priv->_gamescope_fullscreen_tile;
					_tmp11_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp10_);
					_tmp12_ = _tmp11_;
					gtk_switch_set_active (_tmp12_, TRUE);
					consumed[index] = TRUE;
					_g_free0 (token);
					continue;
				}
				_tmp13_ = token;
				if (g_strcmp0 (_tmp13_, "--hdr-enabled") == 0) {
					ProtonPlusWidgetsLaunchOptionTile* _tmp14_;
					GtkSwitch* _tmp15_;
					GtkSwitch* _tmp16_;
					_tmp14_ = self->priv->_gamescope_hdr_tile;
					_tmp15_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp14_);
					_tmp16_ = _tmp15_;
					gtk_switch_set_active (_tmp16_, TRUE);
					consumed[index] = TRUE;
					_g_free0 (token);
					continue;
				}
				_tmp17_ = token;
				if (g_strcmp0 (_tmp17_, "--adaptive-sync") == 0) {
					ProtonPlusWidgetsLaunchOptionTile* _tmp18_;
					GtkSwitch* _tmp19_;
					GtkSwitch* _tmp20_;
					_tmp18_ = self->priv->_gamescope_vrr_tile;
					_tmp19_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp18_);
					_tmp20_ = _tmp19_;
					gtk_switch_set_active (_tmp20_, TRUE);
					consumed[index] = TRUE;
					_g_free0 (token);
					continue;
				}
				_tmp22_ = token;
				if (g_strcmp0 (_tmp22_, "-r") == 0) {
					_tmp21_ = (index + 1) < end_index;
				} else {
					_tmp21_ = FALSE;
				}
				if (_tmp21_) {
					gint framerate = 0;
					const gchar* _tmp23_;
					gint _tmp24_ = 0;
					gboolean _tmp25_;
					_tmp23_ = tokens[index + 1];
					_tmp25_ = int_try_parse (_tmp23_, &_tmp24_, NULL, (guint) 0);
					framerate = _tmp24_;
					if (_tmp25_) {
						ProtonPlusWidgetsLaunchOptionSpinTile* _tmp26_;
						GtkSwitch* _tmp27_;
						GtkSwitch* _tmp28_;
						ProtonPlusWidgetsLaunchOptionSpinTile* _tmp29_;
						gint _tmp30_;
						_tmp26_ = self->priv->_gamescope_framerate_tile;
						_tmp27_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp26_);
						_tmp28_ = _tmp27_;
						gtk_switch_set_active (_tmp28_, TRUE);
						_tmp29_ = self->priv->_gamescope_framerate_tile;
						proton_plus_widgets_launch_option_spin_tile_set_value (_tmp29_, framerate);
						consumed[index] = TRUE;
						consumed[index + 1] = TRUE;
						_tmp30_ = index;
						index = _tmp30_ + 1;
						_g_free0 (token);
						continue;
					}
				}
				_tmp33_ = token;
				if (g_strcmp0 (_tmp33_, "-W") == 0) {
					_tmp32_ = (index + 3) < end_index;
				} else {
					_tmp32_ = FALSE;
				}
				if (_tmp32_) {
					const gchar* _tmp34_;
					_tmp34_ = tokens[index + 2];
					_tmp31_ = g_strcmp0 (_tmp34_, "-H") == 0;
				} else {
					_tmp31_ = FALSE;
				}
				if (_tmp31_) {
					gint width = 0;
					gint height = 0;
					gboolean _tmp35_ = FALSE;
					const gchar* _tmp36_;
					gint _tmp37_ = 0;
					gboolean _tmp38_;
					width = 0;
					height = 0;
					_tmp36_ = tokens[index + 1];
					_tmp38_ = int_try_parse (_tmp36_, &_tmp37_, NULL, (guint) 0);
					width = _tmp37_;
					if (_tmp38_) {
						const gchar* _tmp39_;
						gint _tmp40_ = 0;
						gboolean _tmp41_;
						_tmp39_ = tokens[index + 3];
						_tmp41_ = int_try_parse (_tmp39_, &_tmp40_, NULL, (guint) 0);
						height = _tmp40_;
						_tmp35_ = _tmp41_;
					} else {
						_tmp35_ = FALSE;
					}
					if (_tmp35_) {
						ProtonPlusWidgetsLaunchOptionResolutionField* _tmp42_;
						_tmp42_ = self->priv->_gamescope_resolution_field;
						proton_plus_widgets_launch_option_resolution_field_set_resolution (_tmp42_, width, height);
						consumed[index] = TRUE;
						consumed[index + 1] = TRUE;
						consumed[index + 2] = TRUE;
						consumed[index + 3] = TRUE;
						index += 3;
						_g_free0 (token);
						continue;
					}
				}
				_tmp43_ = extra_args;
				_tmp44_ = token;
				proton_plus_widgets_launch_options_editor_append_token (self, _tmp43_, _tmp44_);
				consumed[index] = TRUE;
				_g_free0 (token);
			}
		}
	}
	_tmp45_ = self->priv->_gamescope_args_field;
	_tmp46_ = extra_args;
	_tmp47_ = _tmp46_->str;
	proton_plus_widgets_launch_option_entry_field_set_text (_tmp45_, _tmp47_);
	_g_string_free0 (extra_args);
}

static void
proton_plus_widgets_launch_options_editor_parse_none_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                             gchar** tokens,
                                                             gint tokens_length1,
                                                             gboolean* consumed,
                                                             gint consumed_length1)
{
	gint hdr_index = 0;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	GtkSwitch* _tmp1_;
	GtkSwitch* _tmp2_;
	g_return_if_fail (self != NULL);
	hdr_index = proton_plus_widgets_launch_options_editor_get_unconsumed_token_index (self, tokens, (gint) tokens_length1, "PROTON_ENABLE_HDR=1", consumed, (gint) consumed_length1);
	if (hdr_index < 0) {
		return;
	}
	_tmp0_ = self->priv->_hdr_tile;
	_tmp1_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp0_);
	_tmp2_ = _tmp1_;
	gtk_switch_set_active (_tmp2_, TRUE);
	consumed[hdr_index] = TRUE;
}

static void
proton_plus_widgets_launch_options_editor_parse_scopebuddy_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                   gchar** tokens,
                                                                   gint tokens_length1,
                                                                   gboolean* consumed,
                                                                   gint consumed_length1)
{
	GList* _tmp0_;
	gint auto_resolution_index = 0;
	gint wrapper_index = 0;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar** _tmp4_;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gint _tmp6_;
	gint end_index = 0;
	GString* extra_args = NULL;
	GString* _tmp7_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp38_;
	GString* _tmp39_;
	const gchar* _tmp40_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->scopebuddy_bindings;
	proton_plus_widgets_launch_options_editor_apply_bindings_from_tokens (self, _tmp0_, tokens, (gint) tokens_length1, consumed, (gint) consumed_length1);
	auto_resolution_index = proton_plus_widgets_launch_options_editor_get_unconsumed_token_index (self, tokens, (gint) tokens_length1, "SCB_AUTO_RES=1", consumed, (gint) consumed_length1);
	if (auto_resolution_index >= 0) {
		ProtonPlusWidgetsLaunchOptionResolutionField* _tmp1_;
		_tmp1_ = self->priv->_scopebuddy_resolution_field;
		proton_plus_widgets_launch_option_resolution_field_set_auto (_tmp1_);
		consumed[auto_resolution_index] = TRUE;
	}
	_tmp2_ = g_strdup ("scopebuddy");
	_tmp3_ = g_strdup ("scb");
	_tmp4_ = g_new0 (gchar*, 2 + 1);
	_tmp4_[0] = _tmp2_;
	_tmp4_[1] = _tmp3_;
	_tmp5_ = _tmp4_;
	_tmp5__length1 = 2;
	_tmp6_ = proton_plus_widgets_launch_options_editor_get_first_present_index (self, tokens, (gint) tokens_length1, _tmp5_, (gint) 2);
	_tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_free), NULL);
	wrapper_index = _tmp6_;
	if (wrapper_index < 0) {
		return;
	}
	consumed[wrapper_index] = TRUE;
	end_index = proton_plus_widgets_launch_options_editor_get_wrapper_end_index (self, tokens, (gint) tokens_length1, wrapper_index, consumed, (gint) consumed_length1);
	_tmp7_ = g_string_new ("");
	extra_args = _tmp7_;
	{
		gint index = 0;
		index = wrapper_index + 1;
		{
			gboolean _tmp8_ = FALSE;
			_tmp8_ = TRUE;
			while (TRUE) {
				const gchar* _tmp10_;
				gboolean _tmp14_ = FALSE;
				const gchar* _tmp15_;
				gboolean _tmp24_ = FALSE;
				gboolean _tmp25_ = FALSE;
				const gchar* _tmp26_;
				GString* _tmp36_;
				const gchar* _tmp37_;
				if (!_tmp8_) {
					gint _tmp9_;
					_tmp9_ = index;
					index = _tmp9_ + 1;
				}
				_tmp8_ = FALSE;
				if (!(index < end_index)) {
					break;
				}
				_tmp10_ = tokens[index];
				if (g_strcmp0 (_tmp10_, "-f") == 0) {
					ProtonPlusWidgetsLaunchOptionTile* _tmp11_;
					GtkSwitch* _tmp12_;
					GtkSwitch* _tmp13_;
					_tmp11_ = self->priv->_scopebuddy_fullscreen_tile;
					_tmp12_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp11_);
					_tmp13_ = _tmp12_;
					gtk_switch_set_active (_tmp13_, TRUE);
					consumed[index] = TRUE;
					continue;
				}
				_tmp15_ = tokens[index];
				if (g_strcmp0 (_tmp15_, "-r") == 0) {
					_tmp14_ = (index + 1) < end_index;
				} else {
					_tmp14_ = FALSE;
				}
				if (_tmp14_) {
					gint framerate = 0;
					const gchar* _tmp16_;
					gint _tmp17_ = 0;
					gboolean _tmp18_;
					_tmp16_ = tokens[index + 1];
					_tmp18_ = int_try_parse (_tmp16_, &_tmp17_, NULL, (guint) 0);
					framerate = _tmp17_;
					if (_tmp18_) {
						ProtonPlusWidgetsLaunchOptionSpinTile* _tmp19_;
						GtkSwitch* _tmp20_;
						GtkSwitch* _tmp21_;
						ProtonPlusWidgetsLaunchOptionSpinTile* _tmp22_;
						gint _tmp23_;
						_tmp19_ = self->priv->_scopebuddy_framerate_tile;
						_tmp20_ = proton_plus_widgets_launch_option_spin_tile_get_toggle (_tmp19_);
						_tmp21_ = _tmp20_;
						gtk_switch_set_active (_tmp21_, TRUE);
						_tmp22_ = self->priv->_scopebuddy_framerate_tile;
						proton_plus_widgets_launch_option_spin_tile_set_value (_tmp22_, framerate);
						consumed[index] = TRUE;
						consumed[index + 1] = TRUE;
						_tmp23_ = index;
						index = _tmp23_ + 1;
						continue;
					}
				}
				_tmp26_ = tokens[index];
				if (g_strcmp0 (_tmp26_, "-W") == 0) {
					_tmp25_ = (index + 3) < end_index;
				} else {
					_tmp25_ = FALSE;
				}
				if (_tmp25_) {
					const gchar* _tmp27_;
					_tmp27_ = tokens[index + 2];
					_tmp24_ = g_strcmp0 (_tmp27_, "-H") == 0;
				} else {
					_tmp24_ = FALSE;
				}
				if (_tmp24_) {
					gint width = 0;
					gint height = 0;
					gboolean _tmp28_ = FALSE;
					const gchar* _tmp29_;
					gint _tmp30_ = 0;
					gboolean _tmp31_;
					width = 0;
					height = 0;
					_tmp29_ = tokens[index + 1];
					_tmp31_ = int_try_parse (_tmp29_, &_tmp30_, NULL, (guint) 0);
					width = _tmp30_;
					if (_tmp31_) {
						const gchar* _tmp32_;
						gint _tmp33_ = 0;
						gboolean _tmp34_;
						_tmp32_ = tokens[index + 3];
						_tmp34_ = int_try_parse (_tmp32_, &_tmp33_, NULL, (guint) 0);
						height = _tmp33_;
						_tmp28_ = _tmp34_;
					} else {
						_tmp28_ = FALSE;
					}
					if (_tmp28_) {
						ProtonPlusWidgetsLaunchOptionResolutionField* _tmp35_;
						_tmp35_ = self->priv->_scopebuddy_resolution_field;
						proton_plus_widgets_launch_option_resolution_field_set_resolution (_tmp35_, width, height);
						consumed[index] = TRUE;
						consumed[index + 1] = TRUE;
						consumed[index + 2] = TRUE;
						consumed[index + 3] = TRUE;
						index += 3;
						continue;
					}
				}
				_tmp36_ = extra_args;
				_tmp37_ = tokens[index];
				proton_plus_widgets_launch_options_editor_append_token (self, _tmp36_, _tmp37_);
				consumed[index] = TRUE;
			}
		}
	}
	_tmp38_ = self->priv->_scopebuddy_args_field;
	_tmp39_ = extra_args;
	_tmp40_ = _tmp39_->str;
	proton_plus_widgets_launch_option_entry_field_set_text (_tmp38_, _tmp40_);
	_g_string_free0 (extra_args);
}

static ProtonPlusWidgetsWrapperMode
proton_plus_widgets_launch_options_editor_detect_wrapper_mode (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                               gchar** tokens,
                                                               gint tokens_length1)
{
	gint gamescope_index = 0;
	gchar* _tmp0_;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gint _tmp3_;
	gint scopebuddy_index = 0;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gint _tmp8_;
	gboolean _tmp9_ = FALSE;
	ProtonPlusWidgetsWrapperMode result;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = g_strdup ("gamescope");
	_tmp1_ = g_new0 (gchar*, 1 + 1);
	_tmp1_[0] = _tmp0_;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = 1;
	_tmp3_ = proton_plus_widgets_launch_options_editor_get_first_present_index (self, tokens, (gint) tokens_length1, _tmp2_, (gint) 1);
	_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
	gamescope_index = _tmp3_;
	_tmp4_ = g_strdup ("scopebuddy");
	_tmp5_ = g_strdup ("scb");
	_tmp6_ = g_new0 (gchar*, 2 + 1);
	_tmp6_[0] = _tmp4_;
	_tmp6_[1] = _tmp5_;
	_tmp7_ = _tmp6_;
	_tmp7__length1 = 2;
	_tmp8_ = proton_plus_widgets_launch_options_editor_get_first_present_index (self, tokens, (gint) tokens_length1, _tmp7_, (gint) 2);
	_tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_free), NULL);
	scopebuddy_index = _tmp8_;
	if (gamescope_index >= 0) {
		_tmp9_ = scopebuddy_index >= 0;
	} else {
		_tmp9_ = FALSE;
	}
	if (_tmp9_) {
		result = PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE;
		return result;
	}
	if (gamescope_index >= 0) {
		result = PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE;
		return result;
	}
	if (scopebuddy_index >= 0) {
		result = PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY;
		return result;
	}
	result = PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE;
	return result;
}

static gint
proton_plus_widgets_launch_options_editor_get_wrapper_end_index (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                 gchar** tokens,
                                                                 gint tokens_length1,
                                                                 gint wrapper_index,
                                                                 gboolean* consumed,
                                                                 gint consumed_length1)
{
	gint command_index = 0;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	command_index = proton_plus_widgets_launch_options_editor_get_token_index (self, tokens, (gint) tokens_length1, "%command%");
	if (command_index > wrapper_index) {
		_tmp1_ = command_index > 0;
	} else {
		_tmp1_ = FALSE;
	}
	if (_tmp1_) {
		const gchar* _tmp2_;
		_tmp2_ = tokens[command_index - 1];
		_tmp0_ = g_strcmp0 (_tmp2_, "--") == 0;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		consumed[command_index - 1] = TRUE;
		result = command_index - 1;
		return result;
	}
	result = tokens_length1;
	return result;
}

static gint
proton_plus_widgets_launch_options_editor_get_first_present_index (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                   gchar** tokens,
                                                                   gint tokens_length1,
                                                                   gchar** candidates,
                                                                   gint candidates_length1)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp0_ = FALSE;
			_tmp0_ = TRUE;
			while (TRUE) {
				if (!_tmp0_) {
					gint _tmp1_;
					_tmp1_ = index;
					index = _tmp1_ + 1;
				}
				_tmp0_ = FALSE;
				if (!(index < tokens_length1)) {
					break;
				}
				{
					gchar** candidate_collection = NULL;
					gint candidate_collection_length1 = 0;
					gint _candidate_collection_size_ = 0;
					gint candidate_it = 0;
					candidate_collection = candidates;
					candidate_collection_length1 = candidates_length1;
					for (candidate_it = 0; candidate_it < candidate_collection_length1; candidate_it = candidate_it + 1) {
						gchar* _tmp2_;
						gchar* candidate = NULL;
						_tmp2_ = g_strdup (candidate_collection[candidate_it]);
						candidate = _tmp2_;
						{
							const gchar* _tmp3_;
							const gchar* _tmp4_;
							_tmp3_ = tokens[index];
							_tmp4_ = candidate;
							if (g_strcmp0 (_tmp3_, _tmp4_) == 0) {
								result = index;
								_g_free0 (candidate);
								return result;
							}
							_g_free0 (candidate);
						}
					}
				}
			}
		}
	}
	result = -1;
	return result;
}

static gint
proton_plus_widgets_launch_options_editor_get_unconsumed_token_index (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                      gchar** tokens,
                                                                      gint tokens_length1,
                                                                      const gchar* token,
                                                                      gboolean* consumed,
                                                                      gint consumed_length1)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	g_return_val_if_fail (token != NULL, -1);
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp0_ = FALSE;
			_tmp0_ = TRUE;
			while (TRUE) {
				gboolean _tmp2_ = FALSE;
				gboolean _tmp3_;
				if (!_tmp0_) {
					gint _tmp1_;
					_tmp1_ = index;
					index = _tmp1_ + 1;
				}
				_tmp0_ = FALSE;
				if (!(index < tokens_length1)) {
					break;
				}
				_tmp3_ = consumed[index];
				if (!_tmp3_) {
					const gchar* _tmp4_;
					_tmp4_ = tokens[index];
					_tmp2_ = g_strcmp0 (_tmp4_, token) == 0;
				} else {
					_tmp2_ = FALSE;
				}
				if (_tmp2_) {
					result = index;
					return result;
				}
			}
		}
	}
	result = -1;
	return result;
}

static gint
proton_plus_widgets_launch_options_editor_get_unconsumed_token_index_after (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                            gchar** tokens,
                                                                            gint tokens_length1,
                                                                            const gchar* token,
                                                                            gboolean* consumed,
                                                                            gint consumed_length1,
                                                                            gint start_index)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	g_return_val_if_fail (token != NULL, -1);
	{
		gint index = 0;
		index = start_index;
		{
			gboolean _tmp0_ = FALSE;
			_tmp0_ = TRUE;
			while (TRUE) {
				gboolean _tmp2_ = FALSE;
				gboolean _tmp3_;
				if (!_tmp0_) {
					gint _tmp1_;
					_tmp1_ = index;
					index = _tmp1_ + 1;
				}
				_tmp0_ = FALSE;
				if (!(index < tokens_length1)) {
					break;
				}
				_tmp3_ = consumed[index];
				if (!_tmp3_) {
					const gchar* _tmp4_;
					_tmp4_ = tokens[index];
					_tmp2_ = g_strcmp0 (_tmp4_, token) == 0;
				} else {
					_tmp2_ = FALSE;
				}
				if (_tmp2_) {
					result = index;
					return result;
				}
			}
		}
	}
	result = -1;
	return result;
}

static gint
proton_plus_widgets_launch_options_editor_get_token_index (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                           gchar** tokens,
                                                           gint tokens_length1,
                                                           const gchar* token)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	g_return_val_if_fail (token != NULL, -1);
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp0_ = FALSE;
			_tmp0_ = TRUE;
			while (TRUE) {
				const gchar* _tmp2_;
				if (!_tmp0_) {
					gint _tmp1_;
					_tmp1_ = index;
					index = _tmp1_ + 1;
				}
				_tmp0_ = FALSE;
				if (!(index < tokens_length1)) {
					break;
				}
				_tmp2_ = tokens[index];
				if (g_strcmp0 (_tmp2_, token) == 0) {
					result = index;
					return result;
				}
			}
		}
	}
	result = -1;
	return result;
}

static gchar*
proton_plus_widgets_launch_options_editor_join_unconsumed_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  gchar** tokens,
                                                                  gint tokens_length1,
                                                                  gboolean* consumed,
                                                                  gint consumed_length1)
{
	GString* output = NULL;
	GString* _tmp0_;
	GString* _tmp8_;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_string_new ("");
	output = _tmp0_;
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp1_ = FALSE;
			_tmp1_ = TRUE;
			while (TRUE) {
				gboolean _tmp3_ = FALSE;
				gboolean _tmp4_;
				GString* _tmp6_;
				const gchar* _tmp7_;
				if (!_tmp1_) {
					gint _tmp2_;
					_tmp2_ = index;
					index = _tmp2_ + 1;
				}
				_tmp1_ = FALSE;
				if (!(index < tokens_length1)) {
					break;
				}
				_tmp4_ = consumed[index];
				if (_tmp4_) {
					_tmp3_ = TRUE;
				} else {
					const gchar* _tmp5_;
					_tmp5_ = tokens[index];
					_tmp3_ = g_strcmp0 (_tmp5_, "") == 0;
				}
				if (_tmp3_) {
					continue;
				}
				_tmp6_ = output;
				_tmp7_ = tokens[index];
				proton_plus_widgets_launch_options_editor_append_token (self, _tmp6_, _tmp7_);
			}
		}
	}
	_tmp8_ = output;
	_tmp9_ = _tmp8_->str;
	_tmp10_ = g_strdup (_tmp9_);
	result = _tmp10_;
	_g_string_free0 (output);
	return result;
}

static void
proton_plus_widgets_launch_options_editor_select_preferred_gpu_vendor_page (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp4_;
	GtkSwitch* _tmp5_;
	GtkSwitch* _tmp6_;
	gboolean _tmp20_ = FALSE;
	gboolean _tmp21_ = FALSE;
	ProtonPlusWidgetsLaunchOptionTile* _tmp22_;
	GtkSwitch* _tmp23_;
	GtkSwitch* _tmp24_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp32_;
	GtkSwitch* _tmp33_;
	GtkSwitch* _tmp34_;
	GtkStack* _tmp36_;
	g_return_if_fail (self != NULL);
	_tmp4_ = self->priv->_amd_anti_lag_tile;
	_tmp5_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp4_);
	_tmp6_ = _tmp5_;
	if (gtk_switch_get_active (_tmp6_)) {
		_tmp3_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
		GtkSwitch* _tmp8_;
		GtkSwitch* _tmp9_;
		_tmp7_ = self->priv->_amd_prime_tile;
		_tmp8_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp7_);
		_tmp9_ = _tmp8_;
		_tmp3_ = gtk_switch_get_active (_tmp9_);
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp10_;
		GtkSwitch* _tmp11_;
		GtkSwitch* _tmp12_;
		_tmp10_ = self->priv->_amd_hide_apu_tile;
		_tmp11_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp10_);
		_tmp12_ = _tmp11_;
		_tmp2_ = gtk_switch_get_active (_tmp12_);
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp13_;
		GtkSwitch* _tmp14_;
		GtkSwitch* _tmp15_;
		_tmp13_ = self->priv->_amd_fsr4_upgrade_tile;
		_tmp14_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp13_);
		_tmp15_ = _tmp14_;
		_tmp1_ = gtk_switch_get_active (_tmp15_);
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp16_;
		GtkSwitch* _tmp17_;
		GtkSwitch* _tmp18_;
		_tmp16_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
		_tmp17_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp16_);
		_tmp18_ = _tmp17_;
		_tmp0_ = gtk_switch_get_active (_tmp18_);
	}
	if (_tmp0_) {
		GtkStack* _tmp19_;
		_tmp19_ = self->priv->_gpu_vendor_stack;
		gtk_stack_set_visible_child_name (_tmp19_, "amd");
		return;
	}
	_tmp22_ = self->priv->_nvapi_tile;
	_tmp23_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp22_);
	_tmp24_ = _tmp23_;
	if (gtk_switch_get_active (_tmp24_)) {
		_tmp21_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp25_;
		GtkSwitch* _tmp26_;
		GtkSwitch* _tmp27_;
		_tmp25_ = self->priv->_nvidia_ngx_updater_tile;
		_tmp26_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp25_);
		_tmp27_ = _tmp26_;
		_tmp21_ = gtk_switch_get_active (_tmp27_);
	}
	if (_tmp21_) {
		_tmp20_ = TRUE;
	} else {
		ProtonPlusWidgetsLaunchOptionTile* _tmp28_;
		GtkSwitch* _tmp29_;
		GtkSwitch* _tmp30_;
		_tmp28_ = self->priv->_nvidia_hide_gpu_tile;
		_tmp29_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp28_);
		_tmp30_ = _tmp29_;
		_tmp20_ = gtk_switch_get_active (_tmp30_);
	}
	if (_tmp20_) {
		GtkStack* _tmp31_;
		_tmp31_ = self->priv->_gpu_vendor_stack;
		gtk_stack_set_visible_child_name (_tmp31_, "nvidia");
		return;
	}
	_tmp32_ = self->priv->_intel_xess_upgrade_tile;
	_tmp33_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp32_);
	_tmp34_ = _tmp33_;
	if (gtk_switch_get_active (_tmp34_)) {
		GtkStack* _tmp35_;
		_tmp35_ = self->priv->_gpu_vendor_stack;
		gtk_stack_set_visible_child_name (_tmp35_, "intel");
		return;
	}
	_tmp36_ = self->priv->_gpu_vendor_stack;
	gtk_stack_set_visible_child_name (_tmp36_, "amd");
}

static gchar**
proton_plus_widgets_launch_options_editor_get_launch_option_tokens (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                    const gchar* launch_options,
                                                                    gint* result_length1)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar** _tmp2_;
	gchar** _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gchar** result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (launch_options != NULL, NULL);
	_tmp0_ = proton_plus_widgets_launch_options_editor_normalize_launch_options (self, launch_options);
	_tmp1_ = _tmp0_;
	_tmp3_ = _tmp2_ = g_strsplit (_tmp1_, " ", 0);
	_tmp4_ = _tmp3_;
	_tmp4__length1 = _vala_array_length (_tmp2_);
	_g_free0 (_tmp1_);
	_tmp5_ = _tmp4_;
	_tmp5__length1 = _tmp4__length1;
	if (result_length1) {
		*result_length1 = _tmp5__length1;
	}
	result = _tmp5_;
	return result;
}

static gchar*
proton_plus_widgets_launch_options_editor_normalize_launch_options (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                    const gchar* launch_options)
{
	GString* output = NULL;
	GString* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar** _tmp3_;
	gchar** _tmp4_;
	gchar** _tmp5_;
	gint _tmp5__length1;
	GString* _tmp10_;
	const gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (launch_options != NULL, NULL);
	_tmp0_ = g_string_new ("");
	output = _tmp0_;
	_tmp1_ = string_strip (launch_options);
	_tmp2_ = _tmp1_;
	_tmp4_ = _tmp3_ = g_strsplit (_tmp2_, " ", 0);
	_tmp5_ = _tmp4_;
	_tmp5__length1 = _vala_array_length (_tmp3_);
	_g_free0 (_tmp2_);
	{
		gchar** token_collection = NULL;
		gint token_collection_length1 = 0;
		gint _token_collection_size_ = 0;
		gint token_it = 0;
		token_collection = _tmp5_;
		token_collection_length1 = _tmp5__length1;
		for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
			gchar* _tmp6_;
			gchar* token = NULL;
			_tmp6_ = g_strdup (token_collection[token_it]);
			token = _tmp6_;
			{
				const gchar* _tmp7_;
				GString* _tmp8_;
				const gchar* _tmp9_;
				_tmp7_ = token;
				if (g_strcmp0 (_tmp7_, "") == 0) {
					_g_free0 (token);
					continue;
				}
				_tmp8_ = output;
				_tmp9_ = token;
				proton_plus_widgets_launch_options_editor_append_token (self, _tmp8_, _tmp9_);
				_g_free0 (token);
			}
		}
		token_collection = (_vala_array_free (token_collection, token_collection_length1, (GDestroyNotify) g_free), NULL);
	}
	_tmp10_ = output;
	_tmp11_ = _tmp10_->str;
	_tmp12_ = g_strdup (_tmp11_);
	result = _tmp12_;
	_g_string_free0 (output);
	return result;
}

static ProtonPlusWidgetsWrapperMode
proton_plus_widgets_launch_options_editor_get_selected_wrapper_mode (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GtkStack* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	GQuark _tmp4_ = 0U;
	static GQuark _tmp3_label0 = 0;
	static GQuark _tmp3_label1 = 0;
	ProtonPlusWidgetsWrapperMode result;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->_wrapper_stack;
	_tmp1_ = gtk_stack_get_visible_child_name (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp4_ = (NULL == _tmp2_) ? 0 : g_quark_from_string (_tmp2_);
	if (_tmp4_ == ((0 != _tmp3_label0) ? _tmp3_label0 : (_tmp3_label0 = g_quark_from_static_string ("gamescope")))) {
		switch (0) {
			default:
			{
				result = PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE;
				return result;
			}
		}
	} else if (_tmp4_ == ((0 != _tmp3_label1) ? _tmp3_label1 : (_tmp3_label1 = g_quark_from_static_string ("scopebuddy")))) {
		switch (0) {
			default:
			{
				result = PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY;
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				result = PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE;
				return result;
			}
		}
	}
}

static void
proton_plus_widgets_launch_options_editor_set_selected_wrapper_mode (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     ProtonPlusWidgetsWrapperMode wrapper_mode)
{
	g_return_if_fail (self != NULL);
	switch (wrapper_mode) {
		case PROTON_PLUS_WIDGETS_WRAPPER_MODE_GAMESCOPE:
		{
			GtkStack* _tmp0_;
			_tmp0_ = self->priv->_wrapper_stack;
			gtk_stack_set_visible_child_name (_tmp0_, "gamescope");
			break;
		}
		case PROTON_PLUS_WIDGETS_WRAPPER_MODE_SCOPEBUDDY:
		{
			GtkStack* _tmp1_;
			_tmp1_ = self->priv->_wrapper_stack;
			gtk_stack_set_visible_child_name (_tmp1_, "scopebuddy");
			break;
		}
		default:
		{
			GtkStack* _tmp2_;
			_tmp2_ = self->priv->_wrapper_stack;
			gtk_stack_set_visible_child_name (_tmp2_, "none");
			break;
		}
	}
}

static void
proton_plus_widgets_launch_options_editor_append_token (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                        GString* output,
                                                        const gchar* token)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (output != NULL);
	g_return_if_fail (token != NULL);
	if (output->len > ((gssize) 0)) {
		g_string_append (output, " ");
	}
	g_string_append (output, token);
}

ProtonPlusWidgetsLaunchOptionsEditor*
proton_plus_widgets_launch_options_editor_construct (GType object_type)
{
	ProtonPlusWidgetsLaunchOptionsEditor * self = NULL;
	self = (ProtonPlusWidgetsLaunchOptionsEditor*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusWidgetsLaunchOptionsEditor*
proton_plus_widgets_launch_options_editor_new (void)
{
	return proton_plus_widgets_launch_options_editor_construct (PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR);
}

static AdwPreferencesGroup*
proton_plus_widgets_launch_options_editor_get_more_options_group (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	AdwPreferencesGroup* result;
	AdwPreferencesGroup* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_more_options_group;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_more_options_group (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  AdwPreferencesGroup* value)
{
	AdwPreferencesGroup* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_more_options_group);
	self->priv->_more_options_group = _tmp0_;
}

static AdwPreferencesGroup*
proton_plus_widgets_launch_options_editor_get_gpu_vendor_group (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	AdwPreferencesGroup* result;
	AdwPreferencesGroup* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gpu_vendor_group;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gpu_vendor_group (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                AdwPreferencesGroup* value)
{
	AdwPreferencesGroup* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gpu_vendor_group);
	self->priv->_gpu_vendor_group = _tmp0_;
}

static AdwPreferencesGroup*
proton_plus_widgets_launch_options_editor_get_game_arguments_group (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	AdwPreferencesGroup* result;
	AdwPreferencesGroup* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_game_arguments_group;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_game_arguments_group (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                    AdwPreferencesGroup* value)
{
	AdwPreferencesGroup* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_game_arguments_group);
	self->priv->_game_arguments_group = _tmp0_;
}

static AdwPreferencesGroup*
proton_plus_widgets_launch_options_editor_get_advanced_options_group (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	AdwPreferencesGroup* result;
	AdwPreferencesGroup* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_advanced_options_group;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_advanced_options_group (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                      AdwPreferencesGroup* value)
{
	AdwPreferencesGroup* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_advanced_options_group);
	self->priv->_advanced_options_group = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_mangohud_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_mangohud_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_mangohud_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                             ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_mangohud_tile);
	self->priv->_mangohud_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_steam_deck_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_steam_deck_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_steam_deck_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                               ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_steam_deck_tile);
	self->priv->_steam_deck_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_hdr_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                        ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_hdr_tile);
	self->priv->_hdr_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_wayland_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_wayland_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_wayland_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                            ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_wayland_tile);
	self->priv->_wayland_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_vkbasalt_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_vkbasalt_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_vkbasalt_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                             ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_vkbasalt_tile);
	self->priv->_vkbasalt_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_wined3d_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_wined3d_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_wined3d_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                            ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_wined3d_tile);
	self->priv->_wined3d_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_amd_fsr4_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_amd_fsr4_upgrade_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_amd_fsr4_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_amd_fsr4_upgrade_tile);
	self->priv->_amd_fsr4_upgrade_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_amd_fsr4_rdna3_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_amd_fsr4_rdna3_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                           ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_amd_fsr4_rdna3_upgrade_tile);
	self->priv->_amd_fsr4_rdna3_upgrade_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_amd_anti_lag_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_amd_anti_lag_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_amd_anti_lag_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                 ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_amd_anti_lag_tile);
	self->priv->_amd_anti_lag_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_amd_prime_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_amd_prime_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_amd_prime_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                              ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_amd_prime_tile);
	self->priv->_amd_prime_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_amd_hide_apu_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_amd_hide_apu_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_amd_hide_apu_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                 ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_amd_hide_apu_tile);
	self->priv->_amd_hide_apu_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_nvapi_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_nvapi_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_nvapi_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                          ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_nvapi_tile);
	self->priv->_nvapi_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_nvidia_ngx_updater_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_nvidia_ngx_updater_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_nvidia_ngx_updater_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_nvidia_ngx_updater_tile);
	self->priv->_nvidia_ngx_updater_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_nvidia_hide_gpu_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_nvidia_hide_gpu_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_nvidia_hide_gpu_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                    ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_nvidia_hide_gpu_tile);
	self->priv->_nvidia_hide_gpu_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_dlss_indicator_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_dlss_indicator_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_dlss_indicator_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                   ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_dlss_indicator_tile);
	self->priv->_dlss_indicator_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_nvidia_libs_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_nvidia_libs_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_nvidia_libs_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_nvidia_libs_tile);
	self->priv->_nvidia_libs_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_intel_xess_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_intel_xess_upgrade_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_intel_xess_upgrade_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_intel_xess_upgrade_tile);
	self->priv->_intel_xess_upgrade_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_prefer_sdl_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_prefer_sdl_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_prefer_sdl_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                               ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_prefer_sdl_tile);
	self->priv->_prefer_sdl_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_no_steaminput_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_no_steaminput_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_no_steaminput_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_no_steaminput_tile);
	self->priv->_no_steaminput_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_ntsync_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ntsync_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_ntsync_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                           ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_ntsync_tile);
	self->priv->_ntsync_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_local_shader_cache_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_local_shader_cache_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_local_shader_cache_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                       ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_local_shader_cache_tile);
	self->priv->_local_shader_cache_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionEntryField*
proton_plus_widgets_launch_options_editor_get_additional_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionEntryField* result;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_additional_args_field;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_additional_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     ProtonPlusWidgetsLaunchOptionEntryField* value)
{
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_additional_args_field);
	self->priv->_additional_args_field = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_additional_args_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_additional_args_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_additional_args_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                    ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_additional_args_tile);
	self->priv->_additional_args_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_command_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_command_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_command_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                            ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_command_tile);
	self->priv->_command_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_skip_launcher_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_skip_launcher_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_skip_launcher_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_skip_launcher_tile);
	self->priv->_skip_launcher_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_vulkan_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_vulkan_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_vulkan_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                           ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_vulkan_tile);
	self->priv->_vulkan_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_dx11_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_dx11_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_dx11_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                         ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_dx11_tile);
	self->priv->_dx11_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_dx12_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_dx12_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_dx12_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                         ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_dx12_tile);
	self->priv->_dx12_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_console_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_console_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_console_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                            ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_console_tile);
	self->priv->_console_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionPreviewField*
proton_plus_widgets_launch_options_editor_get_preview_field (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionPreviewField* result;
	ProtonPlusWidgetsLaunchOptionPreviewField* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_preview_field;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_preview_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                             ProtonPlusWidgetsLaunchOptionPreviewField* value)
{
	ProtonPlusWidgetsLaunchOptionPreviewField* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_preview_field);
	self->priv->_preview_field = _tmp0_;
}

static GtkStack*
proton_plus_widgets_launch_options_editor_get_wrapper_stack (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GtkStack* result;
	GtkStack* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_wrapper_stack;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_wrapper_stack (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                             GtkStack* value)
{
	GtkStack* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_wrapper_stack);
	self->priv->_wrapper_stack = _tmp0_;
}

static GtkStackSwitcher*
proton_plus_widgets_launch_options_editor_get_wrapper_switcher (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GtkStackSwitcher* result;
	GtkStackSwitcher* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_wrapper_switcher;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_wrapper_switcher (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                GtkStackSwitcher* value)
{
	GtkStackSwitcher* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_wrapper_switcher);
	self->priv->_wrapper_switcher = _tmp0_;
}

static GtkStack*
proton_plus_widgets_launch_options_editor_get_gpu_vendor_stack (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GtkStack* result;
	GtkStack* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gpu_vendor_stack;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gpu_vendor_stack (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                GtkStack* value)
{
	GtkStack* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gpu_vendor_stack);
	self->priv->_gpu_vendor_stack = _tmp0_;
}

static GtkStackSwitcher*
proton_plus_widgets_launch_options_editor_get_gpu_vendor_switcher (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	GtkStackSwitcher* result;
	GtkStackSwitcher* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gpu_vendor_switcher;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gpu_vendor_switcher (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                   GtkStackSwitcher* value)
{
	GtkStackSwitcher* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gpu_vendor_switcher);
	self->priv->_gpu_vendor_switcher = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_gamescope_fullscreen_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gamescope_fullscreen_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gamescope_fullscreen_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                         ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gamescope_fullscreen_tile);
	self->priv->_gamescope_fullscreen_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_gamescope_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gamescope_hdr_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gamescope_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gamescope_hdr_tile);
	self->priv->_gamescope_hdr_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_gamescope_vrr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gamescope_vrr_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gamescope_vrr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                  ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gamescope_vrr_tile);
	self->priv->_gamescope_vrr_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionSpinTile*
proton_plus_widgets_launch_options_editor_get_gamescope_framerate_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionSpinTile* result;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gamescope_framerate_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gamescope_framerate_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                        ProtonPlusWidgetsLaunchOptionSpinTile* value)
{
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gamescope_framerate_tile);
	self->priv->_gamescope_framerate_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionResolutionField*
proton_plus_widgets_launch_options_editor_get_gamescope_resolution_field (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionResolutionField* result;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gamescope_resolution_field;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gamescope_resolution_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                          ProtonPlusWidgetsLaunchOptionResolutionField* value)
{
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gamescope_resolution_field);
	self->priv->_gamescope_resolution_field = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionEntryField*
proton_plus_widgets_launch_options_editor_get_gamescope_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionEntryField* result;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_gamescope_args_field;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_gamescope_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                    ProtonPlusWidgetsLaunchOptionEntryField* value)
{
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_gamescope_args_field);
	self->priv->_gamescope_args_field = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_scopebuddy_fullscreen_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_scopebuddy_fullscreen_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_scopebuddy_fullscreen_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                          ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_scopebuddy_fullscreen_tile);
	self->priv->_scopebuddy_fullscreen_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_scopebuddy_auto_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_scopebuddy_auto_hdr_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_scopebuddy_auto_hdr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                        ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_scopebuddy_auto_hdr_tile);
	self->priv->_scopebuddy_auto_hdr_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionTile*
proton_plus_widgets_launch_options_editor_get_scopebuddy_auto_vrr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionTile* result;
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_scopebuddy_auto_vrr_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_scopebuddy_auto_vrr_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                        ProtonPlusWidgetsLaunchOptionTile* value)
{
	ProtonPlusWidgetsLaunchOptionTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_scopebuddy_auto_vrr_tile);
	self->priv->_scopebuddy_auto_vrr_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionSpinTile*
proton_plus_widgets_launch_options_editor_get_scopebuddy_framerate_tile (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionSpinTile* result;
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_scopebuddy_framerate_tile;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_scopebuddy_framerate_tile (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                         ProtonPlusWidgetsLaunchOptionSpinTile* value)
{
	ProtonPlusWidgetsLaunchOptionSpinTile* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_scopebuddy_framerate_tile);
	self->priv->_scopebuddy_framerate_tile = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionResolutionField*
proton_plus_widgets_launch_options_editor_get_scopebuddy_resolution_field (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionResolutionField* result;
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_scopebuddy_resolution_field;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_scopebuddy_resolution_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                           ProtonPlusWidgetsLaunchOptionResolutionField* value)
{
	ProtonPlusWidgetsLaunchOptionResolutionField* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_scopebuddy_resolution_field);
	self->priv->_scopebuddy_resolution_field = _tmp0_;
}

static ProtonPlusWidgetsLaunchOptionEntryField*
proton_plus_widgets_launch_options_editor_get_scopebuddy_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self)
{
	ProtonPlusWidgetsLaunchOptionEntryField* result;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_scopebuddy_args_field;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_launch_options_editor_set_scopebuddy_args_field (ProtonPlusWidgetsLaunchOptionsEditor* self,
                                                                     ProtonPlusWidgetsLaunchOptionEntryField* value)
{
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_scopebuddy_args_field);
	self->priv->_scopebuddy_args_field = _tmp0_;
}

static void
_proton_plus_widgets_launch_options_editor_wrapper_selection_changed_g_object_notify (GObject* _sender,
                                                                                      GParamSpec* pspec,
                                                                                      gpointer self)
{
	proton_plus_widgets_launch_options_editor_wrapper_selection_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_amd_fsr4_upgrade_toggle_changed_g_object_notify (GObject* _sender,
                                                                                            GParamSpec* pspec,
                                                                                            gpointer self)
{
	proton_plus_widgets_launch_options_editor_amd_fsr4_upgrade_toggle_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_amd_fsr4_rdna3_upgrade_toggle_changed_g_object_notify (GObject* _sender,
                                                                                                  GParamSpec* pspec,
                                                                                                  gpointer self)
{
	proton_plus_widgets_launch_options_editor_amd_fsr4_rdna3_upgrade_toggle_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_nvidia_nvapi_toggle_changed_g_object_notify (GObject* _sender,
                                                                                        GParamSpec* pspec,
                                                                                        gpointer self)
{
	proton_plus_widgets_launch_options_editor_nvidia_nvapi_toggle_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_nvidia_dlss_updater_toggle_changed_g_object_notify (GObject* _sender,
                                                                                               GParamSpec* pspec,
                                                                                               gpointer self)
{
	proton_plus_widgets_launch_options_editor_nvidia_dlss_updater_toggle_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_gpu_vendor_selection_changed_g_object_notify (GObject* _sender,
                                                                                         GParamSpec* pspec,
                                                                                         gpointer self)
{
	proton_plus_widgets_launch_options_editor_gpu_vendor_selection_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_command_toggle_changed_g_object_notify (GObject* _sender,
                                                                                   GParamSpec* pspec,
                                                                                   gpointer self)
{
	proton_plus_widgets_launch_options_editor_command_toggle_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static void
_proton_plus_widgets_launch_options_editor_additional_args_toggle_changed_g_object_notify (GObject* _sender,
                                                                                           GParamSpec* pspec,
                                                                                           gpointer self)
{
	proton_plus_widgets_launch_options_editor_additional_args_toggle_changed ((ProtonPlusWidgetsLaunchOptionsEditor*) self);
}

static GObject *
proton_plus_widgets_launch_options_editor_constructor (GType type,
                                                       guint n_construct_properties,
                                                       GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	ProtonPlusWidgetsLaunchOptionsEditor * self;
	ProtonPlusWidgetsLaunchOptionPreviewField* _tmp0_;
	ProtonPlusWidgetsLaunchOptionPreviewField* _tmp1_;
	ProtonPlusWidgetsLaunchOptionPreviewField* _tmp2_;
	gchar* _tmp3_;
	gchar** _tmp4_;
	gchar** _tmp5_;
	gint _tmp5__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp6_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp7_;
	gchar* _tmp8_;
	gchar** _tmp9_;
	gchar** _tmp10_;
	gint _tmp10__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp11_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp12_;
	gchar* _tmp13_;
	gchar** _tmp14_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp16_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp17_;
	AdwPreferencesGroup* common_group = NULL;
	AdwPreferencesGroup* _tmp18_;
	AdwPreferencesGroup* _tmp19_;
	AdwPreferencesGroup* _tmp20_;
	AdwPreferencesGroup* _tmp21_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp22_;
	AdwPreferencesGroup* _tmp23_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp24_;
	AdwPreferencesGroup* _tmp25_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp26_;
	AdwPreferencesGroup* _tmp27_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp28_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp29_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp30_;
	GtkSwitch* _tmp31_;
	GtkSwitch* _tmp32_;
	GtkStack* _tmp33_;
	GtkStack* _tmp34_;
	GtkStack* _tmp35_;
	GtkStack* _tmp36_;
	GtkStack* _tmp37_;
	GtkStack* _tmp38_;
	GtkStack* _tmp39_;
	GtkWidget* _tmp40_;
	GtkWidget* _tmp41_;
	GtkStack* _tmp42_;
	GtkWidget* _tmp43_;
	GtkWidget* _tmp44_;
	GtkStack* _tmp45_;
	GtkWidget* _tmp46_;
	GtkWidget* _tmp47_;
	GtkStackSwitcher* _tmp48_;
	GtkStackSwitcher* _tmp49_;
	GtkStackSwitcher* _tmp50_;
	GtkStack* _tmp51_;
	GtkStackSwitcher* _tmp52_;
	AdwPreferencesGroup* wrapper_group = NULL;
	AdwPreferencesGroup* _tmp53_;
	AdwPreferencesGroup* _tmp54_;
	AdwPreferencesGroup* _tmp55_;
	AdwPreferencesGroup* _tmp56_;
	GtkStackSwitcher* _tmp57_;
	AdwPreferencesGroup* _tmp58_;
	GtkStack* _tmp59_;
	AdwPreferencesGroup* _tmp60_;
	gchar* _tmp61_;
	gchar** _tmp62_;
	gchar** _tmp63_;
	gint _tmp63__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp64_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp65_;
	gchar* _tmp66_;
	gchar** _tmp67_;
	gchar** _tmp68_;
	gint _tmp68__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp69_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp70_;
	gchar* _tmp71_;
	gchar** _tmp72_;
	gchar** _tmp73_;
	gint _tmp73__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp74_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp75_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp76_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp77_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp78_;
	GtkSwitch* _tmp79_;
	GtkSwitch* _tmp80_;
	gchar* _tmp81_;
	gchar** _tmp82_;
	gchar** _tmp83_;
	gint _tmp83__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp84_;
	GtkSwitch* _tmp85_;
	GtkSwitch* _tmp86_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp87_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp88_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp89_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp90_;
	GtkSwitch* _tmp91_;
	GtkSwitch* _tmp92_;
	gchar* _tmp93_;
	gchar** _tmp94_;
	gchar** _tmp95_;
	gint _tmp95__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp96_;
	GtkSwitch* _tmp97_;
	GtkSwitch* _tmp98_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp99_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp100_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp101_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp102_;
	GtkSwitch* _tmp103_;
	GtkSwitch* _tmp104_;
	gchar* _tmp105_;
	gchar** _tmp106_;
	gchar** _tmp107_;
	gint _tmp107__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp108_;
	GtkSwitch* _tmp109_;
	GtkSwitch* _tmp110_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp111_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp112_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp113_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp114_;
	GtkSwitch* _tmp115_;
	GtkSwitch* _tmp116_;
	gchar* _tmp117_;
	gchar** _tmp118_;
	gchar** _tmp119_;
	gint _tmp119__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp120_;
	GtkSwitch* _tmp121_;
	GtkSwitch* _tmp122_;
	ProtonPlusWidgetsLaunchOptionBinding* _tmp123_;
	gchar* _tmp124_;
	gchar** _tmp125_;
	gchar** _tmp126_;
	gint _tmp126__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp127_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp128_;
	gchar* _tmp129_;
	gchar** _tmp130_;
	gchar** _tmp131_;
	gint _tmp131__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp132_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp133_;
	gchar* _tmp134_;
	gchar** _tmp135_;
	gchar** _tmp136_;
	gint _tmp136__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp137_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp138_;
	gchar* _tmp139_;
	gchar** _tmp140_;
	gchar** _tmp141_;
	gint _tmp141__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp142_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp143_;
	GtkStack* _tmp144_;
	GtkStack* _tmp145_;
	GtkStack* _tmp146_;
	GtkStack* _tmp147_;
	GtkStack* _tmp148_;
	GtkStack* _tmp149_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp150_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp151_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp152_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp153_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp154_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp155_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp156_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp157_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp158_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp159_;
	ProtonPlusWidgetsLaunchOptionTile** _tmp160_;
	ProtonPlusWidgetsLaunchOptionTile** _tmp161_;
	gint _tmp161__length1;
	GtkWidget* _tmp162_;
	GtkWidget* _tmp163_;
	GtkStack* _tmp164_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp165_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp166_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp167_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp168_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp169_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp170_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp171_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp172_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp173_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp174_;
	ProtonPlusWidgetsLaunchOptionTile** _tmp175_;
	ProtonPlusWidgetsLaunchOptionTile** _tmp176_;
	gint _tmp176__length1;
	GtkWidget* _tmp177_;
	GtkWidget* _tmp178_;
	GtkStack* _tmp179_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp180_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp181_;
	ProtonPlusWidgetsLaunchOptionTile** _tmp182_;
	ProtonPlusWidgetsLaunchOptionTile** _tmp183_;
	gint _tmp183__length1;
	GtkWidget* _tmp184_;
	GtkWidget* _tmp185_;
	GtkStack* _tmp186_;
	GtkStackSwitcher* _tmp187_;
	GtkStackSwitcher* _tmp188_;
	GtkStackSwitcher* _tmp189_;
	GtkStack* _tmp190_;
	GtkStackSwitcher* _tmp191_;
	GtkStack* _tmp192_;
	AdwPreferencesGroup* _tmp193_;
	AdwPreferencesGroup* _tmp194_;
	AdwPreferencesGroup* _tmp195_;
	AdwPreferencesGroup* _tmp196_;
	AdwPreferencesGroup* _tmp197_;
	GtkStackSwitcher* _tmp198_;
	AdwPreferencesGroup* _tmp199_;
	GtkStack* _tmp200_;
	AdwPreferencesGroup* _tmp201_;
	gchar* _tmp202_;
	gchar** _tmp203_;
	gchar** _tmp204_;
	gint _tmp204__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp205_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp206_;
	gchar* _tmp207_;
	gchar** _tmp208_;
	gchar** _tmp209_;
	gint _tmp209__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp210_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp211_;
	gchar* _tmp212_;
	gchar** _tmp213_;
	gchar** _tmp214_;
	gint _tmp214__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp215_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp216_;
	gchar* _tmp217_;
	gchar** _tmp218_;
	gchar** _tmp219_;
	gint _tmp219__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp220_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp221_;
	gchar* _tmp222_;
	gchar** _tmp223_;
	gchar** _tmp224_;
	gint _tmp224__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp225_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp226_;
	gchar* _tmp227_;
	gchar** _tmp228_;
	gchar** _tmp229_;
	gint _tmp229__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp230_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp231_;
	AdwPreferencesGroup* _tmp232_;
	AdwPreferencesGroup* _tmp233_;
	AdwPreferencesGroup* _tmp234_;
	AdwPreferencesGroup* _tmp235_;
	AdwPreferencesGroup* _tmp236_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp237_;
	AdwPreferencesGroup* _tmp238_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp239_;
	AdwPreferencesGroup* _tmp240_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp241_;
	AdwPreferencesGroup* _tmp242_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp243_;
	AdwPreferencesGroup* _tmp244_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp245_;
	AdwPreferencesGroup* _tmp246_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp247_;
	AdwPreferencesGroup* _tmp248_;
	gchar* _tmp249_;
	gchar** _tmp250_;
	gchar** _tmp251_;
	gint _tmp251__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp252_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp253_;
	gchar* _tmp254_;
	gchar** _tmp255_;
	gchar** _tmp256_;
	gint _tmp256__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp257_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp258_;
	gchar* _tmp259_;
	gchar** _tmp260_;
	gchar** _tmp261_;
	gint _tmp261__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp262_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp263_;
	gchar* _tmp264_;
	gchar** _tmp265_;
	gchar** _tmp266_;
	gint _tmp266__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp267_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp268_;
	gchar* _tmp269_;
	gchar** _tmp270_;
	gchar** _tmp271_;
	gint _tmp271__length1;
	ProtonPlusWidgetsLaunchOptionTile* _tmp272_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp273_;
	AdwPreferencesGroup* _tmp274_;
	AdwPreferencesGroup* _tmp275_;
	AdwPreferencesGroup* _tmp276_;
	AdwPreferencesGroup* _tmp277_;
	AdwPreferencesGroup* _tmp278_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp279_;
	AdwPreferencesGroup* _tmp280_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp281_;
	AdwPreferencesGroup* _tmp282_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp283_;
	AdwPreferencesGroup* _tmp284_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp285_;
	AdwPreferencesGroup* _tmp286_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp287_;
	AdwPreferencesGroup* _tmp288_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp289_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp290_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp291_;
	GtkSwitch* _tmp292_;
	GtkSwitch* _tmp293_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp294_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp295_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp296_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp297_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp298_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp299_;
	GtkSwitch* _tmp300_;
	GtkSwitch* _tmp301_;
	AdwPreferencesGroup* _tmp302_;
	AdwPreferencesGroup* _tmp303_;
	AdwPreferencesGroup* _tmp304_;
	AdwPreferencesGroup* _tmp305_;
	AdwPreferencesGroup* _tmp306_;
	AdwPreferencesGroup* _tmp307_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp308_;
	AdwPreferencesGroup* _tmp309_;
	ProtonPlusWidgetsLaunchOptionTile* _tmp310_;
	AdwPreferencesGroup* _tmp311_;
	ProtonPlusWidgetsLaunchOptionEntryField* _tmp312_;
	AdwPreferencesGroup* _tmp313_;
	parent_class = G_OBJECT_CLASS (proton_plus_widgets_launch_options_editor_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR, ProtonPlusWidgetsLaunchOptionsEditor);
	(self->priv->common_bindings == NULL) ? NULL : (self->priv->common_bindings = (_g_list_free__g_object_unref0_ (self->priv->common_bindings), NULL));
	self->priv->common_bindings = NULL;
	(self->priv->gpu_vendor_bindings == NULL) ? NULL : (self->priv->gpu_vendor_bindings = (_g_list_free__g_object_unref0_ (self->priv->gpu_vendor_bindings), NULL));
	self->priv->gpu_vendor_bindings = NULL;
	(self->priv->game_argument_bindings == NULL) ? NULL : (self->priv->game_argument_bindings = (_g_list_free__g_object_unref0_ (self->priv->game_argument_bindings), NULL));
	self->priv->game_argument_bindings = NULL;
	(self->priv->scopebuddy_bindings == NULL) ? NULL : (self->priv->scopebuddy_bindings = (_g_list_free__g_object_unref0_ (self->priv->scopebuddy_bindings), NULL));
	self->priv->scopebuddy_bindings = NULL;
	self->priv->advanced_visible = FALSE;
	self->priv->can_auto_enable_command = TRUE;
	self->priv->refreshing_controls = TRUE;
	gtk_orientable_set_orientation ((GtkOrientable*) self, GTK_ORIENTATION_VERTICAL);
	gtk_box_set_spacing ((GtkBox*) self, 15);
	_tmp0_ = proton_plus_widgets_launch_option_preview_field_new (_ ("Launch command preview"));
	g_object_ref_sink (_tmp0_);
	_tmp1_ = _tmp0_;
	proton_plus_widgets_launch_options_editor_set_preview_field (self, _tmp1_);
	_g_object_unref0 (_tmp1_);
	_tmp2_ = self->priv->_preview_field;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp2_);
	_tmp3_ = g_strdup ("mangohud");
	_tmp4_ = g_new0 (gchar*, 1 + 1);
	_tmp4_[0] = _tmp3_;
	_tmp5_ = _tmp4_;
	_tmp5__length1 = 1;
	_tmp6_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("Performance overlay"), _ ("Shows an in-game overlay with FPS, CPU/GPU usage, and temps."), _tmp5_, (gint) 1);
	_tmp7_ = _tmp6_;
	proton_plus_widgets_launch_options_editor_set_mangohud_tile (self, _tmp7_);
	_g_object_unref0 (_tmp7_);
	_tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_free), NULL);
	_tmp8_ = g_strdup ("SteamDeck=0");
	_tmp9_ = g_new0 (gchar*, 1 + 1);
	_tmp9_[0] = _tmp8_;
	_tmp10_ = _tmp9_;
	_tmp10__length1 = 1;
	_tmp11_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("Disable Steam Deck Mode"), _ ("Disables the Steam Deck-specific profile that some games use."), _tmp10_, (gint) 1);
	_tmp12_ = _tmp11_;
	proton_plus_widgets_launch_options_editor_set_steam_deck_tile (self, _tmp12_);
	_g_object_unref0 (_tmp12_);
	_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
	_tmp13_ = g_strdup ("PROTON_ENABLE_WAYLAND=1");
	_tmp14_ = g_new0 (gchar*, 1 + 1);
	_tmp14_[0] = _tmp13_;
	_tmp15_ = _tmp14_;
	_tmp15__length1 = 1;
	_tmp16_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("Wayland"), _ ("Runs the game natively on Wayland instead of through XWayland but it b" \
"reaks Steam Input and the Steam Overlay."), _tmp15_, (gint) 1);
	_tmp17_ = _tmp16_;
	proton_plus_widgets_launch_options_editor_set_wayland_tile (self, _tmp17_);
	_g_object_unref0 (_tmp17_);
	_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
	_tmp18_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp18_);
	common_group = _tmp18_;
	_tmp19_ = common_group;
	adw_preferences_group_set_title (_tmp19_, _ ("Common options"));
	_tmp20_ = common_group;
	adw_preferences_group_set_description (_tmp20_, _ ("Quick toggles for the launch options people reach for most often."));
	_tmp21_ = common_group;
	_tmp22_ = self->priv->_mangohud_tile;
	adw_preferences_group_add (_tmp21_, (GtkWidget*) _tmp22_);
	_tmp23_ = common_group;
	_tmp24_ = self->priv->_steam_deck_tile;
	adw_preferences_group_add (_tmp23_, (GtkWidget*) _tmp24_);
	_tmp25_ = common_group;
	_tmp26_ = self->priv->_wayland_tile;
	adw_preferences_group_add (_tmp25_, (GtkWidget*) _tmp26_);
	_tmp27_ = common_group;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp27_);
	_tmp28_ = proton_plus_widgets_launch_option_tile_new (_ ("HDR"), _ ("Outputs HDR colors if your display supports it."));
	g_object_ref_sink (_tmp28_);
	_tmp29_ = _tmp28_;
	proton_plus_widgets_launch_options_editor_set_hdr_tile (self, _tmp29_);
	_g_object_unref0 (_tmp29_);
	_tmp30_ = self->priv->_hdr_tile;
	_tmp31_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp30_);
	_tmp32_ = _tmp31_;
	g_signal_connect_object ((GObject*) _tmp32_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_g_object_notify, self, 0);
	_tmp33_ = (GtkStack*) gtk_stack_new ();
	g_object_ref_sink (_tmp33_);
	_tmp34_ = _tmp33_;
	proton_plus_widgets_launch_options_editor_set_wrapper_stack (self, _tmp34_);
	_g_object_unref0 (_tmp34_);
	_tmp35_ = self->priv->_wrapper_stack;
	gtk_stack_set_hhomogeneous (_tmp35_, FALSE);
	_tmp36_ = self->priv->_wrapper_stack;
	gtk_stack_set_vhomogeneous (_tmp36_, FALSE);
	_tmp37_ = self->priv->_wrapper_stack;
	gtk_stack_set_transition_type (_tmp37_, GTK_STACK_TRANSITION_TYPE_CROSSFADE);
	_tmp38_ = self->priv->_wrapper_stack;
	g_signal_connect_object ((GObject*) _tmp38_, "notify::visible-child-name", (GCallback) _proton_plus_widgets_launch_options_editor_wrapper_selection_changed_g_object_notify, self, 0);
	_tmp39_ = self->priv->_wrapper_stack;
	_tmp40_ = proton_plus_widgets_launch_options_editor_create_none_page (self);
	_tmp41_ = _tmp40_;
	gtk_stack_add_titled (_tmp39_, _tmp41_, "none", _ ("None"));
	_g_object_unref0 (_tmp41_);
	_tmp42_ = self->priv->_wrapper_stack;
	_tmp43_ = proton_plus_widgets_launch_options_editor_create_gamescope_page (self);
	_tmp44_ = _tmp43_;
	gtk_stack_add_titled (_tmp42_, _tmp44_, "gamescope", _ ("Gamescope"));
	_g_object_unref0 (_tmp44_);
	_tmp45_ = self->priv->_wrapper_stack;
	_tmp46_ = proton_plus_widgets_launch_options_editor_create_scopebuddy_page (self);
	_tmp47_ = _tmp46_;
	gtk_stack_add_titled (_tmp45_, _tmp47_, "scopebuddy", _ ("ScopeBuddy"));
	_g_object_unref0 (_tmp47_);
	_tmp48_ = (GtkStackSwitcher*) gtk_stack_switcher_new ();
	g_object_ref_sink (_tmp48_);
	_tmp49_ = _tmp48_;
	proton_plus_widgets_launch_options_editor_set_wrapper_switcher (self, _tmp49_);
	_g_object_unref0 (_tmp49_);
	_tmp50_ = self->priv->_wrapper_switcher;
	_tmp51_ = self->priv->_wrapper_stack;
	gtk_stack_switcher_set_stack (_tmp50_, _tmp51_);
	_tmp52_ = self->priv->_wrapper_switcher;
	gtk_widget_set_halign ((GtkWidget*) _tmp52_, GTK_ALIGN_START);
	_tmp53_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp53_);
	wrapper_group = _tmp53_;
	_tmp54_ = wrapper_group;
	adw_preferences_group_set_title (_tmp54_, _ ("Launch tools"));
	_tmp55_ = wrapper_group;
	adw_preferences_group_set_description (_tmp55_, _ ("Choose one to configure FPS caps, resolution, and other display option" \
"s."));
	_tmp56_ = wrapper_group;
	_tmp57_ = self->priv->_wrapper_switcher;
	adw_preferences_group_set_header_suffix (_tmp56_, (GtkWidget*) _tmp57_);
	_tmp58_ = wrapper_group;
	_tmp59_ = self->priv->_wrapper_stack;
	adw_preferences_group_add (_tmp58_, (GtkWidget*) _tmp59_);
	_tmp60_ = wrapper_group;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp60_);
	_tmp61_ = g_strdup ("ENABLE_LAYER_MESA_ANTI_LAG=1");
	_tmp62_ = g_new0 (gchar*, 1 + 1);
	_tmp62_[0] = _tmp61_;
	_tmp63_ = _tmp62_;
	_tmp63__length1 = 1;
	_tmp64_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (self, _ ("Mesa Anti-Lag"), _ ("Reduces latency on supported AMD Mesa setups."), _tmp63_, (gint) 1);
	_tmp65_ = _tmp64_;
	proton_plus_widgets_launch_options_editor_set_amd_anti_lag_tile (self, _tmp65_);
	_g_object_unref0 (_tmp65_);
	_tmp63_ = (_vala_array_free (_tmp63_, _tmp63__length1, (GDestroyNotify) g_free), NULL);
	_tmp66_ = g_strdup ("DRI_PRIME=1");
	_tmp67_ = g_new0 (gchar*, 1 + 1);
	_tmp67_[0] = _tmp66_;
	_tmp68_ = _tmp67_;
	_tmp68__length1 = 1;
	_tmp69_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (self, _ ("Use dGPU"), _ ("Makes the game use the AMD dGPU on hybrid systems."), _tmp68_, (gint) 1);
	_tmp70_ = _tmp69_;
	proton_plus_widgets_launch_options_editor_set_amd_prime_tile (self, _tmp70_);
	_g_object_unref0 (_tmp70_);
	_tmp68_ = (_vala_array_free (_tmp68_, _tmp68__length1, (GDestroyNotify) g_free), NULL);
	_tmp71_ = g_strdup ("PROTON_HIDE_APU=1");
	_tmp72_ = g_new0 (gchar*, 1 + 1);
	_tmp72_[0] = _tmp71_;
	_tmp73_ = _tmp72_;
	_tmp73__length1 = 1;
	_tmp74_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (self, _ ("Hide AMD APU"), _ ("Makes Proton report an AMD APU as a discrete GPU for games that mis-de" \
"tect integrated graphics."), _tmp73_, (gint) 1);
	_tmp75_ = _tmp74_;
	proton_plus_widgets_launch_options_editor_set_amd_hide_apu_tile (self, _tmp75_);
	_g_object_unref0 (_tmp75_);
	_tmp73_ = (_vala_array_free (_tmp73_, _tmp73__length1, (GDestroyNotify) g_free), NULL);
	_tmp76_ = proton_plus_widgets_launch_option_tile_new (_ ("FSR 4 Upgrade"), _ ("Upgrades FSR 3.1 to FSR 4 in supported games. This option also disable" \
"s AMD Anti-Lag 2 currently due to various issues."));
	g_object_ref_sink (_tmp76_);
	_tmp77_ = _tmp76_;
	proton_plus_widgets_launch_options_editor_set_amd_fsr4_upgrade_tile (self, _tmp77_);
	_g_object_unref0 (_tmp77_);
	_tmp78_ = self->priv->_amd_fsr4_upgrade_tile;
	_tmp79_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp78_);
	_tmp80_ = _tmp79_;
	g_signal_connect_object ((GObject*) _tmp80_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_amd_fsr4_upgrade_toggle_changed_g_object_notify, self, 0);
	_tmp81_ = g_strdup ("PROTON_FSR4_UPGRADE=1");
	_tmp82_ = g_new0 (gchar*, 1 + 1);
	_tmp82_[0] = _tmp81_;
	_tmp83_ = _tmp82_;
	_tmp83__length1 = 1;
	_tmp84_ = self->priv->_amd_fsr4_upgrade_tile;
	_tmp85_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp84_);
	_tmp86_ = _tmp85_;
	_tmp87_ = proton_plus_widgets_launch_option_binding_new (_tmp83_, 1, _tmp86_);
	self->priv->gpu_vendor_bindings = g_list_append (self->priv->gpu_vendor_bindings, _tmp87_);
	_tmp83_ = (_vala_array_free (_tmp83_, _tmp83__length1, (GDestroyNotify) g_free), NULL);
	_tmp88_ = proton_plus_widgets_launch_option_tile_new (_ ("FSR 4 RDNA3 Upgrade"), _ ("Optimizes FSR 4.0 for RDNA3 hardware."));
	g_object_ref_sink (_tmp88_);
	_tmp89_ = _tmp88_;
	proton_plus_widgets_launch_options_editor_set_amd_fsr4_rdna3_upgrade_tile (self, _tmp89_);
	_g_object_unref0 (_tmp89_);
	_tmp90_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
	_tmp91_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp90_);
	_tmp92_ = _tmp91_;
	g_signal_connect_object ((GObject*) _tmp92_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_amd_fsr4_rdna3_upgrade_toggle_changed_g_object_notify, self, 0);
	_tmp93_ = g_strdup ("PROTON_FSR4_RDNA3_UPGRADE=1");
	_tmp94_ = g_new0 (gchar*, 1 + 1);
	_tmp94_[0] = _tmp93_;
	_tmp95_ = _tmp94_;
	_tmp95__length1 = 1;
	_tmp96_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
	_tmp97_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp96_);
	_tmp98_ = _tmp97_;
	_tmp99_ = proton_plus_widgets_launch_option_binding_new (_tmp95_, 1, _tmp98_);
	self->priv->gpu_vendor_bindings = g_list_append (self->priv->gpu_vendor_bindings, _tmp99_);
	_tmp95_ = (_vala_array_free (_tmp95_, _tmp95__length1, (GDestroyNotify) g_free), NULL);
	_tmp100_ = proton_plus_widgets_launch_option_tile_new (_ ("NVAPI"), _ ("Lets games access NVIDIA-specific features like DLSS."));
	g_object_ref_sink (_tmp100_);
	_tmp101_ = _tmp100_;
	proton_plus_widgets_launch_options_editor_set_nvapi_tile (self, _tmp101_);
	_g_object_unref0 (_tmp101_);
	_tmp102_ = self->priv->_nvapi_tile;
	_tmp103_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp102_);
	_tmp104_ = _tmp103_;
	g_signal_connect_object ((GObject*) _tmp104_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_nvidia_nvapi_toggle_changed_g_object_notify, self, 0);
	_tmp105_ = g_strdup ("PROTON_ENABLE_NVAPI=1");
	_tmp106_ = g_new0 (gchar*, 1 + 1);
	_tmp106_[0] = _tmp105_;
	_tmp107_ = _tmp106_;
	_tmp107__length1 = 1;
	_tmp108_ = self->priv->_nvapi_tile;
	_tmp109_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp108_);
	_tmp110_ = _tmp109_;
	_tmp111_ = proton_plus_widgets_launch_option_binding_new (_tmp107_, 1, _tmp110_);
	self->priv->gpu_vendor_bindings = g_list_append (self->priv->gpu_vendor_bindings, _tmp111_);
	_tmp107_ = (_vala_array_free (_tmp107_, _tmp107__length1, (GDestroyNotify) g_free), NULL);
	_tmp112_ = proton_plus_widgets_launch_option_tile_new (_ ("Update DLSS components"), _ ("Auto upgrades DLSS components for supported games."));
	g_object_ref_sink (_tmp112_);
	_tmp113_ = _tmp112_;
	proton_plus_widgets_launch_options_editor_set_nvidia_ngx_updater_tile (self, _tmp113_);
	_g_object_unref0 (_tmp113_);
	_tmp114_ = self->priv->_nvidia_ngx_updater_tile;
	_tmp115_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp114_);
	_tmp116_ = _tmp115_;
	g_signal_connect_object ((GObject*) _tmp116_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_nvidia_dlss_updater_toggle_changed_g_object_notify, self, 0);
	_tmp117_ = g_strdup ("PROTON_ENABLE_NGX_UPDATER=1");
	_tmp118_ = g_new0 (gchar*, 1 + 1);
	_tmp118_[0] = _tmp117_;
	_tmp119_ = _tmp118_;
	_tmp119__length1 = 1;
	_tmp120_ = self->priv->_nvidia_ngx_updater_tile;
	_tmp121_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp120_);
	_tmp122_ = _tmp121_;
	_tmp123_ = proton_plus_widgets_launch_option_binding_new (_tmp119_, 1, _tmp122_);
	self->priv->gpu_vendor_bindings = g_list_append (self->priv->gpu_vendor_bindings, _tmp123_);
	_tmp119_ = (_vala_array_free (_tmp119_, _tmp119__length1, (GDestroyNotify) g_free), NULL);
	_tmp124_ = g_strdup ("PROTON_HIDE_NVIDIA_GPU=1");
	_tmp125_ = g_new0 (gchar*, 1 + 1);
	_tmp125_[0] = _tmp124_;
	_tmp126_ = _tmp125_;
	_tmp126__length1 = 1;
	_tmp127_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (self, _ ("Hide NVIDIA GPU"), _ ("Makes Proton report an NVIDIA GPU as AMD for games that expect Windows" \
"-only NVIDIA driver behavior."), _tmp126_, (gint) 1);
	_tmp128_ = _tmp127_;
	proton_plus_widgets_launch_options_editor_set_nvidia_hide_gpu_tile (self, _tmp128_);
	_g_object_unref0 (_tmp128_);
	_tmp126_ = (_vala_array_free (_tmp126_, _tmp126__length1, (GDestroyNotify) g_free), NULL);
	_tmp129_ = g_strdup ("PROTON_DLSS_INDICATOR=1");
	_tmp130_ = g_new0 (gchar*, 1 + 1);
	_tmp130_[0] = _tmp129_;
	_tmp131_ = _tmp130_;
	_tmp131__length1 = 1;
	_tmp132_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (self, _ ("DLSS Indicator"), _ ("Shows a DLSS status indicator in-game."), _tmp131_, (gint) 1);
	_tmp133_ = _tmp132_;
	proton_plus_widgets_launch_options_editor_set_dlss_indicator_tile (self, _tmp133_);
	_g_object_unref0 (_tmp133_);
	_tmp131_ = (_vala_array_free (_tmp131_, _tmp131__length1, (GDestroyNotify) g_free), NULL);
	_tmp134_ = g_strdup ("PROTON_NVIDIA_LIBS=1");
	_tmp135_ = g_new0 (gchar*, 1 + 1);
	_tmp135_[0] = _tmp134_;
	_tmp136_ = _tmp135_;
	_tmp136__length1 = 1;
	_tmp137_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (self, _ ("NVIDIA Libraries"), _ ("Enables NVIDIA-specific libraries (PhysX, CUDA). This is not needed fo" \
"r DLSS or ray tracing."), _tmp136_, (gint) 1);
	_tmp138_ = _tmp137_;
	proton_plus_widgets_launch_options_editor_set_nvidia_libs_tile (self, _tmp138_);
	_g_object_unref0 (_tmp138_);
	_tmp136_ = (_vala_array_free (_tmp136_, _tmp136__length1, (GDestroyNotify) g_free), NULL);
	_tmp139_ = g_strdup ("PROTON_XESS_UPGRADE=1");
	_tmp140_ = g_new0 (gchar*, 1 + 1);
	_tmp140_[0] = _tmp139_;
	_tmp141_ = _tmp140_;
	_tmp141__length1 = 1;
	_tmp142_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_tile (self, _ ("XeSS Upgrade"), _ ("Upgrades XeSS in supported games."), _tmp141_, (gint) 1);
	_tmp143_ = _tmp142_;
	proton_plus_widgets_launch_options_editor_set_intel_xess_upgrade_tile (self, _tmp143_);
	_g_object_unref0 (_tmp143_);
	_tmp141_ = (_vala_array_free (_tmp141_, _tmp141__length1, (GDestroyNotify) g_free), NULL);
	_tmp144_ = (GtkStack*) gtk_stack_new ();
	g_object_ref_sink (_tmp144_);
	_tmp145_ = _tmp144_;
	proton_plus_widgets_launch_options_editor_set_gpu_vendor_stack (self, _tmp145_);
	_g_object_unref0 (_tmp145_);
	_tmp146_ = self->priv->_gpu_vendor_stack;
	gtk_stack_set_hhomogeneous (_tmp146_, FALSE);
	_tmp147_ = self->priv->_gpu_vendor_stack;
	gtk_stack_set_vhomogeneous (_tmp147_, FALSE);
	_tmp148_ = self->priv->_gpu_vendor_stack;
	gtk_stack_set_transition_type (_tmp148_, GTK_STACK_TRANSITION_TYPE_CROSSFADE);
	_tmp149_ = self->priv->_gpu_vendor_stack;
	_tmp150_ = self->priv->_amd_anti_lag_tile;
	_tmp151_ = _g_object_ref0 (_tmp150_);
	_tmp152_ = self->priv->_amd_fsr4_upgrade_tile;
	_tmp153_ = _g_object_ref0 (_tmp152_);
	_tmp154_ = self->priv->_amd_fsr4_rdna3_upgrade_tile;
	_tmp155_ = _g_object_ref0 (_tmp154_);
	_tmp156_ = self->priv->_amd_prime_tile;
	_tmp157_ = _g_object_ref0 (_tmp156_);
	_tmp158_ = self->priv->_amd_hide_apu_tile;
	_tmp159_ = _g_object_ref0 (_tmp158_);
	_tmp160_ = g_new0 (ProtonPlusWidgetsLaunchOptionTile*, 5 + 1);
	_tmp160_[0] = _tmp151_;
	_tmp160_[1] = _tmp153_;
	_tmp160_[2] = _tmp155_;
	_tmp160_[3] = _tmp157_;
	_tmp160_[4] = _tmp159_;
	_tmp161_ = _tmp160_;
	_tmp161__length1 = 5;
	_tmp162_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_page (self, _tmp161_, (gint) 5);
	_tmp163_ = _tmp162_;
	gtk_stack_add_titled (_tmp149_, _tmp163_, "amd", _ ("AMD"));
	_g_object_unref0 (_tmp163_);
	_tmp161_ = (_vala_array_free (_tmp161_, _tmp161__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp164_ = self->priv->_gpu_vendor_stack;
	_tmp165_ = self->priv->_nvapi_tile;
	_tmp166_ = _g_object_ref0 (_tmp165_);
	_tmp167_ = self->priv->_nvidia_ngx_updater_tile;
	_tmp168_ = _g_object_ref0 (_tmp167_);
	_tmp169_ = self->priv->_nvidia_hide_gpu_tile;
	_tmp170_ = _g_object_ref0 (_tmp169_);
	_tmp171_ = self->priv->_dlss_indicator_tile;
	_tmp172_ = _g_object_ref0 (_tmp171_);
	_tmp173_ = self->priv->_nvidia_libs_tile;
	_tmp174_ = _g_object_ref0 (_tmp173_);
	_tmp175_ = g_new0 (ProtonPlusWidgetsLaunchOptionTile*, 5 + 1);
	_tmp175_[0] = _tmp166_;
	_tmp175_[1] = _tmp168_;
	_tmp175_[2] = _tmp170_;
	_tmp175_[3] = _tmp172_;
	_tmp175_[4] = _tmp174_;
	_tmp176_ = _tmp175_;
	_tmp176__length1 = 5;
	_tmp177_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_page (self, _tmp176_, (gint) 5);
	_tmp178_ = _tmp177_;
	gtk_stack_add_titled (_tmp164_, _tmp178_, "nvidia", _ ("NVIDIA"));
	_g_object_unref0 (_tmp178_);
	_tmp176_ = (_vala_array_free (_tmp176_, _tmp176__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp179_ = self->priv->_gpu_vendor_stack;
	_tmp180_ = self->priv->_intel_xess_upgrade_tile;
	_tmp181_ = _g_object_ref0 (_tmp180_);
	_tmp182_ = g_new0 (ProtonPlusWidgetsLaunchOptionTile*, 1 + 1);
	_tmp182_[0] = _tmp181_;
	_tmp183_ = _tmp182_;
	_tmp183__length1 = 1;
	_tmp184_ = proton_plus_widgets_launch_options_editor_create_gpu_vendor_page (self, _tmp183_, (gint) 1);
	_tmp185_ = _tmp184_;
	gtk_stack_add_titled (_tmp179_, _tmp185_, "intel", _ ("Intel"));
	_g_object_unref0 (_tmp185_);
	_tmp183_ = (_vala_array_free (_tmp183_, _tmp183__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp186_ = self->priv->_gpu_vendor_stack;
	gtk_stack_set_visible_child_name (_tmp186_, "amd");
	_tmp187_ = (GtkStackSwitcher*) gtk_stack_switcher_new ();
	g_object_ref_sink (_tmp187_);
	_tmp188_ = _tmp187_;
	proton_plus_widgets_launch_options_editor_set_gpu_vendor_switcher (self, _tmp188_);
	_g_object_unref0 (_tmp188_);
	_tmp189_ = self->priv->_gpu_vendor_switcher;
	_tmp190_ = self->priv->_gpu_vendor_stack;
	gtk_stack_switcher_set_stack (_tmp189_, _tmp190_);
	_tmp191_ = self->priv->_gpu_vendor_switcher;
	gtk_widget_set_halign ((GtkWidget*) _tmp191_, GTK_ALIGN_START);
	_tmp192_ = self->priv->_gpu_vendor_stack;
	g_signal_connect_object ((GObject*) _tmp192_, "notify::visible-child-name", (GCallback) _proton_plus_widgets_launch_options_editor_gpu_vendor_selection_changed_g_object_notify, self, 0);
	_tmp193_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp193_);
	_tmp194_ = _tmp193_;
	proton_plus_widgets_launch_options_editor_set_gpu_vendor_group (self, _tmp194_);
	_g_object_unref0 (_tmp194_);
	_tmp195_ = self->priv->_gpu_vendor_group;
	adw_preferences_group_set_title (_tmp195_, _ ("GPU vendor options"));
	_tmp196_ = self->priv->_gpu_vendor_group;
	adw_preferences_group_set_description (_tmp196_, _ ("Use GPU-specific compatibility toggles for AMD, NVIDIA and Intel hardw" \
"are."));
	_tmp197_ = self->priv->_gpu_vendor_group;
	_tmp198_ = self->priv->_gpu_vendor_switcher;
	adw_preferences_group_set_header_suffix (_tmp197_, (GtkWidget*) _tmp198_);
	_tmp199_ = self->priv->_gpu_vendor_group;
	_tmp200_ = self->priv->_gpu_vendor_stack;
	adw_preferences_group_add (_tmp199_, (GtkWidget*) _tmp200_);
	_tmp201_ = self->priv->_gpu_vendor_group;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp201_);
	_tmp202_ = g_strdup ("ENABLE_VKBASALT=1");
	_tmp203_ = g_new0 (gchar*, 1 + 1);
	_tmp203_[0] = _tmp202_;
	_tmp204_ = _tmp203_;
	_tmp204__length1 = 1;
	_tmp205_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("VKBasalt"), _ ("Adds visual effects like sharpening and color adjustments."), _tmp204_, (gint) 1);
	_tmp206_ = _tmp205_;
	proton_plus_widgets_launch_options_editor_set_vkbasalt_tile (self, _tmp206_);
	_g_object_unref0 (_tmp206_);
	_tmp204_ = (_vala_array_free (_tmp204_, _tmp204__length1, (GDestroyNotify) g_free), NULL);
	_tmp207_ = g_strdup ("PROTON_USE_WINED3D=1");
	_tmp208_ = g_new0 (gchar*, 1 + 1);
	_tmp208_[0] = _tmp207_;
	_tmp209_ = _tmp208_;
	_tmp209__length1 = 1;
	_tmp210_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("WineD3D"), _ ("Uses OpenGL instead of Vulkan. Only enable if you're having DXVK issue" \
"s."), _tmp209_, (gint) 1);
	_tmp211_ = _tmp210_;
	proton_plus_widgets_launch_options_editor_set_wined3d_tile (self, _tmp211_);
	_g_object_unref0 (_tmp211_);
	_tmp209_ = (_vala_array_free (_tmp209_, _tmp209__length1, (GDestroyNotify) g_free), NULL);
	_tmp212_ = g_strdup ("PROTON_USE_NTSYNC=0");
	_tmp213_ = g_new0 (gchar*, 1 + 1);
	_tmp213_[0] = _tmp212_;
	_tmp214_ = _tmp213_;
	_tmp214__length1 = 1;
	_tmp215_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("Use FSync"), _ ("Uses FSync instead of NTSync. Can fix issues in certain games that do " \
"not pair well with NTSync."), _tmp214_, (gint) 1);
	_tmp216_ = _tmp215_;
	proton_plus_widgets_launch_options_editor_set_ntsync_tile (self, _tmp216_);
	_g_object_unref0 (_tmp216_);
	_tmp214_ = (_vala_array_free (_tmp214_, _tmp214__length1, (GDestroyNotify) g_free), NULL);
	_tmp217_ = g_strdup ("PROTON_LOCAL_SHADER_CACHE=1");
	_tmp218_ = g_new0 (gchar*, 1 + 1);
	_tmp218_[0] = _tmp217_;
	_tmp219_ = _tmp218_;
	_tmp219__length1 = 1;
	_tmp220_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("Local shader cache"), _ ("Enables per-game shader cache. This isolates the shader cache of each " \
"game but does not compile them ahead-of-time."), _tmp219_, (gint) 1);
	_tmp221_ = _tmp220_;
	proton_plus_widgets_launch_options_editor_set_local_shader_cache_tile (self, _tmp221_);
	_g_object_unref0 (_tmp221_);
	_tmp219_ = (_vala_array_free (_tmp219_, _tmp219__length1, (GDestroyNotify) g_free), NULL);
	_tmp222_ = g_strdup ("PROTON_PREFER_SDL=1");
	_tmp223_ = g_new0 (gchar*, 1 + 1);
	_tmp223_[0] = _tmp222_;
	_tmp224_ = _tmp223_;
	_tmp224__length1 = 1;
	_tmp225_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("Prefer SDL controller"), _ ("Workaround for controller detection issues."), _tmp224_, (gint) 1);
	_tmp226_ = _tmp225_;
	proton_plus_widgets_launch_options_editor_set_prefer_sdl_tile (self, _tmp226_);
	_g_object_unref0 (_tmp226_);
	_tmp224_ = (_vala_array_free (_tmp224_, _tmp224__length1, (GDestroyNotify) g_free), NULL);
	_tmp227_ = g_strdup ("PROTON_NO_STEAMINPUT=1");
	_tmp228_ = g_new0 (gchar*, 1 + 1);
	_tmp228_[0] = _tmp227_;
	_tmp229_ = _tmp228_;
	_tmp229__length1 = 1;
	_tmp230_ = proton_plus_widgets_launch_options_editor_create_common_tile (self, _ ("Disable Steam Input"), _ ("Disables Steam Input support. Fixes Wayland controller/gamepad issues."), _tmp229_, (gint) 1);
	_tmp231_ = _tmp230_;
	proton_plus_widgets_launch_options_editor_set_no_steaminput_tile (self, _tmp231_);
	_g_object_unref0 (_tmp231_);
	_tmp229_ = (_vala_array_free (_tmp229_, _tmp229__length1, (GDestroyNotify) g_free), NULL);
	_tmp232_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp232_);
	_tmp233_ = _tmp232_;
	proton_plus_widgets_launch_options_editor_set_more_options_group (self, _tmp233_);
	_g_object_unref0 (_tmp233_);
	_tmp234_ = self->priv->_more_options_group;
	adw_preferences_group_set_title (_tmp234_, _ ("More options"));
	_tmp235_ = self->priv->_more_options_group;
	adw_preferences_group_set_description (_tmp235_, _ ("Extra graphics settings and launch behaviors."));
	_tmp236_ = self->priv->_more_options_group;
	_tmp237_ = self->priv->_vkbasalt_tile;
	adw_preferences_group_add (_tmp236_, (GtkWidget*) _tmp237_);
	_tmp238_ = self->priv->_more_options_group;
	_tmp239_ = self->priv->_wined3d_tile;
	adw_preferences_group_add (_tmp238_, (GtkWidget*) _tmp239_);
	_tmp240_ = self->priv->_more_options_group;
	_tmp241_ = self->priv->_ntsync_tile;
	adw_preferences_group_add (_tmp240_, (GtkWidget*) _tmp241_);
	_tmp242_ = self->priv->_more_options_group;
	_tmp243_ = self->priv->_local_shader_cache_tile;
	adw_preferences_group_add (_tmp242_, (GtkWidget*) _tmp243_);
	_tmp244_ = self->priv->_more_options_group;
	_tmp245_ = self->priv->_prefer_sdl_tile;
	adw_preferences_group_add (_tmp244_, (GtkWidget*) _tmp245_);
	_tmp246_ = self->priv->_more_options_group;
	_tmp247_ = self->priv->_no_steaminput_tile;
	adw_preferences_group_add (_tmp246_, (GtkWidget*) _tmp247_);
	_tmp248_ = self->priv->_more_options_group;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp248_);
	_tmp249_ = g_strdup ("-skip-launcher");
	_tmp250_ = g_new0 (gchar*, 1 + 1);
	_tmp250_[0] = _tmp249_;
	_tmp251_ = _tmp250_;
	_tmp251__length1 = 1;
	_tmp252_ = proton_plus_widgets_launch_options_editor_create_game_argument_tile (self, _ ("Skip launcher"), _ ("Adds -skip-launcher to bypass launchers in games that support it."), _tmp251_, (gint) 1);
	_tmp253_ = _tmp252_;
	proton_plus_widgets_launch_options_editor_set_skip_launcher_tile (self, _tmp253_);
	_g_object_unref0 (_tmp253_);
	_tmp251_ = (_vala_array_free (_tmp251_, _tmp251__length1, (GDestroyNotify) g_free), NULL);
	_tmp254_ = g_strdup ("-vulkan");
	_tmp255_ = g_new0 (gchar*, 1 + 1);
	_tmp255_[0] = _tmp254_;
	_tmp256_ = _tmp255_;
	_tmp256__length1 = 1;
	_tmp257_ = proton_plus_widgets_launch_options_editor_create_game_argument_tile (self, _ ("Vulkan"), _ ("Adds -vulkan to make the game use its Vulkan renderer."), _tmp256_, (gint) 1);
	_tmp258_ = _tmp257_;
	proton_plus_widgets_launch_options_editor_set_vulkan_tile (self, _tmp258_);
	_g_object_unref0 (_tmp258_);
	_tmp256_ = (_vala_array_free (_tmp256_, _tmp256__length1, (GDestroyNotify) g_free), NULL);
	_tmp259_ = g_strdup ("-dx11");
	_tmp260_ = g_new0 (gchar*, 1 + 1);
	_tmp260_[0] = _tmp259_;
	_tmp261_ = _tmp260_;
	_tmp261__length1 = 1;
	_tmp262_ = proton_plus_widgets_launch_options_editor_create_game_argument_tile (self, _ ("DirectX 11"), _ ("Adds -dx11 to make the game use its DirectX 11 renderer."), _tmp261_, (gint) 1);
	_tmp263_ = _tmp262_;
	proton_plus_widgets_launch_options_editor_set_dx11_tile (self, _tmp263_);
	_g_object_unref0 (_tmp263_);
	_tmp261_ = (_vala_array_free (_tmp261_, _tmp261__length1, (GDestroyNotify) g_free), NULL);
	_tmp264_ = g_strdup ("-dx12");
	_tmp265_ = g_new0 (gchar*, 1 + 1);
	_tmp265_[0] = _tmp264_;
	_tmp266_ = _tmp265_;
	_tmp266__length1 = 1;
	_tmp267_ = proton_plus_widgets_launch_options_editor_create_game_argument_tile (self, _ ("DirectX 12"), _ ("Adds -dx12 to make the game use its DirectX 12 renderer."), _tmp266_, (gint) 1);
	_tmp268_ = _tmp267_;
	proton_plus_widgets_launch_options_editor_set_dx12_tile (self, _tmp268_);
	_g_object_unref0 (_tmp268_);
	_tmp266_ = (_vala_array_free (_tmp266_, _tmp266__length1, (GDestroyNotify) g_free), NULL);
	_tmp269_ = g_strdup ("-console");
	_tmp270_ = g_new0 (gchar*, 1 + 1);
	_tmp270_[0] = _tmp269_;
	_tmp271_ = _tmp270_;
	_tmp271__length1 = 1;
	_tmp272_ = proton_plus_widgets_launch_options_editor_create_game_argument_tile (self, _ ("Console"), _ ("Adds -console to open the game's developer console when supported."), _tmp271_, (gint) 1);
	_tmp273_ = _tmp272_;
	proton_plus_widgets_launch_options_editor_set_console_tile (self, _tmp273_);
	_g_object_unref0 (_tmp273_);
	_tmp271_ = (_vala_array_free (_tmp271_, _tmp271__length1, (GDestroyNotify) g_free), NULL);
	_tmp274_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp274_);
	_tmp275_ = _tmp274_;
	proton_plus_widgets_launch_options_editor_set_game_arguments_group (self, _tmp275_);
	_g_object_unref0 (_tmp275_);
	_tmp276_ = self->priv->_game_arguments_group;
	adw_preferences_group_set_title (_tmp276_, _ ("Game arguments"));
	_tmp277_ = self->priv->_game_arguments_group;
	adw_preferences_group_set_description (_tmp277_, _ ("Flags passed directly to the game."));
	_tmp278_ = self->priv->_game_arguments_group;
	_tmp279_ = self->priv->_skip_launcher_tile;
	adw_preferences_group_add (_tmp278_, (GtkWidget*) _tmp279_);
	_tmp280_ = self->priv->_game_arguments_group;
	_tmp281_ = self->priv->_vulkan_tile;
	adw_preferences_group_add (_tmp280_, (GtkWidget*) _tmp281_);
	_tmp282_ = self->priv->_game_arguments_group;
	_tmp283_ = self->priv->_dx11_tile;
	adw_preferences_group_add (_tmp282_, (GtkWidget*) _tmp283_);
	_tmp284_ = self->priv->_game_arguments_group;
	_tmp285_ = self->priv->_dx12_tile;
	adw_preferences_group_add (_tmp284_, (GtkWidget*) _tmp285_);
	_tmp286_ = self->priv->_game_arguments_group;
	_tmp287_ = self->priv->_console_tile;
	adw_preferences_group_add (_tmp286_, (GtkWidget*) _tmp287_);
	_tmp288_ = self->priv->_game_arguments_group;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp288_);
	_tmp289_ = proton_plus_widgets_launch_option_tile_new ("%command%", _ ("Appends Steam's game command."));
	g_object_ref_sink (_tmp289_);
	_tmp290_ = _tmp289_;
	proton_plus_widgets_launch_options_editor_set_command_tile (self, _tmp290_);
	_g_object_unref0 (_tmp290_);
	_tmp291_ = self->priv->_command_tile;
	_tmp292_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp291_);
	_tmp293_ = _tmp292_;
	g_signal_connect_object ((GObject*) _tmp293_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_command_toggle_changed_g_object_notify, self, 0);
	_tmp294_ = proton_plus_widgets_launch_option_entry_field_new (_ ("Additional arguments"), "", _ ("Add extra launch options"));
	g_object_ref_sink (_tmp294_);
	_tmp295_ = _tmp294_;
	proton_plus_widgets_launch_options_editor_set_additional_args_field (self, _tmp295_);
	_g_object_unref0 (_tmp295_);
	_tmp296_ = self->priv->_additional_args_field;
	g_signal_connect_object (_tmp296_, "value-applied", (GCallback) _proton_plus_widgets_launch_options_editor_standard_control_changed_proton_plus_widgets_launch_option_entry_field_value_applied, self, 0);
	_tmp297_ = proton_plus_widgets_launch_option_tile_new (_ ("Custom launch arguments"), _ ("Add your own launch options."));
	g_object_ref_sink (_tmp297_);
	_tmp298_ = _tmp297_;
	proton_plus_widgets_launch_options_editor_set_additional_args_tile (self, _tmp298_);
	_g_object_unref0 (_tmp298_);
	_tmp299_ = self->priv->_additional_args_tile;
	_tmp300_ = proton_plus_widgets_launch_option_tile_get_toggle (_tmp299_);
	_tmp301_ = _tmp300_;
	g_signal_connect_object ((GObject*) _tmp301_, "notify::active", (GCallback) _proton_plus_widgets_launch_options_editor_additional_args_toggle_changed_g_object_notify, self, 0);
	_tmp302_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp302_);
	_tmp303_ = _tmp302_;
	proton_plus_widgets_launch_options_editor_set_advanced_options_group (self, _tmp303_);
	_g_object_unref0 (_tmp303_);
	_tmp304_ = self->priv->_advanced_options_group;
	gtk_widget_set_margin_bottom ((GtkWidget*) _tmp304_, 15);
	_tmp305_ = self->priv->_advanced_options_group;
	adw_preferences_group_set_title (_tmp305_, _ ("Advanced options"));
	_tmp306_ = self->priv->_advanced_options_group;
	adw_preferences_group_set_description (_tmp306_, _ ("Extra control over the final Steam launch command."));
	_tmp307_ = self->priv->_advanced_options_group;
	_tmp308_ = self->priv->_command_tile;
	adw_preferences_group_add (_tmp307_, (GtkWidget*) _tmp308_);
	_tmp309_ = self->priv->_advanced_options_group;
	_tmp310_ = self->priv->_additional_args_tile;
	adw_preferences_group_add (_tmp309_, (GtkWidget*) _tmp310_);
	_tmp311_ = self->priv->_advanced_options_group;
	_tmp312_ = self->priv->_additional_args_field;
	adw_preferences_group_add (_tmp311_, (GtkWidget*) _tmp312_);
	_tmp313_ = self->priv->_advanced_options_group;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp313_);
	proton_plus_widgets_launch_options_editor_set_selected_wrapper_mode (self, PROTON_PLUS_WIDGETS_WRAPPER_MODE_NONE);
	proton_plus_widgets_launch_options_editor_refresh_advanced_visibility (self);
	self->priv->refreshing_controls = FALSE;
	proton_plus_widgets_launch_options_editor_refresh_preview (self);
	_g_object_unref0 (wrapper_group);
	_g_object_unref0 (common_group);
	return obj;
}

static void
proton_plus_widgets_launch_options_editor_class_init (ProtonPlusWidgetsLaunchOptionsEditorClass * klass,
                                                      gpointer klass_data)
{
	proton_plus_widgets_launch_options_editor_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsLaunchOptionsEditor_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_launch_options_editor_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_launch_options_editor_set_property;
	G_OBJECT_CLASS (klass)->constructor = proton_plus_widgets_launch_options_editor_constructor;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_launch_options_editor_finalize;
	proton_plus_widgets_launch_options_editor_signals[PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_EDITOR_CONTENT_CHANGED_SIGNAL] = g_signal_new ("content-changed", PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
proton_plus_widgets_launch_options_editor_instance_init (ProtonPlusWidgetsLaunchOptionsEditor * self,
                                                         gpointer klass)
{
	self->priv = proton_plus_widgets_launch_options_editor_get_instance_private (self);
}

static void
proton_plus_widgets_launch_options_editor_finalize (GObject * obj)
{
	ProtonPlusWidgetsLaunchOptionsEditor * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR, ProtonPlusWidgetsLaunchOptionsEditor);
	_g_object_unref0 (self->priv->_more_options_group);
	_g_object_unref0 (self->priv->_gpu_vendor_group);
	_g_object_unref0 (self->priv->_game_arguments_group);
	_g_object_unref0 (self->priv->_advanced_options_group);
	_g_object_unref0 (self->priv->_mangohud_tile);
	_g_object_unref0 (self->priv->_steam_deck_tile);
	_g_object_unref0 (self->priv->_hdr_tile);
	_g_object_unref0 (self->priv->_wayland_tile);
	_g_object_unref0 (self->priv->_vkbasalt_tile);
	_g_object_unref0 (self->priv->_wined3d_tile);
	_g_object_unref0 (self->priv->_amd_fsr4_upgrade_tile);
	_g_object_unref0 (self->priv->_amd_fsr4_rdna3_upgrade_tile);
	_g_object_unref0 (self->priv->_amd_anti_lag_tile);
	_g_object_unref0 (self->priv->_amd_prime_tile);
	_g_object_unref0 (self->priv->_amd_hide_apu_tile);
	_g_object_unref0 (self->priv->_nvapi_tile);
	_g_object_unref0 (self->priv->_nvidia_ngx_updater_tile);
	_g_object_unref0 (self->priv->_nvidia_hide_gpu_tile);
	_g_object_unref0 (self->priv->_dlss_indicator_tile);
	_g_object_unref0 (self->priv->_nvidia_libs_tile);
	_g_object_unref0 (self->priv->_intel_xess_upgrade_tile);
	_g_object_unref0 (self->priv->_prefer_sdl_tile);
	_g_object_unref0 (self->priv->_no_steaminput_tile);
	_g_object_unref0 (self->priv->_ntsync_tile);
	_g_object_unref0 (self->priv->_local_shader_cache_tile);
	_g_object_unref0 (self->priv->_additional_args_field);
	_g_object_unref0 (self->priv->_additional_args_tile);
	_g_object_unref0 (self->priv->_command_tile);
	_g_object_unref0 (self->priv->_skip_launcher_tile);
	_g_object_unref0 (self->priv->_vulkan_tile);
	_g_object_unref0 (self->priv->_dx11_tile);
	_g_object_unref0 (self->priv->_dx12_tile);
	_g_object_unref0 (self->priv->_console_tile);
	_g_object_unref0 (self->priv->_preview_field);
	_g_object_unref0 (self->priv->_wrapper_stack);
	_g_object_unref0 (self->priv->_wrapper_switcher);
	_g_object_unref0 (self->priv->_gpu_vendor_stack);
	_g_object_unref0 (self->priv->_gpu_vendor_switcher);
	_g_object_unref0 (self->priv->_gamescope_fullscreen_tile);
	_g_object_unref0 (self->priv->_gamescope_hdr_tile);
	_g_object_unref0 (self->priv->_gamescope_vrr_tile);
	_g_object_unref0 (self->priv->_gamescope_framerate_tile);
	_g_object_unref0 (self->priv->_gamescope_resolution_field);
	_g_object_unref0 (self->priv->_gamescope_args_field);
	_g_object_unref0 (self->priv->_scopebuddy_fullscreen_tile);
	_g_object_unref0 (self->priv->_scopebuddy_auto_hdr_tile);
	_g_object_unref0 (self->priv->_scopebuddy_auto_vrr_tile);
	_g_object_unref0 (self->priv->_scopebuddy_framerate_tile);
	_g_object_unref0 (self->priv->_scopebuddy_resolution_field);
	_g_object_unref0 (self->priv->_scopebuddy_args_field);
	(self->priv->common_bindings == NULL) ? NULL : (self->priv->common_bindings = (_g_list_free__g_object_unref0_ (self->priv->common_bindings), NULL));
	(self->priv->gpu_vendor_bindings == NULL) ? NULL : (self->priv->gpu_vendor_bindings = (_g_list_free__g_object_unref0_ (self->priv->gpu_vendor_bindings), NULL));
	(self->priv->game_argument_bindings == NULL) ? NULL : (self->priv->game_argument_bindings = (_g_list_free__g_object_unref0_ (self->priv->game_argument_bindings), NULL));
	(self->priv->scopebuddy_bindings == NULL) ? NULL : (self->priv->scopebuddy_bindings = (_g_list_free__g_object_unref0_ (self->priv->scopebuddy_bindings), NULL));
	G_OBJECT_CLASS (proton_plus_widgets_launch_options_editor_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_launch_options_editor_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsLaunchOptionsEditorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_launch_options_editor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsLaunchOptionsEditor), 0, (GInstanceInitFunc) proton_plus_widgets_launch_options_editor_instance_init, NULL };
	GType proton_plus_widgets_launch_options_editor_type_id;
	proton_plus_widgets_launch_options_editor_type_id = g_type_register_static (gtk_box_get_type (), "ProtonPlusWidgetsLaunchOptionsEditor", &g_define_type_info, 0);
	ProtonPlusWidgetsLaunchOptionsEditor_private_offset = g_type_add_instance_private (proton_plus_widgets_launch_options_editor_type_id, sizeof (ProtonPlusWidgetsLaunchOptionsEditorPrivate));
	return proton_plus_widgets_launch_options_editor_type_id;
}

GType
proton_plus_widgets_launch_options_editor_get_type (void)
{
	static volatile gsize proton_plus_widgets_launch_options_editor_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_launch_options_editor_type_id__once)) {
		GType proton_plus_widgets_launch_options_editor_type_id;
		proton_plus_widgets_launch_options_editor_type_id = proton_plus_widgets_launch_options_editor_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_launch_options_editor_type_id__once, proton_plus_widgets_launch_options_editor_type_id);
	}
	return proton_plus_widgets_launch_options_editor_type_id__once;
}

static void
_vala_proton_plus_widgets_launch_options_editor_get_property (GObject * object,
                                                              guint property_id,
                                                              GValue * value,
                                                              GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionsEditor * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR, ProtonPlusWidgetsLaunchOptionsEditor);
	switch (property_id) {
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_launch_options_editor_set_property (GObject * object,
                                                              guint property_id,
                                                              const GValue * value,
                                                              GParamSpec * pspec)
{
	ProtonPlusWidgetsLaunchOptionsEditor * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_EDITOR, ProtonPlusWidgetsLaunchOptionsEditor);
	switch (property_id) {
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

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 gssize
_vala_array_length (gpointer array)
{
	gssize length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}

