/* widgets-matchlistview.c generated by valac 0.56.17, the Vala compiler
 * generated from widgets-matchlistview.vala, do not modify */

/*
 * Copyright (C) 2010 Michal Hruby <michal.mhr@gmail.com>
 * Copyright (C) 2010 Alberto Aldegheri <albyrock87+dev@gmail.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Authored by Alberto Aldegheri <albyrock87+dev@gmail.com>
 *
 */

#include <gtk/gtk.h>
#include <glib-object.h>
#include <cairo-gobject.h>
#include <synapse-core.h>
#include <glib.h>
#include <float.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <pango/pango.h>
#include <pango/pangocairo.h>
#include <gee.h>
#include <gdk/gdk.h>
#include <gio/gio.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib/gi18n-lib.h>

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

#define SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE (synapse_gui_match_list_view_match_view_renderer_base_get_type ())
#define SYNAPSE_GUI_MATCH_LIST_VIEW_MATCH_VIEW_RENDERER_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE, SynapseGuiMatchListViewMatchViewRendererBase))
#define SYNAPSE_GUI_MATCH_LIST_VIEW_MATCH_VIEW_RENDERER_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE, SynapseGuiMatchListViewMatchViewRendererBaseClass))
#define SYNAPSE_GUI_MATCH_LIST_VIEW_IS_MATCH_VIEW_RENDERER_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE))
#define SYNAPSE_GUI_MATCH_LIST_VIEW_IS_MATCH_VIEW_RENDERER_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE))
#define SYNAPSE_GUI_MATCH_LIST_VIEW_MATCH_VIEW_RENDERER_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE, SynapseGuiMatchListViewMatchViewRendererBaseClass))

typedef struct _SynapseGuiMatchListViewMatchViewRendererBase SynapseGuiMatchListViewMatchViewRendererBase;
typedef struct _SynapseGuiMatchListViewMatchViewRendererBaseClass SynapseGuiMatchListViewMatchViewRendererBaseClass;
typedef struct _SynapseGuiMatchListViewMatchViewRendererBasePrivate SynapseGuiMatchListViewMatchViewRendererBasePrivate;

#define SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER (synapse_gui_utils_color_helper_get_type ())
#define SYNAPSE_GUI_UTILS_COLOR_HELPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER, SynapseGuiUtilsColorHelper))
#define SYNAPSE_GUI_UTILS_COLOR_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER, SynapseGuiUtilsColorHelperClass))
#define SYNAPSE_GUI_UTILS_IS_COLOR_HELPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER))
#define SYNAPSE_GUI_UTILS_IS_COLOR_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER))
#define SYNAPSE_GUI_UTILS_COLOR_HELPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_UTILS_TYPE_COLOR_HELPER, SynapseGuiUtilsColorHelperClass))

typedef struct _SynapseGuiUtilsColorHelper SynapseGuiUtilsColorHelper;
typedef struct _SynapseGuiUtilsColorHelperClass SynapseGuiUtilsColorHelperClass;

#define SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER (synapse_gui_match_view_renderer_get_type ())
#define SYNAPSE_GUI_MATCH_VIEW_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER, SynapseGuiMatchViewRenderer))
#define SYNAPSE_GUI_MATCH_VIEW_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER, SynapseGuiMatchViewRendererClass))
#define SYNAPSE_GUI_IS_MATCH_VIEW_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER))
#define SYNAPSE_GUI_IS_MATCH_VIEW_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER))
#define SYNAPSE_GUI_MATCH_VIEW_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER, SynapseGuiMatchViewRendererClass))

typedef struct _SynapseGuiMatchViewRenderer SynapseGuiMatchViewRenderer;
typedef struct _SynapseGuiMatchViewRendererClass SynapseGuiMatchViewRendererClass;
typedef struct _SynapseGuiMatchViewRendererPrivate SynapseGuiMatchViewRendererPrivate;
enum  {
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_0_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_ICON_SIZE_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_VPADDING_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_HPADDING_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_HILIGHT_ON_SELECTED_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_PATTERN_IN_HILIGHT_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_EXTENDED_INFO_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_HIDE_EXTENDED_ON_SELECTED_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_OVERLAY_ACTION_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_PATTERN_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_ACTION_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_TITLE_MARKUP_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_DESCRIPTION_MARKUP_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_EXTENDED_INFO_MARKUP_PROPERTY,
	SYNAPSE_GUI_MATCH_VIEW_RENDERER_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef enum  {
	SYNAPSE_GUI_STYLE_TYPE_BG,
	SYNAPSE_GUI_STYLE_TYPE_FG,
	SYNAPSE_GUI_STYLE_TYPE_BASE,
	SYNAPSE_GUI_STYLE_TYPE_TEXT
} SynapseGuiStyleType;

#define SYNAPSE_GUI_TYPE_STYLE_TYPE (synapse_gui_style_type_get_type ())
typedef enum  {
	SYNAPSE_GUI_MOD_NORMAL,
	SYNAPSE_GUI_MOD_LIGHTER,
	SYNAPSE_GUI_MOD_LIGHTEST,
	SYNAPSE_GUI_MOD_DARKER,
	SYNAPSE_GUI_MOD_DARKEST,
	SYNAPSE_GUI_MOD_INVERTED
} SynapseGuiMod;

#define SYNAPSE_GUI_TYPE_MOD (synapse_gui_mod_get_type ())

#define SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW (synapse_gui_match_list_view_get_type ())
#define SYNAPSE_GUI_MATCH_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView))
#define SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListViewClass))
#define SYNAPSE_GUI_IS_MATCH_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW))
#define SYNAPSE_GUI_IS_MATCH_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW))
#define SYNAPSE_GUI_MATCH_LIST_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListViewClass))

typedef struct _SynapseGuiMatchListView SynapseGuiMatchListView;
typedef struct _SynapseGuiMatchListViewClass SynapseGuiMatchListViewClass;
typedef struct _SynapseGuiMatchListViewPrivate SynapseGuiMatchListViewPrivate;
typedef enum  {
	SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_TOP,
	SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER,
	SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_BOTTOM,
	SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_TOP_FORCED,
	SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER_FORCED,
	SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_BOTTOM_FORCED
} SynapseGuiMatchListViewBehavior;

#define SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_BEHAVIOR (synapse_gui_match_list_view_behavior_get_type ())
enum  {
	SYNAPSE_GUI_MATCH_LIST_VIEW_0_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_ANIMATION_ENABLED_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTED_INDEX_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_TARGETTED_INDEX_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTION_ENABLED_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_USE_BASE_COLORS_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_MIN_VISIBLE_ROWS_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_NUM_PROPERTIES];
#define _synapse_gui_utils_color_helper_unref0(var) ((var == NULL) ? NULL : (var = (synapse_gui_utils_color_helper_unref (var), NULL)))
#define _gtk_target_list_unref0(var) ((var == NULL) ? NULL : (var = (gtk_target_list_unref (var), NULL)))
enum  {
	SYNAPSE_GUI_MATCH_LIST_VIEW_MATCH_VIEW_RENDERER_BASE_0_PROPERTY,
	SYNAPSE_GUI_MATCH_LIST_VIEW_MATCH_VIEW_RENDERER_BASE_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_match_list_view_match_view_renderer_base_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_MATCH_VIEW_RENDERER_BASE_NUM_PROPERTIES];

#define SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE (synapse_gui_icon_cache_service_get_type ())
#define SYNAPSE_GUI_ICON_CACHE_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE, SynapseGuiIconCacheService))
#define SYNAPSE_GUI_ICON_CACHE_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE, SynapseGuiIconCacheServiceClass))
#define SYNAPSE_GUI_IS_ICON_CACHE_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE))
#define SYNAPSE_GUI_IS_ICON_CACHE_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE))
#define SYNAPSE_GUI_ICON_CACHE_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_ICON_CACHE_SERVICE, SynapseGuiIconCacheServiceClass))

typedef struct _SynapseGuiIconCacheService SynapseGuiIconCacheService;
typedef struct _SynapseGuiIconCacheServiceClass SynapseGuiIconCacheServiceClass;
enum  {
	SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTED_INDEX_CHANGED_SIGNAL,
	SYNAPSE_GUI_MATCH_LIST_VIEW_FIRE_ITEM_SIGNAL,
	SYNAPSE_GUI_MATCH_LIST_VIEW_FIRE_ITEM_CONTEXT_SWITCH_SIGNAL,
	SYNAPSE_GUI_MATCH_LIST_VIEW_NUM_SIGNALS
};
static guint synapse_gui_match_list_view_signals[SYNAPSE_GUI_MATCH_LIST_VIEW_NUM_SIGNALS] = {0};

#define SYNAPSE_GUI_TYPE_RESULT_BOX (synapse_gui_result_box_get_type ())
#define SYNAPSE_GUI_RESULT_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_RESULT_BOX, SynapseGuiResultBox))
#define SYNAPSE_GUI_RESULT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_RESULT_BOX, SynapseGuiResultBoxClass))
#define SYNAPSE_GUI_IS_RESULT_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_RESULT_BOX))
#define SYNAPSE_GUI_IS_RESULT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_RESULT_BOX))
#define SYNAPSE_GUI_RESULT_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_RESULT_BOX, SynapseGuiResultBoxClass))

typedef struct _SynapseGuiResultBox SynapseGuiResultBox;
typedef struct _SynapseGuiResultBoxClass SynapseGuiResultBoxClass;
typedef struct _SynapseGuiResultBoxPrivate SynapseGuiResultBoxPrivate;
enum  {
	SYNAPSE_GUI_RESULT_BOX_0_PROPERTY,
	SYNAPSE_GUI_RESULT_BOX_USE_BASE_COLORS_PROPERTY,
	SYNAPSE_GUI_RESULT_BOX_SHOW_NO_RESULTS_PROPERTY,
	SYNAPSE_GUI_RESULT_BOX_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_result_box_properties[SYNAPSE_GUI_RESULT_BOX_NUM_PROPERTIES];
#define _cairo_pattern_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_pattern_destroy (var), NULL)))

#define SYNAPSE_GUI_TYPE_SPECIFIC_MATCH_LIST (synapse_gui_specific_match_list_get_type ())
#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_SPECIFIC_MATCH_LIST, SynapseGuiSpecificMatchList))
#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_SPECIFIC_MATCH_LIST, SynapseGuiSpecificMatchListClass))
#define SYNAPSE_GUI_IS_SPECIFIC_MATCH_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_SPECIFIC_MATCH_LIST))
#define SYNAPSE_GUI_IS_SPECIFIC_MATCH_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_SPECIFIC_MATCH_LIST))
#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_SPECIFIC_MATCH_LIST, SynapseGuiSpecificMatchListClass))

typedef struct _SynapseGuiSpecificMatchList SynapseGuiSpecificMatchList;
typedef struct _SynapseGuiSpecificMatchListClass SynapseGuiSpecificMatchListClass;
typedef struct _SynapseGuiSpecificMatchListPrivate SynapseGuiSpecificMatchListPrivate;

#define SYNAPSE_GUI_TYPE_ICONTROLLER (synapse_gui_icontroller_get_type ())
#define SYNAPSE_GUI_ICONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_ICONTROLLER, SynapseGuiIController))
#define SYNAPSE_GUI_IS_ICONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_ICONTROLLER))
#define SYNAPSE_GUI_ICONTROLLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SYNAPSE_GUI_TYPE_ICONTROLLER, SynapseGuiIControllerIface))

typedef struct _SynapseGuiIController SynapseGuiIController;
typedef struct _SynapseGuiIControllerIface SynapseGuiIControllerIface;

#define SYNAPSE_GUI_TYPE_KEY_COMBO_CONFIG (synapse_gui_key_combo_config_get_type ())
#define SYNAPSE_GUI_KEY_COMBO_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_KEY_COMBO_CONFIG, SynapseGuiKeyComboConfig))
#define SYNAPSE_GUI_KEY_COMBO_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_KEY_COMBO_CONFIG, SynapseGuiKeyComboConfigClass))
#define SYNAPSE_GUI_IS_KEY_COMBO_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_KEY_COMBO_CONFIG))
#define SYNAPSE_GUI_IS_KEY_COMBO_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_KEY_COMBO_CONFIG))
#define SYNAPSE_GUI_KEY_COMBO_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_KEY_COMBO_CONFIG, SynapseGuiKeyComboConfigClass))

typedef struct _SynapseGuiKeyComboConfig SynapseGuiKeyComboConfig;
typedef struct _SynapseGuiKeyComboConfigClass SynapseGuiKeyComboConfigClass;

#define SYNAPSE_GUI_TYPE_CATEGORY_CONFIG (synapse_gui_category_config_get_type ())
#define SYNAPSE_GUI_CATEGORY_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_CATEGORY_CONFIG, SynapseGuiCategoryConfig))
#define SYNAPSE_GUI_CATEGORY_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_CATEGORY_CONFIG, SynapseGuiCategoryConfigClass))
#define SYNAPSE_GUI_IS_CATEGORY_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_CATEGORY_CONFIG))
#define SYNAPSE_GUI_IS_CATEGORY_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_CATEGORY_CONFIG))
#define SYNAPSE_GUI_CATEGORY_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_CATEGORY_CONFIG, SynapseGuiCategoryConfigClass))

typedef struct _SynapseGuiCategoryConfig SynapseGuiCategoryConfig;
typedef struct _SynapseGuiCategoryConfigClass SynapseGuiCategoryConfigClass;

#define SYNAPSE_GUI_TYPE_MODEL (synapse_gui_model_get_type ())
#define SYNAPSE_GUI_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_MODEL, SynapseGuiModel))
#define SYNAPSE_GUI_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_MODEL, SynapseGuiModelClass))
#define SYNAPSE_GUI_IS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_MODEL))
#define SYNAPSE_GUI_IS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_MODEL))
#define SYNAPSE_GUI_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_MODEL, SynapseGuiModelClass))

typedef struct _SynapseGuiModel SynapseGuiModel;
typedef struct _SynapseGuiModelClass SynapseGuiModelClass;
typedef enum  {
	SYNAPSE_GUI_SEARCHING_FOR_SOURCES,
	SYNAPSE_GUI_SEARCHING_FOR_ACTIONS,
	SYNAPSE_GUI_SEARCHING_FOR_TARGETS,
	SYNAPSE_GUI_SEARCHING_FOR_COUNT
} SynapseGuiSearchingFor;

#define SYNAPSE_GUI_TYPE_SEARCHING_FOR (synapse_gui_searching_for_get_type ())
enum  {
	SYNAPSE_GUI_SPECIFIC_MATCH_LIST_0_PROPERTY,
	SYNAPSE_GUI_SPECIFIC_MATCH_LIST_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_specific_match_list_properties[SYNAPSE_GUI_SPECIFIC_MATCH_LIST_NUM_PROPERTIES];
typedef struct _Block5Data Block5Data;

#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST_TYPE_LABEL_MATCH (synapse_gui_specific_match_list_label_match_get_type ())
#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST_LABEL_MATCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_SPECIFIC_MATCH_LIST_TYPE_LABEL_MATCH, SynapseGuiSpecificMatchListLabelMatch))
#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST_LABEL_MATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_SPECIFIC_MATCH_LIST_TYPE_LABEL_MATCH, SynapseGuiSpecificMatchListLabelMatchClass))
#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST_IS_LABEL_MATCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_SPECIFIC_MATCH_LIST_TYPE_LABEL_MATCH))
#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST_IS_LABEL_MATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_SPECIFIC_MATCH_LIST_TYPE_LABEL_MATCH))
#define SYNAPSE_GUI_SPECIFIC_MATCH_LIST_LABEL_MATCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_SPECIFIC_MATCH_LIST_TYPE_LABEL_MATCH, SynapseGuiSpecificMatchListLabelMatchClass))

typedef struct _SynapseGuiSpecificMatchListLabelMatch SynapseGuiSpecificMatchListLabelMatch;
typedef struct _SynapseGuiSpecificMatchListLabelMatchClass SynapseGuiSpecificMatchListLabelMatchClass;
typedef struct _SynapseGuiModelPrivate SynapseGuiModelPrivate;

#define SYNAPSE_GUI_TYPE_ENTRY (synapse_gui_entry_get_type ())
#define SYNAPSE_GUI_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SYNAPSE_GUI_TYPE_ENTRY, SynapseGuiEntry))
#define SYNAPSE_GUI_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SYNAPSE_GUI_TYPE_ENTRY, SynapseGuiEntryClass))
#define SYNAPSE_GUI_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SYNAPSE_GUI_TYPE_ENTRY))
#define SYNAPSE_GUI_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SYNAPSE_GUI_TYPE_ENTRY))
#define SYNAPSE_GUI_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SYNAPSE_GUI_TYPE_ENTRY, SynapseGuiEntryClass))

typedef struct _SynapseGuiEntry SynapseGuiEntry;
typedef struct _SynapseGuiEntryClass SynapseGuiEntryClass;
typedef struct _SynapseGuiSpecificMatchListLabelMatchPrivate SynapseGuiSpecificMatchListLabelMatchPrivate;
enum  {
	SYNAPSE_GUI_SPECIFIC_MATCH_LIST_LABEL_MATCH_0_PROPERTY,
	SYNAPSE_GUI_SPECIFIC_MATCH_LIST_LABEL_MATCH_NUM_PROPERTIES
};
static GParamSpec* synapse_gui_specific_match_list_label_match_properties[SYNAPSE_GUI_SPECIFIC_MATCH_LIST_LABEL_MATCH_NUM_PROPERTIES];

struct _SynapseGuiMatchListViewMatchViewRendererBase {
	GtkLabel parent_instance;
	SynapseGuiMatchListViewMatchViewRendererBasePrivate * priv;
	SynapseGuiUtilsColorHelper* ch;
	GtkTextDirection rtl;
};

struct _SynapseGuiMatchListViewMatchViewRendererBaseClass {
	GtkLabelClass parent_class;
	void (*render_match) (SynapseGuiMatchListViewMatchViewRendererBase* self, cairo_t* ctx, SynapseMatch* m, gint width, gint height, gboolean use_base, gdouble selected_pct);
	gint (*calculate_row_height) (SynapseGuiMatchListViewMatchViewRendererBase* self);
};

struct _SynapseGuiMatchViewRenderer {
	SynapseGuiMatchListViewMatchViewRendererBase parent_instance;
	SynapseGuiMatchViewRendererPrivate * priv;
};

struct _SynapseGuiMatchViewRendererClass {
	SynapseGuiMatchListViewMatchViewRendererBaseClass parent_class;
};

struct _SynapseGuiMatchViewRendererPrivate {
	gint _icon_size;
	gint _cell_vpadding;
	gint _cell_hpadding;
	gboolean _hilight_on_selected;
	gboolean _show_pattern_in_hilight;
	gboolean _show_extended_info;
	gboolean _hide_extended_on_selected;
	gboolean _overlay_action;
	gchar* _pattern;
	SynapseMatch* _action;
	gchar* _title_markup;
	gchar* _description_markup;
	gchar* _extended_info_markup;
	gint text_height;
};

struct _SynapseGuiMatchListView {
	GtkEventBox parent_instance;
	SynapseGuiMatchListViewPrivate * priv;
	SynapseGuiMatchListViewMatchViewRendererBase* renderer;
};

struct _SynapseGuiMatchListViewClass {
	GtkEventBoxClass parent_class;
	void (*set_list) (SynapseGuiMatchListView* self, GeeList* list, gint targetted_index, gint selected_index);
};

struct _SynapseGuiMatchListViewPrivate {
	guint tid;
	gboolean _animation_enabled;
	gint offset;
	gint toffset;
	gint soffset;
	gint tsoffset;
	gint astep;
	gint sstep;
	gint row_height;
	GeeList* items;
	gint goto_index;
	gint select_index;
	gboolean _selection_enabled;
	gboolean _use_base_colors;
	gint _min_visible_rows;
	gboolean inhibit_move;
	SynapseGuiMatchListViewBehavior _behavior;
	SynapseGuiUtilsColorHelper* ch;
	gint dragdrop_target_item;
	gchar* dragdrop_name;
	gchar* dragdrop_uri;
};

struct _SynapseGuiMatchListViewMatchViewRendererBasePrivate {
	gint row_height_cached;
};

struct _SynapseGuiResultBox {
	GtkEventBox parent_instance;
	SynapseGuiResultBoxPrivate * priv;
};

struct _SynapseGuiResultBoxClass {
	GtkEventBoxClass parent_class;
};

struct _SynapseGuiResultBoxPrivate {
	gint mwidth;
	gint nrows;
	GtkBox* vbox;
	GtkBox* status_box;
	SynapseGuiUtilsColorHelper* ch;
	gboolean _use_base_colors;
	gboolean _show_no_results;
	SynapseGuiMatchListView* view;
	SynapseGuiMatchViewRenderer* rend;
	GtkLabel* status;
};

struct _SynapseGuiIControllerIface {
	GTypeInterface parent_iface;
	void (*key_press_event) (SynapseGuiIController* self, GdkEventKey* event);
	void (*category_changed_event) (SynapseGuiIController* self, gint category_index);
	void (*fire_focus_context_switch_event) (SynapseGuiIController* self);
	void (*fire_focus) (SynapseGuiIController* self);
	void (*selected_index_changed_event) (SynapseGuiIController* self, gint focus_index);
	void (*set_view) (SynapseGuiIController* self, GType view_type);
	void (*summon_or_vanish) (SynapseGuiIController* self);
	gboolean (*is_in_initial_state) (SynapseGuiIController* self);
	gboolean (*searched_for_recent) (SynapseGuiIController* self);
	SynapseDataSink* (*get_data_sink) (SynapseGuiIController* self);
	void (*set_data_sink) (SynapseGuiIController* self, SynapseDataSink* value);
	SynapseGuiKeyComboConfig* (*get_key_combo_config) (SynapseGuiIController* self);
	void (*set_key_combo_config) (SynapseGuiIController* self, SynapseGuiKeyComboConfig* value);
	SynapseGuiCategoryConfig* (*get_category_config) (SynapseGuiIController* self);
	void (*set_category_config) (SynapseGuiIController* self, SynapseGuiCategoryConfig* value);
};

struct _SynapseGuiSpecificMatchList {
	SynapseGuiMatchListView parent_instance;
	SynapseGuiSpecificMatchListPrivate * priv;
	SynapseGuiIController* controller;
	SynapseGuiModel* model;
	SynapseGuiSearchingFor sf;
};

struct _SynapseGuiSpecificMatchListClass {
	SynapseGuiMatchListViewClass parent_class;
};

struct _SynapseGuiSpecificMatchListPrivate {
	gboolean has_results;
	SynapseGuiMatchViewRenderer* rend;
};

struct _Block5Data {
	int _ref_count_;
	SynapseGuiSpecificMatchList* self;
	SynapseMatch* m;
};

struct _SynapseGuiModel {
	GObject parent_instance;
	SynapseGuiModelPrivate * priv;
	gchar** query;
	gint query_length1;
	GeeList** results;
	gint results_length1;
	SynapseGuiEntry** focus;
	gint focus_length1;
	gint selected_category;
	SynapseGuiSearchingFor searching_for;
};

struct _SynapseGuiModelClass {
	GObjectClass parent_class;
};

struct _SynapseGuiSpecificMatchListLabelMatch {
	SynapseMatch parent_instance;
	SynapseGuiSpecificMatchListLabelMatchPrivate * priv;
};

struct _SynapseGuiSpecificMatchListLabelMatchClass {
	SynapseMatchClass parent_class;
};

static gint SynapseGuiMatchViewRenderer_private_offset;
static gpointer synapse_gui_match_view_renderer_parent_class = NULL;
static gint SynapseGuiMatchListView_private_offset;
static gpointer synapse_gui_match_list_view_parent_class = NULL;
static gint SynapseGuiMatchListViewMatchViewRendererBase_private_offset;
static gpointer synapse_gui_match_list_view_match_view_renderer_base_parent_class = NULL;
static gint SynapseGuiResultBox_private_offset;
static gpointer synapse_gui_result_box_parent_class = NULL;
static gint SynapseGuiSpecificMatchList_private_offset;
static gpointer synapse_gui_specific_match_list_parent_class = NULL;
static gboolean synapse_gui_specific_match_list_lists_initialized;
static gboolean synapse_gui_specific_match_list_lists_initialized = FALSE;
static GeeList* synapse_gui_specific_match_list_tts;
static GeeList* synapse_gui_specific_match_list_tts = NULL;
static GeeList* synapse_gui_specific_match_list_nores;
static GeeList* synapse_gui_specific_match_list_nores = NULL;
static GeeList* synapse_gui_specific_match_list_noact;
static GeeList* synapse_gui_specific_match_list_noact = NULL;
VALA_EXTERN gchar* synapse_gui_icontroller_NO_RESULTS;
VALA_EXTERN gchar* synapse_gui_icontroller_NO_RECENT_ACTIVITIES;
VALA_EXTERN gchar* synapse_gui_icontroller_TYPE_TO_SEARCH;
VALA_EXTERN gchar* synapse_gui_icontroller_DOWN_TO_SEE_RECENT;
static gpointer synapse_gui_specific_match_list_label_match_parent_class = NULL;

VALA_EXTERN GType synapse_gui_match_list_view_match_view_renderer_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiMatchListViewMatchViewRendererBase, g_object_unref)
VALA_EXTERN gpointer synapse_gui_utils_color_helper_ref (gpointer instance);
VALA_EXTERN void synapse_gui_utils_color_helper_unref (gpointer instance);
VALA_EXTERN GParamSpec* synapse_gui_utils_param_spec_color_helper (const gchar* name,
                                                       const gchar* nick,
                                                       const gchar* blurb,
                                                       GType object_type,
                                                       GParamFlags flags);
VALA_EXTERN void synapse_gui_utils_value_set_color_helper (GValue* value,
                                               gpointer v_object);
VALA_EXTERN void synapse_gui_utils_value_take_color_helper (GValue* value,
                                                gpointer v_object);
VALA_EXTERN gpointer synapse_gui_utils_value_get_color_helper (const GValue* value);
VALA_EXTERN GType synapse_gui_utils_color_helper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiUtilsColorHelper, synapse_gui_utils_color_helper_unref)
VALA_EXTERN GType synapse_gui_match_view_renderer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiMatchViewRenderer, g_object_unref)
VALA_EXTERN void synapse_gui_match_list_view_match_view_renderer_base_render_match (SynapseGuiMatchListViewMatchViewRendererBase* self,
                                                                        cairo_t* ctx,
                                                                        SynapseMatch* m,
                                                                        gint width,
                                                                        gint height,
                                                                        gboolean use_base,
                                                                        gdouble selected_pct);
VALA_EXTERN gint synapse_gui_match_list_view_match_view_renderer_base_calculate_row_height (SynapseGuiMatchListViewMatchViewRendererBase* self);
static void synapse_gui_match_view_renderer_real_render_match (SynapseGuiMatchListViewMatchViewRendererBase* base,
                                                        cairo_t* ctx,
                                                        SynapseMatch* m,
                                                        gint width,
                                                        gint height,
                                                        gboolean use_base,
                                                        gdouble selected_pct);
VALA_EXTERN SynapseMatch* synapse_gui_match_view_renderer_get_action (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gint synapse_gui_match_view_renderer_get_cell_hpadding (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gint synapse_gui_match_view_renderer_get_icon_size (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gboolean synapse_gui_match_view_renderer_get_overlay_action (SynapseGuiMatchViewRenderer* self);
static void synapse_gui_match_view_renderer_draw_icon (SynapseGuiMatchViewRenderer* self,
                                                cairo_t* ctx,
                                                SynapseMatch* m,
                                                gint x,
                                                gint y);
static void synapse_gui_match_view_renderer_draw_text (SynapseGuiMatchViewRenderer* self,
                                                cairo_t* ctx,
                                                SynapseMatch* m,
                                                gint x,
                                                gint y,
                                                gint width,
                                                GtkStateFlags state,
                                                gboolean use_base,
                                                gdouble selected_fill_pct);
static void synapse_gui_match_view_renderer_draw_action (SynapseGuiMatchViewRenderer* self,
                                                  cairo_t* ctx,
                                                  gint x,
                                                  gint y,
                                                  gdouble selected_fill_pct);
static gint synapse_gui_match_view_renderer_real_calculate_row_height (SynapseGuiMatchListViewMatchViewRendererBase* base);
VALA_EXTERN const gchar* synapse_gui_match_view_renderer_get_title_markup (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN const gchar* synapse_gui_match_view_renderer_get_description_markup (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gint synapse_gui_match_view_renderer_get_cell_vpadding (SynapseGuiMatchViewRenderer* self);
static void synapse_gui_match_view_renderer_size_changed (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN void synapse_gui_match_list_view_match_view_renderer_base_draw_icon_in_position (SynapseGuiMatchListViewMatchViewRendererBase* self,
                                                                                 cairo_t* ctx,
                                                                                 const gchar* name,
                                                                                 gint pixel_size,
                                                                                 gdouble with_alpha);
VALA_EXTERN GType synapse_gui_style_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType synapse_gui_mod_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void synapse_gui_utils_color_helper_get_rgb_from_mix (SynapseGuiUtilsColorHelper* self,
                                                      SynapseGuiStyleType t,
                                                      GtkStateFlags st,
                                                      SynapseGuiMod mod,
                                                      SynapseGuiStyleType t2,
                                                      GtkStateFlags st2,
                                                      SynapseGuiMod mod2,
                                                      gdouble mix_pct,
                                                      gdouble* r,
                                                      gdouble* g,
                                                      gdouble* b);
VALA_EXTERN void synapse_gui_utils_color_helper_set_source_rgba (SynapseGuiUtilsColorHelper* self,
                                                     cairo_t* ctx,
                                                     gdouble alpha,
                                                     SynapseGuiStyleType t,
                                                     GtkStateFlags st,
                                                     SynapseGuiMod mod);
VALA_EXTERN gboolean synapse_gui_match_view_renderer_get_hilight_on_selected (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gchar* synapse_gui_utils_markup_string_with_search (const gchar* text,
                                                    const gchar* pattern,
                                                    const gchar* size,
                                                    gboolean show_not_found);
VALA_EXTERN const gchar* synapse_gui_match_view_renderer_get_pattern (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gboolean synapse_gui_match_view_renderer_get_show_pattern_in_hilight (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gboolean synapse_gui_match_view_renderer_get_show_extended_info (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gboolean synapse_gui_match_view_renderer_get_hide_extended_on_selected (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN const gchar* synapse_gui_match_view_renderer_get_extended_info_markup (SynapseGuiMatchViewRenderer* self);
VALA_EXTERN gchar* synapse_gui_utils_get_printable_description (SynapseMatch* match);
VALA_EXTERN SynapseGuiMatchViewRenderer* synapse_gui_match_view_renderer_new (void);
VALA_EXTERN SynapseGuiMatchViewRenderer* synapse_gui_match_view_renderer_construct (GType object_type);
VALA_EXTERN SynapseGuiMatchListViewMatchViewRendererBase* synapse_gui_match_list_view_match_view_renderer_base_new (void);
VALA_EXTERN SynapseGuiMatchListViewMatchViewRendererBase* synapse_gui_match_list_view_match_view_renderer_base_construct (GType object_type);
VALA_EXTERN void synapse_gui_match_view_renderer_set_icon_size (SynapseGuiMatchViewRenderer* self,
                                                    gint value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_cell_vpadding (SynapseGuiMatchViewRenderer* self,
                                                        gint value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_cell_hpadding (SynapseGuiMatchViewRenderer* self,
                                                        gint value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_hilight_on_selected (SynapseGuiMatchViewRenderer* self,
                                                              gboolean value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_show_pattern_in_hilight (SynapseGuiMatchViewRenderer* self,
                                                                  gboolean value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_show_extended_info (SynapseGuiMatchViewRenderer* self,
                                                             gboolean value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_hide_extended_on_selected (SynapseGuiMatchViewRenderer* self,
                                                                    gboolean value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_overlay_action (SynapseGuiMatchViewRenderer* self,
                                                         gboolean value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_pattern (SynapseGuiMatchViewRenderer* self,
                                                  const gchar* value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_action (SynapseGuiMatchViewRenderer* self,
                                                 SynapseMatch* value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_title_markup (SynapseGuiMatchViewRenderer* self,
                                                       const gchar* value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_description_markup (SynapseGuiMatchViewRenderer* self,
                                                             const gchar* value);
VALA_EXTERN void synapse_gui_match_view_renderer_set_extended_info_markup (SynapseGuiMatchViewRenderer* self,
                                                               const gchar* value);
static GObject * synapse_gui_match_view_renderer_constructor (GType type,
                                                       guint n_construct_properties,
                                                       GObjectConstructParam * construct_properties);
static void _synapse_gui_match_view_renderer_size_changed_g_object_notify (GObject* _sender,
                                                                    GParamSpec* pspec,
                                                                    gpointer self);
static void synapse_gui_match_view_renderer_finalize (GObject * obj);
static GType synapse_gui_match_view_renderer_get_type_once (void);
static void _vala_synapse_gui_match_view_renderer_get_property (GObject * object,
                                                         guint property_id,
                                                         GValue * value,
                                                         GParamSpec * pspec);
static void _vala_synapse_gui_match_view_renderer_set_property (GObject * object,
                                                         guint property_id,
                                                         const GValue * value,
                                                         GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_match_list_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiMatchListView, g_object_unref)
VALA_EXTERN GType synapse_gui_match_list_view_behavior_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void synapse_gui_match_list_view_set_list (SynapseGuiMatchListView* self,
                                           GeeList* list,
                                           gint targetted_index,
                                           gint selected_index);
VALA_EXTERN void synapse_gui_match_list_view_set_indexes (SynapseGuiMatchListView* self,
                                              gint targetted,
                                              gint selected);
static gboolean _synapse_gui_match_list_view_select (SynapseGuiMatchListView* self,
                                              gint i);
static gboolean _synapse_gui_match_list_view_goto (SynapseGuiMatchListView* self,
                                            gint i);
static void synapse_gui_match_list_view_update_target_offsets (SynapseGuiMatchListView* self);
VALA_EXTERN SynapseGuiMatchListViewMatchViewRendererBase* synapse_gui_match_list_view_get_renderer (SynapseGuiMatchListView* self);
VALA_EXTERN SynapseGuiMatchListView* synapse_gui_match_list_view_new (SynapseGuiMatchListViewMatchViewRendererBase* mr);
VALA_EXTERN SynapseGuiMatchListView* synapse_gui_match_list_view_construct (GType object_type,
                                                                SynapseGuiMatchListViewMatchViewRendererBase* mr);
VALA_EXTERN SynapseGuiUtilsColorHelper* synapse_gui_utils_color_helper_get_default (void);
VALA_EXTERN gint synapse_gui_match_list_view_match_view_renderer_base_get_row_height_request (SynapseGuiMatchListViewMatchViewRendererBase* self);
static void _synapse_gui_match_list_view_update_target_offsets_gtk_widget_size_allocate (GtkWidget* _sender,
                                                                                  GtkAllocation* allocation,
                                                                                  gpointer self);
static void _synapse_gui_match_list_view_update_target_offsets_g_object_notify (GObject* _sender,
                                                                         GParamSpec* pspec,
                                                                         gpointer self);
static void _gtk_widget_queue_resize_g_object_notify (GObject* _sender,
                                               GParamSpec* pspec,
                                               gpointer self);
static void __lambda14_ (SynapseGuiMatchListView* self);
static gboolean synapse_gui_match_list_view_update_current_offsets (SynapseGuiMatchListView* self);
static void ___lambda14__g_object_notify (GObject* _sender,
                                   GParamSpec* pspec,
                                   gpointer self);
static void synapse_gui_match_list_view_real_forall_internal (GtkContainer* base,
                                                       gboolean b,
                                                       GtkCallback callback,
                                                       gpointer callback_target);
static void synapse_gui_match_list_view_real_size_allocate (GtkWidget* base,
                                                     GtkAllocation* allocation);
static void synapse_gui_match_list_view_real_get_preferred_height (GtkWidget* base,
                                                            gint* min_height,
                                                            gint* nat_height);
VALA_EXTERN gint synapse_gui_match_list_view_get_min_visible_rows (SynapseGuiMatchListView* self);
static void synapse_gui_match_list_view_real_get_preferred_width (GtkWidget* base,
                                                           gint* min_width,
                                                           gint* nat_width);
VALA_EXTERN gboolean synapse_gui_match_list_view_get_animation_enabled (SynapseGuiMatchListView* self);
VALA_EXTERN gboolean synapse_gui_match_list_view_get_selection_enabled (SynapseGuiMatchListView* self);
static gboolean _synapse_gui_match_list_view_update_current_offsets_gsource_func (gpointer self);
VALA_EXTERN SynapseGuiMatchListViewBehavior synapse_gui_match_list_view_get_behavior (SynapseGuiMatchListView* self);
static void synapse_gui_match_list_view_real_set_list (SynapseGuiMatchListView* self,
                                                GeeList* list,
                                                gint targetted_index,
                                                gint selected_index);
VALA_EXTERN gint synapse_gui_match_list_view_get_list_size (SynapseGuiMatchListView* self);
static gboolean synapse_gui_match_list_view_real_draw (GtkWidget* base,
                                                cairo_t* ctx);
VALA_EXTERN gboolean synapse_gui_match_list_view_get_use_base_colors (SynapseGuiMatchListView* self);
static gint synapse_gui_match_list_view_get_item_at_pos (SynapseGuiMatchListView* self,
                                                  gint y);
static gboolean synapse_gui_match_list_view_real_scroll_event (GtkWidget* base,
                                                        GdkEventScroll* event);
static gboolean synapse_gui_match_list_view_real_button_press_event (GtkWidget* base,
                                                              GdkEventButton* event);
static gboolean ____lambda15_ (SynapseGuiMatchListView* self);
static gboolean _____lambda15__gsource_func (gpointer self);
static void synapse_gui_match_list_view_real_drag_data_get (GtkWidget* base,
                                                     GdkDragContext* context,
                                                     GtkSelectionData* selection_data,
                                                     guint info,
                                                     guint time_);
VALA_EXTERN void synapse_gui_match_list_view_set_animation_enabled (SynapseGuiMatchListView* self,
                                                        gboolean value);
VALA_EXTERN gint synapse_gui_match_list_view_get_selected_index (SynapseGuiMatchListView* self);
VALA_EXTERN gint synapse_gui_match_list_view_get_targetted_index (SynapseGuiMatchListView* self);
VALA_EXTERN void synapse_gui_match_list_view_set_selection_enabled (SynapseGuiMatchListView* self,
                                                        gboolean value);
VALA_EXTERN void synapse_gui_match_list_view_set_use_base_colors (SynapseGuiMatchListView* self,
                                                      gboolean value);
VALA_EXTERN void synapse_gui_match_list_view_set_min_visible_rows (SynapseGuiMatchListView* self,
                                                       gint value);
VALA_EXTERN void synapse_gui_match_list_view_set_behavior (SynapseGuiMatchListView* self,
                                               SynapseGuiMatchListViewBehavior value);
static void synapse_gui_match_list_view_match_view_renderer_base_real_render_match (SynapseGuiMatchListViewMatchViewRendererBase* self,
                                                                             cairo_t* ctx,
                                                                             SynapseMatch* m,
                                                                             gint width,
                                                                             gint height,
                                                                             gboolean use_base,
                                                                             gdouble selected_pct);
static gint synapse_gui_match_list_view_match_view_renderer_base_real_calculate_row_height (SynapseGuiMatchListViewMatchViewRendererBase* self);
VALA_EXTERN GType synapse_gui_icon_cache_service_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiIconCacheService, g_object_unref)
VALA_EXTERN SynapseGuiIconCacheService* synapse_gui_icon_cache_service_get_default (void);
VALA_EXTERN GdkPixbuf* synapse_gui_icon_cache_service_get_icon (SynapseGuiIconCacheService* self,
                                                    const gchar* name,
                                                    gint pixel_size);
VALA_EXTERN void synapse_gui_match_list_view_match_view_renderer_base_on_style_updated (SynapseGuiMatchListViewMatchViewRendererBase* self);
VALA_EXTERN void synapse_gui_utils_update_layout_rtl (PangoLayout* layout,
                                          GtkTextDirection rtl);
static gboolean synapse_gui_match_list_view_match_view_renderer_base_real_draw (GtkWidget* base,
                                                                         cairo_t* ctx);
static GObject * synapse_gui_match_list_view_match_view_renderer_base_constructor (GType type,
                                                                            guint n_construct_properties,
                                                                            GObjectConstructParam * construct_properties);
static void _synapse_gui_match_list_view_match_view_renderer_base_on_style_updated_gtk_widget_style_updated (GtkWidget* _sender,
                                                                                                      gpointer self);
static void synapse_gui_match_list_view_match_view_renderer_base_finalize (GObject * obj);
static GType synapse_gui_match_list_view_match_view_renderer_base_get_type_once (void);
static void synapse_gui_match_list_view_finalize (GObject * obj);
static GType synapse_gui_match_list_view_get_type_once (void);
static void _vala_synapse_gui_match_list_view_get_property (GObject * object,
                                                     guint property_id,
                                                     GValue * value,
                                                     GParamSpec * pspec);
static void _vala_synapse_gui_match_list_view_set_property (GObject * object,
                                                     guint property_id,
                                                     const GValue * value,
                                                     GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_result_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiResultBox, g_object_unref)
VALA_EXTERN SynapseGuiResultBox* synapse_gui_result_box_new (gint width,
                                                 gint nrows);
VALA_EXTERN SynapseGuiResultBox* synapse_gui_result_box_construct (GType object_type,
                                                       gint width,
                                                       gint nrows);
static void synapse_gui_result_box_build_ui (SynapseGuiResultBox* self);
static void __lambda17_ (SynapseGuiResultBox* self);
VALA_EXTERN gboolean synapse_gui_result_box_get_use_base_colors (SynapseGuiResultBox* self);
VALA_EXTERN void synapse_gui_result_box_set_state (SynapseGuiResultBox* self,
                                       GtkStateFlags state);
static void ___lambda17__g_object_notify (GObject* _sender,
                                   GParamSpec* pspec,
                                   gpointer self);
static gboolean synapse_gui_result_box_real_draw (GtkWidget* base,
                                           cairo_t* ctx);
VALA_EXTERN void synapse_gui_utils_color_helper_add_color_stop_rgba (SynapseGuiUtilsColorHelper* self,
                                                         cairo_pattern_t* pat,
                                                         gdouble val,
                                                         gdouble alpha,
                                                         SynapseGuiStyleType t,
                                                         GtkStateFlags st,
                                                         SynapseGuiMod mod);
VALA_EXTERN SynapseGuiMatchListView* synapse_gui_result_box_get_match_list_view (SynapseGuiResultBox* self);
static void synapse_gui_result_box_real_get_preferred_width (GtkWidget* base,
                                                      gint* min_width,
                                                      gint* nat_width);
static void synapse_gui_result_box_real_get_preferred_height (GtkWidget* base,
                                                       gint* min_height,
                                                       gint* nat_height);
VALA_EXTERN void synapse_gui_result_box_update_matches (SynapseGuiResultBox* self,
                                            GeeList* rs);
VALA_EXTERN void synapse_gui_result_box_move_selection_to_index (SynapseGuiResultBox* self,
                                                     gint i);
VALA_EXTERN void synapse_gui_result_box_set_use_base_colors (SynapseGuiResultBox* self,
                                                 gboolean value);
VALA_EXTERN gboolean synapse_gui_result_box_get_show_no_results (SynapseGuiResultBox* self);
VALA_EXTERN void synapse_gui_result_box_set_show_no_results (SynapseGuiResultBox* self,
                                                 gboolean value);
static void synapse_gui_result_box_finalize (GObject * obj);
static GType synapse_gui_result_box_get_type_once (void);
static void _vala_synapse_gui_result_box_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec);
static void _vala_synapse_gui_result_box_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec);
VALA_EXTERN GType synapse_gui_specific_match_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiSpecificMatchList, g_object_unref)
VALA_EXTERN GType synapse_gui_key_combo_config_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiKeyComboConfig, g_object_unref)
VALA_EXTERN GType synapse_gui_category_config_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiCategoryConfig, g_object_unref)
VALA_EXTERN GType synapse_gui_icontroller_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiIController, g_object_unref)
VALA_EXTERN GType synapse_gui_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiModel, g_object_unref)
VALA_EXTERN GType synapse_gui_searching_for_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SynapseGuiMatchViewRenderer* synapse_gui_specific_match_list_get_match_renderer (SynapseGuiSpecificMatchList* self);
VALA_EXTERN SynapseGuiSpecificMatchList* synapse_gui_specific_match_list_new (SynapseGuiIController* controller,
                                                                  SynapseGuiModel* model,
                                                                  SynapseGuiSearchingFor sf);
VALA_EXTERN SynapseGuiSpecificMatchList* synapse_gui_specific_match_list_construct (GType object_type,
                                                                        SynapseGuiIController* controller,
                                                                        SynapseGuiModel* model,
                                                                        SynapseGuiSearchingFor sf);
static Block5Data* block5_data_ref (Block5Data* _data5_);
static void block5_data_unref (void * _userdata_);
static SynapseGuiSpecificMatchListLabelMatch* synapse_gui_specific_match_list_label_match_new (const gchar* title,
                                                                                        const gchar* description,
                                                                                        const gchar* icon_name);
static SynapseGuiSpecificMatchListLabelMatch* synapse_gui_specific_match_list_label_match_construct (GType object_type,
                                                                                              const gchar* title,
                                                                                              const gchar* description,
                                                                                              const gchar* icon_name);
static GType synapse_gui_specific_match_list_label_match_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiSpecificMatchListLabelMatch, g_object_unref)
static void ___lambda21_ (Block5Data* _data5_,
                   gboolean b);
static void ____lambda21__synapse_gui_icontroller_handle_recent_activities (SynapseGuiIController* _sender,
                                                                     gboolean can,
                                                                     gpointer self);
VALA_EXTERN void synapse_gui_specific_match_list_update_searching_for (SynapseGuiSpecificMatchList* self);
VALA_EXTERN gboolean synapse_gui_icontroller_is_in_initial_state (SynapseGuiIController* self);
VALA_EXTERN gpointer synapse_gui_entry_ref (gpointer instance);
VALA_EXTERN void synapse_gui_entry_unref (gpointer instance);
VALA_EXTERN GParamSpec* synapse_gui_param_spec_entry (const gchar* name,
                                          const gchar* nick,
                                          const gchar* blurb,
                                          GType object_type,
                                          GParamFlags flags);
VALA_EXTERN void synapse_gui_value_set_entry (GValue* value,
                                  gpointer v_object);
VALA_EXTERN void synapse_gui_value_take_entry (GValue* value,
                                   gpointer v_object);
VALA_EXTERN gpointer synapse_gui_value_get_entry (const GValue* value);
VALA_EXTERN GType synapse_gui_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SynapseGuiEntry, synapse_gui_entry_unref)
static void synapse_gui_specific_match_list_real_set_list (SynapseGuiMatchListView* base,
                                                    GeeList* list,
                                                    gint targetted_index,
                                                    gint selected_index);
VALA_EXTERN gboolean synapse_gui_icontroller_searched_for_recent (SynapseGuiIController* self);
VALA_EXTERN gconstpointer synapse_gui_entry_get_value (SynapseGuiEntry* self);
VALA_EXTERN gboolean synapse_gui_model_needs_target (SynapseGuiModel* self);
static GType synapse_gui_specific_match_list_label_match_get_type_once (void);
static void synapse_gui_specific_match_list_finalize (GObject * obj);
static GType synapse_gui_specific_match_list_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static inline gpointer
synapse_gui_match_view_renderer_get_instance_private (SynapseGuiMatchViewRenderer* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiMatchViewRenderer_private_offset);
}

static void
synapse_gui_match_view_renderer_real_render_match (SynapseGuiMatchListViewMatchViewRendererBase* base,
                                                   cairo_t* ctx,
                                                   SynapseMatch* m,
                                                   gint width,
                                                   gint height,
                                                   gboolean use_base,
                                                   gdouble selected_pct)
{
	SynapseGuiMatchViewRenderer * self;
	gboolean has_action = FALSE;
	GtkStateFlags state = 0U;
	gboolean _tmp0_ = FALSE;
	gint x = 0;
	gint y = 0;
	gint text_width = 0;
	gint _tmp2_;
	gint _tmp3_;
	gboolean _tmp4_ = FALSE;
#line 66 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchViewRenderer*) base;
#line 66 "widgets-matchlistview.vala"
	g_return_if_fail (ctx != NULL);
#line 66 "widgets-matchlistview.vala"
	g_return_if_fail (m != NULL);
#line 73 "widgets-matchlistview.vala"
	cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
#line 75 "widgets-matchlistview.vala"
	has_action = FALSE;
#line 76 "widgets-matchlistview.vala"
	state = GTK_STATE_FLAG_NORMAL;
#line 77 "widgets-matchlistview.vala"
	if (selected_pct > 1.0) {
#line 79 "widgets-matchlistview.vala"
		state = GTK_STATE_FLAG_SELECTED;
#line 80 "widgets-matchlistview.vala"
		selected_pct = selected_pct - 1.0;
#line 919 "widgets-matchlistview.c"
	}
#line 82 "widgets-matchlistview.vala"
	if (state == GTK_STATE_FLAG_SELECTED) {
#line 923 "widgets-matchlistview.c"
		SynapseMatch* _tmp1_;
#line 82 "widgets-matchlistview.vala"
		_tmp1_ = self->priv->_action;
#line 82 "widgets-matchlistview.vala"
		_tmp0_ = _tmp1_ != NULL;
#line 929 "widgets-matchlistview.c"
	} else {
#line 82 "widgets-matchlistview.vala"
		_tmp0_ = FALSE;
#line 933 "widgets-matchlistview.c"
	}
#line 82 "widgets-matchlistview.vala"
	if (_tmp0_) {
#line 82 "widgets-matchlistview.vala"
		has_action = TRUE;
#line 939 "widgets-matchlistview.c"
	}
#line 84 "widgets-matchlistview.vala"
	x = 0;
#line 84 "widgets-matchlistview.vala"
	y = 0;
#line 85 "widgets-matchlistview.vala"
	_tmp2_ = self->priv->_cell_hpadding;
#line 85 "widgets-matchlistview.vala"
	_tmp3_ = self->priv->_icon_size;
#line 85 "widgets-matchlistview.vala"
	text_width = (width - (_tmp2_ * 4)) - _tmp3_;
#line 86 "widgets-matchlistview.vala"
	if (has_action) {
#line 953 "widgets-matchlistview.c"
		gboolean _tmp5_;
#line 86 "widgets-matchlistview.vala"
		_tmp5_ = self->priv->_overlay_action;
#line 86 "widgets-matchlistview.vala"
		_tmp4_ = !_tmp5_;
#line 959 "widgets-matchlistview.c"
	} else {
#line 86 "widgets-matchlistview.vala"
		_tmp4_ = FALSE;
#line 963 "widgets-matchlistview.c"
	}
#line 86 "widgets-matchlistview.vala"
	if (_tmp4_) {
#line 967 "widgets-matchlistview.c"
		gint _tmp6_;
		gint _tmp7_;
#line 86 "widgets-matchlistview.vala"
		_tmp6_ = self->priv->_cell_hpadding;
#line 86 "widgets-matchlistview.vala"
		_tmp7_ = self->priv->_icon_size;
#line 86 "widgets-matchlistview.vala"
		text_width = (text_width - (_tmp6_ * 2)) - _tmp7_;
#line 976 "widgets-matchlistview.c"
	}
#line 88 "widgets-matchlistview.vala"
	if (((SynapseGuiMatchListViewMatchViewRendererBase*) self)->rtl != GTK_TEXT_DIR_RTL) {
#line 980 "widgets-matchlistview.c"
		gint _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
#line 91 "widgets-matchlistview.vala"
		_tmp8_ = self->priv->_cell_hpadding;
#line 91 "widgets-matchlistview.vala"
		x = _tmp8_;
#line 92 "widgets-matchlistview.vala"
		_tmp9_ = self->priv->_icon_size;
#line 92 "widgets-matchlistview.vala"
		y = (height - _tmp9_) / 2;
#line 93 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_draw_icon (self, ctx, m, x, y);
#line 96 "widgets-matchlistview.vala"
		_tmp10_ = self->priv->_icon_size;
#line 96 "widgets-matchlistview.vala"
		_tmp11_ = self->priv->_cell_hpadding;
#line 96 "widgets-matchlistview.vala"
		x += _tmp10_ + (_tmp11_ * 2);
#line 97 "widgets-matchlistview.vala"
		y = (height - self->priv->text_height) / 2;
#line 98 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_draw_text (self, ctx, m, x, y, text_width, state, use_base, selected_pct);
#line 101 "widgets-matchlistview.vala"
		if (has_action) {
#line 1007 "widgets-matchlistview.c"
			gint _tmp12_;
			gint _tmp13_;
			gint _tmp14_;
#line 103 "widgets-matchlistview.vala"
			_tmp12_ = self->priv->_icon_size;
#line 103 "widgets-matchlistview.vala"
			y = (height - _tmp12_) / 2;
#line 104 "widgets-matchlistview.vala"
			_tmp13_ = self->priv->_cell_hpadding;
#line 104 "widgets-matchlistview.vala"
			_tmp14_ = self->priv->_icon_size;
#line 104 "widgets-matchlistview.vala"
			synapse_gui_match_view_renderer_draw_action (self, ctx, (width - _tmp13_) - _tmp14_, y, selected_pct);
#line 1021 "widgets-matchlistview.c"
		}
	} else {
		gint _tmp15_;
		gint _tmp16_;
		gint _tmp17_;
		gint _tmp18_;
#line 110 "widgets-matchlistview.vala"
		_tmp15_ = self->priv->_cell_hpadding;
#line 110 "widgets-matchlistview.vala"
		_tmp16_ = self->priv->_icon_size;
#line 110 "widgets-matchlistview.vala"
		x = (width - _tmp15_) - _tmp16_;
#line 111 "widgets-matchlistview.vala"
		_tmp17_ = self->priv->_icon_size;
#line 111 "widgets-matchlistview.vala"
		y = (height - _tmp17_) / 2;
#line 112 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_draw_icon (self, ctx, m, x, y);
#line 115 "widgets-matchlistview.vala"
		_tmp18_ = self->priv->_cell_hpadding;
#line 115 "widgets-matchlistview.vala"
		x = (x - (_tmp18_ * 2)) - text_width;
#line 116 "widgets-matchlistview.vala"
		y = (height - self->priv->text_height) / 2;
#line 117 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_draw_text (self, ctx, m, x, y, text_width, state, use_base, selected_pct);
#line 120 "widgets-matchlistview.vala"
		if (has_action) {
#line 1050 "widgets-matchlistview.c"
			gint _tmp19_;
			gint _tmp20_;
#line 122 "widgets-matchlistview.vala"
			_tmp19_ = self->priv->_icon_size;
#line 122 "widgets-matchlistview.vala"
			y = (height - _tmp19_) / 2;
#line 123 "widgets-matchlistview.vala"
			_tmp20_ = self->priv->_cell_hpadding;
#line 123 "widgets-matchlistview.vala"
			synapse_gui_match_view_renderer_draw_action (self, ctx, _tmp20_, y, selected_pct);
#line 1061 "widgets-matchlistview.c"
		}
	}
}

static gint
synapse_gui_match_view_renderer_real_calculate_row_height (SynapseGuiMatchListViewMatchViewRendererBase* base)
{
	SynapseGuiMatchViewRenderer * self;
	gchar* s = NULL;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	PangoLayout* layout = NULL;
	PangoLayout* _tmp5_;
	gint width = 0;
	gint height = 0;
	gint _tmp6_ = 0;
	gint _tmp7_ = 0;
	gint _tmp8_;
	gint _tmp9_;
	gint result;
#line 127 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchViewRenderer*) base;
#line 129 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->_title_markup;
#line 129 "widgets-matchlistview.vala"
	_tmp1_ = self->priv->_description_markup;
#line 129 "widgets-matchlistview.vala"
	_tmp2_ = g_strdup_printf ("%s\n%s", _tmp0_, _tmp1_);
#line 129 "widgets-matchlistview.vala"
	s = _tmp2_;
#line 130 "widgets-matchlistview.vala"
	_tmp3_ = g_markup_printf_escaped (s, " &#21271;", " &#21271;");
#line 130 "widgets-matchlistview.vala"
	_tmp4_ = _tmp3_;
#line 130 "widgets-matchlistview.vala"
	_g_free0 (_tmp4_);
#line 131 "widgets-matchlistview.vala"
	_tmp5_ = gtk_label_get_layout ((GtkLabel*) self);
#line 131 "widgets-matchlistview.vala"
	layout = _tmp5_;
#line 132 "widgets-matchlistview.vala"
	pango_layout_set_markup (layout, s, -1);
#line 133 "widgets-matchlistview.vala"
	width = 0;
#line 133 "widgets-matchlistview.vala"
	height = 0;
#line 134 "widgets-matchlistview.vala"
	pango_layout_get_pixel_size (layout, &_tmp6_, &_tmp7_);
#line 134 "widgets-matchlistview.vala"
	width = _tmp6_;
#line 134 "widgets-matchlistview.vala"
	height = _tmp7_;
#line 135 "widgets-matchlistview.vala"
	self->priv->text_height = height;
#line 136 "widgets-matchlistview.vala"
	_tmp8_ = self->priv->_icon_size;
#line 136 "widgets-matchlistview.vala"
	_tmp9_ = self->priv->_cell_vpadding;
#line 136 "widgets-matchlistview.vala"
	height = MAX (_tmp8_, height) + (_tmp9_ * 2);
#line 137 "widgets-matchlistview.vala"
	result = height;
#line 137 "widgets-matchlistview.vala"
	_g_free0 (s);
#line 137 "widgets-matchlistview.vala"
	return result;
#line 1131 "widgets-matchlistview.c"
}

static void
synapse_gui_match_view_renderer_size_changed (SynapseGuiMatchViewRenderer* self)
{
#line 140 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 142 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_match_view_renderer_base_calculate_row_height ((SynapseGuiMatchListViewMatchViewRendererBase*) self);
#line 143 "widgets-matchlistview.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 1143 "widgets-matchlistview.c"
}

static void
synapse_gui_match_view_renderer_draw_icon (SynapseGuiMatchViewRenderer* self,
                                           cairo_t* ctx,
                                           SynapseMatch* m,
                                           gint x,
                                           gint y)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gint _tmp2_;
#line 146 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 146 "widgets-matchlistview.vala"
	g_return_if_fail (ctx != NULL);
#line 146 "widgets-matchlistview.vala"
	g_return_if_fail (m != NULL);
#line 148 "widgets-matchlistview.vala"
	cairo_save (ctx);
#line 149 "widgets-matchlistview.vala"
	cairo_translate (ctx, (gdouble) x, (gdouble) y);
#line 150 "widgets-matchlistview.vala"
	_tmp0_ = synapse_match_get_icon_name (m);
#line 150 "widgets-matchlistview.vala"
	_tmp1_ = _tmp0_;
#line 150 "widgets-matchlistview.vala"
	_tmp2_ = self->priv->_icon_size;
#line 150 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_match_view_renderer_base_draw_icon_in_position ((SynapseGuiMatchListViewMatchViewRendererBase*) self, ctx, _tmp1_, _tmp2_, 1.0);
#line 151 "widgets-matchlistview.vala"
	cairo_restore (ctx);
#line 1176 "widgets-matchlistview.c"
}

static void
synapse_gui_match_view_renderer_draw_action (SynapseGuiMatchViewRenderer* self,
                                             cairo_t* ctx,
                                             gint x,
                                             gint y,
                                             gdouble selected_fill_pct)
{
	SynapseMatch* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gint _tmp3_;
#line 153 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 153 "widgets-matchlistview.vala"
	g_return_if_fail (ctx != NULL);
#line 155 "widgets-matchlistview.vala"
	if (selected_fill_pct < 0.9) {
#line 155 "widgets-matchlistview.vala"
		return;
#line 1198 "widgets-matchlistview.c"
	}
#line 156 "widgets-matchlistview.vala"
	if (selected_fill_pct < 1.0) {
#line 156 "widgets-matchlistview.vala"
		selected_fill_pct = selected_fill_pct / 3.0;
#line 1204 "widgets-matchlistview.c"
	}
#line 157 "widgets-matchlistview.vala"
	cairo_save (ctx);
#line 158 "widgets-matchlistview.vala"
	cairo_translate (ctx, (gdouble) x, (gdouble) y);
#line 159 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->_action;
#line 159 "widgets-matchlistview.vala"
	_tmp1_ = synapse_match_get_icon_name (_tmp0_);
#line 159 "widgets-matchlistview.vala"
	_tmp2_ = _tmp1_;
#line 159 "widgets-matchlistview.vala"
	_tmp3_ = self->priv->_icon_size;
#line 159 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_match_view_renderer_base_draw_icon_in_position ((SynapseGuiMatchListViewMatchViewRendererBase*) self, ctx, _tmp2_, _tmp3_, selected_fill_pct);
#line 160 "widgets-matchlistview.vala"
	cairo_restore (ctx);
#line 1222 "widgets-matchlistview.c"
}

static void
synapse_gui_match_view_renderer_draw_text (SynapseGuiMatchViewRenderer* self,
                                           cairo_t* ctx,
                                           SynapseMatch* m,
                                           gint x,
                                           gint y,
                                           gint width,
                                           GtkStateFlags state,
                                           gboolean use_base,
                                           gdouble selected_fill_pct)
{
	gboolean selected = FALSE;
	SynapseGuiStyleType styletype = 0;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gchar* s = NULL;
	gchar* _tmp7_;
	gboolean _tmp8_ = FALSE;
	gboolean _tmp9_ = FALSE;
	gboolean _tmp10_;
	PangoLayout* layout = NULL;
	PangoLayout* _tmp23_;
	PangoLayout* _tmp24_;
	const gchar* _tmp25_;
	PangoLayout* _tmp26_;
	PangoLayout* _tmp27_;
	PangoLayout* _tmp28_;
	gboolean _tmp29_ = FALSE;
	gboolean _tmp30_;
	gboolean has_extended_info = FALSE;
	gboolean _tmp31_ = FALSE;
	gboolean _tmp32_;
	gint width_for_description = 0;
	gint _tmp33_;
	const gchar* _tmp49_;
	gchar* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	PangoLayout* _tmp53_;
	const gchar* _tmp54_;
	PangoLayout* _tmp55_;
	gint w = 0;
	gint h = 0;
	PangoLayout* _tmp56_;
	gint _tmp57_ = 0;
	gint _tmp58_ = 0;
	PangoLayout* _tmp59_;
#line 163 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 163 "widgets-matchlistview.vala"
	g_return_if_fail (ctx != NULL);
#line 163 "widgets-matchlistview.vala"
	g_return_if_fail (m != NULL);
#line 165 "widgets-matchlistview.vala"
	cairo_save (ctx);
#line 166 "widgets-matchlistview.vala"
	cairo_translate (ctx, (gdouble) x, (gdouble) y);
#line 167 "widgets-matchlistview.vala"
	cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) width, (gdouble) self->priv->text_height);
#line 168 "widgets-matchlistview.vala"
	cairo_clip (ctx);
#line 170 "widgets-matchlistview.vala"
	selected = state == GTK_STATE_FLAG_SELECTED;
#line 172 "widgets-matchlistview.vala"
	styletype = SYNAPSE_GUI_STYLE_TYPE_FG;
#line 173 "widgets-matchlistview.vala"
	if (use_base) {
#line 173 "widgets-matchlistview.vala"
		_tmp0_ = TRUE;
#line 1294 "widgets-matchlistview.c"
	} else {
#line 173 "widgets-matchlistview.vala"
		_tmp0_ = selected;
#line 1298 "widgets-matchlistview.c"
	}
#line 173 "widgets-matchlistview.vala"
	if (_tmp0_) {
#line 173 "widgets-matchlistview.vala"
		styletype = SYNAPSE_GUI_STYLE_TYPE_TEXT;
#line 1304 "widgets-matchlistview.c"
	}
#line 175 "widgets-matchlistview.vala"
	if (selected) {
#line 175 "widgets-matchlistview.vala"
		_tmp1_ = selected_fill_pct < 1.0;
#line 1310 "widgets-matchlistview.c"
	} else {
#line 175 "widgets-matchlistview.vala"
		_tmp1_ = FALSE;
#line 1314 "widgets-matchlistview.c"
	}
#line 175 "widgets-matchlistview.vala"
	if (_tmp1_) {
#line 1318 "widgets-matchlistview.c"
		gdouble r = 0.0;
		gdouble g = 0.0;
		gdouble b = 0.0;
		SynapseGuiUtilsColorHelper* _tmp2_;
		gdouble _tmp3_ = 0.0;
		gdouble _tmp4_ = 0.0;
		gdouble _tmp5_ = 0.0;
#line 177 "widgets-matchlistview.vala"
		r = (gdouble) 0;
#line 177 "widgets-matchlistview.vala"
		g = (gdouble) 0;
#line 177 "widgets-matchlistview.vala"
		b = (gdouble) 0;
#line 178 "widgets-matchlistview.vala"
		_tmp2_ = ((SynapseGuiMatchListViewMatchViewRendererBase*) self)->ch;
#line 178 "widgets-matchlistview.vala"
		synapse_gui_utils_color_helper_get_rgb_from_mix (_tmp2_, styletype, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL, styletype, GTK_STATE_FLAG_SELECTED, SYNAPSE_GUI_MOD_NORMAL, selected_fill_pct, &_tmp3_, &_tmp4_, &_tmp5_);
#line 178 "widgets-matchlistview.vala"
		r = _tmp3_;
#line 178 "widgets-matchlistview.vala"
		g = _tmp4_;
#line 178 "widgets-matchlistview.vala"
		b = _tmp5_;
#line 181 "widgets-matchlistview.vala"
		cairo_set_source_rgba (ctx, r, g, b, 1.0);
#line 1344 "widgets-matchlistview.c"
	} else {
		SynapseGuiUtilsColorHelper* _tmp6_;
#line 185 "widgets-matchlistview.vala"
		_tmp6_ = ((SynapseGuiMatchListViewMatchViewRendererBase*) self)->ch;
#line 185 "widgets-matchlistview.vala"
		synapse_gui_utils_color_helper_set_source_rgba (_tmp6_, ctx, 1.0, styletype, state, SYNAPSE_GUI_MOD_NORMAL);
#line 1351 "widgets-matchlistview.c"
	}
#line 188 "widgets-matchlistview.vala"
	_tmp7_ = g_strdup ("");
#line 188 "widgets-matchlistview.vala"
	s = _tmp7_;
#line 190 "widgets-matchlistview.vala"
	_tmp10_ = self->priv->_hilight_on_selected;
#line 190 "widgets-matchlistview.vala"
	if (_tmp10_) {
#line 190 "widgets-matchlistview.vala"
		_tmp9_ = selected;
#line 1363 "widgets-matchlistview.c"
	} else {
#line 190 "widgets-matchlistview.vala"
		_tmp9_ = FALSE;
#line 1367 "widgets-matchlistview.c"
	}
#line 190 "widgets-matchlistview.vala"
	if (_tmp9_) {
#line 190 "widgets-matchlistview.vala"
		_tmp8_ = selected_fill_pct == 1.0;
#line 1373 "widgets-matchlistview.c"
	} else {
#line 190 "widgets-matchlistview.vala"
		_tmp8_ = FALSE;
#line 1377 "widgets-matchlistview.c"
	}
#line 190 "widgets-matchlistview.vala"
	if (_tmp8_) {
#line 1381 "widgets-matchlistview.c"
		const gchar* _tmp11_;
		const gchar* _tmp12_;
		const gchar* _tmp13_;
		const gchar* _tmp14_;
		gboolean _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		gchar* _tmp18_;
#line 192 "widgets-matchlistview.vala"
		_tmp11_ = self->priv->_title_markup;
#line 192 "widgets-matchlistview.vala"
		_tmp12_ = synapse_match_get_title (m);
#line 192 "widgets-matchlistview.vala"
		_tmp13_ = _tmp12_;
#line 192 "widgets-matchlistview.vala"
		_tmp14_ = self->priv->_pattern;
#line 192 "widgets-matchlistview.vala"
		_tmp15_ = self->priv->_show_pattern_in_hilight;
#line 192 "widgets-matchlistview.vala"
		_tmp16_ = synapse_gui_utils_markup_string_with_search (_tmp13_, _tmp14_, "", _tmp15_);
#line 192 "widgets-matchlistview.vala"
		_tmp17_ = _tmp16_;
#line 192 "widgets-matchlistview.vala"
		_tmp18_ = g_strdup_printf (_tmp11_, _tmp17_);
#line 192 "widgets-matchlistview.vala"
		_g_free0 (s);
#line 192 "widgets-matchlistview.vala"
		s = _tmp18_;
#line 192 "widgets-matchlistview.vala"
		_g_free0 (_tmp17_);
#line 1412 "widgets-matchlistview.c"
	} else {
		const gchar* _tmp19_;
		const gchar* _tmp20_;
		const gchar* _tmp21_;
		gchar* _tmp22_;
#line 196 "widgets-matchlistview.vala"
		_tmp19_ = self->priv->_title_markup;
#line 196 "widgets-matchlistview.vala"
		_tmp20_ = synapse_match_get_title (m);
#line 196 "widgets-matchlistview.vala"
		_tmp21_ = _tmp20_;
#line 196 "widgets-matchlistview.vala"
		_tmp22_ = g_markup_printf_escaped (_tmp19_, _tmp21_);
#line 196 "widgets-matchlistview.vala"
		_g_free0 (s);
#line 196 "widgets-matchlistview.vala"
		s = _tmp22_;
#line 1430 "widgets-matchlistview.c"
	}
#line 198 "widgets-matchlistview.vala"
	_tmp23_ = gtk_label_get_layout ((GtkLabel*) self);
#line 198 "widgets-matchlistview.vala"
	layout = _tmp23_;
#line 199 "widgets-matchlistview.vala"
	_tmp24_ = layout;
#line 199 "widgets-matchlistview.vala"
	_tmp25_ = s;
#line 199 "widgets-matchlistview.vala"
	pango_layout_set_markup (_tmp24_, _tmp25_, -1);
#line 200 "widgets-matchlistview.vala"
	_tmp26_ = layout;
#line 200 "widgets-matchlistview.vala"
	pango_layout_set_ellipsize (_tmp26_, PANGO_ELLIPSIZE_END);
#line 201 "widgets-matchlistview.vala"
	_tmp27_ = layout;
#line 201 "widgets-matchlistview.vala"
	pango_layout_set_width (_tmp27_, PANGO_SCALE * width);
#line 202 "widgets-matchlistview.vala"
	_tmp28_ = layout;
#line 202 "widgets-matchlistview.vala"
	pango_cairo_show_layout (ctx, _tmp28_);
#line 204 "widgets-matchlistview.vala"
	_tmp30_ = self->priv->_show_extended_info;
#line 204 "widgets-matchlistview.vala"
	if (_tmp30_) {
#line 204 "widgets-matchlistview.vala"
		_tmp29_ = G_TYPE_CHECK_INSTANCE_TYPE (m, SYNAPSE_TYPE_EXTENDED_INFO);
#line 1460 "widgets-matchlistview.c"
	} else {
#line 204 "widgets-matchlistview.vala"
		_tmp29_ = FALSE;
#line 1464 "widgets-matchlistview.c"
	}
#line 204 "widgets-matchlistview.vala"
	has_extended_info = _tmp29_;
#line 205 "widgets-matchlistview.vala"
	_tmp32_ = self->priv->_hide_extended_on_selected;
#line 205 "widgets-matchlistview.vala"
	if (_tmp32_) {
#line 205 "widgets-matchlistview.vala"
		_tmp31_ = selected;
#line 1474 "widgets-matchlistview.c"
	} else {
#line 205 "widgets-matchlistview.vala"
		_tmp31_ = FALSE;
#line 1478 "widgets-matchlistview.c"
	}
#line 205 "widgets-matchlistview.vala"
	if (_tmp31_) {
#line 205 "widgets-matchlistview.vala"
		has_extended_info = FALSE;
#line 1484 "widgets-matchlistview.c"
	}
#line 206 "widgets-matchlistview.vala"
	_tmp33_ = self->priv->_cell_hpadding;
#line 206 "widgets-matchlistview.vala"
	width_for_description = width - _tmp33_;
#line 209 "widgets-matchlistview.vala"
	if (has_extended_info) {
#line 1492 "widgets-matchlistview.c"
		const gchar* _tmp34_ = NULL;
		const gchar* _tmp35_;
		const gchar* _tmp36_;
		const gchar* _tmp37_;
		gchar* _tmp38_;
		const gchar* _tmp39_;
		const gchar* _tmp40_;
		gchar* _tmp41_;
		PangoLayout* _tmp42_;
		const gchar* _tmp43_;
		PangoLayout* _tmp44_;
		gint w = 0;
		gint h = 0;
		PangoLayout* _tmp45_;
		gint _tmp46_ = 0;
		gint _tmp47_ = 0;
		PangoLayout* _tmp48_;
#line 211 "widgets-matchlistview.vala"
		cairo_save (ctx);
#line 212 "widgets-matchlistview.vala"
		_tmp35_ = synapse_extended_info_get_extended_info (G_TYPE_CHECK_INSTANCE_CAST (m, SYNAPSE_TYPE_EXTENDED_INFO, SynapseExtendedInfo));
#line 212 "widgets-matchlistview.vala"
		_tmp36_ = _tmp35_;
#line 212 "widgets-matchlistview.vala"
		_tmp34_ = _tmp36_;
#line 212 "widgets-matchlistview.vala"
		if (_tmp34_ == NULL) {
#line 212 "widgets-matchlistview.vala"
			_tmp34_ = "";
#line 1522 "widgets-matchlistview.c"
		}
#line 212 "widgets-matchlistview.vala"
		_tmp37_ = self->priv->_extended_info_markup;
#line 212 "widgets-matchlistview.vala"
		_tmp38_ = g_markup_printf_escaped (_tmp37_, _tmp34_);
#line 212 "widgets-matchlistview.vala"
		_g_free0 (s);
#line 212 "widgets-matchlistview.vala"
		s = _tmp38_;
#line 213 "widgets-matchlistview.vala"
		_tmp39_ = self->priv->_description_markup;
#line 213 "widgets-matchlistview.vala"
		_tmp40_ = s;
#line 213 "widgets-matchlistview.vala"
		_tmp41_ = g_strdup_printf (_tmp39_, _tmp40_);
#line 213 "widgets-matchlistview.vala"
		_g_free0 (s);
#line 213 "widgets-matchlistview.vala"
		s = _tmp41_;
#line 214 "widgets-matchlistview.vala"
		_tmp42_ = layout;
#line 214 "widgets-matchlistview.vala"
		_tmp43_ = s;
#line 214 "widgets-matchlistview.vala"
		pango_layout_set_markup (_tmp42_, _tmp43_, -1);
#line 215 "widgets-matchlistview.vala"
		_tmp44_ = layout;
#line 215 "widgets-matchlistview.vala"
		pango_layout_set_width (_tmp44_, PANGO_SCALE * width_for_description);
#line 216 "widgets-matchlistview.vala"
		w = 0;
#line 216 "widgets-matchlistview.vala"
		h = 0;
#line 217 "widgets-matchlistview.vala"
		_tmp45_ = layout;
#line 217 "widgets-matchlistview.vala"
		pango_layout_get_pixel_size (_tmp45_, &_tmp46_, &_tmp47_);
#line 217 "widgets-matchlistview.vala"
		w = _tmp46_;
#line 217 "widgets-matchlistview.vala"
		h = _tmp47_;
#line 218 "widgets-matchlistview.vala"
		w += self->priv->_cell_hpadding * 2;
#line 220 "widgets-matchlistview.vala"
		width_for_description -= w;
#line 222 "widgets-matchlistview.vala"
		if (((SynapseGuiMatchListViewMatchViewRendererBase*) self)->rtl == GTK_TEXT_DIR_RTL) {
#line 223 "widgets-matchlistview.vala"
			cairo_translate (ctx, (gdouble) ((-width) + w), (gdouble) (self->priv->text_height - h));
#line 1572 "widgets-matchlistview.c"
		} else {
#line 225 "widgets-matchlistview.vala"
			cairo_translate (ctx, (gdouble) (width - w), (gdouble) (self->priv->text_height - h));
#line 1576 "widgets-matchlistview.c"
		}
#line 226 "widgets-matchlistview.vala"
		_tmp48_ = layout;
#line 226 "widgets-matchlistview.vala"
		pango_cairo_show_layout (ctx, _tmp48_);
#line 227 "widgets-matchlistview.vala"
		cairo_restore (ctx);
#line 1584 "widgets-matchlistview.c"
	}
#line 231 "widgets-matchlistview.vala"
	_tmp49_ = self->priv->_description_markup;
#line 231 "widgets-matchlistview.vala"
	_tmp50_ = synapse_gui_utils_get_printable_description (m);
#line 231 "widgets-matchlistview.vala"
	_tmp51_ = _tmp50_;
#line 231 "widgets-matchlistview.vala"
	_tmp52_ = g_markup_printf_escaped (_tmp49_, _tmp51_);
#line 231 "widgets-matchlistview.vala"
	_g_free0 (s);
#line 231 "widgets-matchlistview.vala"
	s = _tmp52_;
#line 231 "widgets-matchlistview.vala"
	_g_free0 (_tmp51_);
#line 233 "widgets-matchlistview.vala"
	_tmp53_ = layout;
#line 233 "widgets-matchlistview.vala"
	_tmp54_ = s;
#line 233 "widgets-matchlistview.vala"
	pango_layout_set_markup (_tmp53_, _tmp54_, -1);
#line 234 "widgets-matchlistview.vala"
	_tmp55_ = layout;
#line 234 "widgets-matchlistview.vala"
	pango_layout_set_width (_tmp55_, PANGO_SCALE * width_for_description);
#line 235 "widgets-matchlistview.vala"
	w = 0;
#line 235 "widgets-matchlistview.vala"
	h = 0;
#line 236 "widgets-matchlistview.vala"
	_tmp56_ = layout;
#line 236 "widgets-matchlistview.vala"
	pango_layout_get_pixel_size (_tmp56_, &_tmp57_, &_tmp58_);
#line 236 "widgets-matchlistview.vala"
	w = _tmp57_;
#line 236 "widgets-matchlistview.vala"
	h = _tmp58_;
#line 238 "widgets-matchlistview.vala"
	if (((SynapseGuiMatchListViewMatchViewRendererBase*) self)->rtl == GTK_TEXT_DIR_RTL) {
#line 239 "widgets-matchlistview.vala"
		cairo_translate (ctx, (gdouble) (width - width_for_description), (gdouble) (self->priv->text_height - h));
#line 1626 "widgets-matchlistview.c"
	} else {
#line 241 "widgets-matchlistview.vala"
		cairo_translate (ctx, (gdouble) 0, (gdouble) (self->priv->text_height - h));
#line 1630 "widgets-matchlistview.c"
	}
#line 243 "widgets-matchlistview.vala"
	_tmp59_ = layout;
#line 243 "widgets-matchlistview.vala"
	pango_cairo_show_layout (ctx, _tmp59_);
#line 244 "widgets-matchlistview.vala"
	cairo_restore (ctx);
#line 163 "widgets-matchlistview.vala"
	_g_free0 (s);
#line 1640 "widgets-matchlistview.c"
}

SynapseGuiMatchViewRenderer*
synapse_gui_match_view_renderer_construct (GType object_type)
{
	SynapseGuiMatchViewRenderer * self = NULL;
#line 24 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchViewRenderer*) synapse_gui_match_list_view_match_view_renderer_base_construct (object_type);
#line 24 "widgets-matchlistview.vala"
	return self;
#line 1651 "widgets-matchlistview.c"
}

SynapseGuiMatchViewRenderer*
synapse_gui_match_view_renderer_new (void)
{
#line 24 "widgets-matchlistview.vala"
	return synapse_gui_match_view_renderer_construct (SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER);
#line 1659 "widgets-matchlistview.c"
}

gint
synapse_gui_match_view_renderer_get_icon_size (SynapseGuiMatchViewRenderer* self)
{
	gint result;
#line 27 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 27 "widgets-matchlistview.vala"
	result = self->priv->_icon_size;
#line 27 "widgets-matchlistview.vala"
	return result;
#line 1672 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_icon_size (SynapseGuiMatchViewRenderer* self,
                                               gint value)
{
	gint old_value;
#line 27 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 27 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_icon_size (self);
#line 27 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 27 "widgets-matchlistview.vala"
		self->priv->_icon_size = value;
#line 27 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_ICON_SIZE_PROPERTY]);
#line 1690 "widgets-matchlistview.c"
	}
}

gint
synapse_gui_match_view_renderer_get_cell_vpadding (SynapseGuiMatchViewRenderer* self)
{
	gint result;
#line 29 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 29 "widgets-matchlistview.vala"
	result = self->priv->_cell_vpadding;
#line 29 "widgets-matchlistview.vala"
	return result;
#line 1704 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_cell_vpadding (SynapseGuiMatchViewRenderer* self,
                                                   gint value)
{
	gint old_value;
#line 29 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 29 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_cell_vpadding (self);
#line 29 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 29 "widgets-matchlistview.vala"
		self->priv->_cell_vpadding = value;
#line 29 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_VPADDING_PROPERTY]);
#line 1722 "widgets-matchlistview.c"
	}
}

gint
synapse_gui_match_view_renderer_get_cell_hpadding (SynapseGuiMatchViewRenderer* self)
{
	gint result;
#line 31 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 31 "widgets-matchlistview.vala"
	result = self->priv->_cell_hpadding;
#line 31 "widgets-matchlistview.vala"
	return result;
#line 1736 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_cell_hpadding (SynapseGuiMatchViewRenderer* self,
                                                   gint value)
{
	gint old_value;
#line 31 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 31 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_cell_hpadding (self);
#line 31 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 31 "widgets-matchlistview.vala"
		self->priv->_cell_hpadding = value;
#line 31 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_HPADDING_PROPERTY]);
#line 1754 "widgets-matchlistview.c"
	}
}

gboolean
synapse_gui_match_view_renderer_get_hilight_on_selected (SynapseGuiMatchViewRenderer* self)
{
	gboolean result;
#line 33 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 33 "widgets-matchlistview.vala"
	result = self->priv->_hilight_on_selected;
#line 33 "widgets-matchlistview.vala"
	return result;
#line 1768 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_hilight_on_selected (SynapseGuiMatchViewRenderer* self,
                                                         gboolean value)
{
	gboolean old_value;
#line 33 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 33 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_hilight_on_selected (self);
#line 33 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 33 "widgets-matchlistview.vala"
		self->priv->_hilight_on_selected = value;
#line 33 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_HILIGHT_ON_SELECTED_PROPERTY]);
#line 1786 "widgets-matchlistview.c"
	}
}

gboolean
synapse_gui_match_view_renderer_get_show_pattern_in_hilight (SynapseGuiMatchViewRenderer* self)
{
	gboolean result;
#line 35 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 35 "widgets-matchlistview.vala"
	result = self->priv->_show_pattern_in_hilight;
#line 35 "widgets-matchlistview.vala"
	return result;
#line 1800 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_show_pattern_in_hilight (SynapseGuiMatchViewRenderer* self,
                                                             gboolean value)
{
	gboolean old_value;
#line 35 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 35 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_show_pattern_in_hilight (self);
#line 35 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 35 "widgets-matchlistview.vala"
		self->priv->_show_pattern_in_hilight = value;
#line 35 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_PATTERN_IN_HILIGHT_PROPERTY]);
#line 1818 "widgets-matchlistview.c"
	}
}

gboolean
synapse_gui_match_view_renderer_get_show_extended_info (SynapseGuiMatchViewRenderer* self)
{
	gboolean result;
#line 37 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 37 "widgets-matchlistview.vala"
	result = self->priv->_show_extended_info;
#line 37 "widgets-matchlistview.vala"
	return result;
#line 1832 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_show_extended_info (SynapseGuiMatchViewRenderer* self,
                                                        gboolean value)
{
	gboolean old_value;
#line 37 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 37 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_show_extended_info (self);
#line 37 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 37 "widgets-matchlistview.vala"
		self->priv->_show_extended_info = value;
#line 37 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_EXTENDED_INFO_PROPERTY]);
#line 1850 "widgets-matchlistview.c"
	}
}

gboolean
synapse_gui_match_view_renderer_get_hide_extended_on_selected (SynapseGuiMatchViewRenderer* self)
{
	gboolean result;
#line 39 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 39 "widgets-matchlistview.vala"
	result = self->priv->_hide_extended_on_selected;
#line 39 "widgets-matchlistview.vala"
	return result;
#line 1864 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_hide_extended_on_selected (SynapseGuiMatchViewRenderer* self,
                                                               gboolean value)
{
	gboolean old_value;
#line 39 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 39 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_hide_extended_on_selected (self);
#line 39 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 39 "widgets-matchlistview.vala"
		self->priv->_hide_extended_on_selected = value;
#line 39 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_HIDE_EXTENDED_ON_SELECTED_PROPERTY]);
#line 1882 "widgets-matchlistview.c"
	}
}

gboolean
synapse_gui_match_view_renderer_get_overlay_action (SynapseGuiMatchViewRenderer* self)
{
	gboolean result;
#line 41 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 41 "widgets-matchlistview.vala"
	result = self->priv->_overlay_action;
#line 41 "widgets-matchlistview.vala"
	return result;
#line 1896 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_overlay_action (SynapseGuiMatchViewRenderer* self,
                                                    gboolean value)
{
	gboolean old_value;
#line 41 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 41 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_overlay_action (self);
#line 41 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 41 "widgets-matchlistview.vala"
		self->priv->_overlay_action = value;
#line 41 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_OVERLAY_ACTION_PROPERTY]);
#line 1914 "widgets-matchlistview.c"
	}
}

const gchar*
synapse_gui_match_view_renderer_get_pattern (SynapseGuiMatchViewRenderer* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 43 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 43 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->_pattern;
#line 43 "widgets-matchlistview.vala"
	result = _tmp0_;
#line 43 "widgets-matchlistview.vala"
	return result;
#line 1931 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_pattern (SynapseGuiMatchViewRenderer* self,
                                             const gchar* value)
{
	gchar* old_value;
#line 43 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 43 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_pattern (self);
#line 43 "widgets-matchlistview.vala"
	if (g_strcmp0 (value, old_value) != 0) {
#line 1945 "widgets-matchlistview.c"
		gchar* _tmp0_;
#line 43 "widgets-matchlistview.vala"
		_tmp0_ = g_strdup (value);
#line 43 "widgets-matchlistview.vala"
		_g_free0 (self->priv->_pattern);
#line 43 "widgets-matchlistview.vala"
		self->priv->_pattern = _tmp0_;
#line 43 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_PATTERN_PROPERTY]);
#line 1955 "widgets-matchlistview.c"
	}
}

SynapseMatch*
synapse_gui_match_view_renderer_get_action (SynapseGuiMatchViewRenderer* self)
{
	SynapseMatch* result;
	SynapseMatch* _tmp0_;
#line 45 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 45 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->_action;
#line 45 "widgets-matchlistview.vala"
	result = _tmp0_;
#line 45 "widgets-matchlistview.vala"
	return result;
#line 1972 "widgets-matchlistview.c"
}

static gpointer
_g_object_ref0 (gpointer self)
{
#line 45 "widgets-matchlistview.vala"
	return self ? g_object_ref (self) : NULL;
#line 1980 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_action (SynapseGuiMatchViewRenderer* self,
                                            SynapseMatch* value)
{
	SynapseMatch* old_value;
#line 45 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 45 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_action (self);
#line 45 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 1994 "widgets-matchlistview.c"
		SynapseMatch* _tmp0_;
#line 45 "widgets-matchlistview.vala"
		_tmp0_ = _g_object_ref0 (value);
#line 45 "widgets-matchlistview.vala"
		_g_object_unref0 (self->priv->_action);
#line 45 "widgets-matchlistview.vala"
		self->priv->_action = _tmp0_;
#line 45 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_ACTION_PROPERTY]);
#line 2004 "widgets-matchlistview.c"
	}
}

const gchar*
synapse_gui_match_view_renderer_get_title_markup (SynapseGuiMatchViewRenderer* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 47 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 47 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->_title_markup;
#line 47 "widgets-matchlistview.vala"
	result = _tmp0_;
#line 47 "widgets-matchlistview.vala"
	return result;
#line 2021 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_title_markup (SynapseGuiMatchViewRenderer* self,
                                                  const gchar* value)
{
	gchar* old_value;
#line 47 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 47 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_title_markup (self);
#line 47 "widgets-matchlistview.vala"
	if (g_strcmp0 (value, old_value) != 0) {
#line 2035 "widgets-matchlistview.c"
		gchar* _tmp0_;
#line 47 "widgets-matchlistview.vala"
		_tmp0_ = g_strdup (value);
#line 47 "widgets-matchlistview.vala"
		_g_free0 (self->priv->_title_markup);
#line 47 "widgets-matchlistview.vala"
		self->priv->_title_markup = _tmp0_;
#line 47 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_TITLE_MARKUP_PROPERTY]);
#line 2045 "widgets-matchlistview.c"
	}
}

const gchar*
synapse_gui_match_view_renderer_get_description_markup (SynapseGuiMatchViewRenderer* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 49 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 49 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->_description_markup;
#line 49 "widgets-matchlistview.vala"
	result = _tmp0_;
#line 49 "widgets-matchlistview.vala"
	return result;
#line 2062 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_description_markup (SynapseGuiMatchViewRenderer* self,
                                                        const gchar* value)
{
	gchar* old_value;
#line 49 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 49 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_description_markup (self);
#line 49 "widgets-matchlistview.vala"
	if (g_strcmp0 (value, old_value) != 0) {
#line 2076 "widgets-matchlistview.c"
		gchar* _tmp0_;
#line 49 "widgets-matchlistview.vala"
		_tmp0_ = g_strdup (value);
#line 49 "widgets-matchlistview.vala"
		_g_free0 (self->priv->_description_markup);
#line 49 "widgets-matchlistview.vala"
		self->priv->_description_markup = _tmp0_;
#line 49 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_DESCRIPTION_MARKUP_PROPERTY]);
#line 2086 "widgets-matchlistview.c"
	}
}

const gchar*
synapse_gui_match_view_renderer_get_extended_info_markup (SynapseGuiMatchViewRenderer* self)
{
	const gchar* result;
	const gchar* _tmp0_;
#line 51 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 51 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->_extended_info_markup;
#line 51 "widgets-matchlistview.vala"
	result = _tmp0_;
#line 51 "widgets-matchlistview.vala"
	return result;
#line 2103 "widgets-matchlistview.c"
}

void
synapse_gui_match_view_renderer_set_extended_info_markup (SynapseGuiMatchViewRenderer* self,
                                                          const gchar* value)
{
	gchar* old_value;
#line 51 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 51 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_view_renderer_get_extended_info_markup (self);
#line 51 "widgets-matchlistview.vala"
	if (g_strcmp0 (value, old_value) != 0) {
#line 2117 "widgets-matchlistview.c"
		gchar* _tmp0_;
#line 51 "widgets-matchlistview.vala"
		_tmp0_ = g_strdup (value);
#line 51 "widgets-matchlistview.vala"
		_g_free0 (self->priv->_extended_info_markup);
#line 51 "widgets-matchlistview.vala"
		self->priv->_extended_info_markup = _tmp0_;
#line 51 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_EXTENDED_INFO_MARKUP_PROPERTY]);
#line 2127 "widgets-matchlistview.c"
	}
}

static void
_synapse_gui_match_view_renderer_size_changed_g_object_notify (GObject* _sender,
                                                               GParamSpec* pspec,
                                                               gpointer self)
{
#line 59 "widgets-matchlistview.vala"
	synapse_gui_match_view_renderer_size_changed ((SynapseGuiMatchViewRenderer*) self);
#line 2138 "widgets-matchlistview.c"
}

static GObject *
synapse_gui_match_view_renderer_constructor (GType type,
                                             guint n_construct_properties,
                                             GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseGuiMatchViewRenderer * self;
	PangoLayout* _tmp0_;
#line 55 "widgets-matchlistview.vala"
	parent_class = G_OBJECT_CLASS (synapse_gui_match_view_renderer_parent_class);
#line 55 "widgets-matchlistview.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 55 "widgets-matchlistview.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER, SynapseGuiMatchViewRenderer);
#line 57 "widgets-matchlistview.vala"
	_tmp0_ = gtk_label_get_layout ((GtkLabel*) self);
#line 57 "widgets-matchlistview.vala"
	pango_layout_set_ellipsize (_tmp0_, PANGO_ELLIPSIZE_END);
#line 59 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::icon-size", (GCallback) _synapse_gui_match_view_renderer_size_changed_g_object_notify, self, 0);
#line 60 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::cell-vpadding", (GCallback) _synapse_gui_match_view_renderer_size_changed_g_object_notify, self, 0);
#line 61 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::cell-hpadding", (GCallback) _synapse_gui_match_view_renderer_size_changed_g_object_notify, self, 0);
#line 62 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::title-markup", (GCallback) _synapse_gui_match_view_renderer_size_changed_g_object_notify, self, 0);
#line 63 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::description-markup", (GCallback) _synapse_gui_match_view_renderer_size_changed_g_object_notify, self, 0);
#line 55 "widgets-matchlistview.vala"
	return obj;
#line 2172 "widgets-matchlistview.c"
}

static void
synapse_gui_match_view_renderer_class_init (SynapseGuiMatchViewRendererClass * klass,
                                            gpointer klass_data)
{
#line 24 "widgets-matchlistview.vala"
	synapse_gui_match_view_renderer_parent_class = g_type_class_peek_parent (klass);
#line 24 "widgets-matchlistview.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiMatchViewRenderer_private_offset);
#line 24 "widgets-matchlistview.vala"
	((SynapseGuiMatchListViewMatchViewRendererBaseClass *) klass)->render_match = (void (*) (SynapseGuiMatchListViewMatchViewRendererBase*, cairo_t*, SynapseMatch*, gint, gint, gboolean, gdouble)) synapse_gui_match_view_renderer_real_render_match;
#line 24 "widgets-matchlistview.vala"
	((SynapseGuiMatchListViewMatchViewRendererBaseClass *) klass)->calculate_row_height = (gint (*) (SynapseGuiMatchListViewMatchViewRendererBase*)) synapse_gui_match_view_renderer_real_calculate_row_height;
#line 24 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_match_view_renderer_get_property;
#line 24 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_match_view_renderer_set_property;
#line 24 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_gui_match_view_renderer_constructor;
#line 24 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_match_view_renderer_finalize;
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_ICON_SIZE_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_ICON_SIZE_PROPERTY] = g_param_spec_int ("icon-size", "icon-size", "icon-size", G_MININT, G_MAXINT, 32, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_VPADDING_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_VPADDING_PROPERTY] = g_param_spec_int ("cell-vpadding", "cell-vpadding", "cell-vpadding", G_MININT, G_MAXINT, 2, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_HPADDING_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_HPADDING_PROPERTY] = g_param_spec_int ("cell-hpadding", "cell-hpadding", "cell-hpadding", G_MININT, G_MAXINT, 3, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_HILIGHT_ON_SELECTED_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_HILIGHT_ON_SELECTED_PROPERTY] = g_param_spec_boolean ("hilight-on-selected", "hilight-on-selected", "hilight-on-selected", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_PATTERN_IN_HILIGHT_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_PATTERN_IN_HILIGHT_PROPERTY] = g_param_spec_boolean ("show-pattern-in-hilight", "show-pattern-in-hilight", "show-pattern-in-hilight", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_EXTENDED_INFO_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_EXTENDED_INFO_PROPERTY] = g_param_spec_boolean ("show-extended-info", "show-extended-info", "show-extended-info", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_HIDE_EXTENDED_ON_SELECTED_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_HIDE_EXTENDED_ON_SELECTED_PROPERTY] = g_param_spec_boolean ("hide-extended-on-selected", "hide-extended-on-selected", "hide-extended-on-selected", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_OVERLAY_ACTION_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_OVERLAY_ACTION_PROPERTY] = g_param_spec_boolean ("overlay-action", "overlay-action", "overlay-action", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_PATTERN_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_PATTERN_PROPERTY] = g_param_spec_string ("pattern", "pattern", "pattern", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_ACTION_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_ACTION_PROPERTY] = g_param_spec_object ("action", "action", "action", SYNAPSE_TYPE_MATCH, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_TITLE_MARKUP_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_TITLE_MARKUP_PROPERTY] = g_param_spec_string ("title-markup", "title-markup", "title-markup", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_DESCRIPTION_MARKUP_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_DESCRIPTION_MARKUP_PROPERTY] = g_param_spec_string ("description-markup", "description-markup", "description-markup", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 24 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_VIEW_RENDERER_EXTENDED_INFO_MARKUP_PROPERTY, synapse_gui_match_view_renderer_properties[SYNAPSE_GUI_MATCH_VIEW_RENDERER_EXTENDED_INFO_MARKUP_PROPERTY] = g_param_spec_string ("extended-info-markup", "extended-info-markup", "extended-info-markup", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 2221 "widgets-matchlistview.c"
}

static void
synapse_gui_match_view_renderer_instance_init (SynapseGuiMatchViewRenderer * self,
                                               gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
#line 24 "widgets-matchlistview.vala"
	self->priv = synapse_gui_match_view_renderer_get_instance_private (self);
#line 27 "widgets-matchlistview.vala"
	self->priv->_icon_size = 32;
#line 29 "widgets-matchlistview.vala"
	self->priv->_cell_vpadding = 2;
#line 31 "widgets-matchlistview.vala"
	self->priv->_cell_hpadding = 3;
#line 33 "widgets-matchlistview.vala"
	self->priv->_hilight_on_selected = FALSE;
#line 35 "widgets-matchlistview.vala"
	self->priv->_show_pattern_in_hilight = FALSE;
#line 37 "widgets-matchlistview.vala"
	self->priv->_show_extended_info = TRUE;
#line 39 "widgets-matchlistview.vala"
	self->priv->_hide_extended_on_selected = FALSE;
#line 41 "widgets-matchlistview.vala"
	self->priv->_overlay_action = FALSE;
#line 43 "widgets-matchlistview.vala"
	_tmp0_ = g_strdup ("");
#line 43 "widgets-matchlistview.vala"
	self->priv->_pattern = _tmp0_;
#line 45 "widgets-matchlistview.vala"
	self->priv->_action = NULL;
#line 47 "widgets-matchlistview.vala"
	_tmp1_ = g_strdup ("<span size=\"medium\"><b>%s</b></span>");
#line 47 "widgets-matchlistview.vala"
	self->priv->_title_markup = _tmp1_;
#line 49 "widgets-matchlistview.vala"
	_tmp2_ = g_strdup ("<span size=\"small\">%s</span>");
#line 49 "widgets-matchlistview.vala"
	self->priv->_description_markup = _tmp2_;
#line 51 "widgets-matchlistview.vala"
	_tmp3_ = g_strdup ("%s");
#line 51 "widgets-matchlistview.vala"
	self->priv->_extended_info_markup = _tmp3_;
#line 53 "widgets-matchlistview.vala"
	self->priv->text_height = 1;
#line 2270 "widgets-matchlistview.c"
}

static void
synapse_gui_match_view_renderer_finalize (GObject * obj)
{
	SynapseGuiMatchViewRenderer * self;
#line 24 "widgets-matchlistview.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER, SynapseGuiMatchViewRenderer);
#line 43 "widgets-matchlistview.vala"
	_g_free0 (self->priv->_pattern);
#line 45 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->_action);
#line 47 "widgets-matchlistview.vala"
	_g_free0 (self->priv->_title_markup);
#line 49 "widgets-matchlistview.vala"
	_g_free0 (self->priv->_description_markup);
#line 51 "widgets-matchlistview.vala"
	_g_free0 (self->priv->_extended_info_markup);
#line 24 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (synapse_gui_match_view_renderer_parent_class)->finalize (obj);
#line 2291 "widgets-matchlistview.c"
}

static GType
synapse_gui_match_view_renderer_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiMatchViewRendererClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_match_view_renderer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiMatchViewRenderer), 0, (GInstanceInitFunc) synapse_gui_match_view_renderer_instance_init, NULL };
	GType synapse_gui_match_view_renderer_type_id;
	synapse_gui_match_view_renderer_type_id = g_type_register_static (SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE, "SynapseGuiMatchViewRenderer", &g_define_type_info, 0);
	SynapseGuiMatchViewRenderer_private_offset = g_type_add_instance_private (synapse_gui_match_view_renderer_type_id, sizeof (SynapseGuiMatchViewRendererPrivate));
	return synapse_gui_match_view_renderer_type_id;
}

GType
synapse_gui_match_view_renderer_get_type (void)
{
	static volatile gsize synapse_gui_match_view_renderer_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_match_view_renderer_type_id__once)) {
		GType synapse_gui_match_view_renderer_type_id;
		synapse_gui_match_view_renderer_type_id = synapse_gui_match_view_renderer_get_type_once ();
		g_once_init_leave (&synapse_gui_match_view_renderer_type_id__once, synapse_gui_match_view_renderer_type_id);
	}
	return synapse_gui_match_view_renderer_type_id__once;
}

static void
_vala_synapse_gui_match_view_renderer_get_property (GObject * object,
                                                    guint property_id,
                                                    GValue * value,
                                                    GParamSpec * pspec)
{
	SynapseGuiMatchViewRenderer * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER, SynapseGuiMatchViewRenderer);
#line 24 "widgets-matchlistview.vala"
	switch (property_id) {
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_ICON_SIZE_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_int (value, synapse_gui_match_view_renderer_get_icon_size (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_VPADDING_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_int (value, synapse_gui_match_view_renderer_get_cell_vpadding (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_HPADDING_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_int (value, synapse_gui_match_view_renderer_get_cell_hpadding (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_HILIGHT_ON_SELECTED_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_match_view_renderer_get_hilight_on_selected (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_PATTERN_IN_HILIGHT_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_match_view_renderer_get_show_pattern_in_hilight (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_EXTENDED_INFO_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_match_view_renderer_get_show_extended_info (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_HIDE_EXTENDED_ON_SELECTED_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_match_view_renderer_get_hide_extended_on_selected (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_OVERLAY_ACTION_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_match_view_renderer_get_overlay_action (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_PATTERN_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_string (value, synapse_gui_match_view_renderer_get_pattern (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_ACTION_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_object (value, synapse_gui_match_view_renderer_get_action (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_TITLE_MARKUP_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_string (value, synapse_gui_match_view_renderer_get_title_markup (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_DESCRIPTION_MARKUP_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_string (value, synapse_gui_match_view_renderer_get_description_markup (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_EXTENDED_INFO_MARKUP_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		g_value_set_string (value, synapse_gui_match_view_renderer_get_extended_info_markup (self));
#line 24 "widgets-matchlistview.vala"
		break;
#line 2404 "widgets-matchlistview.c"
		default:
#line 24 "widgets-matchlistview.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 24 "widgets-matchlistview.vala"
		break;
#line 2410 "widgets-matchlistview.c"
	}
}

static void
_vala_synapse_gui_match_view_renderer_set_property (GObject * object,
                                                    guint property_id,
                                                    const GValue * value,
                                                    GParamSpec * pspec)
{
	SynapseGuiMatchViewRenderer * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_MATCH_VIEW_RENDERER, SynapseGuiMatchViewRenderer);
#line 24 "widgets-matchlistview.vala"
	switch (property_id) {
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_ICON_SIZE_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_icon_size (self, g_value_get_int (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_VPADDING_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_cell_vpadding (self, g_value_get_int (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_CELL_HPADDING_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_cell_hpadding (self, g_value_get_int (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_HILIGHT_ON_SELECTED_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_hilight_on_selected (self, g_value_get_boolean (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_PATTERN_IN_HILIGHT_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_show_pattern_in_hilight (self, g_value_get_boolean (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_SHOW_EXTENDED_INFO_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_show_extended_info (self, g_value_get_boolean (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_HIDE_EXTENDED_ON_SELECTED_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_hide_extended_on_selected (self, g_value_get_boolean (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_OVERLAY_ACTION_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_overlay_action (self, g_value_get_boolean (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_PATTERN_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_pattern (self, g_value_get_string (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_ACTION_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_action (self, g_value_get_object (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_TITLE_MARKUP_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_title_markup (self, g_value_get_string (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_DESCRIPTION_MARKUP_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_description_markup (self, g_value_get_string (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 24 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_VIEW_RENDERER_EXTENDED_INFO_MARKUP_PROPERTY:
#line 24 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_extended_info_markup (self, g_value_get_string (value));
#line 24 "widgets-matchlistview.vala"
		break;
#line 2502 "widgets-matchlistview.c"
		default:
#line 24 "widgets-matchlistview.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 24 "widgets-matchlistview.vala"
		break;
#line 2508 "widgets-matchlistview.c"
	}
}

static inline gpointer
synapse_gui_match_list_view_get_instance_private (SynapseGuiMatchListView* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiMatchListView_private_offset);
}

static GType
synapse_gui_match_list_view_behavior_get_type_once (void)
{
	static const GEnumValue values[] = {{SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_TOP, "SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_TOP", "top"}, {SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER, "SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER", "center"}, {SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_BOTTOM, "SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_BOTTOM", "bottom"}, {SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_TOP_FORCED, "SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_TOP_FORCED", "top-forced"}, {SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER_FORCED, "SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER_FORCED", "center-forced"}, {SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_BOTTOM_FORCED, "SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_BOTTOM_FORCED", "bottom-forced"}, {0, NULL, NULL}};
	GType synapse_gui_match_list_view_behavior_type_id;
	synapse_gui_match_list_view_behavior_type_id = g_enum_register_static ("SynapseGuiMatchListViewBehavior", values);
	return synapse_gui_match_list_view_behavior_type_id;
}

GType
synapse_gui_match_list_view_behavior_get_type (void)
{
	static volatile gsize synapse_gui_match_list_view_behavior_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_match_list_view_behavior_type_id__once)) {
		GType synapse_gui_match_list_view_behavior_type_id;
		synapse_gui_match_list_view_behavior_type_id = synapse_gui_match_list_view_behavior_get_type_once ();
		g_once_init_leave (&synapse_gui_match_list_view_behavior_type_id__once, synapse_gui_match_list_view_behavior_type_id);
	}
	return synapse_gui_match_list_view_behavior_type_id__once;
}

void
synapse_gui_match_list_view_set_indexes (SynapseGuiMatchListView* self,
                                         gint targetted,
                                         gint selected)
{
	gboolean b = FALSE;
	gboolean _tmp0_ = FALSE;
#line 286 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 288 "widgets-matchlistview.vala"
	b = _synapse_gui_match_list_view_select (self, selected);
#line 289 "widgets-matchlistview.vala"
	if (_synapse_gui_match_list_view_goto (self, targetted)) {
#line 289 "widgets-matchlistview.vala"
		_tmp0_ = TRUE;
#line 2554 "widgets-matchlistview.c"
	} else {
#line 289 "widgets-matchlistview.vala"
		_tmp0_ = b;
#line 2558 "widgets-matchlistview.c"
	}
#line 289 "widgets-matchlistview.vala"
	b = _tmp0_;
#line 290 "widgets-matchlistview.vala"
	if (b) {
#line 290 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_update_target_offsets (self);
#line 2566 "widgets-matchlistview.c"
	}
}

SynapseGuiMatchListViewMatchViewRendererBase*
synapse_gui_match_list_view_get_renderer (SynapseGuiMatchListView* self)
{
	SynapseGuiMatchListViewMatchViewRendererBase* _tmp0_;
	SynapseGuiMatchListViewMatchViewRendererBase* _tmp1_;
	SynapseGuiMatchListViewMatchViewRendererBase* result;
#line 417 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 419 "widgets-matchlistview.vala"
	_tmp0_ = self->renderer;
#line 419 "widgets-matchlistview.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 419 "widgets-matchlistview.vala"
	result = _tmp1_;
#line 419 "widgets-matchlistview.vala"
	return result;
#line 2586 "widgets-matchlistview.c"
}

static void
_synapse_gui_match_list_view_update_target_offsets_gtk_widget_size_allocate (GtkWidget* _sender,
                                                                             GtkAllocation* allocation,
                                                                             gpointer self)
{
#line 456 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_update_target_offsets ((SynapseGuiMatchListView*) self);
#line 2596 "widgets-matchlistview.c"
}

static void
_synapse_gui_match_list_view_update_target_offsets_g_object_notify (GObject* _sender,
                                                                    GParamSpec* pspec,
                                                                    gpointer self)
{
#line 457 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_update_target_offsets ((SynapseGuiMatchListView*) self);
#line 2606 "widgets-matchlistview.c"
}

static void
_gtk_widget_queue_resize_g_object_notify (GObject* _sender,
                                          GParamSpec* pspec,
                                          gpointer self)
{
#line 458 "widgets-matchlistview.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 2616 "widgets-matchlistview.c"
}

static void
__lambda14_ (SynapseGuiMatchListView* self)
{
#line 460 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_update_current_offsets (self);
#line 2624 "widgets-matchlistview.c"
}

static void
___lambda14__g_object_notify (GObject* _sender,
                              GParamSpec* pspec,
                              gpointer self)
{
#line 459 "widgets-matchlistview.vala"
	__lambda14_ ((SynapseGuiMatchListView*) self);
#line 2634 "widgets-matchlistview.c"
}

SynapseGuiMatchListView*
synapse_gui_match_list_view_construct (GType object_type,
                                       SynapseGuiMatchListViewMatchViewRendererBase* mr)
{
	SynapseGuiMatchListView * self = NULL;
	SynapseGuiUtilsColorHelper* _tmp0_;
	SynapseGuiMatchListViewMatchViewRendererBase* _tmp1_;
	GtkTargetEntry* _tmp2_;
	GtkTargetEntry* _tmp3_;
	gint _tmp3__length1;
	SynapseGuiMatchListViewMatchViewRendererBase* _tmp4_;
#line 422 "widgets-matchlistview.vala"
	g_return_val_if_fail (mr != NULL, NULL);
#line 422 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) g_object_new (object_type, NULL);
#line 424 "widgets-matchlistview.vala"
	_tmp0_ = synapse_gui_utils_color_helper_get_default ();
#line 424 "widgets-matchlistview.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 424 "widgets-matchlistview.vala"
	self->priv->ch = _tmp0_;
#line 425 "widgets-matchlistview.vala"
	self->priv->inhibit_move = FALSE;
#line 426 "widgets-matchlistview.vala"
	_tmp1_ = _g_object_ref0 (mr);
#line 426 "widgets-matchlistview.vala"
	_g_object_unref0 (self->renderer);
#line 426 "widgets-matchlistview.vala"
	self->renderer = _tmp1_;
#line 428 "widgets-matchlistview.vala"
	gtk_widget_show ((GtkWidget*) mr);
#line 429 "widgets-matchlistview.vala"
	gtk_widget_set_parent ((GtkWidget*) mr, (GtkWidget*) ((GtkContainer*) self));
#line 431 "widgets-matchlistview.vala"
	gtk_event_box_set_above_child ((GtkEventBox*) self, FALSE);
#line 432 "widgets-matchlistview.vala"
	gtk_event_box_set_visible_window ((GtkEventBox*) self, FALSE);
#line 433 "widgets-matchlistview.vala"
	gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
#line 434 "widgets-matchlistview.vala"
	gtk_widget_set_events ((GtkWidget*) self, (gint) (GDK_BUTTON_PRESS_MASK | GDK_SCROLL_MASK));
#line 438 "widgets-matchlistview.vala"
	_tmp2_ = g_new0 (GtkTargetEntry, 0);
#line 438 "widgets-matchlistview.vala"
	_tmp3_ = _tmp2_;
#line 438 "widgets-matchlistview.vala"
	_tmp3__length1 = 0;
#line 438 "widgets-matchlistview.vala"
	gtk_drag_source_set ((GtkWidget*) self, GDK_BUTTON1_MASK, _tmp3_, (gint) 0, ((GDK_ACTION_ASK | GDK_ACTION_COPY) | GDK_ACTION_MOVE) | GDK_ACTION_LINK);
#line 438 "widgets-matchlistview.vala"
	_tmp3_ = (g_free (_tmp3_), NULL);
#line 445 "widgets-matchlistview.vala"
	gtk_event_box_set_visible_window ((GtkEventBox*) self, FALSE);
#line 446 "widgets-matchlistview.vala"
	self->priv->toffset = 0;
#line 446 "widgets-matchlistview.vala"
	self->priv->offset = self->priv->toffset;
#line 447 "widgets-matchlistview.vala"
	self->priv->tsoffset = 0;
#line 447 "widgets-matchlistview.vala"
	self->priv->soffset = self->priv->tsoffset;
#line 448 "widgets-matchlistview.vala"
	self->priv->sstep = 1;
#line 448 "widgets-matchlistview.vala"
	self->priv->astep = self->priv->sstep;
#line 449 "widgets-matchlistview.vala"
	self->priv->goto_index = 0;
#line 450 "widgets-matchlistview.vala"
	self->priv->select_index = -1;
#line 451 "widgets-matchlistview.vala"
	_tmp4_ = self->renderer;
#line 451 "widgets-matchlistview.vala"
	self->priv->row_height = synapse_gui_match_list_view_match_view_renderer_base_get_row_height_request (_tmp4_);
#line 452 "widgets-matchlistview.vala"
	self->priv->tid = (guint) 0;
#line 454 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->items);
#line 454 "widgets-matchlistview.vala"
	self->priv->items = NULL;
#line 456 "widgets-matchlistview.vala"
	g_signal_connect_object ((GtkWidget*) self, "size-allocate", (GCallback) _synapse_gui_match_list_view_update_target_offsets_gtk_widget_size_allocate, self, 0);
#line 457 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::behavior", (GCallback) _synapse_gui_match_list_view_update_target_offsets_g_object_notify, self, 0);
#line 458 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::min-visible-rows", (GCallback) _gtk_widget_queue_resize_g_object_notify, (GtkWidget*) self, 0);
#line 459 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::animation-enabled", (GCallback) ___lambda14__g_object_notify, self, 0);
#line 422 "widgets-matchlistview.vala"
	return self;
#line 2726 "widgets-matchlistview.c"
}

SynapseGuiMatchListView*
synapse_gui_match_list_view_new (SynapseGuiMatchListViewMatchViewRendererBase* mr)
{
#line 422 "widgets-matchlistview.vala"
	return synapse_gui_match_list_view_construct (SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, mr);
#line 2734 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_real_forall_internal (GtkContainer* base,
                                                  gboolean b,
                                                  GtkCallback callback,
                                                  gpointer callback_target)
{
	SynapseGuiMatchListView * self;
#line 464 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) base;
#line 466 "widgets-matchlistview.vala"
	if (b) {
#line 2748 "widgets-matchlistview.c"
		SynapseGuiMatchListViewMatchViewRendererBase* _tmp0_;
#line 466 "widgets-matchlistview.vala"
		_tmp0_ = self->renderer;
#line 466 "widgets-matchlistview.vala"
		callback ((GtkWidget*) _tmp0_, callback_target);
#line 2754 "widgets-matchlistview.c"
	}
}

static void
synapse_gui_match_list_view_real_size_allocate (GtkWidget* base,
                                                GtkAllocation* allocation)
{
	SynapseGuiMatchListView * self;
	GtkAllocation _tmp0_;
	SynapseGuiMatchListViewMatchViewRendererBase* _tmp1_;
	GtkAllocation _tmp2_ = {0};
#line 469 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) base;
#line 469 "widgets-matchlistview.vala"
	g_return_if_fail (allocation != NULL);
#line 471 "widgets-matchlistview.vala"
	_tmp0_ = *allocation;
#line 471 "widgets-matchlistview.vala"
	GTK_WIDGET_CLASS (synapse_gui_match_list_view_parent_class)->size_allocate ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_event_box_get_type (), GtkEventBox), &_tmp0_);
#line 472 "widgets-matchlistview.vala"
	_tmp1_ = self->renderer;
#line 472 "widgets-matchlistview.vala"
	_tmp2_.x = 0;
#line 472 "widgets-matchlistview.vala"
	_tmp2_.y = 0;
#line 472 "widgets-matchlistview.vala"
	_tmp2_.width = 0;
#line 472 "widgets-matchlistview.vala"
	_tmp2_.height = 0;
#line 472 "widgets-matchlistview.vala"
	gtk_widget_size_allocate ((GtkWidget*) _tmp1_, &_tmp2_);
#line 2786 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_real_get_preferred_height (GtkWidget* base,
                                                       gint* min_height,
                                                       gint* nat_height)
{
	SynapseGuiMatchListView * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
	gint tmp = 0;
	SynapseGuiMatchListViewMatchViewRendererBase* _tmp2_;
	gint _tmp3_;
#line 474 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) base;
#line 476 "widgets-matchlistview.vala"
	GTK_WIDGET_CLASS (synapse_gui_match_list_view_parent_class)->get_preferred_height ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_event_box_get_type (), GtkEventBox), &_tmp0_, &_tmp1_);
#line 476 "widgets-matchlistview.vala"
	_vala_min_height = _tmp0_;
#line 476 "widgets-matchlistview.vala"
	_vala_nat_height = _tmp1_;
#line 477 "widgets-matchlistview.vala"
	_tmp2_ = self->renderer;
#line 477 "widgets-matchlistview.vala"
	tmp = synapse_gui_match_list_view_match_view_renderer_base_get_row_height_request (_tmp2_);
#line 478 "widgets-matchlistview.vala"
	if (tmp != self->priv->row_height) {
#line 480 "widgets-matchlistview.vala"
		self->priv->row_height = tmp;
#line 481 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_update_target_offsets (self);
#line 482 "widgets-matchlistview.vala"
		gtk_widget_queue_draw ((GtkWidget*) self);
#line 2822 "widgets-matchlistview.c"
	}
#line 484 "widgets-matchlistview.vala"
	_tmp3_ = self->priv->_min_visible_rows;
#line 484 "widgets-matchlistview.vala"
	_vala_nat_height = self->priv->row_height * _tmp3_;
#line 484 "widgets-matchlistview.vala"
	_vala_min_height = _vala_nat_height;
#line 474 "widgets-matchlistview.vala"
	if (min_height) {
#line 474 "widgets-matchlistview.vala"
		*min_height = _vala_min_height;
#line 2834 "widgets-matchlistview.c"
	}
#line 474 "widgets-matchlistview.vala"
	if (nat_height) {
#line 474 "widgets-matchlistview.vala"
		*nat_height = _vala_nat_height;
#line 2840 "widgets-matchlistview.c"
	}
}

static void
synapse_gui_match_list_view_real_get_preferred_width (GtkWidget* base,
                                                      gint* min_width,
                                                      gint* nat_width)
{
	SynapseGuiMatchListView * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
#line 486 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) base;
#line 488 "widgets-matchlistview.vala"
	GTK_WIDGET_CLASS (synapse_gui_match_list_view_parent_class)->get_preferred_width ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_event_box_get_type (), GtkEventBox), &_tmp0_, &_tmp1_);
#line 488 "widgets-matchlistview.vala"
	_vala_min_width = _tmp0_;
#line 488 "widgets-matchlistview.vala"
	_vala_nat_width = _tmp1_;
#line 489 "widgets-matchlistview.vala"
	_vala_nat_width = 1;
#line 489 "widgets-matchlistview.vala"
	_vala_min_width = _vala_nat_width;
#line 486 "widgets-matchlistview.vala"
	if (min_width) {
#line 486 "widgets-matchlistview.vala"
		*min_width = _vala_min_width;
#line 2870 "widgets-matchlistview.c"
	}
#line 486 "widgets-matchlistview.vala"
	if (nat_width) {
#line 486 "widgets-matchlistview.vala"
		*nat_width = _vala_nat_width;
#line 2876 "widgets-matchlistview.c"
	}
}

static gboolean
_synapse_gui_match_list_view_select (SynapseGuiMatchListView* self,
                                     gint i)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean result;
#line 492 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 494 "widgets-matchlistview.vala"
	if (i == self->priv->select_index) {
#line 494 "widgets-matchlistview.vala"
		_tmp2_ = TRUE;
#line 2894 "widgets-matchlistview.c"
	} else {
		GeeList* _tmp3_;
#line 495 "widgets-matchlistview.vala"
		_tmp3_ = self->priv->items;
#line 495 "widgets-matchlistview.vala"
		_tmp2_ = _tmp3_ == NULL;
#line 2901 "widgets-matchlistview.c"
	}
#line 494 "widgets-matchlistview.vala"
	if (_tmp2_) {
#line 494 "widgets-matchlistview.vala"
		_tmp1_ = TRUE;
#line 2907 "widgets-matchlistview.c"
	} else {
#line 496 "widgets-matchlistview.vala"
		_tmp1_ = i < -1;
#line 2911 "widgets-matchlistview.c"
	}
#line 494 "widgets-matchlistview.vala"
	if (_tmp1_) {
#line 494 "widgets-matchlistview.vala"
		_tmp0_ = TRUE;
#line 2917 "widgets-matchlistview.c"
	} else {
		GeeList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
#line 497 "widgets-matchlistview.vala"
		_tmp4_ = self->priv->items;
#line 497 "widgets-matchlistview.vala"
		_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
#line 497 "widgets-matchlistview.vala"
		_tmp6_ = _tmp5_;
#line 497 "widgets-matchlistview.vala"
		_tmp0_ = i >= _tmp6_;
#line 2930 "widgets-matchlistview.c"
	}
#line 494 "widgets-matchlistview.vala"
	if (_tmp0_) {
#line 497 "widgets-matchlistview.vala"
		result = FALSE;
#line 497 "widgets-matchlistview.vala"
		return result;
#line 2938 "widgets-matchlistview.c"
	}
#line 498 "widgets-matchlistview.vala"
	self->priv->select_index = i;
#line 499 "widgets-matchlistview.vala"
	result = TRUE;
#line 499 "widgets-matchlistview.vala"
	return result;
#line 2946 "widgets-matchlistview.c"
}

static gboolean
_synapse_gui_match_list_view_goto (SynapseGuiMatchListView* self,
                                   gint i)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean result;
#line 502 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 504 "widgets-matchlistview.vala"
	if (i == self->priv->goto_index) {
#line 504 "widgets-matchlistview.vala"
		_tmp2_ = TRUE;
#line 2963 "widgets-matchlistview.c"
	} else {
		GeeList* _tmp3_;
#line 505 "widgets-matchlistview.vala"
		_tmp3_ = self->priv->items;
#line 505 "widgets-matchlistview.vala"
		_tmp2_ = _tmp3_ == NULL;
#line 2970 "widgets-matchlistview.c"
	}
#line 504 "widgets-matchlistview.vala"
	if (_tmp2_) {
#line 504 "widgets-matchlistview.vala"
		_tmp1_ = TRUE;
#line 2976 "widgets-matchlistview.c"
	} else {
#line 506 "widgets-matchlistview.vala"
		_tmp1_ = i < 0;
#line 2980 "widgets-matchlistview.c"
	}
#line 504 "widgets-matchlistview.vala"
	if (_tmp1_) {
#line 504 "widgets-matchlistview.vala"
		_tmp0_ = TRUE;
#line 2986 "widgets-matchlistview.c"
	} else {
		GeeList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
#line 507 "widgets-matchlistview.vala"
		_tmp4_ = self->priv->items;
#line 507 "widgets-matchlistview.vala"
		_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
#line 507 "widgets-matchlistview.vala"
		_tmp6_ = _tmp5_;
#line 507 "widgets-matchlistview.vala"
		_tmp0_ = i >= _tmp6_;
#line 2999 "widgets-matchlistview.c"
	}
#line 504 "widgets-matchlistview.vala"
	if (_tmp0_) {
#line 507 "widgets-matchlistview.vala"
		result = FALSE;
#line 507 "widgets-matchlistview.vala"
		return result;
#line 3007 "widgets-matchlistview.c"
	}
#line 508 "widgets-matchlistview.vala"
	self->priv->goto_index = i;
#line 509 "widgets-matchlistview.vala"
	result = TRUE;
#line 509 "widgets-matchlistview.vala"
	return result;
#line 3015 "widgets-matchlistview.c"
}

static gboolean
_synapse_gui_match_list_view_update_current_offsets_gsource_func (gpointer self)
{
	gboolean result;
	result = synapse_gui_match_list_view_update_current_offsets ((SynapseGuiMatchListView*) self);
#line 562 "widgets-matchlistview.vala"
	return result;
#line 3025 "widgets-matchlistview.c"
}

static gboolean
synapse_gui_match_list_view_update_current_offsets (SynapseGuiMatchListView* self)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_;
	gboolean needs_animation = FALSE;
	gboolean _tmp4_ = FALSE;
	gboolean result;
#line 512 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 514 "widgets-matchlistview.vala"
	_tmp1_ = self->priv->_animation_enabled;
#line 514 "widgets-matchlistview.vala"
	if (_tmp1_) {
#line 514 "widgets-matchlistview.vala"
		_tmp0_ = gtk_widget_get_realized ((GtkWidget*) self);
#line 3044 "widgets-matchlistview.c"
	} else {
#line 514 "widgets-matchlistview.vala"
		_tmp0_ = FALSE;
#line 3048 "widgets-matchlistview.c"
	}
#line 514 "widgets-matchlistview.vala"
	if (!_tmp0_) {
#line 516 "widgets-matchlistview.vala"
		self->priv->tid = (guint) 0;
#line 517 "widgets-matchlistview.vala"
		self->priv->offset = self->priv->toffset;
#line 518 "widgets-matchlistview.vala"
		self->priv->soffset = self->priv->tsoffset;
#line 519 "widgets-matchlistview.vala"
		gtk_widget_queue_draw ((GtkWidget*) self);
#line 520 "widgets-matchlistview.vala"
		result = FALSE;
#line 520 "widgets-matchlistview.vala"
		return result;
#line 3064 "widgets-matchlistview.c"
	}
#line 522 "widgets-matchlistview.vala"
	if (self->priv->inhibit_move) {
#line 522 "widgets-matchlistview.vala"
		result = FALSE;
#line 522 "widgets-matchlistview.vala"
		return result;
#line 3072 "widgets-matchlistview.c"
	}
#line 523 "widgets-matchlistview.vala"
	needs_animation = FALSE;
#line 525 "widgets-matchlistview.vala"
	if (self->priv->offset != self->priv->toffset) {
#line 3078 "widgets-matchlistview.c"
		gint diff = 0;
#line 527 "widgets-matchlistview.vala"
		needs_animation = TRUE;
#line 528 "widgets-matchlistview.vala"
		diff = (gint) fabs ((gdouble) (self->priv->offset - self->priv->toffset));
#line 529 "widgets-matchlistview.vala"
		if (self->priv->astep > 0) {
#line 531 "widgets-matchlistview.vala"
			if (diff < self->priv->astep) {
#line 533 "widgets-matchlistview.vala"
				self->priv->offset = self->priv->toffset;
#line 3090 "widgets-matchlistview.c"
			} else {
				gint _tmp2_ = 0;
#line 537 "widgets-matchlistview.vala"
				if (self->priv->offset < self->priv->toffset) {
#line 537 "widgets-matchlistview.vala"
					_tmp2_ = self->priv->astep;
#line 3097 "widgets-matchlistview.c"
				} else {
#line 537 "widgets-matchlistview.vala"
					_tmp2_ = -self->priv->astep;
#line 3101 "widgets-matchlistview.c"
				}
#line 537 "widgets-matchlistview.vala"
				self->priv->offset = self->priv->offset + _tmp2_;
#line 3105 "widgets-matchlistview.c"
			}
		} else {
			gint _tmp3_ = 0;
#line 542 "widgets-matchlistview.vala"
			diff = MAX (1, diff >> 2);
#line 543 "widgets-matchlistview.vala"
			if (self->priv->toffset > self->priv->offset) {
#line 543 "widgets-matchlistview.vala"
				_tmp3_ = diff;
#line 3115 "widgets-matchlistview.c"
			} else {
#line 543 "widgets-matchlistview.vala"
				_tmp3_ = -diff;
#line 3119 "widgets-matchlistview.c"
			}
#line 543 "widgets-matchlistview.vala"
			self->priv->offset = self->priv->offset + _tmp3_;
#line 3123 "widgets-matchlistview.c"
		}
	}
#line 547 "widgets-matchlistview.vala"
	if (self->priv->soffset != self->priv->tsoffset) {
#line 3128 "widgets-matchlistview.c"
		gboolean _tmp5_;
#line 547 "widgets-matchlistview.vala"
		_tmp5_ = self->priv->_selection_enabled;
#line 547 "widgets-matchlistview.vala"
		_tmp4_ = _tmp5_;
#line 3134 "widgets-matchlistview.c"
	} else {
#line 547 "widgets-matchlistview.vala"
		_tmp4_ = FALSE;
#line 3138 "widgets-matchlistview.c"
	}
#line 547 "widgets-matchlistview.vala"
	if (_tmp4_) {
#line 3142 "widgets-matchlistview.c"
		gint diff = 0;
#line 549 "widgets-matchlistview.vala"
		needs_animation = TRUE;
#line 550 "widgets-matchlistview.vala"
		diff = (gint) fabs ((gdouble) (self->priv->soffset - self->priv->tsoffset));
#line 551 "widgets-matchlistview.vala"
		if (diff < self->priv->sstep) {
#line 553 "widgets-matchlistview.vala"
			self->priv->soffset = self->priv->tsoffset;
#line 3152 "widgets-matchlistview.c"
		} else {
			gint _tmp6_ = 0;
#line 557 "widgets-matchlistview.vala"
			if (self->priv->soffset < self->priv->tsoffset) {
#line 557 "widgets-matchlistview.vala"
				_tmp6_ = self->priv->sstep;
#line 3159 "widgets-matchlistview.c"
			} else {
#line 557 "widgets-matchlistview.vala"
				_tmp6_ = -self->priv->sstep;
#line 3163 "widgets-matchlistview.c"
			}
#line 557 "widgets-matchlistview.vala"
			self->priv->soffset = self->priv->soffset + _tmp6_;
#line 3167 "widgets-matchlistview.c"
		}
	}
#line 560 "widgets-matchlistview.vala"
	if (needs_animation) {
#line 562 "widgets-matchlistview.vala"
		if (self->priv->tid == ((guint) 0)) {
#line 562 "widgets-matchlistview.vala"
			self->priv->tid = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) SYNAPSE_GUI_MATCH_LIST_VIEW_ANIM_TIMEOUT, _synapse_gui_match_list_view_update_current_offsets_gsource_func, g_object_ref (self), g_object_unref);
#line 3176 "widgets-matchlistview.c"
		}
#line 563 "widgets-matchlistview.vala"
		gtk_widget_queue_draw ((GtkWidget*) self);
#line 564 "widgets-matchlistview.vala"
		result = TRUE;
#line 564 "widgets-matchlistview.vala"
		return result;
#line 3184 "widgets-matchlistview.c"
	}
#line 567 "widgets-matchlistview.vala"
	self->priv->tid = (guint) 0;
#line 568 "widgets-matchlistview.vala"
	result = FALSE;
#line 568 "widgets-matchlistview.vala"
	return result;
#line 3192 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_update_target_offsets (SynapseGuiMatchListView* self)
{
	GtkAllocation allocation = {0};
	GtkAllocation _tmp0_ = {0};
	gint visible_items = 0;
	GtkAllocation _tmp1_;
	SynapseGuiMatchListViewBehavior _tmp2_;
	gint diff = 0;
#line 571 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 574 "widgets-matchlistview.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp0_);
#line 574 "widgets-matchlistview.vala"
	allocation = _tmp0_;
#line 576 "widgets-matchlistview.vala"
	_tmp1_ = allocation;
#line 576 "widgets-matchlistview.vala"
	visible_items = _tmp1_.height / self->priv->row_height;
#line 578 "widgets-matchlistview.vala"
	_tmp2_ = self->priv->_behavior;
#line 578 "widgets-matchlistview.vala"
	switch (_tmp2_) {
#line 578 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_TOP_FORCED:
#line 3220 "widgets-matchlistview.c"
		{
#line 582 "widgets-matchlistview.vala"
			self->priv->toffset = self->priv->row_height * self->priv->goto_index;
#line 583 "widgets-matchlistview.vala"
			break;
#line 3226 "widgets-matchlistview.c"
		}
		default:
#line 578 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER:
#line 3231 "widgets-matchlistview.c"
		{
			gboolean _tmp3_ = FALSE;
#line 586 "widgets-matchlistview.vala"
			if (self->priv->goto_index <= (visible_items / 2)) {
#line 586 "widgets-matchlistview.vala"
				_tmp3_ = TRUE;
#line 3238 "widgets-matchlistview.c"
			} else {
				GeeList* _tmp4_;
				gint _tmp5_;
				gint _tmp6_;
#line 586 "widgets-matchlistview.vala"
				_tmp4_ = self->priv->items;
#line 586 "widgets-matchlistview.vala"
				_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
#line 586 "widgets-matchlistview.vala"
				_tmp6_ = _tmp5_;
#line 586 "widgets-matchlistview.vala"
				_tmp3_ = _tmp6_ <= visible_items;
#line 3251 "widgets-matchlistview.c"
			}
#line 586 "widgets-matchlistview.vala"
			if (_tmp3_) {
#line 588 "widgets-matchlistview.vala"
				self->priv->toffset = 0;
#line 3257 "widgets-matchlistview.c"
			} else {
				GeeList* _tmp7_;
				gint _tmp8_;
				gint _tmp9_;
#line 590 "widgets-matchlistview.vala"
				_tmp7_ = self->priv->items;
#line 590 "widgets-matchlistview.vala"
				_tmp8_ = gee_collection_get_size ((GeeCollection*) _tmp7_);
#line 590 "widgets-matchlistview.vala"
				_tmp9_ = _tmp8_;
#line 590 "widgets-matchlistview.vala"
				if (self->priv->goto_index >= ((_tmp9_ - 1) - (visible_items / 2))) {
#line 3270 "widgets-matchlistview.c"
					GeeList* _tmp10_;
					gint _tmp11_;
					gint _tmp12_;
					GtkAllocation _tmp13_;
#line 592 "widgets-matchlistview.vala"
					_tmp10_ = self->priv->items;
#line 592 "widgets-matchlistview.vala"
					_tmp11_ = gee_collection_get_size ((GeeCollection*) _tmp10_);
#line 592 "widgets-matchlistview.vala"
					_tmp12_ = _tmp11_;
#line 592 "widgets-matchlistview.vala"
					_tmp13_ = allocation;
#line 592 "widgets-matchlistview.vala"
					self->priv->toffset = (self->priv->row_height * _tmp12_) - _tmp13_.height;
#line 3285 "widgets-matchlistview.c"
				} else {
					GtkAllocation _tmp14_;
#line 596 "widgets-matchlistview.vala"
					_tmp14_ = allocation;
#line 596 "widgets-matchlistview.vala"
					self->priv->toffset = ((self->priv->row_height * self->priv->goto_index) - (_tmp14_.height / 2)) + (self->priv->row_height / 2);
#line 3292 "widgets-matchlistview.c"
				}
			}
#line 598 "widgets-matchlistview.vala"
			break;
#line 3297 "widgets-matchlistview.c"
		}
	}
#line 601 "widgets-matchlistview.vala"
	self->priv->tsoffset = (self->priv->select_index * self->priv->row_height) - self->priv->toffset;
#line 602 "widgets-matchlistview.vala"
	diff = (gint) fabs ((gdouble) (self->priv->toffset - self->priv->offset));
#line 603 "widgets-matchlistview.vala"
	if (diff < (self->priv->row_height * 3)) {
#line 604 "widgets-matchlistview.vala"
		self->priv->astep = MAX (1, diff / SYNAPSE_GUI_MATCH_LIST_VIEW_ANIM_STEPS);
#line 3308 "widgets-matchlistview.c"
	} else {
#line 606 "widgets-matchlistview.vala"
		self->priv->astep = -1;
#line 3312 "widgets-matchlistview.c"
	}
#line 607 "widgets-matchlistview.vala"
	self->priv->sstep = MAX (1, (gint) (fabs ((gdouble) (self->priv->tsoffset - self->priv->soffset)) / SYNAPSE_GUI_MATCH_LIST_VIEW_ANIM_STEPS));
#line 609 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_update_current_offsets (self);
#line 3318 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_real_set_list (SynapseGuiMatchListView* self,
                                           GeeList* list,
                                           gint targetted_index,
                                           gint selected_index)
{
	GeeList* _tmp0_;
	gint _tmp1_ = 0;
	gint maxoffset = 0;
#line 614 "widgets-matchlistview.vala"
	_tmp0_ = _g_object_ref0 (list);
#line 614 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->items);
#line 614 "widgets-matchlistview.vala"
	self->priv->items = _tmp0_;
#line 615 "widgets-matchlistview.vala"
	self->priv->select_index = selected_index;
#line 616 "widgets-matchlistview.vala"
	self->priv->goto_index = targetted_index;
#line 617 "widgets-matchlistview.vala"
	if (list == NULL) {
#line 617 "widgets-matchlistview.vala"
		_tmp1_ = 0;
#line 3344 "widgets-matchlistview.c"
	} else {
		gint _tmp2_;
		gint _tmp3_;
#line 617 "widgets-matchlistview.vala"
		_tmp2_ = gee_collection_get_size ((GeeCollection*) list);
#line 617 "widgets-matchlistview.vala"
		_tmp3_ = _tmp2_;
#line 617 "widgets-matchlistview.vala"
		_tmp1_ = self->priv->row_height * _tmp3_;
#line 3354 "widgets-matchlistview.c"
	}
#line 617 "widgets-matchlistview.vala"
	maxoffset = _tmp1_;
#line 618 "widgets-matchlistview.vala"
	if (self->priv->offset > maxoffset) {
#line 618 "widgets-matchlistview.vala"
		self->priv->offset = maxoffset;
#line 3362 "widgets-matchlistview.c"
	}
#line 619 "widgets-matchlistview.vala"
	self->priv->inhibit_move = FALSE;
#line 620 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_update_target_offsets (self);
#line 621 "widgets-matchlistview.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 3370 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_set_list (SynapseGuiMatchListView* self,
                                      GeeList* list,
                                      gint targetted_index,
                                      gint selected_index)
{
	SynapseGuiMatchListViewClass* _klass_;
#line 612 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 612 "widgets-matchlistview.vala"
	_klass_ = SYNAPSE_GUI_MATCH_LIST_VIEW_GET_CLASS (self);
#line 612 "widgets-matchlistview.vala"
	if (_klass_->set_list) {
#line 612 "widgets-matchlistview.vala"
		_klass_->set_list (self, list, targetted_index, selected_index);
#line 3388 "widgets-matchlistview.c"
	}
}

gint
synapse_gui_match_list_view_get_list_size (SynapseGuiMatchListView* self)
{
	gint _tmp0_ = 0;
	GeeList* _tmp1_;
	gint result;
#line 624 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 626 "widgets-matchlistview.vala"
	_tmp1_ = self->priv->items;
#line 626 "widgets-matchlistview.vala"
	if (_tmp1_ == NULL) {
#line 626 "widgets-matchlistview.vala"
		_tmp0_ = 0;
#line 3406 "widgets-matchlistview.c"
	} else {
		GeeList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
#line 626 "widgets-matchlistview.vala"
		_tmp2_ = self->priv->items;
#line 626 "widgets-matchlistview.vala"
		_tmp3_ = gee_collection_get_size ((GeeCollection*) _tmp2_);
#line 626 "widgets-matchlistview.vala"
		_tmp4_ = _tmp3_;
#line 626 "widgets-matchlistview.vala"
		_tmp0_ = _tmp4_;
#line 3419 "widgets-matchlistview.c"
	}
#line 626 "widgets-matchlistview.vala"
	result = _tmp0_;
#line 626 "widgets-matchlistview.vala"
	return result;
#line 3425 "widgets-matchlistview.c"
}

static gboolean
synapse_gui_match_list_view_real_draw (GtkWidget* base,
                                       cairo_t* ctx)
{
	SynapseGuiMatchListView * self;
	GtkAllocation allocation = {0};
	GtkAllocation _tmp0_ = {0};
	GtkAllocation _tmp1_;
	GtkAllocation _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp5_ = FALSE;
	GeeList* _tmp6_;
	GdkScreen* _tmp10_;
	cairo_font_options_t* _tmp11_;
	gint visible_items = 0;
	GtkAllocation _tmp12_;
	gint i = 0;
	gint ypos = 0;
	gboolean _tmp13_ = FALSE;
	gdouble pct = 0.0;
	gboolean result;
#line 629 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) base;
#line 629 "widgets-matchlistview.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 632 "widgets-matchlistview.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp0_);
#line 632 "widgets-matchlistview.vala"
	allocation = _tmp0_;
#line 635 "widgets-matchlistview.vala"
	_tmp1_ = allocation;
#line 635 "widgets-matchlistview.vala"
	_tmp2_ = allocation;
#line 635 "widgets-matchlistview.vala"
	cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) _tmp1_.width, (gdouble) _tmp2_.height);
#line 636 "widgets-matchlistview.vala"
	cairo_clip (ctx);
#line 637 "widgets-matchlistview.vala"
	cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
#line 639 "widgets-matchlistview.vala"
	_tmp3_ = self->priv->_use_base_colors;
#line 639 "widgets-matchlistview.vala"
	if (_tmp3_) {
#line 3471 "widgets-matchlistview.c"
		SynapseGuiUtilsColorHelper* _tmp4_;
#line 641 "widgets-matchlistview.vala"
		_tmp4_ = self->priv->ch;
#line 641 "widgets-matchlistview.vala"
		synapse_gui_utils_color_helper_set_source_rgba (_tmp4_, ctx, 1.0, SYNAPSE_GUI_STYLE_TYPE_BASE, GTK_STATE_FLAG_NORMAL, SYNAPSE_GUI_MOD_NORMAL);
#line 642 "widgets-matchlistview.vala"
		cairo_paint (ctx);
#line 3479 "widgets-matchlistview.c"
	}
#line 645 "widgets-matchlistview.vala"
	_tmp6_ = self->priv->items;
#line 645 "widgets-matchlistview.vala"
	if (_tmp6_ == NULL) {
#line 645 "widgets-matchlistview.vala"
		_tmp5_ = TRUE;
#line 3487 "widgets-matchlistview.c"
	} else {
		GeeList* _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
#line 645 "widgets-matchlistview.vala"
		_tmp7_ = self->priv->items;
#line 645 "widgets-matchlistview.vala"
		_tmp8_ = gee_collection_get_size ((GeeCollection*) _tmp7_);
#line 645 "widgets-matchlistview.vala"
		_tmp9_ = _tmp8_;
#line 645 "widgets-matchlistview.vala"
		_tmp5_ = _tmp9_ == 0;
#line 3500 "widgets-matchlistview.c"
	}
#line 645 "widgets-matchlistview.vala"
	if (_tmp5_) {
#line 645 "widgets-matchlistview.vala"
		result = TRUE;
#line 645 "widgets-matchlistview.vala"
		return result;
#line 3508 "widgets-matchlistview.c"
	}
#line 647 "widgets-matchlistview.vala"
	_tmp10_ = gtk_widget_get_screen ((GtkWidget*) self);
#line 647 "widgets-matchlistview.vala"
	_tmp11_ = gdk_screen_get_font_options (_tmp10_);
#line 647 "widgets-matchlistview.vala"
	cairo_set_font_options (ctx, _tmp11_);
#line 649 "widgets-matchlistview.vala"
	_tmp12_ = allocation;
#line 649 "widgets-matchlistview.vala"
	visible_items = (_tmp12_.height / self->priv->row_height) + 2;
#line 650 "widgets-matchlistview.vala"
	i = synapse_gui_match_list_view_get_item_at_pos (self, 0);
#line 651 "widgets-matchlistview.vala"
	visible_items += i;
#line 653 "widgets-matchlistview.vala"
	ypos = 0;
#line 655 "widgets-matchlistview.vala"
	if (self->priv->select_index >= 0) {
#line 3528 "widgets-matchlistview.c"
		gboolean _tmp14_;
#line 655 "widgets-matchlistview.vala"
		_tmp14_ = self->priv->_selection_enabled;
#line 655 "widgets-matchlistview.vala"
		_tmp13_ = _tmp14_;
#line 3534 "widgets-matchlistview.c"
	} else {
#line 655 "widgets-matchlistview.vala"
		_tmp13_ = FALSE;
#line 3538 "widgets-matchlistview.c"
	}
#line 655 "widgets-matchlistview.vala"
	if (_tmp13_) {
#line 3542 "widgets-matchlistview.c"
		gboolean _tmp15_ = FALSE;
#line 657 "widgets-matchlistview.vala"
		if (self->priv->soffset > (-self->priv->row_height)) {
#line 3546 "widgets-matchlistview.c"
			GtkAllocation _tmp16_;
#line 657 "widgets-matchlistview.vala"
			_tmp16_ = allocation;
#line 657 "widgets-matchlistview.vala"
			_tmp15_ = self->priv->soffset < _tmp16_.height;
#line 3552 "widgets-matchlistview.c"
		} else {
#line 657 "widgets-matchlistview.vala"
			_tmp15_ = FALSE;
#line 3556 "widgets-matchlistview.c"
		}
#line 657 "widgets-matchlistview.vala"
		if (_tmp15_) {
#line 3560 "widgets-matchlistview.c"
			GtkStyleContext* context = NULL;
			GtkStyleContext* _tmp17_;
			GtkStyleContext* _tmp18_;
			GtkStyleContext* _tmp19_;
			GtkStyleContext* _tmp20_;
			GtkStyleContext* _tmp21_;
			GtkAllocation _tmp22_;
			GtkStyleContext* _tmp23_;
			GtkAllocation _tmp24_;
			GtkStyleContext* _tmp25_;
#line 659 "widgets-matchlistview.vala"
			ypos = MAX (self->priv->soffset, 0);
#line 660 "widgets-matchlistview.vala"
			_tmp17_ = gtk_widget_get_style_context ((GtkWidget*) self);
#line 660 "widgets-matchlistview.vala"
			context = _tmp17_;
#line 661 "widgets-matchlistview.vala"
			_tmp18_ = context;
#line 661 "widgets-matchlistview.vala"
			gtk_style_context_save (_tmp18_);
#line 662 "widgets-matchlistview.vala"
			_tmp19_ = context;
#line 662 "widgets-matchlistview.vala"
			gtk_style_context_add_class (_tmp19_, "view");
#line 663 "widgets-matchlistview.vala"
			_tmp20_ = context;
#line 663 "widgets-matchlistview.vala"
			gtk_style_context_set_state (_tmp20_, GTK_STATE_FLAG_SELECTED);
#line 664 "widgets-matchlistview.vala"
			_tmp21_ = context;
#line 664 "widgets-matchlistview.vala"
			_tmp22_ = allocation;
#line 664 "widgets-matchlistview.vala"
			gtk_render_background (_tmp21_, ctx, (gdouble) 0, (gdouble) ypos, (gdouble) _tmp22_.width, (gdouble) self->priv->row_height);
#line 666 "widgets-matchlistview.vala"
			_tmp23_ = context;
#line 666 "widgets-matchlistview.vala"
			_tmp24_ = allocation;
#line 666 "widgets-matchlistview.vala"
			gtk_render_frame (_tmp23_, ctx, (gdouble) 0, (gdouble) ypos, (gdouble) _tmp24_.width, (gdouble) self->priv->row_height);
#line 668 "widgets-matchlistview.vala"
			_tmp25_ = context;
#line 668 "widgets-matchlistview.vala"
			gtk_style_context_restore (_tmp25_);
#line 3605 "widgets-matchlistview.c"
		}
	}
#line 671 "widgets-matchlistview.vala"
	pct = 1.0;
#line 3610 "widgets-matchlistview.c"
	{
		gboolean _tmp26_ = FALSE;
#line 672 "widgets-matchlistview.vala"
		_tmp26_ = TRUE;
#line 672 "widgets-matchlistview.vala"
		while (TRUE) {
#line 3617 "widgets-matchlistview.c"
			gboolean _tmp28_ = FALSE;
			GtkAllocation _tmp32_;
			GtkAllocation _tmp33_;
			gboolean _tmp34_ = FALSE;
			gboolean _tmp35_;
			SynapseGuiMatchListViewMatchViewRendererBase* _tmp36_;
			GeeList* _tmp37_;
			gpointer _tmp38_;
			SynapseMatch* _tmp39_;
			GtkAllocation _tmp40_;
			gboolean _tmp41_;
#line 672 "widgets-matchlistview.vala"
			if (!_tmp26_) {
#line 3631 "widgets-matchlistview.c"
				gint _tmp27_;
#line 672 "widgets-matchlistview.vala"
				i = i + 1;
#line 672 "widgets-matchlistview.vala"
				_tmp27_ = i;
#line 3637 "widgets-matchlistview.c"
			}
#line 672 "widgets-matchlistview.vala"
			_tmp26_ = FALSE;
#line 672 "widgets-matchlistview.vala"
			if (i < visible_items) {
#line 3643 "widgets-matchlistview.c"
				GeeList* _tmp29_;
				gint _tmp30_;
				gint _tmp31_;
#line 672 "widgets-matchlistview.vala"
				_tmp29_ = self->priv->items;
#line 672 "widgets-matchlistview.vala"
				_tmp30_ = gee_collection_get_size ((GeeCollection*) _tmp29_);
#line 672 "widgets-matchlistview.vala"
				_tmp31_ = _tmp30_;
#line 672 "widgets-matchlistview.vala"
				_tmp28_ = i < _tmp31_;
#line 3655 "widgets-matchlistview.c"
			} else {
#line 672 "widgets-matchlistview.vala"
				_tmp28_ = FALSE;
#line 3659 "widgets-matchlistview.c"
			}
#line 672 "widgets-matchlistview.vala"
			if (!_tmp28_) {
#line 672 "widgets-matchlistview.vala"
				break;
#line 3665 "widgets-matchlistview.c"
			}
#line 674 "widgets-matchlistview.vala"
			ypos = (i * self->priv->row_height) - self->priv->offset;
#line 675 "widgets-matchlistview.vala"
			_tmp32_ = allocation;
#line 675 "widgets-matchlistview.vala"
			if (ypos > _tmp32_.height) {
#line 675 "widgets-matchlistview.vala"
				break;
#line 3675 "widgets-matchlistview.c"
			}
#line 676 "widgets-matchlistview.vala"
			cairo_save (ctx);
#line 677 "widgets-matchlistview.vala"
			cairo_translate (ctx, (gdouble) 0, (gdouble) ypos);
#line 678 "widgets-matchlistview.vala"
			_tmp33_ = allocation;
#line 678 "widgets-matchlistview.vala"
			cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) _tmp33_.width, (gdouble) self->priv->row_height);
#line 679 "widgets-matchlistview.vala"
			cairo_clip (ctx);
#line 680 "widgets-matchlistview.vala"
			pct = 1.0;
#line 681 "widgets-matchlistview.vala"
			_tmp35_ = self->priv->_selection_enabled;
#line 681 "widgets-matchlistview.vala"
			if (_tmp35_) {
#line 681 "widgets-matchlistview.vala"
				_tmp34_ = i == self->priv->select_index;
#line 3695 "widgets-matchlistview.c"
			} else {
#line 681 "widgets-matchlistview.vala"
				_tmp34_ = FALSE;
#line 3699 "widgets-matchlistview.c"
			}
#line 681 "widgets-matchlistview.vala"
			if (_tmp34_) {
#line 684 "widgets-matchlistview.vala"
				pct = fabs ((gdouble) (self->priv->toffset - self->priv->offset)) / self->priv->row_height;
#line 685 "widgets-matchlistview.vala"
				if (pct == 0.0) {
#line 685 "widgets-matchlistview.vala"
					pct = fabs ((gdouble) (self->priv->tsoffset - self->priv->soffset)) / self->priv->row_height;
#line 3709 "widgets-matchlistview.c"
				}
#line 686 "widgets-matchlistview.vala"
				pct = 2.0 - MIN (1.0, pct);
#line 3713 "widgets-matchlistview.c"
			}
#line 688 "widgets-matchlistview.vala"
			_tmp36_ = self->renderer;
#line 688 "widgets-matchlistview.vala"
			_tmp37_ = self->priv->items;
#line 688 "widgets-matchlistview.vala"
			_tmp38_ = gee_list_get (_tmp37_, i);
#line 688 "widgets-matchlistview.vala"
			_tmp39_ = (SynapseMatch*) _tmp38_;
#line 688 "widgets-matchlistview.vala"
			_tmp40_ = allocation;
#line 688 "widgets-matchlistview.vala"
			_tmp41_ = self->priv->_use_base_colors;
#line 688 "widgets-matchlistview.vala"
			synapse_gui_match_list_view_match_view_renderer_base_render_match (_tmp36_, ctx, _tmp39_, _tmp40_.width, self->priv->row_height, _tmp41_, pct);
#line 688 "widgets-matchlistview.vala"
			_g_object_unref0 (_tmp39_);
#line 689 "widgets-matchlistview.vala"
			cairo_restore (ctx);
#line 3733 "widgets-matchlistview.c"
		}
	}
#line 692 "widgets-matchlistview.vala"
	result = TRUE;
#line 692 "widgets-matchlistview.vala"
	return result;
#line 3740 "widgets-matchlistview.c"
}

static gint
synapse_gui_match_list_view_get_item_at_pos (SynapseGuiMatchListView* self,
                                             gint y)
{
	gint result;
#line 695 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 697 "widgets-matchlistview.vala"
	result = (self->priv->offset + y) / self->priv->row_height;
#line 697 "widgets-matchlistview.vala"
	return result;
#line 3754 "widgets-matchlistview.c"
}

static gboolean
synapse_gui_match_list_view_real_scroll_event (GtkWidget* base,
                                               GdkEventScroll* event)
{
	SynapseGuiMatchListView * self;
	GeeList* _tmp0_;
	gint k = 0;
	gboolean result;
#line 700 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) base;
#line 700 "widgets-matchlistview.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 702 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->items;
#line 702 "widgets-matchlistview.vala"
	if (_tmp0_ == NULL) {
#line 702 "widgets-matchlistview.vala"
		result = TRUE;
#line 702 "widgets-matchlistview.vala"
		return result;
#line 3777 "widgets-matchlistview.c"
	}
#line 703 "widgets-matchlistview.vala"
	self->priv->inhibit_move = FALSE;
#line 704 "widgets-matchlistview.vala"
	k = 1;
#line 705 "widgets-matchlistview.vala"
	if (event->direction == GDK_SCROLL_UP) {
#line 3785 "widgets-matchlistview.c"
		gint _tmp1_ = 0;
#line 705 "widgets-matchlistview.vala"
		if (self->priv->goto_index == 0) {
#line 705 "widgets-matchlistview.vala"
			_tmp1_ = 0;
#line 3791 "widgets-matchlistview.c"
		} else {
#line 705 "widgets-matchlistview.vala"
			_tmp1_ = -1;
#line 3795 "widgets-matchlistview.c"
		}
#line 705 "widgets-matchlistview.vala"
		k = _tmp1_;
#line 3799 "widgets-matchlistview.c"
	}
#line 707 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_set_indexes (self, self->priv->goto_index + k, self->priv->goto_index + k);
#line 708 "widgets-matchlistview.vala"
	g_signal_emit (self, synapse_gui_match_list_view_signals[SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTED_INDEX_CHANGED_SIGNAL], 0, self->priv->select_index);
#line 709 "widgets-matchlistview.vala"
	result = TRUE;
#line 709 "widgets-matchlistview.vala"
	return result;
#line 3809 "widgets-matchlistview.c"
}

static gboolean
____lambda15_ (SynapseGuiMatchListView* self)
{
	gboolean result;
#line 757 "widgets-matchlistview.vala"
	if (self->priv->inhibit_move) {
#line 759 "widgets-matchlistview.vala"
		self->priv->inhibit_move = FALSE;
#line 760 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_update_current_offsets (self);
#line 3822 "widgets-matchlistview.c"
	}
#line 762 "widgets-matchlistview.vala"
	result = FALSE;
#line 762 "widgets-matchlistview.vala"
	return result;
#line 3828 "widgets-matchlistview.c"
}

static gboolean
_____lambda15__gsource_func (gpointer self)
{
	gboolean result;
	result = ____lambda15_ ((SynapseGuiMatchListView*) self);
#line 756 "widgets-matchlistview.vala"
	return result;
#line 3838 "widgets-matchlistview.c"
}

static gboolean
synapse_gui_match_list_view_real_button_press_event (GtkWidget* base,
                                                     GdkEventButton* event)
{
	SynapseGuiMatchListView * self;
	GtkTargetList* tl = NULL;
	GtkTargetEntry* _tmp0_;
	GtkTargetEntry* _tmp1_;
	gint _tmp1__length1;
	GtkTargetList* _tmp2_;
	GtkTargetList* _tmp3_;
	gboolean _tmp4_ = FALSE;
	GeeList* _tmp5_;
	gboolean _tmp12_;
	SynapseUriMatch* um = NULL;
	GeeList* _tmp19_;
	gpointer _tmp20_;
	SynapseMatch* _tmp21_;
	SynapseUriMatch* _tmp22_;
	SynapseUriMatch* _tmp23_;
	GtkTargetList* _tmp27_;
	GtkTargetList* _tmp28_;
	SynapseUriMatch* _tmp29_;
	const gchar* _tmp30_;
	const gchar* _tmp31_;
	gchar* _tmp32_;
	SynapseUriMatch* _tmp33_;
	const gchar* _tmp34_;
	const gchar* _tmp35_;
	gchar* _tmp36_;
	GtkTargetList* _tmp37_;
	GError* _inner_error0_ = NULL;
	gboolean result;
#line 720 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) base;
#line 720 "widgets-matchlistview.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 722 "widgets-matchlistview.vala"
	if (self->priv->tid != ((guint) 0)) {
#line 722 "widgets-matchlistview.vala"
		result = TRUE;
#line 722 "widgets-matchlistview.vala"
		return result;
#line 3884 "widgets-matchlistview.c"
	}
#line 723 "widgets-matchlistview.vala"
	self->priv->dragdrop_target_item = synapse_gui_match_list_view_get_item_at_pos (self, (gint) event->y);
#line 724 "widgets-matchlistview.vala"
	_tmp0_ = g_new0 (GtkTargetEntry, 0);
#line 724 "widgets-matchlistview.vala"
	_tmp1_ = _tmp0_;
#line 724 "widgets-matchlistview.vala"
	_tmp1__length1 = 0;
#line 724 "widgets-matchlistview.vala"
	_tmp2_ = gtk_target_list_new (_tmp1_, 0);
#line 724 "widgets-matchlistview.vala"
	_tmp3_ = _tmp2_;
#line 724 "widgets-matchlistview.vala"
	_tmp1_ = (g_free (_tmp1_), NULL);
#line 724 "widgets-matchlistview.vala"
	tl = _tmp3_;
#line 726 "widgets-matchlistview.vala"
	_tmp5_ = self->priv->items;
#line 726 "widgets-matchlistview.vala"
	if (_tmp5_ == NULL) {
#line 726 "widgets-matchlistview.vala"
		_tmp4_ = TRUE;
#line 3908 "widgets-matchlistview.c"
	} else {
		GeeList* _tmp6_;
		gint _tmp7_;
		gint _tmp8_;
#line 726 "widgets-matchlistview.vala"
		_tmp6_ = self->priv->items;
#line 726 "widgets-matchlistview.vala"
		_tmp7_ = gee_collection_get_size ((GeeCollection*) _tmp6_);
#line 726 "widgets-matchlistview.vala"
		_tmp8_ = _tmp7_;
#line 726 "widgets-matchlistview.vala"
		_tmp4_ = _tmp8_ <= self->priv->dragdrop_target_item;
#line 3921 "widgets-matchlistview.c"
	}
#line 726 "widgets-matchlistview.vala"
	if (_tmp4_) {
#line 3925 "widgets-matchlistview.c"
		gchar* _tmp9_;
		gchar* _tmp10_;
		GtkTargetList* _tmp11_;
#line 728 "widgets-matchlistview.vala"
		_tmp9_ = g_strdup ("");
#line 728 "widgets-matchlistview.vala"
		_g_free0 (self->priv->dragdrop_name);
#line 728 "widgets-matchlistview.vala"
		self->priv->dragdrop_name = _tmp9_;
#line 729 "widgets-matchlistview.vala"
		_tmp10_ = g_strdup ("");
#line 729 "widgets-matchlistview.vala"
		_g_free0 (self->priv->dragdrop_uri);
#line 729 "widgets-matchlistview.vala"
		self->priv->dragdrop_uri = _tmp10_;
#line 730 "widgets-matchlistview.vala"
		_tmp11_ = tl;
#line 730 "widgets-matchlistview.vala"
		gtk_drag_source_set_target_list ((GtkWidget*) self, _tmp11_);
#line 731 "widgets-matchlistview.vala"
		gtk_drag_source_set_icon_stock ((GtkWidget*) self, GTK_STOCK_MISSING_IMAGE);
#line 732 "widgets-matchlistview.vala"
		result = TRUE;
#line 732 "widgets-matchlistview.vala"
		_gtk_target_list_unref0 (tl);
#line 732 "widgets-matchlistview.vala"
		return result;
#line 3953 "widgets-matchlistview.c"
	}
#line 735 "widgets-matchlistview.vala"
	_tmp12_ = self->priv->_selection_enabled;
#line 735 "widgets-matchlistview.vala"
	if (_tmp12_) {
#line 3959 "widgets-matchlistview.c"
		gboolean _tmp13_ = FALSE;
		gboolean _tmp14_ = FALSE;
#line 737 "widgets-matchlistview.vala"
		if (event->type == GDK_BUTTON_PRESS) {
#line 737 "widgets-matchlistview.vala"
			_tmp14_ = TRUE;
#line 3966 "widgets-matchlistview.c"
		} else {
#line 737 "widgets-matchlistview.vala"
			_tmp14_ = event->type == GDK_2BUTTON_PRESS;
#line 3970 "widgets-matchlistview.c"
		}
#line 737 "widgets-matchlistview.vala"
		if (_tmp14_) {
#line 738 "widgets-matchlistview.vala"
			_tmp13_ = self->priv->select_index == self->priv->dragdrop_target_item;
#line 3976 "widgets-matchlistview.c"
		} else {
#line 737 "widgets-matchlistview.vala"
			_tmp13_ = FALSE;
#line 3980 "widgets-matchlistview.c"
		}
#line 737 "widgets-matchlistview.vala"
		if (_tmp13_) {
#line 740 "widgets-matchlistview.vala"
			synapse_gui_match_list_view_set_indexes (self, self->priv->dragdrop_target_item, self->priv->dragdrop_target_item);
#line 741 "widgets-matchlistview.vala"
			if (event->type == GDK_2BUTTON_PRESS) {
#line 743 "widgets-matchlistview.vala"
				g_signal_emit (self, synapse_gui_match_list_view_signals[SYNAPSE_GUI_MATCH_LIST_VIEW_FIRE_ITEM_SIGNAL], 0);
#line 3990 "widgets-matchlistview.c"
			} else {
				gboolean _tmp15_ = FALSE;
#line 745 "widgets-matchlistview.vala"
				if (event->type == GDK_BUTTON_PRESS) {
#line 745 "widgets-matchlistview.vala"
					_tmp15_ = event->button == ((guint) 3);
#line 3997 "widgets-matchlistview.c"
				} else {
#line 745 "widgets-matchlistview.vala"
					_tmp15_ = FALSE;
#line 4001 "widgets-matchlistview.c"
				}
#line 745 "widgets-matchlistview.vala"
				if (_tmp15_) {
#line 747 "widgets-matchlistview.vala"
					g_signal_emit (self, synapse_gui_match_list_view_signals[SYNAPSE_GUI_MATCH_LIST_VIEW_FIRE_ITEM_CONTEXT_SWITCH_SIGNAL], 0);
#line 4007 "widgets-matchlistview.c"
				}
			}
#line 749 "widgets-matchlistview.vala"
			result = TRUE;
#line 749 "widgets-matchlistview.vala"
			_gtk_target_list_unref0 (tl);
#line 749 "widgets-matchlistview.vala"
			return result;
#line 4016 "widgets-matchlistview.c"
		} else {
			GtkSettings* _tmp16_;
			gint _tmp17_;
			gint _tmp18_;
#line 753 "widgets-matchlistview.vala"
			self->priv->inhibit_move = TRUE;
#line 754 "widgets-matchlistview.vala"
			synapse_gui_match_list_view_set_indexes (self, self->priv->dragdrop_target_item, self->priv->dragdrop_target_item);
#line 755 "widgets-matchlistview.vala"
			g_signal_emit (self, synapse_gui_match_list_view_signals[SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTED_INDEX_CHANGED_SIGNAL], 0, self->priv->select_index);
#line 756 "widgets-matchlistview.vala"
			_tmp16_ = gtk_settings_get_default ();
#line 756 "widgets-matchlistview.vala"
			g_object_get (_tmp16_, "gtk-double-click-time", &_tmp17_, NULL);
#line 756 "widgets-matchlistview.vala"
			_tmp18_ = _tmp17_;
#line 756 "widgets-matchlistview.vala"
			g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) _tmp18_, _____lambda15__gsource_func, g_object_ref (self), g_object_unref);
#line 4035 "widgets-matchlistview.c"
		}
	}
#line 767 "widgets-matchlistview.vala"
	_tmp19_ = self->priv->items;
#line 767 "widgets-matchlistview.vala"
	_tmp20_ = gee_list_get (_tmp19_, self->priv->dragdrop_target_item);
#line 767 "widgets-matchlistview.vala"
	_tmp21_ = (SynapseMatch*) _tmp20_;
#line 767 "widgets-matchlistview.vala"
	_tmp22_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp21_, SYNAPSE_TYPE_URI_MATCH) ? ((SynapseUriMatch*) _tmp21_) : NULL;
#line 767 "widgets-matchlistview.vala"
	if (_tmp22_ == NULL) {
#line 767 "widgets-matchlistview.vala"
		_g_object_unref0 (_tmp21_);
#line 4050 "widgets-matchlistview.c"
	}
#line 767 "widgets-matchlistview.vala"
	um = _tmp22_;
#line 768 "widgets-matchlistview.vala"
	_tmp23_ = um;
#line 768 "widgets-matchlistview.vala"
	if (_tmp23_ == NULL) {
#line 4058 "widgets-matchlistview.c"
		GtkTargetList* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
#line 770 "widgets-matchlistview.vala"
		_tmp24_ = tl;
#line 770 "widgets-matchlistview.vala"
		gtk_drag_source_set_target_list ((GtkWidget*) self, _tmp24_);
#line 771 "widgets-matchlistview.vala"
		gtk_drag_source_set_icon_stock ((GtkWidget*) self, GTK_STOCK_MISSING_IMAGE);
#line 772 "widgets-matchlistview.vala"
		_tmp25_ = g_strdup ("");
#line 772 "widgets-matchlistview.vala"
		_g_free0 (self->priv->dragdrop_name);
#line 772 "widgets-matchlistview.vala"
		self->priv->dragdrop_name = _tmp25_;
#line 773 "widgets-matchlistview.vala"
		_tmp26_ = g_strdup ("");
#line 773 "widgets-matchlistview.vala"
		_g_free0 (self->priv->dragdrop_uri);
#line 773 "widgets-matchlistview.vala"
		self->priv->dragdrop_uri = _tmp26_;
#line 774 "widgets-matchlistview.vala"
		result = TRUE;
#line 774 "widgets-matchlistview.vala"
		_g_object_unref0 (um);
#line 774 "widgets-matchlistview.vala"
		_gtk_target_list_unref0 (tl);
#line 774 "widgets-matchlistview.vala"
		return result;
#line 4088 "widgets-matchlistview.c"
	}
#line 777 "widgets-matchlistview.vala"
	_tmp27_ = tl;
#line 777 "widgets-matchlistview.vala"
	gtk_target_list_add_text_targets (_tmp27_, (guint) 0);
#line 778 "widgets-matchlistview.vala"
	_tmp28_ = tl;
#line 778 "widgets-matchlistview.vala"
	gtk_target_list_add_uri_targets (_tmp28_, (guint) 1);
#line 779 "widgets-matchlistview.vala"
	_tmp29_ = um;
#line 779 "widgets-matchlistview.vala"
	_tmp30_ = synapse_match_get_title ((SynapseMatch*) _tmp29_);
#line 779 "widgets-matchlistview.vala"
	_tmp31_ = _tmp30_;
#line 779 "widgets-matchlistview.vala"
	_tmp32_ = g_strdup (_tmp31_);
#line 779 "widgets-matchlistview.vala"
	_g_free0 (self->priv->dragdrop_name);
#line 779 "widgets-matchlistview.vala"
	self->priv->dragdrop_name = _tmp32_;
#line 780 "widgets-matchlistview.vala"
	_tmp33_ = um;
#line 780 "widgets-matchlistview.vala"
	_tmp34_ = synapse_uri_match_get_uri (_tmp33_);
#line 780 "widgets-matchlistview.vala"
	_tmp35_ = _tmp34_;
#line 780 "widgets-matchlistview.vala"
	_tmp36_ = g_strdup (_tmp35_);
#line 780 "widgets-matchlistview.vala"
	_g_free0 (self->priv->dragdrop_uri);
#line 780 "widgets-matchlistview.vala"
	self->priv->dragdrop_uri = _tmp36_;
#line 781 "widgets-matchlistview.vala"
	_tmp37_ = tl;
#line 781 "widgets-matchlistview.vala"
	gtk_drag_source_set_target_list ((GtkWidget*) self, _tmp37_);
#line 4126 "widgets-matchlistview.c"
	{
		GIcon* icon = NULL;
		SynapseUriMatch* _tmp38_;
		const gchar* _tmp39_;
		const gchar* _tmp40_;
		GIcon* _tmp41_;
		GIcon* _tmp42_;
		GtkIconInfo* iconinfo = NULL;
		GtkIconTheme* _tmp43_;
		GIcon* _tmp44_;
		GtkIconInfo* _tmp45_;
		GtkIconInfo* _tmp46_;
		GdkPixbuf* icon_pixbuf = NULL;
		GtkIconInfo* _tmp47_;
		GdkPixbuf* _tmp48_;
		GdkPixbuf* _tmp49_;
		GdkPixbuf* _tmp50_;
#line 784 "widgets-matchlistview.vala"
		_tmp38_ = um;
#line 784 "widgets-matchlistview.vala"
		_tmp39_ = synapse_match_get_icon_name ((SynapseMatch*) _tmp38_);
#line 784 "widgets-matchlistview.vala"
		_tmp40_ = _tmp39_;
#line 784 "widgets-matchlistview.vala"
		_tmp41_ = g_icon_new_for_string (_tmp40_, &_inner_error0_);
#line 784 "widgets-matchlistview.vala"
		icon = _tmp41_;
#line 784 "widgets-matchlistview.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 4156 "widgets-matchlistview.c"
			goto __catch0_g_error;
		}
#line 785 "widgets-matchlistview.vala"
		_tmp42_ = icon;
#line 785 "widgets-matchlistview.vala"
		if (_tmp42_ == NULL) {
#line 785 "widgets-matchlistview.vala"
			result = TRUE;
#line 785 "widgets-matchlistview.vala"
			_g_object_unref0 (icon);
#line 785 "widgets-matchlistview.vala"
			_g_object_unref0 (um);
#line 785 "widgets-matchlistview.vala"
			_gtk_target_list_unref0 (tl);
#line 785 "widgets-matchlistview.vala"
			return result;
#line 4173 "widgets-matchlistview.c"
		}
#line 787 "widgets-matchlistview.vala"
		_tmp43_ = gtk_icon_theme_get_default ();
#line 787 "widgets-matchlistview.vala"
		_tmp44_ = icon;
#line 787 "widgets-matchlistview.vala"
		_tmp45_ = gtk_icon_theme_lookup_by_gicon (_tmp43_, _tmp44_, 48, GTK_ICON_LOOKUP_FORCE_SIZE);
#line 787 "widgets-matchlistview.vala"
		iconinfo = _tmp45_;
#line 788 "widgets-matchlistview.vala"
		_tmp46_ = iconinfo;
#line 788 "widgets-matchlistview.vala"
		if (_tmp46_ == NULL) {
#line 788 "widgets-matchlistview.vala"
			result = TRUE;
#line 788 "widgets-matchlistview.vala"
			_g_object_unref0 (iconinfo);
#line 788 "widgets-matchlistview.vala"
			_g_object_unref0 (icon);
#line 788 "widgets-matchlistview.vala"
			_g_object_unref0 (um);
#line 788 "widgets-matchlistview.vala"
			_gtk_target_list_unref0 (tl);
#line 788 "widgets-matchlistview.vala"
			return result;
#line 4199 "widgets-matchlistview.c"
		}
#line 790 "widgets-matchlistview.vala"
		_tmp47_ = iconinfo;
#line 790 "widgets-matchlistview.vala"
		_tmp48_ = gtk_icon_info_load_icon (_tmp47_, &_inner_error0_);
#line 790 "widgets-matchlistview.vala"
		icon_pixbuf = _tmp48_;
#line 790 "widgets-matchlistview.vala"
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 790 "widgets-matchlistview.vala"
			_g_object_unref0 (iconinfo);
#line 790 "widgets-matchlistview.vala"
			_g_object_unref0 (icon);
#line 4213 "widgets-matchlistview.c"
			goto __catch0_g_error;
		}
#line 791 "widgets-matchlistview.vala"
		_tmp49_ = icon_pixbuf;
#line 791 "widgets-matchlistview.vala"
		if (_tmp49_ == NULL) {
#line 791 "widgets-matchlistview.vala"
			result = TRUE;
#line 791 "widgets-matchlistview.vala"
			_g_object_unref0 (icon_pixbuf);
#line 791 "widgets-matchlistview.vala"
			_g_object_unref0 (iconinfo);
#line 791 "widgets-matchlistview.vala"
			_g_object_unref0 (icon);
#line 791 "widgets-matchlistview.vala"
			_g_object_unref0 (um);
#line 791 "widgets-matchlistview.vala"
			_gtk_target_list_unref0 (tl);
#line 791 "widgets-matchlistview.vala"
			return result;
#line 4234 "widgets-matchlistview.c"
		}
#line 793 "widgets-matchlistview.vala"
		_tmp50_ = icon_pixbuf;
#line 793 "widgets-matchlistview.vala"
		gtk_drag_source_set_icon_pixbuf ((GtkWidget*) self, _tmp50_);
#line 783 "widgets-matchlistview.vala"
		_g_object_unref0 (icon_pixbuf);
#line 783 "widgets-matchlistview.vala"
		_g_object_unref0 (iconinfo);
#line 783 "widgets-matchlistview.vala"
		_g_object_unref0 (icon);
#line 4246 "widgets-matchlistview.c"
	}
	goto __finally0;
	__catch0_g_error:
	{
#line 783 "widgets-matchlistview.vala"
		g_clear_error (&_inner_error0_);
#line 4253 "widgets-matchlistview.c"
	}
	__finally0:
#line 783 "widgets-matchlistview.vala"
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
#line 4258 "widgets-matchlistview.c"
		gboolean _tmp51_ = FALSE;
#line 783 "widgets-matchlistview.vala"
		_g_object_unref0 (um);
#line 783 "widgets-matchlistview.vala"
		_gtk_target_list_unref0 (tl);
#line 783 "widgets-matchlistview.vala"
		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);
#line 783 "widgets-matchlistview.vala"
		g_clear_error (&_inner_error0_);
#line 783 "widgets-matchlistview.vala"
		return _tmp51_;
#line 4270 "widgets-matchlistview.c"
	}
#line 796 "widgets-matchlistview.vala"
	result = TRUE;
#line 796 "widgets-matchlistview.vala"
	_g_object_unref0 (um);
#line 796 "widgets-matchlistview.vala"
	_gtk_target_list_unref0 (tl);
#line 796 "widgets-matchlistview.vala"
	return result;
#line 4280 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_real_drag_data_get (GtkWidget* base,
                                                GdkDragContext* context,
                                                GtkSelectionData* selection_data,
                                                guint info,
                                                guint time_)
{
	SynapseGuiMatchListView * self;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar** _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
#line 799 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListView*) base;
#line 799 "widgets-matchlistview.vala"
	g_return_if_fail (context != NULL);
#line 799 "widgets-matchlistview.vala"
	g_return_if_fail (selection_data != NULL);
#line 802 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->dragdrop_name;
#line 802 "widgets-matchlistview.vala"
	gtk_selection_data_set_text (selection_data, _tmp0_, -1);
#line 803 "widgets-matchlistview.vala"
	_tmp1_ = self->priv->dragdrop_uri;
#line 803 "widgets-matchlistview.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 803 "widgets-matchlistview.vala"
	_tmp3_ = g_new0 (gchar*, 1 + 1);
#line 803 "widgets-matchlistview.vala"
	_tmp3_[0] = _tmp2_;
#line 803 "widgets-matchlistview.vala"
	_tmp4_ = _tmp3_;
#line 803 "widgets-matchlistview.vala"
	_tmp4__length1 = 1;
#line 803 "widgets-matchlistview.vala"
	gtk_selection_data_set_uris (selection_data, _tmp4_);
#line 803 "widgets-matchlistview.vala"
	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
#line 4323 "widgets-matchlistview.c"
}

gboolean
synapse_gui_match_list_view_get_animation_enabled (SynapseGuiMatchListView* self)
{
	gboolean result;
#line 255 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 255 "widgets-matchlistview.vala"
	result = self->priv->_animation_enabled;
#line 255 "widgets-matchlistview.vala"
	return result;
#line 4336 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_set_animation_enabled (SynapseGuiMatchListView* self,
                                                   gboolean value)
{
	gboolean old_value;
#line 255 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 255 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_list_view_get_animation_enabled (self);
#line 255 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 255 "widgets-matchlistview.vala"
		self->priv->_animation_enabled = value;
#line 255 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_ANIMATION_ENABLED_PROPERTY]);
#line 4354 "widgets-matchlistview.c"
	}
}

gint
synapse_gui_match_list_view_get_selected_index (SynapseGuiMatchListView* self)
{
	gint result;
#line 294 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 295 "widgets-matchlistview.vala"
	result = self->priv->select_index;
#line 295 "widgets-matchlistview.vala"
	return result;
#line 4368 "widgets-matchlistview.c"
}

gint
synapse_gui_match_list_view_get_targetted_index (SynapseGuiMatchListView* self)
{
	gint result;
#line 300 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 301 "widgets-matchlistview.vala"
	result = self->priv->goto_index;
#line 301 "widgets-matchlistview.vala"
	return result;
#line 4381 "widgets-matchlistview.c"
}

gboolean
synapse_gui_match_list_view_get_selection_enabled (SynapseGuiMatchListView* self)
{
	gboolean result;
#line 307 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 307 "widgets-matchlistview.vala"
	result = self->priv->_selection_enabled;
#line 307 "widgets-matchlistview.vala"
	return result;
#line 4394 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_set_selection_enabled (SynapseGuiMatchListView* self,
                                                   gboolean value)
{
	gboolean old_value;
#line 307 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 307 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_list_view_get_selection_enabled (self);
#line 307 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 307 "widgets-matchlistview.vala"
		self->priv->_selection_enabled = value;
#line 307 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTION_ENABLED_PROPERTY]);
#line 4412 "widgets-matchlistview.c"
	}
}

gboolean
synapse_gui_match_list_view_get_use_base_colors (SynapseGuiMatchListView* self)
{
	gboolean result;
#line 312 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 312 "widgets-matchlistview.vala"
	result = self->priv->_use_base_colors;
#line 312 "widgets-matchlistview.vala"
	return result;
#line 4426 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_set_use_base_colors (SynapseGuiMatchListView* self,
                                                 gboolean value)
{
	gboolean old_value;
#line 312 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 312 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_list_view_get_use_base_colors (self);
#line 312 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 312 "widgets-matchlistview.vala"
		self->priv->_use_base_colors = value;
#line 312 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_USE_BASE_COLORS_PROPERTY]);
#line 4444 "widgets-matchlistview.c"
	}
}

gint
synapse_gui_match_list_view_get_min_visible_rows (SynapseGuiMatchListView* self)
{
	gint result;
#line 317 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 317 "widgets-matchlistview.vala"
	result = self->priv->_min_visible_rows;
#line 317 "widgets-matchlistview.vala"
	return result;
#line 4458 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_set_min_visible_rows (SynapseGuiMatchListView* self,
                                                  gint value)
{
	gint old_value;
#line 317 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 317 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_list_view_get_min_visible_rows (self);
#line 317 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 317 "widgets-matchlistview.vala"
		self->priv->_min_visible_rows = value;
#line 317 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_MIN_VISIBLE_ROWS_PROPERTY]);
#line 4476 "widgets-matchlistview.c"
	}
}

SynapseGuiMatchListViewBehavior
synapse_gui_match_list_view_get_behavior (SynapseGuiMatchListView* self)
{
	SynapseGuiMatchListViewBehavior result;
#line 333 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 333 "widgets-matchlistview.vala"
	result = self->priv->_behavior;
#line 333 "widgets-matchlistview.vala"
	return result;
#line 4490 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_set_behavior (SynapseGuiMatchListView* self,
                                          SynapseGuiMatchListViewBehavior value)
{
	SynapseGuiMatchListViewBehavior old_value;
#line 334 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 334 "widgets-matchlistview.vala"
	old_value = synapse_gui_match_list_view_get_behavior (self);
#line 334 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 334 "widgets-matchlistview.vala"
		self->priv->_behavior = value;
#line 334 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_PROPERTY]);
#line 4508 "widgets-matchlistview.c"
	}
}

static inline gpointer
synapse_gui_match_list_view_match_view_renderer_base_get_instance_private (SynapseGuiMatchListViewMatchViewRendererBase* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiMatchListViewMatchViewRendererBase_private_offset);
}

static void
synapse_gui_match_list_view_match_view_renderer_base_real_render_match (SynapseGuiMatchListViewMatchViewRendererBase* self,
                                                                        cairo_t* ctx,
                                                                        SynapseMatch* m,
                                                                        gint width,
                                                                        gint height,
                                                                        gboolean use_base,
                                                                        gdouble selected_pct)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
#line 349 "widgets-matchlistview.vala"
	g_return_if_fail (ctx != NULL);
#line 349 "widgets-matchlistview.vala"
	g_return_if_fail (m != NULL);
#line 351 "widgets-matchlistview.vala"
	cairo_translate (ctx, (gdouble) 2, (gdouble) 2);
#line 352 "widgets-matchlistview.vala"
	_tmp0_ = synapse_match_get_icon_name (m);
#line 352 "widgets-matchlistview.vala"
	_tmp1_ = _tmp0_;
#line 352 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_match_view_renderer_base_draw_icon_in_position (self, ctx, _tmp1_, 32, 1.0);
#line 4541 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_match_view_renderer_base_render_match (SynapseGuiMatchListViewMatchViewRendererBase* self,
                                                                   cairo_t* ctx,
                                                                   SynapseMatch* m,
                                                                   gint width,
                                                                   gint height,
                                                                   gboolean use_base,
                                                                   gdouble selected_pct)
{
	SynapseGuiMatchListViewMatchViewRendererBaseClass* _klass_;
#line 349 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 349 "widgets-matchlistview.vala"
	_klass_ = SYNAPSE_GUI_MATCH_LIST_VIEW_MATCH_VIEW_RENDERER_BASE_GET_CLASS (self);
#line 349 "widgets-matchlistview.vala"
	if (_klass_->render_match) {
#line 349 "widgets-matchlistview.vala"
		_klass_->render_match (self, ctx, m, width, height, use_base, selected_pct);
#line 4562 "widgets-matchlistview.c"
	}
}

static gint
synapse_gui_match_list_view_match_view_renderer_base_real_calculate_row_height (SynapseGuiMatchListViewMatchViewRendererBase* self)
{
	gint result;
#line 356 "widgets-matchlistview.vala"
	result = 36;
#line 356 "widgets-matchlistview.vala"
	return result;
#line 4574 "widgets-matchlistview.c"
}

gint
synapse_gui_match_list_view_match_view_renderer_base_calculate_row_height (SynapseGuiMatchListViewMatchViewRendererBase* self)
{
	SynapseGuiMatchListViewMatchViewRendererBaseClass* _klass_;
#line 354 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 354 "widgets-matchlistview.vala"
	_klass_ = SYNAPSE_GUI_MATCH_LIST_VIEW_MATCH_VIEW_RENDERER_BASE_GET_CLASS (self);
#line 354 "widgets-matchlistview.vala"
	if (_klass_->calculate_row_height) {
#line 354 "widgets-matchlistview.vala"
		return _klass_->calculate_row_height (self);
#line 4589 "widgets-matchlistview.c"
	}
#line 354 "widgets-matchlistview.vala"
	return -1;
#line 4593 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_match_view_renderer_base_draw_icon_in_position (SynapseGuiMatchListViewMatchViewRendererBase* self,
                                                                            cairo_t* ctx,
                                                                            const gchar* name,
                                                                            gint pixel_size,
                                                                            gdouble with_alpha)
{
	gboolean _tmp0_ = FALSE;
	GdkPixbuf* icon_pixbuf = NULL;
	SynapseGuiIconCacheService* _tmp1_;
	SynapseGuiIconCacheService* _tmp2_;
	GdkPixbuf* _tmp3_;
	GdkPixbuf* _tmp4_;
	GdkPixbuf* _tmp5_;
	GdkPixbuf* _tmp6_;
#line 364 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 364 "widgets-matchlistview.vala"
	g_return_if_fail (ctx != NULL);
#line 366 "widgets-matchlistview.vala"
	cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) pixel_size, (gdouble) pixel_size);
#line 367 "widgets-matchlistview.vala"
	cairo_clip (ctx);
#line 368 "widgets-matchlistview.vala"
	if (name == NULL) {
#line 368 "widgets-matchlistview.vala"
		_tmp0_ = TRUE;
#line 4623 "widgets-matchlistview.c"
	} else {
#line 368 "widgets-matchlistview.vala"
		_tmp0_ = g_strcmp0 (name, "") == 0;
#line 4627 "widgets-matchlistview.c"
	}
#line 368 "widgets-matchlistview.vala"
	if (_tmp0_) {
#line 368 "widgets-matchlistview.vala"
		name = "unknown";
#line 4633 "widgets-matchlistview.c"
	}
#line 370 "widgets-matchlistview.vala"
	_tmp1_ = synapse_gui_icon_cache_service_get_default ();
#line 370 "widgets-matchlistview.vala"
	_tmp2_ = _tmp1_;
#line 370 "widgets-matchlistview.vala"
	_tmp3_ = synapse_gui_icon_cache_service_get_icon (_tmp2_, name, pixel_size);
#line 370 "widgets-matchlistview.vala"
	_tmp4_ = _tmp3_;
#line 370 "widgets-matchlistview.vala"
	_g_object_unref0 (_tmp2_);
#line 370 "widgets-matchlistview.vala"
	icon_pixbuf = _tmp4_;
#line 371 "widgets-matchlistview.vala"
	_tmp5_ = icon_pixbuf;
#line 371 "widgets-matchlistview.vala"
	if (_tmp5_ == NULL) {
#line 371 "widgets-matchlistview.vala"
		_g_object_unref0 (icon_pixbuf);
#line 371 "widgets-matchlistview.vala"
		return;
#line 4655 "widgets-matchlistview.c"
	}
#line 373 "widgets-matchlistview.vala"
	_tmp6_ = icon_pixbuf;
#line 373 "widgets-matchlistview.vala"
	gdk_cairo_set_source_pixbuf (ctx, _tmp6_, (gdouble) 0, (gdouble) 0);
#line 374 "widgets-matchlistview.vala"
	if (with_alpha == 1.0) {
#line 375 "widgets-matchlistview.vala"
		cairo_paint (ctx);
#line 4665 "widgets-matchlistview.c"
	} else {
#line 377 "widgets-matchlistview.vala"
		cairo_paint_with_alpha (ctx, with_alpha);
#line 4669 "widgets-matchlistview.c"
	}
#line 364 "widgets-matchlistview.vala"
	_g_object_unref0 (icon_pixbuf);
#line 4673 "widgets-matchlistview.c"
}

gint
synapse_gui_match_list_view_match_view_renderer_base_get_row_height_request (SynapseGuiMatchListViewMatchViewRendererBase* self)
{
	gint result;
#line 390 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 392 "widgets-matchlistview.vala"
	result = self->priv->row_height_cached;
#line 392 "widgets-matchlistview.vala"
	return result;
#line 4686 "widgets-matchlistview.c"
}

void
synapse_gui_match_list_view_match_view_renderer_base_on_style_updated (SynapseGuiMatchListViewMatchViewRendererBase* self)
{
	PangoLayout* layout = NULL;
	PangoLayout* _tmp0_;
#line 395 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 398 "widgets-matchlistview.vala"
	self->rtl = gtk_widget_get_direction ((GtkWidget*) self);
#line 399 "widgets-matchlistview.vala"
	_tmp0_ = gtk_label_get_layout ((GtkLabel*) self);
#line 399 "widgets-matchlistview.vala"
	layout = _tmp0_;
#line 400 "widgets-matchlistview.vala"
	synapse_gui_utils_update_layout_rtl (layout, self->rtl);
#line 401 "widgets-matchlistview.vala"
	pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END);
#line 402 "widgets-matchlistview.vala"
	self->priv->row_height_cached = synapse_gui_match_list_view_match_view_renderer_base_calculate_row_height (self);
#line 403 "widgets-matchlistview.vala"
	gtk_widget_queue_resize ((GtkWidget*) self);
#line 4710 "widgets-matchlistview.c"
}

static gboolean
synapse_gui_match_list_view_match_view_renderer_base_real_draw (GtkWidget* base,
                                                                cairo_t* ctx)
{
	SynapseGuiMatchListViewMatchViewRendererBase * self;
	gboolean result;
#line 406 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListViewMatchViewRendererBase*) base;
#line 406 "widgets-matchlistview.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 409 "widgets-matchlistview.vala"
	result = TRUE;
#line 409 "widgets-matchlistview.vala"
	return result;
#line 4727 "widgets-matchlistview.c"
}

SynapseGuiMatchListViewMatchViewRendererBase*
synapse_gui_match_list_view_match_view_renderer_base_construct (GType object_type)
{
	SynapseGuiMatchListViewMatchViewRendererBase * self = NULL;
#line 338 "widgets-matchlistview.vala"
	self = (SynapseGuiMatchListViewMatchViewRendererBase*) g_object_new (object_type, NULL);
#line 338 "widgets-matchlistview.vala"
	return self;
#line 4738 "widgets-matchlistview.c"
}

SynapseGuiMatchListViewMatchViewRendererBase*
synapse_gui_match_list_view_match_view_renderer_base_new (void)
{
#line 338 "widgets-matchlistview.vala"
	return synapse_gui_match_list_view_match_view_renderer_base_construct (SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE);
#line 4746 "widgets-matchlistview.c"
}

static void
_synapse_gui_match_list_view_match_view_renderer_base_on_style_updated_gtk_widget_style_updated (GtkWidget* _sender,
                                                                                                 gpointer self)
{
#line 385 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_match_view_renderer_base_on_style_updated ((SynapseGuiMatchListViewMatchViewRendererBase*) self);
#line 4755 "widgets-matchlistview.c"
}

static GObject *
synapse_gui_match_list_view_match_view_renderer_base_constructor (GType type,
                                                                  guint n_construct_properties,
                                                                  GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	SynapseGuiMatchListViewMatchViewRendererBase * self;
	SynapseGuiUtilsColorHelper* _tmp0_;
#line 380 "widgets-matchlistview.vala"
	parent_class = G_OBJECT_CLASS (synapse_gui_match_list_view_match_view_renderer_base_parent_class);
#line 380 "widgets-matchlistview.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 380 "widgets-matchlistview.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE, SynapseGuiMatchListViewMatchViewRendererBase);
#line 382 "widgets-matchlistview.vala"
	self->rtl = GTK_TEXT_DIR_LTR;
#line 383 "widgets-matchlistview.vala"
	_tmp0_ = synapse_gui_utils_color_helper_get_default ();
#line 383 "widgets-matchlistview.vala"
	_synapse_gui_utils_color_helper_unref0 (self->ch);
#line 383 "widgets-matchlistview.vala"
	self->ch = _tmp0_;
#line 385 "widgets-matchlistview.vala"
	g_signal_connect_object ((GtkWidget*) self, "style-updated", (GCallback) _synapse_gui_match_list_view_match_view_renderer_base_on_style_updated_gtk_widget_style_updated, self, 0);
#line 386 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_match_view_renderer_base_on_style_updated (self);
#line 380 "widgets-matchlistview.vala"
	return obj;
#line 4787 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_match_view_renderer_base_class_init (SynapseGuiMatchListViewMatchViewRendererBaseClass * klass,
                                                                 gpointer klass_data)
{
#line 338 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_match_view_renderer_base_parent_class = g_type_class_peek_parent (klass);
#line 338 "widgets-matchlistview.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiMatchListViewMatchViewRendererBase_private_offset);
#line 338 "widgets-matchlistview.vala"
	((SynapseGuiMatchListViewMatchViewRendererBaseClass *) klass)->render_match = (void (*) (SynapseGuiMatchListViewMatchViewRendererBase*, cairo_t*, SynapseMatch*, gint, gint, gboolean, gdouble)) synapse_gui_match_list_view_match_view_renderer_base_real_render_match;
#line 338 "widgets-matchlistview.vala"
	((SynapseGuiMatchListViewMatchViewRendererBaseClass *) klass)->calculate_row_height = (gint (*) (SynapseGuiMatchListViewMatchViewRendererBase*)) synapse_gui_match_list_view_match_view_renderer_base_real_calculate_row_height;
#line 338 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_match_list_view_match_view_renderer_base_real_draw;
#line 338 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->constructor = synapse_gui_match_list_view_match_view_renderer_base_constructor;
#line 338 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_match_list_view_match_view_renderer_base_finalize;
#line 4808 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_match_view_renderer_base_instance_init (SynapseGuiMatchListViewMatchViewRendererBase * self,
                                                                    gpointer klass)
{
#line 338 "widgets-matchlistview.vala"
	self->priv = synapse_gui_match_list_view_match_view_renderer_base_get_instance_private (self);
#line 389 "widgets-matchlistview.vala"
	self->priv->row_height_cached = 36;
#line 4819 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_match_view_renderer_base_finalize (GObject * obj)
{
	SynapseGuiMatchListViewMatchViewRendererBase * self;
#line 338 "widgets-matchlistview.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_MATCH_VIEW_RENDERER_BASE, SynapseGuiMatchListViewMatchViewRendererBase);
#line 360 "widgets-matchlistview.vala"
	_synapse_gui_utils_color_helper_unref0 (self->ch);
#line 338 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (synapse_gui_match_list_view_match_view_renderer_base_parent_class)->finalize (obj);
#line 4832 "widgets-matchlistview.c"
}

static GType
synapse_gui_match_list_view_match_view_renderer_base_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiMatchListViewMatchViewRendererBaseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_match_list_view_match_view_renderer_base_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiMatchListViewMatchViewRendererBase), 0, (GInstanceInitFunc) synapse_gui_match_list_view_match_view_renderer_base_instance_init, NULL };
	GType synapse_gui_match_list_view_match_view_renderer_base_type_id;
	synapse_gui_match_list_view_match_view_renderer_base_type_id = g_type_register_static (gtk_label_get_type (), "SynapseGuiMatchListViewMatchViewRendererBase", &g_define_type_info, 0);
	SynapseGuiMatchListViewMatchViewRendererBase_private_offset = g_type_add_instance_private (synapse_gui_match_list_view_match_view_renderer_base_type_id, sizeof (SynapseGuiMatchListViewMatchViewRendererBasePrivate));
	return synapse_gui_match_list_view_match_view_renderer_base_type_id;
}

GType
synapse_gui_match_list_view_match_view_renderer_base_get_type (void)
{
	static volatile gsize synapse_gui_match_list_view_match_view_renderer_base_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_match_list_view_match_view_renderer_base_type_id__once)) {
		GType synapse_gui_match_list_view_match_view_renderer_base_type_id;
		synapse_gui_match_list_view_match_view_renderer_base_type_id = synapse_gui_match_list_view_match_view_renderer_base_get_type_once ();
		g_once_init_leave (&synapse_gui_match_list_view_match_view_renderer_base_type_id__once, synapse_gui_match_list_view_match_view_renderer_base_type_id);
	}
	return synapse_gui_match_list_view_match_view_renderer_base_type_id__once;
}

static void
synapse_gui_match_list_view_class_init (SynapseGuiMatchListViewClass * klass,
                                        gpointer klass_data)
{
#line 248 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_parent_class = g_type_class_peek_parent (klass);
#line 248 "widgets-matchlistview.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiMatchListView_private_offset);
#line 248 "widgets-matchlistview.vala"
	((GtkContainerClass *) klass)->forall = (void (*) (GtkContainer*, gboolean, GtkCallback, gpointer)) synapse_gui_match_list_view_real_forall_internal;
#line 248 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->size_allocate = (void (*) (GtkWidget*, GtkAllocation*)) synapse_gui_match_list_view_real_size_allocate;
#line 248 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_match_list_view_real_get_preferred_height;
#line 248 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_match_list_view_real_get_preferred_width;
#line 248 "widgets-matchlistview.vala"
	((SynapseGuiMatchListViewClass *) klass)->set_list = (void (*) (SynapseGuiMatchListView*, GeeList*, gint, gint)) synapse_gui_match_list_view_real_set_list;
#line 248 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_match_list_view_real_draw;
#line 248 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->scroll_event = (gboolean (*) (GtkWidget*, GdkEventScroll*)) synapse_gui_match_list_view_real_scroll_event;
#line 248 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->button_press_event = (gboolean (*) (GtkWidget*, GdkEventButton*)) synapse_gui_match_list_view_real_button_press_event;
#line 248 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->drag_data_get = (void (*) (GtkWidget*, GdkDragContext*, GtkSelectionData*, guint, guint)) synapse_gui_match_list_view_real_drag_data_get;
#line 248 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_match_list_view_get_property;
#line 248 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_match_list_view_set_property;
#line 248 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_match_list_view_finalize;
#line 248 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_LIST_VIEW_ANIMATION_ENABLED_PROPERTY, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_ANIMATION_ENABLED_PROPERTY] = g_param_spec_boolean ("animation-enabled", "animation-enabled", "animation-enabled", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 248 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTED_INDEX_PROPERTY, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTED_INDEX_PROPERTY] = g_param_spec_int ("selected-index", "selected-index", "selected-index", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
#line 248 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_LIST_VIEW_TARGETTED_INDEX_PROPERTY, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_TARGETTED_INDEX_PROPERTY] = g_param_spec_int ("targetted-index", "targetted-index", "targetted-index", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
#line 248 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTION_ENABLED_PROPERTY, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTION_ENABLED_PROPERTY] = g_param_spec_boolean ("selection-enabled", "selection-enabled", "selection-enabled", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 248 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_LIST_VIEW_USE_BASE_COLORS_PROPERTY, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_USE_BASE_COLORS_PROPERTY] = g_param_spec_boolean ("use-base-colors", "use-base-colors", "use-base-colors", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 248 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_LIST_VIEW_MIN_VISIBLE_ROWS_PROPERTY, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_MIN_VISIBLE_ROWS_PROPERTY] = g_param_spec_int ("min-visible-rows", "min-visible-rows", "min-visible-rows", G_MININT, G_MAXINT, 5, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 248 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_PROPERTY, synapse_gui_match_list_view_properties[SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_PROPERTY] = g_param_spec_enum ("behavior", "behavior", "behavior", SYNAPSE_GUI_MATCH_LIST_VIEW_TYPE_BEHAVIOR, SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 248 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_signals[SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTED_INDEX_CHANGED_SIGNAL] = g_signal_new ("selected-index-changed", SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
#line 248 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_signals[SYNAPSE_GUI_MATCH_LIST_VIEW_FIRE_ITEM_SIGNAL] = g_signal_new ("fire-item", SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 248 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_signals[SYNAPSE_GUI_MATCH_LIST_VIEW_FIRE_ITEM_CONTEXT_SWITCH_SIGNAL] = g_signal_new ("fire-item-context-switch", SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 4909 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_instance_init (SynapseGuiMatchListView * self,
                                           gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
#line 248 "widgets-matchlistview.vala"
	self->priv = synapse_gui_match_list_view_get_instance_private (self);
#line 254 "widgets-matchlistview.vala"
	self->priv->_animation_enabled = TRUE;
#line 305 "widgets-matchlistview.vala"
	self->priv->_selection_enabled = TRUE;
#line 310 "widgets-matchlistview.vala"
	self->priv->_use_base_colors = TRUE;
#line 315 "widgets-matchlistview.vala"
	self->priv->_min_visible_rows = 5;
#line 331 "widgets-matchlistview.vala"
	self->priv->_behavior = SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_CENTER;
#line 717 "widgets-matchlistview.vala"
	self->priv->dragdrop_target_item = 0;
#line 718 "widgets-matchlistview.vala"
	_tmp0_ = g_strdup ("");
#line 718 "widgets-matchlistview.vala"
	self->priv->dragdrop_name = _tmp0_;
#line 719 "widgets-matchlistview.vala"
	_tmp1_ = g_strdup ("");
#line 719 "widgets-matchlistview.vala"
	self->priv->dragdrop_uri = _tmp1_;
#line 4940 "widgets-matchlistview.c"
}

static void
synapse_gui_match_list_view_finalize (GObject * obj)
{
	SynapseGuiMatchListView * self;
#line 248 "widgets-matchlistview.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView);
#line 282 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->items);
#line 414 "widgets-matchlistview.vala"
	_g_object_unref0 (self->renderer);
#line 415 "widgets-matchlistview.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 718 "widgets-matchlistview.vala"
	_g_free0 (self->priv->dragdrop_name);
#line 719 "widgets-matchlistview.vala"
	_g_free0 (self->priv->dragdrop_uri);
#line 248 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (synapse_gui_match_list_view_parent_class)->finalize (obj);
#line 4961 "widgets-matchlistview.c"
}

static GType
synapse_gui_match_list_view_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiMatchListViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_match_list_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiMatchListView), 0, (GInstanceInitFunc) synapse_gui_match_list_view_instance_init, NULL };
	GType synapse_gui_match_list_view_type_id;
	synapse_gui_match_list_view_type_id = g_type_register_static (gtk_event_box_get_type (), "SynapseGuiMatchListView", &g_define_type_info, 0);
	SynapseGuiMatchListView_private_offset = g_type_add_instance_private (synapse_gui_match_list_view_type_id, sizeof (SynapseGuiMatchListViewPrivate));
	return synapse_gui_match_list_view_type_id;
}

GType
synapse_gui_match_list_view_get_type (void)
{
	static volatile gsize synapse_gui_match_list_view_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_match_list_view_type_id__once)) {
		GType synapse_gui_match_list_view_type_id;
		synapse_gui_match_list_view_type_id = synapse_gui_match_list_view_get_type_once ();
		g_once_init_leave (&synapse_gui_match_list_view_type_id__once, synapse_gui_match_list_view_type_id);
	}
	return synapse_gui_match_list_view_type_id__once;
}

static void
_vala_synapse_gui_match_list_view_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec)
{
	SynapseGuiMatchListView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView);
#line 248 "widgets-matchlistview.vala"
	switch (property_id) {
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_ANIMATION_ENABLED_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_match_list_view_get_animation_enabled (self));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTED_INDEX_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		g_value_set_int (value, synapse_gui_match_list_view_get_selected_index (self));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_TARGETTED_INDEX_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		g_value_set_int (value, synapse_gui_match_list_view_get_targetted_index (self));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTION_ENABLED_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_match_list_view_get_selection_enabled (self));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_USE_BASE_COLORS_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_match_list_view_get_use_base_colors (self));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_MIN_VISIBLE_ROWS_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		g_value_set_int (value, synapse_gui_match_list_view_get_min_visible_rows (self));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		g_value_set_enum (value, synapse_gui_match_list_view_get_behavior (self));
#line 248 "widgets-matchlistview.vala"
		break;
#line 5038 "widgets-matchlistview.c"
		default:
#line 248 "widgets-matchlistview.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 248 "widgets-matchlistview.vala"
		break;
#line 5044 "widgets-matchlistview.c"
	}
}

static void
_vala_synapse_gui_match_list_view_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec)
{
	SynapseGuiMatchListView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView);
#line 248 "widgets-matchlistview.vala"
	switch (property_id) {
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_ANIMATION_ENABLED_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_set_animation_enabled (self, g_value_get_boolean (value));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_SELECTION_ENABLED_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_set_selection_enabled (self, g_value_get_boolean (value));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_USE_BASE_COLORS_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_set_use_base_colors (self, g_value_get_boolean (value));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_MIN_VISIBLE_ROWS_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_set_min_visible_rows (self, g_value_get_int (value));
#line 248 "widgets-matchlistview.vala"
		break;
#line 248 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_MATCH_LIST_VIEW_BEHAVIOR_PROPERTY:
#line 248 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_set_behavior (self, g_value_get_enum (value));
#line 248 "widgets-matchlistview.vala"
		break;
#line 5088 "widgets-matchlistview.c"
		default:
#line 248 "widgets-matchlistview.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 248 "widgets-matchlistview.vala"
		break;
#line 5094 "widgets-matchlistview.c"
	}
}

static inline gpointer
synapse_gui_result_box_get_instance_private (SynapseGuiResultBox* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiResultBox_private_offset);
}

static void
__lambda17_ (SynapseGuiResultBox* self)
{
	SynapseGuiMatchListView* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
#line 839 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->view;
#line 839 "widgets-matchlistview.vala"
	_tmp1_ = self->priv->_use_base_colors;
#line 839 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_set_use_base_colors (_tmp0_, _tmp1_);
#line 840 "widgets-matchlistview.vala"
	_tmp2_ = self->priv->_use_base_colors;
#line 840 "widgets-matchlistview.vala"
	if (_tmp2_) {
#line 842 "widgets-matchlistview.vala"
		synapse_gui_result_box_set_state (self, GTK_STATE_FLAG_SELECTED);
#line 5122 "widgets-matchlistview.c"
	} else {
#line 846 "widgets-matchlistview.vala"
		synapse_gui_result_box_set_state (self, GTK_STATE_FLAG_NORMAL);
#line 5126 "widgets-matchlistview.c"
	}
#line 848 "widgets-matchlistview.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 5130 "widgets-matchlistview.c"
}

static void
___lambda17__g_object_notify (GObject* _sender,
                              GParamSpec* pspec,
                              gpointer self)
{
#line 838 "widgets-matchlistview.vala"
	__lambda17_ ((SynapseGuiResultBox*) self);
#line 5140 "widgets-matchlistview.c"
}

SynapseGuiResultBox*
synapse_gui_result_box_construct (GType object_type,
                                  gint width,
                                  gint nrows)
{
	SynapseGuiResultBox * self = NULL;
	SynapseGuiUtilsColorHelper* _tmp0_;
#line 829 "widgets-matchlistview.vala"
	self = (SynapseGuiResultBox*) g_object_new (object_type, NULL);
#line 831 "widgets-matchlistview.vala"
	self->priv->mwidth = width;
#line 832 "widgets-matchlistview.vala"
	self->priv->nrows = nrows;
#line 833 "widgets-matchlistview.vala"
	gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
#line 834 "widgets-matchlistview.vala"
	gtk_event_box_set_above_child ((GtkEventBox*) self, FALSE);
#line 835 "widgets-matchlistview.vala"
	gtk_event_box_set_visible_window ((GtkEventBox*) self, FALSE);
#line 836 "widgets-matchlistview.vala"
	_tmp0_ = synapse_gui_utils_color_helper_get_default ();
#line 836 "widgets-matchlistview.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 836 "widgets-matchlistview.vala"
	self->priv->ch = _tmp0_;
#line 837 "widgets-matchlistview.vala"
	synapse_gui_result_box_build_ui (self);
#line 838 "widgets-matchlistview.vala"
	g_signal_connect_object ((GObject*) self, "notify::use-base-colors", (GCallback) ___lambda17__g_object_notify, self, 0);
#line 829 "widgets-matchlistview.vala"
	return self;
#line 5174 "widgets-matchlistview.c"
}

SynapseGuiResultBox*
synapse_gui_result_box_new (gint width,
                            gint nrows)
{
#line 829 "widgets-matchlistview.vala"
	return synapse_gui_result_box_construct (SYNAPSE_GUI_TYPE_RESULT_BOX, width, nrows);
#line 5183 "widgets-matchlistview.c"
}

void
synapse_gui_result_box_set_state (SynapseGuiResultBox* self,
                                  GtkStateFlags state)
{
	GtkLabel* _tmp0_;
#line 856 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 858 "widgets-matchlistview.vala"
	gtk_widget_set_state_flags ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_event_box_get_type (), GtkEventBox), state, FALSE);
#line 859 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->status;
#line 859 "widgets-matchlistview.vala"
	gtk_widget_set_state_flags ((GtkWidget*) _tmp0_, GTK_STATE_FLAG_NORMAL, TRUE);
#line 5199 "widgets-matchlistview.c"
}

static gboolean
synapse_gui_result_box_real_draw (GtkWidget* base,
                                  cairo_t* ctx)
{
	SynapseGuiResultBox * self;
	GtkWidget* _tmp12_;
	gboolean result;
#line 862 "widgets-matchlistview.vala"
	self = (SynapseGuiResultBox*) base;
#line 862 "widgets-matchlistview.vala"
	g_return_val_if_fail (ctx != NULL, FALSE);
#line 864 "widgets-matchlistview.vala"
	if (self->priv->_use_base_colors) {
#line 5215 "widgets-matchlistview.c"
		GtkAllocation allocation = {0};
		GtkAllocation status_allocation = {0};
		GtkAllocation _tmp0_ = {0};
		GtkLabel* _tmp1_;
		GtkAllocation _tmp2_ = {0};
		GtkAllocation _tmp3_;
		GtkAllocation _tmp4_;
		cairo_pattern_t* pat = NULL;
		GtkLabel* _tmp5_;
		cairo_pattern_t* _tmp6_;
		GtkStateFlags t = 0U;
		SynapseGuiUtilsColorHelper* _tmp7_;
		cairo_pattern_t* _tmp8_;
		SynapseGuiUtilsColorHelper* _tmp9_;
		cairo_pattern_t* _tmp10_;
		cairo_pattern_t* _tmp11_;
#line 867 "widgets-matchlistview.vala"
		gtk_widget_get_allocation ((GtkWidget*) self, &_tmp0_);
#line 867 "widgets-matchlistview.vala"
		allocation = _tmp0_;
#line 868 "widgets-matchlistview.vala"
		_tmp1_ = self->priv->status;
#line 868 "widgets-matchlistview.vala"
		gtk_widget_get_allocation ((GtkWidget*) _tmp1_, &_tmp2_);
#line 868 "widgets-matchlistview.vala"
		status_allocation = _tmp2_;
#line 871 "widgets-matchlistview.vala"
		_tmp3_ = allocation;
#line 871 "widgets-matchlistview.vala"
		_tmp4_ = allocation;
#line 871 "widgets-matchlistview.vala"
		cairo_rectangle (ctx, (gdouble) 0, (gdouble) 0, (gdouble) _tmp3_.width, (gdouble) _tmp4_.height);
#line 872 "widgets-matchlistview.vala"
		cairo_clip (ctx);
#line 874 "widgets-matchlistview.vala"
		cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
#line 876 "widgets-matchlistview.vala"
		_tmp5_ = self->priv->status;
#line 876 "widgets-matchlistview.vala"
		_tmp6_ = cairo_pattern_create_linear ((gdouble) 0, (gdouble) 0, (gdouble) 0, (gdouble) gtk_widget_get_allocated_height ((GtkWidget*) _tmp5_));
#line 876 "widgets-matchlistview.vala"
		pat = _tmp6_;
#line 878 "widgets-matchlistview.vala"
		t = gtk_widget_get_state_flags ((GtkWidget*) self);
#line 879 "widgets-matchlistview.vala"
		_tmp7_ = self->priv->ch;
#line 879 "widgets-matchlistview.vala"
		_tmp8_ = pat;
#line 879 "widgets-matchlistview.vala"
		synapse_gui_utils_color_helper_add_color_stop_rgba (_tmp7_, _tmp8_, 0.0, 0.95, SYNAPSE_GUI_STYLE_TYPE_BG, t, SYNAPSE_GUI_MOD_NORMAL);
#line 880 "widgets-matchlistview.vala"
		_tmp9_ = self->priv->ch;
#line 880 "widgets-matchlistview.vala"
		_tmp10_ = pat;
#line 880 "widgets-matchlistview.vala"
		synapse_gui_utils_color_helper_add_color_stop_rgba (_tmp9_, _tmp10_, 1.0, 0.95, SYNAPSE_GUI_STYLE_TYPE_BG, t, SYNAPSE_GUI_MOD_DARKER);
#line 882 "widgets-matchlistview.vala"
		_tmp11_ = pat;
#line 882 "widgets-matchlistview.vala"
		cairo_set_source (ctx, _tmp11_);
#line 883 "widgets-matchlistview.vala"
		cairo_paint (ctx);
#line 864 "widgets-matchlistview.vala"
		_cairo_pattern_destroy0 (pat);
#line 5280 "widgets-matchlistview.c"
	}
#line 886 "widgets-matchlistview.vala"
	_tmp12_ = gtk_bin_get_child ((GtkBin*) self);
#line 886 "widgets-matchlistview.vala"
	gtk_container_propagate_draw ((GtkContainer*) self, _tmp12_, ctx);
#line 888 "widgets-matchlistview.vala"
	result = TRUE;
#line 888 "widgets-matchlistview.vala"
	return result;
#line 5290 "widgets-matchlistview.c"
}

SynapseGuiMatchListView*
synapse_gui_result_box_get_match_list_view (SynapseGuiResultBox* self)
{
	SynapseGuiMatchListView* _tmp0_;
	SynapseGuiMatchListView* _tmp1_;
	SynapseGuiMatchListView* result;
#line 891 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 893 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->view;
#line 893 "widgets-matchlistview.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 893 "widgets-matchlistview.vala"
	result = _tmp1_;
#line 893 "widgets-matchlistview.vala"
	return result;
#line 5309 "widgets-matchlistview.c"
}

static void
synapse_gui_result_box_real_get_preferred_width (GtkWidget* base,
                                                 gint* min_width,
                                                 gint* nat_width)
{
	SynapseGuiResultBox * self;
	gint _vala_min_width = 0;
	gint _vala_nat_width = 0;
	GtkBox* _tmp0_;
	gint _tmp1_ = 0;
	gint _tmp2_ = 0;
#line 896 "widgets-matchlistview.vala"
	self = (SynapseGuiResultBox*) base;
#line 898 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->vbox;
#line 898 "widgets-matchlistview.vala"
	gtk_widget_get_preferred_width ((GtkWidget*) _tmp0_, &_tmp1_, &_tmp2_);
#line 898 "widgets-matchlistview.vala"
	_vala_min_width = _tmp1_;
#line 898 "widgets-matchlistview.vala"
	_vala_nat_width = _tmp2_;
#line 899 "widgets-matchlistview.vala"
	_vala_nat_width = MAX (_vala_min_width, self->priv->mwidth);
#line 899 "widgets-matchlistview.vala"
	_vala_min_width = _vala_nat_width;
#line 896 "widgets-matchlistview.vala"
	if (min_width) {
#line 896 "widgets-matchlistview.vala"
		*min_width = _vala_min_width;
#line 5341 "widgets-matchlistview.c"
	}
#line 896 "widgets-matchlistview.vala"
	if (nat_width) {
#line 896 "widgets-matchlistview.vala"
		*nat_width = _vala_nat_width;
#line 5347 "widgets-matchlistview.c"
	}
}

static void
synapse_gui_result_box_real_get_preferred_height (GtkWidget* base,
                                                  gint* min_height,
                                                  gint* nat_height)
{
	SynapseGuiResultBox * self;
	gint _vala_min_height = 0;
	gint _vala_nat_height = 0;
	GtkBox* _tmp0_;
	gint _tmp1_ = 0;
	gint _tmp2_ = 0;
#line 902 "widgets-matchlistview.vala"
	self = (SynapseGuiResultBox*) base;
#line 904 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->vbox;
#line 904 "widgets-matchlistview.vala"
	gtk_widget_get_preferred_height ((GtkWidget*) _tmp0_, &_tmp1_, &_tmp2_);
#line 904 "widgets-matchlistview.vala"
	_vala_min_height = _tmp1_;
#line 904 "widgets-matchlistview.vala"
	_vala_nat_height = _tmp2_;
#line 902 "widgets-matchlistview.vala"
	if (min_height) {
#line 902 "widgets-matchlistview.vala"
		*min_height = _vala_min_height;
#line 5376 "widgets-matchlistview.c"
	}
#line 902 "widgets-matchlistview.vala"
	if (nat_height) {
#line 902 "widgets-matchlistview.vala"
		*nat_height = _vala_nat_height;
#line 5382 "widgets-matchlistview.c"
	}
}

static void
synapse_gui_result_box_build_ui (SynapseGuiResultBox* self)
{
	SynapseGuiMatchViewRenderer* _tmp0_;
	SynapseGuiMatchViewRenderer* _tmp1_;
	SynapseGuiMatchListView* _tmp2_;
	SynapseGuiMatchListView* _tmp3_;
	GtkBox* _tmp4_;
	GtkBox* _tmp5_;
	GtkBox* _tmp6_;
	GtkBox* _tmp7_;
	SynapseGuiMatchListView* _tmp8_;
	GtkBox* _tmp9_;
	GtkBox* _tmp10_;
	GtkBox* _tmp11_;
	GtkBox* _tmp12_;
	GtkLabel* _tmp13_;
	GtkLabel* _tmp14_;
	GtkLabel* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	GtkBox* _tmp18_;
	GtkLabel* _tmp19_;
	GtkBox* _tmp20_;
	GtkLabel* _tmp21_;
	GtkLabel* _tmp22_;
#line 907 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 909 "widgets-matchlistview.vala"
	_tmp0_ = synapse_gui_match_view_renderer_new ();
#line 909 "widgets-matchlistview.vala"
	g_object_ref_sink (_tmp0_);
#line 909 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->rend);
#line 909 "widgets-matchlistview.vala"
	self->priv->rend = _tmp0_;
#line 910 "widgets-matchlistview.vala"
	_tmp1_ = self->priv->rend;
#line 910 "widgets-matchlistview.vala"
	_tmp2_ = synapse_gui_match_list_view_new ((SynapseGuiMatchListViewMatchViewRendererBase*) _tmp1_);
#line 910 "widgets-matchlistview.vala"
	g_object_ref_sink (_tmp2_);
#line 910 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->view);
#line 910 "widgets-matchlistview.vala"
	self->priv->view = _tmp2_;
#line 911 "widgets-matchlistview.vala"
	_tmp3_ = self->priv->view;
#line 911 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_set_min_visible_rows (_tmp3_, self->priv->nrows);
#line 913 "widgets-matchlistview.vala"
	_tmp4_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
#line 913 "widgets-matchlistview.vala"
	g_object_ref_sink (_tmp4_);
#line 913 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->vbox);
#line 913 "widgets-matchlistview.vala"
	self->priv->vbox = _tmp4_;
#line 914 "widgets-matchlistview.vala"
	_tmp5_ = self->priv->vbox;
#line 914 "widgets-matchlistview.vala"
	gtk_container_set_border_width ((GtkContainer*) _tmp5_, (guint) 0);
#line 915 "widgets-matchlistview.vala"
	_tmp6_ = self->priv->vbox;
#line 915 "widgets-matchlistview.vala"
	gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp6_);
#line 916 "widgets-matchlistview.vala"
	_tmp7_ = self->priv->vbox;
#line 916 "widgets-matchlistview.vala"
	_tmp8_ = self->priv->view;
#line 916 "widgets-matchlistview.vala"
	gtk_box_pack_start (_tmp7_, (GtkWidget*) _tmp8_, TRUE, TRUE, (guint) 0);
#line 917 "widgets-matchlistview.vala"
	_tmp9_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
#line 917 "widgets-matchlistview.vala"
	g_object_ref_sink (_tmp9_);
#line 917 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->status_box);
#line 917 "widgets-matchlistview.vala"
	self->priv->status_box = _tmp9_;
#line 918 "widgets-matchlistview.vala"
	_tmp10_ = self->priv->status_box;
#line 918 "widgets-matchlistview.vala"
	gtk_widget_set_size_request ((GtkWidget*) _tmp10_, -1, 15);
#line 919 "widgets-matchlistview.vala"
	_tmp11_ = self->priv->vbox;
#line 919 "widgets-matchlistview.vala"
	_tmp12_ = self->priv->status_box;
#line 919 "widgets-matchlistview.vala"
	gtk_box_pack_start (_tmp11_, (GtkWidget*) _tmp12_, FALSE, TRUE, (guint) 0);
#line 920 "widgets-matchlistview.vala"
	_tmp13_ = (GtkLabel*) gtk_label_new (NULL);
#line 920 "widgets-matchlistview.vala"
	g_object_ref_sink (_tmp13_);
#line 920 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->status);
#line 920 "widgets-matchlistview.vala"
	self->priv->status = _tmp13_;
#line 921 "widgets-matchlistview.vala"
	_tmp14_ = self->priv->status;
#line 921 "widgets-matchlistview.vala"
	gtk_misc_set_alignment ((GtkMisc*) _tmp14_, (gfloat) 0, (gfloat) 0);
#line 922 "widgets-matchlistview.vala"
	_tmp15_ = self->priv->status;
#line 922 "widgets-matchlistview.vala"
	_tmp16_ = g_markup_printf_escaped ("<b>%s</b>", _ ("No results."));
#line 922 "widgets-matchlistview.vala"
	_tmp17_ = _tmp16_;
#line 922 "widgets-matchlistview.vala"
	gtk_label_set_markup (_tmp15_, _tmp17_);
#line 922 "widgets-matchlistview.vala"
	_g_free0 (_tmp17_);
#line 923 "widgets-matchlistview.vala"
	_tmp18_ = self->priv->status_box;
#line 923 "widgets-matchlistview.vala"
	_tmp19_ = self->priv->status;
#line 923 "widgets-matchlistview.vala"
	gtk_box_pack_start (_tmp18_, (GtkWidget*) _tmp19_, FALSE, FALSE, (guint) 10);
#line 924 "widgets-matchlistview.vala"
	_tmp20_ = self->priv->status_box;
#line 924 "widgets-matchlistview.vala"
	_tmp21_ = (GtkLabel*) gtk_label_new (NULL);
#line 924 "widgets-matchlistview.vala"
	g_object_ref_sink (_tmp21_);
#line 924 "widgets-matchlistview.vala"
	_tmp22_ = _tmp21_;
#line 924 "widgets-matchlistview.vala"
	gtk_box_pack_start (_tmp20_, (GtkWidget*) _tmp22_, TRUE, FALSE, (guint) 0);
#line 924 "widgets-matchlistview.vala"
	_g_object_unref0 (_tmp22_);
#line 5516 "widgets-matchlistview.c"
}

void
synapse_gui_result_box_update_matches (SynapseGuiResultBox* self,
                                       GeeList* rs)
{
	SynapseGuiMatchListView* _tmp0_;
	gboolean _tmp1_ = FALSE;
#line 927 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 929 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->view;
#line 929 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_set_list (_tmp0_, rs, 0, -1);
#line 930 "widgets-matchlistview.vala"
	if (rs == NULL) {
#line 930 "widgets-matchlistview.vala"
		_tmp1_ = TRUE;
#line 5535 "widgets-matchlistview.c"
	} else {
		gint _tmp2_;
		gint _tmp3_;
#line 930 "widgets-matchlistview.vala"
		_tmp2_ = gee_collection_get_size ((GeeCollection*) rs);
#line 930 "widgets-matchlistview.vala"
		_tmp3_ = _tmp2_;
#line 930 "widgets-matchlistview.vala"
		_tmp1_ = _tmp3_ == 0;
#line 5545 "widgets-matchlistview.c"
	}
#line 930 "widgets-matchlistview.vala"
	if (_tmp1_) {
#line 5549 "widgets-matchlistview.c"
		GtkLabel* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
		GtkLabel* _tmp7_;
#line 932 "widgets-matchlistview.vala"
		_tmp4_ = self->priv->status;
#line 932 "widgets-matchlistview.vala"
		_tmp5_ = g_markup_printf_escaped ("<b>%s</b>", _ ("No results."));
#line 932 "widgets-matchlistview.vala"
		_tmp6_ = _tmp5_;
#line 932 "widgets-matchlistview.vala"
		gtk_label_set_markup (_tmp4_, _tmp6_);
#line 932 "widgets-matchlistview.vala"
		_g_free0 (_tmp6_);
#line 933 "widgets-matchlistview.vala"
		_tmp7_ = self->priv->status;
#line 933 "widgets-matchlistview.vala"
		gtk_widget_set_visible ((GtkWidget*) _tmp7_, self->priv->_show_no_results);
#line 5568 "widgets-matchlistview.c"
	} else {
		GtkLabel* _tmp8_;
		SynapseGuiMatchListView* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		GtkLabel* _tmp12_;
#line 937 "widgets-matchlistview.vala"
		_tmp8_ = self->priv->status;
#line 937 "widgets-matchlistview.vala"
		_tmp9_ = self->priv->view;
#line 937 "widgets-matchlistview.vala"
		_tmp10_ = g_markup_printf_escaped (_ ("<b>1 of %d</b>"), synapse_gui_match_list_view_get_list_size (_tmp9_));
#line 937 "widgets-matchlistview.vala"
		_tmp11_ = _tmp10_;
#line 937 "widgets-matchlistview.vala"
		gtk_label_set_markup (_tmp8_, _tmp11_);
#line 937 "widgets-matchlistview.vala"
		_g_free0 (_tmp11_);
#line 938 "widgets-matchlistview.vala"
		_tmp12_ = self->priv->status;
#line 938 "widgets-matchlistview.vala"
		gtk_widget_set_visible ((GtkWidget*) _tmp12_, TRUE);
#line 5591 "widgets-matchlistview.c"
	}
}

void
synapse_gui_result_box_move_selection_to_index (SynapseGuiResultBox* self,
                                                gint i)
{
	SynapseGuiMatchListView* _tmp0_;
	GtkLabel* _tmp1_;
	SynapseGuiMatchListView* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
#line 942 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 944 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->view;
#line 944 "widgets-matchlistview.vala"
	synapse_gui_match_list_view_set_indexes (_tmp0_, i, i);
#line 945 "widgets-matchlistview.vala"
	_tmp1_ = self->priv->status;
#line 945 "widgets-matchlistview.vala"
	_tmp2_ = self->priv->view;
#line 945 "widgets-matchlistview.vala"
	_tmp3_ = g_markup_printf_escaped (_ ("<b>%d of %d</b>"), i + 1, synapse_gui_match_list_view_get_list_size (_tmp2_));
#line 945 "widgets-matchlistview.vala"
	_tmp4_ = _tmp3_;
#line 945 "widgets-matchlistview.vala"
	gtk_label_set_markup (_tmp1_, _tmp4_);
#line 945 "widgets-matchlistview.vala"
	_g_free0 (_tmp4_);
#line 5622 "widgets-matchlistview.c"
}

gboolean
synapse_gui_result_box_get_use_base_colors (SynapseGuiResultBox* self)
{
	gboolean result;
#line 821 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 821 "widgets-matchlistview.vala"
	result = self->priv->_use_base_colors;
#line 821 "widgets-matchlistview.vala"
	return result;
#line 5635 "widgets-matchlistview.c"
}

void
synapse_gui_result_box_set_use_base_colors (SynapseGuiResultBox* self,
                                            gboolean value)
{
	gboolean old_value;
#line 821 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 821 "widgets-matchlistview.vala"
	old_value = synapse_gui_result_box_get_use_base_colors (self);
#line 821 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 821 "widgets-matchlistview.vala"
		self->priv->_use_base_colors = value;
#line 821 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_result_box_properties[SYNAPSE_GUI_RESULT_BOX_USE_BASE_COLORS_PROPERTY]);
#line 5653 "widgets-matchlistview.c"
	}
}

gboolean
synapse_gui_result_box_get_show_no_results (SynapseGuiResultBox* self)
{
	gboolean result;
#line 826 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 826 "widgets-matchlistview.vala"
	result = self->priv->_show_no_results;
#line 826 "widgets-matchlistview.vala"
	return result;
#line 5667 "widgets-matchlistview.c"
}

void
synapse_gui_result_box_set_show_no_results (SynapseGuiResultBox* self,
                                            gboolean value)
{
	gboolean old_value;
#line 826 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 826 "widgets-matchlistview.vala"
	old_value = synapse_gui_result_box_get_show_no_results (self);
#line 826 "widgets-matchlistview.vala"
	if (old_value != value) {
#line 826 "widgets-matchlistview.vala"
		self->priv->_show_no_results = value;
#line 826 "widgets-matchlistview.vala"
		g_object_notify_by_pspec ((GObject *) self, synapse_gui_result_box_properties[SYNAPSE_GUI_RESULT_BOX_SHOW_NO_RESULTS_PROPERTY]);
#line 5685 "widgets-matchlistview.c"
	}
}

static void
synapse_gui_result_box_class_init (SynapseGuiResultBoxClass * klass,
                                   gpointer klass_data)
{
#line 807 "widgets-matchlistview.vala"
	synapse_gui_result_box_parent_class = g_type_class_peek_parent (klass);
#line 807 "widgets-matchlistview.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiResultBox_private_offset);
#line 807 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget*, cairo_t*)) synapse_gui_result_box_real_draw;
#line 807 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->get_preferred_width = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_result_box_real_get_preferred_width;
#line 807 "widgets-matchlistview.vala"
	((GtkWidgetClass *) klass)->get_preferred_height = (void (*) (GtkWidget*, gint*, gint*)) synapse_gui_result_box_real_get_preferred_height;
#line 807 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_synapse_gui_result_box_get_property;
#line 807 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_synapse_gui_result_box_set_property;
#line 807 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_result_box_finalize;
#line 807 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_RESULT_BOX_USE_BASE_COLORS_PROPERTY, synapse_gui_result_box_properties[SYNAPSE_GUI_RESULT_BOX_USE_BASE_COLORS_PROPERTY] = g_param_spec_boolean ("use-base-colors", "use-base-colors", "use-base-colors", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 807 "widgets-matchlistview.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), SYNAPSE_GUI_RESULT_BOX_SHOW_NO_RESULTS_PROPERTY, synapse_gui_result_box_properties[SYNAPSE_GUI_RESULT_BOX_SHOW_NO_RESULTS_PROPERTY] = g_param_spec_boolean ("show-no-results", "show-no-results", "show-no-results", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 5713 "widgets-matchlistview.c"
}

static void
synapse_gui_result_box_instance_init (SynapseGuiResultBox * self,
                                      gpointer klass)
{
#line 807 "widgets-matchlistview.vala"
	self->priv = synapse_gui_result_box_get_instance_private (self);
#line 819 "widgets-matchlistview.vala"
	self->priv->_use_base_colors = TRUE;
#line 824 "widgets-matchlistview.vala"
	self->priv->_show_no_results = TRUE;
#line 5726 "widgets-matchlistview.c"
}

static void
synapse_gui_result_box_finalize (GObject * obj)
{
	SynapseGuiResultBox * self;
#line 807 "widgets-matchlistview.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_RESULT_BOX, SynapseGuiResultBox);
#line 814 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->vbox);
#line 815 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->status_box);
#line 817 "widgets-matchlistview.vala"
	_synapse_gui_utils_color_helper_unref0 (self->priv->ch);
#line 852 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->view);
#line 853 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->rend);
#line 854 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->status);
#line 807 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (synapse_gui_result_box_parent_class)->finalize (obj);
#line 5749 "widgets-matchlistview.c"
}

static GType
synapse_gui_result_box_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiResultBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_result_box_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiResultBox), 0, (GInstanceInitFunc) synapse_gui_result_box_instance_init, NULL };
	GType synapse_gui_result_box_type_id;
	synapse_gui_result_box_type_id = g_type_register_static (gtk_event_box_get_type (), "SynapseGuiResultBox", &g_define_type_info, 0);
	SynapseGuiResultBox_private_offset = g_type_add_instance_private (synapse_gui_result_box_type_id, sizeof (SynapseGuiResultBoxPrivate));
	return synapse_gui_result_box_type_id;
}

GType
synapse_gui_result_box_get_type (void)
{
	static volatile gsize synapse_gui_result_box_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_result_box_type_id__once)) {
		GType synapse_gui_result_box_type_id;
		synapse_gui_result_box_type_id = synapse_gui_result_box_get_type_once ();
		g_once_init_leave (&synapse_gui_result_box_type_id__once, synapse_gui_result_box_type_id);
	}
	return synapse_gui_result_box_type_id__once;
}

static void
_vala_synapse_gui_result_box_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec)
{
	SynapseGuiResultBox * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_RESULT_BOX, SynapseGuiResultBox);
#line 807 "widgets-matchlistview.vala"
	switch (property_id) {
#line 807 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_RESULT_BOX_USE_BASE_COLORS_PROPERTY:
#line 807 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_result_box_get_use_base_colors (self));
#line 807 "widgets-matchlistview.vala"
		break;
#line 807 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_RESULT_BOX_SHOW_NO_RESULTS_PROPERTY:
#line 807 "widgets-matchlistview.vala"
		g_value_set_boolean (value, synapse_gui_result_box_get_show_no_results (self));
#line 807 "widgets-matchlistview.vala"
		break;
#line 5796 "widgets-matchlistview.c"
		default:
#line 807 "widgets-matchlistview.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 807 "widgets-matchlistview.vala"
		break;
#line 5802 "widgets-matchlistview.c"
	}
}

static void
_vala_synapse_gui_result_box_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec)
{
	SynapseGuiResultBox * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SYNAPSE_GUI_TYPE_RESULT_BOX, SynapseGuiResultBox);
#line 807 "widgets-matchlistview.vala"
	switch (property_id) {
#line 807 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_RESULT_BOX_USE_BASE_COLORS_PROPERTY:
#line 807 "widgets-matchlistview.vala"
		synapse_gui_result_box_set_use_base_colors (self, g_value_get_boolean (value));
#line 807 "widgets-matchlistview.vala"
		break;
#line 807 "widgets-matchlistview.vala"
		case SYNAPSE_GUI_RESULT_BOX_SHOW_NO_RESULTS_PROPERTY:
#line 807 "widgets-matchlistview.vala"
		synapse_gui_result_box_set_show_no_results (self, g_value_get_boolean (value));
#line 807 "widgets-matchlistview.vala"
		break;
#line 5828 "widgets-matchlistview.c"
		default:
#line 807 "widgets-matchlistview.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 807 "widgets-matchlistview.vala"
		break;
#line 5834 "widgets-matchlistview.c"
	}
}

static inline gpointer
synapse_gui_specific_match_list_get_instance_private (SynapseGuiSpecificMatchList* self)
{
	return G_STRUCT_MEMBER_P (self, SynapseGuiSpecificMatchList_private_offset);
}

SynapseGuiMatchViewRenderer*
synapse_gui_specific_match_list_get_match_renderer (SynapseGuiSpecificMatchList* self)
{
	SynapseGuiMatchViewRenderer* _tmp0_;
	SynapseGuiMatchViewRenderer* _tmp1_;
	SynapseGuiMatchViewRenderer* result;
#line 974 "widgets-matchlistview.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 974 "widgets-matchlistview.vala"
	_tmp0_ = self->priv->rend;
#line 974 "widgets-matchlistview.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 974 "widgets-matchlistview.vala"
	result = _tmp1_;
#line 974 "widgets-matchlistview.vala"
	return result;
#line 5860 "widgets-matchlistview.c"
}

static Block5Data*
block5_data_ref (Block5Data* _data5_)
{
#line 984 "widgets-matchlistview.vala"
	g_atomic_int_inc (&_data5_->_ref_count_);
#line 984 "widgets-matchlistview.vala"
	return _data5_;
#line 5870 "widgets-matchlistview.c"
}

static void
block5_data_unref (void * _userdata_)
{
	Block5Data* _data5_;
	_data5_ = (Block5Data*) _userdata_;
#line 984 "widgets-matchlistview.vala"
	if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) {
#line 5880 "widgets-matchlistview.c"
		SynapseGuiSpecificMatchList* self;
#line 984 "widgets-matchlistview.vala"
		self = _data5_->self;
#line 984 "widgets-matchlistview.vala"
		_g_object_unref0 (_data5_->m);
#line 984 "widgets-matchlistview.vala"
		_g_object_unref0 (self);
#line 984 "widgets-matchlistview.vala"
		g_slice_free (Block5Data, _data5_);
#line 5890 "widgets-matchlistview.c"
	}
}

static void
___lambda21_ (Block5Data* _data5_,
              gboolean b)
{
	SynapseGuiSpecificMatchList* self;
	SynapseMatch* _tmp0_;
	const gchar* _tmp1_;
#line 1004 "widgets-matchlistview.vala"
	self = _data5_->self;
#line 1005 "widgets-matchlistview.vala"
	_tmp0_ = _data5_->m;
#line 1005 "widgets-matchlistview.vala"
	_tmp1_ = synapse_gui_icontroller_DOWN_TO_SEE_RECENT;
#line 1005 "widgets-matchlistview.vala"
	synapse_match_set_description (_tmp0_, _tmp1_);
#line 1006 "widgets-matchlistview.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 5911 "widgets-matchlistview.c"
}

static void
____lambda21__synapse_gui_icontroller_handle_recent_activities (SynapseGuiIController* _sender,
                                                                gboolean can,
                                                                gpointer self)
{
#line 1004 "widgets-matchlistview.vala"
	___lambda21_ (self, can);
#line 5921 "widgets-matchlistview.c"
}

SynapseGuiSpecificMatchList*
synapse_gui_specific_match_list_construct (GType object_type,
                                           SynapseGuiIController* controller,
                                           SynapseGuiModel* model,
                                           SynapseGuiSearchingFor sf)
{
	SynapseGuiSpecificMatchList * self = NULL;
	SynapseGuiMatchViewRenderer* _tmp0_;
	SynapseGuiMatchViewRenderer* _tmp1_;
	SynapseGuiMatchListViewMatchViewRendererBase* _tmp2_;
	SynapseGuiMatchViewRenderer* _tmp3_;
	SynapseGuiMatchViewRenderer* _tmp4_;
	SynapseGuiIController* _tmp5_;
	SynapseGuiModel* _tmp6_;
#line 976 "widgets-matchlistview.vala"
	g_return_val_if_fail (controller != NULL, NULL);
#line 976 "widgets-matchlistview.vala"
	g_return_val_if_fail (model != NULL, NULL);
#line 978 "widgets-matchlistview.vala"
	_tmp0_ = synapse_gui_match_view_renderer_new ();
#line 978 "widgets-matchlistview.vala"
	g_object_ref_sink (_tmp0_);
#line 978 "widgets-matchlistview.vala"
	_tmp1_ = _tmp0_;
#line 978 "widgets-matchlistview.vala"
	self = (SynapseGuiSpecificMatchList*) synapse_gui_match_list_view_construct (object_type, (SynapseGuiMatchListViewMatchViewRendererBase*) _tmp1_);
#line 978 "widgets-matchlistview.vala"
	_g_object_unref0 (_tmp1_);
#line 979 "widgets-matchlistview.vala"
	_tmp2_ = ((SynapseGuiMatchListView*) self)->renderer;
#line 979 "widgets-matchlistview.vala"
	_tmp3_ = _g_object_ref0 (SYNAPSE_GUI_IS_MATCH_VIEW_RENDERER (_tmp2_) ? ((SynapseGuiMatchViewRenderer*) _tmp2_) : NULL);
#line 979 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->rend);
#line 979 "widgets-matchlistview.vala"
	self->priv->rend = _tmp3_;
#line 980 "widgets-matchlistview.vala"
	_tmp4_ = self->priv->rend;
#line 980 "widgets-matchlistview.vala"
	synapse_gui_match_view_renderer_set_hilight_on_selected (_tmp4_, TRUE);
#line 981 "widgets-matchlistview.vala"
	self->sf = sf;
#line 982 "widgets-matchlistview.vala"
	_tmp5_ = _g_object_ref0 (controller);
#line 982 "widgets-matchlistview.vala"
	_g_object_unref0 (self->controller);
#line 982 "widgets-matchlistview.vala"
	self->controller = _tmp5_;
#line 983 "widgets-matchlistview.vala"
	_tmp6_ = _g_object_ref0 (model);
#line 983 "widgets-matchlistview.vala"
	_g_object_unref0 (self->model);
#line 983 "widgets-matchlistview.vala"
	self->model = _tmp6_;
#line 984 "widgets-matchlistview.vala"
	if (!synapse_gui_specific_match_list_lists_initialized) {
#line 5980 "widgets-matchlistview.c"
		Block5Data* _data5_;
		GeeArrayList* _tmp7_;
		GeeArrayList* _tmp8_;
		GeeArrayList* _tmp9_;
		const gchar* _tmp10_;
		SynapseGuiSpecificMatchListLabelMatch* _tmp11_;
		GeeList* _tmp12_;
		SynapseMatch* _tmp13_;
		const gchar* _tmp14_;
		SynapseGuiSpecificMatchListLabelMatch* _tmp15_;
		GeeList* _tmp16_;
		SynapseMatch* _tmp17_;
		const gchar* _tmp18_;
		const gchar* _tmp19_;
		SynapseGuiSpecificMatchListLabelMatch* _tmp20_;
		GeeList* _tmp21_;
		SynapseMatch* _tmp22_;
		SynapseGuiIController* _tmp23_;
#line 984 "widgets-matchlistview.vala"
		_data5_ = g_slice_new0 (Block5Data);
#line 984 "widgets-matchlistview.vala"
		_data5_->_ref_count_ = 1;
#line 984 "widgets-matchlistview.vala"
		_data5_->self = g_object_ref (self);
#line 986 "widgets-matchlistview.vala"
		synapse_gui_specific_match_list_lists_initialized = TRUE;
#line 988 "widgets-matchlistview.vala"
		_tmp7_ = gee_array_list_new (SYNAPSE_TYPE_MATCH, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 988 "widgets-matchlistview.vala"
		_g_object_unref0 (synapse_gui_specific_match_list_tts);
#line 988 "widgets-matchlistview.vala"
		synapse_gui_specific_match_list_tts = (GeeList*) _tmp7_;
#line 989 "widgets-matchlistview.vala"
		_tmp8_ = gee_array_list_new (SYNAPSE_TYPE_MATCH, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 989 "widgets-matchlistview.vala"
		_g_object_unref0 (synapse_gui_specific_match_list_nores);
#line 989 "widgets-matchlistview.vala"
		synapse_gui_specific_match_list_nores = (GeeList*) _tmp8_;
#line 990 "widgets-matchlistview.vala"
		_tmp9_ = gee_array_list_new (SYNAPSE_TYPE_MATCH, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 990 "widgets-matchlistview.vala"
		_g_object_unref0 (synapse_gui_specific_match_list_noact);
#line 990 "widgets-matchlistview.vala"
		synapse_gui_specific_match_list_noact = (GeeList*) _tmp9_;
#line 991 "widgets-matchlistview.vala"
		_data5_->m = NULL;
#line 992 "widgets-matchlistview.vala"
		_tmp10_ = synapse_gui_icontroller_NO_RESULTS;
#line 992 "widgets-matchlistview.vala"
		_tmp11_ = synapse_gui_specific_match_list_label_match_new (_tmp10_, "", "missing-image");
#line 992 "widgets-matchlistview.vala"
		_g_object_unref0 (_data5_->m);
#line 992 "widgets-matchlistview.vala"
		_data5_->m = (SynapseMatch*) _tmp11_;
#line 995 "widgets-matchlistview.vala"
		_tmp12_ = synapse_gui_specific_match_list_nores;
#line 995 "widgets-matchlistview.vala"
		_tmp13_ = _data5_->m;
#line 995 "widgets-matchlistview.vala"
		gee_collection_add ((GeeCollection*) _tmp12_, _tmp13_);
#line 996 "widgets-matchlistview.vala"
		_tmp14_ = synapse_gui_icontroller_NO_RECENT_ACTIVITIES;
#line 996 "widgets-matchlistview.vala"
		_tmp15_ = synapse_gui_specific_match_list_label_match_new (_tmp14_, "", "missing-image");
#line 996 "widgets-matchlistview.vala"
		_g_object_unref0 (_data5_->m);
#line 996 "widgets-matchlistview.vala"
		_data5_->m = (SynapseMatch*) _tmp15_;
#line 999 "widgets-matchlistview.vala"
		_tmp16_ = synapse_gui_specific_match_list_noact;
#line 999 "widgets-matchlistview.vala"
		_tmp17_ = _data5_->m;
#line 999 "widgets-matchlistview.vala"
		gee_collection_add ((GeeCollection*) _tmp16_, _tmp17_);
#line 1000 "widgets-matchlistview.vala"
		_tmp18_ = synapse_gui_icontroller_TYPE_TO_SEARCH;
#line 1000 "widgets-matchlistview.vala"
		_tmp19_ = synapse_gui_icontroller_DOWN_TO_SEE_RECENT;
#line 1000 "widgets-matchlistview.vala"
		_tmp20_ = synapse_gui_specific_match_list_label_match_new (_tmp18_, _tmp19_, "search");
#line 1000 "widgets-matchlistview.vala"
		_g_object_unref0 (_data5_->m);
#line 1000 "widgets-matchlistview.vala"
		_data5_->m = (SynapseMatch*) _tmp20_;
#line 1003 "widgets-matchlistview.vala"
		_tmp21_ = synapse_gui_specific_match_list_tts;
#line 1003 "widgets-matchlistview.vala"
		_tmp22_ = _data5_->m;
#line 1003 "widgets-matchlistview.vala"
		gee_collection_add ((GeeCollection*) _tmp21_, _tmp22_);
#line 1004 "widgets-matchlistview.vala"
		_tmp23_ = self->controller;
#line 1004 "widgets-matchlistview.vala"
		g_signal_connect_data (_tmp23_, "handle-recent-activities", (GCallback) ____lambda21__synapse_gui_icontroller_handle_recent_activities, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
#line 984 "widgets-matchlistview.vala"
		block5_data_unref (_data5_);
#line 984 "widgets-matchlistview.vala"
		_data5_ = NULL;
#line 6079 "widgets-matchlistview.c"
	}
#line 976 "widgets-matchlistview.vala"
	return self;
#line 6083 "widgets-matchlistview.c"
}

SynapseGuiSpecificMatchList*
synapse_gui_specific_match_list_new (SynapseGuiIController* controller,
                                     SynapseGuiModel* model,
                                     SynapseGuiSearchingFor sf)
{
#line 976 "widgets-matchlistview.vala"
	return synapse_gui_specific_match_list_construct (SYNAPSE_GUI_TYPE_SPECIFIC_MATCH_LIST, controller, model, sf);
#line 6093 "widgets-matchlistview.c"
}

void
synapse_gui_specific_match_list_update_searching_for (SynapseGuiSpecificMatchList* self)
{
	SynapseGuiIController* _tmp0_;
#line 1011 "widgets-matchlistview.vala"
	g_return_if_fail (self != NULL);
#line 1013 "widgets-matchlistview.vala"
	_tmp0_ = self->controller;
#line 1013 "widgets-matchlistview.vala"
	if (synapse_gui_icontroller_is_in_initial_state (_tmp0_)) {
#line 6106 "widgets-matchlistview.c"
		gint _tmp1_ = 0;
#line 1015 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_set_selection_enabled ((SynapseGuiMatchListView*) self, FALSE);
#line 1016 "widgets-matchlistview.vala"
		if (self->sf == SYNAPSE_GUI_SEARCHING_FOR_SOURCES) {
#line 1016 "widgets-matchlistview.vala"
			_tmp1_ = 1;
#line 6114 "widgets-matchlistview.c"
		} else {
#line 1016 "widgets-matchlistview.vala"
			_tmp1_ = 0;
#line 6118 "widgets-matchlistview.c"
		}
#line 1016 "widgets-matchlistview.vala"
		synapse_gui_match_list_view_set_min_visible_rows ((SynapseGuiMatchListView*) self, _tmp1_);
#line 6122 "widgets-matchlistview.c"
	} else {
		SynapseGuiModel* _tmp2_;
#line 1018 "widgets-matchlistview.vala"
		_tmp2_ = self->model;
#line 1018 "widgets-matchlistview.vala"
		if (_tmp2_->searching_for == self->sf) {
#line 1020 "widgets-matchlistview.vala"
			synapse_gui_match_list_view_set_min_visible_rows ((SynapseGuiMatchListView*) self, 5);
#line 1021 "widgets-matchlistview.vala"
			synapse_gui_match_list_view_set_selection_enabled ((SynapseGuiMatchListView*) self, self->priv->has_results);
#line 6133 "widgets-matchlistview.c"
		} else {
			gint _tmp3_ = 0;
#line 1025 "widgets-matchlistview.vala"
			synapse_gui_match_list_view_set_selection_enabled ((SynapseGuiMatchListView*) self, FALSE);
#line 1026 "widgets-matchlistview.vala"
			if (self->sf != SYNAPSE_GUI_SEARCHING_FOR_TARGETS) {
#line 1026 "widgets-matchlistview.vala"
				_tmp3_ = 1;
#line 6142 "widgets-matchlistview.c"
			} else {
				gint _tmp4_ = 0;
#line 1026 "widgets-matchlistview.vala"
				if (self->priv->has_results) {
#line 1026 "widgets-matchlistview.vala"
					_tmp4_ = 1;
#line 6149 "widgets-matchlistview.c"
				} else {
#line 1026 "widgets-matchlistview.vala"
					_tmp4_ = 0;
#line 6153 "widgets-matchlistview.c"
				}
#line 1026 "widgets-matchlistview.vala"
				_tmp3_ = _tmp4_;
#line 6157 "widgets-matchlistview.c"
			}
#line 1026 "widgets-matchlistview.vala"
			synapse_gui_match_list_view_set_min_visible_rows ((SynapseGuiMatchListView*) self, _tmp3_);
#line 6161 "widgets-matchlistview.c"
		}
	}
}

static void
synapse_gui_specific_match_list_real_set_list (SynapseGuiMatchListView* base,
                                               GeeList* list,
                                               gint targetted_index,
                                               gint selected_index)
{
	SynapseGuiSpecificMatchList * self;
	gboolean _tmp0_ = FALSE;
#line 1030 "widgets-matchlistview.vala"
	self = (SynapseGuiSpecificMatchList*) base;
#line 1032 "widgets-matchlistview.vala"
	if (list == NULL) {
#line 1032 "widgets-matchlistview.vala"
		_tmp0_ = TRUE;
#line 6180 "widgets-matchlistview.c"
	} else {
		gint _tmp1_;
		gint _tmp2_;
#line 1032 "widgets-matchlistview.vala"
		_tmp1_ = gee_collection_get_size ((GeeCollection*) list);
#line 1032 "widgets-matchlistview.vala"
		_tmp2_ = _tmp1_;
#line 1032 "widgets-matchlistview.vala"
		_tmp0_ = _tmp2_ == 0;
#line 6190 "widgets-matchlistview.c"
	}
#line 1032 "widgets-matchlistview.vala"
	if (_tmp0_) {
#line 6194 "widgets-matchlistview.c"
		SynapseGuiMatchViewRenderer* _tmp18_;
#line 1034 "widgets-matchlistview.vala"
		self->priv->has_results = FALSE;
#line 1035 "widgets-matchlistview.vala"
		switch (self->sf) {
#line 1035 "widgets-matchlistview.vala"
			case SYNAPSE_GUI_SEARCHING_FOR_SOURCES:
#line 6202 "widgets-matchlistview.c"
			{
				SynapseGuiIController* _tmp3_;
#line 1038 "widgets-matchlistview.vala"
				_tmp3_ = self->controller;
#line 1038 "widgets-matchlistview.vala"
				if (synapse_gui_icontroller_is_in_initial_state (_tmp3_)) {
#line 6209 "widgets-matchlistview.c"
					GeeList* _tmp4_;
#line 1038 "widgets-matchlistview.vala"
					_tmp4_ = synapse_gui_specific_match_list_tts;
#line 1038 "widgets-matchlistview.vala"
					SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), _tmp4_, 0, -1);
#line 6215 "widgets-matchlistview.c"
				} else {
					SynapseGuiIController* _tmp5_;
#line 1039 "widgets-matchlistview.vala"
					_tmp5_ = self->controller;
#line 1039 "widgets-matchlistview.vala"
					if (synapse_gui_icontroller_searched_for_recent (_tmp5_)) {
#line 6222 "widgets-matchlistview.c"
						GeeList* _tmp6_;
#line 1039 "widgets-matchlistview.vala"
						_tmp6_ = synapse_gui_specific_match_list_noact;
#line 1039 "widgets-matchlistview.vala"
						SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), _tmp6_, 0, -1);
#line 6228 "widgets-matchlistview.c"
					} else {
						GeeList* _tmp7_;
#line 1040 "widgets-matchlistview.vala"
						_tmp7_ = synapse_gui_specific_match_list_nores;
#line 1040 "widgets-matchlistview.vala"
						SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), _tmp7_, 0, -1);
#line 6235 "widgets-matchlistview.c"
					}
				}
#line 1041 "widgets-matchlistview.vala"
				break;
#line 6240 "widgets-matchlistview.c"
			}
#line 1035 "widgets-matchlistview.vala"
			case SYNAPSE_GUI_SEARCHING_FOR_ACTIONS:
#line 6244 "widgets-matchlistview.c"
			{
				SynapseGuiModel* _tmp8_;
				SynapseGuiEntry** _tmp9_;
				gint _tmp9__length1;
				SynapseGuiEntry* _tmp10_;
				gconstpointer _tmp11_;
				gconstpointer _tmp12_;
#line 1043 "widgets-matchlistview.vala"
				_tmp8_ = self->model;
#line 1043 "widgets-matchlistview.vala"
				_tmp9_ = _tmp8_->focus;
#line 1043 "widgets-matchlistview.vala"
				_tmp9__length1 = _tmp8_->focus_length1;
#line 1043 "widgets-matchlistview.vala"
				_tmp10_ = _tmp9_[SYNAPSE_GUI_SEARCHING_FOR_SOURCES];
#line 1043 "widgets-matchlistview.vala"
				_tmp11_ = synapse_gui_entry_get_value (_tmp10_);
#line 1043 "widgets-matchlistview.vala"
				_tmp12_ = _tmp11_;
#line 1043 "widgets-matchlistview.vala"
				if (((SynapseMatch*) _tmp12_) != NULL) {
#line 6266 "widgets-matchlistview.c"
					GeeList* _tmp13_;
#line 1044 "widgets-matchlistview.vala"
					_tmp13_ = synapse_gui_specific_match_list_nores;
#line 1044 "widgets-matchlistview.vala"
					SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), _tmp13_, 0, -1);
#line 6272 "widgets-matchlistview.c"
				} else {
#line 1046 "widgets-matchlistview.vala"
					SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), NULL, 0, -1);
#line 6276 "widgets-matchlistview.c"
				}
#line 1047 "widgets-matchlistview.vala"
				break;
#line 6280 "widgets-matchlistview.c"
			}
			default:
			{
				SynapseGuiModel* _tmp14_;
#line 1049 "widgets-matchlistview.vala"
				_tmp14_ = self->model;
#line 1049 "widgets-matchlistview.vala"
				if (!synapse_gui_model_needs_target (_tmp14_)) {
#line 1049 "widgets-matchlistview.vala"
					SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), NULL, 0, -1);
#line 6291 "widgets-matchlistview.c"
				} else {
					SynapseGuiIController* _tmp15_;
#line 1050 "widgets-matchlistview.vala"
					_tmp15_ = self->controller;
#line 1050 "widgets-matchlistview.vala"
					if (synapse_gui_icontroller_searched_for_recent (_tmp15_)) {
#line 6298 "widgets-matchlistview.c"
						GeeList* _tmp16_;
#line 1050 "widgets-matchlistview.vala"
						_tmp16_ = synapse_gui_specific_match_list_noact;
#line 1050 "widgets-matchlistview.vala"
						SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), _tmp16_, 0, -1);
#line 6304 "widgets-matchlistview.c"
					} else {
						GeeList* _tmp17_;
#line 1051 "widgets-matchlistview.vala"
						_tmp17_ = synapse_gui_specific_match_list_nores;
#line 1051 "widgets-matchlistview.vala"
						SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), _tmp17_, 0, -1);
#line 6311 "widgets-matchlistview.c"
					}
				}
#line 1052 "widgets-matchlistview.vala"
				break;
#line 6316 "widgets-matchlistview.c"
			}
		}
#line 1054 "widgets-matchlistview.vala"
		_tmp18_ = self->priv->rend;
#line 1054 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_pattern (_tmp18_, "");
#line 6323 "widgets-matchlistview.c"
	} else {
		SynapseGuiMatchViewRenderer* _tmp19_;
		SynapseGuiModel* _tmp20_;
		gchar** _tmp21_;
		gint _tmp21__length1;
		const gchar* _tmp22_;
#line 1058 "widgets-matchlistview.vala"
		self->priv->has_results = TRUE;
#line 1059 "widgets-matchlistview.vala"
		SYNAPSE_GUI_MATCH_LIST_VIEW_CLASS (synapse_gui_specific_match_list_parent_class)->set_list (G_TYPE_CHECK_INSTANCE_CAST (self, SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, SynapseGuiMatchListView), list, targetted_index, selected_index);
#line 1060 "widgets-matchlistview.vala"
		_tmp19_ = self->priv->rend;
#line 1060 "widgets-matchlistview.vala"
		_tmp20_ = self->model;
#line 1060 "widgets-matchlistview.vala"
		_tmp21_ = _tmp20_->query;
#line 1060 "widgets-matchlistview.vala"
		_tmp21__length1 = _tmp20_->query_length1;
#line 1060 "widgets-matchlistview.vala"
		_tmp22_ = _tmp21_[self->sf];
#line 1060 "widgets-matchlistview.vala"
		synapse_gui_match_view_renderer_set_pattern (_tmp19_, _tmp22_);
#line 6346 "widgets-matchlistview.c"
	}
#line 1062 "widgets-matchlistview.vala"
	synapse_gui_specific_match_list_update_searching_for (self);
#line 6350 "widgets-matchlistview.c"
}

static SynapseGuiSpecificMatchListLabelMatch*
synapse_gui_specific_match_list_label_match_construct (GType object_type,
                                                       const gchar* title,
                                                       const gchar* description,
                                                       const gchar* icon_name)
{
	SynapseGuiSpecificMatchListLabelMatch * self = NULL;
#line 957 "widgets-matchlistview.vala"
	g_return_val_if_fail (title != NULL, NULL);
#line 957 "widgets-matchlistview.vala"
	g_return_val_if_fail (description != NULL, NULL);
#line 957 "widgets-matchlistview.vala"
	g_return_val_if_fail (icon_name != NULL, NULL);
#line 959 "widgets-matchlistview.vala"
	self = (SynapseGuiSpecificMatchListLabelMatch*) g_object_new (object_type, "title", title, "description", description, "icon-name", icon_name, "has-thumbnail", FALSE, NULL);
#line 957 "widgets-matchlistview.vala"
	return self;
#line 6370 "widgets-matchlistview.c"
}

static SynapseGuiSpecificMatchListLabelMatch*
synapse_gui_specific_match_list_label_match_new (const gchar* title,
                                                 const gchar* description,
                                                 const gchar* icon_name)
{
#line 957 "widgets-matchlistview.vala"
	return synapse_gui_specific_match_list_label_match_construct (SYNAPSE_GUI_SPECIFIC_MATCH_LIST_TYPE_LABEL_MATCH, title, description, icon_name);
#line 6380 "widgets-matchlistview.c"
}

static void
synapse_gui_specific_match_list_label_match_class_init (SynapseGuiSpecificMatchListLabelMatchClass * klass,
                                                        gpointer klass_data)
{
#line 955 "widgets-matchlistview.vala"
	synapse_gui_specific_match_list_label_match_parent_class = g_type_class_peek_parent (klass);
#line 6389 "widgets-matchlistview.c"
}

static void
synapse_gui_specific_match_list_label_match_instance_init (SynapseGuiSpecificMatchListLabelMatch * self,
                                                           gpointer klass)
{
}

static GType
synapse_gui_specific_match_list_label_match_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiSpecificMatchListLabelMatchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_specific_match_list_label_match_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiSpecificMatchListLabelMatch), 0, (GInstanceInitFunc) synapse_gui_specific_match_list_label_match_instance_init, NULL };
	GType synapse_gui_specific_match_list_label_match_type_id;
	synapse_gui_specific_match_list_label_match_type_id = g_type_register_static (SYNAPSE_TYPE_MATCH, "SynapseGuiSpecificMatchListLabelMatch", &g_define_type_info, 0);
	return synapse_gui_specific_match_list_label_match_type_id;
}

static GType
synapse_gui_specific_match_list_label_match_get_type (void)
{
	static volatile gsize synapse_gui_specific_match_list_label_match_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_specific_match_list_label_match_type_id__once)) {
		GType synapse_gui_specific_match_list_label_match_type_id;
		synapse_gui_specific_match_list_label_match_type_id = synapse_gui_specific_match_list_label_match_get_type_once ();
		g_once_init_leave (&synapse_gui_specific_match_list_label_match_type_id__once, synapse_gui_specific_match_list_label_match_type_id);
	}
	return synapse_gui_specific_match_list_label_match_type_id__once;
}

static void
synapse_gui_specific_match_list_class_init (SynapseGuiSpecificMatchListClass * klass,
                                            gpointer klass_data)
{
#line 949 "widgets-matchlistview.vala"
	synapse_gui_specific_match_list_parent_class = g_type_class_peek_parent (klass);
#line 949 "widgets-matchlistview.vala"
	g_type_class_adjust_private_offset (klass, &SynapseGuiSpecificMatchList_private_offset);
#line 949 "widgets-matchlistview.vala"
	((SynapseGuiMatchListViewClass *) klass)->set_list = (void (*) (SynapseGuiMatchListView*, GeeList*, gint, gint)) synapse_gui_specific_match_list_real_set_list;
#line 949 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (klass)->finalize = synapse_gui_specific_match_list_finalize;
#line 6431 "widgets-matchlistview.c"
}

static void
synapse_gui_specific_match_list_instance_init (SynapseGuiSpecificMatchList * self,
                                               gpointer klass)
{
#line 949 "widgets-matchlistview.vala"
	self->priv = synapse_gui_specific_match_list_get_instance_private (self);
#line 972 "widgets-matchlistview.vala"
	self->priv->has_results = FALSE;
#line 6442 "widgets-matchlistview.c"
}

static void
synapse_gui_specific_match_list_finalize (GObject * obj)
{
	SynapseGuiSpecificMatchList * self;
#line 949 "widgets-matchlistview.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SYNAPSE_GUI_TYPE_SPECIFIC_MATCH_LIST, SynapseGuiSpecificMatchList);
#line 951 "widgets-matchlistview.vala"
	_g_object_unref0 (self->controller);
#line 952 "widgets-matchlistview.vala"
	_g_object_unref0 (self->model);
#line 973 "widgets-matchlistview.vala"
	_g_object_unref0 (self->priv->rend);
#line 949 "widgets-matchlistview.vala"
	G_OBJECT_CLASS (synapse_gui_specific_match_list_parent_class)->finalize (obj);
#line 6459 "widgets-matchlistview.c"
}

static GType
synapse_gui_specific_match_list_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SynapseGuiSpecificMatchListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) synapse_gui_specific_match_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SynapseGuiSpecificMatchList), 0, (GInstanceInitFunc) synapse_gui_specific_match_list_instance_init, NULL };
	GType synapse_gui_specific_match_list_type_id;
	synapse_gui_specific_match_list_type_id = g_type_register_static (SYNAPSE_GUI_TYPE_MATCH_LIST_VIEW, "SynapseGuiSpecificMatchList", &g_define_type_info, 0);
	SynapseGuiSpecificMatchList_private_offset = g_type_add_instance_private (synapse_gui_specific_match_list_type_id, sizeof (SynapseGuiSpecificMatchListPrivate));
	return synapse_gui_specific_match_list_type_id;
}

GType
synapse_gui_specific_match_list_get_type (void)
{
	static volatile gsize synapse_gui_specific_match_list_type_id__once = 0;
	if (g_once_init_enter (&synapse_gui_specific_match_list_type_id__once)) {
		GType synapse_gui_specific_match_list_type_id;
		synapse_gui_specific_match_list_type_id = synapse_gui_specific_match_list_get_type_once ();
		g_once_init_leave (&synapse_gui_specific_match_list_type_id__once, synapse_gui_specific_match_list_type_id);
	}
	return synapse_gui_specific_match_list_type_id__once;
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
#line 24 "controller.vala"
	if ((array != NULL) && (destroy_func != NULL)) {
#line 6491 "widgets-matchlistview.c"
		gssize i;
#line 24 "controller.vala"
		for (i = 0; i < array_length; i = i + 1) {
#line 24 "controller.vala"
			if (((gpointer*) array)[i] != NULL) {
#line 24 "controller.vala"
				destroy_func (((gpointer*) array)[i]);
#line 6499 "widgets-matchlistview.c"
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
#line 24 "controller.vala"
	_vala_array_destroy (array, array_length, destroy_func);
#line 24 "controller.vala"
	g_free (array);
#line 6514 "widgets-matchlistview.c"
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
#line 24 "controller.vala"
	if (mem && byte_size != 0) {
#line 24 "controller.vala"
		new_mem = g_malloc (byte_size);
#line 24 "controller.vala"
		memcpy (new_mem, mem, byte_size);
#line 6528 "widgets-matchlistview.c"
	} else {
#line 24 "controller.vala"
		new_mem = NULL;
#line 6532 "widgets-matchlistview.c"
	}
#line 24 "controller.vala"
	return new_mem;
#line 6536 "widgets-matchlistview.c"
}

