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

#include <adwaita.h>
#include <glib-object.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include "config.h"
#include <gee.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_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_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_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 PROTON_PLUS_WIDGETS_TYPE_STATUS_BOX (proton_plus_widgets_status_box_get_type ())
#define PROTON_PLUS_WIDGETS_STATUS_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_STATUS_BOX, ProtonPlusWidgetsStatusBox))
#define PROTON_PLUS_WIDGETS_STATUS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_STATUS_BOX, ProtonPlusWidgetsStatusBoxClass))
#define PROTON_PLUS_WIDGETS_IS_STATUS_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_STATUS_BOX))
#define PROTON_PLUS_WIDGETS_IS_STATUS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_STATUS_BOX))
#define PROTON_PLUS_WIDGETS_STATUS_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_STATUS_BOX, ProtonPlusWidgetsStatusBoxClass))

typedef struct _ProtonPlusWidgetsStatusBox ProtonPlusWidgetsStatusBox;
typedef struct _ProtonPlusWidgetsStatusBoxClass ProtonPlusWidgetsStatusBoxClass;

#define PROTON_PLUS_WIDGETS_TYPE_RUNNERS_BOX (proton_plus_widgets_runners_box_get_type ())
#define PROTON_PLUS_WIDGETS_RUNNERS_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_RUNNERS_BOX, ProtonPlusWidgetsRunnersBox))
#define PROTON_PLUS_WIDGETS_RUNNERS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_RUNNERS_BOX, ProtonPlusWidgetsRunnersBoxClass))
#define PROTON_PLUS_WIDGETS_IS_RUNNERS_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_RUNNERS_BOX))
#define PROTON_PLUS_WIDGETS_IS_RUNNERS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_RUNNERS_BOX))
#define PROTON_PLUS_WIDGETS_RUNNERS_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_RUNNERS_BOX, ProtonPlusWidgetsRunnersBoxClass))

typedef struct _ProtonPlusWidgetsRunnersBox ProtonPlusWidgetsRunnersBox;
typedef struct _ProtonPlusWidgetsRunnersBoxClass ProtonPlusWidgetsRunnersBoxClass;

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

#define PROTON_PLUS_WIDGETS_TYPE_DOWNLOADS_BOX (proton_plus_widgets_downloads_box_get_type ())
#define PROTON_PLUS_WIDGETS_DOWNLOADS_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_DOWNLOADS_BOX, ProtonPlusWidgetsDownloadsBox))
#define PROTON_PLUS_WIDGETS_DOWNLOADS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_DOWNLOADS_BOX, ProtonPlusWidgetsDownloadsBoxClass))
#define PROTON_PLUS_WIDGETS_IS_DOWNLOADS_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_DOWNLOADS_BOX))
#define PROTON_PLUS_WIDGETS_IS_DOWNLOADS_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_DOWNLOADS_BOX))
#define PROTON_PLUS_WIDGETS_DOWNLOADS_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_DOWNLOADS_BOX, ProtonPlusWidgetsDownloadsBoxClass))

typedef struct _ProtonPlusWidgetsDownloadsBox ProtonPlusWidgetsDownloadsBox;
typedef struct _ProtonPlusWidgetsDownloadsBoxClass ProtonPlusWidgetsDownloadsBoxClass;

#define PROTON_PLUS_WIDGETS_TYPE_LAUNCHERS_POPOVER_BUTTON (proton_plus_widgets_launchers_popover_button_get_type ())
#define PROTON_PLUS_WIDGETS_LAUNCHERS_POPOVER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCHERS_POPOVER_BUTTON, ProtonPlusWidgetsLaunchersPopoverButton))
#define PROTON_PLUS_WIDGETS_LAUNCHERS_POPOVER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCHERS_POPOVER_BUTTON, ProtonPlusWidgetsLaunchersPopoverButtonClass))
#define PROTON_PLUS_WIDGETS_IS_LAUNCHERS_POPOVER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCHERS_POPOVER_BUTTON))
#define PROTON_PLUS_WIDGETS_IS_LAUNCHERS_POPOVER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TYPE_LAUNCHERS_POPOVER_BUTTON))
#define PROTON_PLUS_WIDGETS_LAUNCHERS_POPOVER_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TYPE_LAUNCHERS_POPOVER_BUTTON, ProtonPlusWidgetsLaunchersPopoverButtonClass))

typedef struct _ProtonPlusWidgetsLaunchersPopoverButton ProtonPlusWidgetsLaunchersPopoverButton;
typedef struct _ProtonPlusWidgetsLaunchersPopoverButtonClass ProtonPlusWidgetsLaunchersPopoverButtonClass;
enum  {
	PROTON_PLUS_WIDGETS_WINDOW_0_PROPERTY,
	PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_USED_PROPERTY,
	PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_UNUSED_PROPERTY,
	PROTON_PLUS_WIDGETS_WINDOW_UPDATING_PROPERTY,
	PROTON_PLUS_WIDGETS_WINDOW_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_window_properties[PROTON_PLUS_WIDGETS_WINDOW_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define PROTON_PLUS_MODELS_TYPE_RUNNER (proton_plus_models_runner_get_type ())
#define PROTON_PLUS_MODELS_RUNNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_TYPE_RUNNER, ProtonPlusModelsRunner))
#define PROTON_PLUS_MODELS_RUNNER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_TYPE_RUNNER, ProtonPlusModelsRunnerClass))
#define PROTON_PLUS_MODELS_IS_RUNNER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_TYPE_RUNNER))
#define PROTON_PLUS_MODELS_IS_RUNNER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_TYPE_RUNNER))
#define PROTON_PLUS_MODELS_RUNNER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_TYPE_RUNNER, ProtonPlusModelsRunnerClass))

typedef struct _ProtonPlusModelsRunner ProtonPlusModelsRunner;
typedef struct _ProtonPlusModelsRunnerClass ProtonPlusModelsRunnerClass;

#define PROTON_PLUS_MODELS_RUNNERS_TYPE_BASIC (proton_plus_models_runners_basic_get_type ())
#define PROTON_PLUS_MODELS_RUNNERS_BASIC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_RUNNERS_TYPE_BASIC, ProtonPlusModelsRunnersBasic))
#define PROTON_PLUS_MODELS_RUNNERS_BASIC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_RUNNERS_TYPE_BASIC, ProtonPlusModelsRunnersBasicClass))
#define PROTON_PLUS_MODELS_RUNNERS_IS_BASIC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_RUNNERS_TYPE_BASIC))
#define PROTON_PLUS_MODELS_RUNNERS_IS_BASIC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_RUNNERS_TYPE_BASIC))
#define PROTON_PLUS_MODELS_RUNNERS_BASIC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_RUNNERS_TYPE_BASIC, ProtonPlusModelsRunnersBasicClass))

typedef struct _ProtonPlusModelsRunnersBasic ProtonPlusModelsRunnersBasic;
typedef struct _ProtonPlusModelsRunnersBasicClass ProtonPlusModelsRunnersBasicClass;
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _ProtonPlusWidgetsWindowInitializeData ProtonPlusWidgetsWindowInitializeData;
typedef enum  {
	PROTON_PLUS_RETURN_CODE_UNKNOWN_ERROR,
	PROTON_PLUS_RETURN_CODE_RELEASES_LOADED,
	PROTON_PLUS_RETURN_CODE_NOTHING_TO_UPDATE,
	PROTON_PLUS_RETURN_CODE_RUNNERS_UPDATED,
	PROTON_PLUS_RETURN_CODE_RUNNER_UPDATED,
	PROTON_PLUS_RETURN_CODE_VALID_REQUEST,
	PROTON_PLUS_RETURN_CODE_CONNECTION_ISSUE,
	PROTON_PLUS_RETURN_CODE_CONNECTION_REFUSED,
	PROTON_PLUS_RETURN_CODE_CONNECTION_UNKNOWN,
	PROTON_PLUS_RETURN_CODE_API_LIMIT_REACHED,
	PROTON_PLUS_RETURN_CODE_INVALID_ACCESS_TOKEN
} ProtonPlusReturnCode;

#define PROTON_PLUS_TYPE_RETURN_CODE (proton_plus_return_code_get_type ())
typedef struct _ProtonPlusWidgetsWindowCheckForUpdatesData ProtonPlusWidgetsWindowCheckForUpdatesData;

#define PROTON_PLUS_MODELS_TYPE_DOWNLOAD_MANAGER (proton_plus_models_download_manager_get_type ())
#define PROTON_PLUS_MODELS_DOWNLOAD_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_TYPE_DOWNLOAD_MANAGER, ProtonPlusModelsDownloadManager))
#define PROTON_PLUS_MODELS_DOWNLOAD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_TYPE_DOWNLOAD_MANAGER, ProtonPlusModelsDownloadManagerClass))
#define PROTON_PLUS_MODELS_IS_DOWNLOAD_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_TYPE_DOWNLOAD_MANAGER))
#define PROTON_PLUS_MODELS_IS_DOWNLOAD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_TYPE_DOWNLOAD_MANAGER))
#define PROTON_PLUS_MODELS_DOWNLOAD_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_TYPE_DOWNLOAD_MANAGER, ProtonPlusModelsDownloadManagerClass))

typedef struct _ProtonPlusModelsDownloadManager ProtonPlusModelsDownloadManager;
typedef struct _ProtonPlusModelsDownloadManagerClass ProtonPlusModelsDownloadManagerClass;

#define PROTON_PLUS_MODELS_TYPE_BASE_RELEASE (proton_plus_models_base_release_get_type ())
#define PROTON_PLUS_MODELS_BASE_RELEASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_TYPE_BASE_RELEASE, ProtonPlusModelsBaseRelease))
#define PROTON_PLUS_MODELS_BASE_RELEASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_TYPE_BASE_RELEASE, ProtonPlusModelsBaseReleaseClass))
#define PROTON_PLUS_MODELS_IS_BASE_RELEASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_TYPE_BASE_RELEASE))
#define PROTON_PLUS_MODELS_IS_BASE_RELEASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_TYPE_BASE_RELEASE))
#define PROTON_PLUS_MODELS_BASE_RELEASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_TYPE_BASE_RELEASE, ProtonPlusModelsBaseReleaseClass))

typedef struct _ProtonPlusModelsBaseRelease ProtonPlusModelsBaseRelease;
typedef struct _ProtonPlusModelsBaseReleaseClass ProtonPlusModelsBaseReleaseClass;

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

struct _ProtonPlusWidgetsWindowPrivate {
	gboolean _only_show_used;
	gboolean _only_show_unused;
	gboolean _updating;
	ProtonPlusWidgetsStatusBox* status_box;
	ProtonPlusWidgetsRunnersBox* runners_box;
	ProtonPlusWidgetsGamesBox* games_box;
	ProtonPlusWidgetsDownloadsBox* downloads_box;
	ProtonPlusWidgetsLaunchersPopoverButton* launchers_popover_button;
	GMenu* menu;
	GtkMenuButton* menu_button;
	GtkStack* content_stack;
	AdwViewStack* view_stack;
	AdwViewStackPage* downloads_page;
	AdwToastOverlay* toast_overlay;
	AdwViewSwitcher* view_switcher;
	AdwHeaderBar* header_bar;
	AdwViewSwitcherBar* view_switcher_bar;
	AdwToolbarView* toolbar_view;
};

struct _ProtonPlusWidgetsWindowInitializeData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	ProtonPlusWidgetsWindow* self;
	gboolean disable_update_check;
	gboolean loaded;
	GList* _tmp0_;
	gboolean _tmp1_;
	ProtonPlusWidgetsStatusBox* _tmp2_;
	GList* _tmp3_;
	GtkStack* _tmp4_;
	GtkWidget* _tmp5_;
	GtkStack* _tmp6_;
	ProtonPlusWidgetsLaunchersPopoverButton* _tmp7_;
	GList* _tmp8_;
	GVariant* _tmp9_;
	gboolean _tmp10_;
	gboolean _tmp11_;
	GSettings* _tmp12_;
	GSettings* _tmp13_;
	ProtonPlusWidgetsStatusBox* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	ProtonPlusWidgetsStatusBox* _tmp19_;
	GtkWidget* _tmp20_;
	ProtonPlusWidgetsStatusBox* _tmp21_;
};

struct _ProtonPlusWidgetsWindowCheckForUpdatesData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	ProtonPlusWidgetsWindow* self;
	ProtonPlusModelsRunnersBasic* runner;
	AdwToast* toast;
	ProtonPlusReturnCode code;
	gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	AdwToast* _tmp7_;
	AdwToastOverlay* _tmp8_;
	AdwToast* _tmp9_;
	AdwToast* _tmp10_;
	ProtonPlusReturnCode _tmp11_;
	GList* _tmp12_;
	AdwToast* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	const gchar* _tmp16_;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	AdwToast* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	const gchar* _tmp24_;
	const gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	AdwToast* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	const gchar* _tmp32_;
	const gchar* _tmp33_;
	gchar* _tmp34_;
	AdwToast* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	const gchar* _tmp38_;
	const gchar* _tmp39_;
	gchar* _tmp40_;
	AdwToast* _tmp41_;
	gchar* _tmp42_;
	gchar* _tmp43_;
	const gchar* _tmp44_;
	const gchar* _tmp45_;
	gchar* _tmp46_;
	AdwToast* _tmp47_;
	gchar* _tmp48_;
	gchar* _tmp49_;
	const gchar* _tmp50_;
	const gchar* _tmp51_;
	gchar* _tmp52_;
	AdwToast* _tmp53_;
	AdwToast* _tmp54_;
	AdwToast* _tmp55_;
	AdwToastOverlay* _tmp56_;
	AdwToast* _tmp57_;
	AdwToast* _tmp58_;
};

static gint ProtonPlusWidgetsWindow_private_offset;
static gpointer proton_plus_widgets_window_parent_class = NULL;
VALA_EXTERN GSettings* proton_plus_globals_SETTINGS;
VALA_EXTERN gchar* proton_plus_globals_CACHE_PATH;

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_models_launcher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsLauncher, 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 GType proton_plus_widgets_status_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsStatusBox, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_runners_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsRunnersBox, g_object_unref)
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_widgets_downloads_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsDownloadsBox, g_object_unref)
VALA_EXTERN GType proton_plus_widgets_launchers_popover_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusWidgetsLaunchersPopoverButton, g_object_unref)
static void _g_object_unref0_ (gpointer var);
static inline void _g_list_free__g_object_unref0_ (GList* self);
static void proton_plus_widgets_window_initialize_data_free (gpointer _data);
VALA_EXTERN void proton_plus_widgets_window_initialize (ProtonPlusWidgetsWindow* self,
                                            gboolean disable_update_check,
                                            GAsyncReadyCallback _callback_,
                                            gpointer _user_data_);
VALA_EXTERN void proton_plus_widgets_window_initialize_finish (ProtonPlusWidgetsWindow* self,
                                                   GAsyncResult* _res_);
static gboolean proton_plus_widgets_window_initialize_co (ProtonPlusWidgetsWindowInitializeData* _data_);
VALA_EXTERN void proton_plus_models_launcher_get_all (GAsyncReadyCallback _callback_,
                                          gpointer _user_data_);
VALA_EXTERN gboolean proton_plus_models_launcher_get_all_finish (GAsyncResult* _res_,
                                                     GList** launchers);
static void proton_plus_widgets_window_initialize_ready (GObject* source_object,
                                                  GAsyncResult* _res_,
                                                  gpointer _user_data_);
VALA_EXTERN void proton_plus_widgets_status_box_initialize (ProtonPlusWidgetsStatusBox* self,
                                                const gchar* icon_name,
                                                const gchar* title,
                                                const gchar* description,
                                                gboolean _error_);
VALA_EXTERN void proton_plus_widgets_launchers_popover_button_initialize (ProtonPlusWidgetsLaunchersPopoverButton* self,
                                                              GList* launchers);
static GVariant* _variant_new1 (gint value);
VALA_EXTERN GType proton_plus_models_runner_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsRunner, g_object_unref)
VALA_EXTERN GType proton_plus_models_runners_basic_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsRunnersBasic, g_object_unref)
VALA_EXTERN void proton_plus_widgets_window_check_for_updates (ProtonPlusWidgetsWindow* self,
                                                   ProtonPlusModelsRunnersBasic* runner,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
VALA_EXTERN void proton_plus_widgets_window_check_for_updates_finish (ProtonPlusWidgetsWindow* self,
                                                          GAsyncResult* _res_);
static gboolean ___lambda57_ (ProtonPlusWidgetsWindow* self);
static gboolean ____lambda57__gsource_func (gpointer self);
static void proton_plus_widgets_window_check_for_updates_data_free (gpointer _data);
static gboolean proton_plus_widgets_window_check_for_updates_co (ProtonPlusWidgetsWindowCheckForUpdatesData* _data_);
VALA_EXTERN void proton_plus_widgets_window_set_updating (ProtonPlusWidgetsWindow* self,
                                              gboolean value);
VALA_EXTERN GType proton_plus_return_code_get_type (void) G_GNUC_CONST ;
VALA_EXTERN const gchar* proton_plus_models_runner_get_title (ProtonPlusModelsRunner* self);
VALA_EXTERN void proton_plus_models_runner_check_for_updates (GList* launchers,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_);
VALA_EXTERN ProtonPlusReturnCode proton_plus_models_runner_check_for_updates_finish (GAsyncResult* _res_);
static void proton_plus_widgets_window_check_for_updates_ready (GObject* source_object,
                                                         GAsyncResult* _res_,
                                                         gpointer _user_data_);
VALA_EXTERN void proton_plus_models_runner_update_specific_runner (ProtonPlusModelsRunnersBasic* runner,
                                                       GAsyncReadyCallback _callback_,
                                                       gpointer _user_data_);
VALA_EXTERN ProtonPlusReturnCode proton_plus_models_runner_update_specific_runner_finish (GAsyncResult* _res_);
static void proton_plus_widgets_window_view_stack_visible_child_name_changed (ProtonPlusWidgetsWindow* self);
VALA_EXTERN void proton_plus_widgets_games_box_set_active (ProtonPlusWidgetsGamesBox* self,
                                               gboolean value);
static void proton_plus_widgets_window_update_downloads_status (ProtonPlusWidgetsWindow* self);
VALA_EXTERN GType proton_plus_models_download_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsDownloadManager, g_object_unref)
VALA_EXTERN ProtonPlusModelsDownloadManager* proton_plus_models_download_manager_get_instance (void);
VALA_EXTERN GType proton_plus_models_base_release_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProtonPlusModelsBaseRelease, g_object_unref)
VALA_EXTERN GeeArrayList* proton_plus_models_download_manager_get_active_downloads (ProtonPlusModelsDownloadManager* self);
static GSimpleAction* proton_plus_widgets_window_get_donate_action (ProtonPlusWidgetsWindow* self);
static void __lambda58_ (ProtonPlusWidgetsWindow* self);
VALA_EXTERN void proton_plus_utils_system_open_uri (const gchar* uri);
static void ___lambda58__g_simple_action_activate (GSimpleAction* _sender,
                                            GVariant* parameter,
                                            gpointer self);
static GSimpleAction* proton_plus_widgets_window_get_set_selected_launcher_action (ProtonPlusWidgetsWindow* self);
static void __lambda59_ (ProtonPlusWidgetsWindow* self,
                  GVariant* variant);
VALA_EXTERN void proton_plus_widgets_runners_box_set_selected_launcher (ProtonPlusWidgetsRunnersBox* self,
                                                            ProtonPlusModelsLauncher* launcher);
VALA_EXTERN void proton_plus_widgets_games_box_set_selected_launcher (ProtonPlusWidgetsGamesBox* self,
                                                          ProtonPlusModelsLauncher* launcher);
static void ___lambda59__g_simple_action_activate (GSimpleAction* _sender,
                                            GVariant* parameter,
                                            gpointer self);
static GSimpleAction* proton_plus_widgets_window_get_set_selected_view_action (ProtonPlusWidgetsWindow* self);
static void __lambda60_ (ProtonPlusWidgetsWindow* self,
                  GVariant* variant);
static void ___lambda60__g_simple_action_activate (GSimpleAction* _sender,
                                            GVariant* parameter,
                                            gpointer self);
static gboolean proton_plus_widgets_window_real_close_request (GtkWindow* base);
VALA_EXTERN gboolean proton_plus_widgets_window_get_updating (ProtonPlusWidgetsWindow* self);
VALA_EXTERN void proton_plus_utils_filesystem_delete_directory (const gchar* path,
                                                    GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_);
VALA_EXTERN gboolean proton_plus_utils_filesystem_delete_directory_finish (GAsyncResult* _res_);
static void __lambda61_ (ProtonPlusWidgetsWindow* self,
                  const gchar* response);
static void ___lambda61__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                             const gchar* response,
                                             gpointer self);
static void proton_plus_widgets_window_show_games_list_page (ProtonPlusWidgetsWindow* self);
VALA_EXTERN void proton_plus_widgets_window_show_downloads_page (ProtonPlusWidgetsWindow* self);
VALA_EXTERN ProtonPlusWidgetsWindow* proton_plus_widgets_window_new (void);
VALA_EXTERN ProtonPlusWidgetsWindow* proton_plus_widgets_window_construct (GType object_type);
VALA_EXTERN gboolean proton_plus_widgets_window_get_only_show_used (ProtonPlusWidgetsWindow* self);
VALA_EXTERN void proton_plus_widgets_window_set_only_show_used (ProtonPlusWidgetsWindow* self,
                                                    gboolean value);
VALA_EXTERN gboolean proton_plus_widgets_window_get_only_show_unused (ProtonPlusWidgetsWindow* self);
VALA_EXTERN void proton_plus_widgets_window_set_only_show_unused (ProtonPlusWidgetsWindow* self,
                                                      gboolean value);
static GObject * proton_plus_widgets_window_constructor (GType type,
                                                  guint n_construct_properties,
                                                  GObjectConstructParam * construct_properties);
VALA_EXTERN ProtonPlusWidgetsStatusBox* proton_plus_widgets_status_box_new (void);
VALA_EXTERN ProtonPlusWidgetsStatusBox* proton_plus_widgets_status_box_construct (GType object_type);
VALA_EXTERN ProtonPlusWidgetsRunnersBox* proton_plus_widgets_runners_box_new (void);
VALA_EXTERN ProtonPlusWidgetsRunnersBox* proton_plus_widgets_runners_box_construct (GType object_type);
VALA_EXTERN ProtonPlusWidgetsGamesBox* proton_plus_widgets_games_box_new (void);
VALA_EXTERN ProtonPlusWidgetsGamesBox* proton_plus_widgets_games_box_construct (GType object_type);
VALA_EXTERN ProtonPlusWidgetsDownloadsBox* proton_plus_widgets_downloads_box_new (void);
VALA_EXTERN ProtonPlusWidgetsDownloadsBox* proton_plus_widgets_downloads_box_construct (GType object_type);
VALA_EXTERN ProtonPlusWidgetsLaunchersPopoverButton* proton_plus_widgets_launchers_popover_button_new (void);
VALA_EXTERN ProtonPlusWidgetsLaunchersPopoverButton* proton_plus_widgets_launchers_popover_button_construct (GType object_type);
static void _proton_plus_widgets_window_view_stack_visible_child_name_changed_g_object_notify (GObject* _sender,
                                                                                        GParamSpec* pspec,
                                                                                        gpointer self);
static void _proton_plus_widgets_window___lambda62_ (ProtonPlusWidgetsWindow* self);
static void __proton_plus_widgets_window___lambda62__proton_plus_models_download_manager_download_added (ProtonPlusModelsDownloadManager* _sender,
                                                                                                  ProtonPlusModelsBaseRelease* release,
                                                                                                  gpointer self);
static void _proton_plus_widgets_window___lambda63_ (ProtonPlusWidgetsWindow* self);
static void __proton_plus_widgets_window___lambda63__proton_plus_models_download_manager_download_removed (ProtonPlusModelsDownloadManager* _sender,
                                                                                                    ProtonPlusModelsBaseRelease* release,
                                                                                                    gpointer self);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionsView* proton_plus_widgets_launch_options_view_new (void);
VALA_EXTERN ProtonPlusWidgetsLaunchOptionsView* proton_plus_widgets_launch_options_view_construct (GType object_type);
static void _proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_launch_options_view_back_requested (ProtonPlusWidgetsLaunchOptionsView* _sender,
                                                                                                              gpointer self);
VALA_EXTERN ProtonPlusWidgetsMassEditView* proton_plus_widgets_mass_edit_view_new (void);
VALA_EXTERN ProtonPlusWidgetsMassEditView* proton_plus_widgets_mass_edit_view_construct (GType object_type);
static void _proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_mass_edit_view_back_requested (ProtonPlusWidgetsMassEditView* _sender,
                                                                                                         gpointer self);
VALA_EXTERN ProtonPlusWidgetsDefaultToolView* proton_plus_widgets_default_tool_view_new (void);
VALA_EXTERN ProtonPlusWidgetsDefaultToolView* proton_plus_widgets_default_tool_view_construct (GType object_type);
static void _proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_default_tool_view_back_requested (ProtonPlusWidgetsDefaultToolView* _sender,
                                                                                                            gpointer self);
static void proton_plus_widgets_window_finalize (GObject * obj);
static GType proton_plus_widgets_window_get_type_once (void);
static void _vala_proton_plus_widgets_window_get_property (GObject * object,
                                                    guint property_id,
                                                    GValue * value,
                                                    GParamSpec * pspec);
static void _vala_proton_plus_widgets_window_set_property (GObject * object,
                                                    guint property_id,
                                                    const GValue * value,
                                                    GParamSpec * pspec);

static inline gpointer
proton_plus_widgets_window_get_instance_private (ProtonPlusWidgetsWindow* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsWindow_private_offset);
}

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

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

static void
proton_plus_widgets_window_initialize_data_free (gpointer _data)
{
	ProtonPlusWidgetsWindowInitializeData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (ProtonPlusWidgetsWindowInitializeData, _data_);
}

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

void
proton_plus_widgets_window_initialize (ProtonPlusWidgetsWindow* self,
                                       gboolean disable_update_check,
                                       GAsyncReadyCallback _callback_,
                                       gpointer _user_data_)
{
	ProtonPlusWidgetsWindowInitializeData* _data_;
	ProtonPlusWidgetsWindow* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (ProtonPlusWidgetsWindowInitializeData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, proton_plus_widgets_window_initialize_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_data_->disable_update_check = disable_update_check;
	proton_plus_widgets_window_initialize_co (_data_);
}

void
proton_plus_widgets_window_initialize_finish (ProtonPlusWidgetsWindow* self,
                                              GAsyncResult* _res_)
{
	ProtonPlusWidgetsWindowInitializeData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static void
proton_plus_widgets_window_initialize_ready (GObject* source_object,
                                             GAsyncResult* _res_,
                                             gpointer _user_data_)
{
	ProtonPlusWidgetsWindowInitializeData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	proton_plus_widgets_window_initialize_co (_data_);
}

static GVariant*
_variant_new1 (gint value)
{
	return g_variant_ref_sink (g_variant_new_int32 (value));
}

static gboolean
___lambda57_ (ProtonPlusWidgetsWindow* self)
{
	gboolean result;
	proton_plus_widgets_window_initialize (self, FALSE, NULL, NULL);
	result = FALSE;
	return result;
}

static gboolean
____lambda57__gsource_func (gpointer self)
{
	gboolean result;
	result = ___lambda57_ ((ProtonPlusWidgetsWindow*) self);
	return result;
}

static gboolean
proton_plus_widgets_window_initialize_co (ProtonPlusWidgetsWindowInitializeData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = NULL;
	_data_->_state_ = 1;
	proton_plus_models_launcher_get_all (proton_plus_widgets_window_initialize_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp1_ = proton_plus_models_launcher_get_all_finish (_data_->_res_, &_data_->_tmp0_);
	(_data_->self->launchers == NULL) ? NULL : (_data_->self->launchers = (_g_list_free__g_object_unref0_ (_data_->self->launchers), NULL));
	_data_->self->launchers = _data_->_tmp0_;
	_data_->loaded = _data_->_tmp1_;
	if (!_data_->loaded) {
		_data_->_tmp2_ = _data_->self->priv->status_box;
		proton_plus_widgets_status_box_initialize (_data_->_tmp2_, "bug-symbolic", _ ("Couldn't load the launchers"), _ ("Please report this issue on GitHub."), TRUE);
	}
	_data_->_tmp3_ = _data_->self->launchers;
	if (g_list_length (_data_->_tmp3_) > ((guint) 0)) {
		_data_->_tmp4_ = _data_->self->priv->content_stack;
		_data_->_tmp5_ = gtk_widget_get_parent ((GtkWidget*) _data_->_tmp4_);
		if (_data_->_tmp5_ == NULL) {
			_data_->_tmp6_ = _data_->self->priv->content_stack;
			adw_application_window_set_content ((AdwApplicationWindow*) _data_->self, (GtkWidget*) _data_->_tmp6_);
		}
		_data_->_tmp7_ = _data_->self->priv->launchers_popover_button;
		_data_->_tmp8_ = _data_->self->launchers;
		proton_plus_widgets_launchers_popover_button_initialize (_data_->_tmp7_, _data_->_tmp8_);
		_data_->_tmp9_ = _variant_new1 (0);
		gtk_widget_activate_action_variant ((GtkWidget*) _data_->self, "win.set-selected-launcher", _data_->_tmp9_);
		_g_variant_unref0 (_data_->_tmp9_);
		if (!_data_->disable_update_check) {
			_data_->_tmp12_ = proton_plus_globals_SETTINGS;
			_data_->_tmp11_ = _data_->_tmp12_ != NULL;
		} else {
			_data_->_tmp11_ = FALSE;
		}
		if (_data_->_tmp11_) {
			_data_->_tmp13_ = proton_plus_globals_SETTINGS;
			_data_->_tmp10_ = g_settings_get_boolean (_data_->_tmp13_, "automatic-updates");
		} else {
			_data_->_tmp10_ = FALSE;
		}
		if (_data_->_tmp10_) {
			_data_->_state_ = 2;
			proton_plus_widgets_window_check_for_updates (_data_->self, NULL, proton_plus_widgets_window_initialize_ready, _data_);
			return FALSE;
			_state_2:
			proton_plus_widgets_window_check_for_updates_finish (_data_->self, _data_->_res_);
		}
	} else {
		_data_->_tmp14_ = _data_->self->priv->status_box;
		_data_->_tmp15_ = g_strdup_printf (_ ("Welcome to %s"), APP_NAME);
		_data_->_tmp16_ = _data_->_tmp15_;
		_data_->_tmp17_ = g_strdup_printf ("%s\n(%s)", _ ("Install Steam, Lutris, Bottles, Heroic Games Launcher or WineZGUI to g" \
"et started."), _ ("Make sure to run the launchers at least once to ensure they're properl" \
"y initialized"));
		_data_->_tmp18_ = _data_->_tmp17_;
		proton_plus_widgets_status_box_initialize (_data_->_tmp14_, "com.vysp3r.ProtonPlus", _data_->_tmp16_, _data_->_tmp18_, FALSE);
		_g_free0 (_data_->_tmp18_);
		_g_free0 (_data_->_tmp16_);
		_data_->_tmp19_ = _data_->self->priv->status_box;
		_data_->_tmp20_ = gtk_widget_get_parent ((GtkWidget*) _data_->_tmp19_);
		if (_data_->_tmp20_ == NULL) {
			_data_->_tmp21_ = _data_->self->priv->status_box;
			adw_application_window_set_content ((AdwApplicationWindow*) _data_->self, (GtkWidget*) _data_->_tmp21_);
		}
		g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 10000, ____lambda57__gsource_func, g_object_ref (_data_->self), g_object_unref);
	}
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
proton_plus_widgets_window_check_for_updates_data_free (gpointer _data)
{
	ProtonPlusWidgetsWindowCheckForUpdatesData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->runner);
	_g_object_unref0 (_data_->self);
	g_slice_free (ProtonPlusWidgetsWindowCheckForUpdatesData, _data_);
}

void
proton_plus_widgets_window_check_for_updates (ProtonPlusWidgetsWindow* self,
                                              ProtonPlusModelsRunnersBasic* runner,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	ProtonPlusWidgetsWindowCheckForUpdatesData* _data_;
	ProtonPlusWidgetsWindow* _tmp0_;
	ProtonPlusModelsRunnersBasic* _tmp1_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (ProtonPlusWidgetsWindowCheckForUpdatesData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, proton_plus_widgets_window_check_for_updates_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (runner);
	_g_object_unref0 (_data_->runner);
	_data_->runner = _tmp1_;
	proton_plus_widgets_window_check_for_updates_co (_data_);
}

void
proton_plus_widgets_window_check_for_updates_finish (ProtonPlusWidgetsWindow* self,
                                                     GAsyncResult* _res_)
{
	ProtonPlusWidgetsWindowCheckForUpdatesData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static void
proton_plus_widgets_window_check_for_updates_ready (GObject* source_object,
                                                    GAsyncResult* _res_,
                                                    gpointer _user_data_)
{
	ProtonPlusWidgetsWindowCheckForUpdatesData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	proton_plus_widgets_window_check_for_updates_co (_data_);
}

static gboolean
proton_plus_widgets_window_check_for_updates_co (ProtonPlusWidgetsWindowCheckForUpdatesData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	proton_plus_widgets_window_set_updating (_data_->self, TRUE);
	if (_data_->runner == NULL) {
		_data_->_tmp1_ = g_strdup (_ ("Checking for updates"));
		_g_free0 (_data_->_tmp0_);
		_data_->_tmp0_ = _data_->_tmp1_;
	} else {
		_data_->_tmp2_ = proton_plus_models_runner_get_title ((ProtonPlusModelsRunner*) _data_->runner);
		_data_->_tmp3_ = _data_->_tmp2_;
		_data_->_tmp4_ = g_strdup_printf ("%s Latest", _data_->_tmp3_);
		_data_->_tmp5_ = _data_->_tmp4_;
		_data_->_tmp6_ = g_strdup_printf (_ ("Updating %s"), _data_->_tmp5_);
		_g_free0 (_data_->_tmp0_);
		_data_->_tmp0_ = _data_->_tmp6_;
		_g_free0 (_data_->_tmp5_);
	}
	_data_->_tmp7_ = adw_toast_new (_data_->_tmp0_);
	_g_object_unref0 (_data_->toast);
	_data_->toast = _data_->_tmp7_;
	_data_->_tmp8_ = _data_->self->priv->toast_overlay;
	_data_->_tmp9_ = _data_->toast;
	_data_->_tmp10_ = _g_object_ref0 (_data_->_tmp9_);
	adw_toast_overlay_add_toast (_data_->_tmp8_, _data_->_tmp10_);
	if (_data_->runner == NULL) {
		_data_->_tmp12_ = _data_->self->launchers;
		_data_->_state_ = 1;
		proton_plus_models_runner_check_for_updates (_data_->_tmp12_, proton_plus_widgets_window_check_for_updates_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp11_ = proton_plus_models_runner_check_for_updates_finish (_data_->_res_);
	} else {
		_data_->_state_ = 2;
		proton_plus_models_runner_update_specific_runner (_data_->runner, proton_plus_widgets_window_check_for_updates_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp11_ = proton_plus_models_runner_update_specific_runner_finish (_data_->_res_);
	}
	_data_->code = _data_->_tmp11_;
	_data_->_tmp13_ = _data_->toast;
	adw_toast_dismiss (_data_->_tmp13_);
	switch (_data_->code) {
		case PROTON_PLUS_RETURN_CODE_NOTHING_TO_UPDATE:
		{
			if (_data_->runner == NULL) {
				_data_->_tmp15_ = g_strdup (_ ("Nothing to update"));
				_g_free0 (_data_->_tmp14_);
				_data_->_tmp14_ = _data_->_tmp15_;
			} else {
				_data_->_tmp16_ = proton_plus_models_runner_get_title ((ProtonPlusModelsRunner*) _data_->runner);
				_data_->_tmp17_ = _data_->_tmp16_;
				_data_->_tmp18_ = g_strdup_printf ("%s Latest", _data_->_tmp17_);
				_data_->_tmp19_ = _data_->_tmp18_;
				_data_->_tmp20_ = g_strdup_printf (_ ("No update found for %s"), _data_->_tmp19_);
				_g_free0 (_data_->_tmp14_);
				_data_->_tmp14_ = _data_->_tmp20_;
				_g_free0 (_data_->_tmp19_);
			}
			_data_->_tmp21_ = adw_toast_new (_data_->_tmp14_);
			_g_object_unref0 (_data_->toast);
			_data_->toast = _data_->_tmp21_;
			_g_free0 (_data_->_tmp14_);
			break;
		}
		case PROTON_PLUS_RETURN_CODE_RUNNERS_UPDATED:
		case PROTON_PLUS_RETURN_CODE_RUNNER_UPDATED:
		{
			if (_data_->runner == NULL) {
				_data_->_tmp23_ = g_strdup (_ ("Everything is now up-to-date"));
				_g_free0 (_data_->_tmp22_);
				_data_->_tmp22_ = _data_->_tmp23_;
			} else {
				_data_->_tmp24_ = proton_plus_models_runner_get_title ((ProtonPlusModelsRunner*) _data_->runner);
				_data_->_tmp25_ = _data_->_tmp24_;
				_data_->_tmp26_ = g_strdup_printf ("%s Latest", _data_->_tmp25_);
				_data_->_tmp27_ = _data_->_tmp26_;
				_data_->_tmp28_ = g_strdup_printf (_ ("%s is now up-to-date"), _data_->_tmp27_);
				_g_free0 (_data_->_tmp22_);
				_data_->_tmp22_ = _data_->_tmp28_;
				_g_free0 (_data_->_tmp27_);
			}
			_data_->_tmp29_ = adw_toast_new (_data_->_tmp22_);
			_g_object_unref0 (_data_->toast);
			_data_->toast = _data_->_tmp29_;
			_g_free0 (_data_->_tmp22_);
			break;
		}
		case PROTON_PLUS_RETURN_CODE_API_LIMIT_REACHED:
		{
			if (_data_->runner == NULL) {
				_data_->_tmp31_ = g_strdup_printf (_ ("Couldn't check for updates (Reason: %s)"), _ ("API limit reached"));
				_g_free0 (_data_->_tmp30_);
				_data_->_tmp30_ = _data_->_tmp31_;
			} else {
				_data_->_tmp32_ = proton_plus_models_runner_get_title ((ProtonPlusModelsRunner*) _data_->runner);
				_data_->_tmp33_ = _data_->_tmp32_;
				_data_->_tmp34_ = g_strdup_printf (_ ("Couldn't update %s (Reason: %s)"), _data_->_tmp33_, _ ("API limit reached"));
				_g_free0 (_data_->_tmp30_);
				_data_->_tmp30_ = _data_->_tmp34_;
			}
			_data_->_tmp35_ = adw_toast_new (_data_->_tmp30_);
			_g_object_unref0 (_data_->toast);
			_data_->toast = _data_->_tmp35_;
			_g_free0 (_data_->_tmp30_);
			break;
		}
		case PROTON_PLUS_RETURN_CODE_CONNECTION_ISSUE:
		case PROTON_PLUS_RETURN_CODE_CONNECTION_REFUSED:
		case PROTON_PLUS_RETURN_CODE_CONNECTION_UNKNOWN:
		{
			if (_data_->runner == NULL) {
				_data_->_tmp37_ = g_strdup_printf (_ ("Couldn't check for updates (Reason: %s)"), _ ("Unable to reach the API"));
				_g_free0 (_data_->_tmp36_);
				_data_->_tmp36_ = _data_->_tmp37_;
			} else {
				_data_->_tmp38_ = proton_plus_models_runner_get_title ((ProtonPlusModelsRunner*) _data_->runner);
				_data_->_tmp39_ = _data_->_tmp38_;
				_data_->_tmp40_ = g_strdup_printf (_ ("Couldn't update %s (Reason: %s)"), _data_->_tmp39_, _ ("Unable to reach the API"));
				_g_free0 (_data_->_tmp36_);
				_data_->_tmp36_ = _data_->_tmp40_;
			}
			_data_->_tmp41_ = adw_toast_new (_data_->_tmp36_);
			_g_object_unref0 (_data_->toast);
			_data_->toast = _data_->_tmp41_;
			_g_free0 (_data_->_tmp36_);
			break;
		}
		case PROTON_PLUS_RETURN_CODE_INVALID_ACCESS_TOKEN:
		{
			if (_data_->runner == NULL) {
				_data_->_tmp43_ = g_strdup_printf (_ ("Couldn't check for updates (Reason: %s)"), _ ("Invalid access token"));
				_g_free0 (_data_->_tmp42_);
				_data_->_tmp42_ = _data_->_tmp43_;
			} else {
				_data_->_tmp44_ = proton_plus_models_runner_get_title ((ProtonPlusModelsRunner*) _data_->runner);
				_data_->_tmp45_ = _data_->_tmp44_;
				_data_->_tmp46_ = g_strdup_printf (_ ("Couldn't update %s (Reason: %s)"), _data_->_tmp45_, _ ("Invalid access token"));
				_g_free0 (_data_->_tmp42_);
				_data_->_tmp42_ = _data_->_tmp46_;
			}
			_data_->_tmp47_ = adw_toast_new (_data_->_tmp42_);
			_g_object_unref0 (_data_->toast);
			_data_->toast = _data_->_tmp47_;
			_g_free0 (_data_->_tmp42_);
			break;
		}
		default:
		{
			if (_data_->runner == NULL) {
				_data_->_tmp49_ = g_strdup_printf (_ ("Couldn't check for updates (Reason: %s)"), _ ("Unknown error"));
				_g_free0 (_data_->_tmp48_);
				_data_->_tmp48_ = _data_->_tmp49_;
			} else {
				_data_->_tmp50_ = proton_plus_models_runner_get_title ((ProtonPlusModelsRunner*) _data_->runner);
				_data_->_tmp51_ = _data_->_tmp50_;
				_data_->_tmp52_ = g_strdup_printf (_ ("Couldn't update %s (Reason: %s)"), _data_->_tmp51_, _ ("Unknown error"));
				_g_free0 (_data_->_tmp48_);
				_data_->_tmp48_ = _data_->_tmp52_;
			}
			_data_->_tmp53_ = adw_toast_new (_data_->_tmp48_);
			_g_object_unref0 (_data_->toast);
			_data_->toast = _data_->_tmp53_;
			_data_->_tmp54_ = _data_->toast;
			adw_toast_set_button_label (_data_->_tmp54_, _ ("Report"));
			_data_->_tmp55_ = _data_->toast;
			adw_toast_set_action_name (_data_->_tmp55_, "app.report");
			_g_free0 (_data_->_tmp48_);
			break;
		}
	}
	_data_->_tmp56_ = _data_->self->priv->toast_overlay;
	_data_->_tmp57_ = _data_->toast;
	_data_->_tmp58_ = _g_object_ref0 (_data_->_tmp57_);
	adw_toast_overlay_add_toast (_data_->_tmp56_, _data_->_tmp58_);
	proton_plus_widgets_window_set_updating (_data_->self, FALSE);
	_g_free0 (_data_->_tmp0_);
	_g_object_unref0 (_data_->toast);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
proton_plus_widgets_window_view_stack_visible_child_name_changed (ProtonPlusWidgetsWindow* self)
{
	ProtonPlusWidgetsGamesBox* _tmp0_;
	AdwViewStack* _tmp1_;
	const gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->games_box;
	_tmp1_ = self->priv->view_stack;
	_tmp2_ = adw_view_stack_get_visible_child_name (_tmp1_);
	proton_plus_widgets_games_box_set_active (_tmp0_, g_strcmp0 (_tmp2_, "games") == 0);
}

static void
proton_plus_widgets_window_update_downloads_status (ProtonPlusWidgetsWindow* self)
{
	gboolean active = FALSE;
	ProtonPlusModelsDownloadManager* _tmp0_;
	ProtonPlusModelsDownloadManager* _tmp1_;
	GeeArrayList* _tmp2_;
	GeeArrayList* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	g_return_if_fail (self != NULL);
	_tmp0_ = proton_plus_models_download_manager_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_models_download_manager_get_active_downloads (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
	_tmp5_ = _tmp4_;
	active = _tmp5_ > 0;
	if (active) {
		gtk_widget_add_css_class ((GtkWidget*) self, "downloads-attention");
	} else {
		gtk_widget_remove_css_class ((GtkWidget*) self, "downloads-attention");
	}
}

static void
__lambda58_ (ProtonPlusWidgetsWindow* self)
{
	proton_plus_utils_system_open_uri ("https://protonplus.vysp3r.com/#donate");
}

static void
___lambda58__g_simple_action_activate (GSimpleAction* _sender,
                                       GVariant* parameter,
                                       gpointer self)
{
	__lambda58_ ((ProtonPlusWidgetsWindow*) self);
}

static GSimpleAction*
proton_plus_widgets_window_get_donate_action (ProtonPlusWidgetsWindow* self)
{
	GSimpleAction* action = NULL;
	GSimpleAction* _tmp0_;
	GSimpleAction* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_simple_action_new ("donate", NULL);
	action = _tmp0_;
	g_signal_connect_object (action, "activate", (GCallback) ___lambda58__g_simple_action_activate, self, 0);
	result = action;
	return result;
}

static void
__lambda59_ (ProtonPlusWidgetsWindow* self,
             GVariant* variant)
{
	ProtonPlusWidgetsRunnersBox* _tmp0_;
	GList* _tmp1_;
	gconstpointer _tmp2_;
	ProtonPlusWidgetsGamesBox* _tmp3_;
	GList* _tmp4_;
	gconstpointer _tmp5_;
	_tmp0_ = self->priv->runners_box;
	_tmp1_ = self->launchers;
	_tmp2_ = g_list_nth_data (_tmp1_, (guint) g_variant_get_int32 (variant));
	proton_plus_widgets_runners_box_set_selected_launcher (_tmp0_, (ProtonPlusModelsLauncher*) _tmp2_);
	_tmp3_ = self->priv->games_box;
	_tmp4_ = self->launchers;
	_tmp5_ = g_list_nth_data (_tmp4_, (guint) g_variant_get_int32 (variant));
	proton_plus_widgets_games_box_set_selected_launcher (_tmp3_, (ProtonPlusModelsLauncher*) _tmp5_);
}

static void
___lambda59__g_simple_action_activate (GSimpleAction* _sender,
                                       GVariant* parameter,
                                       gpointer self)
{
	__lambda59_ ((ProtonPlusWidgetsWindow*) self, parameter);
}

static GSimpleAction*
proton_plus_widgets_window_get_set_selected_launcher_action (ProtonPlusWidgetsWindow* self)
{
	GSimpleAction* action = NULL;
	const GVariantType* _tmp0_;
	GSimpleAction* _tmp1_;
	GSimpleAction* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = G_VARIANT_TYPE_INT32;
	_tmp1_ = g_simple_action_new ("set-selected-launcher", _tmp0_);
	action = _tmp1_;
	g_signal_connect_object (action, "activate", (GCallback) ___lambda59__g_simple_action_activate, self, 0);
	result = action;
	return result;
}

static void
__lambda60_ (ProtonPlusWidgetsWindow* self,
             GVariant* variant)
{
	GtkStack* _tmp0_;
	const gchar* _tmp1_;
	_tmp0_ = self->priv->content_stack;
	_tmp1_ = g_variant_get_string (variant, NULL);
	gtk_stack_set_visible_child_name (_tmp0_, _tmp1_);
}

static void
___lambda60__g_simple_action_activate (GSimpleAction* _sender,
                                       GVariant* parameter,
                                       gpointer self)
{
	__lambda60_ ((ProtonPlusWidgetsWindow*) self, parameter);
}

static GSimpleAction*
proton_plus_widgets_window_get_set_selected_view_action (ProtonPlusWidgetsWindow* self)
{
	GSimpleAction* action = NULL;
	const GVariantType* _tmp0_;
	GSimpleAction* _tmp1_;
	GSimpleAction* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = G_VARIANT_TYPE_STRING;
	_tmp1_ = g_simple_action_new ("set-selected-view", _tmp0_);
	action = _tmp1_;
	g_signal_connect_object (action, "activate", (GCallback) ___lambda60__g_simple_action_activate, self, 0);
	result = action;
	return result;
}

static void
__lambda61_ (ProtonPlusWidgetsWindow* self,
             const gchar* response)
{
	const gchar* _tmp0_;
	GtkApplication* _tmp1_;
	GtkApplication* _tmp2_;
	g_return_if_fail (response != NULL);
	if (g_strcmp0 (response, "exit") != 0) {
		return;
	}
	_tmp0_ = proton_plus_globals_CACHE_PATH;
	proton_plus_utils_filesystem_delete_directory (_tmp0_, NULL, NULL);
	_tmp1_ = gtk_window_get_application ((GtkWindow*) self);
	_tmp2_ = _tmp1_;
	g_application_quit ((GApplication*) _tmp2_);
}

static void
___lambda61__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                        const gchar* response,
                                        gpointer self)
{
	__lambda61_ ((ProtonPlusWidgetsWindow*) self, response);
}

static gboolean
proton_plus_widgets_window_real_close_request (GtkWindow* base)
{
	ProtonPlusWidgetsWindow * self;
	gboolean _tmp0_;
	AdwAlertDialog* dialog = NULL;
	AdwAlertDialog* _tmp2_;
	AdwAlertDialog* _tmp3_;
	AdwAlertDialog* _tmp4_;
	AdwAlertDialog* _tmp5_;
	AdwAlertDialog* _tmp6_;
	AdwAlertDialog* _tmp7_;
	AdwAlertDialog* _tmp8_;
	AdwAlertDialog* _tmp9_;
	AdwAlertDialog* _tmp10_;
	gboolean result;
	self = (ProtonPlusWidgetsWindow*) base;
	_tmp0_ = self->priv->_updating;
	if (!_tmp0_) {
		const gchar* _tmp1_;
		_tmp1_ = proton_plus_globals_CACHE_PATH;
		proton_plus_utils_filesystem_delete_directory (_tmp1_, NULL, NULL);
		result = FALSE;
		return result;
	}
	_tmp2_ = (AdwAlertDialog*) adw_alert_dialog_new (_ ("Warning"), _ ("The application is currently checking for updates.\n" \
"Exiting the application early may cause issues."));
	g_object_ref_sink (_tmp2_);
	dialog = _tmp2_;
	_tmp3_ = dialog;
	adw_alert_dialog_add_response (_tmp3_, "exit", _ ("Exit"));
	_tmp4_ = dialog;
	adw_alert_dialog_set_response_appearance (_tmp4_, "exit", ADW_RESPONSE_DESTRUCTIVE);
	_tmp5_ = dialog;
	adw_alert_dialog_add_response (_tmp5_, "cancel", _ ("Cancel"));
	_tmp6_ = dialog;
	adw_alert_dialog_set_response_appearance (_tmp6_, "cancel", ADW_RESPONSE_SUGGESTED);
	_tmp7_ = dialog;
	adw_alert_dialog_set_default_response (_tmp7_, "cancel");
	_tmp8_ = dialog;
	adw_alert_dialog_set_close_response (_tmp8_, "cancel");
	_tmp9_ = dialog;
	g_signal_connect_object (_tmp9_, "response", (GCallback) ___lambda61__adw_alert_dialog_response, self, 0);
	_tmp10_ = dialog;
	adw_dialog_present ((AdwDialog*) _tmp10_, (GtkWidget*) self);
	result = TRUE;
	_g_object_unref0 (dialog);
	return result;
}

static void
proton_plus_widgets_window_show_games_list_page (ProtonPlusWidgetsWindow* self)
{
	GtkStack* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->content_stack;
	gtk_stack_set_visible_child_name (_tmp0_, "main");
}

void
proton_plus_widgets_window_show_downloads_page (ProtonPlusWidgetsWindow* self)
{
	AdwViewStack* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->view_stack;
	adw_view_stack_set_visible_child_name (_tmp0_, "downloads");
}

ProtonPlusWidgetsWindow*
proton_plus_widgets_window_construct (GType object_type)
{
	ProtonPlusWidgetsWindow * self = NULL;
	self = (ProtonPlusWidgetsWindow*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusWidgetsWindow*
proton_plus_widgets_window_new (void)
{
	return proton_plus_widgets_window_construct (PROTON_PLUS_WIDGETS_TYPE_WINDOW);
}

gboolean
proton_plus_widgets_window_get_only_show_used (ProtonPlusWidgetsWindow* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_only_show_used;
	return result;
}

void
proton_plus_widgets_window_set_only_show_used (ProtonPlusWidgetsWindow* self,
                                               gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_window_get_only_show_used (self);
	if (old_value != value) {
		self->priv->_only_show_used = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_window_properties[PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_USED_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_window_get_only_show_unused (ProtonPlusWidgetsWindow* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_only_show_unused;
	return result;
}

void
proton_plus_widgets_window_set_only_show_unused (ProtonPlusWidgetsWindow* self,
                                                 gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_window_get_only_show_unused (self);
	if (old_value != value) {
		self->priv->_only_show_unused = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_window_properties[PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_UNUSED_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_window_get_updating (ProtonPlusWidgetsWindow* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_updating;
	return result;
}

void
proton_plus_widgets_window_set_updating (ProtonPlusWidgetsWindow* self,
                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_window_get_updating (self);
	if (old_value != value) {
		self->priv->_updating = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_window_properties[PROTON_PLUS_WIDGETS_WINDOW_UPDATING_PROPERTY]);
	}
}

static void
_proton_plus_widgets_window_view_stack_visible_child_name_changed_g_object_notify (GObject* _sender,
                                                                                   GParamSpec* pspec,
                                                                                   gpointer self)
{
	proton_plus_widgets_window_view_stack_visible_child_name_changed ((ProtonPlusWidgetsWindow*) self);
}

static void
_proton_plus_widgets_window___lambda62_ (ProtonPlusWidgetsWindow* self)
{
	proton_plus_widgets_window_update_downloads_status (self);
}

static void
__proton_plus_widgets_window___lambda62__proton_plus_models_download_manager_download_added (ProtonPlusModelsDownloadManager* _sender,
                                                                                             ProtonPlusModelsBaseRelease* release,
                                                                                             gpointer self)
{
	_proton_plus_widgets_window___lambda62_ ((ProtonPlusWidgetsWindow*) self);
}

static void
_proton_plus_widgets_window___lambda63_ (ProtonPlusWidgetsWindow* self)
{
	proton_plus_widgets_window_update_downloads_status (self);
}

static void
__proton_plus_widgets_window___lambda63__proton_plus_models_download_manager_download_removed (ProtonPlusModelsDownloadManager* _sender,
                                                                                               ProtonPlusModelsBaseRelease* release,
                                                                                               gpointer self)
{
	_proton_plus_widgets_window___lambda63_ ((ProtonPlusWidgetsWindow*) self);
}

static void
_proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_launch_options_view_back_requested (ProtonPlusWidgetsLaunchOptionsView* _sender,
                                                                                                         gpointer self)
{
	proton_plus_widgets_window_show_games_list_page ((ProtonPlusWidgetsWindow*) self);
}

static void
_proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_mass_edit_view_back_requested (ProtonPlusWidgetsMassEditView* _sender,
                                                                                                    gpointer self)
{
	proton_plus_widgets_window_show_games_list_page ((ProtonPlusWidgetsWindow*) self);
}

static void
_proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_default_tool_view_back_requested (ProtonPlusWidgetsDefaultToolView* _sender,
                                                                                                       gpointer self)
{
	proton_plus_widgets_window_show_games_list_page ((ProtonPlusWidgetsWindow*) self);
}

static GObject *
proton_plus_widgets_window_constructor (GType type,
                                        guint n_construct_properties,
                                        GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	ProtonPlusWidgetsWindow * self;
	GApplication* _tmp0_;
	GSimpleAction* _tmp1_;
	GSimpleAction* _tmp2_;
	GSimpleAction* _tmp3_;
	GSimpleAction* _tmp4_;
	GSimpleAction* _tmp5_;
	GSimpleAction* _tmp6_;
	ProtonPlusWidgetsStatusBox* _tmp7_;
	ProtonPlusWidgetsStatusBox* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	ProtonPlusWidgetsRunnersBox* _tmp11_;
	ProtonPlusWidgetsGamesBox* _tmp12_;
	ProtonPlusWidgetsDownloadsBox* _tmp13_;
	ProtonPlusWidgetsLaunchersPopoverButton* _tmp14_;
	GMenu* _tmp15_;
	GMenu* _tmp16_;
	GMenu* _tmp17_;
	GMenu* _tmp18_;
	GMenu* _tmp19_;
	GtkMenuButton* _tmp20_;
	GtkMenuButton* _tmp21_;
	GtkMenuButton* _tmp22_;
	GtkMenuButton* _tmp23_;
	GMenu* _tmp24_;
	AdwViewStack* _tmp25_;
	AdwViewStack* _tmp26_;
	ProtonPlusWidgetsRunnersBox* _tmp27_;
	AdwViewStack* _tmp28_;
	ProtonPlusWidgetsGamesBox* _tmp29_;
	AdwViewStack* _tmp30_;
	ProtonPlusWidgetsDownloadsBox* _tmp31_;
	AdwViewStackPage* _tmp32_;
	AdwViewStackPage* _tmp33_;
	AdwViewStack* _tmp34_;
	ProtonPlusModelsDownloadManager* _tmp35_;
	ProtonPlusModelsDownloadManager* _tmp36_;
	ProtonPlusModelsDownloadManager* _tmp37_;
	ProtonPlusModelsDownloadManager* _tmp38_;
	AdwToastOverlay* _tmp39_;
	AdwToastOverlay* _tmp40_;
	AdwViewStack* _tmp41_;
	ProtonPlusWidgetsLaunchOptionsView* _tmp42_;
	ProtonPlusWidgetsLaunchOptionsView* _tmp43_;
	ProtonPlusWidgetsMassEditView* _tmp44_;
	ProtonPlusWidgetsMassEditView* _tmp45_;
	ProtonPlusWidgetsDefaultToolView* _tmp46_;
	ProtonPlusWidgetsDefaultToolView* _tmp47_;
	AdwViewSwitcher* _tmp48_;
	AdwViewSwitcher* _tmp49_;
	AdwViewStack* _tmp50_;
	AdwViewSwitcher* _tmp51_;
	AdwHeaderBar* _tmp52_;
	AdwHeaderBar* _tmp53_;
	AdwViewSwitcher* _tmp54_;
	AdwHeaderBar* _tmp55_;
	ProtonPlusWidgetsLaunchersPopoverButton* _tmp56_;
	AdwHeaderBar* _tmp57_;
	GtkMenuButton* _tmp58_;
	AdwViewSwitcherBar* _tmp59_;
	AdwViewSwitcherBar* _tmp60_;
	AdwViewStack* _tmp61_;
	AdwToolbarView* _tmp62_;
	AdwToolbarView* _tmp63_;
	AdwHeaderBar* _tmp64_;
	AdwToolbarView* _tmp65_;
	AdwToastOverlay* _tmp66_;
	AdwToolbarView* _tmp67_;
	AdwViewSwitcherBar* _tmp68_;
	GtkStack* _tmp69_;
	GtkStack* _tmp70_;
	GtkStack* _tmp71_;
	GtkStack* _tmp72_;
	GtkStack* _tmp73_;
	AdwToolbarView* _tmp74_;
	GtkStack* _tmp75_;
	ProtonPlusWidgetsLaunchOptionsView* _tmp76_;
	GtkStack* _tmp77_;
	ProtonPlusWidgetsMassEditView* _tmp78_;
	GtkStack* _tmp79_;
	ProtonPlusWidgetsDefaultToolView* _tmp80_;
	GtkStack* _tmp81_;
	ProtonPlusWidgetsStatusBox* _tmp82_;
	parent_class = G_OBJECT_CLASS (proton_plus_widgets_window_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_WINDOW, ProtonPlusWidgetsWindow);
	_tmp0_ = g_application_get_default ();
	gtk_window_set_application ((GtkWindow*) self, (GtkApplication*) G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, adw_application_get_type (), AdwApplication));
	gtk_window_set_title ((GtkWindow*) self, APP_NAME);
	_tmp1_ = proton_plus_widgets_window_get_set_selected_launcher_action (self);
	_tmp2_ = _tmp1_;
	g_action_map_add_action ((GActionMap*) self, (GAction*) _tmp2_);
	_g_object_unref0 (_tmp2_);
	_tmp3_ = proton_plus_widgets_window_get_set_selected_view_action (self);
	_tmp4_ = _tmp3_;
	g_action_map_add_action ((GActionMap*) self, (GAction*) _tmp4_);
	_g_object_unref0 (_tmp4_);
	_tmp5_ = proton_plus_widgets_window_get_donate_action (self);
	_tmp6_ = _tmp5_;
	g_action_map_add_action ((GActionMap*) self, (GAction*) _tmp6_);
	_g_object_unref0 (_tmp6_);
	_tmp7_ = proton_plus_widgets_status_box_new ();
	g_object_ref_sink (_tmp7_);
	_g_object_unref0 (self->priv->status_box);
	self->priv->status_box = _tmp7_;
	_tmp8_ = self->priv->status_box;
	_tmp9_ = g_strdup_printf ("%s\n%s", _ ("Taking longer than normal?"), _ ("Please report this issue on GitHub."));
	_tmp10_ = _tmp9_;
	proton_plus_widgets_status_box_initialize (_tmp8_, "com.vysp3r.ProtonPlus", _ ("Loading"), _tmp10_, FALSE);
	_g_free0 (_tmp10_);
	_tmp11_ = proton_plus_widgets_runners_box_new ();
	g_object_ref_sink (_tmp11_);
	_g_object_unref0 (self->priv->runners_box);
	self->priv->runners_box = _tmp11_;
	_tmp12_ = proton_plus_widgets_games_box_new ();
	g_object_ref_sink (_tmp12_);
	_g_object_unref0 (self->priv->games_box);
	self->priv->games_box = _tmp12_;
	_tmp13_ = proton_plus_widgets_downloads_box_new ();
	g_object_ref_sink (_tmp13_);
	_g_object_unref0 (self->priv->downloads_box);
	self->priv->downloads_box = _tmp13_;
	_tmp14_ = proton_plus_widgets_launchers_popover_button_new ();
	g_object_ref_sink (_tmp14_);
	_g_object_unref0 (self->priv->launchers_popover_button);
	self->priv->launchers_popover_button = _tmp14_;
	_tmp15_ = g_menu_new ();
	_g_object_unref0 (self->priv->menu);
	self->priv->menu = _tmp15_;
	_tmp16_ = self->priv->menu;
	g_menu_append (_tmp16_, _ ("_Preferences"), "app.preferences");
	_tmp17_ = self->priv->menu;
	g_menu_append (_tmp17_, _ ("_Keyboard Shortcuts"), "win.show-help-overlay");
	_tmp18_ = self->priv->menu;
	g_menu_append (_tmp18_, _ ("_Donate"), "win.donate");
	_tmp19_ = self->priv->menu;
	g_menu_append (_tmp19_, _ ("_About ProtonPlus"), "app.about");
	_tmp20_ = (GtkMenuButton*) gtk_menu_button_new ();
	g_object_ref_sink (_tmp20_);
	_g_object_unref0 (self->priv->menu_button);
	self->priv->menu_button = _tmp20_;
	_tmp21_ = self->priv->menu_button;
	gtk_widget_set_tooltip_text ((GtkWidget*) _tmp21_, _ ("Main Menu"));
	_tmp22_ = self->priv->menu_button;
	gtk_menu_button_set_icon_name (_tmp22_, "open-menu-symbolic");
	_tmp23_ = self->priv->menu_button;
	_tmp24_ = self->priv->menu;
	gtk_menu_button_set_menu_model (_tmp23_, (GMenuModel*) _tmp24_);
	_tmp25_ = (AdwViewStack*) adw_view_stack_new ();
	g_object_ref_sink (_tmp25_);
	_g_object_unref0 (self->priv->view_stack);
	self->priv->view_stack = _tmp25_;
	_tmp26_ = self->priv->view_stack;
	_tmp27_ = self->priv->runners_box;
	adw_view_stack_add_titled_with_icon (_tmp26_, (GtkWidget*) _tmp27_, "tools", _ ("Tools"), "toolbox-symbolic");
	_tmp28_ = self->priv->view_stack;
	_tmp29_ = self->priv->games_box;
	adw_view_stack_add_titled_with_icon (_tmp28_, (GtkWidget*) _tmp29_, "games", _ ("Games"), "game-library-symbolic");
	_tmp30_ = self->priv->view_stack;
	_tmp31_ = self->priv->downloads_box;
	_tmp32_ = adw_view_stack_add_titled_with_icon (_tmp30_, (GtkWidget*) _tmp31_, "downloads", _ ("Downloads"), "download-symbolic");
	_tmp33_ = _g_object_ref0 (_tmp32_);
	_g_object_unref0 (self->priv->downloads_page);
	self->priv->downloads_page = _tmp33_;
	_tmp34_ = self->priv->view_stack;
	g_signal_connect_object ((GObject*) _tmp34_, "notify::visible-child-name", (GCallback) _proton_plus_widgets_window_view_stack_visible_child_name_changed_g_object_notify, self, 0);
	_tmp35_ = proton_plus_models_download_manager_get_instance ();
	_tmp36_ = _tmp35_;
	g_signal_connect_object (_tmp36_, "download-added", (GCallback) __proton_plus_widgets_window___lambda62__proton_plus_models_download_manager_download_added, self, 0);
	_tmp37_ = proton_plus_models_download_manager_get_instance ();
	_tmp38_ = _tmp37_;
	g_signal_connect_object (_tmp38_, "download-removed", (GCallback) __proton_plus_widgets_window___lambda63__proton_plus_models_download_manager_download_removed, self, 0);
	proton_plus_widgets_window_update_downloads_status (self);
	_tmp39_ = (AdwToastOverlay*) adw_toast_overlay_new ();
	g_object_ref_sink (_tmp39_);
	_g_object_unref0 (self->priv->toast_overlay);
	self->priv->toast_overlay = _tmp39_;
	_tmp40_ = self->priv->toast_overlay;
	_tmp41_ = self->priv->view_stack;
	adw_toast_overlay_set_child (_tmp40_, (GtkWidget*) _tmp41_);
	_tmp42_ = proton_plus_widgets_launch_options_view_new ();
	g_object_ref_sink (_tmp42_);
	_g_object_unref0 (self->launch_options_view);
	self->launch_options_view = _tmp42_;
	_tmp43_ = self->launch_options_view;
	g_signal_connect_object (_tmp43_, "back-requested", (GCallback) _proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_launch_options_view_back_requested, self, 0);
	_tmp44_ = proton_plus_widgets_mass_edit_view_new ();
	g_object_ref_sink (_tmp44_);
	_g_object_unref0 (self->mass_edit_view);
	self->mass_edit_view = _tmp44_;
	_tmp45_ = self->mass_edit_view;
	g_signal_connect_object (_tmp45_, "back-requested", (GCallback) _proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_mass_edit_view_back_requested, self, 0);
	_tmp46_ = proton_plus_widgets_default_tool_view_new ();
	g_object_ref_sink (_tmp46_);
	_g_object_unref0 (self->default_tool_view);
	self->default_tool_view = _tmp46_;
	_tmp47_ = self->default_tool_view;
	g_signal_connect_object (_tmp47_, "back-requested", (GCallback) _proton_plus_widgets_window_show_games_list_page_proton_plus_widgets_default_tool_view_back_requested, self, 0);
	_tmp48_ = (AdwViewSwitcher*) adw_view_switcher_new ();
	g_object_ref_sink (_tmp48_);
	_g_object_unref0 (self->priv->view_switcher);
	self->priv->view_switcher = _tmp48_;
	_tmp49_ = self->priv->view_switcher;
	_tmp50_ = self->priv->view_stack;
	adw_view_switcher_set_stack (_tmp49_, _tmp50_);
	_tmp51_ = self->priv->view_switcher;
	adw_view_switcher_set_policy (_tmp51_, ADW_VIEW_SWITCHER_POLICY_WIDE);
	_tmp52_ = (AdwHeaderBar*) adw_header_bar_new ();
	g_object_ref_sink (_tmp52_);
	_g_object_unref0 (self->priv->header_bar);
	self->priv->header_bar = _tmp52_;
	_tmp53_ = self->priv->header_bar;
	_tmp54_ = self->priv->view_switcher;
	adw_header_bar_set_title_widget (_tmp53_, (GtkWidget*) _tmp54_);
	_tmp55_ = self->priv->header_bar;
	_tmp56_ = self->priv->launchers_popover_button;
	adw_header_bar_pack_start (_tmp55_, (GtkWidget*) _tmp56_);
	_tmp57_ = self->priv->header_bar;
	_tmp58_ = self->priv->menu_button;
	adw_header_bar_pack_end (_tmp57_, (GtkWidget*) _tmp58_);
	_tmp59_ = (AdwViewSwitcherBar*) adw_view_switcher_bar_new ();
	g_object_ref_sink (_tmp59_);
	_g_object_unref0 (self->priv->view_switcher_bar);
	self->priv->view_switcher_bar = _tmp59_;
	_tmp60_ = self->priv->view_switcher_bar;
	_tmp61_ = self->priv->view_stack;
	adw_view_switcher_bar_set_stack (_tmp60_, _tmp61_);
	_tmp62_ = (AdwToolbarView*) adw_toolbar_view_new ();
	g_object_ref_sink (_tmp62_);
	_g_object_unref0 (self->priv->toolbar_view);
	self->priv->toolbar_view = _tmp62_;
	_tmp63_ = self->priv->toolbar_view;
	_tmp64_ = self->priv->header_bar;
	adw_toolbar_view_add_top_bar (_tmp63_, (GtkWidget*) _tmp64_);
	_tmp65_ = self->priv->toolbar_view;
	_tmp66_ = self->priv->toast_overlay;
	adw_toolbar_view_set_content (_tmp65_, (GtkWidget*) _tmp66_);
	_tmp67_ = self->priv->toolbar_view;
	_tmp68_ = self->priv->view_switcher_bar;
	adw_toolbar_view_add_bottom_bar (_tmp67_, (GtkWidget*) _tmp68_);
	_tmp69_ = (GtkStack*) gtk_stack_new ();
	g_object_ref_sink (_tmp69_);
	_g_object_unref0 (self->priv->content_stack);
	self->priv->content_stack = _tmp69_;
	_tmp70_ = self->priv->content_stack;
	gtk_widget_set_vexpand ((GtkWidget*) _tmp70_, TRUE);
	_tmp71_ = self->priv->content_stack;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp71_, TRUE);
	_tmp72_ = self->priv->content_stack;
	gtk_stack_set_transition_type (_tmp72_, GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT);
	_tmp73_ = self->priv->content_stack;
	_tmp74_ = self->priv->toolbar_view;
	gtk_stack_add_named (_tmp73_, (GtkWidget*) _tmp74_, "main");
	_tmp75_ = self->priv->content_stack;
	_tmp76_ = self->launch_options_view;
	gtk_stack_add_named (_tmp75_, (GtkWidget*) _tmp76_, "launch-options");
	_tmp77_ = self->priv->content_stack;
	_tmp78_ = self->mass_edit_view;
	gtk_stack_add_named (_tmp77_, (GtkWidget*) _tmp78_, "mass-edit");
	_tmp79_ = self->priv->content_stack;
	_tmp80_ = self->default_tool_view;
	gtk_stack_add_named (_tmp79_, (GtkWidget*) _tmp80_, "default-tool");
	_tmp81_ = self->priv->content_stack;
	gtk_stack_set_visible_child_name (_tmp81_, "main");
	_tmp82_ = self->priv->status_box;
	adw_application_window_set_content ((AdwApplicationWindow*) self, (GtkWidget*) _tmp82_);
	proton_plus_widgets_window_initialize (self, FALSE, NULL, NULL);
	return obj;
}

static void
proton_plus_widgets_window_class_init (ProtonPlusWidgetsWindowClass * klass,
                                       gpointer klass_data)
{
	proton_plus_widgets_window_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsWindow_private_offset);
	((GtkWindowClass *) klass)->close_request = (gboolean (*) (GtkWindow*)) proton_plus_widgets_window_real_close_request;
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_window_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_window_set_property;
	G_OBJECT_CLASS (klass)->constructor = proton_plus_widgets_window_constructor;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_window_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_USED_PROPERTY, proton_plus_widgets_window_properties[PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_USED_PROPERTY] = g_param_spec_boolean ("only-show-used", "only-show-used", "only-show-used", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_UNUSED_PROPERTY, proton_plus_widgets_window_properties[PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_UNUSED_PROPERTY] = g_param_spec_boolean ("only-show-unused", "only-show-unused", "only-show-unused", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_WINDOW_UPDATING_PROPERTY, proton_plus_widgets_window_properties[PROTON_PLUS_WIDGETS_WINDOW_UPDATING_PROPERTY] = g_param_spec_boolean ("updating", "updating", "updating", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
proton_plus_widgets_window_instance_init (ProtonPlusWidgetsWindow * self,
                                          gpointer klass)
{
	self->priv = proton_plus_widgets_window_get_instance_private (self);
}

static void
proton_plus_widgets_window_finalize (GObject * obj)
{
	ProtonPlusWidgetsWindow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TYPE_WINDOW, ProtonPlusWidgetsWindow);
	(self->launchers == NULL) ? NULL : (self->launchers = (_g_list_free__g_object_unref0_ (self->launchers), NULL));
	_g_object_unref0 (self->priv->status_box);
	_g_object_unref0 (self->priv->runners_box);
	_g_object_unref0 (self->priv->games_box);
	_g_object_unref0 (self->priv->downloads_box);
	_g_object_unref0 (self->priv->launchers_popover_button);
	_g_object_unref0 (self->priv->menu);
	_g_object_unref0 (self->priv->menu_button);
	_g_object_unref0 (self->priv->content_stack);
	_g_object_unref0 (self->launch_options_view);
	_g_object_unref0 (self->mass_edit_view);
	_g_object_unref0 (self->default_tool_view);
	_g_object_unref0 (self->priv->view_stack);
	_g_object_unref0 (self->priv->downloads_page);
	_g_object_unref0 (self->priv->toast_overlay);
	_g_object_unref0 (self->priv->view_switcher);
	_g_object_unref0 (self->priv->header_bar);
	_g_object_unref0 (self->priv->view_switcher_bar);
	_g_object_unref0 (self->priv->toolbar_view);
	G_OBJECT_CLASS (proton_plus_widgets_window_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_window_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsWindow), 0, (GInstanceInitFunc) proton_plus_widgets_window_instance_init, NULL };
	GType proton_plus_widgets_window_type_id;
	proton_plus_widgets_window_type_id = g_type_register_static (adw_application_window_get_type (), "ProtonPlusWidgetsWindow", &g_define_type_info, 0);
	ProtonPlusWidgetsWindow_private_offset = g_type_add_instance_private (proton_plus_widgets_window_type_id, sizeof (ProtonPlusWidgetsWindowPrivate));
	return proton_plus_widgets_window_type_id;
}

GType
proton_plus_widgets_window_get_type (void)
{
	static volatile gsize proton_plus_widgets_window_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_window_type_id__once)) {
		GType proton_plus_widgets_window_type_id;
		proton_plus_widgets_window_type_id = proton_plus_widgets_window_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_window_type_id__once, proton_plus_widgets_window_type_id);
	}
	return proton_plus_widgets_window_type_id__once;
}

static void
_vala_proton_plus_widgets_window_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec)
{
	ProtonPlusWidgetsWindow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_WINDOW, ProtonPlusWidgetsWindow);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_USED_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_window_get_only_show_used (self));
		break;
		case PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_UNUSED_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_window_get_only_show_unused (self));
		break;
		case PROTON_PLUS_WIDGETS_WINDOW_UPDATING_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_window_get_updating (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_window_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec)
{
	ProtonPlusWidgetsWindow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TYPE_WINDOW, ProtonPlusWidgetsWindow);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_USED_PROPERTY:
		proton_plus_widgets_window_set_only_show_used (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_WINDOW_ONLY_SHOW_UNUSED_PROPERTY:
		proton_plus_widgets_window_set_only_show_unused (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_WINDOW_UPDATING_PROPERTY:
		proton_plus_widgets_window_set_updating (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

