/* games-box.c generated by valac 0.56.19, the Vala compiler
 * generated from games-box.vala, do not modify */

#include <gtk/gtk.h>
#include <glib-object.h>
#include <glib.h>
#include <adwaita.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>
#include <glib/gi18n-lib.h>
#include <gdk/gdk.h>
#include <float.h>
#include <math.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

#define PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX (proton_plus_widgets_games_box_get_type ())
#define PROTON_PLUS_WIDGETS_GAMES_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX, ProtonPlusWidgetsGamesBox))
#define PROTON_PLUS_WIDGETS_GAMES_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX, ProtonPlusWidgetsGamesBoxClass))
#define PROTON_PLUS_WIDGETS_IS_GAMES_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX))
#define PROTON_PLUS_WIDGETS_IS_GAMES_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX))
#define PROTON_PLUS_WIDGETS_GAMES_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX, ProtonPlusWidgetsGamesBoxClass))

typedef struct _ProtonPlusWidgetsGamesBox ProtonPlusWidgetsGamesBox;
typedef struct _ProtonPlusWidgetsGamesBoxClass ProtonPlusWidgetsGamesBoxClass;
typedef struct _ProtonPlusWidgetsGamesBoxPrivate ProtonPlusWidgetsGamesBoxPrivate;

#define PROTON_PLUS_MODELS_TYPE_LAUNCHER (proton_plus_models_launcher_get_type ())
#define PROTON_PLUS_MODELS_LAUNCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_TYPE_LAUNCHER, ProtonPlusModelsLauncher))
#define PROTON_PLUS_MODELS_LAUNCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_TYPE_LAUNCHER, ProtonPlusModelsLauncherClass))
#define PROTON_PLUS_MODELS_IS_LAUNCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_TYPE_LAUNCHER))
#define PROTON_PLUS_MODELS_IS_LAUNCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_TYPE_LAUNCHER))
#define PROTON_PLUS_MODELS_LAUNCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_TYPE_LAUNCHER, ProtonPlusModelsLauncherClass))

typedef struct _ProtonPlusModelsLauncher ProtonPlusModelsLauncher;
typedef struct _ProtonPlusModelsLauncherClass ProtonPlusModelsLauncherClass;

#define PROTON_PLUS_WIDGETS_TYPE_SHORTCUT_BUTTON (proton_plus_widgets_shortcut_button_get_type ())
#define PROTON_PLUS_WIDGETS_SHORTCUT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_SHORTCUT_BUTTON, ProtonPlusWidgetsShortcutButton))
#define PROTON_PLUS_WIDGETS_SHORTCUT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_SHORTCUT_BUTTON, ProtonPlusWidgetsShortcutButtonClass))
#define PROTON_PLUS_WIDGETS_IS_SHORTCUT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_SHORTCUT_BUTTON))
#define PROTON_PLUS_WIDGETS_IS_SHORTCUT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_SHORTCUT_BUTTON))
#define PROTON_PLUS_WIDGETS_SHORTCUT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_SHORTCUT_BUTTON, ProtonPlusWidgetsShortcutButtonClass))

typedef struct _ProtonPlusWidgetsShortcutButton ProtonPlusWidgetsShortcutButton;
typedef struct _ProtonPlusWidgetsShortcutButtonClass ProtonPlusWidgetsShortcutButtonClass;

#define PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_BUTTON (proton_plus_widgets_mass_edit_button_get_type ())
#define PROTON_PLUS_WIDGETS_MASS_EDIT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_BUTTON, ProtonPlusWidgetsMassEditButton))
#define PROTON_PLUS_WIDGETS_MASS_EDIT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_BUTTON, ProtonPlusWidgetsMassEditButtonClass))
#define PROTON_PLUS_WIDGETS_IS_MASS_EDIT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_BUTTON))
#define PROTON_PLUS_WIDGETS_IS_MASS_EDIT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_BUTTON))
#define PROTON_PLUS_WIDGETS_MASS_EDIT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_BUTTON, ProtonPlusWidgetsMassEditButtonClass))

typedef struct _ProtonPlusWidgetsMassEditButton ProtonPlusWidgetsMassEditButton;
typedef struct _ProtonPlusWidgetsMassEditButtonClass ProtonPlusWidgetsMassEditButtonClass;

#define PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_BUTTON (proton_plus_widgets_default_tool_button_get_type ())
#define PROTON_PLUS_WIDGETS_DEFAULT_TOOL_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_BUTTON, ProtonPlusWidgetsDefaultToolButton))
#define PROTON_PLUS_WIDGETS_DEFAULT_TOOL_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_BUTTON, ProtonPlusWidgetsDefaultToolButtonClass))
#define PROTON_PLUS_WIDGETS_IS_DEFAULT_TOOL_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_BUTTON))
#define PROTON_PLUS_WIDGETS_IS_DEFAULT_TOOL_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_BUTTON))
#define PROTON_PLUS_WIDGETS_DEFAULT_TOOL_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_BUTTON, ProtonPlusWidgetsDefaultToolButtonClass))

typedef struct _ProtonPlusWidgetsDefaultToolButton ProtonPlusWidgetsDefaultToolButton;
typedef struct _ProtonPlusWidgetsDefaultToolButtonClass ProtonPlusWidgetsDefaultToolButtonClass;

#define PROTON_PLUS_WIDGETS_TYPE_SWITCH_PROFILE_BUTTON (proton_plus_widgets_switch_profile_button_get_type ())
#define PROTON_PLUS_WIDGETS_SWITCH_PROFILE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_SWITCH_PROFILE_BUTTON, ProtonPlusWidgetsSwitchProfileButton))
#define PROTON_PLUS_WIDGETS_SWITCH_PROFILE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_SWITCH_PROFILE_BUTTON, ProtonPlusWidgetsSwitchProfileButtonClass))
#define PROTON_PLUS_WIDGETS_IS_SWITCH_PROFILE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_SWITCH_PROFILE_BUTTON))
#define PROTON_PLUS_WIDGETS_IS_SWITCH_PROFILE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_SWITCH_PROFILE_BUTTON))
#define PROTON_PLUS_WIDGETS_SWITCH_PROFILE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_SWITCH_PROFILE_BUTTON, ProtonPlusWidgetsSwitchProfileButtonClass))

typedef struct _ProtonPlusWidgetsSwitchProfileButton ProtonPlusWidgetsSwitchProfileButton;
typedef struct _ProtonPlusWidgetsSwitchProfileButtonClass ProtonPlusWidgetsSwitchProfileButtonClass;

#define PROTON_PLUS_WIDGETS_TYPE_SELECT_BUTTON (proton_plus_widgets_select_button_get_type ())
#define PROTON_PLUS_WIDGETS_SELECT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_SELECT_BUTTON, ProtonPlusWidgetsSelectButton))
#define PROTON_PLUS_WIDGETS_SELECT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_SELECT_BUTTON, ProtonPlusWidgetsSelectButtonClass))
#define PROTON_PLUS_WIDGETS_IS_SELECT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_SELECT_BUTTON))
#define PROTON_PLUS_WIDGETS_IS_SELECT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_SELECT_BUTTON))
#define PROTON_PLUS_WIDGETS_SELECT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_SELECT_BUTTON, ProtonPlusWidgetsSelectButtonClass))

typedef struct _ProtonPlusWidgetsSelectButton ProtonPlusWidgetsSelectButton;
typedef struct _ProtonPlusWidgetsSelectButtonClass ProtonPlusWidgetsSelectButtonClass;

#define PROTON_PLUS_WIDGETS_TYPE_UNSELECT_BUTTON (proton_plus_widgets_unselect_button_get_type ())
#define PROTON_PLUS_WIDGETS_UNSELECT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_UNSELECT_BUTTON, ProtonPlusWidgetsUnselectButton))
#define PROTON_PLUS_WIDGETS_UNSELECT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_UNSELECT_BUTTON, ProtonPlusWidgetsUnselectButtonClass))
#define PROTON_PLUS_WIDGETS_IS_UNSELECT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_UNSELECT_BUTTON))
#define PROTON_PLUS_WIDGETS_IS_UNSELECT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_UNSELECT_BUTTON))
#define PROTON_PLUS_WIDGETS_UNSELECT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_UNSELECT_BUTTON, ProtonPlusWidgetsUnselectButtonClass))

typedef struct _ProtonPlusWidgetsUnselectButton ProtonPlusWidgetsUnselectButton;
typedef struct _ProtonPlusWidgetsUnselectButtonClass ProtonPlusWidgetsUnselectButtonClass;
enum  {
	PROTON_PLUS_WIDGETS_GAMES_BOX_0_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_BOX_ACTIVE_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_BOX_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_games_box_properties[PROTON_PLUS_WIDGETS_GAMES_BOX_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _gtk_expression_unref0(var) ((var == NULL) ? NULL : (var = (gtk_expression_unref (var), NULL)))
typedef struct _ProtonPlusModelsLauncherPrivate ProtonPlusModelsLauncherPrivate;

#define PROTON_PLUS_MODELS_TYPE_GAME (proton_plus_models_game_get_type ())
#define PROTON_PLUS_MODELS_GAME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_TYPE_GAME, ProtonPlusModelsGame))
#define PROTON_PLUS_MODELS_GAME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_TYPE_GAME, ProtonPlusModelsGameClass))
#define PROTON_PLUS_MODELS_IS_GAME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_TYPE_GAME))
#define PROTON_PLUS_MODELS_IS_GAME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_TYPE_GAME))
#define PROTON_PLUS_MODELS_GAME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_TYPE_GAME, ProtonPlusModelsGameClass))

typedef struct _ProtonPlusModelsGame ProtonPlusModelsGame;
typedef struct _ProtonPlusModelsGameClass ProtonPlusModelsGameClass;

#define PROTON_PLUS_MODELS_TYPE_SIMPLE_RUNNER (proton_plus_models_simple_runner_get_type ())
#define PROTON_PLUS_MODELS_SIMPLE_RUNNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_TYPE_SIMPLE_RUNNER, ProtonPlusModelsSimpleRunner))
#define PROTON_PLUS_MODELS_SIMPLE_RUNNER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_TYPE_SIMPLE_RUNNER, ProtonPlusModelsSimpleRunnerClass))
#define PROTON_PLUS_MODELS_IS_SIMPLE_RUNNER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_TYPE_SIMPLE_RUNNER))
#define PROTON_PLUS_MODELS_IS_SIMPLE_RUNNER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_TYPE_SIMPLE_RUNNER))
#define PROTON_PLUS_MODELS_SIMPLE_RUNNER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_TYPE_SIMPLE_RUNNER, ProtonPlusModelsSimpleRunnerClass))

typedef struct _ProtonPlusModelsSimpleRunner ProtonPlusModelsSimpleRunner;
typedef struct _ProtonPlusModelsSimpleRunnerClass ProtonPlusModelsSimpleRunnerClass;

#define PROTON_PLUS_MODELS_TYPE_GROUP (proton_plus_models_group_get_type ())
#define PROTON_PLUS_MODELS_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_TYPE_GROUP, ProtonPlusModelsGroup))
#define PROTON_PLUS_MODELS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_TYPE_GROUP, ProtonPlusModelsGroupClass))
#define PROTON_PLUS_MODELS_IS_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_TYPE_GROUP))
#define PROTON_PLUS_MODELS_IS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_TYPE_GROUP))
#define PROTON_PLUS_MODELS_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_TYPE_GROUP, ProtonPlusModelsGroupClass))

typedef struct _ProtonPlusModelsGroup ProtonPlusModelsGroup;
typedef struct _ProtonPlusModelsGroupClass ProtonPlusModelsGroupClass;
typedef enum  {
	PROTON_PLUS_MODELS_LAUNCHER_INSTALLATION_TYPES_SYSTEM,
	PROTON_PLUS_MODELS_LAUNCHER_INSTALLATION_TYPES_FLATPAK,
	PROTON_PLUS_MODELS_LAUNCHER_INSTALLATION_TYPES_SNAP
} ProtonPlusModelsLauncherInstallationTypes;

#define PROTON_PLUS_MODELS_LAUNCHER_TYPE_INSTALLATION_TYPES (proton_plus_models_launcher_installation_types_get_type ())

#define PROTON_PLUS_MODELS_LAUNCHERS_TYPE_STEAM (proton_plus_models_launchers_steam_get_type ())
#define PROTON_PLUS_MODELS_LAUNCHERS_STEAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_LAUNCHERS_TYPE_STEAM, ProtonPlusModelsLaunchersSteam))
#define PROTON_PLUS_MODELS_LAUNCHERS_STEAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_LAUNCHERS_TYPE_STEAM, ProtonPlusModelsLaunchersSteamClass))
#define PROTON_PLUS_MODELS_LAUNCHERS_IS_STEAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_LAUNCHERS_TYPE_STEAM))
#define PROTON_PLUS_MODELS_LAUNCHERS_IS_STEAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_LAUNCHERS_TYPE_STEAM))
#define PROTON_PLUS_MODELS_LAUNCHERS_STEAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_LAUNCHERS_TYPE_STEAM, ProtonPlusModelsLaunchersSteamClass))

typedef struct _ProtonPlusModelsLaunchersSteam ProtonPlusModelsLaunchersSteam;
typedef struct _ProtonPlusModelsLaunchersSteamClass ProtonPlusModelsLaunchersSteamClass;
typedef struct _ProtonPlusModelsLaunchersSteamPrivate ProtonPlusModelsLaunchersSteamPrivate;

#define PROTON_PLUS_MODELS_TYPE_STEAM_PROFILE (proton_plus_models_steam_profile_get_type ())
#define PROTON_PLUS_MODELS_STEAM_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_TYPE_STEAM_PROFILE, ProtonPlusModelsSteamProfile))
#define PROTON_PLUS_MODELS_STEAM_PROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_TYPE_STEAM_PROFILE, ProtonPlusModelsSteamProfileClass))
#define PROTON_PLUS_MODELS_IS_STEAM_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_TYPE_STEAM_PROFILE))
#define PROTON_PLUS_MODELS_IS_STEAM_PROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_TYPE_STEAM_PROFILE))
#define PROTON_PLUS_MODELS_STEAM_PROFILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_TYPE_STEAM_PROFILE, ProtonPlusModelsSteamProfileClass))

typedef struct _ProtonPlusModelsSteamProfile ProtonPlusModelsSteamProfile;
typedef struct _ProtonPlusModelsSteamProfileClass ProtonPlusModelsSteamProfileClass;
typedef void (*ProtonPlusWidgetsGamesBoxload_steam_profile_func) (ProtonPlusModelsSteamProfile* profile, gpointer user_data);
#define _g_free0(var) (var = (g_free (var), NULL))

#define PROTON_PLUS_WIDGETS_TYPE_GAME_ROW (proton_plus_widgets_game_row_get_type ())
#define PROTON_PLUS_WIDGETS_GAME_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_GAME_ROW, ProtonPlusWidgetsGameRow))
#define PROTON_PLUS_WIDGETS_GAME_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_GAME_ROW, ProtonPlusWidgetsGameRowClass))
#define PROTON_PLUS_WIDGETS_IS_GAME_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_GAME_ROW))
#define PROTON_PLUS_WIDGETS_IS_GAME_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_GAME_ROW))
#define PROTON_PLUS_WIDGETS_GAME_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_GAME_ROW, ProtonPlusWidgetsGameRowClass))

typedef struct _ProtonPlusWidgetsGameRow ProtonPlusWidgetsGameRow;
typedef struct _ProtonPlusWidgetsGameRowClass ProtonPlusWidgetsGameRowClass;

#define PROTON_PLUS_WIDGETS_TYPE_WINDOW (proton_plus_widgets_window_get_type ())
#define PROTON_PLUS_WIDGETS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_WINDOW, ProtonPlusWidgetsWindow))
#define PROTON_PLUS_WIDGETS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_WINDOW, ProtonPlusWidgetsWindowClass))
#define PROTON_PLUS_WIDGETS_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_WINDOW))
#define PROTON_PLUS_WIDGETS_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_WINDOW))
#define PROTON_PLUS_WIDGETS_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_WINDOW, ProtonPlusWidgetsWindowClass))

typedef struct _ProtonPlusWidgetsWindow ProtonPlusWidgetsWindow;
typedef struct _ProtonPlusWidgetsWindowClass ProtonPlusWidgetsWindowClass;
typedef struct _ProtonPlusWidgetsWindowPrivate ProtonPlusWidgetsWindowPrivate;

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_VIEW (proton_plus_widgets_launch_options_view_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_VIEW, ProtonPlusWidgetsLaunchOptionsView))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_VIEW, ProtonPlusWidgetsLaunchOptionsViewClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTIONS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_VIEW))
#define PROTON_PLUS_WIDGETS_IS_LAUNCH_OPTIONS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_VIEW))
#define PROTON_PLUS_WIDGETS_LAUNCH_OPTIONS_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCH_OPTIONS_VIEW, ProtonPlusWidgetsLaunchOptionsViewClass))

typedef struct _ProtonPlusWidgetsLaunchOptionsView ProtonPlusWidgetsLaunchOptionsView;
typedef struct _ProtonPlusWidgetsLaunchOptionsViewClass ProtonPlusWidgetsLaunchOptionsViewClass;

#define PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_VIEW (proton_plus_widgets_mass_edit_view_get_type ())
#define PROTON_PLUS_WIDGETS_MASS_EDIT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_VIEW, ProtonPlusWidgetsMassEditView))
#define PROTON_PLUS_WIDGETS_MASS_EDIT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_VIEW, ProtonPlusWidgetsMassEditViewClass))
#define PROTON_PLUS_WIDGETS_IS_MASS_EDIT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_VIEW))
#define PROTON_PLUS_WIDGETS_IS_MASS_EDIT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_VIEW))
#define PROTON_PLUS_WIDGETS_MASS_EDIT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_MASS_EDIT_VIEW, ProtonPlusWidgetsMassEditViewClass))

typedef struct _ProtonPlusWidgetsMassEditView ProtonPlusWidgetsMassEditView;
typedef struct _ProtonPlusWidgetsMassEditViewClass ProtonPlusWidgetsMassEditViewClass;

#define PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_VIEW (proton_plus_widgets_default_tool_view_get_type ())
#define PROTON_PLUS_WIDGETS_DEFAULT_TOOL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_VIEW, ProtonPlusWidgetsDefaultToolView))
#define PROTON_PLUS_WIDGETS_DEFAULT_TOOL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_VIEW, ProtonPlusWidgetsDefaultToolViewClass))
#define PROTON_PLUS_WIDGETS_IS_DEFAULT_TOOL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_VIEW))
#define PROTON_PLUS_WIDGETS_IS_DEFAULT_TOOL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_VIEW))
#define PROTON_PLUS_WIDGETS_DEFAULT_TOOL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_DEFAULT_TOOL_VIEW, ProtonPlusWidgetsDefaultToolViewClass))

typedef struct _ProtonPlusWidgetsDefaultToolView ProtonPlusWidgetsDefaultToolView;
typedef struct _ProtonPlusWidgetsDefaultToolViewClass ProtonPlusWidgetsDefaultToolViewClass;
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define PROTON_PLUS_WIDGETS_TYPE_PROFILE_DIALOG (proton_plus_widgets_profile_dialog_get_type ())
#define PROTON_PLUS_WIDGETS_PROFILE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_PROFILE_DIALOG, ProtonPlusWidgetsProfileDialog))
#define PROTON_PLUS_WIDGETS_PROFILE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_PROFILE_DIALOG, ProtonPlusWidgetsProfileDialogClass))
#define PROTON_PLUS_WIDGETS_IS_PROFILE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_PROFILE_DIALOG))
#define PROTON_PLUS_WIDGETS_IS_PROFILE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_PROFILE_DIALOG))
#define PROTON_PLUS_WIDGETS_PROFILE_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_PROFILE_DIALOG, ProtonPlusWidgetsProfileDialogClass))

typedef struct _ProtonPlusWidgetsProfileDialog ProtonPlusWidgetsProfileDialog;
typedef struct _ProtonPlusWidgetsProfileDialogClass ProtonPlusWidgetsProfileDialogClass;

struct _ProtonPlusWidgetsGamesBox {
	GtkBox parent_instance;
	ProtonPlusWidgetsGamesBoxPrivate * priv;
};

struct _ProtonPlusWidgetsGamesBoxClass {
	GtkBoxClass parent_class;
};

struct _ProtonPlusWidgetsGamesBoxPrivate {
	gboolean _active;
	gboolean _error;
	gboolean _invalid;
	gboolean _show_search;
	ProtonPlusModelsLauncher* launcher;
	GtkImage* image;
	AdwStatusPage* status_page;
	ProtonPlusWidgetsShortcutButton* shortcut_button;
	ProtonPlusWidgetsMassEditButton* mass_edit_button;
	ProtonPlusWidgetsDefaultToolButton* default_tool_button;
	ProtonPlusWidgetsSwitchProfileButton* switch_profile_button;
	ProtonPlusWidgetsSelectButton* select_button;
	ProtonPlusWidgetsUnselectButton* unselect_button;
	AdwButtonContent* search_button_content;
	GtkButton* search_button;
	GtkFlowBox* flow_box;
	GtkSearchEntry* search_entry;
	GtkLabel* name_label;
	GtkLabel* prefix_label;
	GtkLabel* compatibility_tool_label;
	GtkLabel* other_label;
	GtkBox* header_box;
	GtkBox* headered_list_box;
	GtkBox* games_page_box;
	GtkStack* content_stack;
	GtkScrolledWindow* scrolled_window;
	GtkListBox* game_list_box;
	GtkLabel* warning_label;
	GtkSpinner* spinner;
	GtkOverlay* overlay;
	GListStore* model;
	GtkPropertyExpression* expression;
};

struct _ProtonPlusModelsLauncher {
	GObject parent_instance;
	ProtonPlusModelsLauncherPrivate * priv;
	gchar* title;
	gchar* icon_path;
	gchar* directory;
	gboolean installed;
	gboolean has_library_support;
	GList* games;
	GeeArrayList* compatibility_tools;
	ProtonPlusModelsGroup** groups;
	gint groups_length1;
	ProtonPlusModelsLauncherInstallationTypes installation_type;
};

struct _ProtonPlusModelsLauncherClass {
	GObjectClass parent_class;
	void (*load_game_library) (ProtonPlusModelsLauncher* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*load_game_library_finish) (ProtonPlusModelsLauncher* self, GAsyncResult* _res_);
	gint (*get_compatibility_tool_usage_count) (ProtonPlusModelsLauncher* self, const gchar* compatibility_tool_name);
};

struct _ProtonPlusModelsLaunchersSteam {
	ProtonPlusModelsLauncher parent_instance;
	ProtonPlusModelsLaunchersSteamPrivate * priv;
	GList* profiles;
	GHashTable* compatibility_tool_hashtable;
};

struct _ProtonPlusModelsLaunchersSteamClass {
	ProtonPlusModelsLauncherClass parent_class;
};

struct _ProtonPlusWidgetsWindow {
	AdwApplicationWindow parent_instance;
	ProtonPlusWidgetsWindowPrivate * priv;
	GList* launchers;
	ProtonPlusWidgetsLaunchOptionsView* launch_options_view;
	ProtonPlusWidgetsMassEditView* mass_edit_view;
	ProtonPlusWidgetsDefaultToolView* default_tool_view;
};

struct _ProtonPlusWidgetsWindowClass {
	AdwApplicationWindowClass parent_class;
};

static gint ProtonPlusWidgetsGamesBox_private_offset;
static gpointer proton_plus_widgets_games_box_parent_class = NULL;
VALA_EXTERN ProtonPlusWidgetsWindow* proton_plus_widgets_application_window;
VALA_EXTERN GSettings* proton_plus_globals_SETTINGS;

VALA_EXTERN GType proton_plus_widgets_games_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsGamesBox, g_object_unref)
VALA_EXTERN GType proton_plus_models_launcher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsLauncher, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_shortcut_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsShortcutButton, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_mass_edit_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsMassEditButton, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_default_tool_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsDefaultToolButton, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_switch_profile_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsSwitchProfileButton, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_select_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsSelectButton, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_unselect_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsUnselectButton, g_object_unref)
VALA_EXTERN void proton_plus_widgets_games_box_set_selected_launcher (ProtonPlusWidgetsGamesBox* self,
                                                          ProtonPlusModelsLauncher* launcher);
VALA_EXTERN GType proton_plus_models_game_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsGame, g_object_unref)
VALA_EXTERN GType proton_plus_models_simple_runner_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsSimpleRunner, g_object_unref)
VALA_EXTERN GType proton_plus_models_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsGroup, g_object_unref)
VALA_EXTERN GType proton_plus_models_launcher_installation_types_get_type (void) G_GNUC_CONST ;
static gboolean proton_plus_widgets_games_box_get_invalid (ProtonPlusWidgetsGamesBox* self);
static void proton_plus_widgets_games_box_show_normal (ProtonPlusWidgetsGamesBox* self);
static void proton_plus_widgets_games_box_set_invalid (ProtonPlusWidgetsGamesBox* self,
                                                gboolean value);
VALA_EXTERN GType proton_plus_models_launchers_steam_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsLaunchersSteam, g_object_unref)
VALA_EXTERN void proton_plus_widgets_shortcut_button_reset (ProtonPlusWidgetsShortcutButton* self);
VALA_EXTERN void proton_plus_widgets_default_tool_button_load (ProtonPlusWidgetsDefaultToolButton* self,
                                                   ProtonPlusModelsLaunchersSteam* launcher);
VALA_EXTERN GType proton_plus_models_steam_profile_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsSteamProfile, g_object_unref)
VALA_EXTERN void proton_plus_widgets_switch_profile_button_load (ProtonPlusWidgetsSwitchProfileButton* self,
                                                     ProtonPlusModelsLaunchersSteam* launcher,
                                                     ProtonPlusWidgetsGamesBoxload_steam_profile_func load_steam_profile,
                                                     gpointer load_steam_profile_target,
                                                     GtkListBox* game_list_box);
static void proton_plus_widgets_games_box_load_steam_profile (ProtonPlusWidgetsGamesBox* self,
                                                       ProtonPlusModelsSteamProfile* profile);
static void _proton_plus_widgets_games_box_load_steam_profile_protonpluswidgetsgamesboxload_steam_profile_func (ProtonPlusModelsSteamProfile* profile,
                                                                                                         gpointer self);
static void proton_plus_widgets_games_box_load_games (ProtonPlusWidgetsGamesBox* self);
static void proton_plus_widgets_games_box_show_status_box (ProtonPlusWidgetsGamesBox* self,
                                                    const gchar* icon,
                                                    const gchar* title,
                                                    const gchar* description,
                                                    gboolean is_image);
static void proton_plus_widgets_games_box_set_error (ProtonPlusWidgetsGamesBox* self,
                                              gboolean value);
VALA_EXTERN ProtonPlusModelsSimpleRunner* proton_plus_models_simple_runner_new (const gchar* display_title,
                                                                    const gchar* internal_title);
VALA_EXTERN ProtonPlusModelsSimpleRunner* proton_plus_models_simple_runner_construct (GType object_type,
                                                                          const gchar* display_title,
                                                                          const gchar* internal_title);
static gboolean proton_plus_widgets_games_box_get_show_search (ProtonPlusWidgetsGamesBox* self);
VALA_EXTERN const gchar* proton_plus_models_game_get_name (ProtonPlusModelsGame* self);
VALA_EXTERN GType proton_plus_widgets_game_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsGameRow, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsGameRow* proton_plus_widgets_game_row_new (ProtonPlusModelsGame* game,
                                                            GListStore* model,
                                                            GtkPropertyExpression* expression);
VALA_EXTERN ProtonPlusWidgetsGameRow* proton_plus_widgets_game_row_construct (GType object_type,
                                                                  ProtonPlusModelsGame* game,
                                                                  GListStore* model,
                                                                  GtkPropertyExpression* expression);
static void proton_plus_widgets_games_box_open_launch_options (ProtonPlusWidgetsGamesBox* self,
                                                        ProtonPlusWidgetsGameRow* row);
static void _proton_plus_widgets_games_box_open_launch_options_proton_plus_widgets_game_row_launch_options_requested (ProtonPlusWidgetsGameRow* _sender,
                                                                                                               ProtonPlusWidgetsGameRow* row,
                                                                                                               gpointer self);
static void proton_plus_widgets_games_box_name_label_clicked (ProtonPlusWidgetsGamesBox* self);
VALA_EXTERN void proton_plus_widgets_shortcut_button_load (ProtonPlusWidgetsShortcutButton* self,
                                               ProtonPlusModelsSteamProfile* profile);
VALA_EXTERN void proton_plus_models_launchers_steam_switch_profile (ProtonPlusModelsLaunchersSteam* self,
                                                        ProtonPlusModelsSteamProfile* profile,
                                                        GAsyncReadyCallback _callback_,
                                                        gpointer _user_data_);
VALA_EXTERN void proton_plus_models_launchers_steam_switch_profile_finish (ProtonPlusModelsLaunchersSteam* self,
                                                               GAsyncResult* _res_);
static void __lambda40_ (ProtonPlusWidgetsGamesBox* self,
                  GObject* obj,
                  GAsyncResult* res);
static void ___lambda40__gasync_ready_callback (GObject* source_object,
                                         GAsyncResult* res,
                                         gpointer self);
static void proton_plus_widgets_games_box_game_list_box_row_activated (ProtonPlusWidgetsGamesBox* self,
                                                                GtkListBoxRow* row);
VALA_EXTERN gboolean proton_plus_widgets_game_row_get_selected (ProtonPlusWidgetsGameRow* self);
VALA_EXTERN void proton_plus_widgets_game_row_set_selected (ProtonPlusWidgetsGameRow* self,
                                                gboolean value);
static gint __lambda43_ (ProtonPlusWidgetsGamesBox* self,
                  GtkListBoxRow* row1,
                  GtkListBoxRow* row2);
VALA_EXTERN ProtonPlusModelsGame* proton_plus_widgets_game_row_get_game (ProtonPlusWidgetsGameRow* self);
static gint ___lambda43__gtk_list_box_sort_func (GtkListBoxRow* row1,
                                          GtkListBoxRow* row2,
                                          gpointer self);
static void proton_plus_widgets_games_box_compatibility_tool_label_clicked (ProtonPlusWidgetsGamesBox* self);
static gint __lambda44_ (ProtonPlusWidgetsGamesBox* self,
                  GtkListBoxRow* row1,
                  GtkListBoxRow* row2);
VALA_EXTERN const gchar* proton_plus_models_game_get_compatibility_tool (ProtonPlusModelsGame* self);
static gint ___lambda44__gtk_list_box_sort_func (GtkListBoxRow* row1,
                                          GtkListBoxRow* row2,
                                          gpointer self);
static void proton_plus_widgets_games_box_search_button_clicked (ProtonPlusWidgetsGamesBox* self);
static void proton_plus_widgets_games_box_set_show_search (ProtonPlusWidgetsGamesBox* self,
                                                    gboolean value);
VALA_EXTERN GType proton_plus_widgets_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsWindow, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_launch_options_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchOptionsView, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_mass_edit_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsMassEditView, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_default_tool_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsDefaultToolView, g_object_unref)
VALA_EXTERN void proton_plus_widgets_launch_options_view_load (ProtonPlusWidgetsLaunchOptionsView* self,
                                                   ProtonPlusWidgetsGameRow* row);
static GVariant* _variant_new3 (const gchar* value);
static void proton_plus_widgets_games_box_open_mass_edit (ProtonPlusWidgetsGamesBox* self,
                                                   ProtonPlusWidgetsGameRow** rows,
                                                   gint rows_length1);
VALA_EXTERN void proton_plus_widgets_mass_edit_view_load (ProtonPlusWidgetsMassEditView* self,
                                              ProtonPlusWidgetsGameRow** rows,
                                              gint rows_length1,
                                              GListStore* model,
                                              GtkPropertyExpression* expression);
static GVariant* _variant_new4 (const gchar* value);
static void proton_plus_widgets_games_box_open_default_tool (ProtonPlusWidgetsGamesBox* self,
                                                      ProtonPlusModelsLaunchersSteam* launcher);
VALA_EXTERN void proton_plus_widgets_default_tool_view_load (ProtonPlusWidgetsDefaultToolView* self,
                                                 ProtonPlusModelsLaunchersSteam* launcher);
static GVariant* _variant_new5 (const gchar* value);
VALA_EXTERN ProtonPlusWidgetsGamesBox* proton_plus_widgets_games_box_new (void);
VALA_EXTERN ProtonPlusWidgetsGamesBox* proton_plus_widgets_games_box_construct (GType object_type);
VALA_EXTERN gboolean proton_plus_widgets_games_box_get_active (ProtonPlusWidgetsGamesBox* self);
VALA_EXTERN void proton_plus_widgets_games_box_set_active (ProtonPlusWidgetsGamesBox* self,
                                               gboolean value);
static gboolean proton_plus_widgets_games_box_get_error (ProtonPlusWidgetsGamesBox* self);
static GObject * proton_plus_widgets_games_box_constructor (GType type,
                                                     guint n_construct_properties,
                                                     GObjectConstructParam * construct_properties);
static void _proton_plus_widgets_games_box_game_list_box_row_activated_gtk_list_box_row_activated (GtkListBox* _sender,
                                                                                            GtkListBoxRow* row,
                                                                                            gpointer self);
VALA_EXTERN ProtonPlusWidgetsShortcutButton* proton_plus_widgets_shortcut_button_new (void);
VALA_EXTERN ProtonPlusWidgetsShortcutButton* proton_plus_widgets_shortcut_button_construct (GType object_type);
VALA_EXTERN ProtonPlusWidgetsMassEditButton* proton_plus_widgets_mass_edit_button_new (GtkListBox* game_list_box);
VALA_EXTERN ProtonPlusWidgetsMassEditButton* proton_plus_widgets_mass_edit_button_construct (GType object_type,
                                                                                 GtkListBox* game_list_box);
static void _proton_plus_widgets_games_box_open_mass_edit_proton_plus_widgets_mass_edit_button_mass_edit_requested (ProtonPlusWidgetsMassEditButton* _sender,
                                                                                                             ProtonPlusWidgetsGameRow** rows,
                                                                                                             gint rows_length1,
                                                                                                             gpointer self);
VALA_EXTERN ProtonPlusWidgetsSelectButton* proton_plus_widgets_select_button_new (GtkListBox* game_list_box);
VALA_EXTERN ProtonPlusWidgetsSelectButton* proton_plus_widgets_select_button_construct (GType object_type,
                                                                            GtkListBox* game_list_box);
VALA_EXTERN ProtonPlusWidgetsUnselectButton* proton_plus_widgets_unselect_button_new (GtkListBox* game_list_box);
VALA_EXTERN ProtonPlusWidgetsUnselectButton* proton_plus_widgets_unselect_button_construct (GType object_type,
                                                                                GtkListBox* game_list_box);
VALA_EXTERN ProtonPlusWidgetsDefaultToolButton* proton_plus_widgets_default_tool_button_new (void);
VALA_EXTERN ProtonPlusWidgetsDefaultToolButton* proton_plus_widgets_default_tool_button_construct (GType object_type);
static void _proton_plus_widgets_games_box_open_default_tool_proton_plus_widgets_default_tool_button_default_tool_requested (ProtonPlusWidgetsDefaultToolButton* _sender,
                                                                                                                      ProtonPlusModelsLaunchersSteam* launcher,
                                                                                                                      gpointer self);
static void _proton_plus_widgets_games_box_search_button_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                              gpointer self);
VALA_EXTERN ProtonPlusWidgetsSwitchProfileButton* proton_plus_widgets_switch_profile_button_new (void);
VALA_EXTERN ProtonPlusWidgetsSwitchProfileButton* proton_plus_widgets_switch_profile_button_construct (GType object_type);
static void _proton_plus_widgets_games_box_load_games_gtk_editable_changed (GtkEditable* _sender,
                                                                     gpointer self);
static void _proton_plus_widgets_games_box_name_label_clicked_gtk_gesture_click_pressed (GtkGestureClick* _sender,
                                                                                  gint n_press,
                                                                                  gdouble x,
                                                                                  gdouble y,
                                                                                  gpointer self);
static void _proton_plus_widgets_games_box_compatibility_tool_label_clicked_gtk_gesture_click_pressed (GtkGestureClick* _sender,
                                                                                                gint n_press,
                                                                                                gdouble x,
                                                                                                gdouble y,
                                                                                                gpointer self);
static void _proton_plus_widgets_games_box___lambda49_ (ProtonPlusWidgetsGamesBox* self);
VALA_EXTERN const gchar* proton_plus_models_steam_profile_get_steam_id (ProtonPlusModelsSteamProfile* self);
VALA_EXTERN GType proton_plus_widgets_profile_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsProfileDialog, g_object_unref)
VALA_EXTERN ProtonPlusWidgetsProfileDialog* proton_plus_widgets_profile_dialog_new (ProtonPlusModelsLaunchersSteam* launcher,
                                                                        ProtonPlusWidgetsGamesBoxload_steam_profile_func load_steam_profile_func,
                                                                        gpointer load_steam_profile_func_target);
VALA_EXTERN ProtonPlusWidgetsProfileDialog* proton_plus_widgets_profile_dialog_construct (GType object_type,
                                                                              ProtonPlusModelsLaunchersSteam* launcher,
                                                                              ProtonPlusWidgetsGamesBoxload_steam_profile_func load_steam_profile_func,
                                                                              gpointer load_steam_profile_func_target);
static void __proton_plus_widgets_games_box___lambda49__g_object_notify (GObject* _sender,
                                                                  GParamSpec* pspec,
                                                                  gpointer self);
static void proton_plus_widgets_games_box_finalize (GObject * obj);
static GType proton_plus_widgets_games_box_get_type_once (void);
static void _vala_proton_plus_widgets_games_box_get_property (GObject * object,
                                                       guint property_id,
                                                       GValue * value,
                                                       GParamSpec * pspec);
static void _vala_proton_plus_widgets_games_box_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 inline gpointer
proton_plus_widgets_games_box_get_instance_private (ProtonPlusWidgetsGamesBox* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsGamesBox_private_offset);
}

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

static void
_proton_plus_widgets_games_box_load_steam_profile_protonpluswidgetsgamesboxload_steam_profile_func (ProtonPlusModelsSteamProfile* profile,
                                                                                                    gpointer self)
{
	proton_plus_widgets_games_box_load_steam_profile ((ProtonPlusWidgetsGamesBox*) self, profile);
}

void
proton_plus_widgets_games_box_set_selected_launcher (ProtonPlusWidgetsGamesBox* self,
                                                     ProtonPlusModelsLauncher* launcher)
{
	ProtonPlusModelsLauncher* _tmp0_;
	ProtonPlusWidgetsShortcutButton* _tmp1_;
	GtkLabel* _tmp2_;
	ProtonPlusWidgetsSwitchProfileButton* _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (launcher != NULL);
	_tmp0_ = _g_object_ref0 (launcher);
	_g_object_unref0 (self->priv->launcher);
	self->priv->launcher = _tmp0_;
	_tmp1_ = self->priv->shortcut_button;
	gtk_widget_set_visible ((GtkWidget*) _tmp1_, FALSE);
	_tmp2_ = self->priv->warning_label;
	gtk_widget_set_visible ((GtkWidget*) _tmp2_, FALSE);
	_tmp3_ = self->priv->switch_profile_button;
	gtk_widget_set_visible ((GtkWidget*) _tmp3_, FALSE);
	if (launcher->has_library_support) {
		gboolean _tmp4_;
		_tmp4_ = self->priv->_invalid;
		if (_tmp4_) {
			proton_plus_widgets_games_box_show_normal (self);
			proton_plus_widgets_games_box_set_invalid (self, FALSE);
		}
		if (PROTON_PLUS_MODELS_LAUNCHERS_IS_STEAM (launcher)) {
			ProtonPlusModelsLaunchersSteam* steam_launcher = NULL;
			ProtonPlusModelsLaunchersSteam* _tmp5_;
			ProtonPlusWidgetsShortcutButton* _tmp6_;
			ProtonPlusWidgetsShortcutButton* _tmp7_;
			GtkLabel* _tmp8_;
			ProtonPlusWidgetsDefaultToolButton* _tmp9_;
			ProtonPlusModelsLaunchersSteam* _tmp10_;
			ProtonPlusModelsLaunchersSteam* _tmp11_;
			GList* _tmp12_;
			_tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (launcher, PROTON_PLUS_MODELS_LAUNCHERS_TYPE_STEAM, ProtonPlusModelsLaunchersSteam));
			steam_launcher = _tmp5_;
			_tmp6_ = self->priv->shortcut_button;
			proton_plus_widgets_shortcut_button_reset (_tmp6_);
			_tmp7_ = self->priv->shortcut_button;
			gtk_widget_set_visible ((GtkWidget*) _tmp7_, TRUE);
			_tmp8_ = self->priv->warning_label;
			gtk_widget_set_visible ((GtkWidget*) _tmp8_, TRUE);
			_tmp9_ = self->priv->default_tool_button;
			_tmp10_ = steam_launcher;
			proton_plus_widgets_default_tool_button_load (_tmp9_, _tmp10_);
			_tmp11_ = steam_launcher;
			_tmp12_ = _tmp11_->profiles;
			if (g_list_length (_tmp12_) > ((guint) 1)) {
				ProtonPlusWidgetsSwitchProfileButton* _tmp13_;
				ProtonPlusWidgetsSwitchProfileButton* _tmp14_;
				ProtonPlusModelsLaunchersSteam* _tmp15_;
				GtkListBox* _tmp16_;
				_tmp13_ = self->priv->switch_profile_button;
				gtk_widget_set_visible ((GtkWidget*) _tmp13_, TRUE);
				_tmp14_ = self->priv->switch_profile_button;
				_tmp15_ = steam_launcher;
				_tmp16_ = self->priv->game_list_box;
				proton_plus_widgets_switch_profile_button_load (_tmp14_, _tmp15_, _proton_plus_widgets_games_box_load_steam_profile_protonpluswidgetsgamesboxload_steam_profile_func, self, _tmp16_);
			}
			g_object_notify ((GObject*) self, "active");
			_g_object_unref0 (steam_launcher);
		} else {
			proton_plus_widgets_games_box_load_games (self);
		}
	} else {
		const gchar* _tmp17_;
		const gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
		proton_plus_widgets_games_box_set_invalid (self, TRUE);
		_tmp17_ = launcher->icon_path;
		_tmp18_ = launcher->title;
		_tmp19_ = g_strdup_printf (_ ("%s is currently not supported."), _tmp18_);
		_tmp20_ = _tmp19_;
		_tmp21_ = g_strdup_printf ("%s\n%s", _tmp20_, _ ("If you want me to speed up the development make sure to show your supp" \
"ort!"));
		_tmp22_ = _tmp21_;
		proton_plus_widgets_games_box_show_status_box (self, _tmp17_, _ ("Unsupported launcher"), _tmp22_, TRUE);
		_g_free0 (_tmp22_);
		_g_free0 (_tmp20_);
	}
}

static void
proton_plus_widgets_games_box_show_normal (ProtonPlusWidgetsGamesBox* self)
{
	GtkFlowBox* _tmp0_;
	GtkBox* _tmp1_;
	AdwStatusPage* _tmp2_;
	g_return_if_fail (self != NULL);
	proton_plus_widgets_games_box_set_error (self, FALSE);
	_tmp0_ = self->priv->flow_box;
	gtk_widget_set_visible ((GtkWidget*) _tmp0_, TRUE);
	_tmp1_ = self->priv->headered_list_box;
	gtk_widget_set_visible ((GtkWidget*) _tmp1_, TRUE);
	_tmp2_ = self->priv->status_page;
	gtk_widget_set_visible ((GtkWidget*) _tmp2_, FALSE);
}

static void
proton_plus_widgets_games_box_show_status_box (ProtonPlusWidgetsGamesBox* self,
                                               const gchar* icon,
                                               const gchar* title,
                                               const gchar* description,
                                               gboolean is_image)
{
	GtkFlowBox* _tmp0_;
	GtkBox* _tmp1_;
	GtkLabel* _tmp2_;
	AdwStatusPage* _tmp5_;
	AdwStatusPage* _tmp6_;
	AdwStatusPage* _tmp7_;
	AdwStatusPage* _tmp8_;
	AdwStatusPage* _tmp9_;
	GtkImage* _tmp10_;
	GdkPaintable* _tmp11_;
	AdwStatusPage* _tmp12_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (icon != NULL);
	g_return_if_fail (title != NULL);
	g_return_if_fail (description != NULL);
	_tmp0_ = self->priv->flow_box;
	gtk_widget_set_visible ((GtkWidget*) _tmp0_, FALSE);
	_tmp1_ = self->priv->headered_list_box;
	gtk_widget_set_visible ((GtkWidget*) _tmp1_, FALSE);
	_tmp2_ = self->priv->warning_label;
	gtk_widget_set_visible ((GtkWidget*) _tmp2_, FALSE);
	if (is_image) {
		GtkImage* _tmp3_;
		_tmp3_ = self->priv->image;
		gtk_image_set_from_resource (_tmp3_, icon);
	} else {
		GtkImage* _tmp4_;
		_tmp4_ = self->priv->image;
		gtk_image_set_from_icon_name (_tmp4_, icon);
	}
	_tmp5_ = self->priv->status_page;
	gtk_widget_set_vexpand ((GtkWidget*) _tmp5_, TRUE);
	_tmp6_ = self->priv->status_page;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp6_, TRUE);
	_tmp7_ = self->priv->status_page;
	adw_status_page_set_title (_tmp7_, title);
	_tmp8_ = self->priv->status_page;
	adw_status_page_set_description (_tmp8_, description);
	_tmp9_ = self->priv->status_page;
	_tmp10_ = self->priv->image;
	_tmp11_ = gtk_image_get_paintable (_tmp10_);
	adw_status_page_set_paintable (_tmp9_, _tmp11_);
	_tmp12_ = self->priv->status_page;
	gtk_widget_set_visible ((GtkWidget*) _tmp12_, TRUE);
}

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

static void
_proton_plus_widgets_games_box_open_launch_options_proton_plus_widgets_game_row_launch_options_requested (ProtonPlusWidgetsGameRow* _sender,
                                                                                                          ProtonPlusWidgetsGameRow* row,
                                                                                                          gpointer self)
{
	proton_plus_widgets_games_box_open_launch_options ((ProtonPlusWidgetsGamesBox*) self, row);
}

static void
proton_plus_widgets_games_box_load_games (ProtonPlusWidgetsGamesBox* self)
{
	GtkSpinner* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	GtkListBox* _tmp4_;
	GtkOverlay* _tmp5_;
	GtkSpinner* _tmp6_;
	GListStore* _tmp7_;
	GListStore* _tmp8_;
	ProtonPlusModelsSimpleRunner* _tmp9_;
	ProtonPlusModelsSimpleRunner* _tmp10_;
	GtkPropertyExpression* _tmp22_;
	ProtonPlusModelsLauncher* _tmp23_;
	GList* _tmp24_;
	GtkOverlay* _tmp44_;
	GtkSpinner* _tmp45_;
	GtkSpinner* _tmp46_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->spinner;
	_tmp1_ = gtk_spinner_get_spinning (_tmp0_);
	_tmp2_ = _tmp1_;
	if (!_tmp2_) {
		GtkSpinner* _tmp3_;
		_tmp3_ = self->priv->spinner;
		gtk_spinner_start (_tmp3_);
	}
	_tmp4_ = self->priv->game_list_box;
	gtk_list_box_remove_all (_tmp4_);
	_tmp5_ = self->priv->overlay;
	_tmp6_ = self->priv->spinner;
	gtk_overlay_add_overlay (_tmp5_, (GtkWidget*) _tmp6_);
	_tmp7_ = g_list_store_new (PROTON_PLUS_MODELS_TYPE_SIMPLE_RUNNER);
	_g_object_unref0 (self->priv->model);
	self->priv->model = _tmp7_;
	_tmp8_ = self->priv->model;
	_tmp9_ = proton_plus_models_simple_runner_new (_ ("Undefined"), _ ("Undefined"));
	_tmp10_ = _tmp9_;
	g_list_store_append (_tmp8_, (GObject*) _tmp10_);
	_g_object_unref0 (_tmp10_);
	{
		GeeArrayList* _ct_list = NULL;
		ProtonPlusModelsLauncher* _tmp11_;
		GeeArrayList* _tmp12_;
		gint _ct_size = 0;
		GeeArrayList* _tmp13_;
		gint _tmp14_;
		gint _tmp15_;
		gint _ct_index = 0;
		_tmp11_ = self->priv->launcher;
		_tmp12_ = _tmp11_->compatibility_tools;
		_ct_list = _tmp12_;
		_tmp13_ = _ct_list;
		_tmp14_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp13_);
		_tmp15_ = _tmp14_;
		_ct_size = _tmp15_;
		_ct_index = -1;
		while (TRUE) {
			gint _tmp16_;
			gint _tmp17_;
			ProtonPlusModelsSimpleRunner* ct = NULL;
			GeeArrayList* _tmp18_;
			gpointer _tmp19_;
			GListStore* _tmp20_;
			ProtonPlusModelsSimpleRunner* _tmp21_;
			_ct_index = _ct_index + 1;
			_tmp16_ = _ct_index;
			_tmp17_ = _ct_size;
			if (!(_tmp16_ < _tmp17_)) {
				break;
			}
			_tmp18_ = _ct_list;
			_tmp19_ = gee_abstract_list_get ((GeeAbstractList*) _tmp18_, _ct_index);
			ct = (ProtonPlusModelsSimpleRunner*) _tmp19_;
			_tmp20_ = self->priv->model;
			_tmp21_ = ct;
			g_list_store_append (_tmp20_, (GObject*) _tmp21_);
			_g_object_unref0 (ct);
		}
	}
	_tmp22_ = (GtkPropertyExpression*) gtk_property_expression_new (PROTON_PLUS_MODELS_TYPE_SIMPLE_RUNNER, NULL, "display_title");
	_gtk_expression_unref0 (self->priv->expression);
	self->priv->expression = _tmp22_;
	_tmp23_ = self->priv->launcher;
	_tmp24_ = _tmp23_->games;
	{
		GList* game_collection = NULL;
		GList* game_it = NULL;
		game_collection = _tmp24_;
		for (game_it = game_collection; game_it != NULL; game_it = game_it->next) {
			ProtonPlusModelsGame* _tmp25_;
			ProtonPlusModelsGame* game = NULL;
			_tmp25_ = _g_object_ref0 ((ProtonPlusModelsGame*) game_it->data);
			game = _tmp25_;
			{
				gboolean _tmp26_ = FALSE;
				gboolean _tmp27_;
				ProtonPlusWidgetsGameRow* game_row = NULL;
				ProtonPlusModelsGame* _tmp37_;
				GListStore* _tmp38_;
				GtkPropertyExpression* _tmp39_;
				ProtonPlusWidgetsGameRow* _tmp40_;
				ProtonPlusWidgetsGameRow* _tmp41_;
				GtkListBox* _tmp42_;
				ProtonPlusWidgetsGameRow* _tmp43_;
				_tmp27_ = self->priv->_show_search;
				if (_tmp27_) {
					ProtonPlusModelsGame* _tmp28_;
					const gchar* _tmp29_;
					const gchar* _tmp30_;
					gchar* _tmp31_;
					gchar* _tmp32_;
					GtkSearchEntry* _tmp33_;
					const gchar* _tmp34_;
					gchar* _tmp35_;
					gchar* _tmp36_;
					_tmp28_ = game;
					_tmp29_ = proton_plus_models_game_get_name (_tmp28_);
					_tmp30_ = _tmp29_;
					_tmp31_ = g_utf8_strdown (_tmp30_, (gssize) -1);
					_tmp32_ = _tmp31_;
					_tmp33_ = self->priv->search_entry;
					_tmp34_ = gtk_editable_get_text ((GtkEditable*) _tmp33_);
					_tmp35_ = g_utf8_strdown (_tmp34_, (gssize) -1);
					_tmp36_ = _tmp35_;
					_tmp26_ = !string_contains (_tmp32_, _tmp36_);
					_g_free0 (_tmp36_);
					_g_free0 (_tmp32_);
				} else {
					_tmp26_ = FALSE;
				}
				if (_tmp26_) {
					_g_object_unref0 (game);
					continue;
				}
				_tmp37_ = game;
				_tmp38_ = self->priv->model;
				_tmp39_ = self->priv->expression;
				_tmp40_ = proton_plus_widgets_game_row_new (_tmp37_, _tmp38_, _tmp39_);
				g_object_ref_sink (_tmp40_);
				game_row = _tmp40_;
				_tmp41_ = game_row;
				g_signal_connect_object (_tmp41_, "launch-options-requested", (GCallback) _proton_plus_widgets_games_box_open_launch_options_proton_plus_widgets_game_row_launch_options_requested, self, 0);
				_tmp42_ = self->priv->game_list_box;
				_tmp43_ = game_row;
				gtk_list_box_append (_tmp42_, (GtkWidget*) _tmp43_);
				_g_object_unref0 (game_row);
				_g_object_unref0 (game);
			}
		}
	}
	proton_plus_widgets_games_box_name_label_clicked (self);
	_tmp44_ = self->priv->overlay;
	_tmp45_ = self->priv->spinner;
	gtk_overlay_remove_overlay (_tmp44_, (GtkWidget*) _tmp45_);
	_tmp46_ = self->priv->spinner;
	gtk_spinner_stop (_tmp46_);
}

static void
__lambda40_ (ProtonPlusWidgetsGamesBox* self,
             GObject* obj,
             GAsyncResult* res)
{
	g_return_if_fail (res != NULL);
	proton_plus_widgets_games_box_load_games (self);
}

static void
___lambda40__gasync_ready_callback (GObject* source_object,
                                    GAsyncResult* res,
                                    gpointer self)
{
	__lambda40_ ((ProtonPlusWidgetsGamesBox*) self, source_object, res);
	g_object_unref (self);
}

static void
proton_plus_widgets_games_box_load_steam_profile (ProtonPlusWidgetsGamesBox* self,
                                                  ProtonPlusModelsSteamProfile* profile)
{
	GtkSpinner* _tmp0_;
	ProtonPlusWidgetsShortcutButton* _tmp1_;
	ProtonPlusModelsLaunchersSteam* steam_launcher = NULL;
	ProtonPlusModelsLauncher* _tmp2_;
	ProtonPlusModelsLaunchersSteam* _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (profile != NULL);
	_tmp0_ = self->priv->spinner;
	gtk_spinner_start (_tmp0_);
	_tmp1_ = self->priv->shortcut_button;
	proton_plus_widgets_shortcut_button_load (_tmp1_, profile);
	_tmp2_ = self->priv->launcher;
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, PROTON_PLUS_MODELS_LAUNCHERS_TYPE_STEAM, ProtonPlusModelsLaunchersSteam));
	steam_launcher = _tmp3_;
	proton_plus_models_launchers_steam_switch_profile (steam_launcher, profile, ___lambda40__gasync_ready_callback, g_object_ref (self));
	_g_object_unref0 (steam_launcher);
}

static void
proton_plus_widgets_games_box_game_list_box_row_activated (ProtonPlusWidgetsGamesBox* self,
                                                           GtkListBoxRow* row)
{
	gboolean _tmp0_ = FALSE;
	ProtonPlusWidgetsGameRow* game_row = NULL;
	ProtonPlusWidgetsGameRow* _tmp1_;
	ProtonPlusWidgetsGameRow* _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_;
	g_return_if_fail (self != NULL);
	if (row == NULL) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = !PROTON_PLUS_WIDGETS_IS_GAME_ROW (row);
	}
	if (_tmp0_) {
		return;
	}
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (row, PROTON_PLUS_WIDGETS_TYPE_GAME_ROW, ProtonPlusWidgetsGameRow));
	game_row = _tmp1_;
	_tmp2_ = game_row;
	_tmp3_ = proton_plus_widgets_game_row_get_selected (_tmp2_);
	_tmp4_ = _tmp3_;
	if (_tmp4_) {
		ProtonPlusWidgetsGameRow* _tmp5_;
		GtkListBox* _tmp6_;
		ProtonPlusWidgetsGameRow* _tmp7_;
		_tmp5_ = game_row;
		proton_plus_widgets_game_row_set_selected (_tmp5_, FALSE);
		_tmp6_ = self->priv->game_list_box;
		_tmp7_ = game_row;
		gtk_list_box_unselect_row (_tmp6_, (GtkListBoxRow*) _tmp7_);
	} else {
		ProtonPlusWidgetsGameRow* _tmp8_;
		_tmp8_ = game_row;
		proton_plus_widgets_game_row_set_selected (_tmp8_, TRUE);
	}
	_g_object_unref0 (game_row);
}

static gint
__lambda43_ (ProtonPlusWidgetsGamesBox* self,
             GtkListBoxRow* row1,
             GtkListBoxRow* row2)
{
	gchar* name1 = NULL;
	ProtonPlusModelsGame* _tmp0_;
	ProtonPlusModelsGame* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* name2 = NULL;
	ProtonPlusModelsGame* _tmp5_;
	ProtonPlusModelsGame* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	GCompareFunc _tmp10_;
	gint result;
	g_return_val_if_fail (row1 != NULL, -1);
	g_return_val_if_fail (row2 != NULL, -1);
	_tmp0_ = proton_plus_widgets_game_row_get_game (G_TYPE_CHECK_INSTANCE_CAST (row1, PROTON_PLUS_WIDGETS_TYPE_GAME_ROW, ProtonPlusWidgetsGameRow));
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_models_game_get_name (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup (_tmp3_);
	name1 = _tmp4_;
	_tmp5_ = proton_plus_widgets_game_row_get_game (G_TYPE_CHECK_INSTANCE_CAST (row2, PROTON_PLUS_WIDGETS_TYPE_GAME_ROW, ProtonPlusWidgetsGameRow));
	_tmp6_ = _tmp5_;
	_tmp7_ = proton_plus_models_game_get_name (_tmp6_);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_strdup (_tmp8_);
	name2 = _tmp9_;
	_tmp10_ = ((GCompareFunc) g_strcmp0);
	result = _tmp10_ (name1, name2);
	_g_free0 (name2);
	_g_free0 (name1);
	return result;
}

static gint
___lambda43__gtk_list_box_sort_func (GtkListBoxRow* row1,
                                     GtkListBoxRow* row2,
                                     gpointer self)
{
	gint result;
	result = __lambda43_ ((ProtonPlusWidgetsGamesBox*) self, row1, row2);
	return result;
}

static void
proton_plus_widgets_games_box_name_label_clicked (ProtonPlusWidgetsGamesBox* self)
{
	GtkListBox* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->game_list_box;
	gtk_list_box_set_sort_func (_tmp0_, ___lambda43__gtk_list_box_sort_func, g_object_ref (self), g_object_unref);
}

static gint
__lambda44_ (ProtonPlusWidgetsGamesBox* self,
             GtkListBoxRow* row1,
             GtkListBoxRow* row2)
{
	gchar* name1 = NULL;
	ProtonPlusModelsGame* _tmp0_;
	ProtonPlusModelsGame* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* name2 = NULL;
	ProtonPlusModelsGame* _tmp5_;
	ProtonPlusModelsGame* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	const gchar* _tmp10_;
	const gchar* _tmp12_;
	GCompareFunc _tmp14_;
	const gchar* _tmp15_;
	const gchar* _tmp16_;
	gint result;
	g_return_val_if_fail (row1 != NULL, -1);
	g_return_val_if_fail (row2 != NULL, -1);
	_tmp0_ = proton_plus_widgets_game_row_get_game (G_TYPE_CHECK_INSTANCE_CAST (row1, PROTON_PLUS_WIDGETS_TYPE_GAME_ROW, ProtonPlusWidgetsGameRow));
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_models_game_get_compatibility_tool (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup (_tmp3_);
	name1 = _tmp4_;
	_tmp5_ = proton_plus_widgets_game_row_get_game (G_TYPE_CHECK_INSTANCE_CAST (row2, PROTON_PLUS_WIDGETS_TYPE_GAME_ROW, ProtonPlusWidgetsGameRow));
	_tmp6_ = _tmp5_;
	_tmp7_ = proton_plus_models_game_get_compatibility_tool (_tmp6_);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_strdup (_tmp8_);
	name2 = _tmp9_;
	_tmp10_ = name1;
	if (g_strcmp0 (_tmp10_, _ ("Undefined")) == 0) {
		gchar* _tmp11_;
		_tmp11_ = g_strdup ("zzzz");
		_g_free0 (name1);
		name1 = _tmp11_;
	}
	_tmp12_ = name2;
	if (g_strcmp0 (_tmp12_, _ ("Undefined")) == 0) {
		gchar* _tmp13_;
		_tmp13_ = g_strdup ("zzzz");
		_g_free0 (name2);
		name2 = _tmp13_;
	}
	_tmp14_ = ((GCompareFunc) g_strcmp0);
	_tmp15_ = name1;
	_tmp16_ = name2;
	result = _tmp14_ (_tmp15_, _tmp16_);
	_g_free0 (name2);
	_g_free0 (name1);
	return result;
}

static gint
___lambda44__gtk_list_box_sort_func (GtkListBoxRow* row1,
                                     GtkListBoxRow* row2,
                                     gpointer self)
{
	gint result;
	result = __lambda44_ ((ProtonPlusWidgetsGamesBox*) self, row1, row2);
	return result;
}

static void
proton_plus_widgets_games_box_compatibility_tool_label_clicked (ProtonPlusWidgetsGamesBox* self)
{
	GtkListBox* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->game_list_box;
	gtk_list_box_set_sort_func (_tmp0_, ___lambda44__gtk_list_box_sort_func, g_object_ref (self), g_object_unref);
}

static void
proton_plus_widgets_games_box_search_button_clicked (ProtonPlusWidgetsGamesBox* self)
{
	gboolean _tmp0_;
	const gchar* _tmp1_ = NULL;
	gboolean _tmp2_;
	AdwButtonContent* _tmp3_;
	GtkSearchEntry* _tmp4_;
	GtkSearchEntry* _tmp5_;
	gboolean _tmp6_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_show_search;
	proton_plus_widgets_games_box_set_show_search (self, !_tmp0_);
	_tmp2_ = self->priv->_show_search;
	if (_tmp2_) {
		_tmp1_ = _ ("Hide search");
	} else {
		_tmp1_ = _ ("Show search");
	}
	_tmp3_ = self->priv->search_button_content;
	adw_button_content_set_label (_tmp3_, _tmp1_);
	_tmp4_ = self->priv->search_entry;
	gtk_editable_set_text ((GtkEditable*) _tmp4_, "");
	_tmp5_ = self->priv->search_entry;
	_tmp6_ = self->priv->_show_search;
	gtk_widget_set_visible ((GtkWidget*) _tmp5_, _tmp6_);
}

static GVariant*
_variant_new3 (const gchar* value)
{
	return g_variant_ref_sink (g_variant_new_string (value));
}

static void
proton_plus_widgets_games_box_open_launch_options (ProtonPlusWidgetsGamesBox* self,
                                                   ProtonPlusWidgetsGameRow* row)
{
	ProtonPlusWidgetsWindow* _tmp0_;
	ProtonPlusWidgetsLaunchOptionsView* _tmp1_;
	GVariant* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (row != NULL);
	_tmp0_ = proton_plus_widgets_application_window;
	_tmp1_ = _tmp0_->launch_options_view;
	proton_plus_widgets_launch_options_view_load (_tmp1_, row);
	_tmp2_ = _variant_new3 ("launch-options");
	gtk_widget_activate_action_variant ((GtkWidget*) self, "win.set-selected-view", _tmp2_);
	_g_variant_unref0 (_tmp2_);
}

static GVariant*
_variant_new4 (const gchar* value)
{
	return g_variant_ref_sink (g_variant_new_string (value));
}

static void
proton_plus_widgets_games_box_open_mass_edit (ProtonPlusWidgetsGamesBox* self,
                                              ProtonPlusWidgetsGameRow** rows,
                                              gint rows_length1)
{
	ProtonPlusWidgetsWindow* _tmp0_;
	ProtonPlusWidgetsMassEditView* _tmp1_;
	GListStore* _tmp2_;
	GtkPropertyExpression* _tmp3_;
	GVariant* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = proton_plus_widgets_application_window;
	_tmp1_ = _tmp0_->mass_edit_view;
	_tmp2_ = self->priv->model;
	_tmp3_ = self->priv->expression;
	proton_plus_widgets_mass_edit_view_load (_tmp1_, rows, (gint) rows_length1, _tmp2_, _tmp3_);
	_tmp4_ = _variant_new4 ("mass-edit");
	gtk_widget_activate_action_variant ((GtkWidget*) self, "win.set-selected-view", _tmp4_);
	_g_variant_unref0 (_tmp4_);
}

static GVariant*
_variant_new5 (const gchar* value)
{
	return g_variant_ref_sink (g_variant_new_string (value));
}

static void
proton_plus_widgets_games_box_open_default_tool (ProtonPlusWidgetsGamesBox* self,
                                                 ProtonPlusModelsLaunchersSteam* launcher)
{
	ProtonPlusWidgetsWindow* _tmp0_;
	ProtonPlusWidgetsDefaultToolView* _tmp1_;
	GVariant* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (launcher != NULL);
	_tmp0_ = proton_plus_widgets_application_window;
	_tmp1_ = _tmp0_->default_tool_view;
	proton_plus_widgets_default_tool_view_load (_tmp1_, launcher);
	_tmp2_ = _variant_new5 ("default-tool");
	gtk_widget_activate_action_variant ((GtkWidget*) self, "win.set-selected-view", _tmp2_);
	_g_variant_unref0 (_tmp2_);
}

ProtonPlusWidgetsGamesBox*
proton_plus_widgets_games_box_construct (GType object_type)
{
	ProtonPlusWidgetsGamesBox * self = NULL;
	self = (ProtonPlusWidgetsGamesBox*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusWidgetsGamesBox*
proton_plus_widgets_games_box_new (void)
{
	return proton_plus_widgets_games_box_construct (PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX);
}

gboolean
proton_plus_widgets_games_box_get_active (ProtonPlusWidgetsGamesBox* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_active;
	return result;
}

void
proton_plus_widgets_games_box_set_active (ProtonPlusWidgetsGamesBox* self,
                                          gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_box_get_active (self);
	if (old_value != value) {
		self->priv->_active = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_box_properties[PROTON_PLUS_WIDGETS_GAMES_BOX_ACTIVE_PROPERTY]);
	}
}

static gboolean
proton_plus_widgets_games_box_get_error (ProtonPlusWidgetsGamesBox* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_error;
	return result;
}

static void
proton_plus_widgets_games_box_set_error (ProtonPlusWidgetsGamesBox* self,
                                         gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_error = value;
}

static gboolean
proton_plus_widgets_games_box_get_invalid (ProtonPlusWidgetsGamesBox* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_invalid;
	return result;
}

static void
proton_plus_widgets_games_box_set_invalid (ProtonPlusWidgetsGamesBox* self,
                                           gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_invalid = value;
}

static gboolean
proton_plus_widgets_games_box_get_show_search (ProtonPlusWidgetsGamesBox* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_show_search;
	return result;
}

static void
proton_plus_widgets_games_box_set_show_search (ProtonPlusWidgetsGamesBox* self,
                                               gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_show_search = value;
}

static void
_proton_plus_widgets_games_box_game_list_box_row_activated_gtk_list_box_row_activated (GtkListBox* _sender,
                                                                                       GtkListBoxRow* row,
                                                                                       gpointer self)
{
	proton_plus_widgets_games_box_game_list_box_row_activated ((ProtonPlusWidgetsGamesBox*) self, row);
}

static void
_proton_plus_widgets_games_box_open_mass_edit_proton_plus_widgets_mass_edit_button_mass_edit_requested (ProtonPlusWidgetsMassEditButton* _sender,
                                                                                                        ProtonPlusWidgetsGameRow** rows,
                                                                                                        gint rows_length1,
                                                                                                        gpointer self)
{
	proton_plus_widgets_games_box_open_mass_edit ((ProtonPlusWidgetsGamesBox*) self, rows, rows_length1);
}

static void
_proton_plus_widgets_games_box_open_default_tool_proton_plus_widgets_default_tool_button_default_tool_requested (ProtonPlusWidgetsDefaultToolButton* _sender,
                                                                                                                 ProtonPlusModelsLaunchersSteam* launcher,
                                                                                                                 gpointer self)
{
	proton_plus_widgets_games_box_open_default_tool ((ProtonPlusWidgetsGamesBox*) self, launcher);
}

static void
_proton_plus_widgets_games_box_search_button_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                         gpointer self)
{
	proton_plus_widgets_games_box_search_button_clicked ((ProtonPlusWidgetsGamesBox*) self);
}

static void
_proton_plus_widgets_games_box_load_games_gtk_editable_changed (GtkEditable* _sender,
                                                                gpointer self)
{
	proton_plus_widgets_games_box_load_games ((ProtonPlusWidgetsGamesBox*) self);
}

static void
_proton_plus_widgets_games_box_name_label_clicked_gtk_gesture_click_pressed (GtkGestureClick* _sender,
                                                                             gint n_press,
                                                                             gdouble x,
                                                                             gdouble y,
                                                                             gpointer self)
{
	proton_plus_widgets_games_box_name_label_clicked ((ProtonPlusWidgetsGamesBox*) self);
}

static void
_proton_plus_widgets_games_box_compatibility_tool_label_clicked_gtk_gesture_click_pressed (GtkGestureClick* _sender,
                                                                                           gint n_press,
                                                                                           gdouble x,
                                                                                           gdouble y,
                                                                                           gpointer self)
{
	proton_plus_widgets_games_box_compatibility_tool_label_clicked ((ProtonPlusWidgetsGamesBox*) self);
}

static void
_proton_plus_widgets_games_box___lambda49_ (ProtonPlusWidgetsGamesBox* self)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_;
	ProtonPlusModelsLaunchersSteam* steam_launcher = NULL;
	ProtonPlusModelsLauncher* _tmp5_;
	ProtonPlusModelsLaunchersSteam* _tmp6_;
	ProtonPlusModelsLaunchersSteam* _tmp7_;
	GList* _tmp8_;
	_tmp2_ = self->priv->_active;
	if (!_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		gboolean _tmp3_;
		_tmp3_ = self->priv->_error;
		_tmp1_ = _tmp3_;
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		ProtonPlusModelsLauncher* _tmp4_;
		_tmp4_ = self->priv->launcher;
		_tmp0_ = !PROTON_PLUS_MODELS_LAUNCHERS_IS_STEAM (_tmp4_);
	}
	if (_tmp0_) {
		return;
	}
	_tmp5_ = self->priv->launcher;
	_tmp6_ = _g_object_ref0 (PROTON_PLUS_MODELS_LAUNCHERS_IS_STEAM (_tmp5_) ? ((ProtonPlusModelsLaunchersSteam*) _tmp5_) : NULL);
	steam_launcher = _tmp6_;
	_tmp7_ = steam_launcher;
	_tmp8_ = _tmp7_->profiles;
	if (g_list_length (_tmp8_) == ((guint) 0)) {
		gchar* _tmp9_;
		gchar* _tmp10_;
		proton_plus_widgets_games_box_set_error (self, TRUE);
		_tmp9_ = g_strdup_printf ("%s\n%s", _ ("Make sure to connect yourself at least once on Steam."), _ ("If you think this is an issue, make sure to report this on GitHub."));
		_tmp10_ = _tmp9_;
		proton_plus_widgets_games_box_show_status_box (self, "bug-symbolic", _ ("No profile was found."), _tmp10_, FALSE);
		_g_free0 (_tmp10_);
	} else {
		gboolean _tmp11_ = FALSE;
		GSettings* _tmp12_;
		ProtonPlusModelsLaunchersSteam* _tmp24_;
		GList* _tmp25_;
		_tmp12_ = proton_plus_globals_SETTINGS;
		if (_tmp12_ != NULL) {
			GSettings* _tmp13_;
			_tmp13_ = proton_plus_globals_SETTINGS;
			_tmp11_ = g_settings_get_boolean (_tmp13_, "steam-remember-last-profile");
		} else {
			_tmp11_ = FALSE;
		}
		if (_tmp11_) {
			gchar* steam_id = NULL;
			GSettings* _tmp14_;
			gchar* _tmp15_;
			ProtonPlusModelsLaunchersSteam* _tmp16_;
			GList* _tmp17_;
			_tmp14_ = proton_plus_globals_SETTINGS;
			_tmp15_ = g_settings_get_string (_tmp14_, "steam-last-profile-id");
			steam_id = _tmp15_;
			_tmp16_ = steam_launcher;
			_tmp17_ = _tmp16_->profiles;
			{
				GList* profile_collection = NULL;
				GList* profile_it = NULL;
				profile_collection = _tmp17_;
				for (profile_it = profile_collection; profile_it != NULL; profile_it = profile_it->next) {
					ProtonPlusModelsSteamProfile* _tmp18_;
					ProtonPlusModelsSteamProfile* profile = NULL;
					_tmp18_ = _g_object_ref0 ((ProtonPlusModelsSteamProfile*) profile_it->data);
					profile = _tmp18_;
					{
						ProtonPlusModelsSteamProfile* _tmp19_;
						const gchar* _tmp20_;
						const gchar* _tmp21_;
						const gchar* _tmp22_;
						_tmp19_ = profile;
						_tmp20_ = proton_plus_models_steam_profile_get_steam_id (_tmp19_);
						_tmp21_ = _tmp20_;
						_tmp22_ = steam_id;
						if (g_strcmp0 (_tmp21_, _tmp22_) == 0) {
							ProtonPlusModelsSteamProfile* _tmp23_;
							_tmp23_ = profile;
							proton_plus_widgets_games_box_load_steam_profile (self, _tmp23_);
							_g_object_unref0 (profile);
							_g_free0 (steam_id);
							_g_object_unref0 (steam_launcher);
							return;
						}
						_g_object_unref0 (profile);
					}
				}
			}
			_g_free0 (steam_id);
		}
		_tmp24_ = steam_launcher;
		_tmp25_ = _tmp24_->profiles;
		if (g_list_length (_tmp25_) > ((guint) 1)) {
			GtkListBox* _tmp26_;
			ProtonPlusWidgetsProfileDialog* dialog = NULL;
			ProtonPlusModelsLaunchersSteam* _tmp27_;
			ProtonPlusWidgetsProfileDialog* _tmp28_;
			ProtonPlusWidgetsProfileDialog* _tmp29_;
			ProtonPlusWidgetsWindow* _tmp30_;
			_tmp26_ = self->priv->game_list_box;
			gtk_list_box_remove_all (_tmp26_);
			_tmp27_ = steam_launcher;
			_tmp28_ = proton_plus_widgets_profile_dialog_new (_tmp27_, _proton_plus_widgets_games_box_load_steam_profile_protonpluswidgetsgamesboxload_steam_profile_func, self);
			g_object_ref_sink (_tmp28_);
			dialog = _tmp28_;
			_tmp29_ = dialog;
			_tmp30_ = proton_plus_widgets_application_window;
			adw_dialog_present ((AdwDialog*) _tmp29_, (GtkWidget*) _tmp30_);
			_g_object_unref0 (dialog);
		} else {
			ProtonPlusModelsLaunchersSteam* _tmp31_;
			GList* _tmp32_;
			gconstpointer _tmp33_;
			_tmp31_ = steam_launcher;
			_tmp32_ = _tmp31_->profiles;
			_tmp33_ = g_list_nth_data (_tmp32_, (guint) 0);
			proton_plus_widgets_games_box_load_steam_profile (self, (ProtonPlusModelsSteamProfile*) _tmp33_);
		}
	}
	_g_object_unref0 (steam_launcher);
}

static void
__proton_plus_widgets_games_box___lambda49__g_object_notify (GObject* _sender,
                                                             GParamSpec* pspec,
                                                             gpointer self)
{
	_proton_plus_widgets_games_box___lambda49_ ((ProtonPlusWidgetsGamesBox*) self);
}

static GObject *
proton_plus_widgets_games_box_constructor (GType type,
                                           guint n_construct_properties,
                                           GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	ProtonPlusWidgetsGamesBox * self;
	GtkImage* _tmp0_;
	AdwStatusPage* _tmp1_;
	AdwStatusPage* _tmp2_;
	GtkListBox* _tmp3_;
	GtkListBox* _tmp4_;
	GtkListBox* _tmp5_;
	GtkListBox* _tmp6_;
	GtkListBox* _tmp7_;
	GtkSpinner* _tmp8_;
	GtkSpinner* _tmp9_;
	GtkSpinner* _tmp10_;
	GtkSpinner* _tmp11_;
	GtkOverlay* _tmp12_;
	GtkOverlay* _tmp13_;
	GtkListBox* _tmp14_;
	GtkScrolledWindow* _tmp15_;
	GtkScrolledWindow* _tmp16_;
	GtkScrolledWindow* _tmp17_;
	GtkOverlay* _tmp18_;
	GtkScrolledWindow* _tmp19_;
	GtkLabel* _tmp20_;
	GtkLabel* _tmp21_;
	ProtonPlusWidgetsShortcutButton* _tmp22_;
	GtkListBox* _tmp23_;
	ProtonPlusWidgetsMassEditButton* _tmp24_;
	ProtonPlusWidgetsMassEditButton* _tmp25_;
	GtkListBox* _tmp26_;
	ProtonPlusWidgetsSelectButton* _tmp27_;
	GtkListBox* _tmp28_;
	ProtonPlusWidgetsUnselectButton* _tmp29_;
	ProtonPlusWidgetsDefaultToolButton* _tmp30_;
	ProtonPlusWidgetsDefaultToolButton* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	AdwButtonContent* _tmp34_ = NULL;
	gchar* _tmp35_;
	gchar** _tmp36_;
	AdwButtonContent* _tmp37_;
	GtkWidget* _tmp38_;
	GtkButton* _tmp39_ = NULL;
	GtkButton* _tmp40_;
	ProtonPlusWidgetsSwitchProfileButton* _tmp41_;
	GtkFlowBox* _tmp42_;
	GtkFlowBox* _tmp43_;
	GtkFlowBox* _tmp44_;
	GtkFlowBox* _tmp45_;
	GtkFlowBox* _tmp46_;
	GtkFlowBox* _tmp47_;
	GtkFlowBox* _tmp48_;
	ProtonPlusWidgetsShortcutButton* _tmp49_;
	GtkFlowBox* _tmp50_;
	ProtonPlusWidgetsMassEditButton* _tmp51_;
	GtkFlowBox* _tmp52_;
	ProtonPlusWidgetsSelectButton* _tmp53_;
	GtkFlowBox* _tmp54_;
	ProtonPlusWidgetsUnselectButton* _tmp55_;
	GtkFlowBox* _tmp56_;
	ProtonPlusWidgetsDefaultToolButton* _tmp57_;
	GtkFlowBox* _tmp58_;
	GtkButton* _tmp59_;
	GtkFlowBox* _tmp60_;
	ProtonPlusWidgetsSwitchProfileButton* _tmp61_;
	GtkFlowBox* _tmp62_;
	gchar* _tmp63_;
	GtkSearchEntry* _tmp64_ = NULL;
	GtkSearchEntry* _tmp65_;
	GtkGestureClick* name_label_gesture = NULL;
	GtkGestureClick* _tmp66_;
	GtkGestureClick* _tmp67_;
	GtkLabel* _tmp68_;
	GtkLabel* _tmp69_;
	GtkLabel* _tmp70_;
	GtkGestureClick* _tmp71_;
	GtkEventController* _tmp72_;
	GtkLabel* _tmp73_;
	GtkLabel* _tmp74_;
	GtkLabel* _tmp75_;
	GtkGestureClick* compatibility_tool_label_gesture = NULL;
	GtkGestureClick* _tmp76_;
	GtkGestureClick* _tmp77_;
	GtkLabel* _tmp78_;
	GtkLabel* _tmp79_;
	GtkLabel* _tmp80_;
	GtkGestureClick* _tmp81_;
	GtkEventController* _tmp82_;
	GtkLabel* _tmp83_;
	GtkLabel* _tmp84_;
	GtkBox* _tmp85_;
	GtkBox* _tmp86_;
	GtkBox* _tmp87_;
	GtkBox* _tmp88_;
	GtkBox* _tmp89_;
	GtkLabel* _tmp90_;
	GtkBox* _tmp91_;
	GtkLabel* _tmp92_;
	GtkBox* _tmp93_;
	GtkLabel* _tmp94_;
	GtkBox* _tmp95_;
	GtkLabel* _tmp96_;
	GtkBox* _tmp97_;
	GtkBox* _tmp98_;
	GtkBox* _tmp99_;
	GtkBox* _tmp100_;
	GtkBox* _tmp101_;
	GtkBox* _tmp102_;
	GtkScrolledWindow* _tmp103_;
	GtkBox* _tmp104_;
	GtkBox* _tmp105_;
	GtkFlowBox* _tmp106_;
	GtkBox* _tmp107_;
	GtkSearchEntry* _tmp108_;
	GtkBox* _tmp109_;
	GtkBox* _tmp110_;
	GtkBox* _tmp111_;
	GtkLabel* _tmp112_;
	GtkBox* _tmp113_;
	AdwStatusPage* _tmp114_;
	AdwClamp* clamp = NULL;
	AdwClamp* _tmp115_;
	AdwClamp* _tmp116_;
	AdwClamp* _tmp117_;
	GtkBox* _tmp118_;
	AdwClamp* _tmp119_;
	parent_class = G_OBJECT_CLASS (proton_plus_widgets_games_box_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX, ProtonPlusWidgetsGamesBox);
	_tmp0_ = (GtkImage*) gtk_image_new ();
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->image);
	self->priv->image = _tmp0_;
	_tmp1_ = (AdwStatusPage*) adw_status_page_new ();
	g_object_ref_sink (_tmp1_);
	_g_object_unref0 (self->priv->status_page);
	self->priv->status_page = _tmp1_;
	_tmp2_ = self->priv->status_page;
	gtk_widget_set_visible ((GtkWidget*) _tmp2_, FALSE);
	_tmp3_ = (GtkListBox*) gtk_list_box_new ();
	g_object_ref_sink (_tmp3_);
	_g_object_unref0 (self->priv->game_list_box);
	self->priv->game_list_box = _tmp3_;
	_tmp4_ = self->priv->game_list_box;
	gtk_list_box_set_selection_mode (_tmp4_, GTK_SELECTION_MULTIPLE);
	_tmp5_ = self->priv->game_list_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp5_, "boxed-list");
	_tmp6_ = self->priv->game_list_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp6_, "list-content");
	_tmp7_ = self->priv->game_list_box;
	g_signal_connect_object (_tmp7_, "row-activated", (GCallback) _proton_plus_widgets_games_box_game_list_box_row_activated_gtk_list_box_row_activated, self, 0);
	_tmp8_ = (GtkSpinner*) gtk_spinner_new ();
	g_object_ref_sink (_tmp8_);
	_g_object_unref0 (self->priv->spinner);
	self->priv->spinner = _tmp8_;
	_tmp9_ = self->priv->spinner;
	gtk_widget_set_halign ((GtkWidget*) _tmp9_, GTK_ALIGN_CENTER);
	_tmp10_ = self->priv->spinner;
	gtk_widget_set_valign ((GtkWidget*) _tmp10_, GTK_ALIGN_CENTER);
	_tmp11_ = self->priv->spinner;
	gtk_widget_set_size_request ((GtkWidget*) _tmp11_, 200, 200);
	_tmp12_ = (GtkOverlay*) gtk_overlay_new ();
	g_object_ref_sink (_tmp12_);
	_g_object_unref0 (self->priv->overlay);
	self->priv->overlay = _tmp12_;
	_tmp13_ = self->priv->overlay;
	_tmp14_ = self->priv->game_list_box;
	gtk_overlay_set_child (_tmp13_, (GtkWidget*) _tmp14_);
	_tmp15_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
	g_object_ref_sink (_tmp15_);
	_g_object_unref0 (self->priv->scrolled_window);
	self->priv->scrolled_window = _tmp15_;
	_tmp16_ = self->priv->scrolled_window;
	gtk_widget_set_vexpand ((GtkWidget*) _tmp16_, TRUE);
	_tmp17_ = self->priv->scrolled_window;
	_tmp18_ = self->priv->overlay;
	gtk_scrolled_window_set_child (_tmp17_, (GtkWidget*) _tmp18_);
	_tmp19_ = self->priv->scrolled_window;
	gtk_scrolled_window_set_policy (_tmp19_, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
	_tmp20_ = (GtkLabel*) gtk_label_new (_ ("Close the Steam client beforehand so that the changes can be applied."));
	g_object_ref_sink (_tmp20_);
	_g_object_unref0 (self->priv->warning_label);
	self->priv->warning_label = _tmp20_;
	_tmp21_ = self->priv->warning_label;
	gtk_widget_add_css_class ((GtkWidget*) _tmp21_, "warning");
	_tmp22_ = proton_plus_widgets_shortcut_button_new ();
	g_object_ref_sink (_tmp22_);
	_g_object_unref0 (self->priv->shortcut_button);
	self->priv->shortcut_button = _tmp22_;
	_tmp23_ = self->priv->game_list_box;
	_tmp24_ = proton_plus_widgets_mass_edit_button_new (_tmp23_);
	g_object_ref_sink (_tmp24_);
	_g_object_unref0 (self->priv->mass_edit_button);
	self->priv->mass_edit_button = _tmp24_;
	_tmp25_ = self->priv->mass_edit_button;
	g_signal_connect_object (_tmp25_, "mass-edit-requested", (GCallback) _proton_plus_widgets_games_box_open_mass_edit_proton_plus_widgets_mass_edit_button_mass_edit_requested, self, 0);
	_tmp26_ = self->priv->game_list_box;
	_tmp27_ = proton_plus_widgets_select_button_new (_tmp26_);
	g_object_ref_sink (_tmp27_);
	_g_object_unref0 (self->priv->select_button);
	self->priv->select_button = _tmp27_;
	_tmp28_ = self->priv->game_list_box;
	_tmp29_ = proton_plus_widgets_unselect_button_new (_tmp28_);
	g_object_ref_sink (_tmp29_);
	_g_object_unref0 (self->priv->unselect_button);
	self->priv->unselect_button = _tmp29_;
	_tmp30_ = proton_plus_widgets_default_tool_button_new ();
	g_object_ref_sink (_tmp30_);
	_g_object_unref0 (self->priv->default_tool_button);
	self->priv->default_tool_button = _tmp30_;
	_tmp31_ = self->priv->default_tool_button;
	g_signal_connect_object (_tmp31_, "default-tool-requested", (GCallback) _proton_plus_widgets_games_box_open_default_tool_proton_plus_widgets_default_tool_button_default_tool_requested, self, 0);
	_tmp32_ = g_strdup ("search-symbolic");
	_tmp33_ = g_strdup (_ ("Show search"));
	_tmp34_ = (AdwButtonContent*) adw_button_content_new ();
	adw_button_content_set_icon_name (_tmp34_, _tmp32_);
	_g_free0 (_tmp32_);
	adw_button_content_set_label (_tmp34_, _tmp33_);
	_g_free0 (_tmp33_);
	g_object_ref_sink (_tmp34_);
	_g_object_unref0 (self->priv->search_button_content);
	self->priv->search_button_content = _tmp34_;
	_tmp35_ = g_strdup ("flat");
	_tmp36_ = g_new0 (gchar*, 1 + 1);
	_tmp36_[0] = _tmp35_;
	_tmp37_ = self->priv->search_button_content;
	_tmp38_ = _g_object_ref0 ((GtkWidget*) _tmp37_);
	_tmp39_ = (GtkButton*) gtk_button_new ();
	gtk_widget_set_css_classes ((GtkWidget*) _tmp39_, _tmp36_);
	_tmp36_ = (_vala_array_free (_tmp36_, 1, (GDestroyNotify) g_free), NULL);
	gtk_button_set_child (_tmp39_, _tmp38_);
	_g_object_unref0 (_tmp38_);
	g_object_ref_sink (_tmp39_);
	_g_object_unref0 (self->priv->search_button);
	self->priv->search_button = _tmp39_;
	_tmp40_ = self->priv->search_button;
	g_signal_connect_object (_tmp40_, "clicked", (GCallback) _proton_plus_widgets_games_box_search_button_clicked_gtk_button_clicked, self, 0);
	_tmp41_ = proton_plus_widgets_switch_profile_button_new ();
	g_object_ref_sink (_tmp41_);
	_g_object_unref0 (self->priv->switch_profile_button);
	self->priv->switch_profile_button = _tmp41_;
	_tmp42_ = (GtkFlowBox*) gtk_flow_box_new ();
	g_object_ref_sink (_tmp42_);
	_g_object_unref0 (self->priv->flow_box);
	self->priv->flow_box = _tmp42_;
	_tmp43_ = self->priv->flow_box;
	gtk_flow_box_set_row_spacing (_tmp43_, (guint) 15);
	_tmp44_ = self->priv->flow_box;
	gtk_flow_box_set_column_spacing (_tmp44_, (guint) 15);
	_tmp45_ = self->priv->flow_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp45_, "card");
	_tmp46_ = self->priv->flow_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp46_, "p-10");
	_tmp47_ = self->priv->flow_box;
	gtk_widget_set_halign ((GtkWidget*) _tmp47_, GTK_ALIGN_CENTER);
	_tmp48_ = self->priv->flow_box;
	_tmp49_ = self->priv->shortcut_button;
	gtk_flow_box_append (_tmp48_, (GtkWidget*) _tmp49_);
	_tmp50_ = self->priv->flow_box;
	_tmp51_ = self->priv->mass_edit_button;
	gtk_flow_box_append (_tmp50_, (GtkWidget*) _tmp51_);
	_tmp52_ = self->priv->flow_box;
	_tmp53_ = self->priv->select_button;
	gtk_flow_box_append (_tmp52_, (GtkWidget*) _tmp53_);
	_tmp54_ = self->priv->flow_box;
	_tmp55_ = self->priv->unselect_button;
	gtk_flow_box_append (_tmp54_, (GtkWidget*) _tmp55_);
	_tmp56_ = self->priv->flow_box;
	_tmp57_ = self->priv->default_tool_button;
	gtk_flow_box_append (_tmp56_, (GtkWidget*) _tmp57_);
	_tmp58_ = self->priv->flow_box;
	_tmp59_ = self->priv->search_button;
	gtk_flow_box_append (_tmp58_, (GtkWidget*) _tmp59_);
	_tmp60_ = self->priv->flow_box;
	_tmp61_ = self->priv->switch_profile_button;
	gtk_flow_box_append (_tmp60_, (GtkWidget*) _tmp61_);
	_tmp62_ = self->priv->flow_box;
	gtk_flow_box_set_selection_mode (_tmp62_, GTK_SELECTION_NONE);
	_tmp63_ = g_strdup (_ ("Search for a game"));
	_tmp64_ = (GtkSearchEntry*) gtk_search_entry_new ();
	gtk_widget_set_visible ((GtkWidget*) _tmp64_, FALSE);
	g_object_set (_tmp64_, "placeholder-text", _tmp63_, NULL);
	_g_free0 (_tmp63_);
	g_object_ref_sink (_tmp64_);
	_g_object_unref0 (self->priv->search_entry);
	self->priv->search_entry = _tmp64_;
	_tmp65_ = self->priv->search_entry;
	g_signal_connect_object ((GtkEditable*) _tmp65_, "changed", (GCallback) _proton_plus_widgets_games_box_load_games_gtk_editable_changed, self, 0);
	_tmp66_ = (GtkGestureClick*) gtk_gesture_click_new ();
	name_label_gesture = _tmp66_;
	_tmp67_ = name_label_gesture;
	g_signal_connect_object (_tmp67_, "pressed", (GCallback) _proton_plus_widgets_games_box_name_label_clicked_gtk_gesture_click_pressed, self, 0);
	_tmp68_ = (GtkLabel*) gtk_label_new (_ ("Name"));
	g_object_ref_sink (_tmp68_);
	_g_object_unref0 (self->priv->name_label);
	self->priv->name_label = _tmp68_;
	_tmp69_ = self->priv->name_label;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp69_, TRUE);
	_tmp70_ = self->priv->name_label;
	_tmp71_ = name_label_gesture;
	_tmp72_ = _g_object_ref0 ((GtkEventController*) _tmp71_);
	gtk_widget_add_controller ((GtkWidget*) _tmp70_, _tmp72_);
	_tmp73_ = (GtkLabel*) gtk_label_new (_ ("Prefix"));
	g_object_ref_sink (_tmp73_);
	_g_object_unref0 (self->priv->prefix_label);
	self->priv->prefix_label = _tmp73_;
	_tmp74_ = self->priv->prefix_label;
	gtk_widget_set_margin_end ((GtkWidget*) _tmp74_, 10);
	_tmp75_ = self->priv->prefix_label;
	gtk_widget_set_size_request ((GtkWidget*) _tmp75_, 110, 0);
	_tmp76_ = (GtkGestureClick*) gtk_gesture_click_new ();
	compatibility_tool_label_gesture = _tmp76_;
	_tmp77_ = compatibility_tool_label_gesture;
	g_signal_connect_object (_tmp77_, "pressed", (GCallback) _proton_plus_widgets_games_box_compatibility_tool_label_clicked_gtk_gesture_click_pressed, self, 0);
	_tmp78_ = (GtkLabel*) gtk_label_new (_ ("Compatibility tool"));
	g_object_ref_sink (_tmp78_);
	_g_object_unref0 (self->priv->compatibility_tool_label);
	self->priv->compatibility_tool_label = _tmp78_;
	_tmp79_ = self->priv->compatibility_tool_label;
	gtk_widget_set_size_request ((GtkWidget*) _tmp79_, 350, 0);
	_tmp80_ = self->priv->compatibility_tool_label;
	_tmp81_ = compatibility_tool_label_gesture;
	_tmp82_ = _g_object_ref0 ((GtkEventController*) _tmp81_);
	gtk_widget_add_controller ((GtkWidget*) _tmp80_, _tmp82_);
	_tmp83_ = (GtkLabel*) gtk_label_new (_ ("Other"));
	g_object_ref_sink (_tmp83_);
	_g_object_unref0 (self->priv->other_label);
	self->priv->other_label = _tmp83_;
	_tmp84_ = self->priv->other_label;
	gtk_widget_set_size_request ((GtkWidget*) _tmp84_, 175, 0);
	_tmp85_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
	g_object_ref_sink (_tmp85_);
	_g_object_unref0 (self->priv->header_box);
	self->priv->header_box = _tmp85_;
	_tmp86_ = self->priv->header_box;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp86_, TRUE);
	_tmp87_ = self->priv->header_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp87_, "card");
	_tmp88_ = self->priv->header_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp88_, "list-header");
	_tmp89_ = self->priv->header_box;
	_tmp90_ = self->priv->name_label;
	gtk_box_append (_tmp89_, (GtkWidget*) _tmp90_);
	_tmp91_ = self->priv->header_box;
	_tmp92_ = self->priv->prefix_label;
	gtk_box_append (_tmp91_, (GtkWidget*) _tmp92_);
	_tmp93_ = self->priv->header_box;
	_tmp94_ = self->priv->compatibility_tool_label;
	gtk_box_append (_tmp93_, (GtkWidget*) _tmp94_);
	_tmp95_ = self->priv->header_box;
	_tmp96_ = self->priv->other_label;
	gtk_box_append (_tmp95_, (GtkWidget*) _tmp96_);
	_tmp97_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp97_);
	_g_object_unref0 (self->priv->headered_list_box);
	self->priv->headered_list_box = _tmp97_;
	_tmp98_ = self->priv->headered_list_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp98_, "card");
	_tmp99_ = self->priv->headered_list_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp99_, "transparent-card");
	_tmp100_ = self->priv->headered_list_box;
	_tmp101_ = self->priv->header_box;
	gtk_box_append (_tmp100_, (GtkWidget*) _tmp101_);
	_tmp102_ = self->priv->headered_list_box;
	_tmp103_ = self->priv->scrolled_window;
	gtk_box_append (_tmp102_, (GtkWidget*) _tmp103_);
	g_signal_connect_object ((GObject*) self, "notify::active", (GCallback) __proton_plus_widgets_games_box___lambda49__g_object_notify, self, 0);
	gtk_orientable_set_orientation ((GtkOrientable*) self, GTK_ORIENTATION_VERTICAL);
	gtk_box_set_spacing ((GtkBox*) self, 12);
	gtk_widget_set_margin_top ((GtkWidget*) self, 7);
	gtk_widget_set_margin_bottom ((GtkWidget*) self, 12);
	gtk_widget_set_margin_start ((GtkWidget*) self, 12);
	gtk_widget_set_margin_end ((GtkWidget*) self, 12);
	_tmp104_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
	g_object_ref_sink (_tmp104_);
	_g_object_unref0 (self->priv->games_page_box);
	self->priv->games_page_box = _tmp104_;
	_tmp105_ = self->priv->games_page_box;
	_tmp106_ = self->priv->flow_box;
	gtk_box_append (_tmp105_, (GtkWidget*) _tmp106_);
	_tmp107_ = self->priv->games_page_box;
	_tmp108_ = self->priv->search_entry;
	gtk_box_append (_tmp107_, (GtkWidget*) _tmp108_);
	_tmp109_ = self->priv->games_page_box;
	_tmp110_ = self->priv->headered_list_box;
	gtk_box_append (_tmp109_, (GtkWidget*) _tmp110_);
	_tmp111_ = self->priv->games_page_box;
	_tmp112_ = self->priv->warning_label;
	gtk_box_append (_tmp111_, (GtkWidget*) _tmp112_);
	_tmp113_ = self->priv->games_page_box;
	_tmp114_ = self->priv->status_page;
	gtk_box_append (_tmp113_, (GtkWidget*) _tmp114_);
	_tmp115_ = (AdwClamp*) adw_clamp_new ();
	g_object_ref_sink (_tmp115_);
	clamp = _tmp115_;
	_tmp116_ = clamp;
	adw_clamp_set_maximum_size (_tmp116_, 975);
	_tmp117_ = clamp;
	_tmp118_ = self->priv->games_page_box;
	adw_clamp_set_child (_tmp117_, (GtkWidget*) _tmp118_);
	_tmp119_ = clamp;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) _tmp119_);
	_g_object_unref0 (clamp);
	_g_object_unref0 (compatibility_tool_label_gesture);
	_g_object_unref0 (name_label_gesture);
	return obj;
}

static void
proton_plus_widgets_games_box_class_init (ProtonPlusWidgetsGamesBoxClass * klass,
                                          gpointer klass_data)
{
	proton_plus_widgets_games_box_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsGamesBox_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_games_box_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_games_box_set_property;
	G_OBJECT_CLASS (klass)->constructor = proton_plus_widgets_games_box_constructor;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_games_box_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_BOX_ACTIVE_PROPERTY, proton_plus_widgets_games_box_properties[PROTON_PLUS_WIDGETS_GAMES_BOX_ACTIVE_PROPERTY] = g_param_spec_boolean ("active", "active", "active", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
proton_plus_widgets_games_box_instance_init (ProtonPlusWidgetsGamesBox * self,
                                             gpointer klass)
{
	self->priv = proton_plus_widgets_games_box_get_instance_private (self);
}

static void
proton_plus_widgets_games_box_finalize (GObject * obj)
{
	ProtonPlusWidgetsGamesBox * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX, ProtonPlusWidgetsGamesBox);
	_g_object_unref0 (self->priv->launcher);
	_g_object_unref0 (self->priv->image);
	_g_object_unref0 (self->priv->status_page);
	_g_object_unref0 (self->priv->shortcut_button);
	_g_object_unref0 (self->priv->mass_edit_button);
	_g_object_unref0 (self->priv->default_tool_button);
	_g_object_unref0 (self->priv->switch_profile_button);
	_g_object_unref0 (self->priv->select_button);
	_g_object_unref0 (self->priv->unselect_button);
	_g_object_unref0 (self->priv->search_button_content);
	_g_object_unref0 (self->priv->search_button);
	_g_object_unref0 (self->priv->flow_box);
	_g_object_unref0 (self->priv->search_entry);
	_g_object_unref0 (self->priv->name_label);
	_g_object_unref0 (self->priv->prefix_label);
	_g_object_unref0 (self->priv->compatibility_tool_label);
	_g_object_unref0 (self->priv->other_label);
	_g_object_unref0 (self->priv->header_box);
	_g_object_unref0 (self->priv->headered_list_box);
	_g_object_unref0 (self->priv->games_page_box);
	_g_object_unref0 (self->priv->content_stack);
	_g_object_unref0 (self->priv->scrolled_window);
	_g_object_unref0 (self->priv->game_list_box);
	_g_object_unref0 (self->priv->warning_label);
	_g_object_unref0 (self->priv->spinner);
	_g_object_unref0 (self->priv->overlay);
	_g_object_unref0 (self->priv->model);
	_gtk_expression_unref0 (self->priv->expression);
	G_OBJECT_CLASS (proton_plus_widgets_games_box_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_games_box_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsGamesBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_games_box_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsGamesBox), 0, (GInstanceInitFunc) proton_plus_widgets_games_box_instance_init, NULL };
	GType proton_plus_widgets_games_box_type_id;
	proton_plus_widgets_games_box_type_id = g_type_register_static (gtk_box_get_type (), "ProtonPlusWidgetsGamesBox", &g_define_type_info, 0);
	ProtonPlusWidgetsGamesBox_private_offset = g_type_add_instance_private (proton_plus_widgets_games_box_type_id, sizeof (ProtonPlusWidgetsGamesBoxPrivate));
	return proton_plus_widgets_games_box_type_id;
}

GType
proton_plus_widgets_games_box_get_type (void)
{
	static volatile gsize proton_plus_widgets_games_box_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_games_box_type_id__once)) {
		GType proton_plus_widgets_games_box_type_id;
		proton_plus_widgets_games_box_type_id = proton_plus_widgets_games_box_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_games_box_type_id__once, proton_plus_widgets_games_box_type_id);
	}
	return proton_plus_widgets_games_box_type_id__once;
}

static void
_vala_proton_plus_widgets_games_box_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesBox * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX, ProtonPlusWidgetsGamesBox);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_BOX_ACTIVE_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_games_box_get_active (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_games_box_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesBox * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_GAMES_BOX, ProtonPlusWidgetsGamesBox);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_BOX_ACTIVE_PROPERTY:
		proton_plus_widgets_games_box_set_active (self, g_value_get_boolean (value));
		break;
		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);
}

