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

#include <adwaita.h>
#include <glib-object.h>
#include <gee.h>
#include <gtk/gtk.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <float.h>
#include <math.h>
#include <gdk/gdk.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_WIDGETS_TYPE_RICH_LABEL (tuba_widgets_rich_label_get_type ())
#define TUBA_WIDGETS_RICH_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabel))
#define TUBA_WIDGETS_RICH_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabelClass))
#define TUBA_WIDGETS_IS_RICH_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL))
#define TUBA_WIDGETS_IS_RICH_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_RICH_LABEL))
#define TUBA_WIDGETS_RICH_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabelClass))

typedef struct _TubaWidgetsRichLabel TubaWidgetsRichLabel;
typedef struct _TubaWidgetsRichLabelClass TubaWidgetsRichLabelClass;
typedef struct _TubaWidgetsRichLabelPrivate TubaWidgetsRichLabelPrivate;

#define TUBA_TYPE_ENTITY (tuba_entity_get_type ())
#define TUBA_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_ENTITY, TubaEntity))
#define TUBA_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_ENTITY, TubaEntityClass))
#define TUBA_IS_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_ENTITY))
#define TUBA_IS_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_ENTITY))
#define TUBA_ENTITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_ENTITY, TubaEntityClass))

typedef struct _TubaEntity TubaEntity;
typedef struct _TubaEntityClass TubaEntityClass;

#define TUBA_API_TYPE_MENTION (tuba_api_mention_get_type ())
#define TUBA_API_MENTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_MENTION, TubaAPIMention))
#define TUBA_API_MENTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_MENTION, TubaAPIMentionClass))
#define TUBA_API_IS_MENTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_MENTION))
#define TUBA_API_IS_MENTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_MENTION))
#define TUBA_API_MENTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_MENTION, TubaAPIMentionClass))

typedef struct _TubaAPIMention TubaAPIMention;
typedef struct _TubaAPIMentionClass TubaAPIMentionClass;

#define TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS (tuba_widgets_label_with_widgets_get_type ())
#define TUBA_WIDGETS_LABEL_WITH_WIDGETS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS, TubaWidgetsLabelWithWidgets))
#define TUBA_WIDGETS_LABEL_WITH_WIDGETS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS, TubaWidgetsLabelWithWidgetsClass))
#define TUBA_WIDGETS_IS_LABEL_WITH_WIDGETS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS))
#define TUBA_WIDGETS_IS_LABEL_WITH_WIDGETS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS))
#define TUBA_WIDGETS_LABEL_WITH_WIDGETS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_LABEL_WITH_WIDGETS, TubaWidgetsLabelWithWidgetsClass))

typedef struct _TubaWidgetsLabelWithWidgets TubaWidgetsLabelWithWidgets;
typedef struct _TubaWidgetsLabelWithWidgetsClass TubaWidgetsLabelWithWidgetsClass;

#define TUBA_WIDGETS_TYPE_EMOJI_LABEL (tuba_widgets_emoji_label_get_type ())
#define TUBA_WIDGETS_EMOJI_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_EMOJI_LABEL, TubaWidgetsEmojiLabel))
#define TUBA_WIDGETS_EMOJI_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_EMOJI_LABEL, TubaWidgetsEmojiLabelClass))
#define TUBA_WIDGETS_IS_EMOJI_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_EMOJI_LABEL))
#define TUBA_WIDGETS_IS_EMOJI_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_EMOJI_LABEL))
#define TUBA_WIDGETS_EMOJI_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_EMOJI_LABEL, TubaWidgetsEmojiLabelClass))

typedef struct _TubaWidgetsEmojiLabel TubaWidgetsEmojiLabel;
typedef struct _TubaWidgetsEmojiLabelClass TubaWidgetsEmojiLabelClass;
enum  {
	TUBA_WIDGETS_RICH_LABEL_0_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_LABEL_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_ELLIPSIZE_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_USE_MARKUP_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_SELECTABLE_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_SINGLE_LINE_MODE_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_XALIGN_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_YALIGN_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_SMALLER_EMOJI_PIXEL_SIZE_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_LARGE_EMOJIS_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_INSTANCE_EMOJIS_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_LINES_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_ACCESSIBLE_TEXT_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_CAN_OPEN_PROPERTY,
	TUBA_WIDGETS_RICH_LABEL_NUM_PROPERTIES
};
static GParamSpec* tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_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))
typedef struct _Block99Data Block99Data;
#define _g_uri_unref0(var) ((var == NULL) ? NULL : (var = (g_uri_unref (var), NULL)))
typedef struct _Block100Data Block100Data;

#define TUBA_TYPE_WIDGETIZABLE (tuba_widgetizable_get_type ())
#define TUBA_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizable))
#define TUBA_IS_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_WIDGETIZABLE))
#define TUBA_WIDGETIZABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizableIface))

typedef struct _TubaWidgetizable TubaWidgetizable;
typedef struct _TubaWidgetizableIface TubaWidgetizableIface;

#define TUBA_API_TYPE_ACCOUNT (tuba_api_account_get_type ())
#define TUBA_API_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccount))
#define TUBA_API_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))
#define TUBA_API_IS_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_IS_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))

typedef struct _TubaAPIAccount TubaAPIAccount;
typedef struct _TubaAPIAccountClass TubaAPIAccountClass;

#define TUBA_TYPE_INSTANCE_ACCOUNT (tuba_instance_account_get_type ())
#define TUBA_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccount))
#define TUBA_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))
#define TUBA_IS_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_IS_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_INSTANCE_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))

typedef struct _TubaInstanceAccount TubaInstanceAccount;
typedef struct _TubaInstanceAccountClass TubaInstanceAccountClass;

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

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

#define TUBA_VIEWS_TYPE_CONTENT_BASE (tuba_views_content_base_get_type ())
#define TUBA_VIEWS_CONTENT_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_CONTENT_BASE, TubaViewsContentBase))
#define TUBA_VIEWS_CONTENT_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_CONTENT_BASE, TubaViewsContentBaseClass))
#define TUBA_VIEWS_IS_CONTENT_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_CONTENT_BASE))
#define TUBA_VIEWS_IS_CONTENT_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_CONTENT_BASE))
#define TUBA_VIEWS_CONTENT_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_CONTENT_BASE, TubaViewsContentBaseClass))

typedef struct _TubaViewsContentBase TubaViewsContentBase;
typedef struct _TubaViewsContentBaseClass TubaViewsContentBaseClass;

#define TUBA_VIEWS_TYPE_TIMELINE (tuba_views_timeline_get_type ())
#define TUBA_VIEWS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_TIMELINE, TubaViewsTimeline))
#define TUBA_VIEWS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_TIMELINE, TubaViewsTimelineClass))
#define TUBA_VIEWS_IS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_TIMELINE))
#define TUBA_VIEWS_IS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_TIMELINE))
#define TUBA_VIEWS_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_TIMELINE, TubaViewsTimelineClass))

typedef struct _TubaViewsTimeline TubaViewsTimeline;
typedef struct _TubaViewsTimelineClass TubaViewsTimelineClass;

#define TUBA_VIEWS_TYPE_HASHTAG (tuba_views_hashtag_get_type ())
#define TUBA_VIEWS_HASHTAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_HASHTAG, TubaViewsHashtag))
#define TUBA_VIEWS_HASHTAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_HASHTAG, TubaViewsHashtagClass))
#define TUBA_VIEWS_IS_HASHTAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_HASHTAG))
#define TUBA_VIEWS_IS_HASHTAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_HASHTAG))
#define TUBA_VIEWS_HASHTAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_HASHTAG, TubaViewsHashtagClass))

typedef struct _TubaViewsHashtag TubaViewsHashtag;
typedef struct _TubaViewsHashtagClass TubaViewsHashtagClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define TUBA_TYPE_ACCOUNT_STORE (tuba_account_store_get_type ())
#define TUBA_ACCOUNT_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStore))
#define TUBA_ACCOUNT_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStoreClass))
#define TUBA_IS_ACCOUNT_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_ACCOUNT_STORE))
#define TUBA_IS_ACCOUNT_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_ACCOUNT_STORE))
#define TUBA_ACCOUNT_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStoreClass))

typedef struct _TubaAccountStore TubaAccountStore;
typedef struct _TubaAccountStoreClass TubaAccountStoreClass;

#define TUBA_TYPE_SETTINGS (tuba_settings_get_type ())
#define TUBA_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_SETTINGS, TubaSettings))
#define TUBA_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_SETTINGS, TubaSettingsClass))
#define TUBA_IS_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_SETTINGS))
#define TUBA_IS_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_SETTINGS))
#define TUBA_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_SETTINGS, TubaSettingsClass))

typedef struct _TubaSettings TubaSettings;
typedef struct _TubaSettingsClass TubaSettingsClass;

#define TUBA_VIEWS_TYPE_BROWSER (tuba_views_browser_get_type ())
#define TUBA_VIEWS_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_BROWSER, TubaViewsBrowser))
#define TUBA_VIEWS_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_BROWSER, TubaViewsBrowserClass))
#define TUBA_VIEWS_IS_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_BROWSER))
#define TUBA_VIEWS_IS_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_BROWSER))
#define TUBA_VIEWS_BROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_BROWSER, TubaViewsBrowserClass))

typedef struct _TubaViewsBrowser TubaViewsBrowser;
typedef struct _TubaViewsBrowserClass TubaViewsBrowserClass;

struct _TubaWidgetsRichLabel {
	AdwBin parent_instance;
	TubaWidgetsRichLabelPrivate * priv;
	GeeArrayList* mentions;
};

struct _TubaWidgetsRichLabelClass {
	AdwBinClass parent_class;
};

struct _TubaWidgetsRichLabelPrivate {
	TubaWidgetsEmojiLabel* widget;
	gboolean _can_open;
};

struct _Block99Data {
	int _ref_count_;
	TubaWidgetsRichLabel* self;
	GUri* uri;
	gchar* url;
};

struct _Block100Data {
	int _ref_count_;
	Block99Data * _data99_;
	gboolean found;
};

struct _TubaWidgetizableIface {
	GTypeInterface parent_iface;
	GtkWidget* (*to_widget) (TubaWidgetizable* self);
	void (*open) (TubaWidgetizable* self);
	void (*resolve_open) (TubaWidgetizable* self, TubaInstanceAccount* account);
};

static gint TubaWidgetsRichLabel_private_offset;
static gpointer tuba_widgets_rich_label_parent_class = NULL;
VALA_EXTERN TubaApplication* tuba_app;
VALA_EXTERN TubaAccountStore* tuba_accounts;
VALA_EXTERN TubaSettings* tuba_settings;
VALA_EXTERN GRegex* tuba_rtl_regex;
VALA_EXTERN gboolean tuba_is_rtl;

VALA_EXTERN GType tuba_widgets_rich_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsRichLabel, g_object_unref)
VALA_EXTERN GType tuba_entity_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaEntity, g_object_unref)
VALA_EXTERN GType tuba_api_mention_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIMention, g_object_unref)
VALA_EXTERN GType tuba_widgets_label_with_widgets_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsLabelWithWidgets, g_object_unref)
VALA_EXTERN GType tuba_widgets_emoji_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsEmojiLabel, g_object_unref)
VALA_EXTERN gchar* tuba_widgets_rich_label_get_text (TubaWidgetsRichLabel* self);
VALA_EXTERN const gchar* tuba_widgets_label_with_widgets_get_label_text (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN TubaWidgetsRichLabel* tuba_widgets_rich_label_new (const gchar* text);
VALA_EXTERN TubaWidgetsRichLabel* tuba_widgets_rich_label_construct (GType object_type,
                                                         const gchar* text);
VALA_EXTERN void tuba_widgets_rich_label_set_label (TubaWidgetsRichLabel* self,
                                        const gchar* value);
VALA_EXTERN TubaWidgetsRichLabel* tuba_widgets_rich_label_new_with_emojis (const gchar* text,
                                                               GeeHashMap* instance_emojis);
VALA_EXTERN TubaWidgetsRichLabel* tuba_widgets_rich_label_construct_with_emojis (GType object_type,
                                                                     const gchar* text,
                                                                     GeeHashMap* instance_emojis);
VALA_EXTERN void tuba_widgets_rich_label_set_instance_emojis (TubaWidgetsRichLabel* self,
                                                  GeeHashMap* value);
static void tuba_widgets_rich_label_update_accessible_label (TubaWidgetsRichLabel* self);
VALA_EXTERN const gchar* tuba_widgets_label_with_widgets_get_accessible_text (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN gboolean tuba_widgets_rich_label_on_activate_link (TubaWidgetsRichLabel* self,
                                                   const gchar* url);
static Block99Data* block99_data_ref (Block99Data* _data99_);
static void block99_data_unref (void * _userdata_);
VALA_EXTERN gboolean tuba_widgets_rich_label_get_can_open (TubaWidgetsRichLabel* self);
VALA_EXTERN gboolean tuba_widgets_label_with_widgets_grab_focus (TubaWidgetsLabelWithWidgets* self);
static Block100Data* block100_data_ref (Block100Data* _data100_);
static void block100_data_unref (void * _userdata_);
static gboolean ___lambda40_ (Block100Data* _data100_,
                       TubaAPIMention* mention);
VALA_EXTERN const gchar* tuba_api_mention_get_url (TubaAPIMention* self);
VALA_EXTERN GType tuba_api_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAccount, g_object_unref)
VALA_EXTERN GType tuba_instance_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaInstanceAccount, g_object_unref)
VALA_EXTERN GType tuba_widgetizable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetizable, g_object_unref)
VALA_EXTERN void tuba_widgetizable_open (TubaWidgetizable* self);
static gboolean ____lambda40__gee_forall_func (gpointer g,
                                        gpointer self);
VALA_EXTERN GType tuba_application_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaApplication, g_object_unref)
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);
VALA_EXTERN GType tuba_views_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsBase, g_object_unref)
VALA_EXTERN TubaViewsBase* tuba_dialogs_main_window_open_view (TubaDialogsMainWindow* self,
                                                   TubaViewsBase* view);
VALA_EXTERN TubaViewsHashtag* tuba_views_hashtag_new (const gchar* tag,
                                          gboolean* following,
                                          const gchar* url_basename,
                                          gboolean* featured);
VALA_EXTERN TubaViewsHashtag* tuba_views_hashtag_construct (GType object_type,
                                                const gchar* tag,
                                                gboolean* following,
                                                const gchar* url_basename,
                                                gboolean* featured);
VALA_EXTERN GType tuba_views_content_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsContentBase, g_object_unref)
VALA_EXTERN GType tuba_views_timeline_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsTimeline, g_object_unref)
VALA_EXTERN GType tuba_views_hashtag_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsHashtag, g_object_unref)
VALA_EXTERN void tuba_application_handle_web_ap (TubaApplication* self,
                                     GUri* uri);
VALA_EXTERN gboolean tuba_widgets_rich_label_should_resolve (GUri* uri,
                                                 const gchar* url);
VALA_EXTERN GType tuba_account_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAccountStore, g_object_unref)
VALA_EXTERN TubaInstanceAccount* tuba_account_store_get_active (TubaAccountStore* self);
VALA_EXTERN void tuba_instance_account_resolve (TubaInstanceAccount* self,
                                    const gchar* url,
                                    GAsyncReadyCallback _callback_,
                                    gpointer _user_data_);
VALA_EXTERN TubaEntity* tuba_instance_account_resolve_finish (TubaInstanceAccount* self,
                                                  GAsyncResult* _res_,
                                                  GError** error);
static void ___lambda142_ (Block99Data* _data99_,
                    GObject* obj,
                    GAsyncResult* res);
static void tuba_widgets_rich_label_open_in_browser (TubaWidgetsRichLabel* self,
                                              const gchar* url,
                                              GUri* uri);
static void ____lambda142__gasync_ready_callback (GObject* source_object,
                                           GAsyncResult* res,
                                           gpointer self);
VALA_EXTERN GType tuba_settings_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaSettings, g_object_unref)
VALA_EXTERN gboolean tuba_settings_get_use_in_app_browser_if_available (TubaSettings* self);
VALA_EXTERN gboolean tuba_views_browser_can_handle_uri (GUri* uri);
VALA_EXTERN gboolean tuba_views_browser_can_handle_url (const gchar* url);
VALA_EXTERN TubaViewsBrowser* tuba_views_browser_new_with_url (const gchar* url);
VALA_EXTERN TubaViewsBrowser* tuba_views_browser_construct_with_url (GType object_type,
                                                         const gchar* url);
VALA_EXTERN GType tuba_views_browser_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsBrowser, g_object_unref)
VALA_EXTERN void tuba_utils_host_open_url (const gchar* _uri,
                               GAsyncReadyCallback _callback_,
                               gpointer _user_data_);
VALA_EXTERN gboolean tuba_utils_host_open_url_finish (GAsyncResult* _res_);
VALA_EXTERN void tuba_utils_host_open_uri (GUri* uri,
                               GAsyncReadyCallback _callback_,
                               gpointer _user_data_);
VALA_EXTERN gboolean tuba_utils_host_open_uri_finish (GAsyncResult* _res_);
VALA_EXTERN gboolean tuba_widgets_rich_label_should_resolve_uri (GUri* uri);
VALA_EXTERN gboolean tuba_widgets_rich_label_should_resolve_url (const gchar* url);
VALA_EXTERN gboolean tuba_settings_get_aggressive_resolving (TubaSettings* self);
static void tuba_widgets_rich_label_on_middle_clicked (TubaWidgetsRichLabel* self,
                                                gint n_press,
                                                gdouble x,
                                                gdouble y);
VALA_EXTERN gchar* tuba_widgets_label_with_widgets_get_current_uri (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN const gchar* tuba_widgets_rich_label_get_label (TubaWidgetsRichLabel* self);
VALA_EXTERN const gchar* tuba_widgets_emoji_label_get_content (TubaWidgetsEmojiLabel* self);
VALA_EXTERN void tuba_widgets_emoji_label_set_content (TubaWidgetsEmojiLabel* self,
                                           const gchar* value);
VALA_EXTERN void tuba_widgets_rich_label_set_xalign (TubaWidgetsRichLabel* self,
                                         gfloat value);
VALA_EXTERN gboolean tuba_widgets_rich_label_get_ellipsize (TubaWidgetsRichLabel* self);
VALA_EXTERN gboolean tuba_widgets_label_with_widgets_get_ellipsize (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN void tuba_widgets_rich_label_set_ellipsize (TubaWidgetsRichLabel* self,
                                            gboolean value);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_ellipsize (TubaWidgetsLabelWithWidgets* self,
                                                    gboolean value);
VALA_EXTERN gboolean tuba_widgets_rich_label_get_use_markup (TubaWidgetsRichLabel* self);
VALA_EXTERN gboolean tuba_widgets_label_with_widgets_get_use_markup (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN void tuba_widgets_rich_label_set_use_markup (TubaWidgetsRichLabel* self,
                                             gboolean value);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_use_markup (TubaWidgetsLabelWithWidgets* self,
                                                     gboolean value);
VALA_EXTERN gboolean tuba_widgets_rich_label_get_selectable (TubaWidgetsRichLabel* self);
VALA_EXTERN gboolean tuba_widgets_label_with_widgets_get_selectable (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN void tuba_widgets_rich_label_set_selectable (TubaWidgetsRichLabel* self,
                                             gboolean value);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_selectable (TubaWidgetsLabelWithWidgets* self,
                                                     gboolean value);
VALA_EXTERN gboolean tuba_widgets_rich_label_get_single_line_mode (TubaWidgetsRichLabel* self);
VALA_EXTERN gboolean tuba_widgets_label_with_widgets_get_single_line_mode (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN void tuba_widgets_rich_label_set_single_line_mode (TubaWidgetsRichLabel* self,
                                                   gboolean value);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_single_line_mode (TubaWidgetsLabelWithWidgets* self,
                                                           gboolean value);
VALA_EXTERN gfloat tuba_widgets_rich_label_get_xalign (TubaWidgetsRichLabel* self);
VALA_EXTERN gfloat tuba_widgets_label_with_widgets_get_xalign (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_xalign (TubaWidgetsLabelWithWidgets* self,
                                                 gfloat value);
VALA_EXTERN gfloat tuba_widgets_rich_label_get_yalign (TubaWidgetsRichLabel* self);
VALA_EXTERN gfloat tuba_widgets_label_with_widgets_get_yalign (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN void tuba_widgets_rich_label_set_yalign (TubaWidgetsRichLabel* self,
                                         gfloat value);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_yalign (TubaWidgetsLabelWithWidgets* self,
                                                 gfloat value);
VALA_EXTERN gboolean tuba_widgets_rich_label_get_smaller_emoji_pixel_size (TubaWidgetsRichLabel* self);
VALA_EXTERN gboolean tuba_widgets_emoji_label_get_smaller_emoji_pixel_size (TubaWidgetsEmojiLabel* self);
VALA_EXTERN void tuba_widgets_rich_label_set_smaller_emoji_pixel_size (TubaWidgetsRichLabel* self,
                                                           gboolean value);
VALA_EXTERN void tuba_widgets_emoji_label_set_smaller_emoji_pixel_size (TubaWidgetsEmojiLabel* self,
                                                            gboolean value);
VALA_EXTERN gboolean tuba_widgets_rich_label_get_large_emojis (TubaWidgetsRichLabel* self);
VALA_EXTERN gboolean tuba_widgets_emoji_label_get_large_emojis (TubaWidgetsEmojiLabel* self);
VALA_EXTERN void tuba_widgets_rich_label_set_large_emojis (TubaWidgetsRichLabel* self,
                                               gboolean value);
VALA_EXTERN void tuba_widgets_emoji_label_set_large_emojis (TubaWidgetsEmojiLabel* self,
                                                gboolean value);
VALA_EXTERN GeeHashMap* tuba_widgets_rich_label_get_instance_emojis (TubaWidgetsRichLabel* self);
VALA_EXTERN GeeHashMap* tuba_widgets_emoji_label_get_instance_emojis (TubaWidgetsEmojiLabel* self);
VALA_EXTERN void tuba_widgets_emoji_label_set_instance_emojis (TubaWidgetsEmojiLabel* self,
                                                   GeeHashMap* value);
VALA_EXTERN gint tuba_widgets_rich_label_get_lines (TubaWidgetsRichLabel* self);
VALA_EXTERN gint tuba_widgets_label_with_widgets_get_lines (TubaWidgetsLabelWithWidgets* self);
VALA_EXTERN void tuba_widgets_rich_label_set_lines (TubaWidgetsRichLabel* self,
                                        gint value);
VALA_EXTERN void tuba_widgets_label_with_widgets_set_lines (TubaWidgetsLabelWithWidgets* self,
                                                gint value);
VALA_EXTERN const gchar* tuba_widgets_rich_label_get_accessible_text (TubaWidgetsRichLabel* self);
VALA_EXTERN void tuba_widgets_rich_label_set_can_open (TubaWidgetsRichLabel* self,
                                           gboolean value);
static GObject * tuba_widgets_rich_label_constructor (GType type,
                                               guint n_construct_properties,
                                               GObjectConstructParam * construct_properties);
VALA_EXTERN TubaWidgetsEmojiLabel* tuba_widgets_emoji_label_new (const gchar* text,
                                                     GeeHashMap* emojis);
VALA_EXTERN TubaWidgetsEmojiLabel* tuba_widgets_emoji_label_construct (GType object_type,
                                                           const gchar* text,
                                                           GeeHashMap* emojis);
static gboolean _tuba_widgets_rich_label_on_activate_link_tuba_widgets_label_with_widgets_activate_link (TubaWidgetsLabelWithWidgets* _sender,
                                                                                                  const gchar* uri,
                                                                                                  gpointer self);
static void _tuba_widgets_rich_label_on_middle_clicked_gtk_gesture_click_pressed (GtkGestureClick* _sender,
                                                                           gint n_press,
                                                                           gdouble x,
                                                                           gdouble y,
                                                                           gpointer self);
static void tuba_widgets_rich_label_finalize (GObject * obj);
static GType tuba_widgets_rich_label_get_type_once (void);
static void _vala_tuba_widgets_rich_label_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_tuba_widgets_rich_label_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);

static inline gpointer
tuba_widgets_rich_label_get_instance_private (TubaWidgetsRichLabel* self)
{
	return G_STRUCT_MEMBER_P (self, TubaWidgetsRichLabel_private_offset);
}

gchar*
tuba_widgets_rich_label_get_text (TubaWidgetsRichLabel* self)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_label_text ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strdup (_tmp2_);
	result = _tmp3_;
	return result;
}

TubaWidgetsRichLabel*
tuba_widgets_rich_label_construct (GType object_type,
                                   const gchar* text)
{
	TubaWidgetsRichLabel * self = NULL;
	self = (TubaWidgetsRichLabel*) g_object_new (object_type, NULL);
	if (text != NULL) {
		tuba_widgets_rich_label_set_label (self, text);
	}
	return self;
}

TubaWidgetsRichLabel*
tuba_widgets_rich_label_new (const gchar* text)
{
	return tuba_widgets_rich_label_construct (TUBA_WIDGETS_TYPE_RICH_LABEL, text);
}

TubaWidgetsRichLabel*
tuba_widgets_rich_label_construct_with_emojis (GType object_type,
                                               const gchar* text,
                                               GeeHashMap* instance_emojis)
{
	TubaWidgetsRichLabel * self = NULL;
	self = (TubaWidgetsRichLabel*) g_object_new (object_type, NULL);
	if (instance_emojis != NULL) {
		tuba_widgets_rich_label_set_instance_emojis (self, instance_emojis);
	}
	if (text != NULL) {
		tuba_widgets_rich_label_set_label (self, text);
	}
	return self;
}

TubaWidgetsRichLabel*
tuba_widgets_rich_label_new_with_emojis (const gchar* text,
                                         GeeHashMap* instance_emojis)
{
	return tuba_widgets_rich_label_construct_with_emojis (TUBA_WIDGETS_TYPE_RICH_LABEL, text, instance_emojis);
}

static void
tuba_widgets_rich_label_update_accessible_label (TubaWidgetsRichLabel* self)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_accessible_text ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	gtk_accessible_update_property ((GtkAccessible*) self, GTK_ACCESSIBLE_PROPERTY_LABEL, _tmp2_, -1, -1);
}

static Block99Data*
block99_data_ref (Block99Data* _data99_)
{
	g_atomic_int_inc (&_data99_->_ref_count_);
	return _data99_;
}

static void
block99_data_unref (void * _userdata_)
{
	Block99Data* _data99_;
	_data99_ = (Block99Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data99_->_ref_count_)) {
		TubaWidgetsRichLabel* self;
		self = _data99_->self;
		_g_uri_unref0 (_data99_->uri);
		_g_free0 (_data99_->url);
		_g_object_unref0 (self);
		g_slice_free (Block99Data, _data99_);
	}
}

static Block100Data*
block100_data_ref (Block100Data* _data100_)
{
	g_atomic_int_inc (&_data100_->_ref_count_);
	return _data100_;
}

static void
block100_data_unref (void * _userdata_)
{
	Block100Data* _data100_;
	_data100_ = (Block100Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data100_->_ref_count_)) {
		TubaWidgetsRichLabel* self;
		self = _data100_->_data99_->self;
		block99_data_unref (_data100_->_data99_);
		_data100_->_data99_ = NULL;
		g_slice_free (Block100Data, _data100_);
	}
}

static gboolean
___lambda40_ (Block100Data* _data100_,
              TubaAPIMention* mention)
{
	Block99Data* _data99_;
	TubaWidgetsRichLabel* self;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gboolean result;
	_data99_ = _data100_->_data99_;
	self = _data99_->self;
	g_return_val_if_fail (mention != NULL, FALSE);
	_tmp0_ = tuba_api_mention_get_url (mention);
	_tmp1_ = _tmp0_;
	if (g_strcmp0 (_data99_->url, _tmp1_) == 0) {
		tuba_widgetizable_open ((TubaWidgetizable*) mention);
		_data100_->found = TRUE;
		result = FALSE;
		_g_object_unref0 (mention);
		return result;
	}
	result = TRUE;
	_g_object_unref0 (mention);
	return result;
}

static gboolean
____lambda40__gee_forall_func (gpointer g,
                               gpointer self)
{
	gboolean result;
	result = ___lambda40_ (self, (TubaAPIMention*) g);
	return result;
}

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
___lambda142_ (Block99Data* _data99_,
               GObject* obj,
               GAsyncResult* res)
{
	TubaWidgetsRichLabel* self;
	GError* _inner_error0_ = NULL;
	self = _data99_->self;
	g_return_if_fail (res != NULL);
	{
		TubaEntity* _tmp0_ = NULL;
		TubaAccountStore* _tmp1_;
		TubaInstanceAccount* _tmp2_;
		TubaInstanceAccount* _tmp3_;
		TubaEntity* _tmp4_;
		_tmp1_ = tuba_accounts;
		_tmp2_ = tuba_account_store_get_active (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp4_ = tuba_instance_account_resolve_finish (_tmp3_, res, &_inner_error0_);
		_tmp0_ = _tmp4_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		tuba_widgetizable_open ((TubaWidgetizable*) _tmp0_);
		_g_object_unref0 (_tmp0_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		GError* _tmp8_;
		const gchar* _tmp9_;
		GUri* _tmp10_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp5_ = string_to_string (_data99_->url);
		_tmp6_ = g_strconcat ("Failed to resolve URL \"", _tmp5_, "\":", NULL);
		_tmp7_ = _tmp6_;
		g_warning ("RichLabel.vala:180: %s", _tmp7_);
		_g_free0 (_tmp7_);
		_tmp8_ = e;
		_tmp9_ = _tmp8_->message;
		g_warning ("RichLabel.vala:181: %s", _tmp9_);
		_tmp10_ = _data99_->uri;
		tuba_widgets_rich_label_open_in_browser (self, _data99_->url, _tmp10_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
}

static void
____lambda142__gasync_ready_callback (GObject* source_object,
                                      GAsyncResult* res,
                                      gpointer self)
{
	___lambda142_ (self, source_object, res);
	block99_data_unref (self);
}

gboolean
tuba_widgets_rich_label_on_activate_link (TubaWidgetsRichLabel* self,
                                          const gchar* url)
{
	Block99Data* _data99_;
	gchar* _tmp0_;
	gboolean _tmp1_;
	TubaWidgetsEmojiLabel* _tmp2_;
	GeeArrayList* _tmp3_;
	GUri* _tmp36_;
	GError* _inner_error0_ = NULL;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (url != NULL, FALSE);
	_data99_ = g_slice_new0 (Block99Data);
	_data99_->_ref_count_ = 1;
	_data99_->self = g_object_ref (self);
	_tmp0_ = g_strdup (url);
	_g_free0 (_data99_->url);
	_data99_->url = _tmp0_;
	_tmp1_ = self->priv->_can_open;
	if (!_tmp1_) {
		result = TRUE;
		block99_data_unref (_data99_);
		_data99_ = NULL;
		return result;
	}
	_tmp2_ = self->priv->widget;
	tuba_widgets_label_with_widgets_grab_focus ((TubaWidgetsLabelWithWidgets*) _tmp2_);
	_tmp3_ = self->mentions;
	if (_tmp3_ != NULL) {
		Block100Data* _data100_;
		GeeArrayList* _tmp4_;
		_data100_ = g_slice_new0 (Block100Data);
		_data100_->_ref_count_ = 1;
		_data100_->_data99_ = block99_data_ref (_data99_);
		_data100_->found = FALSE;
		_tmp4_ = self->mentions;
		gee_abstract_collection_foreach ((GeeAbstractCollection*) _tmp4_, ____lambda40__gee_forall_func, _data100_);
		if (_data100_->found) {
			result = TRUE;
			block100_data_unref (_data100_);
			_data100_ = NULL;
			block99_data_unref (_data99_);
			_data99_ = NULL;
			return result;
		}
		block100_data_unref (_data100_);
		_data100_ = NULL;
	}
	_data99_->uri = NULL;
	{
		GUri* _tmp5_ = NULL;
		GUri* _tmp6_;
		GUri* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gboolean _tmp13_;
		_tmp6_ = g_uri_parse (_data99_->url, G_URI_FLAGS_NONE, &_inner_error0_);
		_tmp5_ = _tmp6_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			gboolean _tmp7_ = FALSE;
			if (_inner_error0_->domain == G_URI_ERROR) {
				goto __catch0_g_uri_error;
			}
			block99_data_unref (_data99_);
			_data99_ = NULL;
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return _tmp7_;
		}
		_tmp8_ = _tmp5_;
		_tmp5_ = NULL;
		_g_uri_unref0 (_data99_->uri);
		_data99_->uri = _tmp8_;
		_tmp9_ = g_path_get_dirname (_data99_->url);
		_tmp10_ = _tmp9_;
		_tmp11_ = g_path_get_basename (_tmp10_);
		_tmp12_ = _tmp11_;
		_tmp13_ = g_strcmp0 (_tmp12_, "tags") == 0;
		_g_free0 (_tmp12_);
		_g_free0 (_tmp10_);
		if (_tmp13_) {
			TubaApplication* _tmp14_;
			TubaDialogsMainWindow* _tmp15_;
			TubaDialogsMainWindow* _tmp16_;
			GUri* _tmp17_;
			const gchar* _tmp18_;
			gchar* _tmp19_;
			gchar* _tmp20_;
			TubaViewsHashtag* _tmp21_;
			TubaViewsHashtag* _tmp22_;
			TubaViewsBase* _tmp23_;
			TubaViewsBase* _tmp24_;
			_tmp14_ = tuba_app;
			_tmp15_ = tuba_application_get_main_window (_tmp14_);
			_tmp16_ = _tmp15_;
			_tmp17_ = _data99_->uri;
			_tmp18_ = g_uri_get_path (_tmp17_);
			_tmp19_ = g_path_get_basename (_tmp18_);
			_tmp20_ = _tmp19_;
			_tmp21_ = tuba_views_hashtag_new (_tmp20_, NULL, NULL, NULL);
			g_object_ref_sink (_tmp21_);
			_tmp22_ = _tmp21_;
			_tmp23_ = tuba_dialogs_main_window_open_view (_tmp16_, (TubaViewsBase*) _tmp22_);
			_tmp24_ = _tmp23_;
			_g_object_unref0 (_tmp24_);
			_g_object_unref0 (_tmp22_);
			_g_free0 (_tmp20_);
			result = TRUE;
			_g_uri_unref0 (_tmp5_);
			block99_data_unref (_data99_);
			_data99_ = NULL;
			return result;
		} else {
			GUri* _tmp25_;
			const gchar* _tmp26_;
			_tmp25_ = _data99_->uri;
			_tmp26_ = g_uri_get_scheme (_tmp25_);
			if (g_strcmp0 (_tmp26_, "web+ap") == 0) {
				TubaApplication* _tmp27_;
				GUri* _tmp28_;
				_tmp27_ = tuba_app;
				_tmp28_ = _data99_->uri;
				tuba_application_handle_web_ap (_tmp27_, _tmp28_);
				result = TRUE;
				_g_uri_unref0 (_tmp5_);
				block99_data_unref (_data99_);
				_data99_ = NULL;
				return result;
			}
		}
		_g_uri_unref0 (_tmp5_);
	}
	goto __finally0;
	__catch0_g_uri_error:
	{
		GError* e = NULL;
		const gchar* _tmp29_;
		GError* _tmp30_;
		const gchar* _tmp31_;
		const gchar* _tmp32_;
		gchar* _tmp33_;
		gchar* _tmp34_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp29_ = string_to_string (_data99_->url);
		_tmp30_ = e;
		_tmp31_ = _tmp30_->message;
		_tmp32_ = string_to_string (_tmp31_);
		_tmp33_ = g_strconcat ("Failed to parse \"", _tmp29_, "\": ", _tmp32_, NULL);
		_tmp34_ = _tmp33_;
		g_warning ("RichLabel.vala:172: %s", _tmp34_);
		_g_free0 (_tmp34_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		gboolean _tmp35_ = FALSE;
		block99_data_unref (_data99_);
		_data99_ = NULL;
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return _tmp35_;
	}
	_tmp36_ = _data99_->uri;
	if (tuba_widgets_rich_label_should_resolve (_tmp36_, _data99_->url)) {
		TubaAccountStore* _tmp37_;
		TubaInstanceAccount* _tmp38_;
		TubaInstanceAccount* _tmp39_;
		_tmp37_ = tuba_accounts;
		_tmp38_ = tuba_account_store_get_active (_tmp37_);
		_tmp39_ = _tmp38_;
		tuba_instance_account_resolve (_tmp39_, _data99_->url, ____lambda142__gasync_ready_callback, block99_data_ref (_data99_));
	} else {
		GUri* _tmp40_;
		_tmp40_ = _data99_->uri;
		tuba_widgets_rich_label_open_in_browser (self, _data99_->url, _tmp40_);
	}
	result = TRUE;
	block99_data_unref (_data99_);
	_data99_ = NULL;
	return result;
}

static void
tuba_widgets_rich_label_open_in_browser (TubaWidgetsRichLabel* self,
                                         const gchar* url,
                                         GUri* uri)
{
	TubaSettings* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (url != NULL);
	_tmp0_ = tuba_settings;
	_tmp1_ = tuba_settings_get_use_in_app_browser_if_available (_tmp0_);
	_tmp2_ = _tmp1_;
	if (_tmp2_) {
		gboolean _tmp3_ = FALSE;
		gboolean _tmp4_ = FALSE;
		if (uri != NULL) {
			_tmp4_ = tuba_views_browser_can_handle_uri (uri);
		} else {
			_tmp4_ = FALSE;
		}
		if (_tmp4_) {
			_tmp3_ = TRUE;
		} else {
			_tmp3_ = tuba_views_browser_can_handle_url (url);
		}
		if (_tmp3_) {
			TubaViewsBrowser* _tmp5_;
			TubaViewsBrowser* _tmp6_;
			TubaApplication* _tmp7_;
			TubaDialogsMainWindow* _tmp8_;
			TubaDialogsMainWindow* _tmp9_;
			_tmp5_ = tuba_views_browser_new_with_url (url);
			g_object_ref_sink (_tmp5_);
			_tmp6_ = _tmp5_;
			_tmp7_ = tuba_app;
			_tmp8_ = tuba_application_get_main_window (_tmp7_);
			_tmp9_ = _tmp8_;
			adw_dialog_present ((AdwDialog*) _tmp6_, (GtkWidget*) _tmp9_);
			_g_object_unref0 (_tmp6_);
			return;
		}
	}
	if (uri == NULL) {
		tuba_utils_host_open_url (url, NULL, NULL);
	} else {
		tuba_utils_host_open_uri (uri, NULL, NULL);
	}
}

inline gboolean
tuba_widgets_rich_label_should_resolve (GUri* uri,
                                        const gchar* url)
{
	gboolean _tmp0_ = FALSE;
	gboolean result;
	g_return_val_if_fail (url != NULL, FALSE);
	if (uri != NULL) {
		_tmp0_ = tuba_widgets_rich_label_should_resolve_uri (uri);
	} else {
		_tmp0_ = tuba_widgets_rich_label_should_resolve_url (url);
	}
	result = _tmp0_;
	return result;
}

static gint
string_index_of_char (const gchar* self,
                      gunichar c,
                      gint start_index)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	_tmp0_ = g_utf8_strchr (((gchar*) self) + start_index, (gssize) -1, c);
	_result_ = _tmp0_;
	_tmp1_ = _result_;
	if (_tmp1_ != NULL) {
		gchar* _tmp2_;
		_tmp2_ = _result_;
		result = (gint) (_tmp2_ - ((gchar*) self));
		return result;
	} else {
		result = -1;
		return result;
	}
}

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

gboolean
tuba_widgets_rich_label_should_resolve_url (const gchar* url)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	TubaSettings* _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	gboolean result;
	g_return_val_if_fail (url != NULL, FALSE);
	_tmp4_ = tuba_settings;
	_tmp5_ = tuba_settings_get_aggressive_resolving (_tmp4_);
	_tmp6_ = _tmp5_;
	if (_tmp6_) {
		_tmp3_ = TRUE;
	} else {
		_tmp3_ = string_index_of_char (url, (gunichar) '@', 0) != -1;
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		_tmp2_ = string_contains (url, "/users/");
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = string_contains (url, "/notes/");
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = string_contains (url, "/notice/");
	}
	result = _tmp0_;
	return result;
}

gboolean
tuba_widgets_rich_label_should_resolve_uri (GUri* uri)
{
	TubaSettings* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gchar* path = NULL;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_ = FALSE;
	const gchar* _tmp8_;
	gboolean result;
	g_return_val_if_fail (uri != NULL, FALSE);
	_tmp0_ = tuba_settings;
	_tmp1_ = tuba_settings_get_aggressive_resolving (_tmp0_);
	_tmp2_ = _tmp1_;
	if (_tmp2_) {
		result = TRUE;
		return result;
	}
	_tmp3_ = g_uri_get_path (uri);
	_tmp4_ = g_strdup (_tmp3_);
	path = _tmp4_;
	_tmp8_ = path;
	if (g_str_has_prefix (_tmp8_, "/@")) {
		_tmp7_ = TRUE;
	} else {
		const gchar* _tmp9_;
		_tmp9_ = path;
		_tmp7_ = g_str_has_prefix (_tmp9_, "/users/");
	}
	if (_tmp7_) {
		_tmp6_ = TRUE;
	} else {
		const gchar* _tmp10_;
		_tmp10_ = path;
		_tmp6_ = g_str_has_prefix (_tmp10_, "/notes/");
	}
	if (_tmp6_) {
		_tmp5_ = TRUE;
	} else {
		const gchar* _tmp11_;
		_tmp11_ = path;
		_tmp5_ = g_str_has_prefix (_tmp11_, "/notice/");
	}
	result = _tmp5_;
	_g_free0 (path);
	return result;
}

static void
tuba_widgets_rich_label_on_middle_clicked (TubaWidgetsRichLabel* self,
                                           gint n_press,
                                           gdouble x,
                                           gdouble y)
{
	gboolean _tmp0_ = FALSE;
	gchar* current_uri = NULL;
	TubaWidgetsEmojiLabel* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	g_return_if_fail (self != NULL);
	if (n_press > 1) {
		_tmp0_ = TRUE;
	} else {
		TubaSettings* _tmp1_;
		gboolean _tmp2_;
		gboolean _tmp3_;
		_tmp1_ = tuba_settings;
		_tmp2_ = tuba_settings_get_use_in_app_browser_if_available (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp0_ = !_tmp3_;
	}
	if (_tmp0_) {
		return;
	}
	_tmp4_ = self->priv->widget;
	_tmp5_ = tuba_widgets_label_with_widgets_get_current_uri ((TubaWidgetsLabelWithWidgets*) _tmp4_);
	current_uri = _tmp5_;
	_tmp6_ = current_uri;
	if (_tmp6_ == NULL) {
		_g_free0 (current_uri);
		return;
	}
	_tmp7_ = current_uri;
	tuba_utils_host_open_url (_tmp7_, NULL, NULL);
	_g_free0 (current_uri);
}

const gchar*
tuba_widgets_rich_label_get_label (TubaWidgetsRichLabel* self)
{
	const gchar* result;
	TubaWidgetsEmojiLabel* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_emoji_label_get_content (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_label (TubaWidgetsRichLabel* self,
                                   const gchar* value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	gboolean rtl = FALSE;
	GRegex* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_emoji_label_set_content (_tmp0_, value);
	tuba_widgets_rich_label_update_accessible_label (self);
	_tmp1_ = tuba_rtl_regex;
	rtl = g_regex_match (_tmp1_, value, 0, NULL);
	if (rtl) {
		gint _tmp2_ = 0;
		if (tuba_is_rtl) {
			_tmp2_ = 0;
		} else {
			_tmp2_ = 1;
		}
		tuba_widgets_rich_label_set_xalign (self, (gfloat) _tmp2_);
	} else {
		gint _tmp3_ = 0;
		if (tuba_is_rtl) {
			_tmp3_ = 1;
		} else {
			_tmp3_ = 0;
		}
		tuba_widgets_rich_label_set_xalign (self, (gfloat) _tmp3_);
	}
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_LABEL_PROPERTY]);
}

gboolean
tuba_widgets_rich_label_get_ellipsize (TubaWidgetsRichLabel* self)
{
	gboolean result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_ellipsize ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_ellipsize (TubaWidgetsRichLabel* self,
                                       gboolean value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_label_with_widgets_set_ellipsize ((TubaWidgetsLabelWithWidgets*) _tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_ELLIPSIZE_PROPERTY]);
}

gboolean
tuba_widgets_rich_label_get_use_markup (TubaWidgetsRichLabel* self)
{
	gboolean result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_use_markup ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_use_markup (TubaWidgetsRichLabel* self,
                                        gboolean value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_label_with_widgets_set_use_markup ((TubaWidgetsLabelWithWidgets*) _tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_USE_MARKUP_PROPERTY]);
}

gboolean
tuba_widgets_rich_label_get_selectable (TubaWidgetsRichLabel* self)
{
	gboolean result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_selectable ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_selectable (TubaWidgetsRichLabel* self,
                                        gboolean value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_label_with_widgets_set_selectable ((TubaWidgetsLabelWithWidgets*) _tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_SELECTABLE_PROPERTY]);
}

gboolean
tuba_widgets_rich_label_get_single_line_mode (TubaWidgetsRichLabel* self)
{
	gboolean result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_single_line_mode ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_single_line_mode (TubaWidgetsRichLabel* self,
                                              gboolean value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_label_with_widgets_set_single_line_mode ((TubaWidgetsLabelWithWidgets*) _tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_SINGLE_LINE_MODE_PROPERTY]);
}

gfloat
tuba_widgets_rich_label_get_xalign (TubaWidgetsRichLabel* self)
{
	gfloat result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gfloat _tmp1_;
	gfloat _tmp2_;
	g_return_val_if_fail (self != NULL, -1.0F);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_xalign ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_xalign (TubaWidgetsRichLabel* self,
                                    gfloat value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_label_with_widgets_set_xalign ((TubaWidgetsLabelWithWidgets*) _tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_XALIGN_PROPERTY]);
}

gfloat
tuba_widgets_rich_label_get_yalign (TubaWidgetsRichLabel* self)
{
	gfloat result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gfloat _tmp1_;
	gfloat _tmp2_;
	g_return_val_if_fail (self != NULL, -1.0F);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_yalign ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_yalign (TubaWidgetsRichLabel* self,
                                    gfloat value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_label_with_widgets_set_yalign ((TubaWidgetsLabelWithWidgets*) _tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_YALIGN_PROPERTY]);
}

gboolean
tuba_widgets_rich_label_get_smaller_emoji_pixel_size (TubaWidgetsRichLabel* self)
{
	gboolean result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_emoji_label_get_smaller_emoji_pixel_size (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_smaller_emoji_pixel_size (TubaWidgetsRichLabel* self,
                                                      gboolean value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_emoji_label_set_smaller_emoji_pixel_size (_tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_SMALLER_EMOJI_PIXEL_SIZE_PROPERTY]);
}

gboolean
tuba_widgets_rich_label_get_large_emojis (TubaWidgetsRichLabel* self)
{
	gboolean result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_emoji_label_get_large_emojis (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_large_emojis (TubaWidgetsRichLabel* self,
                                          gboolean value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_emoji_label_set_large_emojis (_tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_LARGE_EMOJIS_PROPERTY]);
}

GeeHashMap*
tuba_widgets_rich_label_get_instance_emojis (TubaWidgetsRichLabel* self)
{
	GeeHashMap* result;
	TubaWidgetsEmojiLabel* _tmp0_;
	GeeHashMap* _tmp1_;
	GeeHashMap* _tmp2_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_emoji_label_get_instance_emojis (_tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_instance_emojis (TubaWidgetsRichLabel* self,
                                             GeeHashMap* value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_emoji_label_set_instance_emojis (_tmp0_, value);
	tuba_widgets_rich_label_update_accessible_label (self);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_INSTANCE_EMOJIS_PROPERTY]);
}

gint
tuba_widgets_rich_label_get_lines (TubaWidgetsRichLabel* self)
{
	gint result;
	TubaWidgetsEmojiLabel* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
	g_return_val_if_fail (self != NULL, -1);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_lines ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

void
tuba_widgets_rich_label_set_lines (TubaWidgetsRichLabel* self,
                                   gint value)
{
	TubaWidgetsEmojiLabel* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->widget;
	tuba_widgets_label_with_widgets_set_lines ((TubaWidgetsLabelWithWidgets*) _tmp0_, value);
	g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_LINES_PROPERTY]);
}

const gchar*
tuba_widgets_rich_label_get_accessible_text (TubaWidgetsRichLabel* self)
{
	const gchar* result;
	TubaWidgetsEmojiLabel* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->widget;
	_tmp1_ = tuba_widgets_label_with_widgets_get_accessible_text ((TubaWidgetsLabelWithWidgets*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = _tmp2_;
	return result;
}

gboolean
tuba_widgets_rich_label_get_can_open (TubaWidgetsRichLabel* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_can_open;
	return result;
}

void
tuba_widgets_rich_label_set_can_open (TubaWidgetsRichLabel* self,
                                      gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_widgets_rich_label_get_can_open (self);
	if (old_value != value) {
		self->priv->_can_open = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_CAN_OPEN_PROPERTY]);
	}
}

static gboolean
_tuba_widgets_rich_label_on_activate_link_tuba_widgets_label_with_widgets_activate_link (TubaWidgetsLabelWithWidgets* _sender,
                                                                                         const gchar* uri,
                                                                                         gpointer self)
{
	gboolean result;
	result = tuba_widgets_rich_label_on_activate_link ((TubaWidgetsRichLabel*) self, uri);
	return result;
}

static void
_tuba_widgets_rich_label_on_middle_clicked_gtk_gesture_click_pressed (GtkGestureClick* _sender,
                                                                      gint n_press,
                                                                      gdouble x,
                                                                      gdouble y,
                                                                      gpointer self)
{
	tuba_widgets_rich_label_on_middle_clicked ((TubaWidgetsRichLabel*) self, n_press, x, y);
}

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

static GObject *
tuba_widgets_rich_label_constructor (GType type,
                                     guint n_construct_properties,
                                     GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	TubaWidgetsRichLabel * self;
	TubaWidgetsEmojiLabel* _tmp0_ = NULL;
	TubaWidgetsEmojiLabel* _tmp1_;
	TubaWidgetsEmojiLabel* _tmp2_;
	GtkGestureClick* middle_click_gesture = NULL;
	GtkGestureClick* _tmp3_ = NULL;
	GtkGestureClick* _tmp4_;
	GtkGestureClick* _tmp5_;
	GtkEventController* _tmp6_;
	parent_class = G_OBJECT_CLASS (tuba_widgets_rich_label_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabel);
	_tmp0_ = tuba_widgets_emoji_label_new (NULL, NULL);
	tuba_widgets_label_with_widgets_set_use_markup ((TubaWidgetsLabelWithWidgets*) _tmp0_, FALSE);
	gtk_widget_set_valign ((GtkWidget*) _tmp0_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->widget);
	self->priv->widget = _tmp0_;
	_tmp1_ = self->priv->widget;
	g_signal_connect_object ((TubaWidgetsLabelWithWidgets*) _tmp1_, "activate-link", (GCallback) _tuba_widgets_rich_label_on_activate_link_tuba_widgets_label_with_widgets_activate_link, self, 0);
	_tmp2_ = self->priv->widget;
	adw_bin_set_child ((AdwBin*) self, (GtkWidget*) _tmp2_);
	_tmp3_ = (GtkGestureClick*) gtk_gesture_click_new ();
	gtk_gesture_single_set_button ((GtkGestureSingle*) _tmp3_, (guint) GDK_BUTTON_MIDDLE);
	middle_click_gesture = _tmp3_;
	_tmp4_ = middle_click_gesture;
	g_signal_connect_object (_tmp4_, "pressed", (GCallback) _tuba_widgets_rich_label_on_middle_clicked_gtk_gesture_click_pressed, self, 0);
	_tmp5_ = middle_click_gesture;
	_tmp6_ = _g_object_ref0 ((GtkEventController*) _tmp5_);
	gtk_widget_add_controller ((GtkWidget*) self, _tmp6_);
	_g_object_unref0 (middle_click_gesture);
	return obj;
}

static void
tuba_widgets_rich_label_class_init (TubaWidgetsRichLabelClass * klass,
                                    gpointer klass_data)
{
	tuba_widgets_rich_label_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaWidgetsRichLabel_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_widgets_rich_label_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_widgets_rich_label_set_property;
	G_OBJECT_CLASS (klass)->constructor = tuba_widgets_rich_label_constructor;
	G_OBJECT_CLASS (klass)->finalize = tuba_widgets_rich_label_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_LABEL_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_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_WIDGETS_RICH_LABEL_ELLIPSIZE_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_ELLIPSIZE_PROPERTY] = g_param_spec_boolean ("ellipsize", "ellipsize", "ellipsize", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_USE_MARKUP_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_USE_MARKUP_PROPERTY] = g_param_spec_boolean ("use-markup", "use-markup", "use-markup", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_SELECTABLE_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_SELECTABLE_PROPERTY] = g_param_spec_boolean ("selectable", "selectable", "selectable", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_SINGLE_LINE_MODE_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_SINGLE_LINE_MODE_PROPERTY] = g_param_spec_boolean ("single-line-mode", "single-line-mode", "single-line-mode", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_XALIGN_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_XALIGN_PROPERTY] = g_param_spec_float ("xalign", "xalign", "xalign", -G_MAXFLOAT, G_MAXFLOAT, 0.0F, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_YALIGN_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_YALIGN_PROPERTY] = g_param_spec_float ("yalign", "yalign", "yalign", -G_MAXFLOAT, G_MAXFLOAT, 0.0F, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_SMALLER_EMOJI_PIXEL_SIZE_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_SMALLER_EMOJI_PIXEL_SIZE_PROPERTY] = g_param_spec_boolean ("smaller-emoji-pixel-size", "smaller-emoji-pixel-size", "smaller-emoji-pixel-size", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_LARGE_EMOJIS_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_LARGE_EMOJIS_PROPERTY] = g_param_spec_boolean ("large-emojis", "large-emojis", "large-emojis", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_INSTANCE_EMOJIS_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_INSTANCE_EMOJIS_PROPERTY] = g_param_spec_object ("instance-emojis", "instance-emojis", "instance-emojis", GEE_TYPE_HASH_MAP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_LINES_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_LINES_PROPERTY] = g_param_spec_int ("lines", "lines", "lines", 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_WIDGETS_RICH_LABEL_ACCESSIBLE_TEXT_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_ACCESSIBLE_TEXT_PROPERTY] = g_param_spec_string ("accessible-text", "accessible-text", "accessible-text", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_WIDGETS_RICH_LABEL_CAN_OPEN_PROPERTY, tuba_widgets_rich_label_properties[TUBA_WIDGETS_RICH_LABEL_CAN_OPEN_PROPERTY] = g_param_spec_boolean ("can-open", "can-open", "can-open", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	gtk_widget_class_set_accessible_role (GTK_WIDGET_CLASS (klass), GTK_ACCESSIBLE_ROLE_LABEL);
}

static void
tuba_widgets_rich_label_instance_init (TubaWidgetsRichLabel * self,
                                       gpointer klass)
{
	self->priv = tuba_widgets_rich_label_get_instance_private (self);
	self->priv->_can_open = TRUE;
}

static void
tuba_widgets_rich_label_finalize (GObject * obj)
{
	TubaWidgetsRichLabel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabel);
	_g_object_unref0 (self->priv->widget);
	_g_object_unref0 (self->mentions);
	G_OBJECT_CLASS (tuba_widgets_rich_label_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_widgets_rich_label_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaWidgetsRichLabelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_widgets_rich_label_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaWidgetsRichLabel), 0, (GInstanceInitFunc) tuba_widgets_rich_label_instance_init, NULL };
	GType tuba_widgets_rich_label_type_id;
	tuba_widgets_rich_label_type_id = g_type_register_static (adw_bin_get_type (), "TubaWidgetsRichLabel", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaWidgetsRichLabel_private_offset = g_type_add_instance_private (tuba_widgets_rich_label_type_id, sizeof (TubaWidgetsRichLabelPrivate));
	return tuba_widgets_rich_label_type_id;
}

GType
tuba_widgets_rich_label_get_type (void)
{
	static GType tuba_widgets_rich_label_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_widgets_rich_label_type_id__once)) {
		GType tuba_widgets_rich_label_type_id;
		tuba_widgets_rich_label_type_id = tuba_widgets_rich_label_get_type_once ();
		g_once_init_leave_pointer (&tuba_widgets_rich_label_type_id__once, tuba_widgets_rich_label_type_id);
	}
	return tuba_widgets_rich_label_type_id__once;
}

static void
_vala_tuba_widgets_rich_label_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	TubaWidgetsRichLabel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabel);
	switch (property_id) {
		case TUBA_WIDGETS_RICH_LABEL_LABEL_PROPERTY:
		g_value_set_string (value, tuba_widgets_rich_label_get_label (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_ELLIPSIZE_PROPERTY:
		g_value_set_boolean (value, tuba_widgets_rich_label_get_ellipsize (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_USE_MARKUP_PROPERTY:
		g_value_set_boolean (value, tuba_widgets_rich_label_get_use_markup (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_SELECTABLE_PROPERTY:
		g_value_set_boolean (value, tuba_widgets_rich_label_get_selectable (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_SINGLE_LINE_MODE_PROPERTY:
		g_value_set_boolean (value, tuba_widgets_rich_label_get_single_line_mode (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_XALIGN_PROPERTY:
		g_value_set_float (value, tuba_widgets_rich_label_get_xalign (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_YALIGN_PROPERTY:
		g_value_set_float (value, tuba_widgets_rich_label_get_yalign (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_SMALLER_EMOJI_PIXEL_SIZE_PROPERTY:
		g_value_set_boolean (value, tuba_widgets_rich_label_get_smaller_emoji_pixel_size (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_LARGE_EMOJIS_PROPERTY:
		g_value_set_boolean (value, tuba_widgets_rich_label_get_large_emojis (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_INSTANCE_EMOJIS_PROPERTY:
		g_value_set_object (value, tuba_widgets_rich_label_get_instance_emojis (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_LINES_PROPERTY:
		g_value_set_int (value, tuba_widgets_rich_label_get_lines (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_ACCESSIBLE_TEXT_PROPERTY:
		g_value_set_string (value, tuba_widgets_rich_label_get_accessible_text (self));
		break;
		case TUBA_WIDGETS_RICH_LABEL_CAN_OPEN_PROPERTY:
		g_value_set_boolean (value, tuba_widgets_rich_label_get_can_open (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_widgets_rich_label_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	TubaWidgetsRichLabel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabel);
	switch (property_id) {
		case TUBA_WIDGETS_RICH_LABEL_LABEL_PROPERTY:
		tuba_widgets_rich_label_set_label (self, g_value_get_string (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_ELLIPSIZE_PROPERTY:
		tuba_widgets_rich_label_set_ellipsize (self, g_value_get_boolean (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_USE_MARKUP_PROPERTY:
		tuba_widgets_rich_label_set_use_markup (self, g_value_get_boolean (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_SELECTABLE_PROPERTY:
		tuba_widgets_rich_label_set_selectable (self, g_value_get_boolean (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_SINGLE_LINE_MODE_PROPERTY:
		tuba_widgets_rich_label_set_single_line_mode (self, g_value_get_boolean (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_XALIGN_PROPERTY:
		tuba_widgets_rich_label_set_xalign (self, g_value_get_float (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_YALIGN_PROPERTY:
		tuba_widgets_rich_label_set_yalign (self, g_value_get_float (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_SMALLER_EMOJI_PIXEL_SIZE_PROPERTY:
		tuba_widgets_rich_label_set_smaller_emoji_pixel_size (self, g_value_get_boolean (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_LARGE_EMOJIS_PROPERTY:
		tuba_widgets_rich_label_set_large_emojis (self, g_value_get_boolean (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_INSTANCE_EMOJIS_PROPERTY:
		tuba_widgets_rich_label_set_instance_emojis (self, g_value_get_object (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_LINES_PROPERTY:
		tuba_widgets_rich_label_set_lines (self, g_value_get_int (value));
		break;
		case TUBA_WIDGETS_RICH_LABEL_CAN_OPEN_PROPERTY:
		tuba_widgets_rich_label_set_can_open (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

