/* tools-stl-release-row.c generated by valac 0.56.19, the Vala compiler
 * generated from tools-stl-release-row.vala, do not modify */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include "protonplus_core.h"
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <adwaita.h>
#include <gtk/gtk.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

#define PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT (proton_plus_widgets_tools_stl_dependency_check_result_get_type ())
#define PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResult))
#define PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResultClass))
#define PROTON_PLUS_WIDGETS_TOOLS_IS_STL_DEPENDENCY_CHECK_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT))
#define PROTON_PLUS_WIDGETS_TOOLS_IS_STL_DEPENDENCY_CHECK_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT))
#define PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResultClass))

typedef struct _ProtonPlusWidgetsToolsSTLDependencyCheckResult ProtonPlusWidgetsToolsSTLDependencyCheckResult;
typedef struct _ProtonPlusWidgetsToolsSTLDependencyCheckResultClass ProtonPlusWidgetsToolsSTLDependencyCheckResultClass;
typedef struct _ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate;
enum  {
	PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_0_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
enum  {
	PROTON_PLUS_WIDGETS_TOOLS_STL_RELEASE_ROW_0_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_STL_RELEASE_ROW_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_tools_stl_release_row_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_RELEASE_ROW_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block22Data Block22Data;
typedef struct _ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData;
typedef struct _Block23Data Block23Data;
typedef struct _Block24Data Block24Data;

struct _ProtonPlusWidgetsToolsSTLDependencyCheckResult {
	GObject parent_instance;
	ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate * priv;
};

struct _ProtonPlusWidgetsToolsSTLDependencyCheckResultClass {
	GObjectClass parent_class;
};

struct _ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate {
	gchar* _missing_dependencies;
	gboolean _has_incompatible_yad;
};

struct _ProtonPlusWidgetsToolsSTLReleaseRowPrivate {
	gboolean install_request_in_progress;
};

struct _Block22Data {
	int _ref_count_;
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	ProtonPlusServicesSteamTinkerLaunchContext* context;
	GtkCheckButton* remove_config_check;
};

struct _ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* result;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _result_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp0_;
	ProtonPlusServicesSteamTinkerLaunchYadCompatibilityStatus yad_status;
	ProtonPlusUtilsCommandResult* yad_version;
	ProtonPlusUtilsCommandResult* _tmp1_;
	ProtonPlusUtilsCommandResult* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	ProtonPlusUtilsCommandResult* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp8_;
	gboolean _tmp9_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp10_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp11_;
	const gchar* _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gboolean _tmp16_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp17_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar** dependencies;
	gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar** _tmp32_;
	gint dependencies_length1;
	gint _dependencies_size_;
	gchar** _tmp33_;
	gint _tmp33__length1;
	gchar** dependency_collection;
	gint dependency_collection_length1;
	gint _dependency_collection_size_;
	gint dependency_it;
	gchar* _tmp34_;
	gchar* dependency;
	const gchar* _tmp35_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp36_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp37_;
	const gchar* _tmp38_;
	const gchar* _tmp39_;
	const gchar* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	gchar* _tmp43_;
	gchar* _tmp44_;
};

struct _Block23Data {
	int _ref_count_;
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	gboolean installation_continued;
};

struct _Block24Data {
	int _ref_count_;
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	gboolean installation_started;
};

static gint ProtonPlusWidgetsToolsSTLDependencyCheckResult_private_offset;
static gpointer proton_plus_widgets_tools_stl_dependency_check_result_parent_class = NULL;
static gint ProtonPlusWidgetsToolsSTLReleaseRow_private_offset;
static gpointer proton_plus_widgets_tools_stl_release_row_parent_class = NULL;

VALA_EXTERN GType proton_plus_widgets_tools_stl_dependency_check_result_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ProtonPlusWidgetsToolsSTLDependencyCheckResult* proton_plus_widgets_tools_stl_dependency_check_result_new (void);
VALA_EXTERN ProtonPlusWidgetsToolsSTLDependencyCheckResult* proton_plus_widgets_tools_stl_dependency_check_result_construct (GType object_type);
VALA_EXTERN const gchar* proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self);
VALA_EXTERN void proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self,
                                                                                     const gchar* value);
VALA_EXTERN gboolean proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self);
VALA_EXTERN void proton_plus_widgets_tools_stl_dependency_check_result_set_has_incompatible_yad (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self,
                                                                                     gboolean value);
static void proton_plus_widgets_tools_stl_dependency_check_result_finalize (GObject * obj);
static GType proton_plus_widgets_tools_stl_dependency_check_result_get_type_once (void);
static void _vala_proton_plus_widgets_tools_stl_dependency_check_result_get_property (GObject * object,
                                                                               guint property_id,
                                                                               GValue * value,
                                                                               GParamSpec * pspec);
static void _vala_proton_plus_widgets_tools_stl_dependency_check_result_set_property (GObject * object,
                                                                               guint property_id,
                                                                               const GValue * value,
                                                                               GParamSpec * pspec);
static void proton_plus_widgets_tools_stl_release_row_real_install_button_clicked (ProtonPlusWidgetsToolsReleaseRow* base);
static void proton_plus_widgets_tools_stl_release_row_dependency_check (ProtonPlusWidgetsToolsSTLReleaseRow* self,
                                                                 GAsyncReadyCallback _callback_,
                                                                 gpointer _user_data_);
static ProtonPlusWidgetsToolsSTLDependencyCheckResult* proton_plus_widgets_tools_stl_release_row_dependency_check_finish (ProtonPlusWidgetsToolsSTLReleaseRow* self,
                                                                                                                   GAsyncResult* _res_);
static void __lambda53_ (ProtonPlusWidgetsToolsSTLReleaseRow* self,
                  GObject* obj,
                  GAsyncResult* res);
static void ___lambda54_ (ProtonPlusWidgetsToolsSTLReleaseRow* self);
static void ____lambda54__adw_dialog_closed (AdwDialog* _sender,
                                      gpointer self);
static void proton_plus_widgets_tools_stl_release_row_show_yad_compatibility_warning (ProtonPlusWidgetsToolsSTLReleaseRow* self);
static void proton_plus_widgets_tools_stl_release_row_external_install_check (ProtonPlusWidgetsToolsSTLReleaseRow* self);
static void ___lambda53__gasync_ready_callback (GObject* source_object,
                                         GAsyncResult* res,
                                         gpointer self);
static void proton_plus_widgets_tools_stl_release_row_real_customize_remove_dialog (ProtonPlusWidgetsToolsReleaseRow* base,
                                                                             ProtonPlusWidgetsToolsRemoveDialog* dialog);
static Block22Data* block22_data_ref (Block22Data* _data22_);
static void block22_data_unref (void * _userdata_);
static void __lambda59_ (Block22Data* _data22_);
static void ___lambda59__gtk_check_button_activate (GtkCheckButton* _sender,
                                             gpointer self);
static void proton_plus_widgets_tools_stl_release_row_dependency_check_data_free (gpointer _data);
static gboolean proton_plus_widgets_tools_stl_release_row_dependency_check_co (ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_);
static void proton_plus_widgets_tools_stl_release_row_dependency_check_ready (GObject* source_object,
                                                                       GAsyncResult* _res_,
                                                                       gpointer _user_data_);
static Block23Data* block23_data_ref (Block23Data* _data23_);
static void block23_data_unref (void * _userdata_);
static void __lambda55_ (Block23Data* _data23_,
                  const gchar* response);
static void ___lambda55__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                             const gchar* response,
                                             gpointer self);
static void __lambda58_ (Block23Data* _data23_);
static void ___lambda58__adw_dialog_closed (AdwDialog* _sender,
                                     gpointer self);
static Block24Data* block24_data_ref (Block24Data* _data24_);
static void block24_data_unref (void * _userdata_);
static void ___lambda56_ (Block24Data* _data24_,
                   const gchar* response);
static void ____lambda56__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                              const gchar* response,
                                              gpointer self);
static void ___lambda57_ (Block24Data* _data24_);
static void ____lambda57__adw_dialog_closed (AdwDialog* _sender,
                                      gpointer self);
static void proton_plus_widgets_tools_stl_release_row_finalize (GObject * obj);
static GType proton_plus_widgets_tools_stl_release_row_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static gssize _vala_array_length (gpointer array);

static inline gpointer
proton_plus_widgets_tools_stl_dependency_check_result_get_instance_private (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsToolsSTLDependencyCheckResult_private_offset);
}

ProtonPlusWidgetsToolsSTLDependencyCheckResult*
proton_plus_widgets_tools_stl_dependency_check_result_construct (GType object_type)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult * self = NULL;
	self = (ProtonPlusWidgetsToolsSTLDependencyCheckResult*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusWidgetsToolsSTLDependencyCheckResult*
proton_plus_widgets_tools_stl_dependency_check_result_new (void)
{
	return proton_plus_widgets_tools_stl_dependency_check_result_construct (PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT);
}

const gchar*
proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_missing_dependencies;
	result = _tmp0_;
	return result;
}

void
proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self,
                                                                                const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_missing_dependencies);
		self->priv->_missing_dependencies = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_has_incompatible_yad;
	return result;
}

void
proton_plus_widgets_tools_stl_dependency_check_result_set_has_incompatible_yad (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self,
                                                                                gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (self);
	if (old_value != value) {
		self->priv->_has_incompatible_yad = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY]);
	}
}

static void
proton_plus_widgets_tools_stl_dependency_check_result_class_init (ProtonPlusWidgetsToolsSTLDependencyCheckResultClass * klass,
                                                                  gpointer klass_data)
{
	proton_plus_widgets_tools_stl_dependency_check_result_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsToolsSTLDependencyCheckResult_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_tools_stl_dependency_check_result_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_tools_stl_dependency_check_result_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_tools_stl_dependency_check_result_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY, proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY] = g_param_spec_string ("missing-dependencies", "missing-dependencies", "missing-dependencies", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY, proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY] = g_param_spec_boolean ("has-incompatible-yad", "has-incompatible-yad", "has-incompatible-yad", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
proton_plus_widgets_tools_stl_dependency_check_result_instance_init (ProtonPlusWidgetsToolsSTLDependencyCheckResult * self,
                                                                     gpointer klass)
{
	gchar* _tmp0_;
	self->priv = proton_plus_widgets_tools_stl_dependency_check_result_get_instance_private (self);
	_tmp0_ = g_strdup ("");
	self->priv->_missing_dependencies = _tmp0_;
	self->priv->_has_incompatible_yad = FALSE;
}

static void
proton_plus_widgets_tools_stl_dependency_check_result_finalize (GObject * obj)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResult);
	_g_free0 (self->priv->_missing_dependencies);
	G_OBJECT_CLASS (proton_plus_widgets_tools_stl_dependency_check_result_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_tools_stl_dependency_check_result_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsToolsSTLDependencyCheckResultClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_tools_stl_dependency_check_result_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsToolsSTLDependencyCheckResult), 0, (GInstanceInitFunc) proton_plus_widgets_tools_stl_dependency_check_result_instance_init, NULL };
	GType proton_plus_widgets_tools_stl_dependency_check_result_type_id;
	proton_plus_widgets_tools_stl_dependency_check_result_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsToolsSTLDependencyCheckResult", &g_define_type_info, 0);
	ProtonPlusWidgetsToolsSTLDependencyCheckResult_private_offset = g_type_add_instance_private (proton_plus_widgets_tools_stl_dependency_check_result_type_id, sizeof (ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate));
	return proton_plus_widgets_tools_stl_dependency_check_result_type_id;
}

GType
proton_plus_widgets_tools_stl_dependency_check_result_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_stl_dependency_check_result_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_stl_dependency_check_result_type_id__once)) {
		GType proton_plus_widgets_tools_stl_dependency_check_result_type_id;
		proton_plus_widgets_tools_stl_dependency_check_result_type_id = proton_plus_widgets_tools_stl_dependency_check_result_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_stl_dependency_check_result_type_id__once, proton_plus_widgets_tools_stl_dependency_check_result_type_id);
	}
	return proton_plus_widgets_tools_stl_dependency_check_result_type_id__once;
}

static void
_vala_proton_plus_widgets_tools_stl_dependency_check_result_get_property (GObject * object,
                                                                          guint property_id,
                                                                          GValue * value,
                                                                          GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResult);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_tools_stl_dependency_check_result_set_property (GObject * object,
                                                                          guint property_id,
                                                                          const GValue * value,
                                                                          GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResult);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY:
		proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY:
		proton_plus_widgets_tools_stl_dependency_check_result_set_has_incompatible_yad (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_tools_stl_release_row_get_instance_private (ProtonPlusWidgetsToolsSTLReleaseRow* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsToolsSTLReleaseRow_private_offset);
}

ProtonPlusWidgetsToolsSTLReleaseRow*
proton_plus_widgets_tools_stl_release_row_construct (GType object_type,
                                                     ProtonPlusServicesInstallJob* job)
{
	ProtonPlusWidgetsToolsSTLReleaseRow * self = NULL;
	g_return_val_if_fail (job != NULL, NULL);
	self = (ProtonPlusWidgetsToolsSTLReleaseRow*) proton_plus_widgets_tools_release_row_construct (object_type, job);
	return self;
}

ProtonPlusWidgetsToolsSTLReleaseRow*
proton_plus_widgets_tools_stl_release_row_new (ProtonPlusServicesInstallJob* job)
{
	return proton_plus_widgets_tools_stl_release_row_construct (PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, job);
}

static void
___lambda54_ (ProtonPlusWidgetsToolsSTLReleaseRow* self)
{
	self->priv->install_request_in_progress = FALSE;
}

static void
____lambda54__adw_dialog_closed (AdwDialog* _sender,
                                 gpointer self)
{
	___lambda54_ ((ProtonPlusWidgetsToolsSTLReleaseRow*) self);
}

static void
__lambda53_ (ProtonPlusWidgetsToolsSTLReleaseRow* self,
             GObject* obj,
             GAsyncResult* res)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _result_ = NULL;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp0_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp18_;
	gboolean _tmp19_;
	gboolean _tmp20_;
	g_return_if_fail (res != NULL);
	_tmp0_ = proton_plus_widgets_tools_stl_release_row_dependency_check_finish (self, res);
	_result_ = _tmp0_;
	_tmp1_ = _result_;
	_tmp2_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_tmp1_);
	_tmp3_ = _tmp2_;
	if (g_strcmp0 (_tmp3_, "") != 0) {
		ProtonPlusWidgetsMainWarningDialog* alert_dialog = NULL;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp8_;
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		ProtonPlusWidgetsMainWarningDialog* _tmp13_;
		ProtonPlusWidgetsMainWarningDialog* _tmp14_;
		ProtonPlusWidgetsMainWarningDialog* _tmp15_;
		ProtonPlusWidgetsMainWarningDialog* _tmp16_;
		GtkRoot* _tmp17_;
		_tmp4_ = adw_preferences_row_get_title ((AdwPreferencesRow*) self);
		_tmp5_ = _tmp4_;
		_tmp6_ = g_strdup_printf (_ ("You are missing the following dependencies for %s:"), _tmp5_);
		_tmp7_ = _tmp6_;
		_tmp8_ = _result_;
		_tmp9_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp11_ = g_strdup_printf ("%s\n\n%s\n%s", _tmp7_, _tmp10_, _ ("Installation will be canceled."));
		_tmp12_ = _tmp11_;
		_tmp13_ = proton_plus_widgets_main_warning_dialog_new (_ ("Warning"), _tmp12_);
		g_object_ref_sink (_tmp13_);
		_tmp14_ = _tmp13_;
		_g_free0 (_tmp12_);
		_g_free0 (_tmp7_);
		alert_dialog = _tmp14_;
		_tmp15_ = alert_dialog;
		g_signal_connect_object ((AdwDialog*) _tmp15_, "closed", (GCallback) ____lambda54__adw_dialog_closed, self, 0);
		_tmp16_ = alert_dialog;
		_tmp17_ = gtk_widget_get_root ((GtkWidget*) self);
		proton_plus_widgets_window_present_dialog_for_controller ((AdwDialog*) _tmp16_, (GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_window_get_type (), GtkWindow));
		_g_object_unref0 (alert_dialog);
		_g_object_unref0 (_result_);
		return;
	}
	_tmp18_ = _result_;
	_tmp19_ = proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (_tmp18_);
	_tmp20_ = _tmp19_;
	if (_tmp20_) {
		proton_plus_widgets_tools_stl_release_row_show_yad_compatibility_warning (self);
		_g_object_unref0 (_result_);
		return;
	}
	proton_plus_widgets_tools_stl_release_row_external_install_check (self);
	_g_object_unref0 (_result_);
}

static void
___lambda53__gasync_ready_callback (GObject* source_object,
                                    GAsyncResult* res,
                                    gpointer self)
{
	__lambda53_ ((ProtonPlusWidgetsToolsSTLReleaseRow*) self, source_object, res);
	g_object_unref (self);
}

static void
proton_plus_widgets_tools_stl_release_row_real_install_button_clicked (ProtonPlusWidgetsToolsReleaseRow* base)
{
	ProtonPlusWidgetsToolsSTLReleaseRow * self;
	self = (ProtonPlusWidgetsToolsSTLReleaseRow*) base;
	if (self->priv->install_request_in_progress) {
		return;
	}
	self->priv->install_request_in_progress = TRUE;
	proton_plus_widgets_tools_stl_release_row_dependency_check (self, ___lambda53__gasync_ready_callback, g_object_ref (self));
}

static Block22Data*
block22_data_ref (Block22Data* _data22_)
{
	g_atomic_int_inc (&_data22_->_ref_count_);
	return _data22_;
}

static void
block22_data_unref (void * _userdata_)
{
	Block22Data* _data22_;
	_data22_ = (Block22Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data22_->_ref_count_)) {
		ProtonPlusWidgetsToolsSTLReleaseRow* self;
		self = _data22_->self;
		_g_object_unref0 (_data22_->remove_config_check);
		_g_object_unref0 (_data22_->context);
		_g_object_unref0 (self);
		g_slice_free (Block22Data, _data22_);
	}
}

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

static void
__lambda59_ (Block22Data* _data22_)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp0_;
	GtkCheckButton* _tmp1_;
	self = _data22_->self;
	_tmp0_ = _data22_->context;
	_tmp1_ = _data22_->remove_config_check;
	proton_plus_services_steam_tinker_launch_context_set_remove_config (_tmp0_, gtk_check_button_get_active (_tmp1_));
}

static void
___lambda59__gtk_check_button_activate (GtkCheckButton* _sender,
                                        gpointer self)
{
	__lambda59_ (self);
}

static void
proton_plus_widgets_tools_stl_release_row_real_customize_remove_dialog (ProtonPlusWidgetsToolsReleaseRow* base,
                                                                        ProtonPlusWidgetsToolsRemoveDialog* dialog)
{
	ProtonPlusWidgetsToolsSTLReleaseRow * self;
	Block22Data* _data22_;
	ProtonPlusServicesInstallJob* _tmp0_;
	ProtonPlusServicesInstallJob* _tmp1_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp2_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp3_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp4_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp5_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp6_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp7_;
	GtkCheckButton* _tmp8_;
	GtkCheckButton* _tmp9_;
	GtkCheckButton* _tmp10_;
	self = (ProtonPlusWidgetsToolsSTLReleaseRow*) base;
	g_return_if_fail (dialog != NULL);
	_data22_ = g_slice_new0 (Block22Data);
	_data22_->_ref_count_ = 1;
	_data22_->self = g_object_ref (self);
	_tmp0_ = proton_plus_widgets_tools_release_row_get_job ((ProtonPlusWidgetsToolsReleaseRow*) self);
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_services_install_job_get_steam_tinker_launch_context (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = _g_object_ref0 (_tmp3_);
	_data22_->context = _tmp4_;
	_tmp5_ = _data22_->context;
	if (_tmp5_ == NULL) {
		block22_data_unref (_data22_);
		_data22_ = NULL;
		return;
	}
	_tmp6_ = _data22_->context;
	proton_plus_services_steam_tinker_launch_context_set_remove_config (_tmp6_, FALSE);
	_tmp7_ = _data22_->context;
	proton_plus_services_steam_tinker_launch_context_set_user_requested_removal (_tmp7_, TRUE);
	_tmp8_ = (GtkCheckButton*) gtk_check_button_new_with_label (_ ("Check this to also delete your configuration files."));
	g_object_ref_sink (_tmp8_);
	_data22_->remove_config_check = _tmp8_;
	_tmp9_ = _data22_->remove_config_check;
	g_signal_connect_data (_tmp9_, "activate", (GCallback) ___lambda59__gtk_check_button_activate, block22_data_ref (_data22_), (GClosureNotify) block22_data_unref, 0);
	_tmp10_ = _data22_->remove_config_check;
	adw_alert_dialog_set_extra_child ((AdwAlertDialog*) dialog, (GtkWidget*) _tmp10_);
	block22_data_unref (_data22_);
	_data22_ = NULL;
}

static void
proton_plus_widgets_tools_stl_release_row_dependency_check_data_free (gpointer _data)
{
	ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->result);
	_g_object_unref0 (_data_->self);
	g_slice_free (ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData, _data_);
}

static void
proton_plus_widgets_tools_stl_release_row_dependency_check (ProtonPlusWidgetsToolsSTLReleaseRow* self,
                                                            GAsyncReadyCallback _callback_,
                                                            gpointer _user_data_)
{
	ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData);
	_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_tools_stl_release_row_dependency_check_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	proton_plus_widgets_tools_stl_release_row_dependency_check_co (_data_);
}

static ProtonPlusWidgetsToolsSTLDependencyCheckResult*
proton_plus_widgets_tools_stl_release_row_dependency_check_finish (ProtonPlusWidgetsToolsSTLReleaseRow* self,
                                                                   GAsyncResult* _res_)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* result;
	ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	result = _data_->result;
	_data_->result = NULL;
	return result;
}

static void
proton_plus_widgets_tools_stl_release_row_dependency_check_ready (GObject* source_object,
                                                                  GAsyncResult* _res_,
                                                                  gpointer _user_data_)
{
	ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	proton_plus_widgets_tools_stl_release_row_dependency_check_co (_data_);
}

static gboolean
proton_plus_widgets_tools_stl_release_row_dependency_check_co (ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		case 4:
		goto _state_4;
		case 5:
		goto _state_5;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = proton_plus_widgets_tools_stl_dependency_check_result_new ();
	_data_->_result_ = _data_->_tmp0_;
	_data_->yad_status = PROTON_PLUS_SERVICES_STEAM_TINKER_LAUNCH_YAD_COMPATIBILITY_STATUS_UNKNOWN;
	_data_->_state_ = 1;
	proton_plus_utils_system_check_dependency ("yad", proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
	return FALSE;
	_state_1:
	if (proton_plus_utils_system_check_dependency_finish (_data_->_res_)) {
		_data_->_state_ = 2;
		proton_plus_utils_system_run_command ("yad --version", proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp1_ = proton_plus_utils_system_run_command_finish (_data_->_res_);
		_data_->yad_version = _data_->_tmp1_;
		_data_->_tmp2_ = _data_->yad_version;
		_data_->_tmp3_ = proton_plus_utils_command_result_get_exit_status (_data_->_tmp2_);
		_data_->_tmp4_ = _data_->_tmp3_;
		if (_data_->_tmp4_ == 0) {
			_data_->_tmp5_ = _data_->yad_version;
			_data_->_tmp6_ = proton_plus_utils_command_result_get_stdout (_data_->_tmp5_);
			_data_->_tmp7_ = _data_->_tmp6_;
			_data_->yad_status = proton_plus_services_steam_tinker_launch_yad_compatibility_classify_version_output (_data_->_tmp7_);
		}
		_g_object_unref0 (_data_->yad_version);
	}
	_data_->_tmp8_ = _data_->_result_;
	proton_plus_widgets_tools_stl_dependency_check_result_set_has_incompatible_yad (_data_->_tmp8_, _data_->yad_status == PROTON_PLUS_SERVICES_STEAM_TINKER_LAUNCH_YAD_COMPATIBILITY_STATUS_INCOMPATIBLE_15);
	if (proton_plus_globals_IS_STEAM_OS) {
		_data_->result = _data_->_result_;
		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;
	}
	if (_data_->yad_status == PROTON_PLUS_SERVICES_STEAM_TINKER_LAUNCH_YAD_COMPATIBILITY_STATUS_UNKNOWN) {
		_data_->_tmp9_ = TRUE;
	} else {
		_data_->_tmp9_ = _data_->yad_status == PROTON_PLUS_SERVICES_STEAM_TINKER_LAUNCH_YAD_COMPATIBILITY_STATUS_TOO_OLD;
	}
	if (_data_->_tmp9_) {
		_data_->_tmp10_ = _data_->_result_;
		_data_->_tmp11_ = _data_->_result_;
		_data_->_tmp12_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_data_->_tmp11_);
		_data_->_tmp13_ = _data_->_tmp12_;
		_data_->_tmp14_ = g_strconcat (_data_->_tmp13_, "yad >= 7.2\n", NULL);
		_data_->_tmp15_ = _data_->_tmp14_;
		proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (_data_->_tmp11_, _data_->_tmp15_);
		_g_free0 (_data_->_tmp15_);
	}
	_data_->_state_ = 3;
	proton_plus_utils_system_check_dependency ("awk", proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
	return FALSE;
	_state_3:
	if (!proton_plus_utils_system_check_dependency_finish (_data_->_res_)) {
		_data_->_state_ = 4;
		proton_plus_utils_system_check_dependency ("gawk", proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
		return FALSE;
		_state_4:
		_data_->_tmp16_ = !proton_plus_utils_system_check_dependency_finish (_data_->_res_);
	} else {
		_data_->_tmp16_ = FALSE;
	}
	if (_data_->_tmp16_) {
		_data_->_tmp17_ = _data_->_result_;
		_data_->_tmp18_ = _data_->_result_;
		_data_->_tmp19_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_data_->_tmp18_);
		_data_->_tmp20_ = _data_->_tmp19_;
		_data_->_tmp21_ = g_strconcat (_data_->_tmp20_, "awk/gawk\n", NULL);
		_data_->_tmp22_ = _data_->_tmp21_;
		proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (_data_->_tmp18_, _data_->_tmp22_);
		_g_free0 (_data_->_tmp22_);
	}
	_data_->_tmp23_ = g_strdup ("git");
	_data_->_tmp24_ = g_strdup ("pgrep");
	_data_->_tmp25_ = g_strdup ("unzip");
	_data_->_tmp26_ = g_strdup ("wget");
	_data_->_tmp27_ = g_strdup ("xdotool");
	_data_->_tmp28_ = g_strdup ("xprop");
	_data_->_tmp29_ = g_strdup ("xrandr");
	_data_->_tmp30_ = g_strdup ("xxd");
	_data_->_tmp31_ = g_strdup ("xwininfo");
	_data_->_tmp32_ = g_new0 (gchar*, 9 + 1);
	_data_->_tmp32_[0] = _data_->_tmp23_;
	_data_->_tmp32_[1] = _data_->_tmp24_;
	_data_->_tmp32_[2] = _data_->_tmp25_;
	_data_->_tmp32_[3] = _data_->_tmp26_;
	_data_->_tmp32_[4] = _data_->_tmp27_;
	_data_->_tmp32_[5] = _data_->_tmp28_;
	_data_->_tmp32_[6] = _data_->_tmp29_;
	_data_->_tmp32_[7] = _data_->_tmp30_;
	_data_->_tmp32_[8] = _data_->_tmp31_;
	_data_->dependencies = _data_->_tmp32_;
	_data_->dependencies_length1 = 9;
	_data_->_dependencies_size_ = _data_->dependencies_length1;
	_data_->_tmp33_ = _data_->dependencies;
	_data_->_tmp33__length1 = _data_->dependencies_length1;
	{
		_data_->dependency_collection_length1 = 0;
		_data_->_dependency_collection_size_ = 0;
		_data_->dependency_collection = _data_->_tmp33_;
		_data_->dependency_collection_length1 = _data_->_tmp33__length1;
		for (_data_->dependency_it = 0; _data_->dependency_it < _data_->dependency_collection_length1; _data_->dependency_it = _data_->dependency_it + 1) {
			_data_->_tmp34_ = g_strdup (_data_->dependency_collection[_data_->dependency_it]);
			_data_->dependency = _data_->_tmp34_;
			{
				_data_->_tmp35_ = _data_->dependency;
				_data_->_state_ = 5;
				proton_plus_utils_system_check_dependency (_data_->_tmp35_, proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
				return FALSE;
				_state_5:
				if (!proton_plus_utils_system_check_dependency_finish (_data_->_res_)) {
					_data_->_tmp36_ = _data_->_result_;
					_data_->_tmp37_ = _data_->_result_;
					_data_->_tmp38_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_data_->_tmp37_);
					_data_->_tmp39_ = _data_->_tmp38_;
					_data_->_tmp40_ = _data_->dependency;
					_data_->_tmp41_ = g_strdup_printf ("%s\n", _data_->_tmp40_);
					_data_->_tmp42_ = _data_->_tmp41_;
					_data_->_tmp43_ = g_strconcat (_data_->_tmp39_, _data_->_tmp42_, NULL);
					_data_->_tmp44_ = _data_->_tmp43_;
					proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (_data_->_tmp37_, _data_->_tmp44_);
					_g_free0 (_data_->_tmp44_);
					_g_free0 (_data_->_tmp42_);
				}
				_g_free0 (_data_->dependency);
			}
		}
	}
	_data_->result = _data_->_result_;
	_data_->dependencies = (_vala_array_free (_data_->dependencies, _data_->dependencies_length1, (GDestroyNotify) g_free), NULL);
	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 Block23Data*
block23_data_ref (Block23Data* _data23_)
{
	g_atomic_int_inc (&_data23_->_ref_count_);
	return _data23_;
}

static void
block23_data_unref (void * _userdata_)
{
	Block23Data* _data23_;
	_data23_ = (Block23Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data23_->_ref_count_)) {
		ProtonPlusWidgetsToolsSTLReleaseRow* self;
		self = _data23_->self;
		_g_object_unref0 (self);
		g_slice_free (Block23Data, _data23_);
	}
}

static void
__lambda55_ (Block23Data* _data23_,
             const gchar* response)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	self = _data23_->self;
	g_return_if_fail (response != NULL);
	if (g_strcmp0 (response, "install") != 0) {
		self->priv->install_request_in_progress = FALSE;
		return;
	}
	if (_data23_->installation_continued) {
		return;
	}
	_data23_->installation_continued = TRUE;
	proton_plus_widgets_tools_stl_release_row_external_install_check (self);
}

static void
___lambda55__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                        const gchar* response,
                                        gpointer self)
{
	__lambda55_ (self, response);
}

static void
__lambda58_ (Block23Data* _data23_)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	self = _data23_->self;
	if (!_data23_->installation_continued) {
		self->priv->install_request_in_progress = FALSE;
	}
}

static void
___lambda58__adw_dialog_closed (AdwDialog* _sender,
                                gpointer self)
{
	__lambda58_ (self);
}

static void
proton_plus_widgets_tools_stl_release_row_show_yad_compatibility_warning (ProtonPlusWidgetsToolsSTLReleaseRow* self)
{
	Block23Data* _data23_;
	AdwAlertDialog* alert_dialog = NULL;
	AdwAlertDialog* _tmp0_;
	GtkRoot* _tmp1_;
	g_return_if_fail (self != NULL);
	_data23_ = g_slice_new0 (Block23Data);
	_data23_->_ref_count_ = 1;
	_data23_->self = g_object_ref (self);
	_tmp0_ = (AdwAlertDialog*) adw_alert_dialog_new (_ ("SteamTinkerLaunch may not work"), _ ("YAD 15 is currently incompatible with SteamTinkerLaunch. SteamTinkerLa" \
"unch may fail to start even if ProtonPlus installs it successfully.\n" \
"\n" \
"This is a SteamTinkerLaunch compatibility issue, not a ProtonPlus inst" \
"allation problem."));
	g_object_ref_sink (_tmp0_);
	alert_dialog = _tmp0_;
	adw_alert_dialog_add_response (alert_dialog, "cancel", _ ("Cancel"));
	adw_alert_dialog_add_response (alert_dialog, "install", _ ("Install Anyway"));
	adw_alert_dialog_set_default_response (alert_dialog, "cancel");
	adw_alert_dialog_set_close_response (alert_dialog, "cancel");
	adw_alert_dialog_set_response_appearance (alert_dialog, "install", ADW_RESPONSE_SUGGESTED);
	_data23_->installation_continued = FALSE;
	g_signal_connect_data (alert_dialog, "response", (GCallback) ___lambda55__adw_alert_dialog_response, block23_data_ref (_data23_), (GClosureNotify) block23_data_unref, 0);
	g_signal_connect_data ((AdwDialog*) alert_dialog, "closed", (GCallback) ___lambda58__adw_dialog_closed, block23_data_ref (_data23_), (GClosureNotify) block23_data_unref, 0);
	_tmp1_ = gtk_widget_get_root ((GtkWidget*) self);
	proton_plus_widgets_window_present_dialog_for_controller ((AdwDialog*) alert_dialog, (GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_window_get_type (), GtkWindow));
	_g_object_unref0 (alert_dialog);
	block23_data_unref (_data23_);
	_data23_ = NULL;
}

static Block24Data*
block24_data_ref (Block24Data* _data24_)
{
	g_atomic_int_inc (&_data24_->_ref_count_);
	return _data24_;
}

static void
block24_data_unref (void * _userdata_)
{
	Block24Data* _data24_;
	_data24_ = (Block24Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data24_->_ref_count_)) {
		ProtonPlusWidgetsToolsSTLReleaseRow* self;
		self = _data24_->self;
		_g_object_unref0 (self);
		g_slice_free (Block24Data, _data24_);
	}
}

static void
___lambda56_ (Block24Data* _data24_,
              const gchar* response)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	self = _data24_->self;
	g_return_if_fail (response != NULL);
	if (g_strcmp0 (response, "yes") != 0) {
		self->priv->install_request_in_progress = FALSE;
		return;
	}
	if (_data24_->installation_started) {
		return;
	}
	_data24_->installation_started = TRUE;
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_CLASS (proton_plus_widgets_tools_stl_release_row_parent_class)->install_button_clicked (G_TYPE_CHECK_INSTANCE_CAST (self, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW, ProtonPlusWidgetsToolsReleaseRow));
	self->priv->install_request_in_progress = FALSE;
}

static void
____lambda56__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                         const gchar* response,
                                         gpointer self)
{
	___lambda56_ (self, response);
}

static void
___lambda57_ (Block24Data* _data24_)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* self;
	self = _data24_->self;
	if (!_data24_->installation_started) {
		self->priv->install_request_in_progress = FALSE;
	}
}

static void
____lambda57__adw_dialog_closed (AdwDialog* _sender,
                                 gpointer self)
{
	___lambda57_ (self);
}

static void
proton_plus_widgets_tools_stl_release_row_external_install_check (ProtonPlusWidgetsToolsSTLReleaseRow* self)
{
	gboolean has_external_install = FALSE;
	ProtonPlusServicesInstallationService* _tmp0_;
	ProtonPlusServicesInstallationService* _tmp1_;
	ProtonPlusServicesInstallJob* _tmp2_;
	ProtonPlusServicesInstallJob* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = proton_plus_services_installation_service_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_widgets_tools_release_row_get_job ((ProtonPlusWidgetsToolsReleaseRow*) self);
	_tmp3_ = _tmp2_;
	has_external_install = proton_plus_services_installation_service_detect_steam_tinker_launch_external_installations (_tmp1_, _tmp3_);
	if (has_external_install) {
		Block24Data* _data24_;
		AdwAlertDialog* alert_dialog = NULL;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		gchar** _tmp6_;
		gchar** _tmp7_;
		gchar** _tmp8_;
		gint _tmp8__length1;
		const gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		AdwAlertDialog* _tmp14_;
		AdwAlertDialog* _tmp15_;
		AdwAlertDialog* _tmp16_;
		AdwAlertDialog* _tmp17_;
		AdwAlertDialog* _tmp18_;
		AdwAlertDialog* _tmp19_;
		AdwAlertDialog* _tmp20_;
		AdwAlertDialog* _tmp21_;
		AdwAlertDialog* _tmp22_;
		GtkRoot* _tmp23_;
		_data24_ = g_slice_new0 (Block24Data);
		_data24_->_ref_count_ = 1;
		_data24_->self = g_object_ref (self);
		_tmp4_ = adw_preferences_row_get_title ((AdwPreferencesRow*) self);
		_tmp5_ = _tmp4_;
		_tmp7_ = _tmp6_ = g_strsplit (_tmp5_, " ", 0);
		_tmp8_ = _tmp7_;
		_tmp8__length1 = _vala_array_length (_tmp6_);
		_tmp9_ = _tmp8_[0];
		_tmp10_ = g_strdup_printf (_ ("It looks like you currently have another version of %s which was not i" \
"nstalled by ProtonPlus."), _tmp9_);
		_tmp11_ = _tmp10_;
		_tmp12_ = g_strdup_printf ("%s\n\n%s", _tmp11_, _ ("Do you want to reinstall it with ProtonPlus?"));
		_tmp13_ = _tmp12_;
		_tmp14_ = (AdwAlertDialog*) adw_alert_dialog_new (_ ("Warning"), _tmp13_);
		g_object_ref_sink (_tmp14_);
		_tmp15_ = _tmp14_;
		_g_free0 (_tmp13_);
		_g_free0 (_tmp11_);
		_tmp8_ = (_vala_array_free (_tmp8_, _tmp8__length1, (GDestroyNotify) g_free), NULL);
		alert_dialog = _tmp15_;
		_tmp16_ = alert_dialog;
		adw_alert_dialog_add_response (_tmp16_, "no", _ ("No"));
		_tmp17_ = alert_dialog;
		adw_alert_dialog_add_response (_tmp17_, "yes", _ ("Yes"));
		_tmp18_ = alert_dialog;
		adw_alert_dialog_set_response_appearance (_tmp18_, "no", ADW_RESPONSE_DEFAULT);
		_tmp19_ = alert_dialog;
		adw_alert_dialog_set_response_appearance (_tmp19_, "yes", ADW_RESPONSE_DESTRUCTIVE);
		_data24_->installation_started = FALSE;
		_tmp20_ = alert_dialog;
		g_signal_connect_data (_tmp20_, "response", (GCallback) ____lambda56__adw_alert_dialog_response, block24_data_ref (_data24_), (GClosureNotify) block24_data_unref, 0);
		_tmp21_ = alert_dialog;
		g_signal_connect_data ((AdwDialog*) _tmp21_, "closed", (GCallback) ____lambda57__adw_dialog_closed, block24_data_ref (_data24_), (GClosureNotify) block24_data_unref, 0);
		_tmp22_ = alert_dialog;
		_tmp23_ = gtk_widget_get_root ((GtkWidget*) self);
		proton_plus_widgets_window_present_dialog_for_controller ((AdwDialog*) _tmp22_, (GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_window_get_type (), GtkWindow));
		_g_object_unref0 (alert_dialog);
		block24_data_unref (_data24_);
		_data24_ = NULL;
	} else {
		PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_CLASS (proton_plus_widgets_tools_stl_release_row_parent_class)->install_button_clicked (G_TYPE_CHECK_INSTANCE_CAST (self, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW, ProtonPlusWidgetsToolsReleaseRow));
		self->priv->install_request_in_progress = FALSE;
	}
}

static void
proton_plus_widgets_tools_stl_release_row_class_init (ProtonPlusWidgetsToolsSTLReleaseRowClass * klass,
                                                      gpointer klass_data)
{
	proton_plus_widgets_tools_stl_release_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsToolsSTLReleaseRow_private_offset);
	((ProtonPlusWidgetsToolsReleaseRowClass *) klass)->install_button_clicked = (void (*) (ProtonPlusWidgetsToolsReleaseRow*)) proton_plus_widgets_tools_stl_release_row_real_install_button_clicked;
	((ProtonPlusWidgetsToolsReleaseRowClass *) klass)->customize_remove_dialog = (void (*) (ProtonPlusWidgetsToolsReleaseRow*, ProtonPlusWidgetsToolsRemoveDialog*)) proton_plus_widgets_tools_stl_release_row_real_customize_remove_dialog;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_tools_stl_release_row_finalize;
}

static void
proton_plus_widgets_tools_stl_release_row_instance_init (ProtonPlusWidgetsToolsSTLReleaseRow * self,
                                                         gpointer klass)
{
	self->priv = proton_plus_widgets_tools_stl_release_row_get_instance_private (self);
	self->priv->install_request_in_progress = FALSE;
}

static void
proton_plus_widgets_tools_stl_release_row_finalize (GObject * obj)
{
	ProtonPlusWidgetsToolsSTLReleaseRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow);
	G_OBJECT_CLASS (proton_plus_widgets_tools_stl_release_row_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_tools_stl_release_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsToolsSTLReleaseRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_tools_stl_release_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsToolsSTLReleaseRow), 0, (GInstanceInitFunc) proton_plus_widgets_tools_stl_release_row_instance_init, NULL };
	GType proton_plus_widgets_tools_stl_release_row_type_id;
	proton_plus_widgets_tools_stl_release_row_type_id = g_type_register_static (PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW, "ProtonPlusWidgetsToolsSTLReleaseRow", &g_define_type_info, 0);
	ProtonPlusWidgetsToolsSTLReleaseRow_private_offset = g_type_add_instance_private (proton_plus_widgets_tools_stl_release_row_type_id, sizeof (ProtonPlusWidgetsToolsSTLReleaseRowPrivate));
	return proton_plus_widgets_tools_stl_release_row_type_id;
}

GType
proton_plus_widgets_tools_stl_release_row_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_stl_release_row_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_stl_release_row_type_id__once)) {
		GType proton_plus_widgets_tools_stl_release_row_type_id;
		proton_plus_widgets_tools_stl_release_row_type_id = proton_plus_widgets_tools_stl_release_row_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_stl_release_row_type_id__once, proton_plus_widgets_tools_stl_release_row_type_id);
	}
	return proton_plus_widgets_tools_stl_release_row_type_id__once;
}

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

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

static gssize
_vala_array_length (gpointer array)
{
	gssize length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}

