/* notification.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from notification.vala, do not modify */

#include <glib-object.h>
#include <adwaita.h>
#include <gtk/gtk.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <pango/pango.h>
#include <gio/gio.h>
#include <gdk/gdk.h>
#include <stdio.h>
#include <float.h>
#include <math.h>
#include <gio/gdesktopappinfo.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

typedef enum  {
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_CONTROL_CENTER,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_FLOATING
} SwayNotificationCenterNotificationType;

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_TYPE (sway_notification_center_notification_type_get_type ())

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION (sway_notification_center_notification_get_type ())
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, SwayNotificationCenterNotification))
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, SwayNotificationCenterNotificationClass))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION))
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, SwayNotificationCenterNotificationClass))

typedef struct _SwayNotificationCenterNotification SwayNotificationCenterNotification;
typedef struct _SwayNotificationCenterNotificationClass SwayNotificationCenterNotificationClass;
typedef struct _SwayNotificationCenterNotificationPrivate SwayNotificationCenterNotificationPrivate;

#define TYPE_DISMISSIBLE_WIDGET (dismissible_widget_get_type ())
#define DISMISSIBLE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DISMISSIBLE_WIDGET, DismissibleWidget))
#define DISMISSIBLE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DISMISSIBLE_WIDGET, DismissibleWidgetClass))
#define IS_DISMISSIBLE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DISMISSIBLE_WIDGET))
#define IS_DISMISSIBLE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DISMISSIBLE_WIDGET))
#define DISMISSIBLE_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DISMISSIBLE_WIDGET, DismissibleWidgetClass))

typedef struct _DismissibleWidget DismissibleWidget;
typedef struct _DismissibleWidgetClass DismissibleWidgetClass;

#define TYPE_ITER_BOX (iter_box_get_type ())
#define ITER_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ITER_BOX, IterBox))
#define ITER_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ITER_BOX, IterBoxClass))
#define IS_ITER_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ITER_BOX))
#define IS_ITER_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ITER_BOX))
#define ITER_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ITER_BOX, IterBoxClass))

typedef struct _IterBox IterBox;
typedef struct _IterBoxClass IterBoxClass;

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_CLOSE_BUTTON (sway_notification_center_notification_close_button_get_type ())
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_CLOSE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_CLOSE_BUTTON, SwayNotificationCenterNotificationCloseButton))
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_CLOSE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_CLOSE_BUTTON, SwayNotificationCenterNotificationCloseButtonClass))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_CLOSE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_CLOSE_BUTTON))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_CLOSE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_CLOSE_BUTTON))
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_CLOSE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_CLOSE_BUTTON, SwayNotificationCenterNotificationCloseButtonClass))

typedef struct _SwayNotificationCenterNotificationCloseButton SwayNotificationCenterNotificationCloseButton;
typedef struct _SwayNotificationCenterNotificationCloseButtonClass SwayNotificationCenterNotificationCloseButtonClass;

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS (sway_notification_center_notify_params_get_type ())
#define SWAY_NOTIFICATION_CENTER_NOTIFY_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS, SwayNotificationCenterNotifyParams))
#define SWAY_NOTIFICATION_CENTER_NOTIFY_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS, SwayNotificationCenterNotifyParamsClass))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS))
#define SWAY_NOTIFICATION_CENTER_NOTIFY_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS, SwayNotificationCenterNotifyParamsClass))

typedef struct _SwayNotificationCenterNotifyParams SwayNotificationCenterNotifyParams;
typedef struct _SwayNotificationCenterNotifyParamsClass SwayNotificationCenterNotifyParamsClass;
enum  {
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_0_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_IS_TIMED_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_PARAM_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_NOTIFICATION_TYPE_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_DELAY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_LOW_DELAY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_CRITICAL_DELAY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_TRANSITION_TIME_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_NUMBER_OF_BODY_LINES_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_HAS_INLINE_REPLY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_BY_SWIPE_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_NUM_PROPERTIES
};
static GParamSpec* sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL (sway_notification_center_config_model_get_type ())
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModel))
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModelClass))
#define SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL))
#define SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL))
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModelClass))

typedef struct _SwayNotificationCenterConfigModel SwayNotificationCenterConfigModel;
typedef struct _SwayNotificationCenterConfigModelClass SwayNotificationCenterConfigModelClass;
typedef enum  {
	SWAY_NOTIFICATION_CENTER_POSITION_X_RIGHT,
	SWAY_NOTIFICATION_CENTER_POSITION_X_LEFT,
	SWAY_NOTIFICATION_CENTER_POSITION_X_CENTER,
	SWAY_NOTIFICATION_CENTER_POSITION_X_NONE
} SwayNotificationCenterPositionX;

#define SWAY_NOTIFICATION_CENTER_TYPE_POSITION_X (sway_notification_center_position_x_get_type ())
typedef enum  {
	SWIPE_DIRECTION_SWIPE_LEFT,
	SWIPE_DIRECTION_SWIPE_RIGHT
} SwipeDirection;

#define TYPE_SWIPE_DIRECTION (swipe_direction_get_type ())
#define _g_match_info_unref0(var) ((var == NULL) ? NULL : (var = (g_match_info_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _pango_attr_list_unref0(var) ((var == NULL) ? NULL : (var = (pango_attr_list_unref (var), NULL)))
typedef gboolean (*SwayNotificationCenterFunctionsFilterFunc) (gchar character, gpointer user_data);

#define SWAY_NOTIFICATION_CENTER_TYPE_ACTION (sway_notification_center_action_get_type ())
#define SWAY_NOTIFICATION_CENTER_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION, SwayNotificationCenterAction))
#define SWAY_NOTIFICATION_CENTER_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_ACTION, SwayNotificationCenterActionClass))
#define SWAY_NOTIFICATION_CENTER_IS_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION))
#define SWAY_NOTIFICATION_CENTER_IS_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_ACTION))
#define SWAY_NOTIFICATION_CENTER_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION, SwayNotificationCenterActionClass))

typedef struct _SwayNotificationCenterAction SwayNotificationCenterAction;
typedef struct _SwayNotificationCenterActionClass SwayNotificationCenterActionClass;

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTI_DAEMON (sway_notification_center_noti_daemon_get_type ())
#define SWAY_NOTIFICATION_CENTER_NOTI_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTI_DAEMON, SwayNotificationCenterNotiDaemon))
#define SWAY_NOTIFICATION_CENTER_NOTI_DAEMON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTI_DAEMON, SwayNotificationCenterNotiDaemonClass))
#define SWAY_NOTIFICATION_CENTER_IS_NOTI_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTI_DAEMON))
#define SWAY_NOTIFICATION_CENTER_IS_NOTI_DAEMON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTI_DAEMON))
#define SWAY_NOTIFICATION_CENTER_NOTI_DAEMON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTI_DAEMON, SwayNotificationCenterNotiDaemonClass))

typedef struct _SwayNotificationCenterNotiDaemon SwayNotificationCenterNotiDaemon;
typedef struct _SwayNotificationCenterNotiDaemonClass SwayNotificationCenterNotiDaemonClass;
typedef enum  {
	SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_ACTION,
	SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_RECEIVE
} SwayNotificationCenterScriptRunOnType;

#define SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT_RUN_ON_TYPE (sway_notification_center_script_run_on_type_get_type ())

#define SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC (sway_notification_center_swaync_get_type ())
#define SWAY_NOTIFICATION_CENTER_SWAYNC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC, SwayNotificationCenterSwaync))
#define SWAY_NOTIFICATION_CENTER_SWAYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC, SwayNotificationCenterSwayncClass))
#define SWAY_NOTIFICATION_CENTER_IS_SWAYNC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC))
#define SWAY_NOTIFICATION_CENTER_IS_SWAYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC))
#define SWAY_NOTIFICATION_CENTER_SWAYNC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC, SwayNotificationCenterSwayncClass))

typedef struct _SwayNotificationCenterSwaync SwayNotificationCenterSwaync;
typedef struct _SwayNotificationCenterSwayncClass SwayNotificationCenterSwayncClass;
typedef struct _SwayNotificationCenterSwayncPrivate SwayNotificationCenterSwayncPrivate;

#define TYPE_XDG_ACTIVATION_HELPER (xdg_activation_helper_get_type ())
#define XDG_ACTIVATION_HELPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_XDG_ACTIVATION_HELPER, XdgActivationHelper))
#define XDG_ACTIVATION_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_XDG_ACTIVATION_HELPER, XdgActivationHelperClass))
#define IS_XDG_ACTIVATION_HELPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_XDG_ACTIVATION_HELPER))
#define IS_XDG_ACTIVATION_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_XDG_ACTIVATION_HELPER))
#define XDG_ACTIVATION_HELPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_XDG_ACTIVATION_HELPER, XdgActivationHelperClass))

typedef struct _XdgActivationHelper XdgActivationHelper;
typedef struct _XdgActivationHelperClass XdgActivationHelperClass;

#define SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC_DAEMON (sway_notification_center_swaync_daemon_get_type ())
#define SWAY_NOTIFICATION_CENTER_SWAYNC_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC_DAEMON, SwayNotificationCenterSwayncDaemon))
#define SWAY_NOTIFICATION_CENTER_SWAYNC_DAEMON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC_DAEMON, SwayNotificationCenterSwayncDaemonClass))
#define SWAY_NOTIFICATION_CENTER_IS_SWAYNC_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC_DAEMON))
#define SWAY_NOTIFICATION_CENTER_IS_SWAYNC_DAEMON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC_DAEMON))
#define SWAY_NOTIFICATION_CENTER_SWAYNC_DAEMON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC_DAEMON, SwayNotificationCenterSwayncDaemonClass))

typedef struct _SwayNotificationCenterSwayncDaemon SwayNotificationCenterSwayncDaemon;
typedef struct _SwayNotificationCenterSwayncDaemonClass SwayNotificationCenterSwayncDaemonClass;
typedef enum  {
	SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_EXPIRED = 1,
	SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_DISMISSED = 2,
	SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_CLOSED_BY_CLOSENOTIFICATION = 3,
	SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_UNDEFINED = 4
} SwayNotificationCenterClosedReasons;

#define SWAY_NOTIFICATION_CENTER_TYPE_CLOSED_REASONS (sway_notification_center_closed_reasons_get_type ())
typedef enum  {
	SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_LOW = 0,
	SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_NORMAL = 1,
	SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_CRITICAL = 2
} SwayNotificationCenterUrgencyLevels;

#define SWAY_NOTIFICATION_CENTER_TYPE_URGENCY_LEVELS (sway_notification_center_urgency_levels_get_type ())
typedef struct _Block8Data Block8Data;
typedef struct _Block9Data Block9Data;
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
typedef struct _Block10Data Block10Data;
typedef struct _Block11Data Block11Data;
typedef struct _SwayNotificationCenterNotificationRemoveNotificationData SwayNotificationCenterNotificationRemoveNotificationData;
typedef enum  {
	SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_ALWAYS,
	SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_WHEN_AVAILABLE,
	SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_NEVER
} SwayNotificationCenterImageVisibility;

#define SWAY_NOTIFICATION_CENTER_TYPE_IMAGE_VISIBILITY (sway_notification_center_image_visibility_get_type ())

#define SWAY_NOTIFICATION_CENTER_TYPE_IMAGE_DATA (sway_notification_center_image_data_get_type ())
typedef struct _SwayNotificationCenterImageData SwayNotificationCenterImageData;
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
#define __vala_GdkEventSequence_free0(var) ((var == NULL) ? NULL : (var = (_vala_GdkEventSequence_free (var), NULL)))

struct _SwayNotificationCenterNotification {
	AdwBin parent_instance;
	SwayNotificationCenterNotificationPrivate * priv;
};

struct _SwayNotificationCenterNotificationClass {
	AdwBinClass parent_class;
};

struct _SwayNotificationCenterNotificationPrivate {
	GtkRevealer* revealer;
	DismissibleWidget* dismissible_widget;
	GtkOverlay* base_widget;
	GtkBox* default_action;
	GtkFlowBox* alt_actions_box;
	GtkGestureClick* gesture;
	GtkEventControllerMotion* motion_controller;
	GtkProgressBar* progress_bar;
	IterBox* base_box;
	SwayNotificationCenterNotificationCloseButton* close_button;
	GtkLabel* summary;
	GtkLabel* time;
	GtkLabel* body;
	GtkImage* img;
	GtkImage* img_app_icon;
	GtkPicture* body_image;
	GtkBox* inline_reply_box;
	GtkEntry* inline_reply_entry;
	GtkButton* inline_reply_button;
	gboolean default_action_down;
	gboolean default_action_in;
	gint _notification_body_image_height;
	gint _notification_body_image_width;
	guint timeout_id;
	gboolean _is_timed;
	SwayNotificationCenterNotifyParams* _param;
	SwayNotificationCenterNotificationType _notification_type;
	guint _timeout_delay;
	guint _timeout_low_delay;
	guint _timeout_critical_delay;
	gint _transition_time;
	gint _number_of_body_lines;
	gboolean _has_inline_reply;
	gboolean _dismissed;
	gboolean _dismissed_by_swipe;
	GRecMutex __lock_dismissed;
};

struct _SwayNotificationCenterSwaync {
	GtkApplication parent_instance;
	SwayNotificationCenterSwayncPrivate * priv;
	gboolean use_layer_shell;
	gboolean has_layer_on_demand;
	XdgActivationHelper* xdg_activation;
};

struct _SwayNotificationCenterSwayncClass {
	GtkApplicationClass parent_class;
};

struct _Block8Data {
	int _ref_count_;
	SwayNotificationCenterNotification* self;
	gchar* code;
};

struct _Block9Data {
	int _ref_count_;
	Block8Data * _data8_;
	SwayNotificationCenterAction* action;
};

struct _Block10Data {
	int _ref_count_;
	SwayNotificationCenterNotification* self;
	gpointer _async_data_;
};

struct _Block11Data {
	int _ref_count_;
	Block10Data * _data10_;
	gulong id;
};

struct _SwayNotificationCenterNotificationRemoveNotificationData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	SwayNotificationCenterNotification* self;
	gboolean animated;
	Block10Data* _data10_;
	gboolean _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	GtkRevealer* _tmp6_;
	gboolean _tmp7_;
	gboolean _tmp8_;
	Block11Data* _data11_;
	GtkRevealer* _tmp9_;
	gulong _tmp10_;
	GtkRevealer* _tmp11_;
	gboolean _tmp12_;
	GError* _inner_error0_;
};

struct _SwayNotificationCenterImageData {
	gint width;
	gint height;
	gint rowstride;
	gboolean has_alpha;
	gint bits_per_sample;
	gint channels;
	guint8* data;
	gint data_length1;
	gboolean is_initialized;
};

static gint SwayNotificationCenterNotification_private_offset;
static gpointer sway_notification_center_notification_parent_class = NULL;
static GRegex* sway_notification_center_notification_code_regex;
static GRegex* sway_notification_center_notification_code_regex = NULL;
static GRegex* sway_notification_center_notification_tag_regex;
static GRegex* sway_notification_center_notification_tag_regex = NULL;
static GRegex* sway_notification_center_notification_tag_unescape_regex;
static GRegex* sway_notification_center_notification_tag_unescape_regex = NULL;
static GRegex* sway_notification_center_notification_img_tag_regex;
static GRegex* sway_notification_center_notification_img_tag_regex = NULL;
VALA_EXTERN SwayNotificationCenterNotiDaemon* sway_notification_center_noti_daemon;
VALA_EXTERN SwayNotificationCenterSwaync* sway_notification_center_app;
VALA_EXTERN SwayNotificationCenterSwayncDaemon* sway_notification_center_swaync_daemon;

VALA_EXTERN GType sway_notification_center_notification_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType sway_notification_center_notification_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterNotification, g_object_unref)
VALA_EXTERN GType dismissible_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DismissibleWidget, g_object_unref)
VALA_EXTERN GType iter_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (IterBox, g_object_unref)
VALA_EXTERN GType sway_notification_center_notification_close_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterNotificationCloseButton, g_object_unref)
VALA_EXTERN GType sway_notification_center_notify_params_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterNotifyParams, g_object_unref)
VALA_EXTERN GType sway_notification_center_config_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterConfigModel, g_object_unref)
VALA_EXTERN SwayNotificationCenterConfigModel* sway_notification_center_config_model_get_instance (void);
VALA_EXTERN gint sway_notification_center_config_model_get_notification_body_image_height (SwayNotificationCenterConfigModel* self);
VALA_EXTERN gint sway_notification_center_config_model_get_notification_body_image_width (SwayNotificationCenterConfigModel* self);
static SwayNotificationCenterNotification* sway_notification_center_notification_new (void);
static SwayNotificationCenterNotification* sway_notification_center_notification_construct (GType object_type);
VALA_EXTERN SwayNotificationCenterNotification* sway_notification_center_notification_new_regular (SwayNotificationCenterNotifyParams* param,
                                                                                       SwayNotificationCenterNotificationType notification_type);
VALA_EXTERN SwayNotificationCenterNotification* sway_notification_center_notification_construct_regular (GType object_type,
                                                                                             SwayNotificationCenterNotifyParams* param,
                                                                                             SwayNotificationCenterNotificationType notification_type);
static void sway_notification_center_notification_set_param (SwayNotificationCenterNotification* self,
                                                      SwayNotificationCenterNotifyParams* value);
static void sway_notification_center_notification_build_noti (SwayNotificationCenterNotification* self);
VALA_EXTERN SwayNotificationCenterNotification* sway_notification_center_notification_new_timed (SwayNotificationCenterNotifyParams* param,
                                                                                     SwayNotificationCenterNotificationType notification_type,
                                                                                     guint timeout,
                                                                                     guint timeout_low,
                                                                                     guint timeout_critical);
VALA_EXTERN SwayNotificationCenterNotification* sway_notification_center_notification_construct_timed (GType object_type,
                                                                                           SwayNotificationCenterNotifyParams* param,
                                                                                           SwayNotificationCenterNotificationType notification_type,
                                                                                           guint timeout,
                                                                                           guint timeout_low,
                                                                                           guint timeout_critical);
VALA_EXTERN gboolean sway_notification_center_notification_get_dismissed (SwayNotificationCenterNotification* self);
static void sway_notification_center_notification_set_dismissed (SwayNotificationCenterNotification* self,
                                                          gboolean value);
static void sway_notification_center_notification_set_dismissed_by_swipe (SwayNotificationCenterNotification* self,
                                                                   gboolean value);
VALA_EXTERN SwayNotificationCenterNotifyParams* sway_notification_center_notification_get_param (SwayNotificationCenterNotification* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_summary (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_app_name (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN void sway_notification_center_notification_close_button_set_transition_duration (SwayNotificationCenterNotificationCloseButton* self,
                                                                                 guint duration);
VALA_EXTERN gint sway_notification_center_notification_get_transition_time (SwayNotificationCenterNotification* self);
VALA_EXTERN GType sway_notification_center_position_x_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SwayNotificationCenterPositionX sway_notification_center_config_model_get_positionX (SwayNotificationCenterConfigModel* self);
VALA_EXTERN GType swipe_direction_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void dismissible_widget_set_gesture_direction (DismissibleWidget* self,
                                               SwipeDirection swipe_direction);
VALA_EXTERN gboolean sway_notification_center_notify_params_get_has_synch (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN gint sway_notification_center_notify_params_get_value (SwayNotificationCenterNotifyParams* self);
static void sway_notification_center_notification_set_body (SwayNotificationCenterNotification* self);
static void sway_notification_center_notification_set_icon (SwayNotificationCenterNotification* self);
static void sway_notification_center_notification_set_inline_reply (SwayNotificationCenterNotification* self);
static void sway_notification_center_notification_set_actions (SwayNotificationCenterNotification* self);
static void sway_notification_center_notification_set_style_urgency (SwayNotificationCenterNotification* self);
static void __lambda96_ (SwayNotificationCenterNotification* self);
static void ___lambda96__gsource_once_func (gpointer self);
VALA_EXTERN void sway_notification_center_notification_remove_noti_timeout (SwayNotificationCenterNotification* self);
VALA_EXTERN gboolean sway_notification_center_notification_get_is_timed (SwayNotificationCenterNotification* self);
VALA_EXTERN void sway_notification_center_notification_add_notification_timeout (SwayNotificationCenterNotification* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_body (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN gint sway_notification_center_notification_get_number_of_body_lines (SwayNotificationCenterNotification* self);
static void _vala_array_add35 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN gchar* sway_notification_center_functions_uri_to_path (gchar* uri);
static gint sway_notification_center_notification_get_notification_body_image_width (SwayNotificationCenterNotification* self);
static gint sway_notification_center_notification_get_notification_body_image_height (SwayNotificationCenterNotification* self);
static gchar* sway_notification_center_notification_parse_body_codes (SwayNotificationCenterNotification* self);
VALA_EXTERN gboolean sway_notification_center_config_model_get_notification_2fa_action (SwayNotificationCenterConfigModel* self);
VALA_EXTERN gchar* sway_notification_center_functions_filter_string (const gchar* body,
                                                         SwayNotificationCenterFunctionsFilterFunc func,
                                                         gpointer func_target);
static gboolean __lambda35_ (SwayNotificationCenterNotification* self,
                      gchar c);
static gboolean ___lambda35__sway_notification_center_functions_filter_func (gchar character,
                                                                      gpointer self);
VALA_EXTERN void sway_notification_center_notification_click_default_action (SwayNotificationCenterNotification* self);
VALA_EXTERN GType sway_notification_center_action_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterAction, g_object_unref)
static void sway_notification_center_notification_action_clicked (SwayNotificationCenterNotification* self,
                                                           SwayNotificationCenterAction* action);
VALA_EXTERN SwayNotificationCenterAction* sway_notification_center_notify_params_get_default_action (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN void sway_notification_center_notification_click_alt_action (SwayNotificationCenterNotification* self,
                                                             guint index);
VALA_EXTERN GArray* sway_notification_center_notify_params_get_actions (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN GType sway_notification_center_noti_daemon_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterNotiDaemon, g_object_unref)
VALA_EXTERN guint sway_notification_center_noti_daemon_register_object (void* object,
                                                            GDBusConnection* connection,
                                                            const gchar* path,
                                                            GError** error);
VALA_EXTERN GType sway_notification_center_script_run_on_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void sway_notification_center_noti_daemon_run_scripts (SwayNotificationCenterNotiDaemon* self,
                                                       SwayNotificationCenterNotifyParams* param,
                                                       SwayNotificationCenterScriptRunOnType run_on);
VALA_EXTERN const gchar* sway_notification_center_action_get_identifier (SwayNotificationCenterAction* self);
VALA_EXTERN GType sway_notification_center_swaync_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterSwaync, g_object_unref)
VALA_EXTERN GType xdg_activation_helper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (XdgActivationHelper, g_object_unref)
VALA_EXTERN gchar* xdg_activation_helper_get_token (XdgActivationHelper* self,
                                        GtkWidget* widget);
VALA_EXTERN guint32 sway_notification_center_notify_params_get_applied_id (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN gboolean sway_notification_center_config_model_get_hide_on_action (SwayNotificationCenterConfigModel* self);
VALA_EXTERN GType sway_notification_center_swaync_daemon_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterSwayncDaemon, g_object_unref)
VALA_EXTERN guint sway_notification_center_swaync_daemon_register_object (void* object,
                                                              GDBusConnection* connection,
                                                              const gchar* path,
                                                              GError** error);
VALA_EXTERN void sway_notification_center_swaync_daemon_set_visibility (SwayNotificationCenterSwayncDaemon* self,
                                                            gboolean visibility,
                                                            GError** error);
VALA_EXTERN gboolean sway_notification_center_notify_params_get_resident (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN GType sway_notification_center_closed_reasons_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void sway_notification_center_notification_request_dismiss_notification (SwayNotificationCenterNotification* self,
                                                                         SwayNotificationCenterClosedReasons reason,
                                                                         gboolean by_swipe);
VALA_EXTERN GType sway_notification_center_urgency_levels_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SwayNotificationCenterUrgencyLevels sway_notification_center_notify_params_get_urgency (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN gboolean sway_notification_center_config_model_get_notification_inline_replies (SwayNotificationCenterConfigModel* self);
VALA_EXTERN gboolean sway_notification_center_config_model_get_layer_shell (SwayNotificationCenterConfigModel* self);
VALA_EXTERN SwayNotificationCenterNotificationType sway_notification_center_notification_get_notification_type (SwayNotificationCenterNotification* self);
VALA_EXTERN SwayNotificationCenterAction* sway_notification_center_notify_params_get_inline_reply (SwayNotificationCenterNotifyParams* self);
static void sway_notification_center_notification_set_has_inline_reply (SwayNotificationCenterNotification* self,
                                                                 gboolean value);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_inline_reply_placeholder (SwayNotificationCenterNotifyParams* self);
static gboolean __lambda34_ (SwayNotificationCenterNotification* self,
                      GBinding* binding,
                      GValue* srcval,
                      GValue* targetval);
static gboolean ___lambda34__gbinding_transform_func (GBinding* binding,
                                               GValue* from_value,
                                               GValue* to_value,
                                               gpointer self);
VALA_EXTERN const gchar* sway_notification_center_action_get_text (SwayNotificationCenterAction* self);
static Block8Data* block8_data_ref (Block8Data* _data8_);
static void block8_data_unref (void * _userdata_);
static void ____lambda36_ (Block8Data* _data8_);
static void _____lambda36__gtk_button_clicked (GtkButton* _sender,
                                        gpointer self);
static Block9Data* block9_data_ref (Block9Data* _data9_);
static void block9_data_unref (void * _userdata_);
static void _____lambda95_ (Block9Data* _data9_);
static void ______lambda95__gtk_button_clicked (GtkButton* _sender,
                                         gpointer self);
VALA_EXTERN void sway_notification_center_notification_set_time (SwayNotificationCenterNotification* self);
VALA_EXTERN gboolean sway_notification_center_config_model_get_relative_timestamps (SwayNotificationCenterConfigModel* self);
static gchar* sway_notification_center_notification_get_relative_time (SwayNotificationCenterNotification* self);
static gchar* sway_notification_center_notification_get_iso8601_time (SwayNotificationCenterNotification* self);
VALA_EXTERN gint64 sway_notification_center_notify_params_get_time (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN void sway_notification_center_noti_daemon_request_dismiss_notification (SwayNotificationCenterNotiDaemon* self,
                                                                        SwayNotificationCenterNotifyParams* param,
                                                                        SwayNotificationCenterClosedReasons reason);
static void sway_notification_center_notification_remove_notification_data_free (gpointer _data);
VALA_EXTERN void sway_notification_center_notification_remove_notification (SwayNotificationCenterNotification* self,
                                                                gboolean animated,
                                                                GAsyncReadyCallback _callback_,
                                                                gpointer _user_data_);
VALA_EXTERN void sway_notification_center_notification_remove_notification_finish (SwayNotificationCenterNotification* self,
                                                                       GAsyncResult* _res_);
static gboolean sway_notification_center_notification_remove_notification_co (SwayNotificationCenterNotificationRemoveNotificationData* _data_);
static Block10Data* block10_data_ref (Block10Data* _data10_);
static void block10_data_unref (void * _userdata_);
VALA_EXTERN gboolean sway_notification_center_notification_get_dismissed_by_swipe (SwayNotificationCenterNotification* self);
static Block11Data* block11_data_ref (Block11Data* _data11_);
static void block11_data_unref (void * _userdata_);
static void ____lambda93_ (Block11Data* _data11_);
static void _____lambda93__g_object_notify (GObject* _sender,
                                     GParamSpec* pspec,
                                     gpointer self);
VALA_EXTERN void sway_notification_center_notification_replace_notification (SwayNotificationCenterNotification* self,
                                                                 SwayNotificationCenterNotifyParams* new_params);
VALA_EXTERN GDesktopAppInfo* sway_notification_center_notify_params_get_desktop_app_info (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_app_icon (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN GType sway_notification_center_image_visibility_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SwayNotificationCenterImageVisibility sway_notification_center_config_model_get_image_visibility (SwayNotificationCenterConfigModel* self);
VALA_EXTERN gint sway_notification_center_config_model_get_notification_icon_size (SwayNotificationCenterConfigModel* self) G_GNUC_DEPRECATED ;
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_image_path (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN GType sway_notification_center_image_data_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SwayNotificationCenterImageData* sway_notification_center_image_data_dup (const SwayNotificationCenterImageData* self);
VALA_EXTERN void sway_notification_center_image_data_free (SwayNotificationCenterImageData* self);
VALA_EXTERN void sway_notification_center_notify_params_get_image_data (SwayNotificationCenterNotifyParams* self,
                                                            SwayNotificationCenterImageData * result);
VALA_EXTERN void sway_notification_center_functions_set_image_data (SwayNotificationCenterImageData* data,
                                                        GtkImage* img);
VALA_EXTERN void sway_notification_center_functions_set_image_uri (gchar* uri,
                                                       GtkImage* img,
                                                       gboolean file_exists,
                                                       gboolean is_theme_icon);
VALA_EXTERN void sway_notification_center_notify_params_get_icon_data (SwayNotificationCenterNotifyParams* self,
                                                           SwayNotificationCenterImageData * result);
VALA_EXTERN guint sway_notification_center_notification_get_timeout_low_delay (SwayNotificationCenterNotification* self);
VALA_EXTERN guint sway_notification_center_notification_get_timeout_delay (SwayNotificationCenterNotification* self);
VALA_EXTERN guint sway_notification_center_notification_get_timeout_critical_delay (SwayNotificationCenterNotification* self);
VALA_EXTERN gint sway_notification_center_notify_params_get_expire_timeout (SwayNotificationCenterNotifyParams* self);
static void __lambda97_ (SwayNotificationCenterNotification* self);
static void ___lambda97__gsource_once_func (gpointer self);
static void sway_notification_center_notification_set_is_timed (SwayNotificationCenterNotification* self,
                                                         gboolean value);
static void sway_notification_center_notification_set_notification_type (SwayNotificationCenterNotification* self,
                                                                  SwayNotificationCenterNotificationType value);
static void sway_notification_center_notification_set_timeout_delay (SwayNotificationCenterNotification* self,
                                                              guint value);
static void sway_notification_center_notification_set_timeout_low_delay (SwayNotificationCenterNotification* self,
                                                                  guint value);
static void sway_notification_center_notification_set_timeout_critical_delay (SwayNotificationCenterNotification* self,
                                                                       guint value);
static void sway_notification_center_notification_set_transition_time (SwayNotificationCenterNotification* self,
                                                                gint value);
static void sway_notification_center_notification_set_number_of_body_lines (SwayNotificationCenterNotification* self,
                                                                     gint value);
VALA_EXTERN gboolean sway_notification_center_notification_get_has_inline_reply (SwayNotificationCenterNotification* self);
static GObject * sway_notification_center_notification_constructor (GType type,
                                                             guint n_construct_properties,
                                                             GObjectConstructParam * construct_properties);
static void _sway_notification_center_notification___lambda108_ (SwayNotificationCenterNotification* self,
                                                          GtkGestureClick* _gesture,
                                                          gint _n_press,
                                                          gdouble _x,
                                                          gdouble _y);
static void __sway_notification_center_notification___lambda108__gtk_gesture_click_pressed (GtkGestureClick* _sender,
                                                                                     gint n_press,
                                                                                     gdouble x,
                                                                                     gdouble y,
                                                                                     gpointer self);
static void _sway_notification_center_notification___lambda109_ (SwayNotificationCenterNotification* self,
                                                          GtkGestureClick* gesture,
                                                          gint _n_press,
                                                          gdouble _x,
                                                          gdouble _y);
static void _vala_GdkEventSequence_free (GdkEventSequence* self);
static void __sway_notification_center_notification___lambda109__gtk_gesture_click_released (GtkGestureClick* _sender,
                                                                                      gint n_press,
                                                                                      gdouble x,
                                                                                      gdouble y,
                                                                                      gpointer self);
static void _sway_notification_center_notification___lambda110_ (SwayNotificationCenterNotification* self,
                                                          GtkGesture* gesture,
                                                          GdkEventSequence* sequence);
static void __sway_notification_center_notification___lambda110__gtk_gesture_update (GtkGesture* _sender,
                                                                              GdkEventSequence* sequence,
                                                                              gpointer self);
static void _sway_notification_center_notification___lambda111_ (SwayNotificationCenterNotification* self,
                                                          GtkGesture* _gesture,
                                                          GdkEventSequence* _sequence);
static void __sway_notification_center_notification___lambda111__gtk_gesture_cancel (GtkGesture* _sender,
                                                                              GdkEventSequence* sequence,
                                                                              gpointer self);
VALA_EXTERN gint sway_notification_center_config_model_get_transition_time (SwayNotificationCenterConfigModel* self);
static void _sway_notification_center_notification___lambda112_ (SwayNotificationCenterNotification* self);
static void __sway_notification_center_notification___lambda112__gtk_widget_unmap (GtkWidget* _sender,
                                                                            gpointer self);
static void _sway_notification_center_notification___lambda113_ (SwayNotificationCenterNotification* self);
static void __sway_notification_center_notification___lambda113__sway_notification_center_notification_close_button_clicked (SwayNotificationCenterNotificationCloseButton* _sender,
                                                                                                                      gpointer self);
static void _sway_notification_center_notification___lambda114_ (SwayNotificationCenterNotification* self,
                                                          gdouble event);
VALA_EXTERN void sway_notification_center_notification_close_button_set_reveal (SwayNotificationCenterNotificationCloseButton* self,
                                                                    gboolean state);
static void __sway_notification_center_notification___lambda114__gtk_event_controller_motion_enter (GtkEventControllerMotion* _sender,
                                                                                             gdouble x,
                                                                                             gdouble y,
                                                                                             gpointer self);
static void _sway_notification_center_notification___lambda115_ (SwayNotificationCenterNotification* self,
                                                          GtkEventControllerMotion* controller);
static void __sway_notification_center_notification___lambda115__gtk_event_controller_motion_leave (GtkEventControllerMotion* _sender,
                                                                                             gpointer self);
static void _sway_notification_center_notification___lambda116_ (SwayNotificationCenterNotification* self);
static void __sway_notification_center_notification___lambda116__dismissible_widget_dismissed (DismissibleWidget* _sender,
                                                                                        gpointer self);
static void _sway_notification_center_notification___lambda117_ (SwayNotificationCenterNotification* self,
                                                          guint keyval,
                                                          guint keycode,
                                                          GdkModifierType state);
static void __sway_notification_center_notification___lambda117__gtk_event_controller_key_key_released (GtkEventControllerKey* _sender,
                                                                                                 guint keyval,
                                                                                                 guint keycode,
                                                                                                 GdkModifierType state,
                                                                                                 gpointer self);
static void _sway_notification_center_notification___lambda118_ (SwayNotificationCenterNotification* self);
static void __sway_notification_center_notification___lambda118__gtk_button_clicked (GtkButton* _sender,
                                                                              gpointer self);
static void sway_notification_center_notification_finalize (GObject * obj);
static GType sway_notification_center_notification_get_type_once (void);
static void _vala_sway_notification_center_notification_get_property (GObject * object,
                                                               guint property_id,
                                                               GValue * value,
                                                               GParamSpec * pspec);
static void _vala_sway_notification_center_notification_set_property (GObject * object,
                                                               guint property_id,
                                                               const GValue * value,
                                                               GParamSpec * pspec);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);

static const gchar* SWAY_NOTIFICATION_CENTER_NOTIFICATION_TAGS[3] = {"b", "u", "i"};
static const gchar* SWAY_NOTIFICATION_CENTER_NOTIFICATION_UNESCAPE_CHARS[13] = {"lt;", "#60;", "#x3C;", "#x3c;", "gt;", "#62;", "#x3E;", "#x3e;", "apos;", "#39;", "quot;", "#34;", "amp;"};

 G_GNUC_NO_INLINE static GType
sway_notification_center_notification_type_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_CONTROL_CENTER, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_CONTROL_CENTER", "control-center"}, {SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_FLOATING, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_FLOATING", "floating"}, {0, NULL, NULL}};
	GType sway_notification_center_notification_type_type_id;
	sway_notification_center_notification_type_type_id = g_enum_register_static ("SwayNotificationCenterNotificationType", values);
	return sway_notification_center_notification_type_type_id;
}

GType
sway_notification_center_notification_type_get_type (void)
{
	static gsize sway_notification_center_notification_type_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_notification_type_type_id__once)) {
		GType sway_notification_center_notification_type_type_id;
		sway_notification_center_notification_type_type_id = sway_notification_center_notification_type_get_type_once ();
		g_once_init_leave (&sway_notification_center_notification_type_type_id__once, sway_notification_center_notification_type_type_id);
	}
	return sway_notification_center_notification_type_type_id__once;
}

static inline gpointer
sway_notification_center_notification_get_instance_private (SwayNotificationCenterNotification* self)
{
	return G_STRUCT_MEMBER_P (self, SwayNotificationCenterNotification_private_offset);
}

static SwayNotificationCenterNotification*
sway_notification_center_notification_construct (GType object_type)
{
	SwayNotificationCenterNotification * self = NULL;
	self = (SwayNotificationCenterNotification*) g_object_new (object_type, NULL);
	return self;
}

static SwayNotificationCenterNotification*
sway_notification_center_notification_new (void)
{
	return sway_notification_center_notification_construct (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION);
}

/** Show a non-timed notification */
SwayNotificationCenterNotification*
sway_notification_center_notification_construct_regular (GType object_type,
                                                         SwayNotificationCenterNotifyParams* param,
                                                         SwayNotificationCenterNotificationType notification_type)
{
	SwayNotificationCenterNotification * self = NULL;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS (param), NULL);
	self = (SwayNotificationCenterNotification*) g_object_new (object_type, "notification-type", notification_type, NULL);
	sway_notification_center_notification_set_param (self, param);
	sway_notification_center_notification_build_noti (self);
	return self;
}

SwayNotificationCenterNotification*
sway_notification_center_notification_new_regular (SwayNotificationCenterNotifyParams* param,
                                                   SwayNotificationCenterNotificationType notification_type)
{
	return sway_notification_center_notification_construct_regular (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, param, notification_type);
}

/** Show a timed notification */
SwayNotificationCenterNotification*
sway_notification_center_notification_construct_timed (GType object_type,
                                                       SwayNotificationCenterNotifyParams* param,
                                                       SwayNotificationCenterNotificationType notification_type,
                                                       guint timeout,
                                                       guint timeout_low,
                                                       guint timeout_critical)
{
	SwayNotificationCenterNotification * self = NULL;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS (param), NULL);
	self = (SwayNotificationCenterNotification*) g_object_new (object_type, "notification-type", notification_type, "is-timed", TRUE, "timeout-delay", timeout, "timeout-low-delay", timeout_low, "timeout-critical-delay", timeout_critical, "number-of-body-lines", 5, NULL);
	sway_notification_center_notification_set_param (self, param);
	sway_notification_center_notification_build_noti (self);
	return self;
}

SwayNotificationCenterNotification*
sway_notification_center_notification_new_timed (SwayNotificationCenterNotifyParams* param,
                                                 SwayNotificationCenterNotificationType notification_type,
                                                 guint timeout,
                                                 guint timeout_low,
                                                 guint timeout_critical)
{
	return sway_notification_center_notification_construct_timed (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, param, notification_type, timeout, timeout_low, timeout_critical);
}

static void
__lambda96_ (SwayNotificationCenterNotification* self)
{
	GtkRevealer* _tmp0_;
	_tmp0_ = self->priv->revealer;
	gtk_revealer_set_reveal_child (_tmp0_, TRUE);
}

static void
___lambda96__gsource_once_func (gpointer self)
{
	__lambda96_ ((SwayNotificationCenterNotification*) self);
}

static void
sway_notification_center_notification_build_noti (SwayNotificationCenterNotification* self)
{
	GtkLabel* _tmp2_;
	GtkLabel* _tmp3_;
	GtkLabel* _tmp4_;
	GtkLabel* _tmp5_;
	GtkLabel* _tmp6_;
	const gchar* _tmp7_ = NULL;
	SwayNotificationCenterNotifyParams* _tmp8_;
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	GtkLabel* _tmp14_;
	GtkLabel* _tmp15_;
	SwayNotificationCenterNotificationCloseButton* _tmp16_;
	gint _tmp17_;
	GtkRevealer* _tmp18_;
	gint _tmp19_;
	SwayNotificationCenterConfigModel* _tmp20_;
	SwayNotificationCenterConfigModel* _tmp21_;
	SwayNotificationCenterPositionX _tmp22_;
	SwayNotificationCenterPositionX _tmp23_;
	GtkProgressBar* _tmp26_;
	SwayNotificationCenterNotifyParams* _tmp27_;
	gboolean _tmp28_;
	gboolean _tmp29_;
	gboolean _tmp34_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	{
		gboolean _tmp0_;
		_tmp0_ = self->priv->_dismissed;
		g_rec_mutex_lock (&self->priv->__lock_dismissed);
		{
			sway_notification_center_notification_set_dismissed (self, FALSE);
			sway_notification_center_notification_set_dismissed_by_swipe (self, FALSE);
		}
		__finally0:
		{
			gboolean _tmp1_;
			_tmp1_ = self->priv->_dismissed;
			g_rec_mutex_unlock (&self->priv->__lock_dismissed);
		}
		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;
		}
	}
	_tmp2_ = self->priv->body;
	gtk_label_set_wrap (_tmp2_, TRUE);
	_tmp3_ = self->priv->body;
	gtk_label_set_wrap_mode (_tmp3_, PANGO_WRAP_WORD_CHAR);
	_tmp4_ = self->priv->body;
	gtk_label_set_natural_wrap_mode (_tmp4_, GTK_NATURAL_WRAP_WORD);
	_tmp5_ = self->priv->body;
	gtk_label_set_ellipsize (_tmp5_, PANGO_ELLIPSIZE_END);
	_tmp6_ = self->priv->summary;
	gtk_label_set_wrap (_tmp6_, FALSE);
	_tmp8_ = self->priv->_param;
	_tmp9_ = sway_notification_center_notify_params_get_summary (_tmp8_);
	_tmp10_ = _tmp9_;
	_tmp7_ = _tmp10_;
	if (_tmp7_ == NULL) {
		SwayNotificationCenterNotifyParams* _tmp11_;
		const gchar* _tmp12_;
		const gchar* _tmp13_;
		_tmp11_ = self->priv->_param;
		_tmp12_ = sway_notification_center_notify_params_get_app_name (_tmp11_);
		_tmp13_ = _tmp12_;
		_tmp7_ = _tmp13_;
	}
	_tmp14_ = self->priv->summary;
	gtk_label_set_text (_tmp14_, _tmp7_);
	_tmp15_ = self->priv->summary;
	gtk_label_set_ellipsize (_tmp15_, PANGO_ELLIPSIZE_END);
	_tmp16_ = self->priv->close_button;
	_tmp17_ = self->priv->_transition_time;
	sway_notification_center_notification_close_button_set_transition_duration (_tmp16_, (guint) _tmp17_);
	_tmp18_ = self->priv->revealer;
	_tmp19_ = self->priv->_transition_time;
	gtk_revealer_set_transition_duration (_tmp18_, (guint) _tmp19_);
	_tmp20_ = sway_notification_center_config_model_get_instance ();
	_tmp21_ = _tmp20_;
	_tmp22_ = sway_notification_center_config_model_get_positionX (_tmp21_);
	_tmp23_ = _tmp22_;
	switch (_tmp23_) {
		case SWAY_NOTIFICATION_CENTER_POSITION_X_LEFT:
		{
			DismissibleWidget* _tmp24_;
			_tmp24_ = self->priv->dismissible_widget;
			dismissible_widget_set_gesture_direction (_tmp24_, SWIPE_DIRECTION_SWIPE_LEFT);
			break;
		}
		default:
		case SWAY_NOTIFICATION_CENTER_POSITION_X_RIGHT:
		case SWAY_NOTIFICATION_CENTER_POSITION_X_CENTER:
		{
			DismissibleWidget* _tmp25_;
			_tmp25_ = self->priv->dismissible_widget;
			dismissible_widget_set_gesture_direction (_tmp25_, SWIPE_DIRECTION_SWIPE_RIGHT);
			break;
		}
	}
	_tmp26_ = self->priv->progress_bar;
	_tmp27_ = self->priv->_param;
	_tmp28_ = sway_notification_center_notify_params_get_has_synch (_tmp27_);
	_tmp29_ = _tmp28_;
	gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget), _tmp29_);
	if (_tmp29_) {
		GtkProgressBar* _tmp30_;
		SwayNotificationCenterNotifyParams* _tmp31_;
		gint _tmp32_;
		gint _tmp33_;
		_tmp30_ = self->priv->progress_bar;
		_tmp31_ = self->priv->_param;
		_tmp32_ = sway_notification_center_notify_params_get_value (_tmp31_);
		_tmp33_ = _tmp32_;
		gtk_progress_bar_set_fraction (_tmp30_, _tmp33_ * 0.01);
	}
	sway_notification_center_notification_set_body (self);
	sway_notification_center_notification_set_icon (self);
	sway_notification_center_notification_set_inline_reply (self);
	sway_notification_center_notification_set_actions (self);
	sway_notification_center_notification_set_style_urgency (self);
	g_idle_add_once (___lambda96__gsource_once_func, self);
	sway_notification_center_notification_remove_noti_timeout (self);
	_tmp34_ = self->priv->_is_timed;
	if (_tmp34_) {
		sway_notification_center_notification_add_notification_timeout (self);
	}
}

static gchar*
string_strip (const gchar* self)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup (self);
	_result_ = _tmp0_;
	g_strstrip (_result_);
	result = _result_;
	return result;
}

static gchar*
string_slice (const gchar* self,
              glong start,
              glong end)
{
	glong string_length = 0L;
	gint _tmp0_;
	gint _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = strlen (self);
	_tmp1_ = _tmp0_;
	string_length = (glong) _tmp1_;
	if (start < ((glong) 0)) {
		start = string_length + start;
	}
	if (end < ((glong) 0)) {
		end = string_length + end;
	}
	if (start >= ((glong) 0)) {
		_tmp2_ = start <= string_length;
	} else {
		_tmp2_ = FALSE;
	}
	g_return_val_if_fail (_tmp2_, NULL);
	if (end >= ((glong) 0)) {
		_tmp3_ = end <= string_length;
	} else {
		_tmp3_ = FALSE;
	}
	g_return_val_if_fail (_tmp3_, NULL);
	g_return_val_if_fail (start <= end, NULL);
	_tmp4_ = g_strndup (((gchar*) self) + start, (gsize) (end - start));
	result = _tmp4_;
	return result;
}

static gint
string_index_of (const gchar* self,
                 const gchar* needle,
                 gint start_index)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint result;
	g_return_val_if_fail (self != NULL, 0);
	g_return_val_if_fail (needle != NULL, 0);
	_tmp0_ = strstr (((gchar*) self) + start_index, (gchar*) needle);
	_result_ = _tmp0_;
	_tmp1_ = _result_;
	if (_tmp1_ != NULL) {
		gchar* _tmp2_;
		_tmp2_ = _result_;
		result = (gint) (_tmp2_ - ((gchar*) self));
		return result;
	} else {
		result = -1;
		return result;
	}
}

static void
_vala_array_add35 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

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

static void
sway_notification_center_notification_set_body (SwayNotificationCenterNotification* self)
{
	const gchar* _tmp0_ = NULL;
	SwayNotificationCenterNotifyParams* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* text = NULL;
	gchar* _tmp4_;
	GtkLabel* _tmp5_;
	gint _tmp6_;
	GtkPicture* _tmp7_;
	const gchar* _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	GtkLabel* _tmp111_;
	GtkLabel* _tmp112_;
	const gchar* _tmp113_;
	gint _tmp114_;
	gint _tmp115_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_tmp1_ = self->priv->_param;
	_tmp2_ = sway_notification_center_notify_params_get_body (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp0_ = _tmp3_;
	if (_tmp0_ == NULL) {
		_tmp0_ = "";
	}
	_tmp4_ = g_strdup (_tmp0_);
	text = _tmp4_;
	_tmp5_ = self->priv->body;
	_tmp6_ = self->priv->_number_of_body_lines;
	gtk_label_set_lines (_tmp5_, _tmp6_);
	_tmp7_ = self->priv->body_image;
	gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
	_tmp8_ = text;
	_tmp9_ = strlen (_tmp8_);
	_tmp10_ = _tmp9_;
	if (_tmp10_ > 0) {
		{
			gchar** img_paths = NULL;
			gchar** _tmp11_;
			gint img_paths_length1;
			gint _img_paths_size_;
			GMatchInfo* info = NULL;
			GRegex* _tmp12_;
			const gchar* _tmp13_;
			GMatchInfo* _tmp14_ = NULL;
			gboolean _tmp15_;
			gchar* _tmp38_ = NULL;
			GRegex* _tmp39_;
			const gchar* _tmp40_;
			const gchar* _tmp41_;
			gint _tmp42_;
			gint _tmp43_;
			gchar* _tmp44_;
			gchar* _tmp45_;
			gchar** _tmp46_;
			gint _tmp46__length1;
			_tmp11_ = g_new0 (gchar*, 0 + 1);
			img_paths = _tmp11_;
			img_paths_length1 = 0;
			_img_paths_size_ = img_paths_length1;
			_tmp12_ = sway_notification_center_notification_img_tag_regex;
			_tmp13_ = text;
			_tmp15_ = g_regex_match (_tmp12_, _tmp13_, 0, &_tmp14_);
			_g_match_info_unref0 (info);
			info = _tmp14_;
			if (_tmp15_) {
				{
					gboolean _tmp16_ = FALSE;
					_tmp16_ = TRUE;
					while (TRUE) {
						GMatchInfo* _tmp19_;
						gchar* _result_ = NULL;
						GMatchInfo* _tmp20_;
						gchar* _tmp21_;
						gchar* _tmp22_;
						gchar* _tmp23_;
						gchar* _tmp24_;
						gchar* _tmp25_;
						gchar* _tmp26_;
						const gchar* _tmp27_;
						const gchar* _tmp36_;
						gchar* _tmp37_;
						if (!_tmp16_) {
							gboolean _tmp17_ = FALSE;
							GMatchInfo* _tmp18_;
							_tmp18_ = info;
							_tmp17_ = g_match_info_next (_tmp18_, &_inner_error0_);
							if (G_UNLIKELY (_inner_error0_ != NULL)) {
								_g_match_info_unref0 (info);
								img_paths = (_vala_array_free (img_paths, img_paths_length1, (GDestroyNotify) g_free), NULL);
								goto __catch0_g_error;
							}
							if (!_tmp17_) {
								break;
							}
						}
						_tmp16_ = FALSE;
						_tmp19_ = info;
						if (_tmp19_ == NULL) {
							break;
						}
						_tmp20_ = info;
						_tmp21_ = g_match_info_fetch (_tmp20_, 1);
						_tmp22_ = _tmp21_;
						_tmp23_ = string_strip (_tmp22_);
						_tmp24_ = _tmp23_;
						_tmp25_ = string_slice (_tmp24_, (glong) 1, (glong) -1);
						_tmp26_ = _tmp25_;
						_g_free0 (_tmp24_);
						_g_free0 (_tmp22_);
						_result_ = _tmp26_;
						_tmp27_ = _result_;
						if (string_index_of (_tmp27_, "~/", 0) == 0) {
							const gchar* _tmp28_;
							const gchar* _tmp29_;
							const gchar* _tmp30_;
							gint _tmp31_;
							gint _tmp32_;
							gchar* _tmp33_;
							gchar* _tmp34_;
							gchar* _tmp35_;
							_tmp28_ = g_get_home_dir ();
							_tmp29_ = _result_;
							_tmp30_ = _result_;
							_tmp31_ = strlen (_tmp30_);
							_tmp32_ = _tmp31_;
							_tmp33_ = string_slice (_tmp29_, (glong) 1, (glong) _tmp32_);
							_tmp34_ = _tmp33_;
							_tmp35_ = g_strconcat (_tmp28_, _tmp34_, NULL);
							_g_free0 (_result_);
							_result_ = _tmp35_;
							_g_free0 (_tmp34_);
						}
						_tmp36_ = _result_;
						_tmp37_ = g_strdup (_tmp36_);
						_vala_array_add35 (&img_paths, &img_paths_length1, &_img_paths_size_, _tmp37_);
						_g_free0 (_result_);
					}
				}
			}
			_tmp39_ = sway_notification_center_notification_img_tag_regex;
			_tmp40_ = text;
			_tmp41_ = text;
			_tmp42_ = strlen (_tmp41_);
			_tmp43_ = _tmp42_;
			_tmp44_ = g_regex_replace (_tmp39_, _tmp40_, (gssize) _tmp43_, 0, "", 0, &_inner_error0_);
			_tmp38_ = _tmp44_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_match_info_unref0 (info);
				img_paths = (_vala_array_free (img_paths, img_paths_length1, (GDestroyNotify) g_free), NULL);
				goto __catch0_g_error;
			}
			_tmp45_ = _tmp38_;
			_tmp38_ = NULL;
			_g_free0 (text);
			text = _tmp45_;
			_tmp46_ = img_paths;
			_tmp46__length1 = img_paths_length1;
			if (_tmp46__length1 > 0) {
				gchar* img = NULL;
				gchar** _tmp47_;
				gint _tmp47__length1;
				const gchar* _tmp48_;
				gchar* _tmp49_;
				gchar* _tmp50_;
				GFile* file = NULL;
				const gchar* _tmp51_;
				GFile* _tmp52_;
				gboolean _tmp53_ = FALSE;
				const gchar* _tmp54_;
				gint _tmp55_;
				gint _tmp56_;
				_tmp47_ = img_paths;
				_tmp47__length1 = img_paths_length1;
				_tmp48_ = _tmp47_[0];
				_tmp49_ = g_strdup (_tmp48_);
				_tmp50_ = sway_notification_center_functions_uri_to_path (_tmp49_);
				img = _tmp50_;
				_tmp51_ = img;
				_tmp52_ = g_file_new_for_path (_tmp51_);
				file = _tmp52_;
				_tmp54_ = img;
				_tmp55_ = strlen (_tmp54_);
				_tmp56_ = _tmp55_;
				if (_tmp56_ > 0) {
					GFile* _tmp57_;
					_tmp57_ = file;
					_tmp53_ = g_file_query_exists (_tmp57_, NULL);
				} else {
					_tmp53_ = FALSE;
				}
				if (_tmp53_) {
					GdkTexture* texture = NULL;
					GFile* _tmp58_;
					GdkTexture* _tmp59_;
					GtkPicture* _tmp60_;
					GdkTexture* _tmp61_;
					GtkPicture* _tmp62_;
					GtkPicture* _tmp63_;
					GtkPicture* _tmp64_;
					gint _tmp65_;
					GtkPicture* _tmp66_;
					gint _tmp67_;
					GtkLayoutManager* layout = NULL;
					GtkCenterLayout* _tmp68_;
					GtkPicture* _tmp69_;
					GtkLayoutManager* _tmp70_;
					GtkLayoutManager* _tmp71_;
					GtkPicture* _tmp72_;
					_tmp58_ = file;
					_tmp59_ = gdk_texture_new_from_file (_tmp58_, &_inner_error0_);
					texture = _tmp59_;
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
						_g_object_unref0 (file);
						_g_free0 (img);
						_g_free0 (_tmp38_);
						_g_match_info_unref0 (info);
						img_paths = (_vala_array_free (img_paths, img_paths_length1, (GDestroyNotify) g_free), NULL);
						goto __catch0_g_error;
					}
					_tmp60_ = self->priv->body_image;
					_tmp61_ = texture;
					gtk_picture_set_paintable (_tmp60_, G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, gdk_paintable_get_type (), GdkPaintable));
					_tmp62_ = self->priv->body_image;
					gtk_picture_set_can_shrink (_tmp62_, TRUE);
					_tmp63_ = self->priv->body_image;
					gtk_picture_set_content_fit (_tmp63_, GTK_CONTENT_FIT_SCALE_DOWN);
					_tmp64_ = self->priv->body_image;
					_tmp65_ = self->priv->_notification_body_image_width;
					g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_widget_get_type (), GtkWidget), "width-request", _tmp65_, NULL);
					_tmp66_ = self->priv->body_image;
					_tmp67_ = self->priv->_notification_body_image_height;
					g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, gtk_widget_get_type (), GtkWidget), "height-request", _tmp67_, NULL);
					_tmp68_ = (GtkCenterLayout*) gtk_center_layout_new ();
					if (_tmp68_) {
						g_object_set_data ((GObject *) _tmp68_, "vala-creation-function", "SwayNotificationCenter.Notification.set_body");
					}
					layout = G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, gtk_layout_manager_get_type (), GtkLayoutManager);
					_tmp69_ = self->priv->body_image;
					_tmp70_ = layout;
					_tmp71_ = _g_object_ref0 (_tmp70_);
					gtk_widget_set_layout_manager (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, gtk_widget_get_type (), GtkWidget), _tmp71_);
					_tmp72_ = self->priv->body_image;
					gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, gtk_widget_get_type (), GtkWidget));
					_g_object_unref0 (layout);
					_g_object_unref0 (texture);
				}
				_g_object_unref0 (file);
				_g_free0 (img);
			}
			_g_free0 (_tmp38_);
			_g_match_info_unref0 (info);
			img_paths = (_vala_array_free (img_paths, img_paths_length1, (GDestroyNotify) g_free), NULL);
		}
		goto __finally0;
		__catch0_g_error:
		{
			GError* e = NULL;
			FILE* _tmp73_;
			GError* _tmp74_;
			const gchar* _tmp75_;
			e = _inner_error0_;
			_inner_error0_ = NULL;
			_tmp73_ = stderr;
			_tmp74_ = e;
			_tmp75_ = _tmp74_->message;
			fprintf (_tmp73_, "%s", _tmp75_);
			_g_error_free0 (e);
		}
		__finally0:
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_free0 (text);
			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;
		}
	}
	{
		PangoAttrList* attr = NULL;
		gchar* buf = NULL;
		GtkLabel* _tmp100_;
		const gchar* _tmp101_;
		PangoAttrList* _tmp102_;
		attr = NULL;
		buf = NULL;
		{
			const gchar* _tmp76_;
			PangoAttrList* _tmp77_ = NULL;
			gchar* _tmp78_ = NULL;
			_tmp76_ = text;
			pango_parse_markup (_tmp76_, -1, (gunichar) 0, &_tmp77_, &_tmp78_, NULL, &_inner_error0_);
			_pango_attr_list_unref0 (attr);
			attr = _tmp77_;
			_g_free0 (buf);
			buf = _tmp78_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				goto __catch2_g_error;
			}
		}
		goto __finally2;
		__catch2_g_error:
		{
			gchar* escaped = NULL;
			const gchar* _tmp79_;
			gchar* _tmp80_;
			gchar* _tmp81_ = NULL;
			GRegex* _tmp82_;
			const gchar* _tmp83_;
			const gchar* _tmp84_;
			gint _tmp85_;
			gint _tmp86_;
			gchar* _tmp87_;
			gchar* _tmp88_;
			gchar* _tmp89_ = NULL;
			GRegex* _tmp90_;
			const gchar* _tmp91_;
			const gchar* _tmp92_;
			gint _tmp93_;
			gint _tmp94_;
			gchar* _tmp95_;
			gchar* _tmp96_;
			const gchar* _tmp97_;
			PangoAttrList* _tmp98_ = NULL;
			gchar* _tmp99_ = NULL;
			g_clear_error (&_inner_error0_);
			_tmp79_ = text;
			_tmp80_ = g_markup_escape_text (_tmp79_, (gssize) -1);
			escaped = _tmp80_;
			_tmp82_ = sway_notification_center_notification_tag_regex;
			_tmp83_ = escaped;
			_tmp84_ = escaped;
			_tmp85_ = strlen (_tmp84_);
			_tmp86_ = _tmp85_;
			_tmp87_ = g_regex_replace (_tmp82_, _tmp83_, (gssize) _tmp86_, 0, "<\\1>", 0, &_inner_error0_);
			_tmp81_ = _tmp87_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_free0 (escaped);
				goto __finally2;
			}
			_tmp88_ = _tmp81_;
			_tmp81_ = NULL;
			_g_free0 (escaped);
			escaped = _tmp88_;
			_tmp90_ = sway_notification_center_notification_tag_unescape_regex;
			_tmp91_ = escaped;
			_tmp92_ = escaped;
			_tmp93_ = strlen (_tmp92_);
			_tmp94_ = _tmp93_;
			_tmp95_ = g_regex_replace_literal (_tmp90_, _tmp91_, (gssize) _tmp94_, 0, "&", 0, &_inner_error0_);
			_tmp89_ = _tmp95_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_free0 (_tmp81_);
				_g_free0 (escaped);
				goto __finally2;
			}
			_tmp96_ = _tmp89_;
			_tmp89_ = NULL;
			_g_free0 (escaped);
			escaped = _tmp96_;
			_tmp97_ = escaped;
			pango_parse_markup (_tmp97_, -1, (gunichar) 0, &_tmp98_, &_tmp99_, NULL, &_inner_error0_);
			_pango_attr_list_unref0 (attr);
			attr = _tmp98_;
			_g_free0 (buf);
			buf = _tmp99_;
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_free0 (_tmp89_);
				_g_free0 (_tmp81_);
				_g_free0 (escaped);
				goto __finally2;
			}
			_g_free0 (_tmp89_);
			_g_free0 (_tmp81_);
			_g_free0 (escaped);
		}
		__finally2:
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_free0 (buf);
			_pango_attr_list_unref0 (attr);
			goto __catch1_g_error;
		}
		_tmp100_ = self->priv->body;
		_tmp101_ = buf;
		gtk_label_set_text (_tmp100_, _tmp101_);
		_tmp102_ = attr;
		if (_tmp102_ != NULL) {
			GtkLabel* _tmp103_;
			PangoAttrList* _tmp104_;
			_tmp103_ = self->priv->body;
			_tmp104_ = attr;
			gtk_label_set_attributes (_tmp103_, _tmp104_);
		}
		_g_free0 (buf);
		_pango_attr_list_unref0 (attr);
	}
	goto __finally1;
	__catch1_g_error:
	{
		GError* e = NULL;
		FILE* _tmp105_;
		const gchar* _tmp106_;
		GError* _tmp107_;
		const gchar* _tmp108_;
		GtkLabel* _tmp109_;
		const gchar* _tmp110_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp105_ = stderr;
		_tmp106_ = text;
		_tmp107_ = e;
		_tmp108_ = _tmp107_->message;
		fprintf (_tmp105_, "Could not parse Pango markup %s: %s\n", _tmp106_, _tmp108_);
		_tmp109_ = self->priv->body;
		_tmp110_ = text;
		gtk_label_set_text (_tmp109_, _tmp110_);
		_g_error_free0 (e);
	}
	__finally1:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_g_free0 (text);
		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;
	}
	_tmp111_ = self->priv->body;
	_tmp112_ = self->priv->body;
	_tmp113_ = gtk_label_get_text (_tmp112_);
	_tmp114_ = strlen (_tmp113_);
	_tmp115_ = _tmp114_;
	gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp111_, gtk_widget_get_type (), GtkWidget), _tmp115_ > 0);
	_g_free0 (text);
}

/** Returns the first code found, else null */
static gboolean
__lambda35_ (SwayNotificationCenterNotification* self,
             gchar c)
{
	gboolean _tmp0_ = FALSE;
	gboolean result;
	if (g_ascii_isdigit (c)) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = g_ascii_isspace (c);
	}
	result = _tmp0_;
	return result;
}

static gboolean
___lambda35__sway_notification_center_functions_filter_func (gchar character,
                                                             gpointer self)
{
	gboolean result;
	result = __lambda35_ ((SwayNotificationCenterNotification*) self, character);
	return result;
}

static gchar*
sway_notification_center_notification_parse_body_codes (SwayNotificationCenterNotification* self)
{
	SwayNotificationCenterConfigModel* _tmp0_;
	SwayNotificationCenterConfigModel* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gchar* body = NULL;
	GtkLabel* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	GMatchInfo* info = NULL;
	gboolean _result_ = FALSE;
	GRegex* _tmp10_;
	const gchar* _tmp11_;
	GMatchInfo* _tmp12_ = NULL;
	gboolean _tmp13_;
	gchar* match = NULL;
	GMatchInfo* _tmp14_;
	gchar* _tmp15_;
	gboolean _tmp16_ = FALSE;
	const gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), NULL);
	_tmp0_ = sway_notification_center_config_model_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = sway_notification_center_config_model_get_notification_2fa_action (_tmp1_);
	_tmp3_ = _tmp2_;
	if (!_tmp3_) {
		result = NULL;
		return result;
	}
	_tmp4_ = self->priv->body;
	_tmp5_ = gtk_label_get_text (_tmp4_);
	_tmp6_ = string_strip (_tmp5_);
	body = _tmp6_;
	_tmp7_ = body;
	_tmp8_ = strlen (_tmp7_);
	_tmp9_ = _tmp8_;
	if (_tmp9_ == 0) {
		result = NULL;
		_g_free0 (body);
		return result;
	}
	_tmp10_ = sway_notification_center_notification_code_regex;
	_tmp11_ = body;
	_tmp13_ = g_regex_match (_tmp10_, _tmp11_, G_REGEX_MATCH_NOTEMPTY, &_tmp12_);
	_g_match_info_unref0 (info);
	info = _tmp12_;
	_result_ = _tmp13_;
	_tmp14_ = info;
	_tmp15_ = g_match_info_fetch (_tmp14_, 0);
	match = _tmp15_;
	if (!_result_) {
		_tmp16_ = TRUE;
	} else {
		const gchar* _tmp17_;
		_tmp17_ = match;
		_tmp16_ = _tmp17_ == NULL;
	}
	if (_tmp16_) {
		result = NULL;
		_g_free0 (match);
		_g_match_info_unref0 (info);
		_g_free0 (body);
		return result;
	}
	_tmp18_ = match;
	_tmp19_ = string_strip (_tmp18_);
	_tmp20_ = _tmp19_;
	_tmp21_ = sway_notification_center_functions_filter_string (_tmp20_, ___lambda35__sway_notification_center_functions_filter_func, self);
	_tmp22_ = _tmp21_;
	_tmp23_ = string_strip (_tmp22_);
	_tmp24_ = _tmp23_;
	_g_free0 (_tmp22_);
	_g_free0 (_tmp20_);
	result = _tmp24_;
	_g_free0 (match);
	_g_match_info_unref0 (info);
	_g_free0 (body);
	return result;
}

void
sway_notification_center_notification_click_default_action (SwayNotificationCenterNotification* self)
{
	SwayNotificationCenterNotifyParams* _tmp0_;
	SwayNotificationCenterAction* _tmp1_;
	SwayNotificationCenterAction* _tmp2_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_tmp0_ = self->priv->_param;
	_tmp1_ = sway_notification_center_notify_params_get_default_action (_tmp0_);
	_tmp2_ = _tmp1_;
	sway_notification_center_notification_action_clicked (self, _tmp2_);
}

void
sway_notification_center_notification_click_alt_action (SwayNotificationCenterNotification* self,
                                                        guint index)
{
	GtkFlowBox* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	GtkWidget* button = NULL;
	gint i = 0;
	GtkWidget* _tmp15_;
	SwayNotificationCenterNotifyParams* _tmp18_;
	GArray* _tmp19_;
	GArray* _tmp20_;
	SwayNotificationCenterAction* _tmp21_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_tmp0_ = self->priv->alt_actions_box;
	_tmp1_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
	_tmp2_ = _tmp1_;
	if (!_tmp2_) {
		return;
	}
	button = NULL;
	i = 0;
	{
		GtkWidget* child = NULL;
		GtkFlowBox* _tmp3_;
		GtkWidget* _tmp4_;
		_tmp3_ = self->priv->alt_actions_box;
		_tmp4_ = gtk_widget_get_first_child (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
		child = _tmp4_;
		{
			gboolean _tmp5_ = FALSE;
			_tmp5_ = TRUE;
			while (TRUE) {
				GtkWidget* _tmp8_;
				GtkWidget* _tmp9_;
				GtkFlowBoxChild* f_child = NULL;
				GtkWidget* _tmp10_;
				gint _tmp14_;
				if (!_tmp5_) {
					GtkWidget* _tmp6_;
					GtkWidget* _tmp7_;
					_tmp6_ = child;
					_tmp7_ = gtk_widget_get_next_sibling (_tmp6_);
					child = _tmp7_;
				}
				_tmp5_ = FALSE;
				_tmp8_ = child;
				if (!(_tmp8_ != NULL)) {
					break;
				}
				_tmp9_ = child;
				if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, gtk_flow_box_child_get_type ())) {
					continue;
				}
				_tmp10_ = child;
				f_child = G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_flow_box_child_get_type (), GtkFlowBoxChild);
				if (((guint) i) == index) {
					GtkFlowBoxChild* _tmp11_;
					GtkWidget* _tmp12_;
					GtkWidget* _tmp13_;
					_tmp11_ = f_child;
					_tmp12_ = gtk_flow_box_child_get_child (_tmp11_);
					_tmp13_ = _tmp12_;
					button = _tmp13_;
					break;
				}
				_tmp14_ = i;
				i = _tmp14_ + 1;
			}
		}
	}
	_tmp15_ = button;
	if (_tmp15_ == NULL) {
		return;
	} else {
		GtkWidget* _tmp16_;
		_tmp16_ = button;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, gtk_button_get_type ())) {
			GtkWidget* _tmp17_;
			_tmp17_ = button;
			g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_button_get_type (), GtkButton), "clicked");
			return;
		}
	}
	_tmp18_ = self->priv->_param;
	_tmp19_ = sway_notification_center_notify_params_get_actions (_tmp18_);
	_tmp20_ = _tmp19_;
	_tmp21_ = g_array_index (_tmp20_, SwayNotificationCenterAction*, index);
	sway_notification_center_notification_action_clicked (self, _tmp21_);
}

static void
sway_notification_center_notification_action_clicked (SwayNotificationCenterNotification* self,
                                                      SwayNotificationCenterAction* action)
{
	SwayNotificationCenterNotiDaemon* _tmp0_;
	SwayNotificationCenterNotifyParams* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	SwayNotificationCenterNotifyParams* _tmp30_;
	gboolean _tmp31_;
	gboolean _tmp32_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	g_return_if_fail ((action == NULL) || SWAY_NOTIFICATION_CENTER_IS_ACTION (action));
	_tmp0_ = sway_notification_center_noti_daemon;
	_tmp1_ = self->priv->_param;
	sway_notification_center_noti_daemon_run_scripts (_tmp0_, _tmp1_, SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_ACTION);
	if (action != NULL) {
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		_tmp4_ = sway_notification_center_action_get_identifier (action);
		_tmp5_ = _tmp4_;
		_tmp3_ = _tmp5_ != NULL;
	} else {
		_tmp3_ = FALSE;
	}
	if (_tmp3_) {
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		_tmp6_ = sway_notification_center_action_get_identifier (action);
		_tmp7_ = _tmp6_;
		_tmp2_ = g_strcmp0 (_tmp7_, "") != 0;
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		gchar* token = NULL;
		SwayNotificationCenterSwaync* _tmp8_;
		XdgActivationHelper* _tmp9_;
		gchar* _tmp10_;
		const gchar* _tmp11_;
		SwayNotificationCenterNotiDaemon* _tmp17_;
		SwayNotificationCenterNotifyParams* _tmp18_;
		guint32 _tmp19_;
		guint32 _tmp20_;
		const gchar* _tmp21_;
		const gchar* _tmp22_;
		SwayNotificationCenterConfigModel* _tmp23_;
		SwayNotificationCenterConfigModel* _tmp24_;
		gboolean _tmp25_;
		gboolean _tmp26_;
		_tmp8_ = sway_notification_center_app;
		_tmp9_ = _tmp8_->xdg_activation;
		_tmp10_ = xdg_activation_helper_get_token (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
		token = _tmp10_;
		_tmp11_ = token;
		if (_tmp11_ != NULL) {
			SwayNotificationCenterNotiDaemon* _tmp12_;
			SwayNotificationCenterNotifyParams* _tmp13_;
			guint32 _tmp14_;
			guint32 _tmp15_;
			const gchar* _tmp16_;
			_tmp12_ = sway_notification_center_noti_daemon;
			_tmp13_ = self->priv->_param;
			_tmp14_ = sway_notification_center_notify_params_get_applied_id (_tmp13_);
			_tmp15_ = _tmp14_;
			_tmp16_ = token;
			g_signal_emit_by_name (_tmp12_, "activation-token", _tmp15_, _tmp16_);
		}
		_tmp17_ = sway_notification_center_noti_daemon;
		_tmp18_ = self->priv->_param;
		_tmp19_ = sway_notification_center_notify_params_get_applied_id (_tmp18_);
		_tmp20_ = _tmp19_;
		_tmp21_ = sway_notification_center_action_get_identifier (action);
		_tmp22_ = _tmp21_;
		g_signal_emit_by_name (_tmp17_, "action-invoked", _tmp20_, _tmp22_);
		_tmp23_ = sway_notification_center_config_model_get_instance ();
		_tmp24_ = _tmp23_;
		_tmp25_ = sway_notification_center_config_model_get_hide_on_action (_tmp24_);
		_tmp26_ = _tmp25_;
		if (_tmp26_) {
			{
				SwayNotificationCenterSwayncDaemon* _tmp27_;
				_tmp27_ = sway_notification_center_swaync_daemon;
				sway_notification_center_swaync_daemon_set_visibility (_tmp27_, FALSE, &_inner_error0_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					goto __catch0_g_error;
				}
			}
			goto __finally0;
			__catch0_g_error:
			{
				GError* e = NULL;
				GError* _tmp28_;
				const gchar* _tmp29_;
				e = _inner_error0_;
				_inner_error0_ = NULL;
				_tmp28_ = e;
				_tmp29_ = _tmp28_->message;
				g_critical ("notification.vala:478: Error: %s\n", _tmp29_);
				_g_error_free0 (e);
			}
			__finally0:
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_free0 (token);
				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;
			}
		}
		_g_free0 (token);
	}
	_tmp30_ = self->priv->_param;
	_tmp31_ = sway_notification_center_notify_params_get_resident (_tmp30_);
	_tmp32_ = _tmp31_;
	if (!_tmp32_) {
		sway_notification_center_notification_request_dismiss_notification (self, SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_DISMISSED, FALSE);
	}
}

static void
sway_notification_center_notification_set_style_urgency (SwayNotificationCenterNotification* self)
{
	IterBox* _tmp0_;
	IterBox* _tmp1_;
	IterBox* _tmp2_;
	SwayNotificationCenterNotifyParams* _tmp3_;
	SwayNotificationCenterUrgencyLevels _tmp4_;
	SwayNotificationCenterUrgencyLevels _tmp5_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_tmp0_ = self->priv->base_box;
	gtk_widget_remove_css_class (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), "low");
	_tmp1_ = self->priv->base_box;
	gtk_widget_remove_css_class (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), "normal");
	_tmp2_ = self->priv->base_box;
	gtk_widget_remove_css_class (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), "critical");
	_tmp3_ = self->priv->_param;
	_tmp4_ = sway_notification_center_notify_params_get_urgency (_tmp3_);
	_tmp5_ = _tmp4_;
	switch (_tmp5_) {
		case SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_LOW:
		{
			IterBox* _tmp6_;
			_tmp6_ = self->priv->base_box;
			gtk_widget_add_css_class (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), "low");
			break;
		}
		default:
		case SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_NORMAL:
		{
			IterBox* _tmp7_;
			_tmp7_ = self->priv->base_box;
			gtk_widget_add_css_class (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), "normal");
			break;
		}
		case SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_CRITICAL:
		{
			IterBox* _tmp8_;
			_tmp8_ = self->priv->base_box;
			gtk_widget_add_css_class (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), "critical");
			break;
		}
	}
}

static gboolean
__lambda34_ (SwayNotificationCenterNotification* self,
             GBinding* binding,
             GValue* srcval,
             GValue* targetval)
{
	GValue _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	gboolean result;
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (binding, G_TYPE_BINDING), FALSE);
	g_return_val_if_fail (srcval != NULL, FALSE);
	g_return_val_if_fail (targetval != NULL, FALSE);
	_tmp0_ = *srcval;
	_tmp1_ = string_strip (g_value_get_string (&_tmp0_));
	_tmp2_ = _tmp1_;
	_tmp3_ = strlen (_tmp2_);
	_tmp4_ = _tmp3_;
	g_value_set_boolean (targetval, _tmp4_ > 0);
	_g_free0 (_tmp2_);
	result = TRUE;
	return result;
}

static gboolean
___lambda34__gbinding_transform_func (GBinding* binding,
                                      GValue* from_value,
                                      GValue* to_value,
                                      gpointer self)
{
	gboolean result;
	result = __lambda34_ ((SwayNotificationCenterNotification*) self, binding, from_value, to_value);
	return result;
}

static void
sway_notification_center_notification_set_inline_reply (SwayNotificationCenterNotification* self)
{
	GtkBox* _tmp0_;
	gboolean _tmp1_ = FALSE;
	SwayNotificationCenterConfigModel* _tmp2_;
	SwayNotificationCenterConfigModel* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	SwayNotificationCenterNotifyParams* _tmp14_;
	SwayNotificationCenterAction* _tmp15_;
	SwayNotificationCenterAction* _tmp16_;
	GtkBox* _tmp17_;
	const gchar* _tmp18_ = NULL;
	SwayNotificationCenterNotifyParams* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	GtkEntry* _tmp22_;
	GtkEntry* _tmp23_;
	GtkButton* _tmp24_;
	const gchar* _tmp25_ = NULL;
	SwayNotificationCenterNotifyParams* _tmp26_;
	SwayNotificationCenterAction* _tmp27_;
	SwayNotificationCenterAction* _tmp28_;
	const gchar* _tmp29_;
	const gchar* _tmp30_;
	GtkButton* _tmp31_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_tmp0_ = self->priv->inline_reply_box;
	gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
	_tmp2_ = sway_notification_center_config_model_get_instance ();
	_tmp3_ = _tmp2_;
	_tmp4_ = sway_notification_center_config_model_get_notification_inline_replies (_tmp3_);
	_tmp5_ = _tmp4_;
	if (!_tmp5_) {
		_tmp1_ = TRUE;
	} else {
		gboolean _tmp6_ = FALSE;
		gboolean _tmp7_ = FALSE;
		SwayNotificationCenterConfigModel* _tmp8_;
		SwayNotificationCenterConfigModel* _tmp9_;
		gboolean _tmp10_;
		gboolean _tmp11_;
		_tmp8_ = sway_notification_center_config_model_get_instance ();
		_tmp9_ = _tmp8_;
		_tmp10_ = sway_notification_center_config_model_get_layer_shell (_tmp9_);
		_tmp11_ = _tmp10_;
		if (_tmp11_) {
			SwayNotificationCenterSwaync* _tmp12_;
			_tmp12_ = sway_notification_center_app;
			_tmp7_ = !_tmp12_->has_layer_on_demand;
		} else {
			_tmp7_ = FALSE;
		}
		if (_tmp7_) {
			SwayNotificationCenterNotificationType _tmp13_;
			_tmp13_ = self->priv->_notification_type;
			_tmp6_ = _tmp13_ == SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_FLOATING;
		} else {
			_tmp6_ = FALSE;
		}
		_tmp1_ = _tmp6_;
	}
	if (_tmp1_) {
		return;
	}
	_tmp14_ = self->priv->_param;
	_tmp15_ = sway_notification_center_notify_params_get_inline_reply (_tmp14_);
	_tmp16_ = _tmp15_;
	if (_tmp16_ == NULL) {
		return;
	}
	sway_notification_center_notification_set_has_inline_reply (self, TRUE);
	_tmp17_ = self->priv->inline_reply_box;
	gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget));
	_tmp19_ = self->priv->_param;
	_tmp20_ = sway_notification_center_notify_params_get_inline_reply_placeholder (_tmp19_);
	_tmp21_ = _tmp20_;
	_tmp18_ = _tmp21_;
	if (_tmp18_ == NULL) {
		_tmp18_ = "Enter Text";
	}
	_tmp22_ = self->priv->inline_reply_entry;
	gtk_entry_set_placeholder_text (_tmp22_, _tmp18_);
	_tmp23_ = self->priv->inline_reply_entry;
	_tmp24_ = self->priv->inline_reply_button;
	g_object_bind_property_with_closures (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, G_TYPE_OBJECT, GObject), "text", G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, G_TYPE_OBJECT, GObject), "sensitive", G_BINDING_SYNC_CREATE, (GClosure*) ((___lambda34__gbinding_transform_func == NULL) ? NULL : g_cclosure_new ((GCallback) ___lambda34__gbinding_transform_func, g_object_ref (self), (GClosureNotify) g_object_unref)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
	_tmp26_ = self->priv->_param;
	_tmp27_ = sway_notification_center_notify_params_get_inline_reply (_tmp26_);
	_tmp28_ = _tmp27_;
	_tmp29_ = sway_notification_center_action_get_text (_tmp28_);
	_tmp30_ = _tmp29_;
	_tmp25_ = _tmp30_;
	if (_tmp25_ == NULL) {
		_tmp25_ = "Reply";
	}
	_tmp31_ = self->priv->inline_reply_button;
	gtk_button_set_label (_tmp31_, _tmp25_);
}

static Block8Data*
block8_data_ref (Block8Data* _data8_)
{
	g_atomic_int_inc (&_data8_->_ref_count_);
	return _data8_;
}

static void
block8_data_unref (void * _userdata_)
{
	Block8Data* _data8_;
	_data8_ = (Block8Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data8_->_ref_count_)) {
		SwayNotificationCenterNotification* self;
		self = _data8_->self;
		_g_free0 (_data8_->code);
		_g_object_unref0 (self);
		g_slice_free (Block8Data, _data8_);
	}
}

static void
____lambda36_ (Block8Data* _data8_)
{
	SwayNotificationCenterNotification* self;
	GdkClipboard* _tmp0_;
	const gchar* _tmp1_;
	self = _data8_->self;
	_tmp0_ = gtk_widget_get_clipboard (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
	_tmp1_ = _data8_->code;
	gdk_clipboard_set_text (_tmp0_, _tmp1_);
	sway_notification_center_notification_action_clicked (self, NULL);
}

static void
_____lambda36__gtk_button_clicked (GtkButton* _sender,
                                   gpointer self)
{
	____lambda36_ (self);
}

static Block9Data*
block9_data_ref (Block9Data* _data9_)
{
	g_atomic_int_inc (&_data9_->_ref_count_);
	return _data9_;
}

static void
block9_data_unref (void * _userdata_)
{
	Block9Data* _data9_;
	_data9_ = (Block9Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data9_->_ref_count_)) {
		SwayNotificationCenterNotification* self;
		self = _data9_->_data8_->self;
		_g_object_unref0 (_data9_->action);
		block8_data_unref (_data9_->_data8_);
		_data9_->_data8_ = NULL;
		g_slice_free (Block9Data, _data9_);
	}
}

static void
_____lambda95_ (Block9Data* _data9_)
{
	Block8Data* _data8_;
	SwayNotificationCenterNotification* self;
	SwayNotificationCenterAction* _tmp0_;
	_data8_ = _data9_->_data8_;
	self = _data8_->self;
	_tmp0_ = _data9_->action;
	sway_notification_center_notification_action_clicked (self, _tmp0_);
}

static void
______lambda95__gtk_button_clicked (GtkButton* _sender,
                                    gpointer self)
{
	_____lambda95_ (self);
}

static void
sway_notification_center_notification_set_actions (SwayNotificationCenterNotification* self)
{
	Block8Data* _data8_;
	GtkFlowBox* _tmp0_;
	GtkFlowBox* _tmp9_;
	gchar* _tmp10_;
	gboolean _tmp11_ = FALSE;
	SwayNotificationCenterNotifyParams* _tmp12_;
	GArray* _tmp13_;
	GArray* _tmp14_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_data8_ = g_slice_new0 (Block8Data);
	_data8_->_ref_count_ = 1;
	_data8_->self = g_object_ref (self);
	_tmp0_ = self->priv->alt_actions_box;
	gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), FALSE);
	{
		GtkWidget* child = NULL;
		GtkFlowBox* _tmp1_;
		GtkWidget* _tmp2_;
		_tmp1_ = self->priv->alt_actions_box;
		_tmp2_ = gtk_widget_get_first_child (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
		child = _tmp2_;
		{
			gboolean _tmp3_ = FALSE;
			_tmp3_ = TRUE;
			while (TRUE) {
				GtkWidget* _tmp6_;
				GtkFlowBox* _tmp7_;
				GtkWidget* _tmp8_;
				if (!_tmp3_) {
					GtkFlowBox* _tmp4_;
					GtkWidget* _tmp5_;
					_tmp4_ = self->priv->alt_actions_box;
					_tmp5_ = gtk_widget_get_first_child (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
					child = _tmp5_;
				}
				_tmp3_ = FALSE;
				_tmp6_ = child;
				if (!(_tmp6_ != NULL)) {
					break;
				}
				_tmp7_ = self->priv->alt_actions_box;
				_tmp8_ = child;
				gtk_flow_box_remove (_tmp7_, _tmp8_);
			}
		}
	}
	_tmp9_ = self->priv->alt_actions_box;
	gtk_flow_box_set_max_children_per_line (_tmp9_, (guint) 1);
	_tmp10_ = sway_notification_center_notification_parse_body_codes (self);
	_data8_->code = _tmp10_;
	_tmp12_ = self->priv->_param;
	_tmp13_ = sway_notification_center_notify_params_get_actions (_tmp12_);
	_tmp14_ = _tmp13_;
	if (_tmp14_->len > ((guint) 0)) {
		_tmp11_ = TRUE;
	} else {
		const gchar* _tmp15_;
		_tmp15_ = _data8_->code;
		_tmp11_ = _tmp15_ != NULL;
	}
	if (_tmp11_) {
		GtkFlowBox* _tmp16_;
		gboolean _tmp17_ = FALSE;
		const gchar* _tmp18_;
		gint max_children_per_line = 0;
		SwayNotificationCenterNotifyParams* _tmp35_;
		GArray* _tmp36_;
		GArray* _tmp37_;
		gpointer* _tmp38_;
		gint _tmp38__length1;
		GtkFlowBox* _tmp53_;
		_tmp16_ = self->priv->alt_actions_box;
		gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), TRUE);
		_tmp18_ = _data8_->code;
		if (_tmp18_ != NULL) {
			const gchar* _tmp19_;
			gint _tmp20_;
			gint _tmp21_;
			_tmp19_ = _data8_->code;
			_tmp20_ = strlen (_tmp19_);
			_tmp21_ = _tmp20_;
			_tmp17_ = _tmp21_ > 0;
		} else {
			_tmp17_ = FALSE;
		}
		if (_tmp17_) {
			GtkFlowBoxChild* flowbox_child = NULL;
			GtkFlowBoxChild* _tmp22_;
			GtkFlowBoxChild* _tmp23_;
			GtkFlowBox* _tmp24_;
			GtkFlowBoxChild* _tmp25_;
			GtkButton* action_button = NULL;
			const gchar* _tmp26_;
			gchar* _tmp27_;
			gchar* _tmp28_;
			GtkButton* _tmp29_;
			GtkButton* _tmp30_;
			GtkButton* _tmp31_;
			GtkButton* _tmp32_;
			GtkFlowBoxChild* _tmp33_;
			GtkButton* _tmp34_;
			_tmp22_ = (GtkFlowBoxChild*) gtk_flow_box_child_new ();
			if (_tmp22_) {
				g_object_set_data ((GObject *) _tmp22_, "vala-creation-function", "SwayNotificationCenter.Notification.set_actions");
			}
			g_object_ref_sink (_tmp22_);
			flowbox_child = _tmp22_;
			_tmp23_ = flowbox_child;
			gtk_widget_add_css_class (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget), "notification-action");
			_tmp24_ = self->priv->alt_actions_box;
			_tmp25_ = flowbox_child;
			gtk_flow_box_append (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget));
			_tmp26_ = _data8_->code;
			_tmp27_ = g_strdup_printf ("COPY \"%s\"", _tmp26_);
			_tmp28_ = _tmp27_;
			_tmp29_ = (GtkButton*) gtk_button_new_with_label (_tmp28_);
			if (_tmp29_) {
				g_object_set_data ((GObject *) _tmp29_, "vala-creation-function", "SwayNotificationCenter.Notification.set_actions");
			}
			g_object_ref_sink (_tmp29_);
			_tmp30_ = _tmp29_;
			_g_free0 (_tmp28_);
			action_button = _tmp30_;
			_tmp31_ = action_button;
			g_signal_connect_data (_tmp31_, "clicked", (GCallback) _____lambda36__gtk_button_clicked, block8_data_ref (_data8_), (GClosureNotify) block8_data_unref, 0);
			_tmp32_ = action_button;
			gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget), FALSE);
			_tmp33_ = flowbox_child;
			_tmp34_ = action_button;
			gtk_flow_box_child_set_child (_tmp33_, G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget));
			_g_object_unref0 (action_button);
			_g_object_unref0 (flowbox_child);
		}
		max_children_per_line = 0;
		_tmp35_ = self->priv->_param;
		_tmp36_ = sway_notification_center_notify_params_get_actions (_tmp35_);
		_tmp37_ = _tmp36_;
		_tmp38_ = _tmp37_->data;
		_tmp38__length1 = _tmp37_->len;
		{
			SwayNotificationCenterAction** action_collection = NULL;
			gint action_collection_length1 = 0;
			gint _action_collection_size_ = 0;
			gint action_it = 0;
			action_collection = _tmp38_;
			action_collection_length1 = _tmp38__length1;
			for (action_it = 0; action_it < action_collection_length1; action_it = action_it + 1) {
				SwayNotificationCenterAction* _tmp39_;
				SwayNotificationCenterAction* action = NULL;
				_tmp39_ = _g_object_ref0 (action_collection[action_it]);
				action = _tmp39_;
				{
					Block9Data* _data9_;
					gint _tmp40_;
					GtkFlowBoxChild* flowbox_child = NULL;
					GtkFlowBoxChild* _tmp41_;
					GtkFlowBoxChild* _tmp42_;
					GtkFlowBox* _tmp43_;
					GtkFlowBoxChild* _tmp44_;
					GtkButton* action_button = NULL;
					SwayNotificationCenterAction* _tmp45_;
					const gchar* _tmp46_;
					const gchar* _tmp47_;
					GtkButton* _tmp48_;
					GtkButton* _tmp49_;
					GtkButton* _tmp50_;
					GtkFlowBoxChild* _tmp51_;
					GtkButton* _tmp52_;
					_data9_ = g_slice_new0 (Block9Data);
					_data9_->_ref_count_ = 1;
					_data9_->_data8_ = block8_data_ref (_data8_);
					_data9_->action = action;
					_tmp40_ = max_children_per_line;
					max_children_per_line = _tmp40_ + 1;
					_tmp41_ = (GtkFlowBoxChild*) gtk_flow_box_child_new ();
					if (_tmp41_) {
						g_object_set_data ((GObject *) _tmp41_, "vala-creation-function", "SwayNotificationCenter.Notification.set_actions");
					}
					g_object_ref_sink (_tmp41_);
					flowbox_child = _tmp41_;
					_tmp42_ = flowbox_child;
					gtk_widget_add_css_class (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_widget_get_type (), GtkWidget), "notification-action");
					_tmp43_ = self->priv->alt_actions_box;
					_tmp44_ = flowbox_child;
					gtk_flow_box_append (_tmp43_, G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, gtk_widget_get_type (), GtkWidget));
					_tmp45_ = _data9_->action;
					_tmp46_ = sway_notification_center_action_get_text (_tmp45_);
					_tmp47_ = _tmp46_;
					_tmp48_ = (GtkButton*) gtk_button_new_with_label (_tmp47_);
					if (_tmp48_) {
						g_object_set_data ((GObject *) _tmp48_, "vala-creation-function", "SwayNotificationCenter.Notification.set_actions");
					}
					g_object_ref_sink (_tmp48_);
					action_button = _tmp48_;
					_tmp49_ = action_button;
					g_signal_connect_data (_tmp49_, "clicked", (GCallback) ______lambda95__gtk_button_clicked, block9_data_ref (_data9_), (GClosureNotify) block9_data_unref, 0);
					_tmp50_ = action_button;
					gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_widget_get_type (), GtkWidget), FALSE);
					_tmp51_ = flowbox_child;
					_tmp52_ = action_button;
					gtk_flow_box_child_set_child (_tmp51_, G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, gtk_widget_get_type (), GtkWidget));
					_g_object_unref0 (action_button);
					_g_object_unref0 (flowbox_child);
					block9_data_unref (_data9_);
					_data9_ = NULL;
				}
			}
		}
		_tmp53_ = self->priv->alt_actions_box;
		gtk_flow_box_set_max_children_per_line (_tmp53_, (guint) CLAMP (max_children_per_line, 1, 7));
	}
	block8_data_unref (_data8_);
	_data8_ = NULL;
}

void
sway_notification_center_notification_set_time (SwayNotificationCenterNotification* self)
{
	SwayNotificationCenterConfigModel* _tmp0_;
	SwayNotificationCenterConfigModel* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_tmp0_ = sway_notification_center_config_model_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = sway_notification_center_config_model_get_relative_timestamps (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		GtkLabel* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		_tmp4_ = self->priv->time;
		_tmp5_ = sway_notification_center_notification_get_relative_time (self);
		_tmp6_ = _tmp5_;
		gtk_label_set_text (_tmp4_, _tmp6_);
		_g_free0 (_tmp6_);
	} else {
		GtkLabel* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp7_ = self->priv->time;
		_tmp8_ = sway_notification_center_notification_get_iso8601_time (self);
		_tmp9_ = _tmp8_;
		gtk_label_set_text (_tmp7_, _tmp9_);
		_g_free0 (_tmp9_);
	}
}

static gchar*
double_to_string (gdouble self)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint _tmp1__length1;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
	_tmp0_ = g_new0 (gchar, G_ASCII_DTOSTR_BUF_SIZE);
	_tmp1_ = _tmp0_;
	_tmp1__length1 = G_ASCII_DTOSTR_BUF_SIZE;
	_tmp2_ = g_ascii_dtostr (_tmp1_, (gint) G_ASCII_DTOSTR_BUF_SIZE, self);
	_tmp3_ = g_strdup (_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp1_ = (g_free (_tmp1_), NULL);
	result = _tmp4_;
	return result;
}

static gchar*
sway_notification_center_notification_get_relative_time (SwayNotificationCenterNotification* self)
{
	gchar* value = NULL;
	gchar* _tmp0_;
	gdouble diff = 0.0;
	SwayNotificationCenterNotifyParams* _tmp1_;
	gint64 _tmp2_;
	gint64 _tmp3_;
	gdouble secs = 0.0;
	gdouble hours = 0.0;
	gdouble days = 0.0;
	gchar* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), NULL);
	_tmp0_ = g_strdup ("");
	value = _tmp0_;
	_tmp1_ = self->priv->_param;
	_tmp2_ = sway_notification_center_notify_params_get_time (_tmp1_);
	_tmp3_ = _tmp2_;
	diff = (g_get_real_time () * 0.000001) - _tmp3_;
	secs = diff / 60;
	hours = secs / 60;
	days = hours / 24;
	if (secs < ((gdouble) 1)) {
		gchar* _tmp4_;
		_tmp4_ = g_strdup ("Now");
		_g_free0 (value);
		value = _tmp4_;
	} else {
		gboolean _tmp5_ = FALSE;
		if (secs >= ((gdouble) 1)) {
			_tmp5_ = hours < ((gdouble) 1);
		} else {
			_tmp5_ = FALSE;
		}
		if (_tmp5_) {
			gdouble val = 0.0;
			gchar* _tmp6_;
			gchar* _tmp7_;
			gchar* _tmp8_;
			const gchar* _tmp11_;
			gchar* _tmp12_;
			val = floor (secs);
			_tmp6_ = double_to_string (val);
			_tmp7_ = _tmp6_;
			_tmp8_ = g_strconcat (_tmp7_, " min", NULL);
			_g_free0 (value);
			value = _tmp8_;
			_g_free0 (_tmp7_);
			if (val > ((gdouble) 1)) {
				const gchar* _tmp9_;
				gchar* _tmp10_;
				_tmp9_ = value;
				_tmp10_ = g_strconcat (_tmp9_, "s", NULL);
				_g_free0 (value);
				value = _tmp10_;
			}
			_tmp11_ = value;
			_tmp12_ = g_strconcat (_tmp11_, " ago", NULL);
			_g_free0 (value);
			value = _tmp12_;
		} else {
			gboolean _tmp13_ = FALSE;
			if (hours >= ((gdouble) 1)) {
				_tmp13_ = hours < ((gdouble) 24);
			} else {
				_tmp13_ = FALSE;
			}
			if (_tmp13_) {
				gdouble val = 0.0;
				gchar* _tmp14_;
				gchar* _tmp15_;
				gchar* _tmp16_;
				const gchar* _tmp19_;
				gchar* _tmp20_;
				val = floor (hours);
				_tmp14_ = double_to_string (val);
				_tmp15_ = _tmp14_;
				_tmp16_ = g_strconcat (_tmp15_, " hour", NULL);
				_g_free0 (value);
				value = _tmp16_;
				_g_free0 (_tmp15_);
				if (val > ((gdouble) 1)) {
					const gchar* _tmp17_;
					gchar* _tmp18_;
					_tmp17_ = value;
					_tmp18_ = g_strconcat (_tmp17_, "s", NULL);
					_g_free0 (value);
					value = _tmp18_;
				}
				_tmp19_ = value;
				_tmp20_ = g_strconcat (_tmp19_, " ago", NULL);
				_g_free0 (value);
				value = _tmp20_;
			} else {
				gdouble val = 0.0;
				gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				const gchar* _tmp26_;
				gchar* _tmp27_;
				val = floor (days);
				_tmp21_ = double_to_string (val);
				_tmp22_ = _tmp21_;
				_tmp23_ = g_strconcat (_tmp22_, " day", NULL);
				_g_free0 (value);
				value = _tmp23_;
				_g_free0 (_tmp22_);
				if (val > ((gdouble) 1)) {
					const gchar* _tmp24_;
					gchar* _tmp25_;
					_tmp24_ = value;
					_tmp25_ = g_strconcat (_tmp24_, "s", NULL);
					_g_free0 (value);
					value = _tmp25_;
				}
				_tmp26_ = value;
				_tmp27_ = g_strconcat (_tmp26_, " ago", NULL);
				_g_free0 (value);
				value = _tmp27_;
			}
		}
	}
	result = value;
	return result;
}

static gchar*
sway_notification_center_notification_get_iso8601_time (SwayNotificationCenterNotification* self)
{
	GDateTime* dtime = NULL;
	SwayNotificationCenterNotifyParams* _tmp0_;
	gint64 _tmp1_;
	gint64 _tmp2_;
	GDateTime* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), NULL);
	_tmp0_ = self->priv->_param;
	_tmp1_ = sway_notification_center_notify_params_get_time (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_date_time_new_from_unix_local (_tmp2_);
	dtime = _tmp3_;
	_tmp4_ = g_date_time_format_iso8601 (dtime);
	result = _tmp4_;
	_g_date_time_unref0 (dtime);
	return result;
}

void
sway_notification_center_notification_request_dismiss_notification (SwayNotificationCenterNotification* self,
                                                                    SwayNotificationCenterClosedReasons reason,
                                                                    gboolean by_swipe)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	sway_notification_center_notification_remove_noti_timeout (self);
	{
		gboolean _tmp0_;
		_tmp0_ = self->priv->_dismissed;
		g_rec_mutex_lock (&self->priv->__lock_dismissed);
		{
			gboolean _tmp1_;
			SwayNotificationCenterNotiDaemon* _tmp3_;
			SwayNotificationCenterNotifyParams* _tmp4_;
			_tmp1_ = self->priv->_dismissed;
			if (_tmp1_) {
				g_debug ("notification.vala:650: Trying to dismiss already dismissed notificatio" \
"n. Skipping...");
				{
					gboolean _tmp2_;
					_tmp2_ = self->priv->_dismissed;
					g_rec_mutex_unlock (&self->priv->__lock_dismissed);
				}
				return;
			}
			sway_notification_center_notification_set_dismissed_by_swipe (self, by_swipe);
			sway_notification_center_notification_set_dismissed (self, TRUE);
			_tmp3_ = sway_notification_center_noti_daemon;
			_tmp4_ = self->priv->_param;
			sway_notification_center_noti_daemon_request_dismiss_notification (_tmp3_, _tmp4_, reason);
		}
		__finally0:
		{
			gboolean _tmp5_;
			_tmp5_ = self->priv->_dismissed;
			g_rec_mutex_unlock (&self->priv->__lock_dismissed);
		}
		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
sway_notification_center_notification_remove_notification_data_free (gpointer _data)
{
	SwayNotificationCenterNotificationRemoveNotificationData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (SwayNotificationCenterNotificationRemoveNotificationData, _data_);
}

void
sway_notification_center_notification_remove_notification (SwayNotificationCenterNotification* self,
                                                           gboolean animated,
                                                           GAsyncReadyCallback _callback_,
                                                           gpointer _user_data_)
{
	SwayNotificationCenterNotificationRemoveNotificationData* _data_;
	SwayNotificationCenterNotification* _tmp0_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_data_ = g_slice_new0 (SwayNotificationCenterNotificationRemoveNotificationData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, sway_notification_center_notification_remove_notification_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_data_->animated = animated;
	sway_notification_center_notification_remove_notification_co (_data_);
}

void
sway_notification_center_notification_remove_notification_finish (SwayNotificationCenterNotification* self,
                                                                  GAsyncResult* _res_)
{
	SwayNotificationCenterNotificationRemoveNotificationData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static Block10Data*
block10_data_ref (Block10Data* _data10_)
{
	g_atomic_int_inc (&_data10_->_ref_count_);
	return _data10_;
}

static void
block10_data_unref (void * _userdata_)
{
	Block10Data* _data10_;
	_data10_ = (Block10Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data10_->_ref_count_)) {
		SwayNotificationCenterNotification* self;
		self = _data10_->self;
		_g_object_unref0 (self);
		g_slice_free (Block10Data, _data10_);
	}
}

static Block11Data*
block11_data_ref (Block11Data* _data11_)
{
	g_atomic_int_inc (&_data11_->_ref_count_);
	return _data11_;
}

static void
block11_data_unref (void * _userdata_)
{
	Block11Data* _data11_;
	_data11_ = (Block11Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data11_->_ref_count_)) {
		SwayNotificationCenterNotification* self;
		self = _data11_->_data10_->self;
		block10_data_unref (_data11_->_data10_);
		_data11_->_data10_ = NULL;
		g_slice_free (Block11Data, _data11_);
	}
}

static void
____lambda93_ (Block11Data* _data11_)
{
	Block10Data* _data10_;
	SwayNotificationCenterNotification* self;
	GtkRevealer* _tmp0_;
	_data10_ = _data11_->_data10_;
	self = _data10_->self;
	_tmp0_ = self->priv->revealer;
	g_signal_handler_disconnect (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _data11_->id);
	sway_notification_center_notification_remove_notification_co (_data10_->_async_data_);
}

static void
_____lambda93__g_object_notify (GObject* _sender,
                                GParamSpec* pspec,
                                gpointer self)
{
	____lambda93_ (self);
}

static gboolean
sway_notification_center_notification_remove_notification_co (SwayNotificationCenterNotificationRemoveNotificationData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_data10_ = g_slice_new0 (Block10Data);
	_data_->_data10_->_ref_count_ = 1;
	_data_->_data10_->self = g_object_ref (_data_->self);
	_data_->_data10_->_async_data_ = _data_;
	_data_->_tmp1_ = _data_->self->priv->_dismissed_by_swipe;
	if (!_data_->_tmp1_) {
		_data_->_tmp0_ = gtk_widget_get_mapped (G_TYPE_CHECK_INSTANCE_CAST (_data_->self, gtk_widget_get_type (), GtkWidget));
	} else {
		_data_->_tmp0_ = FALSE;
	}
	_data_->animated = _data_->animated & _data_->_tmp0_;
	{
		_data_->_tmp2_ = _data_->self->priv->_dismissed;
		g_rec_mutex_lock (&_data_->self->priv->__lock_dismissed);
		{
			_data_->_tmp3_ = _data_->self->priv->_dismissed;
			if (!_data_->_tmp3_) {
				{
					_data_->_tmp4_ = _data_->self->priv->_dismissed;
					g_rec_mutex_unlock (&_data_->self->priv->__lock_dismissed);
				}
				block10_data_unref (_data_->_data10_);
				_data_->_data10_ = NULL;
				g_task_return_pointer (_data_->_async_result, _data_, NULL);
				if (_data_->_state_ != 0) {
					while (!g_task_get_completed (_data_->_async_result)) {
						g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
					}
				}
				g_object_unref (_data_->_async_result);
				return FALSE;
			}
			sway_notification_center_notification_remove_noti_timeout (_data_->self);
			if (_data_->animated) {
				_data_->_tmp6_ = _data_->self->priv->revealer;
				_data_->_tmp7_ = gtk_revealer_get_child_revealed (_data_->_tmp6_);
				_data_->_tmp8_ = _data_->_tmp7_;
				_data_->_tmp5_ = _data_->_tmp8_;
			} else {
				_data_->_tmp5_ = FALSE;
			}
			if (_data_->_tmp5_) {
				_data_->_data11_ = g_slice_new0 (Block11Data);
				_data_->_data11_->_ref_count_ = 1;
				_data_->_data11_->_data10_ = block10_data_ref (_data_->_data10_);
				_data_->_data11_->id = (gulong) 0;
				_data_->_tmp9_ = _data_->self->priv->revealer;
				_data_->_tmp10_ = g_signal_connect_data (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp9_, G_TYPE_OBJECT, GObject), "notify::child-revealed", (GCallback) _____lambda93__g_object_notify, block11_data_ref (_data_->_data11_), (GClosureNotify) block11_data_unref, 0);
				_data_->_data11_->id = _data_->_tmp10_;
				_data_->_tmp11_ = _data_->self->priv->revealer;
				gtk_revealer_set_reveal_child (_data_->_tmp11_, FALSE);
				_data_->_state_ = 1;
				return FALSE;
				_state_1:
				;
				block11_data_unref (_data_->_data11_);
				_data_->_data11_ = NULL;
			}
		}
		__finally0:
		{
			_data_->_tmp12_ = _data_->self->priv->_dismissed;
			g_rec_mutex_unlock (&_data_->self->priv->__lock_dismissed);
		}
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			block10_data_unref (_data_->_data10_);
			_data_->_data10_ = NULL;
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
			g_clear_error (&_data_->_inner_error0_);
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
	}
	block10_data_unref (_data_->_data10_);
	_data_->_data10_ = NULL;
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

void
sway_notification_center_notification_replace_notification (SwayNotificationCenterNotification* self,
                                                            SwayNotificationCenterNotifyParams* new_params)
{
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS (new_params));
	sway_notification_center_notification_set_param (self, new_params);
	sway_notification_center_notification_build_noti (self);
}

static void
sway_notification_center_notification_set_icon (SwayNotificationCenterNotification* self)
{
	GtkImage* _tmp0_;
	GtkImage* _tmp1_;
	GtkImage* _tmp2_;
	GtkImage* _tmp3_;
	GIcon* app_icon_name = NULL;
	gchar* app_icon_uri = NULL;
	SwayNotificationCenterNotifyParams* _tmp4_;
	GDesktopAppInfo* _tmp5_;
	GDesktopAppInfo* _tmp6_;
	gboolean _tmp12_ = FALSE;
	SwayNotificationCenterNotifyParams* _tmp13_;
	const gchar* _tmp14_;
	const gchar* _tmp15_;
	SwayNotificationCenterImageVisibility image_visibility = 0;
	SwayNotificationCenterConfigModel* _tmp23_;
	SwayNotificationCenterConfigModel* _tmp24_;
	SwayNotificationCenterImageVisibility _tmp25_;
	SwayNotificationCenterImageVisibility _tmp26_;
	gint notification_icon_size = 0;
	SwayNotificationCenterConfigModel* _tmp29_;
	SwayNotificationCenterConfigModel* _tmp30_;
	gint _tmp31_;
	gint _tmp32_;
	GtkImage* _tmp33_;
	GtkImage* _tmp34_;
	GtkImage* _tmp35_;
	gint app_icon_size = 0;
	GtkImage* _tmp36_;
	gboolean img_path_is_theme_icon = FALSE;
	const gchar* _tmp37_ = NULL;
	SwayNotificationCenterNotifyParams* _tmp38_;
	const gchar* _tmp39_;
	const gchar* _tmp40_;
	gboolean img_path_exists = FALSE;
	GFile* _tmp41_;
	GFile* _tmp42_;
	gboolean _tmp43_;
	gboolean _tmp44_ = FALSE;
	SwayNotificationCenterNotifyParams* _tmp45_;
	const gchar* _tmp46_;
	const gchar* _tmp47_;
	const gchar* _tmp60_ = NULL;
	const gchar* _tmp61_;
	gboolean app_icon_exists = FALSE;
	GFile* _tmp62_;
	GFile* _tmp63_;
	gboolean _tmp64_;
	gboolean _tmp65_ = FALSE;
	const gchar* _tmp66_;
	SwayNotificationCenterNotifyParams* _tmp71_;
	SwayNotificationCenterImageData _tmp72_ = {0};
	SwayNotificationCenterImageData _tmp73_;
	GtkImage* _tmp98_;
	GtkImageType _tmp99_;
	GtkImageType _tmp100_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_tmp0_ = self->priv->img;
	gtk_image_clear (_tmp0_);
	_tmp1_ = self->priv->img;
	gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), TRUE);
	_tmp2_ = self->priv->img_app_icon;
	gtk_image_clear (_tmp2_);
	_tmp3_ = self->priv->img_app_icon;
	gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), TRUE);
	app_icon_name = NULL;
	app_icon_uri = NULL;
	_tmp4_ = self->priv->_param;
	_tmp5_ = sway_notification_center_notify_params_get_desktop_app_info (_tmp4_);
	_tmp6_ = _tmp5_;
	if (_tmp6_ != NULL) {
		SwayNotificationCenterNotifyParams* _tmp7_;
		GDesktopAppInfo* _tmp8_;
		GDesktopAppInfo* _tmp9_;
		GIcon* _tmp10_;
		GIcon* _tmp11_;
		_tmp7_ = self->priv->_param;
		_tmp8_ = sway_notification_center_notify_params_get_desktop_app_info (_tmp7_);
		_tmp9_ = _tmp8_;
		_tmp10_ = g_app_info_get_icon (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, g_app_info_get_type (), GAppInfo));
		_tmp11_ = _g_object_ref0 (_tmp10_);
		_g_object_unref0 (app_icon_name);
		app_icon_name = _tmp11_;
	}
	_tmp13_ = self->priv->_param;
	_tmp14_ = sway_notification_center_notify_params_get_app_icon (_tmp13_);
	_tmp15_ = _tmp14_;
	if (_tmp15_ != NULL) {
		SwayNotificationCenterNotifyParams* _tmp16_;
		const gchar* _tmp17_;
		const gchar* _tmp18_;
		_tmp16_ = self->priv->_param;
		_tmp17_ = sway_notification_center_notify_params_get_app_icon (_tmp16_);
		_tmp18_ = _tmp17_;
		_tmp12_ = g_strcmp0 (_tmp18_, "") != 0;
	} else {
		_tmp12_ = FALSE;
	}
	if (_tmp12_) {
		SwayNotificationCenterNotifyParams* _tmp19_;
		const gchar* _tmp20_;
		const gchar* _tmp21_;
		gchar* _tmp22_;
		_tmp19_ = self->priv->_param;
		_tmp20_ = sway_notification_center_notify_params_get_app_icon (_tmp19_);
		_tmp21_ = _tmp20_;
		_tmp22_ = g_strdup (_tmp21_);
		_g_free0 (app_icon_uri);
		app_icon_uri = _tmp22_;
	}
	_tmp23_ = sway_notification_center_config_model_get_instance ();
	_tmp24_ = _tmp23_;
	_tmp25_ = sway_notification_center_config_model_get_image_visibility (_tmp24_);
	_tmp26_ = _tmp25_;
	image_visibility = _tmp26_;
	if (image_visibility == SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_NEVER) {
		GtkImage* _tmp27_;
		GtkImage* _tmp28_;
		_tmp27_ = self->priv->img;
		gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), FALSE);
		_tmp28_ = self->priv->img_app_icon;
		gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget), FALSE);
		_g_free0 (app_icon_uri);
		_g_object_unref0 (app_icon_name);
		return;
	}
	_tmp29_ = sway_notification_center_config_model_get_instance ();
	_tmp30_ = _tmp29_;
	_tmp31_ = sway_notification_center_config_model_get_notification_icon_size (_tmp30_);
	_tmp32_ = _tmp31_;
	notification_icon_size = CLAMP (_tmp32_, -1, G_MAXINT);
	if (notification_icon_size < 1) {
		notification_icon_size = -1;
	}
	_tmp33_ = self->priv->img;
	gtk_image_set_pixel_size (_tmp33_, notification_icon_size);
	_tmp34_ = self->priv->img;
	g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget), "height-request", notification_icon_size, NULL);
	_tmp35_ = self->priv->img;
	g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_widget_get_type (), GtkWidget), "width-request", notification_icon_size, NULL);
	app_icon_size = CLAMP (notification_icon_size / 3, -1, G_MAXINT);
	if (app_icon_size < 1) {
		app_icon_size = -1;
	}
	_tmp36_ = self->priv->img_app_icon;
	gtk_image_set_pixel_size (_tmp36_, app_icon_size);
	img_path_is_theme_icon = FALSE;
	_tmp38_ = self->priv->_param;
	_tmp39_ = sway_notification_center_notify_params_get_image_path (_tmp38_);
	_tmp40_ = _tmp39_;
	_tmp37_ = _tmp40_;
	if (_tmp37_ == NULL) {
		_tmp37_ = "";
	}
	_tmp41_ = g_file_new_for_uri (_tmp37_);
	_tmp42_ = _tmp41_;
	_tmp43_ = g_file_query_exists (_tmp42_, NULL);
	_g_object_unref0 (_tmp42_);
	img_path_exists = _tmp43_;
	_tmp45_ = self->priv->_param;
	_tmp46_ = sway_notification_center_notify_params_get_image_path (_tmp45_);
	_tmp47_ = _tmp46_;
	if (_tmp47_ != NULL) {
		_tmp44_ = !img_path_exists;
	} else {
		_tmp44_ = FALSE;
	}
	if (_tmp44_) {
		const gchar* _tmp48_ = NULL;
		SwayNotificationCenterNotifyParams* _tmp49_;
		const gchar* _tmp50_;
		const gchar* _tmp51_;
		GFile* _tmp52_;
		GFile* _tmp53_;
		_tmp49_ = self->priv->_param;
		_tmp50_ = sway_notification_center_notify_params_get_image_path (_tmp49_);
		_tmp51_ = _tmp50_;
		_tmp48_ = _tmp51_;
		if (_tmp48_ == NULL) {
			_tmp48_ = "";
		}
		_tmp52_ = g_file_new_for_path (_tmp48_);
		_tmp53_ = _tmp52_;
		img_path_exists = g_file_query_exists (_tmp53_, NULL);
		_g_object_unref0 (_tmp53_);
		if (!img_path_exists) {
			GtkIconTheme* icon_theme = NULL;
			GdkDisplay* _tmp54_;
			GtkIconTheme* _tmp55_;
			GtkIconTheme* _tmp56_;
			SwayNotificationCenterNotifyParams* _tmp57_;
			const gchar* _tmp58_;
			const gchar* _tmp59_;
			_tmp54_ = gtk_widget_get_display (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
			_tmp55_ = gtk_icon_theme_get_for_display (_tmp54_);
			icon_theme = _tmp55_;
			_tmp56_ = icon_theme;
			_tmp57_ = self->priv->_param;
			_tmp58_ = sway_notification_center_notify_params_get_image_path (_tmp57_);
			_tmp59_ = _tmp58_;
			img_path_exists = gtk_icon_theme_has_icon (_tmp56_, _tmp59_);
			img_path_is_theme_icon = img_path_exists;
		}
	}
	_tmp61_ = app_icon_uri;
	_tmp60_ = _tmp61_;
	if (_tmp60_ == NULL) {
		_tmp60_ = "";
	}
	_tmp62_ = g_file_new_for_uri (_tmp60_);
	_tmp63_ = _tmp62_;
	_tmp64_ = g_file_query_exists (_tmp63_, NULL);
	_g_object_unref0 (_tmp63_);
	app_icon_exists = _tmp64_;
	_tmp66_ = app_icon_uri;
	if (_tmp66_ != NULL) {
		_tmp65_ = !app_icon_exists;
	} else {
		_tmp65_ = FALSE;
	}
	if (_tmp65_) {
		const gchar* _tmp67_ = NULL;
		const gchar* _tmp68_;
		GFile* _tmp69_;
		GFile* _tmp70_;
		_tmp68_ = app_icon_uri;
		_tmp67_ = _tmp68_;
		if (_tmp67_ == NULL) {
			_tmp67_ = "";
		}
		_tmp69_ = g_file_new_for_path (_tmp67_);
		_tmp70_ = _tmp69_;
		app_icon_exists = g_file_query_exists (_tmp70_, NULL);
		_g_object_unref0 (_tmp70_);
	}
	_tmp71_ = self->priv->_param;
	sway_notification_center_notify_params_get_image_data (_tmp71_, &_tmp72_);
	_tmp73_ = _tmp72_;
	if (_tmp73_.is_initialized) {
		SwayNotificationCenterNotifyParams* _tmp74_;
		SwayNotificationCenterImageData _tmp75_ = {0};
		SwayNotificationCenterImageData _tmp76_;
		GtkImage* _tmp77_;
		_tmp74_ = self->priv->_param;
		sway_notification_center_notify_params_get_image_data (_tmp74_, &_tmp75_);
		_tmp76_ = _tmp75_;
		_tmp77_ = self->priv->img;
		sway_notification_center_functions_set_image_data (&_tmp76_, _tmp77_);
	} else {
		gboolean _tmp78_ = FALSE;
		gboolean _tmp79_ = FALSE;
		SwayNotificationCenterNotifyParams* _tmp80_;
		const gchar* _tmp81_;
		const gchar* _tmp82_;
		_tmp80_ = self->priv->_param;
		_tmp81_ = sway_notification_center_notify_params_get_image_path (_tmp80_);
		_tmp82_ = _tmp81_;
		if (_tmp82_ != NULL) {
			SwayNotificationCenterNotifyParams* _tmp83_;
			const gchar* _tmp84_;
			const gchar* _tmp85_;
			_tmp83_ = self->priv->_param;
			_tmp84_ = sway_notification_center_notify_params_get_image_path (_tmp83_);
			_tmp85_ = _tmp84_;
			_tmp79_ = g_strcmp0 (_tmp85_, "") != 0;
		} else {
			_tmp79_ = FALSE;
		}
		if (_tmp79_) {
			_tmp78_ = img_path_exists;
		} else {
			_tmp78_ = FALSE;
		}
		if (_tmp78_) {
			SwayNotificationCenterNotifyParams* _tmp86_;
			const gchar* _tmp87_;
			const gchar* _tmp88_;
			gchar* _tmp89_;
			GtkImage* _tmp90_;
			_tmp86_ = self->priv->_param;
			_tmp87_ = sway_notification_center_notify_params_get_image_path (_tmp86_);
			_tmp88_ = _tmp87_;
			_tmp89_ = g_strdup (_tmp88_);
			_tmp90_ = self->priv->img;
			sway_notification_center_functions_set_image_uri (_tmp89_, _tmp90_, img_path_exists, img_path_is_theme_icon);
		} else {
			SwayNotificationCenterNotifyParams* _tmp91_;
			SwayNotificationCenterImageData _tmp92_ = {0};
			SwayNotificationCenterImageData _tmp93_;
			_tmp91_ = self->priv->_param;
			sway_notification_center_notify_params_get_icon_data (_tmp91_, &_tmp92_);
			_tmp93_ = _tmp92_;
			if (_tmp93_.is_initialized) {
				SwayNotificationCenterNotifyParams* _tmp94_;
				SwayNotificationCenterImageData _tmp95_ = {0};
				SwayNotificationCenterImageData _tmp96_;
				GtkImage* _tmp97_;
				_tmp94_ = self->priv->_param;
				sway_notification_center_notify_params_get_icon_data (_tmp94_, &_tmp95_);
				_tmp96_ = _tmp95_;
				_tmp97_ = self->priv->img;
				sway_notification_center_functions_set_image_data (&_tmp96_, _tmp97_);
			}
		}
	}
	_tmp98_ = self->priv->img;
	_tmp99_ = gtk_image_get_storage_type (_tmp98_);
	_tmp100_ = _tmp99_;
	if (_tmp100_ == GTK_IMAGE_EMPTY) {
		const gchar* _tmp101_;
		_tmp101_ = app_icon_uri;
		if (_tmp101_ != NULL) {
			const gchar* _tmp102_;
			gchar* _tmp103_;
			GtkImage* _tmp104_;
			_tmp102_ = app_icon_uri;
			_tmp103_ = g_strdup (_tmp102_);
			_tmp104_ = self->priv->img;
			sway_notification_center_functions_set_image_uri (_tmp103_, _tmp104_, app_icon_exists, FALSE);
		} else {
			GIcon* _tmp105_;
			_tmp105_ = app_icon_name;
			if (_tmp105_ != NULL) {
				GtkImage* _tmp106_;
				GIcon* _tmp107_;
				_tmp106_ = self->priv->img;
				_tmp107_ = app_icon_name;
				gtk_image_set_from_gicon (_tmp106_, _tmp107_);
			} else {
				if (image_visibility == SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_ALWAYS) {
					GtkImage* _tmp108_;
					_tmp108_ = self->priv->img;
					gtk_image_set_from_icon_name (_tmp108_, "image-missing");
				} else {
					GtkImage* _tmp109_;
					_tmp109_ = self->priv->img;
					gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, gtk_widget_get_type (), GtkWidget), FALSE);
				}
			}
		}
	} else {
		const gchar* _tmp110_;
		_tmp110_ = app_icon_uri;
		if (_tmp110_ != NULL) {
			const gchar* _tmp111_;
			gchar* _tmp112_;
			GtkImage* _tmp113_;
			_tmp111_ = app_icon_uri;
			_tmp112_ = g_strdup (_tmp111_);
			_tmp113_ = self->priv->img_app_icon;
			sway_notification_center_functions_set_image_uri (_tmp112_, _tmp113_, app_icon_exists, FALSE);
		} else {
			GIcon* _tmp114_;
			_tmp114_ = app_icon_name;
			if (_tmp114_ != NULL) {
				GtkImage* _tmp115_;
				GIcon* _tmp116_;
				_tmp115_ = self->priv->img_app_icon;
				_tmp116_ = app_icon_name;
				gtk_image_set_from_gicon (_tmp115_, _tmp116_);
			}
		}
	}
	_g_free0 (app_icon_uri);
	_g_object_unref0 (app_icon_name);
}

static void
__lambda97_ (SwayNotificationCenterNotification* self)
{
	sway_notification_center_notification_request_dismiss_notification (self, SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_EXPIRED, FALSE);
}

static void
___lambda97__gsource_once_func (gpointer self)
{
	__lambda97_ ((SwayNotificationCenterNotification*) self);
}

void
sway_notification_center_notification_add_notification_timeout (SwayNotificationCenterNotification* self)
{
	gboolean _tmp0_;
	guint timeout = 0U;
	SwayNotificationCenterNotifyParams* _tmp1_;
	SwayNotificationCenterUrgencyLevels _tmp2_;
	SwayNotificationCenterUrgencyLevels _tmp3_;
	guint _tmp8_ = 0U;
	SwayNotificationCenterNotifyParams* _tmp9_;
	gint _tmp10_;
	gint _tmp11_;
	guint ms = 0U;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	_tmp0_ = self->priv->_is_timed;
	if (!_tmp0_) {
		return;
	}
	sway_notification_center_notification_remove_noti_timeout (self);
	_tmp1_ = self->priv->_param;
	_tmp2_ = sway_notification_center_notify_params_get_urgency (_tmp1_);
	_tmp3_ = _tmp2_;
	switch (_tmp3_) {
		case SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_LOW:
		{
			guint _tmp4_;
			_tmp4_ = self->priv->_timeout_low_delay;
			timeout = _tmp4_ * 1000;
			break;
		}
		default:
		case SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_NORMAL:
		{
			guint _tmp5_;
			_tmp5_ = self->priv->_timeout_delay;
			timeout = _tmp5_ * 1000;
			break;
		}
		case SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_CRITICAL:
		{
			guint _tmp6_;
			guint _tmp7_;
			_tmp6_ = self->priv->_timeout_critical_delay;
			if (_tmp6_ == ((guint) 0)) {
				return;
			}
			_tmp7_ = self->priv->_timeout_critical_delay;
			timeout = _tmp7_ * 1000;
			break;
		}
	}
	_tmp9_ = self->priv->_param;
	_tmp10_ = sway_notification_center_notify_params_get_expire_timeout (_tmp9_);
	_tmp11_ = _tmp10_;
	if (_tmp11_ > 0) {
		SwayNotificationCenterNotifyParams* _tmp12_;
		gint _tmp13_;
		gint _tmp14_;
		_tmp12_ = self->priv->_param;
		_tmp13_ = sway_notification_center_notify_params_get_expire_timeout (_tmp12_);
		_tmp14_ = _tmp13_;
		_tmp8_ = (guint) _tmp14_;
	} else {
		_tmp8_ = timeout;
	}
	ms = _tmp8_;
	if (ms <= ((guint) 0)) {
		return;
	}
	self->priv->timeout_id = g_timeout_add_once (ms, ___lambda97__gsource_once_func, self);
}

void
sway_notification_center_notification_remove_noti_timeout (SwayNotificationCenterNotification* self)
{
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	if (self->priv->timeout_id > ((guint) 0)) {
		g_source_remove (self->priv->timeout_id);
		self->priv->timeout_id = (guint) 0;
	}
}

static gint
sway_notification_center_notification_get_notification_body_image_height (SwayNotificationCenterNotification* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), 0);
	result = self->priv->_notification_body_image_height;
	return result;
}

static gint
sway_notification_center_notification_get_notification_body_image_width (SwayNotificationCenterNotification* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), 0);
	result = self->priv->_notification_body_image_width;
	return result;
}

gboolean
sway_notification_center_notification_get_is_timed (SwayNotificationCenterNotification* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), FALSE);
	result = self->priv->_is_timed;
	return result;
}

static void
sway_notification_center_notification_set_is_timed (SwayNotificationCenterNotification* self,
                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_is_timed (self);
	if (old_value != value) {
		self->priv->_is_timed = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_IS_TIMED_PROPERTY]);
	}
}

SwayNotificationCenterNotifyParams*
sway_notification_center_notification_get_param (SwayNotificationCenterNotification* self)
{
	SwayNotificationCenterNotifyParams* result;
	SwayNotificationCenterNotifyParams* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), NULL);
	_tmp0_ = self->priv->_param;
	result = _tmp0_;
	return result;
}

static void
sway_notification_center_notification_set_param (SwayNotificationCenterNotification* self,
                                                 SwayNotificationCenterNotifyParams* value)
{
	SwayNotificationCenterNotifyParams* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_param (self);
	if (old_value != value) {
		SwayNotificationCenterNotifyParams* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_param);
		self->priv->_param = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_PARAM_PROPERTY]);
	}
}

SwayNotificationCenterNotificationType
sway_notification_center_notification_get_notification_type (SwayNotificationCenterNotification* self)
{
	SwayNotificationCenterNotificationType result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), 0);
	result = self->priv->_notification_type;
	return result;
}

static void
sway_notification_center_notification_set_notification_type (SwayNotificationCenterNotification* self,
                                                             SwayNotificationCenterNotificationType value)
{
	SwayNotificationCenterNotificationType old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_notification_type (self);
	if (old_value != value) {
		self->priv->_notification_type = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_NOTIFICATION_TYPE_PROPERTY]);
	}
}

guint
sway_notification_center_notification_get_timeout_delay (SwayNotificationCenterNotification* self)
{
	guint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), 0U);
	result = self->priv->_timeout_delay;
	return result;
}

static void
sway_notification_center_notification_set_timeout_delay (SwayNotificationCenterNotification* self,
                                                         guint value)
{
	guint old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_timeout_delay (self);
	if (old_value != value) {
		self->priv->_timeout_delay = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_DELAY_PROPERTY]);
	}
}

guint
sway_notification_center_notification_get_timeout_low_delay (SwayNotificationCenterNotification* self)
{
	guint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), 0U);
	result = self->priv->_timeout_low_delay;
	return result;
}

static void
sway_notification_center_notification_set_timeout_low_delay (SwayNotificationCenterNotification* self,
                                                             guint value)
{
	guint old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_timeout_low_delay (self);
	if (old_value != value) {
		self->priv->_timeout_low_delay = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_LOW_DELAY_PROPERTY]);
	}
}

guint
sway_notification_center_notification_get_timeout_critical_delay (SwayNotificationCenterNotification* self)
{
	guint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), 0U);
	result = self->priv->_timeout_critical_delay;
	return result;
}

static void
sway_notification_center_notification_set_timeout_critical_delay (SwayNotificationCenterNotification* self,
                                                                  guint value)
{
	guint old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_timeout_critical_delay (self);
	if (old_value != value) {
		self->priv->_timeout_critical_delay = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_CRITICAL_DELAY_PROPERTY]);
	}
}

gint
sway_notification_center_notification_get_transition_time (SwayNotificationCenterNotification* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), 0);
	result = self->priv->_transition_time;
	return result;
}

static void
sway_notification_center_notification_set_transition_time (SwayNotificationCenterNotification* self,
                                                           gint value)
{
	gint old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_transition_time (self);
	if (old_value != value) {
		self->priv->_transition_time = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_TRANSITION_TIME_PROPERTY]);
	}
}

gint
sway_notification_center_notification_get_number_of_body_lines (SwayNotificationCenterNotification* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), 0);
	result = self->priv->_number_of_body_lines;
	return result;
}

static void
sway_notification_center_notification_set_number_of_body_lines (SwayNotificationCenterNotification* self,
                                                                gint value)
{
	gint old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_number_of_body_lines (self);
	if (old_value != value) {
		self->priv->_number_of_body_lines = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_NUMBER_OF_BODY_LINES_PROPERTY]);
	}
}

gboolean
sway_notification_center_notification_get_has_inline_reply (SwayNotificationCenterNotification* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), FALSE);
	result = self->priv->_has_inline_reply;
	return result;
}

static void
sway_notification_center_notification_set_has_inline_reply (SwayNotificationCenterNotification* self,
                                                            gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_has_inline_reply (self);
	if (old_value != value) {
		self->priv->_has_inline_reply = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_HAS_INLINE_REPLY_PROPERTY]);
	}
}

gboolean
sway_notification_center_notification_get_dismissed (SwayNotificationCenterNotification* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), FALSE);
	result = self->priv->_dismissed;
	return result;
}

static void
sway_notification_center_notification_set_dismissed (SwayNotificationCenterNotification* self,
                                                     gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_dismissed (self);
	if (old_value != value) {
		self->priv->_dismissed = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_PROPERTY]);
	}
}

gboolean
sway_notification_center_notification_get_dismissed_by_swipe (SwayNotificationCenterNotification* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self), FALSE);
	result = self->priv->_dismissed_by_swipe;
	return result;
}

static void
sway_notification_center_notification_set_dismissed_by_swipe (SwayNotificationCenterNotification* self,
                                                              gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION (self));
	old_value = sway_notification_center_notification_get_dismissed_by_swipe (self);
	if (old_value != value) {
		self->priv->_dismissed_by_swipe = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_BY_SWIPE_PROPERTY]);
	}
}

static gchar*
_vala_g_strjoinv (const gchar* separator,
                  gchar** str_array,
                  gint str_array_length1)
{
	gboolean _tmp0_ = FALSE;
	gchar* result;
	if (separator == NULL) {
		separator = "";
	}
	if (str_array != NULL) {
		gboolean _tmp1_ = FALSE;
		if (str_array_length1 > 0) {
			_tmp1_ = TRUE;
		} else {
			gboolean _tmp2_ = FALSE;
			if (str_array_length1 == -1) {
				const gchar* _tmp3_;
				_tmp3_ = str_array[0];
				_tmp2_ = _tmp3_ != NULL;
			} else {
				_tmp2_ = FALSE;
			}
			_tmp1_ = _tmp2_;
		}
		_tmp0_ = _tmp1_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gint i = 0;
		gsize len = 0UL;
		gint _tmp16_;
		gint _tmp17_;
		const gchar* res = NULL;
		void* _tmp18_;
		const gchar* _tmp19_ = NULL;
		const gchar* _tmp20_;
		void* ptr = NULL;
		const gchar* _tmp22_;
		void* _tmp23_;
		const gchar* _tmp33_;
		len = (gsize) 1;
		{
			gboolean _tmp4_ = FALSE;
			i = 0;
			_tmp4_ = TRUE;
			while (TRUE) {
				gboolean _tmp6_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gint _tmp10_ = 0;
				const gchar* _tmp11_;
				if (!_tmp4_) {
					gint _tmp5_;
					_tmp5_ = i;
					i = _tmp5_ + 1;
				}
				_tmp4_ = FALSE;
				if (str_array_length1 != -1) {
					_tmp7_ = i < str_array_length1;
				} else {
					_tmp7_ = FALSE;
				}
				if (_tmp7_) {
					_tmp6_ = TRUE;
				} else {
					gboolean _tmp8_ = FALSE;
					if (str_array_length1 == -1) {
						const gchar* _tmp9_;
						_tmp9_ = str_array[i];
						_tmp8_ = _tmp9_ != NULL;
					} else {
						_tmp8_ = FALSE;
					}
					_tmp6_ = _tmp8_;
				}
				if (!_tmp6_) {
					break;
				}
				_tmp11_ = str_array[i];
				if (_tmp11_ != NULL) {
					const gchar* _tmp12_;
					gint _tmp13_;
					gint _tmp14_;
					_tmp12_ = str_array[i];
					_tmp13_ = strlen ((const gchar*) _tmp12_);
					_tmp14_ = _tmp13_;
					_tmp10_ = _tmp14_;
				} else {
					_tmp10_ = 0;
				}
				len += (gsize) _tmp10_;
			}
		}
		if (i == 0) {
			gchar* _tmp15_;
			_tmp15_ = g_strdup ("");
			result = _tmp15_;
			return result;
		}
		str_array_length1 = i;
		_tmp16_ = strlen ((const gchar*) separator);
		_tmp17_ = _tmp16_;
		len += (gsize) (_tmp17_ * (i - 1));
		_tmp18_ = g_malloc (len);
		res = _tmp18_;
		_tmp20_ = str_array[0];
		if (_tmp20_ != NULL) {
			const gchar* _tmp21_;
			_tmp21_ = str_array[0];
			_tmp19_ = (const gchar*) _tmp21_;
		} else {
			_tmp19_ = "";
		}
		_tmp22_ = res;
		_tmp23_ = g_stpcpy ((void*) _tmp22_, _tmp19_);
		ptr = _tmp23_;
		{
			gboolean _tmp24_ = FALSE;
			i = 1;
			_tmp24_ = TRUE;
			while (TRUE) {
				void* _tmp26_;
				void* _tmp27_;
				const gchar* _tmp28_ = NULL;
				const gchar* _tmp29_;
				void* _tmp31_;
				void* _tmp32_;
				if (!_tmp24_) {
					gint _tmp25_;
					_tmp25_ = i;
					i = _tmp25_ + 1;
				}
				_tmp24_ = FALSE;
				if (!(i < str_array_length1)) {
					break;
				}
				_tmp26_ = ptr;
				_tmp27_ = g_stpcpy (_tmp26_, (const gchar*) separator);
				ptr = _tmp27_;
				_tmp29_ = str_array[i];
				if (_tmp29_ != NULL) {
					const gchar* _tmp30_;
					_tmp30_ = str_array[i];
					_tmp28_ = (const gchar*) _tmp30_;
				} else {
					_tmp28_ = "";
				}
				_tmp31_ = ptr;
				_tmp32_ = g_stpcpy (_tmp31_, _tmp28_);
				ptr = _tmp32_;
			}
		}
		_tmp33_ = res;
		res = NULL;
		result = (gchar*) _tmp33_;
		return result;
	} else {
		gchar* _tmp34_;
		_tmp34_ = g_strdup ("");
		result = _tmp34_;
		return result;
	}
}

static void
_sway_notification_center_notification___lambda108_ (SwayNotificationCenterNotification* self,
                                                     GtkGestureClick* _gesture,
                                                     gint _n_press,
                                                     gdouble _x,
                                                     gdouble _y)
{
	g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (_gesture, gtk_gesture_click_get_type ()));
	self->priv->default_action_in = TRUE;
	self->priv->default_action_down = TRUE;
}

static void
__sway_notification_center_notification___lambda108__gtk_gesture_click_pressed (GtkGestureClick* _sender,
                                                                                gint n_press,
                                                                                gdouble x,
                                                                                gdouble y,
                                                                                gpointer self)
{
	_sway_notification_center_notification___lambda108_ ((SwayNotificationCenterNotification*) self, _sender, n_press, x, y);
}

static void
_vala_GdkEventSequence_free (GdkEventSequence* self)
{
	g_boxed_free (gdk_event_sequence_get_type (), self);
}

static void
_sway_notification_center_notification___lambda109_ (SwayNotificationCenterNotification* self,
                                                     GtkGestureClick* gesture,
                                                     gint _n_press,
                                                     gdouble _x,
                                                     gdouble _y)
{
	GdkEventSequence* sequence = NULL;
	GdkEventSequence* _tmp0_;
	GdkEventSequence* _tmp1_;
	g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (gesture, gtk_gesture_click_get_type ()));
	if (!self->priv->default_action_down) {
		return;
	}
	self->priv->default_action_down = FALSE;
	if (self->priv->default_action_in) {
		switch (gtk_gesture_single_get_current_button (G_TYPE_CHECK_INSTANCE_CAST (gesture, gtk_gesture_single_get_type (), GtkGestureSingle))) {
			default:
			case GDK_BUTTON_PRIMARY:
			{
				sway_notification_center_notification_click_default_action (self);
				break;
			}
			case GDK_BUTTON_MIDDLE:
			case GDK_BUTTON_SECONDARY:
			{
				sway_notification_center_notification_request_dismiss_notification (self, SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_DISMISSED, FALSE);
				break;
			}
		}
	}
	_tmp0_ = gtk_gesture_single_get_current_sequence (G_TYPE_CHECK_INSTANCE_CAST (gesture, gtk_gesture_single_get_type (), GtkGestureSingle));
	sequence = _tmp0_;
	_tmp1_ = sequence;
	if (_tmp1_ == NULL) {
		self->priv->default_action_in = FALSE;
	}
	__vala_GdkEventSequence_free0 (sequence);
}

static void
__sway_notification_center_notification___lambda109__gtk_gesture_click_released (GtkGestureClick* _sender,
                                                                                 gint n_press,
                                                                                 gdouble x,
                                                                                 gdouble y,
                                                                                 gpointer self)
{
	_sway_notification_center_notification___lambda109_ ((SwayNotificationCenterNotification*) self, _sender, n_press, x, y);
}

static void
_sway_notification_center_notification___lambda110_ (SwayNotificationCenterNotification* self,
                                                     GtkGesture* gesture,
                                                     GdkEventSequence* sequence)
{
	GtkGestureSingle* gesture_single = NULL;
	GtkGestureSingle* _tmp0_;
	GtkGestureSingle* _tmp1_;
	GdkEventSequence* _tmp2_;
	GdkEventSequence* _tmp3_;
	gboolean _tmp4_;
	gint width = 0;
	GtkBox* _tmp5_;
	gint height = 0;
	GtkBox* _tmp6_;
	gdouble x = 0.0;
	gdouble y = 0.0;
	gdouble _tmp7_ = 0.0;
	gdouble _tmp8_ = 0.0;
	gboolean _tmp9_ = FALSE;
	gboolean _tmp10_ = FALSE;
	gboolean _tmp11_ = FALSE;
	gboolean in_button = FALSE;
	g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (gesture, gtk_gesture_get_type ()));
	_tmp0_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (gesture, gtk_gesture_single_get_type (), GtkGestureSingle));
	gesture_single = _tmp0_;
	_tmp1_ = gesture_single;
	_tmp2_ = gtk_gesture_single_get_current_sequence (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = sequence != _tmp3_;
	__vala_GdkEventSequence_free0 (_tmp3_);
	if (_tmp4_) {
		_g_object_unref0 (gesture_single);
		return;
	}
	_tmp5_ = self->priv->default_action;
	width = gtk_widget_get_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
	_tmp6_ = self->priv->default_action;
	height = gtk_widget_get_height (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
	gtk_gesture_get_point (gesture, sequence, &_tmp7_, &_tmp8_);
	x = _tmp7_;
	y = _tmp8_;
	if (x >= ((gdouble) 0)) {
		_tmp11_ = y >= ((gdouble) 0);
	} else {
		_tmp11_ = FALSE;
	}
	if (_tmp11_) {
		_tmp10_ = x < ((gdouble) width);
	} else {
		_tmp10_ = FALSE;
	}
	if (_tmp10_) {
		_tmp9_ = y < ((gdouble) height);
	} else {
		_tmp9_ = FALSE;
	}
	in_button = _tmp9_;
	if (self->priv->default_action_in != in_button) {
		self->priv->default_action_in = in_button;
	}
	_g_object_unref0 (gesture_single);
}

static void
__sway_notification_center_notification___lambda110__gtk_gesture_update (GtkGesture* _sender,
                                                                         GdkEventSequence* sequence,
                                                                         gpointer self)
{
	_sway_notification_center_notification___lambda110_ ((SwayNotificationCenterNotification*) self, _sender, sequence);
}

static void
_sway_notification_center_notification___lambda111_ (SwayNotificationCenterNotification* self,
                                                     GtkGesture* _gesture,
                                                     GdkEventSequence* _sequence)
{
	g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (_gesture, gtk_gesture_get_type ()));
	if (self->priv->default_action_down) {
		self->priv->default_action_down = FALSE;
	}
}

static void
__sway_notification_center_notification___lambda111__gtk_gesture_cancel (GtkGesture* _sender,
                                                                         GdkEventSequence* sequence,
                                                                         gpointer self)
{
	_sway_notification_center_notification___lambda111_ ((SwayNotificationCenterNotification*) self, _sender, sequence);
}

static void
_sway_notification_center_notification___lambda112_ (SwayNotificationCenterNotification* self)
{
	self->priv->default_action_in = FALSE;
}

static void
__sway_notification_center_notification___lambda112__gtk_widget_unmap (GtkWidget* _sender,
                                                                       gpointer self)
{
	_sway_notification_center_notification___lambda112_ ((SwayNotificationCenterNotification*) self);
}

static void
_sway_notification_center_notification___lambda113_ (SwayNotificationCenterNotification* self)
{
	sway_notification_center_notification_request_dismiss_notification (self, SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_DISMISSED, FALSE);
}

static void
__sway_notification_center_notification___lambda113__sway_notification_center_notification_close_button_clicked (SwayNotificationCenterNotificationCloseButton* _sender,
                                                                                                                 gpointer self)
{
	_sway_notification_center_notification___lambda113_ ((SwayNotificationCenterNotification*) self);
}

static void
_sway_notification_center_notification___lambda114_ (SwayNotificationCenterNotification* self,
                                                     gdouble event)
{
	SwayNotificationCenterNotificationCloseButton* _tmp0_;
	_tmp0_ = self->priv->close_button;
	sway_notification_center_notification_close_button_set_reveal (_tmp0_, TRUE);
	sway_notification_center_notification_remove_noti_timeout (self);
}

static void
__sway_notification_center_notification___lambda114__gtk_event_controller_motion_enter (GtkEventControllerMotion* _sender,
                                                                                        gdouble x,
                                                                                        gdouble y,
                                                                                        gpointer self)
{
	_sway_notification_center_notification___lambda114_ ((SwayNotificationCenterNotification*) self, x);
}

static void
_sway_notification_center_notification___lambda115_ (SwayNotificationCenterNotification* self,
                                                     GtkEventControllerMotion* controller)
{
	SwayNotificationCenterNotificationCloseButton* _tmp0_;
	g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (controller, gtk_event_controller_motion_get_type ()));
	_tmp0_ = self->priv->close_button;
	sway_notification_center_notification_close_button_set_reveal (_tmp0_, FALSE);
	sway_notification_center_notification_add_notification_timeout (self);
}

static void
__sway_notification_center_notification___lambda115__gtk_event_controller_motion_leave (GtkEventControllerMotion* _sender,
                                                                                        gpointer self)
{
	_sway_notification_center_notification___lambda115_ ((SwayNotificationCenterNotification*) self, _sender);
}

static void
_sway_notification_center_notification___lambda116_ (SwayNotificationCenterNotification* self)
{
	sway_notification_center_notification_request_dismiss_notification (self, SWAY_NOTIFICATION_CENTER_CLOSED_REASONS_DISMISSED, TRUE);
}

static void
__sway_notification_center_notification___lambda116__dismissible_widget_dismissed (DismissibleWidget* _sender,
                                                                                   gpointer self)
{
	_sway_notification_center_notification___lambda116_ ((SwayNotificationCenterNotification*) self);
}

static void
_sway_notification_center_notification___lambda117_ (SwayNotificationCenterNotification* self,
                                                     guint keyval,
                                                     guint keycode,
                                                     GdkModifierType state)
{
	const gchar* _tmp0_;
	_tmp0_ = gdk_keyval_name (keyval);
	if (g_strcmp0 (_tmp0_, "Return") == 0) {
		GtkButton* _tmp1_;
		_tmp1_ = self->priv->inline_reply_button;
		g_signal_emit_by_name (_tmp1_, "clicked");
	}
}

static void
__sway_notification_center_notification___lambda117__gtk_event_controller_key_key_released (GtkEventControllerKey* _sender,
                                                                                            guint keyval,
                                                                                            guint keycode,
                                                                                            GdkModifierType state,
                                                                                            gpointer self)
{
	_sway_notification_center_notification___lambda117_ ((SwayNotificationCenterNotification*) self, keyval, keycode, state);
}

static void
_sway_notification_center_notification___lambda118_ (SwayNotificationCenterNotification* self)
{
	gchar* text = NULL;
	GtkEntry* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	SwayNotificationCenterNotiDaemon* _tmp6_;
	SwayNotificationCenterNotifyParams* _tmp7_;
	guint32 _tmp8_;
	guint32 _tmp9_;
	const gchar* _tmp10_;
	_tmp0_ = self->priv->inline_reply_entry;
	_tmp1_ = gtk_editable_get_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_editable_get_type (), GtkEditable));
	_tmp2_ = string_strip (_tmp1_);
	text = _tmp2_;
	_tmp3_ = text;
	_tmp4_ = strlen (_tmp3_);
	_tmp5_ = _tmp4_;
	if (_tmp5_ == 0) {
		_g_free0 (text);
		return;
	}
	_tmp6_ = sway_notification_center_noti_daemon;
	_tmp7_ = self->priv->_param;
	_tmp8_ = sway_notification_center_notify_params_get_applied_id (_tmp7_);
	_tmp9_ = _tmp8_;
	_tmp10_ = text;
	g_signal_emit_by_name (_tmp6_, "notification-replied", _tmp9_, _tmp10_);
	sway_notification_center_notification_action_clicked (self, NULL);
	_g_free0 (text);
}

static void
__sway_notification_center_notification___lambda118__gtk_button_clicked (GtkButton* _sender,
                                                                         gpointer self)
{
	_sway_notification_center_notification___lambda118_ ((SwayNotificationCenterNotification*) self);
}

static GObject *
sway_notification_center_notification_constructor (GType type,
                                                   guint n_construct_properties,
                                                   GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SwayNotificationCenterNotification * self;
	GtkGestureClick* _tmp25_;
	GtkBox* _tmp26_;
	GtkGestureClick* _tmp27_;
	GtkEventController* _tmp28_;
	GtkGestureClick* _tmp29_;
	GtkGestureClick* _tmp30_;
	GtkGestureClick* _tmp31_;
	GtkGestureClick* _tmp32_;
	GtkGestureClick* _tmp33_;
	GtkGestureClick* _tmp34_;
	GtkGestureClick* _tmp35_;
	GtkGestureClick* _tmp36_;
	SwayNotificationCenterConfigModel* _tmp37_;
	SwayNotificationCenterConfigModel* _tmp38_;
	gint _tmp39_;
	gint _tmp40_;
	GtkBox* _tmp41_;
	SwayNotificationCenterNotificationCloseButton* _tmp42_;
	GtkEventControllerMotion* _tmp43_;
	GtkOverlay* _tmp44_;
	GtkEventControllerMotion* _tmp45_;
	GtkEventController* _tmp46_;
	GtkEventControllerMotion* _tmp47_;
	GtkEventControllerMotion* _tmp48_;
	DismissibleWidget* _tmp49_;
	GtkEventControllerKey* reply_key_controller = NULL;
	GtkEventControllerKey* _tmp50_;
	GtkEventControllerKey* _tmp51_;
	GtkEntry* _tmp52_;
	GtkEventControllerKey* _tmp53_;
	GtkEventController* _tmp54_;
	GtkButton* _tmp55_;
	GError* _inner_error0_ = NULL;
	parent_class = G_OBJECT_CLASS (sway_notification_center_notification_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, SwayNotificationCenterNotification);
	{
		GRegex* _tmp0_ = NULL;
		GRegex* _tmp1_;
		GRegex* _tmp2_;
		gchar* joined_tags = NULL;
		gchar* _tmp3_;
		GRegex* _tmp4_ = NULL;
		const gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		GRegex* _tmp8_;
		GRegex* _tmp9_;
		GRegex* _tmp10_;
		gchar* unescaped = NULL;
		gchar* _tmp11_;
		GRegex* _tmp12_ = NULL;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		GRegex* _tmp16_;
		GRegex* _tmp17_;
		GRegex* _tmp18_;
		GRegex* _tmp19_ = NULL;
		GRegex* _tmp20_;
		GRegex* _tmp21_;
		_tmp1_ = g_regex_new ("(?<= |^)(\\d{3}(-| )\\d{3}|\\d{4,8})(?= |$|\\.|,)", G_REGEX_MULTILINE, 0, &_inner_error0_);
		_tmp0_ = _tmp1_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_tmp2_ = _tmp0_;
		_tmp0_ = NULL;
		_g_regex_unref0 (sway_notification_center_notification_code_regex);
		sway_notification_center_notification_code_regex = _tmp2_;
		_tmp3_ = _vala_g_strjoinv ("|", SWAY_NOTIFICATION_CENTER_NOTIFICATION_TAGS, (gint) G_N_ELEMENTS (SWAY_NOTIFICATION_CENTER_NOTIFICATION_TAGS));
		joined_tags = _tmp3_;
		_tmp5_ = joined_tags;
		_tmp6_ = g_strdup_printf ("&lt;(/?(?:%s))&gt;", _tmp5_);
		_tmp7_ = _tmp6_;
		_tmp8_ = g_regex_new (_tmp7_, 0, 0, &_inner_error0_);
		_tmp9_ = _tmp8_;
		_g_free0 (_tmp7_);
		_tmp4_ = _tmp9_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_free0 (joined_tags);
			_g_regex_unref0 (_tmp0_);
			goto __catch0_g_error;
		}
		_tmp10_ = _tmp4_;
		_tmp4_ = NULL;
		_g_regex_unref0 (sway_notification_center_notification_tag_regex);
		sway_notification_center_notification_tag_regex = _tmp10_;
		_tmp11_ = _vala_g_strjoinv ("|", SWAY_NOTIFICATION_CENTER_NOTIFICATION_UNESCAPE_CHARS, (gint) G_N_ELEMENTS (SWAY_NOTIFICATION_CENTER_NOTIFICATION_UNESCAPE_CHARS));
		unescaped = _tmp11_;
		_tmp13_ = unescaped;
		_tmp14_ = g_strdup_printf ("&amp;(?=%s)", _tmp13_);
		_tmp15_ = _tmp14_;
		_tmp16_ = g_regex_new (_tmp15_, 0, 0, &_inner_error0_);
		_tmp17_ = _tmp16_;
		_g_free0 (_tmp15_);
		_tmp12_ = _tmp17_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_free0 (unescaped);
			_g_regex_unref0 (_tmp4_);
			_g_free0 (joined_tags);
			_g_regex_unref0 (_tmp0_);
			goto __catch0_g_error;
		}
		_tmp18_ = _tmp12_;
		_tmp12_ = NULL;
		_g_regex_unref0 (sway_notification_center_notification_tag_unescape_regex);
		sway_notification_center_notification_tag_unescape_regex = _tmp18_;
		_tmp20_ = g_regex_new ("<img[^>]* src=((\"([^\"]*)\")|(\'([^\']*)\'))[^>]*>", 0, 0, &_inner_error0_);
		_tmp19_ = _tmp20_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_regex_unref0 (_tmp12_);
			_g_free0 (unescaped);
			_g_regex_unref0 (_tmp4_);
			_g_free0 (joined_tags);
			_g_regex_unref0 (_tmp0_);
			goto __catch0_g_error;
		}
		_tmp21_ = _tmp19_;
		_tmp19_ = NULL;
		_g_regex_unref0 (sway_notification_center_notification_img_tag_regex);
		sway_notification_center_notification_img_tag_regex = _tmp21_;
		_g_regex_unref0 (_tmp19_);
		_g_regex_unref0 (_tmp12_);
		_g_free0 (unescaped);
		_g_regex_unref0 (_tmp4_);
		_g_free0 (joined_tags);
		_g_regex_unref0 (_tmp0_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		FILE* _tmp22_;
		GError* _tmp23_;
		const gchar* _tmp24_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp22_ = stderr;
		_tmp23_ = e;
		_tmp24_ = _tmp23_->message;
		fprintf (_tmp22_, "Invalid regex: %s", _tmp24_);
		_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_);
	}
	g_object_bind_property_with_closures (G_TYPE_CHECK_INSTANCE_CAST (self, G_TYPE_OBJECT, GObject), "dismissed", G_TYPE_CHECK_INSTANCE_CAST (self, G_TYPE_OBJECT, GObject), "sensitive", G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
	_tmp25_ = (GtkGestureClick*) gtk_gesture_click_new ();
	if (_tmp25_) {
		g_object_set_data ((GObject *) _tmp25_, "vala-creation-function", "");
	}
	_g_object_unref0 (self->priv->gesture);
	self->priv->gesture = _tmp25_;
	_tmp26_ = self->priv->default_action;
	_tmp27_ = self->priv->gesture;
	_tmp28_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_event_controller_get_type (), GtkEventController));
	gtk_widget_add_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget), _tmp28_);
	_tmp29_ = self->priv->gesture;
	gtk_gesture_single_set_touch_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_gesture_single_get_type (), GtkGestureSingle), FALSE);
	_tmp30_ = self->priv->gesture;
	gtk_gesture_single_set_exclusive (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_gesture_single_get_type (), GtkGestureSingle), TRUE);
	_tmp31_ = self->priv->gesture;
	gtk_gesture_single_set_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_gesture_single_get_type (), GtkGestureSingle), (guint) 0);
	_tmp32_ = self->priv->gesture;
	gtk_event_controller_set_propagation_phase (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_event_controller_get_type (), GtkEventController), GTK_PHASE_BUBBLE);
	_tmp33_ = self->priv->gesture;
	g_signal_connect_object (_tmp33_, "pressed", (GCallback) __sway_notification_center_notification___lambda108__gtk_gesture_click_pressed, self, 0);
	_tmp34_ = self->priv->gesture;
	g_signal_connect_object (_tmp34_, "released", (GCallback) __sway_notification_center_notification___lambda109__gtk_gesture_click_released, self, 0);
	_tmp35_ = self->priv->gesture;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_gesture_get_type (), GtkGesture), "update", (GCallback) __sway_notification_center_notification___lambda110__gtk_gesture_update, self, 0);
	_tmp36_ = self->priv->gesture;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_gesture_get_type (), GtkGesture), "cancel", (GCallback) __sway_notification_center_notification___lambda111__gtk_gesture_cancel, self, 0);
	_tmp37_ = sway_notification_center_config_model_get_instance ();
	_tmp38_ = _tmp37_;
	_tmp39_ = sway_notification_center_config_model_get_transition_time (_tmp38_);
	_tmp40_ = _tmp39_;
	sway_notification_center_notification_set_transition_time (self, _tmp40_);
	_tmp41_ = self->priv->default_action;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_widget_get_type (), GtkWidget), "unmap", (GCallback) __sway_notification_center_notification___lambda112__gtk_widget_unmap, self, 0);
	_tmp42_ = self->priv->close_button;
	g_signal_connect_object (_tmp42_, "clicked", (GCallback) __sway_notification_center_notification___lambda113__sway_notification_center_notification_close_button_clicked, self, 0);
	_tmp43_ = (GtkEventControllerMotion*) gtk_event_controller_motion_new ();
	if (_tmp43_) {
		g_object_set_data ((GObject *) _tmp43_, "vala-creation-function", "");
	}
	_g_object_unref0 (self->priv->motion_controller);
	self->priv->motion_controller = _tmp43_;
	_tmp44_ = self->priv->base_widget;
	_tmp45_ = self->priv->motion_controller;
	_tmp46_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, gtk_event_controller_get_type (), GtkEventController));
	gtk_widget_add_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, gtk_widget_get_type (), GtkWidget), _tmp46_);
	_tmp47_ = self->priv->motion_controller;
	g_signal_connect_object (_tmp47_, "enter", (GCallback) __sway_notification_center_notification___lambda114__gtk_event_controller_motion_enter, self, 0);
	_tmp48_ = self->priv->motion_controller;
	g_signal_connect_object (_tmp48_, "leave", (GCallback) __sway_notification_center_notification___lambda115__gtk_event_controller_motion_leave, self, 0);
	_tmp49_ = self->priv->dismissible_widget;
	g_signal_connect_object (_tmp49_, "dismissed", (GCallback) __sway_notification_center_notification___lambda116__dismissible_widget_dismissed, self, 0);
	_tmp50_ = (GtkEventControllerKey*) gtk_event_controller_key_new ();
	if (_tmp50_) {
		g_object_set_data ((GObject *) _tmp50_, "vala-creation-function", "");
	}
	reply_key_controller = _tmp50_;
	_tmp51_ = reply_key_controller;
	g_signal_connect_object (_tmp51_, "key-released", (GCallback) __sway_notification_center_notification___lambda117__gtk_event_controller_key_key_released, self, 0);
	_tmp52_ = self->priv->inline_reply_entry;
	_tmp53_ = reply_key_controller;
	_tmp54_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, gtk_event_controller_get_type (), GtkEventController));
	gtk_widget_add_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, gtk_widget_get_type (), GtkWidget), _tmp54_);
	_tmp55_ = self->priv->inline_reply_button;
	g_signal_connect_object (_tmp55_, "clicked", (GCallback) __sway_notification_center_notification___lambda118__gtk_button_clicked, self, 0);
	_g_object_unref0 (reply_key_controller);
	return obj;
}

static void
sway_notification_center_notification_class_init (SwayNotificationCenterNotificationClass * klass,
                                                  gpointer klass_data)
{
	sway_notification_center_notification_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SwayNotificationCenterNotification_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_sway_notification_center_notification_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_sway_notification_center_notification_set_property;
	G_OBJECT_CLASS (klass)->constructor = sway_notification_center_notification_constructor;
	G_OBJECT_CLASS (klass)->finalize = sway_notification_center_notification_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_IS_TIMED_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_IS_TIMED_PROPERTY] = g_param_spec_boolean ("is-timed", "is-timed", "is-timed", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_PARAM_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_PARAM_PROPERTY] = g_param_spec_object ("param", "param", "param", SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_NOTIFICATION_TYPE_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_NOTIFICATION_TYPE_PROPERTY] = g_param_spec_enum ("notification-type", "notification-type", "notification-type", SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_TYPE, SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_FLOATING, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_DELAY_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_DELAY_PROPERTY] = g_param_spec_uint ("timeout-delay", "timeout-delay", "timeout-delay", 0, G_MAXUINT, 0U, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_LOW_DELAY_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_LOW_DELAY_PROPERTY] = g_param_spec_uint ("timeout-low-delay", "timeout-low-delay", "timeout-low-delay", 0, G_MAXUINT, 0U, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_CRITICAL_DELAY_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_CRITICAL_DELAY_PROPERTY] = g_param_spec_uint ("timeout-critical-delay", "timeout-critical-delay", "timeout-critical-delay", 0, G_MAXUINT, 0U, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_TRANSITION_TIME_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_TRANSITION_TIME_PROPERTY] = g_param_spec_int ("transition-time", "transition-time", "transition-time", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_NUMBER_OF_BODY_LINES_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_NUMBER_OF_BODY_LINES_PROPERTY] = g_param_spec_int ("number-of-body-lines", "number-of-body-lines", "number-of-body-lines", G_MININT, G_MAXINT, 10, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_HAS_INLINE_REPLY_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_HAS_INLINE_REPLY_PROPERTY] = g_param_spec_boolean ("has-inline-reply", "has-inline-reply", "has-inline-reply", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_PROPERTY] = g_param_spec_boolean ("dismissed", "dismissed", "dismissed", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_BY_SWIPE_PROPERTY, sway_notification_center_notification_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_BY_SWIPE_PROPERTY] = g_param_spec_boolean ("dismissed-by-swipe", "dismissed-by-swipe", "dismissed-by-swipe", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/erikreider/swaync/ui/notification.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "revealer", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, revealer));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "dismissible_widget", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, dismissible_widget));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "base_widget", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, base_widget));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "default_action", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, default_action));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "alt_actions_box", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, alt_actions_box));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "progress_bar", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, progress_bar));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "base_box", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, base_box));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "close_button", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, close_button));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "summary", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, summary));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "time", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, time));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "body", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, body));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "img", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, img));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "img_app_icon", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, img_app_icon));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "body_image", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, body_image));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "inline_reply_box", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, inline_reply_box));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "inline_reply_entry", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, inline_reply_entry));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "inline_reply_button", FALSE, SwayNotificationCenterNotification_private_offset + G_STRUCT_OFFSET (SwayNotificationCenterNotificationPrivate, inline_reply_button));
}

static void
sway_notification_center_notification_instance_init (SwayNotificationCenterNotification * self,
                                                     gpointer klass)
{
	SwayNotificationCenterConfigModel* _tmp0_;
	SwayNotificationCenterConfigModel* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	SwayNotificationCenterConfigModel* _tmp4_;
	SwayNotificationCenterConfigModel* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	self->priv = sway_notification_center_notification_get_instance_private (self);
	self->priv->default_action_down = FALSE;
	self->priv->default_action_in = FALSE;
	_tmp0_ = sway_notification_center_config_model_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = sway_notification_center_config_model_get_notification_body_image_height (_tmp1_);
	_tmp3_ = _tmp2_;
	self->priv->_notification_body_image_height = _tmp3_;
	_tmp4_ = sway_notification_center_config_model_get_instance ();
	_tmp5_ = _tmp4_;
	_tmp6_ = sway_notification_center_config_model_get_notification_body_image_width (_tmp5_);
	_tmp7_ = _tmp6_;
	self->priv->_notification_body_image_width = _tmp7_;
	self->priv->timeout_id = (guint) 0;
	self->priv->_is_timed = FALSE;
	self->priv->_notification_type = SWAY_NOTIFICATION_CENTER_NOTIFICATION_TYPE_FLOATING;
	self->priv->_number_of_body_lines = 10;
	self->priv->_has_inline_reply = FALSE;
	self->priv->_dismissed = FALSE;
	self->priv->_dismissed_by_swipe = FALSE;
	g_rec_mutex_init (&self->priv->__lock_dismissed);
	g_type_ensure (TYPE_DISMISSIBLE_WIDGET);
	g_type_ensure (TYPE_ITER_BOX);
	g_type_ensure (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_CLOSE_BUTTON);
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
sway_notification_center_notification_finalize (GObject * obj)
{
	SwayNotificationCenterNotification * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, SwayNotificationCenterNotification);
	_g_object_unref0 (self->priv->gesture);
	_g_object_unref0 (self->priv->motion_controller);
	_g_object_unref0 (self->priv->_param);
	g_rec_mutex_clear (&self->priv->__lock_dismissed);
	G_OBJECT_CLASS (sway_notification_center_notification_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_notification_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SwayNotificationCenterNotificationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sway_notification_center_notification_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SwayNotificationCenterNotification), 0, (GInstanceInitFunc) sway_notification_center_notification_instance_init, NULL };
	GType sway_notification_center_notification_type_id;
	sway_notification_center_notification_type_id = g_type_register_static (adw_bin_get_type (), "SwayNotificationCenterNotification", &g_define_type_info, 0);
	SwayNotificationCenterNotification_private_offset = g_type_add_instance_private (sway_notification_center_notification_type_id, sizeof (SwayNotificationCenterNotificationPrivate));
	return sway_notification_center_notification_type_id;
}

GType
sway_notification_center_notification_get_type (void)
{
	static gsize sway_notification_center_notification_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_notification_type_id__once)) {
		GType sway_notification_center_notification_type_id;
		sway_notification_center_notification_type_id = sway_notification_center_notification_get_type_once ();
		g_once_init_leave (&sway_notification_center_notification_type_id__once, sway_notification_center_notification_type_id);
	}
	return sway_notification_center_notification_type_id__once;
}

static void
_vala_sway_notification_center_notification_get_property (GObject * object,
                                                          guint property_id,
                                                          GValue * value,
                                                          GParamSpec * pspec)
{
	SwayNotificationCenterNotification * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, SwayNotificationCenterNotification);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_IS_TIMED_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_notification_get_is_timed (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_PARAM_PROPERTY:
		g_value_set_object (value, sway_notification_center_notification_get_param (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_NOTIFICATION_TYPE_PROPERTY:
		g_value_set_enum (value, sway_notification_center_notification_get_notification_type (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_DELAY_PROPERTY:
		g_value_set_uint (value, sway_notification_center_notification_get_timeout_delay (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_LOW_DELAY_PROPERTY:
		g_value_set_uint (value, sway_notification_center_notification_get_timeout_low_delay (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_CRITICAL_DELAY_PROPERTY:
		g_value_set_uint (value, sway_notification_center_notification_get_timeout_critical_delay (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_TRANSITION_TIME_PROPERTY:
		g_value_set_int (value, sway_notification_center_notification_get_transition_time (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_NUMBER_OF_BODY_LINES_PROPERTY:
		g_value_set_int (value, sway_notification_center_notification_get_number_of_body_lines (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_HAS_INLINE_REPLY_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_notification_get_has_inline_reply (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_notification_get_dismissed (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_BY_SWIPE_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_notification_get_dismissed_by_swipe (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_sway_notification_center_notification_set_property (GObject * object,
                                                          guint property_id,
                                                          const GValue * value,
                                                          GParamSpec * pspec)
{
	SwayNotificationCenterNotification * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION, SwayNotificationCenterNotification);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_IS_TIMED_PROPERTY:
		sway_notification_center_notification_set_is_timed (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_PARAM_PROPERTY:
		sway_notification_center_notification_set_param (self, g_value_get_object (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_NOTIFICATION_TYPE_PROPERTY:
		sway_notification_center_notification_set_notification_type (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_DELAY_PROPERTY:
		sway_notification_center_notification_set_timeout_delay (self, g_value_get_uint (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_LOW_DELAY_PROPERTY:
		sway_notification_center_notification_set_timeout_low_delay (self, g_value_get_uint (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_TIMEOUT_CRITICAL_DELAY_PROPERTY:
		sway_notification_center_notification_set_timeout_critical_delay (self, g_value_get_uint (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_TRANSITION_TIME_PROPERTY:
		sway_notification_center_notification_set_transition_time (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_NUMBER_OF_BODY_LINES_PROPERTY:
		sway_notification_center_notification_set_number_of_body_lines (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_HAS_INLINE_REPLY_PROPERTY:
		sway_notification_center_notification_set_has_inline_reply (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_PROPERTY:
		sway_notification_center_notification_set_dismissed (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_DISMISSED_BY_SWIPE_PROPERTY:
		sway_notification_center_notification_set_dismissed_by_swipe (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

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

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

