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

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

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TUBA_VIEWS_TYPE_BASE (tuba_views_base_get_type ())
#define TUBA_VIEWS_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_BASE, TubaViewsBase))
#define TUBA_VIEWS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_BASE, TubaViewsBaseClass))
#define TUBA_VIEWS_IS_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_BASE))
#define TUBA_VIEWS_IS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_BASE))
#define TUBA_VIEWS_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_BASE, TubaViewsBaseClass))

typedef struct _TubaViewsBase TubaViewsBase;
typedef struct _TubaViewsBaseClass TubaViewsBaseClass;
typedef struct _TubaViewsBasePrivate TubaViewsBasePrivate;

#define TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE (tuba_views_base_status_message_get_type ())
#define TUBA_VIEWS_BASE_STATUS_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE, TubaViewsBaseStatusMessage))
#define TUBA_VIEWS_BASE_STATUS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE, TubaViewsBaseStatusMessageClass))
#define TUBA_VIEWS_BASE_IS_STATUS_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE))
#define TUBA_VIEWS_BASE_IS_STATUS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE))
#define TUBA_VIEWS_BASE_STATUS_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE, TubaViewsBaseStatusMessageClass))

typedef struct _TubaViewsBaseStatusMessage TubaViewsBaseStatusMessage;
typedef struct _TubaViewsBaseStatusMessageClass TubaViewsBaseStatusMessageClass;
enum  {
	TUBA_VIEWS_BASE_0_PROPERTY,
	TUBA_VIEWS_BASE_EMPTY_STATE_TITLE_PROPERTY,
	TUBA_VIEWS_BASE_ICON_PROPERTY,
	TUBA_VIEWS_BASE_LABEL_PROPERTY,
	TUBA_VIEWS_BASE_NEEDS_ATTENTION_PROPERTY,
	TUBA_VIEWS_BASE_IS_MAIN_PROPERTY,
	TUBA_VIEWS_BASE_ALLOW_NESTING_PROPERTY,
	TUBA_VIEWS_BASE_IS_SIDEBAR_ITEM_PROPERTY,
	TUBA_VIEWS_BASE_BADGE_NUMBER_PROPERTY,
	TUBA_VIEWS_BASE_UID_PROPERTY,
	TUBA_VIEWS_BASE_ACTIONS_PROPERTY,
	TUBA_VIEWS_BASE_LAST_WIDGET_PROPERTY,
	TUBA_VIEWS_BASE_EMPTY_TIMELINE_ICON_PROPERTY,
	TUBA_VIEWS_BASE_SMALL_PROPERTY,
	TUBA_VIEWS_BASE_SHOW_BACK_BUTTON_PROPERTY,
	TUBA_VIEWS_BASE_CURRENT_PROPERTY,
	TUBA_VIEWS_BASE_BASE_STATUS_PROPERTY,
	TUBA_VIEWS_BASE_NUM_PROPERTIES
};
static GParamSpec* tuba_views_base_properties[TUBA_VIEWS_BASE_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define TUBA_TYPE_APPLICATION (tuba_application_get_type ())
#define TUBA_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_APPLICATION, TubaApplication))
#define TUBA_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_APPLICATION, TubaApplicationClass))
#define TUBA_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_APPLICATION))
#define TUBA_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_APPLICATION))
#define TUBA_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_APPLICATION, TubaApplicationClass))

typedef struct _TubaApplication TubaApplication;
typedef struct _TubaApplicationClass TubaApplicationClass;

#define TUBA_DIALOGS_TYPE_MAIN_WINDOW (tuba_dialogs_main_window_get_type ())
#define TUBA_DIALOGS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindow))
#define TUBA_DIALOGS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindowClass))
#define TUBA_DIALOGS_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW))
#define TUBA_DIALOGS_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_MAIN_WINDOW))
#define TUBA_DIALOGS_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindowClass))

typedef struct _TubaDialogsMainWindow TubaDialogsMainWindow;
typedef struct _TubaDialogsMainWindowClass TubaDialogsMainWindowClass;
typedef struct _TubaViewsBaseStatusMessagePrivate TubaViewsBaseStatusMessagePrivate;
enum  {
	TUBA_VIEWS_BASE_STATUS_MESSAGE_0_PROPERTY,
	TUBA_VIEWS_BASE_STATUS_MESSAGE_NUM_PROPERTIES
};
static GParamSpec* tuba_views_base_status_message_properties[TUBA_VIEWS_BASE_STATUS_MESSAGE_NUM_PROPERTIES];
#define __vala_GValue_free0(var) ((var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL)))

struct _TubaViewsBase {
	AdwBreakpointBin parent_instance;
	TubaViewsBasePrivate * priv;
	AdwHeaderBar* header;
	AdwToolbarView* toolbar_view;
	GtkScrolledWindow* scrolled;
	GtkOverlay* scrolled_overlay;
	GtkRevealer* scroll_to_top_rev;
	GtkButton* scroll_to_top;
	GtkStack* states;
	AdwClamp* content_box;
	GtkButton* status_button;
};

struct _TubaViewsBaseClass {
	AdwBreakpointBinClass parent_class;
	void (*scroll_page) (TubaViewsBase* self, gboolean up);
	void (*unbind_listboxes) (TubaViewsBase* self);
	void (*build_actions) (TubaViewsBase* self);
	void (*build_header) (TubaViewsBase* self);
	void (*clear) (TubaViewsBase* self);
	void (*on_shown) (TubaViewsBase* self);
	void (*on_hidden) (TubaViewsBase* self);
	void (*on_content_changed) (TubaViewsBase* self);
	void (*on_error) (TubaViewsBase* self, gint32 code, const gchar* reason);
};

struct _TubaViewsBasePrivate {
	gchar* _empty_state_title;
	gchar* _icon;
	gchar* _label;
	gboolean _needs_attention;
	gboolean _is_main;
	gboolean _allow_nesting;
	gboolean _is_sidebar_item;
	gint _badge_number;
	gint _uid;
	GSimpleActionGroup* _actions;
	GtkWidget* _last_widget;
	gchar* _empty_timeline_icon;
	gboolean _small;
	gboolean _show_back_button;
	gboolean _current;
	GtkImage* status_image;
	GtkStack* status_stack;
	GtkLabel* status_title_label;
	GtkLabel* status_message_label;
	TubaViewsBaseStatusMessage* _base_status;
};

struct _TubaViewsBaseStatusMessage {
	GObject parent_instance;
	TubaViewsBaseStatusMessagePrivate * priv;
	gchar* title;
	gchar* message;
	gboolean loading;
};

struct _TubaViewsBaseStatusMessageClass {
	GObjectClass parent_class;
};

static gint TubaViewsBase_private_offset;
static gpointer tuba_views_base_parent_class = NULL;
VALA_EXTERN gchar* tuba_views_base_STATUS_EMPTY;
gchar* tuba_views_base_STATUS_EMPTY = NULL;
VALA_EXTERN TubaApplication* tuba_app;
static gpointer tuba_views_base_status_message_parent_class = NULL;

VALA_EXTERN GType tuba_views_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsBase, g_object_unref)
VALA_EXTERN GType tuba_views_base_status_message_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsBaseStatusMessage, g_object_unref)
VALA_EXTERN void tuba_views_base_scroll_page (TubaViewsBase* self,
                                  gboolean up);
VALA_EXTERN void tuba_views_base_unbind_listboxes (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_build_actions (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_build_header (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_clear (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_on_shown (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_on_hidden (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_on_content_changed (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_on_error (TubaViewsBase* self,
                               gint32 code,
                               const gchar* reason);
static void tuba_views_base_set_last_widget (TubaViewsBase* self,
                                      GtkWidget* value);
VALA_EXTERN const gchar* tuba_views_base_get_label (TubaViewsBase* self);
static void tuba_views_base_update_back_btn (TubaViewsBase* self);
VALA_EXTERN GType tuba_application_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaApplication, g_object_unref)
VALA_EXTERN gboolean tuba_application_get_is_mobile (TubaApplication* self);
VALA_EXTERN gboolean tuba_views_base_get_show_back_button (TubaViewsBase* self);
static void tuba_views_base_on_scroll_to_top (TubaViewsBase* self);
static void tuba_views_base_real_scroll_page (TubaViewsBase* self,
                                       gboolean up);
static void tuba_views_base_real_dispose (GObject* base);
VALA_EXTERN GSimpleActionGroup* tuba_views_base_get_actions (TubaViewsBase* self);
static void tuba_views_base_real_unbind_listboxes (TubaViewsBase* self);
static void tuba_views_base_real_build_actions (TubaViewsBase* self);
static void tuba_views_base_real_build_header (TubaViewsBase* self);
static void tuba_views_base_real_clear (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_base_status (TubaViewsBase* self,
                                      TubaViewsBaseStatusMessage* value);
static void tuba_views_base_real_on_shown (TubaViewsBase* self);
VALA_EXTERN GType tuba_dialogs_main_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsMainWindow, g_object_unref)
VALA_EXTERN TubaDialogsMainWindow* tuba_application_get_main_window (TubaApplication* self);
static void tuba_views_base_real_on_hidden (TubaViewsBase* self);
static void tuba_views_base_real_on_content_changed (TubaViewsBase* self);
static void tuba_views_base_real_on_error (TubaViewsBase* self,
                                    gint32 code,
                                    const gchar* reason);
VALA_EXTERN TubaViewsBaseStatusMessage* tuba_views_base_status_message_new (void);
VALA_EXTERN TubaViewsBaseStatusMessage* tuba_views_base_status_message_construct (GType object_type);
VALA_EXTERN void tuba_views_base_update_last_widget (TubaViewsBase* self,
                                         gboolean clear);
VALA_EXTERN TubaViewsBase* tuba_views_base_new (void);
VALA_EXTERN TubaViewsBase* tuba_views_base_construct (GType object_type);
VALA_EXTERN const gchar* tuba_views_base_get_empty_state_title (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_empty_state_title (TubaViewsBase* self,
                                            const gchar* value);
VALA_EXTERN const gchar* tuba_views_base_get_icon (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_icon (TubaViewsBase* self,
                               const gchar* value);
VALA_EXTERN void tuba_views_base_set_label (TubaViewsBase* self,
                                const gchar* value);
VALA_EXTERN gboolean tuba_views_base_get_needs_attention (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_needs_attention (TubaViewsBase* self,
                                          gboolean value);
VALA_EXTERN gboolean tuba_views_base_get_is_main (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_is_main (TubaViewsBase* self,
                                  gboolean value);
VALA_EXTERN gboolean tuba_views_base_get_allow_nesting (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_allow_nesting (TubaViewsBase* self,
                                        gboolean value);
VALA_EXTERN gboolean tuba_views_base_get_is_sidebar_item (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_is_sidebar_item (TubaViewsBase* self,
                                          gboolean value);
VALA_EXTERN gint tuba_views_base_get_badge_number (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_badge_number (TubaViewsBase* self,
                                       gint value);
VALA_EXTERN gint tuba_views_base_get_uid (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_uid (TubaViewsBase* self,
                              gint value);
VALA_EXTERN void tuba_views_base_set_actions (TubaViewsBase* self,
                                  GSimpleActionGroup* value);
VALA_EXTERN GtkWidget* tuba_views_base_get_last_widget (TubaViewsBase* self);
VALA_EXTERN const gchar* tuba_views_base_get_empty_timeline_icon (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_empty_timeline_icon (TubaViewsBase* self,
                                              const gchar* value);
VALA_EXTERN gboolean tuba_views_base_get_small (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_small (TubaViewsBase* self,
                                gboolean value);
VALA_EXTERN void tuba_views_base_set_show_back_button (TubaViewsBase* self,
                                           gboolean value);
VALA_EXTERN gboolean tuba_views_base_get_current (TubaViewsBase* self);
VALA_EXTERN void tuba_views_base_set_current (TubaViewsBase* self,
                                  gboolean value);
VALA_EXTERN TubaViewsBaseStatusMessage* tuba_views_base_get_base_status (TubaViewsBase* self);
static void tuba_views_base_status_message_finalize (GObject * obj);
static GType tuba_views_base_status_message_get_type_once (void);
static GObject * tuba_views_base_constructor (GType type,
                                       guint n_construct_properties,
                                       GObjectConstructParam * construct_properties);
static void _vala_GValue_free (GValue* self);
static void _tuba_views_base___lambda26_ (TubaViewsBase* self);
static void __tuba_views_base___lambda26__g_object_notify (GObject* _sender,
                                                    GParamSpec* pspec,
                                                    gpointer self);
static void _tuba_views_base_on_scroll_to_top_gtk_button_clicked (GtkButton* _sender,
                                                           gpointer self);
static void _tuba_views_base_update_back_btn_g_object_notify (GObject* _sender,
                                                       GParamSpec* pspec,
                                                       gpointer self);
static void tuba_views_base_finalize (GObject * obj);
static GType tuba_views_base_get_type_once (void);
static void _vala_tuba_views_base_get_property (GObject * object,
                                         guint property_id,
                                         GValue * value,
                                         GParamSpec * pspec);
static void _vala_tuba_views_base_set_property (GObject * object,
                                         guint property_id,
                                         const GValue * value,
                                         GParamSpec * pspec);

static inline gpointer
tuba_views_base_get_instance_private (TubaViewsBase* self)
{
	return G_STRUCT_MEMBER_P (self, TubaViewsBase_private_offset);
}

static const gchar*
string_to_string (const gchar* self)
{
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	result = self;
	return result;
}

static void
tuba_views_base_update_back_btn (TubaViewsBase* self)
{
	gboolean _tmp0_ = FALSE;
	TubaApplication* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	AdwHeaderBar* _tmp6_;
	AdwHeaderBar* _tmp7_;
	AdwHeaderBar* _tmp8_;
	gboolean _tmp9_;
	gboolean _tmp10_;
	AdwHeaderBar* _tmp11_;
	AdwHeaderBar* _tmp12_;
	gboolean _tmp13_;
	gboolean _tmp14_;
	g_return_if_fail (self != NULL);
	_tmp1_ = tuba_app;
	_tmp2_ = tuba_application_get_is_mobile (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		_tmp0_ = TRUE;
	} else {
		gboolean _tmp4_;
		gboolean _tmp5_;
		_tmp4_ = tuba_views_base_get_show_back_button (self);
		_tmp5_ = _tmp4_;
		_tmp0_ = _tmp5_;
	}
	_tmp6_ = self->header;
	adw_header_bar_set_show_back_button (_tmp6_, _tmp0_);
	_tmp7_ = self->header;
	_tmp8_ = self->header;
	_tmp9_ = adw_header_bar_get_show_start_title_buttons (_tmp8_);
	_tmp10_ = _tmp9_;
	adw_header_bar_set_show_start_title_buttons (_tmp7_, !_tmp10_);
	_tmp11_ = self->header;
	_tmp12_ = self->header;
	_tmp13_ = adw_header_bar_get_show_start_title_buttons (_tmp12_);
	_tmp14_ = _tmp13_;
	adw_header_bar_set_show_start_title_buttons (_tmp11_, !_tmp14_);
}

static void
tuba_views_base_on_scroll_to_top (TubaViewsBase* self)
{
	GtkScrolledWindow* _tmp0_;
	gboolean _tmp1_ = FALSE;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->scrolled;
	g_signal_emit_by_name (_tmp0_, "scroll-child", GTK_SCROLL_START, FALSE, &_tmp1_);
}

static void
tuba_views_base_real_scroll_page (TubaViewsBase* self,
                                  gboolean up)
{
	GtkScrollType _tmp0_ = 0;
	GtkScrolledWindow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	if (up) {
		_tmp0_ = GTK_SCROLL_PAGE_BACKWARD;
	} else {
		_tmp0_ = GTK_SCROLL_PAGE_FORWARD;
	}
	_tmp1_ = self->scrolled;
	g_signal_emit_by_name (_tmp1_, "scroll-child", _tmp0_, FALSE, &_tmp2_);
}

void
tuba_views_base_scroll_page (TubaViewsBase* self,
                             gboolean up)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->scroll_page) {
		_klass_->scroll_page (self, up);
	}
}

static void
tuba_views_base_real_dispose (GObject* base)
{
	TubaViewsBase * self;
	GSimpleActionGroup* _tmp0_;
	self = (TubaViewsBase*) base;
	_tmp0_ = self->priv->_actions;
	g_object_run_dispose ((GObject*) _tmp0_);
	G_OBJECT_CLASS (tuba_views_base_parent_class)->dispose ((GObject*) G_TYPE_CHECK_INSTANCE_CAST (self, adw_breakpoint_bin_get_type (), AdwBreakpointBin));
}

static void
tuba_views_base_real_unbind_listboxes (TubaViewsBase* self)
{
	tuba_views_base_set_last_widget (self, NULL);
}

void
tuba_views_base_unbind_listboxes (TubaViewsBase* self)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->unbind_listboxes) {
		_klass_->unbind_listboxes (self);
	}
}

static void
tuba_views_base_real_build_actions (TubaViewsBase* self)
{
}

void
tuba_views_base_build_actions (TubaViewsBase* self)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->build_actions) {
		_klass_->build_actions (self);
	}
}

static void
tuba_views_base_real_build_header (TubaViewsBase* self)
{
	AdwWindowTitle* title = NULL;
	const gchar* _tmp0_;
	AdwWindowTitle* _tmp1_;
	AdwHeaderBar* _tmp2_;
	_tmp0_ = self->priv->_label;
	_tmp1_ = (AdwWindowTitle*) adw_window_title_new (_tmp0_, "");
	g_object_ref_sink (_tmp1_);
	title = _tmp1_;
	g_object_bind_property_with_closures ((GObject*) self, "label", (GObject*) title, "title", G_BINDING_SYNC_CREATE, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
	_tmp2_ = self->header;
	adw_header_bar_set_title_widget (_tmp2_, (GtkWidget*) title);
	_g_object_unref0 (title);
}

void
tuba_views_base_build_header (TubaViewsBase* self)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->build_header) {
		_klass_->build_header (self);
	}
}

static void
tuba_views_base_real_clear (TubaViewsBase* self)
{
	tuba_views_base_set_last_widget (self, NULL);
	tuba_views_base_set_base_status (self, NULL);
}

void
tuba_views_base_clear (TubaViewsBase* self)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->clear) {
		_klass_->clear (self);
	}
}

static void
tuba_views_base_real_on_shown (TubaViewsBase* self)
{
	gboolean _tmp0_ = FALSE;
	TubaApplication* _tmp1_;
	_tmp1_ = tuba_app;
	if (_tmp1_ != NULL) {
		TubaApplication* _tmp2_;
		TubaDialogsMainWindow* _tmp3_;
		TubaDialogsMainWindow* _tmp4_;
		_tmp2_ = tuba_app;
		_tmp3_ = tuba_application_get_main_window (_tmp2_);
		_tmp4_ = _tmp3_;
		_tmp0_ = _tmp4_ != NULL;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		TubaApplication* _tmp5_;
		TubaDialogsMainWindow* _tmp6_;
		TubaDialogsMainWindow* _tmp7_;
		GSimpleActionGroup* _tmp8_;
		_tmp5_ = tuba_app;
		_tmp6_ = tuba_application_get_main_window (_tmp5_);
		_tmp7_ = _tmp6_;
		_tmp8_ = self->priv->_actions;
		gtk_widget_insert_action_group ((GtkWidget*) _tmp7_, "view", (GActionGroup*) _tmp8_);
	}
}

void
tuba_views_base_on_shown (TubaViewsBase* self)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->on_shown) {
		_klass_->on_shown (self);
	}
}

static void
tuba_views_base_real_on_hidden (TubaViewsBase* self)
{
	gboolean _tmp0_ = FALSE;
	TubaApplication* _tmp1_;
	_tmp1_ = tuba_app;
	if (_tmp1_ != NULL) {
		TubaApplication* _tmp2_;
		TubaDialogsMainWindow* _tmp3_;
		TubaDialogsMainWindow* _tmp4_;
		_tmp2_ = tuba_app;
		_tmp3_ = tuba_application_get_main_window (_tmp2_);
		_tmp4_ = _tmp3_;
		_tmp0_ = _tmp4_ != NULL;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		TubaApplication* _tmp5_;
		TubaDialogsMainWindow* _tmp6_;
		TubaDialogsMainWindow* _tmp7_;
		_tmp5_ = tuba_app;
		_tmp6_ = tuba_application_get_main_window (_tmp5_);
		_tmp7_ = _tmp6_;
		gtk_widget_insert_action_group ((GtkWidget*) _tmp7_, "view", NULL);
	}
}

void
tuba_views_base_on_hidden (TubaViewsBase* self)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->on_hidden) {
		_klass_->on_hidden (self);
	}
}

static void
tuba_views_base_real_on_content_changed (TubaViewsBase* self)
{
}

void
tuba_views_base_on_content_changed (TubaViewsBase* self)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->on_content_changed) {
		_klass_->on_content_changed (self);
	}
}

static void
tuba_views_base_real_on_error (TubaViewsBase* self,
                               gint32 code,
                               const gchar* reason)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	TubaViewsBaseStatusMessage* _tmp2_ = NULL;
	TubaViewsBaseStatusMessage* _tmp3_;
	GtkImage* _tmp4_;
	GtkImage* _tmp5_;
	GtkButton* _tmp6_;
	GtkButton* _tmp7_;
	g_return_if_fail (reason != NULL);
	_tmp0_ = g_strdup (_ ("An Error Occurred"));
	_tmp1_ = g_strdup (reason);
	_tmp2_ = tuba_views_base_status_message_new ();
	_g_free0 (_tmp2_->title);
	_tmp2_->title = _tmp0_;
	_g_free0 (_tmp2_->message);
	_tmp2_->message = _tmp1_;
	_tmp3_ = _tmp2_;
	tuba_views_base_set_base_status (self, _tmp3_);
	_g_object_unref0 (_tmp3_);
	_tmp4_ = self->priv->status_image;
	g_object_set (_tmp4_, "icon-name", "tuba-sad-computer-symbolic", NULL);
	_tmp5_ = self->priv->status_image;
	gtk_widget_set_visible ((GtkWidget*) _tmp5_, TRUE);
	_tmp6_ = self->status_button;
	gtk_widget_set_visible ((GtkWidget*) _tmp6_, TRUE);
	_tmp7_ = self->status_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp7_, TRUE);
}

void
tuba_views_base_on_error (TubaViewsBase* self,
                          gint32 code,
                          const gchar* reason)
{
	TubaViewsBaseClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = TUBA_VIEWS_BASE_GET_CLASS (self);
	if (_klass_->on_error) {
		_klass_->on_error (self, code, reason);
	}
}

void
tuba_views_base_update_last_widget (TubaViewsBase* self,
                                    gboolean clear)
{
	GtkWidget* _tmp0_ = NULL;
	g_return_if_fail (self != NULL);
	if (clear) {
		_tmp0_ = NULL;
	} else {
		TubaApplication* _tmp1_;
		TubaDialogsMainWindow* _tmp2_;
		TubaDialogsMainWindow* _tmp3_;
		GtkWidget* _tmp4_;
		_tmp1_ = tuba_app;
		_tmp2_ = tuba_application_get_main_window (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp4_ = gtk_root_get_focus ((GtkRoot*) _tmp3_);
		_tmp0_ = _tmp4_;
	}
	tuba_views_base_set_last_widget (self, _tmp0_);
}

TubaViewsBase*
tuba_views_base_construct (GType object_type)
{
	TubaViewsBase * self = NULL;
	self = (TubaViewsBase*) g_object_new (object_type, NULL);
	return self;
}

TubaViewsBase*
tuba_views_base_new (void)
{
	return tuba_views_base_construct (TUBA_VIEWS_TYPE_BASE);
}

const gchar*
tuba_views_base_get_empty_state_title (TubaViewsBase* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_empty_state_title;
	result = _tmp0_;
	return result;
}

void
tuba_views_base_set_empty_state_title (TubaViewsBase* self,
                                       const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_empty_state_title (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_empty_state_title);
		self->priv->_empty_state_title = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_EMPTY_STATE_TITLE_PROPERTY]);
	}
}

const gchar*
tuba_views_base_get_icon (TubaViewsBase* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_icon;
	result = _tmp0_;
	return result;
}

void
tuba_views_base_set_icon (TubaViewsBase* self,
                          const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_icon (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_icon);
		self->priv->_icon = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_ICON_PROPERTY]);
	}
}

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

void
tuba_views_base_set_label (TubaViewsBase* self,
                           const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_label (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_label);
		self->priv->_label = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_LABEL_PROPERTY]);
	}
}

gboolean
tuba_views_base_get_needs_attention (TubaViewsBase* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_needs_attention;
	return result;
}

void
tuba_views_base_set_needs_attention (TubaViewsBase* self,
                                     gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_needs_attention (self);
	if (old_value != value) {
		self->priv->_needs_attention = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_NEEDS_ATTENTION_PROPERTY]);
	}
}

gboolean
tuba_views_base_get_is_main (TubaViewsBase* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_main;
	return result;
}

void
tuba_views_base_set_is_main (TubaViewsBase* self,
                             gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_is_main (self);
	if (old_value != value) {
		self->priv->_is_main = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_IS_MAIN_PROPERTY]);
	}
}

gboolean
tuba_views_base_get_allow_nesting (TubaViewsBase* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_allow_nesting;
	return result;
}

void
tuba_views_base_set_allow_nesting (TubaViewsBase* self,
                                   gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_allow_nesting (self);
	if (old_value != value) {
		self->priv->_allow_nesting = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_ALLOW_NESTING_PROPERTY]);
	}
}

gboolean
tuba_views_base_get_is_sidebar_item (TubaViewsBase* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_sidebar_item;
	return result;
}

void
tuba_views_base_set_is_sidebar_item (TubaViewsBase* self,
                                     gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_is_sidebar_item (self);
	if (old_value != value) {
		self->priv->_is_sidebar_item = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_IS_SIDEBAR_ITEM_PROPERTY]);
	}
}

gint
tuba_views_base_get_badge_number (TubaViewsBase* self)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	result = self->priv->_badge_number;
	return result;
}

void
tuba_views_base_set_badge_number (TubaViewsBase* self,
                                  gint value)
{
	gint old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_badge_number (self);
	if (old_value != value) {
		self->priv->_badge_number = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_BADGE_NUMBER_PROPERTY]);
	}
}

gint
tuba_views_base_get_uid (TubaViewsBase* self)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	result = self->priv->_uid;
	return result;
}

void
tuba_views_base_set_uid (TubaViewsBase* self,
                         gint value)
{
	gint old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_uid (self);
	if (old_value != value) {
		self->priv->_uid = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_UID_PROPERTY]);
	}
}

GSimpleActionGroup*
tuba_views_base_get_actions (TubaViewsBase* self)
{
	GSimpleActionGroup* result;
	GSimpleActionGroup* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_actions;
	result = _tmp0_;
	return result;
}

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

void
tuba_views_base_set_actions (TubaViewsBase* self,
                             GSimpleActionGroup* value)
{
	GSimpleActionGroup* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_actions (self);
	if (old_value != value) {
		GSimpleActionGroup* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_actions);
		self->priv->_actions = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_ACTIONS_PROPERTY]);
	}
}

GtkWidget*
tuba_views_base_get_last_widget (TubaViewsBase* self)
{
	GtkWidget* result;
	GtkWidget* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_last_widget;
	result = _tmp0_;
	return result;
}

static void
tuba_views_base_set_last_widget (TubaViewsBase* self,
                                 GtkWidget* value)
{
	GtkWidget* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_last_widget (self);
	if (old_value != value) {
		GtkWidget* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_last_widget);
		self->priv->_last_widget = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_LAST_WIDGET_PROPERTY]);
	}
}

const gchar*
tuba_views_base_get_empty_timeline_icon (TubaViewsBase* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_empty_timeline_icon;
	result = _tmp0_;
	return result;
}

void
tuba_views_base_set_empty_timeline_icon (TubaViewsBase* self,
                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_views_base_get_empty_timeline_icon (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_empty_timeline_icon);
		self->priv->_empty_timeline_icon = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_EMPTY_TIMELINE_ICON_PROPERTY]);
	}
}

gboolean
tuba_views_base_get_small (TubaViewsBase* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_small;
	return result;
}

void
tuba_views_base_set_small (TubaViewsBase* self,
                           gboolean value)
{
	gboolean _tmp0_ = FALSE;
	g_return_if_fail (self != NULL);
	self->priv->_small = value;
	if (!value) {
		AdwClamp* _tmp1_;
		_tmp1_ = self->content_box;
		_tmp0_ = !gtk_widget_has_css_class ((GtkWidget*) _tmp1_, "large-view");
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		AdwClamp* _tmp2_;
		_tmp2_ = self->content_box;
		gtk_widget_add_css_class ((GtkWidget*) _tmp2_, "large-view");
	} else {
		gboolean _tmp3_ = FALSE;
		if (value) {
			AdwClamp* _tmp4_;
			_tmp4_ = self->content_box;
			_tmp3_ = gtk_widget_has_css_class ((GtkWidget*) _tmp4_, "large-view");
		} else {
			_tmp3_ = FALSE;
		}
		if (_tmp3_) {
			AdwClamp* _tmp5_;
			_tmp5_ = self->content_box;
			gtk_widget_remove_css_class ((GtkWidget*) _tmp5_, "large-view");
		}
	}
	g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_SMALL_PROPERTY]);
}

gboolean
tuba_views_base_get_show_back_button (TubaViewsBase* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_show_back_button;
	return result;
}

void
tuba_views_base_set_show_back_button (TubaViewsBase* self,
                                      gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_show_back_button = value;
	tuba_views_base_update_back_btn (self);
	g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_SHOW_BACK_BUTTON_PROPERTY]);
}

gboolean
tuba_views_base_get_current (TubaViewsBase* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_current;
	return result;
}

void
tuba_views_base_set_current (TubaViewsBase* self,
                             gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_current = value;
	if (value) {
		tuba_views_base_on_shown (self);
	} else {
		tuba_views_base_on_hidden (self);
	}
	g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_CURRENT_PROPERTY]);
}

TubaViewsBaseStatusMessage*
tuba_views_base_get_base_status (TubaViewsBase* self)
{
	TubaViewsBaseStatusMessage* result;
	TubaViewsBaseStatusMessage* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_base_status;
	result = _tmp0_;
	return result;
}

void
tuba_views_base_set_base_status (TubaViewsBase* self,
                                 TubaViewsBaseStatusMessage* value)
{
	GtkImage* _tmp0_;
	GtkImage* _tmp1_;
	const gchar* _tmp2_;
	GtkButton* _tmp3_;
	TubaViewsBaseStatusMessage* _tmp39_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->status_image;
	gtk_widget_set_visible ((GtkWidget*) _tmp0_, FALSE);
	_tmp1_ = self->priv->status_image;
	_tmp2_ = self->priv->_empty_timeline_icon;
	g_object_set (_tmp1_, "icon-name", _tmp2_, NULL);
	_tmp3_ = self->status_button;
	gtk_widget_set_visible ((GtkWidget*) _tmp3_, FALSE);
	gtk_accessible_update_state ((GtkAccessible*) self, GTK_ACCESSIBLE_STATE_BUSY, FALSE, -1, -1);
	gtk_accessible_update_property ((GtkAccessible*) self, GTK_ACCESSIBLE_PROPERTY_LABEL, NULL, -1, -1);
	if (value == NULL) {
		GtkStack* _tmp4_;
		const gchar* _tmp5_;
		const gchar* _tmp6_;
		_tmp4_ = self->states;
		_tmp5_ = gtk_stack_get_visible_child_name (_tmp4_);
		_tmp6_ = _tmp5_;
		if (g_strcmp0 (_tmp6_, "content") != 0) {
			GtkStack* _tmp7_;
			_tmp7_ = self->states;
			gtk_stack_set_visible_child_name (_tmp7_, "content");
		}
	} else {
		GtkStack* _tmp8_;
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		_tmp8_ = self->states;
		_tmp9_ = gtk_stack_get_visible_child_name (_tmp8_);
		_tmp10_ = _tmp9_;
		if (g_strcmp0 (_tmp10_, "status") != 0) {
			GtkStack* _tmp11_;
			_tmp11_ = self->states;
			gtk_stack_set_visible_child_name (_tmp11_, "status");
		}
		if (value->loading) {
			GtkStack* _tmp12_;
			const gchar* _tmp13_;
			const gchar* _tmp14_;
			_tmp12_ = self->priv->status_stack;
			_tmp13_ = gtk_stack_get_visible_child_name (_tmp12_);
			_tmp14_ = _tmp13_;
			if (g_strcmp0 (_tmp14_, "spinner") != 0) {
				GtkStack* _tmp15_;
				_tmp15_ = self->priv->status_stack;
				gtk_stack_set_visible_child_name (_tmp15_, "spinner");
			}
			gtk_accessible_update_state ((GtkAccessible*) self, GTK_ACCESSIBLE_STATE_BUSY, TRUE, -1, -1);
		} else {
			GtkStack* _tmp16_;
			const gchar* _tmp17_;
			const gchar* _tmp18_;
			const gchar* _tmp20_;
			const gchar* _tmp26_;
			GtkLabel* _tmp29_;
			const gchar* _tmp30_;
			const gchar* _tmp31_;
			const gchar* _tmp32_;
			GtkLabel* _tmp33_;
			const gchar* _tmp34_;
			const gchar* _tmp35_;
			const gchar* _tmp36_;
			gchar* _tmp37_;
			gchar* _tmp38_;
			_tmp16_ = self->priv->status_stack;
			_tmp17_ = gtk_stack_get_visible_child_name (_tmp16_);
			_tmp18_ = _tmp17_;
			if (g_strcmp0 (_tmp18_, "message") != 0) {
				GtkStack* _tmp19_;
				_tmp19_ = self->priv->status_stack;
				gtk_stack_set_visible_child_name (_tmp19_, "message");
			}
			_tmp20_ = value->title;
			if (_tmp20_ == NULL) {
				GtkLabel* _tmp21_;
				const gchar* _tmp22_;
				GtkImage* _tmp23_;
				_tmp21_ = self->priv->status_title_label;
				_tmp22_ = self->priv->_empty_state_title;
				gtk_label_set_label (_tmp21_, _tmp22_);
				_tmp23_ = self->priv->status_image;
				gtk_widget_set_visible ((GtkWidget*) _tmp23_, TRUE);
			} else {
				GtkLabel* _tmp24_;
				const gchar* _tmp25_;
				_tmp24_ = self->priv->status_title_label;
				_tmp25_ = value->title;
				gtk_label_set_label (_tmp24_, _tmp25_);
			}
			_tmp26_ = value->message;
			if (_tmp26_ != NULL) {
				GtkLabel* _tmp27_;
				const gchar* _tmp28_;
				_tmp27_ = self->priv->status_message_label;
				_tmp28_ = value->message;
				gtk_label_set_label (_tmp27_, _tmp28_);
			}
			_tmp29_ = self->priv->status_title_label;
			_tmp30_ = gtk_label_get_label (_tmp29_);
			_tmp31_ = _tmp30_;
			_tmp32_ = string_to_string (_tmp31_);
			_tmp33_ = self->priv->status_message_label;
			_tmp34_ = gtk_label_get_label (_tmp33_);
			_tmp35_ = _tmp34_;
			_tmp36_ = string_to_string (_tmp35_);
			_tmp37_ = g_strconcat (_tmp32_, " ", _tmp36_, NULL);
			_tmp38_ = _tmp37_;
			gtk_accessible_update_property ((GtkAccessible*) self, GTK_ACCESSIBLE_PROPERTY_LABEL, _tmp38_, -1, -1);
			_g_free0 (_tmp38_);
		}
	}
	_tmp39_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_base_status);
	self->priv->_base_status = _tmp39_;
	g_object_notify_by_pspec ((GObject *) self, tuba_views_base_properties[TUBA_VIEWS_BASE_BASE_STATUS_PROPERTY]);
}

TubaViewsBaseStatusMessage*
tuba_views_base_status_message_construct (GType object_type)
{
	TubaViewsBaseStatusMessage * self = NULL;
	self = (TubaViewsBaseStatusMessage*) g_object_new (object_type, NULL);
	return self;
}

TubaViewsBaseStatusMessage*
tuba_views_base_status_message_new (void)
{
	return tuba_views_base_status_message_construct (TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE);
}

static void
tuba_views_base_status_message_class_init (TubaViewsBaseStatusMessageClass * klass,
                                           gpointer klass_data)
{
	tuba_views_base_status_message_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = tuba_views_base_status_message_finalize;
}

static void
tuba_views_base_status_message_instance_init (TubaViewsBaseStatusMessage * self,
                                              gpointer klass)
{
	self->title = NULL;
	self->message = NULL;
	self->loading = FALSE;
}

static void
tuba_views_base_status_message_finalize (GObject * obj)
{
	TubaViewsBaseStatusMessage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE, TubaViewsBaseStatusMessage);
	_g_free0 (self->title);
	_g_free0 (self->message);
	G_OBJECT_CLASS (tuba_views_base_status_message_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_views_base_status_message_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaViewsBaseStatusMessageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_views_base_status_message_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaViewsBaseStatusMessage), 0, (GInstanceInitFunc) tuba_views_base_status_message_instance_init, NULL };
	GType tuba_views_base_status_message_type_id;
	tuba_views_base_status_message_type_id = g_type_register_static (G_TYPE_OBJECT, "TubaViewsBaseStatusMessage", &g_define_type_info, G_TYPE_FLAG_NONE);
	return tuba_views_base_status_message_type_id;
}

GType
tuba_views_base_status_message_get_type (void)
{
	static GType tuba_views_base_status_message_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_views_base_status_message_type_id__once)) {
		GType tuba_views_base_status_message_type_id;
		tuba_views_base_status_message_type_id = tuba_views_base_status_message_get_type_once ();
		g_once_init_leave_pointer (&tuba_views_base_status_message_type_id__once, tuba_views_base_status_message_type_id);
	}
	return tuba_views_base_status_message_type_id__once;
}

static void
_vala_GValue_free (GValue* self)
{
	g_boxed_free (G_TYPE_VALUE, self);
}

static void
_tuba_views_base___lambda26_ (TubaViewsBase* self)
{
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	_tmp0_ = gtk_widget_get_parent ((GtkWidget*) self);
	_tmp1_ = _tmp0_;
	if (_tmp1_ == NULL) {
		tuba_views_base_unbind_listboxes (self);
	}
}

static void
__tuba_views_base___lambda26__g_object_notify (GObject* _sender,
                                               GParamSpec* pspec,
                                               gpointer self)
{
	_tuba_views_base___lambda26_ ((TubaViewsBase*) self);
}

static void
_tuba_views_base_on_scroll_to_top_gtk_button_clicked (GtkButton* _sender,
                                                      gpointer self)
{
	tuba_views_base_on_scroll_to_top ((TubaViewsBase*) self);
}

static void
_tuba_views_base_update_back_btn_g_object_notify (GObject* _sender,
                                                  GParamSpec* pspec,
                                                  gpointer self)
{
	tuba_views_base_update_back_btn ((TubaViewsBase*) self);
}

static GObject *
tuba_views_base_constructor (GType type,
                             guint n_construct_properties,
                             GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	TubaViewsBase * self;
	AdwBreakpoint* breakpoint = NULL;
	AdwBreakpointCondition* _tmp0_;
	AdwBreakpoint* _tmp1_;
	AdwBreakpoint* _tmp2_;
	GValue* _tmp3_ = NULL;
	AdwBreakpoint* _tmp4_;
	AdwBreakpoint* _tmp5_;
	GtkButton* _tmp6_;
	TubaViewsBaseStatusMessage* _tmp7_ = NULL;
	TubaViewsBaseStatusMessage* _tmp8_;
	GtkButton* _tmp9_;
	TubaApplication* _tmp10_;
	parent_class = G_OBJECT_CLASS (tuba_views_base_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_VIEWS_TYPE_BASE, TubaViewsBase);
	_tmp0_ = adw_breakpoint_condition_new_length (ADW_BREAKPOINT_CONDITION_MAX_WIDTH, (gdouble) 670, ADW_LENGTH_UNIT_PX);
	_tmp1_ = adw_breakpoint_new (_tmp0_);
	breakpoint = _tmp1_;
	_tmp2_ = breakpoint;
	_tmp3_ = g_new0 (GValue, 1);
	g_value_init (_tmp3_, G_TYPE_BOOLEAN);
	g_value_set_boolean (_tmp3_, TRUE);
	adw_breakpoint_add_setter (_tmp2_, (GObject*) self, "small", _tmp3_);
	__vala_GValue_free0 (_tmp3_);
	_tmp4_ = breakpoint;
	_tmp5_ = _g_object_ref0 (_tmp4_);
	adw_breakpoint_bin_add_breakpoint ((AdwBreakpointBin*) self, _tmp5_);
	tuba_views_base_build_actions (self);
	tuba_views_base_build_header (self);
	_tmp6_ = self->status_button;
	gtk_button_set_label (_tmp6_, _ ("Reload"));
	_tmp7_ = tuba_views_base_status_message_new ();
	_tmp7_->loading = TRUE;
	_tmp8_ = _tmp7_;
	tuba_views_base_set_base_status (self, _tmp8_);
	_g_object_unref0 (_tmp8_);
	g_signal_connect_object ((GObject*) self, "notify::parent", (GCallback) __tuba_views_base___lambda26__g_object_notify, self, 0);
	_tmp9_ = self->scroll_to_top;
	g_signal_connect_object (_tmp9_, "clicked", (GCallback) _tuba_views_base_on_scroll_to_top_gtk_button_clicked, self, 0);
	_tmp10_ = tuba_app;
	g_signal_connect_object ((GObject*) _tmp10_, "notify::is-mobile", (GCallback) _tuba_views_base_update_back_btn_g_object_notify, self, 0);
	_g_object_unref0 (breakpoint);
	return obj;
}

static void
tuba_views_base_class_init (TubaViewsBaseClass * klass,
                            gpointer klass_data)
{
	gchar* _tmp0_;
	tuba_views_base_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaViewsBase_private_offset);
	((TubaViewsBaseClass *) klass)->scroll_page = (void (*) (TubaViewsBase*, gboolean)) tuba_views_base_real_scroll_page;
	((GObjectClass *) klass)->dispose = (void (*) (GObject*)) tuba_views_base_real_dispose;
	((TubaViewsBaseClass *) klass)->unbind_listboxes = (void (*) (TubaViewsBase*)) tuba_views_base_real_unbind_listboxes;
	((TubaViewsBaseClass *) klass)->build_actions = (void (*) (TubaViewsBase*)) tuba_views_base_real_build_actions;
	((TubaViewsBaseClass *) klass)->build_header = (void (*) (TubaViewsBase*)) tuba_views_base_real_build_header;
	((TubaViewsBaseClass *) klass)->clear = (void (*) (TubaViewsBase*)) tuba_views_base_real_clear;
	((TubaViewsBaseClass *) klass)->on_shown = (void (*) (TubaViewsBase*)) tuba_views_base_real_on_shown;
	((TubaViewsBaseClass *) klass)->on_hidden = (void (*) (TubaViewsBase*)) tuba_views_base_real_on_hidden;
	((TubaViewsBaseClass *) klass)->on_content_changed = (void (*) (TubaViewsBase*)) tuba_views_base_real_on_content_changed;
	((TubaViewsBaseClass *) klass)->on_error = (void (*) (TubaViewsBase*, gint32, const gchar*)) tuba_views_base_real_on_error;
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_views_base_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_views_base_set_property;
	G_OBJECT_CLASS (klass)->constructor = tuba_views_base_constructor;
	G_OBJECT_CLASS (klass)->finalize = tuba_views_base_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_EMPTY_STATE_TITLE_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_EMPTY_STATE_TITLE_PROPERTY] = g_param_spec_string ("empty-state-title", "empty-state-title", "empty-state-title", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_ICON_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_ICON_PROPERTY] = g_param_spec_string ("icon", "icon", "icon", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_LABEL_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_LABEL_PROPERTY] = g_param_spec_string ("label", "label", "label", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_NEEDS_ATTENTION_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_NEEDS_ATTENTION_PROPERTY] = g_param_spec_boolean ("needs-attention", "needs-attention", "needs-attention", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_IS_MAIN_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_IS_MAIN_PROPERTY] = g_param_spec_boolean ("is-main", "is-main", "is-main", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_ALLOW_NESTING_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_ALLOW_NESTING_PROPERTY] = g_param_spec_boolean ("allow-nesting", "allow-nesting", "allow-nesting", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_IS_SIDEBAR_ITEM_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_IS_SIDEBAR_ITEM_PROPERTY] = g_param_spec_boolean ("is-sidebar-item", "is-sidebar-item", "is-sidebar-item", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_BADGE_NUMBER_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_BADGE_NUMBER_PROPERTY] = g_param_spec_int ("badge-number", "badge-number", "badge-number", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_UID_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_UID_PROPERTY] = g_param_spec_int ("uid", "uid", "uid", G_MININT, G_MAXINT, -1, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_ACTIONS_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_ACTIONS_PROPERTY] = g_param_spec_object ("actions", "actions", "actions", g_simple_action_group_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_LAST_WIDGET_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_LAST_WIDGET_PROPERTY] = g_param_spec_object ("last-widget", "last-widget", "last-widget", gtk_widget_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_EMPTY_TIMELINE_ICON_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_EMPTY_TIMELINE_ICON_PROPERTY] = g_param_spec_string ("empty-timeline-icon", "empty-timeline-icon", "empty-timeline-icon", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_SMALL_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_SMALL_PROPERTY] = g_param_spec_boolean ("small", "small", "small", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_SHOW_BACK_BUTTON_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_SHOW_BACK_BUTTON_PROPERTY] = g_param_spec_boolean ("show-back-button", "show-back-button", "show-back-button", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_CURRENT_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_CURRENT_PROPERTY] = g_param_spec_boolean ("current", "current", "current", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_VIEWS_BASE_BASE_STATUS_PROPERTY, tuba_views_base_properties[TUBA_VIEWS_BASE_BASE_STATUS_PROPERTY] = g_param_spec_object ("base-status", "base-status", "base-status", TUBA_VIEWS_BASE_TYPE_STATUS_MESSAGE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/dev/geopjr/Tuba/ui/views/base.ui");
	_tmp0_ = g_strdup (_ ("Nothing to see here"));
	tuba_views_base_STATUS_EMPTY = _tmp0_;
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "header", FALSE, G_STRUCT_OFFSET (TubaViewsBase, header));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "toolbar_view", FALSE, G_STRUCT_OFFSET (TubaViewsBase, toolbar_view));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "scrolled", FALSE, G_STRUCT_OFFSET (TubaViewsBase, scrolled));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "scrolled_overlay", FALSE, G_STRUCT_OFFSET (TubaViewsBase, scrolled_overlay));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "scroll_to_top_rev", FALSE, G_STRUCT_OFFSET (TubaViewsBase, scroll_to_top_rev));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "scroll_to_top", FALSE, G_STRUCT_OFFSET (TubaViewsBase, scroll_to_top));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "states", FALSE, G_STRUCT_OFFSET (TubaViewsBase, states));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "content_box", FALSE, G_STRUCT_OFFSET (TubaViewsBase, content_box));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "status_button", FALSE, G_STRUCT_OFFSET (TubaViewsBase, status_button));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "status_image", FALSE, TubaViewsBase_private_offset + G_STRUCT_OFFSET (TubaViewsBasePrivate, status_image));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "status_stack", FALSE, TubaViewsBase_private_offset + G_STRUCT_OFFSET (TubaViewsBasePrivate, status_stack));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "status_title_label", FALSE, TubaViewsBase_private_offset + G_STRUCT_OFFSET (TubaViewsBasePrivate, status_title_label));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "status_message_label", FALSE, TubaViewsBase_private_offset + G_STRUCT_OFFSET (TubaViewsBasePrivate, status_message_label));
}

static void
tuba_views_base_instance_init (TubaViewsBase * self,
                               gpointer klass)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	GSimpleActionGroup* _tmp3_;
	gchar* _tmp4_;
	self->priv = tuba_views_base_get_instance_private (self);
	_tmp0_ = tuba_views_base_STATUS_EMPTY;
	_tmp1_ = g_strdup (_tmp0_);
	self->priv->_empty_state_title = _tmp1_;
	self->priv->_icon = NULL;
	_tmp2_ = g_strdup ("");
	self->priv->_label = _tmp2_;
	self->priv->_needs_attention = FALSE;
	self->priv->_is_main = FALSE;
	self->priv->_allow_nesting = FALSE;
	self->priv->_is_sidebar_item = FALSE;
	self->priv->_badge_number = 0;
	self->priv->_uid = -1;
	_tmp3_ = g_simple_action_group_new ();
	self->priv->_actions = _tmp3_;
	self->priv->_last_widget = NULL;
	_tmp4_ = g_strdup ("tuba-background-app-ghost-symbolic");
	self->priv->_empty_timeline_icon = _tmp4_;
	self->priv->_small = FALSE;
	self->priv->_show_back_button = TRUE;
	self->priv->_current = FALSE;
	self->priv->_base_status = NULL;
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
tuba_views_base_finalize (GObject * obj)
{
	TubaViewsBase * self;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_VIEWS_TYPE_BASE, TubaViewsBase);
	tuba_views_base_set_last_widget (self, NULL);
	_tmp0_ = self->priv->_label;
	_tmp1_ = string_to_string (_tmp0_);
	_tmp2_ = g_strconcat ("Destroying base ", _tmp1_, NULL);
	_tmp3_ = _tmp2_;
	g_debug ("Base.vala:163: %s", _tmp3_);
	_g_free0 (_tmp3_);
	_g_free0 (self->priv->_empty_state_title);
	_g_free0 (self->priv->_icon);
	_g_free0 (self->priv->_label);
	_g_object_unref0 (self->priv->_actions);
	_g_object_unref0 (self->priv->_last_widget);
	_g_free0 (self->priv->_empty_timeline_icon);
	_g_object_unref0 (self->priv->_base_status);
	G_OBJECT_CLASS (tuba_views_base_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_views_base_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaViewsBaseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_views_base_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaViewsBase), 0, (GInstanceInitFunc) tuba_views_base_instance_init, NULL };
	GType tuba_views_base_type_id;
	tuba_views_base_type_id = g_type_register_static (adw_breakpoint_bin_get_type (), "TubaViewsBase", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaViewsBase_private_offset = g_type_add_instance_private (tuba_views_base_type_id, sizeof (TubaViewsBasePrivate));
	return tuba_views_base_type_id;
}

GType
tuba_views_base_get_type (void)
{
	static GType tuba_views_base_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_views_base_type_id__once)) {
		GType tuba_views_base_type_id;
		tuba_views_base_type_id = tuba_views_base_get_type_once ();
		g_once_init_leave_pointer (&tuba_views_base_type_id__once, tuba_views_base_type_id);
	}
	return tuba_views_base_type_id__once;
}

static void
_vala_tuba_views_base_get_property (GObject * object,
                                    guint property_id,
                                    GValue * value,
                                    GParamSpec * pspec)
{
	TubaViewsBase * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_VIEWS_TYPE_BASE, TubaViewsBase);
	switch (property_id) {
		case TUBA_VIEWS_BASE_EMPTY_STATE_TITLE_PROPERTY:
		g_value_set_string (value, tuba_views_base_get_empty_state_title (self));
		break;
		case TUBA_VIEWS_BASE_ICON_PROPERTY:
		g_value_set_string (value, tuba_views_base_get_icon (self));
		break;
		case TUBA_VIEWS_BASE_LABEL_PROPERTY:
		g_value_set_string (value, tuba_views_base_get_label (self));
		break;
		case TUBA_VIEWS_BASE_NEEDS_ATTENTION_PROPERTY:
		g_value_set_boolean (value, tuba_views_base_get_needs_attention (self));
		break;
		case TUBA_VIEWS_BASE_IS_MAIN_PROPERTY:
		g_value_set_boolean (value, tuba_views_base_get_is_main (self));
		break;
		case TUBA_VIEWS_BASE_ALLOW_NESTING_PROPERTY:
		g_value_set_boolean (value, tuba_views_base_get_allow_nesting (self));
		break;
		case TUBA_VIEWS_BASE_IS_SIDEBAR_ITEM_PROPERTY:
		g_value_set_boolean (value, tuba_views_base_get_is_sidebar_item (self));
		break;
		case TUBA_VIEWS_BASE_BADGE_NUMBER_PROPERTY:
		g_value_set_int (value, tuba_views_base_get_badge_number (self));
		break;
		case TUBA_VIEWS_BASE_UID_PROPERTY:
		g_value_set_int (value, tuba_views_base_get_uid (self));
		break;
		case TUBA_VIEWS_BASE_ACTIONS_PROPERTY:
		g_value_set_object (value, tuba_views_base_get_actions (self));
		break;
		case TUBA_VIEWS_BASE_LAST_WIDGET_PROPERTY:
		g_value_set_object (value, tuba_views_base_get_last_widget (self));
		break;
		case TUBA_VIEWS_BASE_EMPTY_TIMELINE_ICON_PROPERTY:
		g_value_set_string (value, tuba_views_base_get_empty_timeline_icon (self));
		break;
		case TUBA_VIEWS_BASE_SMALL_PROPERTY:
		g_value_set_boolean (value, tuba_views_base_get_small (self));
		break;
		case TUBA_VIEWS_BASE_SHOW_BACK_BUTTON_PROPERTY:
		g_value_set_boolean (value, tuba_views_base_get_show_back_button (self));
		break;
		case TUBA_VIEWS_BASE_CURRENT_PROPERTY:
		g_value_set_boolean (value, tuba_views_base_get_current (self));
		break;
		case TUBA_VIEWS_BASE_BASE_STATUS_PROPERTY:
		g_value_set_object (value, tuba_views_base_get_base_status (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_views_base_set_property (GObject * object,
                                    guint property_id,
                                    const GValue * value,
                                    GParamSpec * pspec)
{
	TubaViewsBase * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_VIEWS_TYPE_BASE, TubaViewsBase);
	switch (property_id) {
		case TUBA_VIEWS_BASE_EMPTY_STATE_TITLE_PROPERTY:
		tuba_views_base_set_empty_state_title (self, g_value_get_string (value));
		break;
		case TUBA_VIEWS_BASE_ICON_PROPERTY:
		tuba_views_base_set_icon (self, g_value_get_string (value));
		break;
		case TUBA_VIEWS_BASE_LABEL_PROPERTY:
		tuba_views_base_set_label (self, g_value_get_string (value));
		break;
		case TUBA_VIEWS_BASE_NEEDS_ATTENTION_PROPERTY:
		tuba_views_base_set_needs_attention (self, g_value_get_boolean (value));
		break;
		case TUBA_VIEWS_BASE_IS_MAIN_PROPERTY:
		tuba_views_base_set_is_main (self, g_value_get_boolean (value));
		break;
		case TUBA_VIEWS_BASE_ALLOW_NESTING_PROPERTY:
		tuba_views_base_set_allow_nesting (self, g_value_get_boolean (value));
		break;
		case TUBA_VIEWS_BASE_IS_SIDEBAR_ITEM_PROPERTY:
		tuba_views_base_set_is_sidebar_item (self, g_value_get_boolean (value));
		break;
		case TUBA_VIEWS_BASE_BADGE_NUMBER_PROPERTY:
		tuba_views_base_set_badge_number (self, g_value_get_int (value));
		break;
		case TUBA_VIEWS_BASE_UID_PROPERTY:
		tuba_views_base_set_uid (self, g_value_get_int (value));
		break;
		case TUBA_VIEWS_BASE_ACTIONS_PROPERTY:
		tuba_views_base_set_actions (self, g_value_get_object (value));
		break;
		case TUBA_VIEWS_BASE_LAST_WIDGET_PROPERTY:
		tuba_views_base_set_last_widget (self, g_value_get_object (value));
		break;
		case TUBA_VIEWS_BASE_EMPTY_TIMELINE_ICON_PROPERTY:
		tuba_views_base_set_empty_timeline_icon (self, g_value_get_string (value));
		break;
		case TUBA_VIEWS_BASE_SMALL_PROPERTY:
		tuba_views_base_set_small (self, g_value_get_boolean (value));
		break;
		case TUBA_VIEWS_BASE_SHOW_BACK_BUTTON_PROPERTY:
		tuba_views_base_set_show_back_button (self, g_value_get_boolean (value));
		break;
		case TUBA_VIEWS_BASE_CURRENT_PROPERTY:
		tuba_views_base_set_current (self, g_value_get_boolean (value));
		break;
		case TUBA_VIEWS_BASE_BASE_STATUS_PROPERTY:
		tuba_views_base_set_base_status (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

