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

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

enum  {
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_0_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_STACK_SWITCHER_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_HEADER_BOX_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_tools_release_box_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
enum  {
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_SELECTION_CHANGED_SIGNAL,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_NUM_SIGNALS
};
static guint proton_plus_widgets_tools_release_box_signals[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_NUM_SIGNALS] = {0};

struct _ProtonPlusWidgetsToolsReleaseBoxPrivate {
	AdwViewSwitcher* _stack_switcher;
	GtkBox* _tool_box;
	GtkLabel* _title_label;
	GtkLabel* _desc_label;
	ProtonPlusWidgetsToolsReleaseChangelog* _desc_text;
	GtkBox* _header_box;
	GtkListBox* _list_box;
	GtkCheckButton* _check_button;
	AdwViewStack* _content_stack;
	AdwStatusPage* _status_page;
	GtkScrolledWindow* _scrolled_games;
	GtkBox* _list_header_box;
	AdwViewStackPage* _games_page;
};

static gint ProtonPlusWidgetsToolsReleaseBox_private_offset;
static gpointer proton_plus_widgets_tools_release_box_parent_class = NULL;

static void proton_plus_widgets_tools_release_box_set_title_label (ProtonPlusWidgetsToolsReleaseBox* self,
                                                            GtkLabel* value);
static void proton_plus_widgets_tools_release_box_set_desc_label (ProtonPlusWidgetsToolsReleaseBox* self,
                                                           GtkLabel* value);
static GtkLabel* proton_plus_widgets_tools_release_box_get_title_label (ProtonPlusWidgetsToolsReleaseBox* self);
static GtkLabel* proton_plus_widgets_tools_release_box_get_desc_label (ProtonPlusWidgetsToolsReleaseBox* self);
static void proton_plus_widgets_tools_release_box_set_header_box (ProtonPlusWidgetsToolsReleaseBox* self,
                                                           GtkBox* value);
static void proton_plus_widgets_tools_release_box_set_content_stack (ProtonPlusWidgetsToolsReleaseBox* self,
                                                              AdwViewStack* value);
static AdwViewStack* proton_plus_widgets_tools_release_box_get_content_stack (ProtonPlusWidgetsToolsReleaseBox* self);
static void proton_plus_widgets_tools_release_box_set_desc_text (ProtonPlusWidgetsToolsReleaseBox* self,
                                                          ProtonPlusWidgetsToolsReleaseChangelog* value);
static void proton_plus_widgets_tools_release_box_set_list_box (ProtonPlusWidgetsToolsReleaseBox* self,
                                                         GtkListBox* value);
static GtkListBox* proton_plus_widgets_tools_release_box_get_list_box (ProtonPlusWidgetsToolsReleaseBox* self);
static void proton_plus_widgets_tools_release_box_set_scrolled_games (ProtonPlusWidgetsToolsReleaseBox* self,
                                                               GtkScrolledWindow* value);
static void proton_plus_widgets_tools_release_box_set_check_button (ProtonPlusWidgetsToolsReleaseBox* self,
                                                             GtkCheckButton* value);
static GtkCheckButton* proton_plus_widgets_tools_release_box_get_check_button (ProtonPlusWidgetsToolsReleaseBox* self);
static void __lambda71_ (ProtonPlusWidgetsToolsReleaseBox* self);
static void ___lambda71__gtk_check_button_toggled (GtkCheckButton* _sender,
                                            gpointer self);
static void proton_plus_widgets_tools_release_box_set_list_header_box (ProtonPlusWidgetsToolsReleaseBox* self,
                                                                GtkBox* value);
static GtkBox* proton_plus_widgets_tools_release_box_get_list_header_box (ProtonPlusWidgetsToolsReleaseBox* self);
static void proton_plus_widgets_tools_release_box_set_status_page (ProtonPlusWidgetsToolsReleaseBox* self,
                                                            AdwStatusPage* value);
static GtkScrolledWindow* proton_plus_widgets_tools_release_box_get_scrolled_games (ProtonPlusWidgetsToolsReleaseBox* self);
static AdwStatusPage* proton_plus_widgets_tools_release_box_get_status_page (ProtonPlusWidgetsToolsReleaseBox* self);
static ProtonPlusWidgetsToolsReleaseChangelog* proton_plus_widgets_tools_release_box_get_desc_text (ProtonPlusWidgetsToolsReleaseBox* self);
static void proton_plus_widgets_tools_release_box_set_games_page (ProtonPlusWidgetsToolsReleaseBox* self,
                                                           AdwViewStackPage* value);
static void proton_plus_widgets_tools_release_box_set_tool_box (ProtonPlusWidgetsToolsReleaseBox* self,
                                                         GtkBox* value);
static GtkBox* proton_plus_widgets_tools_release_box_get_tool_box (ProtonPlusWidgetsToolsReleaseBox* self);
static AdwViewStackPage* proton_plus_widgets_tools_release_box_get_games_page (ProtonPlusWidgetsToolsReleaseBox* self);
static void _____lambda72_ (ProtonPlusWidgetsToolsReleaseBox* self);
static void ______lambda72__g_object_notify (GObject* _sender,
                                      GParamSpec* pspec,
                                      gpointer self);
static void proton_plus_widgets_tools_release_box_finalize (GObject * obj);
static GType proton_plus_widgets_tools_release_box_get_type_once (void);
static void _vala_proton_plus_widgets_tools_release_box_get_property (GObject * object,
                                                               guint property_id,
                                                               GValue * value,
                                                               GParamSpec * pspec);
static void _vala_proton_plus_widgets_tools_release_box_set_property (GObject * object,
                                                               guint property_id,
                                                               const GValue * value,
                                                               GParamSpec * pspec);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);

static inline gpointer
proton_plus_widgets_tools_release_box_get_instance_private (ProtonPlusWidgetsToolsReleaseBox* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsToolsReleaseBox_private_offset);
}

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

static void
__lambda71_ (ProtonPlusWidgetsToolsReleaseBox* self)
{
	gboolean is_active = FALSE;
	GtkCheckButton* _tmp0_;
	GtkWidget* child = NULL;
	GtkListBox* _tmp1_;
	GtkWidget* _tmp2_;
	GtkWidget* _tmp3_;
	_tmp0_ = self->priv->_check_button;
	is_active = gtk_check_button_get_active (_tmp0_);
	_tmp1_ = self->priv->_list_box;
	_tmp2_ = gtk_widget_get_first_child ((GtkWidget*) _tmp1_);
	_tmp3_ = _g_object_ref0 (_tmp2_);
	child = _tmp3_;
	while (TRUE) {
		GtkWidget* _tmp4_;
		GtkWidget* _tmp5_;
		GtkWidget* _tmp7_;
		GtkWidget* _tmp8_;
		GtkWidget* _tmp9_;
		_tmp4_ = child;
		if (!(_tmp4_ != NULL)) {
			break;
		}
		_tmp5_ = child;
		if (PROTON_PLUS_WIDGETS_TOOLS_IS_GAME_ROW (_tmp5_)) {
			GtkWidget* _tmp6_;
			_tmp6_ = child;
			proton_plus_widgets_tools_game_row_set_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_GAME_ROW, ProtonPlusWidgetsToolsGameRow), is_active);
		}
		_tmp7_ = child;
		_tmp8_ = gtk_widget_get_next_sibling (_tmp7_);
		_tmp9_ = _g_object_ref0 (_tmp8_);
		_g_object_unref0 (child);
		child = _tmp9_;
	}
	g_signal_emit (self, proton_plus_widgets_tools_release_box_signals[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_SELECTION_CHANGED_SIGNAL], 0);
	_g_object_unref0 (child);
}

static void
___lambda71__gtk_check_button_toggled (GtkCheckButton* _sender,
                                       gpointer self)
{
	__lambda71_ ((ProtonPlusWidgetsToolsReleaseBox*) self);
}

ProtonPlusWidgetsToolsReleaseBox*
proton_plus_widgets_tools_release_box_construct (GType object_type)
{
	ProtonPlusWidgetsToolsReleaseBox * self = NULL;
	GtkImage* icon = NULL;
	GtkImage* _tmp0_;
	gchar* _tmp1_;
	gchar** _tmp2_;
	GtkLabel* _tmp3_ = NULL;
	GtkLabel* _tmp4_;
	gchar* _tmp5_;
	gchar** _tmp6_;
	GtkLabel* _tmp7_ = NULL;
	GtkLabel* _tmp8_;
	GtkBox* title_box = NULL;
	GtkBox* _tmp9_ = NULL;
	GtkLabel* _tmp10_;
	GtkLabel* _tmp11_;
	GtkBox* _tmp12_ = NULL;
	GtkBox* _tmp13_;
	GtkBox* _tmp14_;
	GtkBox* _tmp15_;
	AdwViewStack* _tmp16_ = NULL;
	AdwViewStack* _tmp17_;
	AdwViewStack* _tmp18_;
	AdwViewStack* _tmp19_;
	AdwViewSwitcher* _tmp20_ = NULL;
	AdwViewSwitcher* _tmp21_;
	AdwViewSwitcher* _tmp22_;
	ProtonPlusWidgetsToolsReleaseChangelog* _tmp23_;
	ProtonPlusWidgetsToolsReleaseChangelog* _tmp24_;
	GtkListBox* _tmp25_ = NULL;
	GtkListBox* _tmp26_;
	GtkListBox* _tmp27_;
	GtkListBox* _tmp28_;
	GtkListBox* _tmp29_;
	GtkWidget* _tmp30_;
	GtkScrolledWindow* _tmp31_ = NULL;
	GtkScrolledWindow* _tmp32_;
	GtkCheckButton* _tmp33_;
	GtkCheckButton* _tmp34_;
	GtkCheckButton* _tmp35_;
	GtkCheckButton* _tmp36_;
	GtkLabel* name_label = NULL;
	GtkLabel* _tmp37_;
	GtkBox* _tmp38_;
	GtkBox* _tmp39_;
	GtkBox* _tmp40_;
	GtkBox* _tmp41_;
	GtkBox* _tmp42_;
	GtkBox* _tmp43_;
	GtkCheckButton* _tmp44_;
	GtkBox* _tmp45_;
	gchar* _tmp46_;
	gchar* _tmp47_;
	gchar* _tmp48_;
	AdwStatusPage* _tmp49_ = NULL;
	AdwStatusPage* _tmp50_;
	GtkBox* headered_list_box = NULL;
	GtkBox* _tmp51_;
	GtkBox* _tmp52_;
	GtkScrolledWindow* _tmp53_;
	AdwStatusPage* _tmp54_;
	AdwViewStack* _tmp55_;
	ProtonPlusWidgetsToolsReleaseChangelog* _tmp56_;
	AdwViewStack* _tmp57_;
	AdwViewStackPage* _tmp58_;
	AdwViewStack* _tmp59_;
	GtkBox* _tmp60_;
	GtkBox* _tmp61_;
	GtkBox* _tmp62_;
	AdwViewStack* _tmp63_;
	AdwClamp* clamp = NULL;
	GtkBox* _tmp64_;
	GtkWidget* _tmp65_;
	AdwClamp* _tmp66_ = NULL;
	self = (ProtonPlusWidgetsToolsReleaseBox*) g_object_new (object_type, "orientation", GTK_ORIENTATION_VERTICAL, "spacing", 0, NULL);
	_tmp0_ = (GtkImage*) gtk_image_new_from_icon_name ("box-open-symbolic");
	g_object_ref_sink (_tmp0_);
	icon = _tmp0_;
	_tmp1_ = g_strdup ("title-4");
	_tmp2_ = g_new0 (gchar*, 1 + 1);
	_tmp2_[0] = _tmp1_;
	_tmp3_ = (GtkLabel*) gtk_label_new (NULL);
	gtk_widget_set_halign ((GtkWidget*) _tmp3_, GTK_ALIGN_START);
	gtk_widget_set_css_classes ((GtkWidget*) _tmp3_, _tmp2_);
	_tmp2_ = (_vala_array_free (_tmp2_, 1, (GDestroyNotify) g_free), NULL);
	g_object_ref_sink (_tmp3_);
	_tmp4_ = _tmp3_;
	proton_plus_widgets_tools_release_box_set_title_label (self, _tmp4_);
	_g_object_unref0 (_tmp4_);
	_tmp5_ = g_strdup ("subtitle");
	_tmp6_ = g_new0 (gchar*, 1 + 1);
	_tmp6_[0] = _tmp5_;
	_tmp7_ = (GtkLabel*) gtk_label_new (NULL);
	gtk_widget_set_halign ((GtkWidget*) _tmp7_, GTK_ALIGN_START);
	gtk_widget_set_css_classes ((GtkWidget*) _tmp7_, _tmp6_);
	_tmp6_ = (_vala_array_free (_tmp6_, 1, (GDestroyNotify) g_free), NULL);
	g_object_ref_sink (_tmp7_);
	_tmp8_ = _tmp7_;
	proton_plus_widgets_tools_release_box_set_desc_label (self, _tmp8_);
	_g_object_unref0 (_tmp8_);
	_tmp9_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp9_, TRUE);
	g_object_ref_sink (_tmp9_);
	title_box = _tmp9_;
	_tmp10_ = self->priv->_title_label;
	gtk_box_append (title_box, (GtkWidget*) _tmp10_);
	_tmp11_ = self->priv->_desc_label;
	gtk_box_append (title_box, (GtkWidget*) _tmp11_);
	_tmp12_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
	gtk_widget_set_halign ((GtkWidget*) _tmp12_, GTK_ALIGN_CENTER);
	gtk_widget_set_valign ((GtkWidget*) _tmp12_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp12_);
	_tmp13_ = _tmp12_;
	proton_plus_widgets_tools_release_box_set_header_box (self, _tmp13_);
	_g_object_unref0 (_tmp13_);
	_tmp14_ = self->priv->_header_box;
	gtk_box_append (_tmp14_, (GtkWidget*) icon);
	_tmp15_ = self->priv->_header_box;
	gtk_box_append (_tmp15_, (GtkWidget*) title_box);
	_tmp16_ = (AdwViewStack*) adw_view_stack_new ();
	gtk_widget_set_vexpand ((GtkWidget*) _tmp16_, TRUE);
	gtk_widget_set_overflow ((GtkWidget*) _tmp16_, GTK_OVERFLOW_HIDDEN);
	g_object_ref_sink (_tmp16_);
	_tmp17_ = _tmp16_;
	proton_plus_widgets_tools_release_box_set_content_stack (self, _tmp17_);
	_g_object_unref0 (_tmp17_);
	_tmp18_ = self->priv->_content_stack;
	_tmp19_ = _g_object_ref0 (_tmp18_);
	_tmp20_ = (AdwViewSwitcher*) adw_view_switcher_new ();
	adw_view_switcher_set_stack (_tmp20_, _tmp19_);
	_g_object_unref0 (_tmp19_);
	gtk_widget_set_halign ((GtkWidget*) _tmp20_, GTK_ALIGN_CENTER);
	gtk_widget_set_valign ((GtkWidget*) _tmp20_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp20_);
	_tmp21_ = _tmp20_;
	proton_plus_widgets_tools_release_box_set_stack_switcher (self, _tmp21_);
	_g_object_unref0 (_tmp21_);
	_tmp22_ = self->priv->_stack_switcher;
	adw_view_switcher_set_policy (_tmp22_, ADW_VIEW_SWITCHER_POLICY_WIDE);
	_tmp23_ = proton_plus_widgets_tools_release_changelog_new ();
	g_object_ref_sink (_tmp23_);
	_tmp24_ = _tmp23_;
	proton_plus_widgets_tools_release_box_set_desc_text (self, _tmp24_);
	_g_object_unref0 (_tmp24_);
	_tmp25_ = (GtkListBox*) gtk_list_box_new ();
	gtk_list_box_set_selection_mode (_tmp25_, GTK_SELECTION_MULTIPLE);
	g_object_ref_sink (_tmp25_);
	_tmp26_ = _tmp25_;
	proton_plus_widgets_tools_release_box_set_list_box (self, _tmp26_);
	_g_object_unref0 (_tmp26_);
	_tmp27_ = self->priv->_list_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp27_, "boxed-list");
	_tmp28_ = self->priv->_list_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp28_, "list-content");
	_tmp29_ = self->priv->_list_box;
	_tmp30_ = _g_object_ref0 ((GtkWidget*) _tmp29_);
	_tmp31_ = (GtkScrolledWindow*) gtk_scrolled_window_new ();
	gtk_widget_set_vexpand ((GtkWidget*) _tmp31_, TRUE);
	g_object_set (_tmp31_, "hscrollbar-policy", GTK_POLICY_NEVER, NULL);
	g_object_set (_tmp31_, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL);
	gtk_scrolled_window_set_child (_tmp31_, _tmp30_);
	_g_object_unref0 (_tmp30_);
	gtk_widget_set_overflow ((GtkWidget*) _tmp31_, GTK_OVERFLOW_HIDDEN);
	g_object_ref_sink (_tmp31_);
	_tmp32_ = _tmp31_;
	proton_plus_widgets_tools_release_box_set_scrolled_games (self, _tmp32_);
	_g_object_unref0 (_tmp32_);
	_tmp33_ = (GtkCheckButton*) gtk_check_button_new ();
	g_object_ref_sink (_tmp33_);
	_tmp34_ = _tmp33_;
	proton_plus_widgets_tools_release_box_set_check_button (self, _tmp34_);
	_g_object_unref0 (_tmp34_);
	_tmp35_ = self->priv->_check_button;
	gtk_widget_set_size_request ((GtkWidget*) _tmp35_, 26, 26);
	_tmp36_ = self->priv->_check_button;
	g_signal_connect_object (_tmp36_, "toggled", (GCallback) ___lambda71__gtk_check_button_toggled, self, 0);
	_tmp37_ = (GtkLabel*) gtk_label_new (_ ("Name"));
	g_object_ref_sink (_tmp37_);
	name_label = _tmp37_;
	gtk_label_set_xalign (name_label, (gfloat) 0);
	gtk_widget_set_margin_start ((GtkWidget*) name_label, 5);
	gtk_widget_set_hexpand ((GtkWidget*) name_label, TRUE);
	_tmp38_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
	g_object_ref_sink (_tmp38_);
	_tmp39_ = _tmp38_;
	proton_plus_widgets_tools_release_box_set_list_header_box (self, _tmp39_);
	_g_object_unref0 (_tmp39_);
	_tmp40_ = self->priv->_list_header_box;
	gtk_widget_add_css_class ((GtkWidget*) _tmp40_, "list-header");
	_tmp41_ = self->priv->_list_header_box;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp41_, TRUE);
	_tmp42_ = self->priv->_list_header_box;
	gtk_widget_set_overflow ((GtkWidget*) _tmp42_, GTK_OVERFLOW_HIDDEN);
	_tmp43_ = self->priv->_list_header_box;
	_tmp44_ = self->priv->_check_button;
	gtk_box_append (_tmp43_, (GtkWidget*) _tmp44_);
	_tmp45_ = self->priv->_list_header_box;
	gtk_box_append (_tmp45_, (GtkWidget*) name_label);
	_tmp46_ = g_strdup (_ ("No games found"));
	_tmp47_ = g_strdup (_ ("This tool is not used by any games."));
	_tmp48_ = g_strdup ("gamepad-symbolic");
	_tmp49_ = (AdwStatusPage*) adw_status_page_new ();
	adw_status_page_set_title (_tmp49_, _tmp46_);
	_g_free0 (_tmp46_);
	adw_status_page_set_description (_tmp49_, _tmp47_);
	_g_free0 (_tmp47_);
	adw_status_page_set_icon_name (_tmp49_, _tmp48_);
	_g_free0 (_tmp48_);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp49_, TRUE);
	g_object_ref_sink (_tmp49_);
	_tmp50_ = _tmp49_;
	proton_plus_widgets_tools_release_box_set_status_page (self, _tmp50_);
	_g_object_unref0 (_tmp50_);
	_tmp51_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp51_);
	headered_list_box = _tmp51_;
	gtk_widget_set_hexpand ((GtkWidget*) headered_list_box, TRUE);
	gtk_widget_add_css_class ((GtkWidget*) headered_list_box, "card");
	gtk_widget_add_css_class ((GtkWidget*) headered_list_box, "transparent-card");
	gtk_widget_set_overflow ((GtkWidget*) headered_list_box, GTK_OVERFLOW_HIDDEN);
	_tmp52_ = self->priv->_list_header_box;
	gtk_box_append (headered_list_box, (GtkWidget*) _tmp52_);
	_tmp53_ = self->priv->_scrolled_games;
	gtk_box_append (headered_list_box, (GtkWidget*) _tmp53_);
	_tmp54_ = self->priv->_status_page;
	gtk_box_append (headered_list_box, (GtkWidget*) _tmp54_);
	_tmp55_ = self->priv->_content_stack;
	_tmp56_ = self->priv->_desc_text;
	adw_view_stack_add_titled_with_icon (_tmp55_, (GtkWidget*) _tmp56_, "changelog", _ ("Changelog"), "book-open-symbolic");
	_tmp57_ = self->priv->_content_stack;
	_tmp58_ = adw_view_stack_add_titled_with_icon (_tmp57_, (GtkWidget*) headered_list_box, "games", _ ("Used by"), "gamepad-symbolic");
	proton_plus_widgets_tools_release_box_set_games_page (self, _tmp58_);
	_tmp59_ = self->priv->_content_stack;
	gtk_widget_add_css_class ((GtkWidget*) _tmp59_, "card");
	_tmp60_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
	g_object_ref_sink (_tmp60_);
	_tmp61_ = _tmp60_;
	proton_plus_widgets_tools_release_box_set_tool_box (self, _tmp61_);
	_g_object_unref0 (_tmp61_);
	_tmp62_ = self->priv->_tool_box;
	_tmp63_ = self->priv->_content_stack;
	gtk_box_append (_tmp62_, (GtkWidget*) _tmp63_);
	_tmp64_ = self->priv->_tool_box;
	_tmp65_ = _g_object_ref0 ((GtkWidget*) _tmp64_);
	_tmp66_ = (AdwClamp*) adw_clamp_new ();
	adw_clamp_set_maximum_size (_tmp66_, 975);
	gtk_widget_set_margin_top ((GtkWidget*) _tmp66_, 5);
	gtk_widget_set_margin_bottom ((GtkWidget*) _tmp66_, 12);
	adw_clamp_set_child (_tmp66_, _tmp65_);
	_g_object_unref0 (_tmp65_);
	g_object_ref_sink (_tmp66_);
	clamp = _tmp66_;
	gtk_box_append ((GtkBox*) self, (GtkWidget*) clamp);
	_g_object_unref0 (clamp);
	_g_object_unref0 (headered_list_box);
	_g_object_unref0 (name_label);
	_g_object_unref0 (title_box);
	_g_object_unref0 (icon);
	return self;
}

ProtonPlusWidgetsToolsReleaseBox*
proton_plus_widgets_tools_release_box_new (void)
{
	return proton_plus_widgets_tools_release_box_construct (PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_BOX);
}

static void
_____lambda72_ (ProtonPlusWidgetsToolsReleaseBox* self)
{
	g_signal_emit (self, proton_plus_widgets_tools_release_box_signals[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_SELECTION_CHANGED_SIGNAL], 0);
}

static void
______lambda72__g_object_notify (GObject* _sender,
                                 GParamSpec* pspec,
                                 gpointer self)
{
	_____lambda72_ ((ProtonPlusWidgetsToolsReleaseBox*) self);
}

void
proton_plus_widgets_tools_release_box_set_selected_job (ProtonPlusWidgetsToolsReleaseBox* self,
                                                        ProtonPlusServicesInstallJob* job,
                                                        gboolean show_games)
{
	GtkCheckButton* _tmp0_;
	ProtonPlusModelsLauncher* launcher = NULL;
	ProtonPlusModelsTool* _tmp1_;
	ProtonPlusModelsTool* _tmp2_;
	ProtonPlusModelsGroup* _tmp3_;
	ProtonPlusModelsGroup* _tmp4_;
	ProtonPlusModelsLauncher* _tmp5_;
	ProtonPlusModelsLauncher* _tmp6_;
	ProtonPlusModelsLauncher* _tmp7_;
	ProtonPlusModelsLaunchersSteam* steam_launcher = NULL;
	ProtonPlusModelsLauncher* _tmp8_;
	ProtonPlusModelsLaunchersSteam* _tmp9_;
	AdwViewStackPage* _tmp10_;
	ProtonPlusModelsLaunchersSteam* _tmp11_;
	GtkLabel* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	ProtonPlusWidgetsToolsReleaseChangelog* _tmp16_;
	ProtonPlusModelsRelease* _tmp17_;
	ProtonPlusModelsRelease* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_ = NULL;
	ProtonPlusModelsRelease* _tmp22_;
	ProtonPlusModelsRelease* _tmp23_;
	const gchar* _tmp24_;
	const gchar* _tmp25_;
	GtkLabel* _tmp26_;
	gboolean _tmp27_ = FALSE;
	GtkListBox* _tmp31_;
	gchar* tool_name = NULL;
	gchar* _tmp32_;
	gboolean has_games = FALSE;
	ProtonPlusModelsLaunchersSteam* _tmp33_;
	AdwStatusPage* _tmp49_;
	GtkScrolledWindow* _tmp50_;
	GtkBox* _tmp51_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (job != NULL);
	_tmp0_ = self->priv->_check_button;
	gtk_check_button_set_active (_tmp0_, FALSE);
	_tmp1_ = proton_plus_services_install_job_get_tool (job);
	_tmp2_ = _tmp1_;
	_tmp3_ = proton_plus_models_tool_get_group (_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = proton_plus_models_group_get_launcher (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = _g_object_ref0 (_tmp6_);
	launcher = _tmp7_;
	_tmp8_ = launcher;
	_tmp9_ = _g_object_ref0 (PROTON_PLUS_MODELS_LAUNCHERS_IS_STEAM (_tmp8_) ? ((ProtonPlusModelsLaunchersSteam*) _tmp8_) : NULL);
	steam_launcher = _tmp9_;
	_tmp10_ = self->priv->_games_page;
	_tmp11_ = steam_launcher;
	adw_view_stack_page_set_visible (_tmp10_, _tmp11_ != NULL);
	_tmp12_ = self->priv->_title_label;
	_tmp13_ = proton_plus_services_install_job_get_title (job);
	_tmp14_ = _tmp13_;
	_tmp15_ = _tmp14_;
	gtk_label_set_label (_tmp12_, _tmp15_);
	_g_free0 (_tmp15_);
	_tmp16_ = self->priv->_desc_text;
	_tmp17_ = proton_plus_services_install_job_get_release (job);
	_tmp18_ = _tmp17_;
	_tmp19_ = proton_plus_models_release_get_description (_tmp18_);
	_tmp20_ = _tmp19_;
	proton_plus_widgets_tools_release_changelog_set_markdown (_tmp16_, _tmp20_);
	_tmp22_ = proton_plus_services_install_job_get_release (job);
	_tmp23_ = _tmp22_;
	_tmp24_ = proton_plus_models_release_get_release_date (_tmp23_);
	_tmp25_ = _tmp24_;
	_tmp21_ = _tmp25_;
	if (_tmp21_ == NULL) {
		_tmp21_ = "";
	}
	_tmp26_ = self->priv->_desc_label;
	gtk_label_set_label (_tmp26_, _tmp21_);
	if (show_games) {
		ProtonPlusModelsLaunchersSteam* _tmp28_;
		_tmp28_ = steam_launcher;
		_tmp27_ = _tmp28_ != NULL;
	} else {
		_tmp27_ = FALSE;
	}
	if (_tmp27_) {
		AdwViewStack* _tmp29_;
		_tmp29_ = self->priv->_content_stack;
		adw_view_stack_set_visible_child_name (_tmp29_, "games");
	} else {
		AdwViewStack* _tmp30_;
		_tmp30_ = self->priv->_content_stack;
		adw_view_stack_set_visible_child_name (_tmp30_, "changelog");
	}
	_tmp31_ = self->priv->_list_box;
	gtk_list_box_remove_all (_tmp31_);
	_tmp32_ = proton_plus_services_install_job_get_usage_identifier (job);
	tool_name = _tmp32_;
	has_games = FALSE;
	_tmp33_ = steam_launcher;
	if (_tmp33_ != NULL) {
		{
			GeeList* _game_list = NULL;
			ProtonPlusModelsLaunchersSteam* _tmp34_;
			const gchar* _tmp35_;
			GeeList* _tmp36_;
			gint _game_size = 0;
			GeeList* _tmp37_;
			gint _tmp38_;
			gint _tmp39_;
			gint _game_index = 0;
			_tmp34_ = steam_launcher;
			_tmp35_ = tool_name;
			_tmp36_ = proton_plus_models_launchers_steam_get_compatibility_tool_usage_games (_tmp34_, _tmp35_);
			_game_list = _tmp36_;
			_tmp37_ = _game_list;
			_tmp38_ = gee_collection_get_size ((GeeCollection*) _tmp37_);
			_tmp39_ = _tmp38_;
			_game_size = _tmp39_;
			_game_index = -1;
			while (TRUE) {
				gint _tmp40_;
				gint _tmp41_;
				ProtonPlusModelsGame* game = NULL;
				GeeList* _tmp42_;
				gpointer _tmp43_;
				ProtonPlusWidgetsToolsGameRow* row = NULL;
				ProtonPlusModelsGame* _tmp44_;
				ProtonPlusWidgetsToolsGameRow* _tmp45_;
				ProtonPlusWidgetsToolsGameRow* _tmp46_;
				GtkListBox* _tmp47_;
				ProtonPlusWidgetsToolsGameRow* _tmp48_;
				_game_index = _game_index + 1;
				_tmp40_ = _game_index;
				_tmp41_ = _game_size;
				if (!(_tmp40_ < _tmp41_)) {
					break;
				}
				_tmp42_ = _game_list;
				_tmp43_ = gee_list_get (_tmp42_, _game_index);
				game = (ProtonPlusModelsGame*) _tmp43_;
				_tmp44_ = game;
				_tmp45_ = proton_plus_widgets_tools_game_row_new (_tmp44_);
				g_object_ref_sink (_tmp45_);
				row = _tmp45_;
				_tmp46_ = row;
				g_signal_connect_object ((GObject*) _tmp46_, "notify::selected", (GCallback) ______lambda72__g_object_notify, self, 0);
				_tmp47_ = self->priv->_list_box;
				_tmp48_ = row;
				gtk_list_box_append (_tmp47_, (GtkWidget*) _tmp48_);
				has_games = TRUE;
				_g_object_unref0 (row);
				_g_object_unref0 (game);
			}
			_g_object_unref0 (_game_list);
		}
	}
	_tmp49_ = self->priv->_status_page;
	gtk_widget_set_visible ((GtkWidget*) _tmp49_, !has_games);
	_tmp50_ = self->priv->_scrolled_games;
	gtk_widget_set_visible ((GtkWidget*) _tmp50_, has_games);
	_tmp51_ = self->priv->_list_header_box;
	gtk_widget_set_visible ((GtkWidget*) _tmp51_, has_games);
	_g_free0 (tool_name);
	_g_object_unref0 (steam_launcher);
	_g_object_unref0 (launcher);
}

gboolean
proton_plus_widgets_tools_release_box_has_multiple_views (ProtonPlusWidgetsToolsReleaseBox* self)
{
	AdwViewStackPage* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->_games_page;
	result = adw_view_stack_page_get_visible (_tmp0_);
	return result;
}

gint
proton_plus_widgets_tools_release_box_get_selected_games_count (ProtonPlusWidgetsToolsReleaseBox* self)
{
	gint count = 0;
	GtkWidget* child = NULL;
	GtkListBox* _tmp0_;
	GtkWidget* _tmp1_;
	GtkWidget* _tmp2_;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	count = 0;
	_tmp0_ = self->priv->_list_box;
	_tmp1_ = gtk_widget_get_first_child ((GtkWidget*) _tmp0_);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	child = _tmp2_;
	while (TRUE) {
		GtkWidget* _tmp3_;
		gboolean _tmp4_ = FALSE;
		GtkWidget* _tmp5_;
		GtkWidget* _tmp10_;
		GtkWidget* _tmp11_;
		GtkWidget* _tmp12_;
		_tmp3_ = child;
		if (!(_tmp3_ != NULL)) {
			break;
		}
		_tmp5_ = child;
		if (PROTON_PLUS_WIDGETS_TOOLS_IS_GAME_ROW (_tmp5_)) {
			GtkWidget* _tmp6_;
			gboolean _tmp7_;
			gboolean _tmp8_;
			_tmp6_ = child;
			_tmp7_ = proton_plus_widgets_tools_game_row_get_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_GAME_ROW, ProtonPlusWidgetsToolsGameRow));
			_tmp8_ = _tmp7_;
			_tmp4_ = _tmp8_;
		} else {
			_tmp4_ = FALSE;
		}
		if (_tmp4_) {
			gint _tmp9_;
			_tmp9_ = count;
			count = _tmp9_ + 1;
		}
		_tmp10_ = child;
		_tmp11_ = gtk_widget_get_next_sibling (_tmp10_);
		_tmp12_ = _g_object_ref0 (_tmp11_);
		_g_object_unref0 (child);
		child = _tmp12_;
	}
	result = count;
	_g_object_unref0 (child);
	return result;
}

GeeArrayList*
proton_plus_widgets_tools_release_box_get_selected_games (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GeeArrayList* selected_games = NULL;
	GeeArrayList* _tmp0_;
	GtkWidget* child = NULL;
	GtkListBox* _tmp1_;
	GtkWidget* _tmp2_;
	GtkWidget* _tmp3_;
	GeeArrayList* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = gee_array_list_new (PROTON_PLUS_MODELS_TYPE_GAME, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	selected_games = _tmp0_;
	_tmp1_ = self->priv->_list_box;
	_tmp2_ = gtk_widget_get_first_child ((GtkWidget*) _tmp1_);
	_tmp3_ = _g_object_ref0 (_tmp2_);
	child = _tmp3_;
	while (TRUE) {
		GtkWidget* _tmp4_;
		gboolean _tmp5_ = FALSE;
		GtkWidget* _tmp6_;
		GtkWidget* _tmp14_;
		GtkWidget* _tmp15_;
		GtkWidget* _tmp16_;
		_tmp4_ = child;
		if (!(_tmp4_ != NULL)) {
			break;
		}
		_tmp6_ = child;
		if (PROTON_PLUS_WIDGETS_TOOLS_IS_GAME_ROW (_tmp6_)) {
			GtkWidget* _tmp7_;
			gboolean _tmp8_;
			gboolean _tmp9_;
			_tmp7_ = child;
			_tmp8_ = proton_plus_widgets_tools_game_row_get_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_GAME_ROW, ProtonPlusWidgetsToolsGameRow));
			_tmp9_ = _tmp8_;
			_tmp5_ = _tmp9_;
		} else {
			_tmp5_ = FALSE;
		}
		if (_tmp5_) {
			GeeArrayList* _tmp10_;
			GtkWidget* _tmp11_;
			ProtonPlusModelsGame* _tmp12_;
			ProtonPlusModelsGame* _tmp13_;
			_tmp10_ = selected_games;
			_tmp11_ = child;
			_tmp12_ = proton_plus_widgets_tools_game_row_get_game (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_GAME_ROW, ProtonPlusWidgetsToolsGameRow));
			_tmp13_ = _tmp12_;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp10_, _tmp13_);
		}
		_tmp14_ = child;
		_tmp15_ = gtk_widget_get_next_sibling (_tmp14_);
		_tmp16_ = _g_object_ref0 (_tmp15_);
		_g_object_unref0 (child);
		child = _tmp16_;
	}
	result = selected_games;
	_g_object_unref0 (child);
	return result;
}

AdwViewSwitcher*
proton_plus_widgets_tools_release_box_get_stack_switcher (ProtonPlusWidgetsToolsReleaseBox* self)
{
	AdwViewSwitcher* result;
	AdwViewSwitcher* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_stack_switcher;
	result = _tmp0_;
	return result;
}

void
proton_plus_widgets_tools_release_box_set_stack_switcher (ProtonPlusWidgetsToolsReleaseBox* self,
                                                          AdwViewSwitcher* value)
{
	AdwViewSwitcher* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_box_get_stack_switcher (self);
	if (old_value != value) {
		AdwViewSwitcher* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_stack_switcher);
		self->priv->_stack_switcher = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_box_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_STACK_SWITCHER_PROPERTY]);
	}
}

static GtkBox*
proton_plus_widgets_tools_release_box_get_tool_box (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GtkBox* result;
	GtkBox* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_tool_box;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_tool_box (ProtonPlusWidgetsToolsReleaseBox* self,
                                                    GtkBox* value)
{
	GtkBox* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_tool_box);
	self->priv->_tool_box = _tmp0_;
}

static GtkLabel*
proton_plus_widgets_tools_release_box_get_title_label (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GtkLabel* result;
	GtkLabel* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_title_label;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_title_label (ProtonPlusWidgetsToolsReleaseBox* self,
                                                       GtkLabel* value)
{
	GtkLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_title_label);
	self->priv->_title_label = _tmp0_;
}

static GtkLabel*
proton_plus_widgets_tools_release_box_get_desc_label (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GtkLabel* result;
	GtkLabel* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_desc_label;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_desc_label (ProtonPlusWidgetsToolsReleaseBox* self,
                                                      GtkLabel* value)
{
	GtkLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_desc_label);
	self->priv->_desc_label = _tmp0_;
}

static ProtonPlusWidgetsToolsReleaseChangelog*
proton_plus_widgets_tools_release_box_get_desc_text (ProtonPlusWidgetsToolsReleaseBox* self)
{
	ProtonPlusWidgetsToolsReleaseChangelog* result;
	ProtonPlusWidgetsToolsReleaseChangelog* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_desc_text;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_desc_text (ProtonPlusWidgetsToolsReleaseBox* self,
                                                     ProtonPlusWidgetsToolsReleaseChangelog* value)
{
	ProtonPlusWidgetsToolsReleaseChangelog* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_desc_text);
	self->priv->_desc_text = _tmp0_;
}

GtkBox*
proton_plus_widgets_tools_release_box_get_header_box (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GtkBox* result;
	GtkBox* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_header_box;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_header_box (ProtonPlusWidgetsToolsReleaseBox* self,
                                                      GtkBox* value)
{
	GtkBox* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_box_get_header_box (self);
	if (old_value != value) {
		GtkBox* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_header_box);
		self->priv->_header_box = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_box_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_HEADER_BOX_PROPERTY]);
	}
}

static GtkListBox*
proton_plus_widgets_tools_release_box_get_list_box (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GtkListBox* result;
	GtkListBox* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_list_box;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_list_box (ProtonPlusWidgetsToolsReleaseBox* self,
                                                    GtkListBox* value)
{
	GtkListBox* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_list_box);
	self->priv->_list_box = _tmp0_;
}

static GtkCheckButton*
proton_plus_widgets_tools_release_box_get_check_button (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GtkCheckButton* result;
	GtkCheckButton* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_check_button;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_check_button (ProtonPlusWidgetsToolsReleaseBox* self,
                                                        GtkCheckButton* value)
{
	GtkCheckButton* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_check_button);
	self->priv->_check_button = _tmp0_;
}

static AdwViewStack*
proton_plus_widgets_tools_release_box_get_content_stack (ProtonPlusWidgetsToolsReleaseBox* self)
{
	AdwViewStack* result;
	AdwViewStack* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_content_stack;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_content_stack (ProtonPlusWidgetsToolsReleaseBox* self,
                                                         AdwViewStack* value)
{
	AdwViewStack* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_content_stack);
	self->priv->_content_stack = _tmp0_;
}

static AdwStatusPage*
proton_plus_widgets_tools_release_box_get_status_page (ProtonPlusWidgetsToolsReleaseBox* self)
{
	AdwStatusPage* result;
	AdwStatusPage* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_status_page;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_status_page (ProtonPlusWidgetsToolsReleaseBox* self,
                                                       AdwStatusPage* value)
{
	AdwStatusPage* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_status_page);
	self->priv->_status_page = _tmp0_;
}

static GtkScrolledWindow*
proton_plus_widgets_tools_release_box_get_scrolled_games (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GtkScrolledWindow* result;
	GtkScrolledWindow* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_scrolled_games;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_scrolled_games (ProtonPlusWidgetsToolsReleaseBox* self,
                                                          GtkScrolledWindow* value)
{
	GtkScrolledWindow* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_scrolled_games);
	self->priv->_scrolled_games = _tmp0_;
}

static GtkBox*
proton_plus_widgets_tools_release_box_get_list_header_box (ProtonPlusWidgetsToolsReleaseBox* self)
{
	GtkBox* result;
	GtkBox* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_list_header_box;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_list_header_box (ProtonPlusWidgetsToolsReleaseBox* self,
                                                           GtkBox* value)
{
	GtkBox* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_list_header_box);
	self->priv->_list_header_box = _tmp0_;
}

static AdwViewStackPage*
proton_plus_widgets_tools_release_box_get_games_page (ProtonPlusWidgetsToolsReleaseBox* self)
{
	AdwViewStackPage* result;
	AdwViewStackPage* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_games_page;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_tools_release_box_set_games_page (ProtonPlusWidgetsToolsReleaseBox* self,
                                                      AdwViewStackPage* value)
{
	AdwViewStackPage* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_games_page);
	self->priv->_games_page = _tmp0_;
}

static void
proton_plus_widgets_tools_release_box_class_init (ProtonPlusWidgetsToolsReleaseBoxClass * klass,
                                                  gpointer klass_data)
{
	proton_plus_widgets_tools_release_box_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsToolsReleaseBox_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_tools_release_box_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_tools_release_box_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_tools_release_box_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_STACK_SWITCHER_PROPERTY, proton_plus_widgets_tools_release_box_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_STACK_SWITCHER_PROPERTY] = g_param_spec_object ("stack-switcher", "stack-switcher", "stack-switcher", adw_view_switcher_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_HEADER_BOX_PROPERTY, proton_plus_widgets_tools_release_box_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_HEADER_BOX_PROPERTY] = g_param_spec_object ("header-box", "header-box", "header-box", gtk_box_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	proton_plus_widgets_tools_release_box_signals[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_SELECTION_CHANGED_SIGNAL] = g_signal_new ("selection-changed", PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_BOX, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
proton_plus_widgets_tools_release_box_instance_init (ProtonPlusWidgetsToolsReleaseBox * self,
                                                     gpointer klass)
{
	self->priv = proton_plus_widgets_tools_release_box_get_instance_private (self);
}

static void
proton_plus_widgets_tools_release_box_finalize (GObject * obj)
{
	ProtonPlusWidgetsToolsReleaseBox * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_BOX, ProtonPlusWidgetsToolsReleaseBox);
	_g_object_unref0 (self->priv->_stack_switcher);
	_g_object_unref0 (self->priv->_tool_box);
	_g_object_unref0 (self->priv->_title_label);
	_g_object_unref0 (self->priv->_desc_label);
	_g_object_unref0 (self->priv->_desc_text);
	_g_object_unref0 (self->priv->_header_box);
	_g_object_unref0 (self->priv->_list_box);
	_g_object_unref0 (self->priv->_check_button);
	_g_object_unref0 (self->priv->_content_stack);
	_g_object_unref0 (self->priv->_status_page);
	_g_object_unref0 (self->priv->_scrolled_games);
	_g_object_unref0 (self->priv->_list_header_box);
	_g_object_unref0 (self->priv->_games_page);
	G_OBJECT_CLASS (proton_plus_widgets_tools_release_box_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_tools_release_box_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsToolsReleaseBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_tools_release_box_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsToolsReleaseBox), 0, (GInstanceInitFunc) proton_plus_widgets_tools_release_box_instance_init, NULL };
	GType proton_plus_widgets_tools_release_box_type_id;
	proton_plus_widgets_tools_release_box_type_id = g_type_register_static (gtk_box_get_type (), "ProtonPlusWidgetsToolsReleaseBox", &g_define_type_info, 0);
	ProtonPlusWidgetsToolsReleaseBox_private_offset = g_type_add_instance_private (proton_plus_widgets_tools_release_box_type_id, sizeof (ProtonPlusWidgetsToolsReleaseBoxPrivate));
	return proton_plus_widgets_tools_release_box_type_id;
}

GType
proton_plus_widgets_tools_release_box_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_release_box_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_release_box_type_id__once)) {
		GType proton_plus_widgets_tools_release_box_type_id;
		proton_plus_widgets_tools_release_box_type_id = proton_plus_widgets_tools_release_box_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_release_box_type_id__once, proton_plus_widgets_tools_release_box_type_id);
	}
	return proton_plus_widgets_tools_release_box_type_id__once;
}

static void
_vala_proton_plus_widgets_tools_release_box_get_property (GObject * object,
                                                          guint property_id,
                                                          GValue * value,
                                                          GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsReleaseBox * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_BOX, ProtonPlusWidgetsToolsReleaseBox);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_STACK_SWITCHER_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_tools_release_box_get_stack_switcher (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_HEADER_BOX_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_tools_release_box_get_header_box (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_tools_release_box_set_property (GObject * object,
                                                          guint property_id,
                                                          const GValue * value,
                                                          GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsReleaseBox * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_BOX, ProtonPlusWidgetsToolsReleaseBox);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_STACK_SWITCHER_PROPERTY:
		proton_plus_widgets_tools_release_box_set_stack_switcher (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_BOX_HEADER_BOX_PROPERTY:
		proton_plus_widgets_tools_release_box_set_header_box (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

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

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

