Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 114.88 KB | None | 0 0
  1. /* ui-cairo-gtk.c generated by valac 0.10.0, the Vala compiler
  2.  * generated from ui-cairo-gtk.vala, do not modify */
  3.  
  4. /*
  5.  * Copyright (C) 2010 Michal Hruby <michal.mhr@gmail.com>
  6.  *
  7.  * This program is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License as published by
  9.  * the Free Software Foundation; either version 2 of the License, or
  10.  * (at your option) any later version.
  11.  *
  12.  * This program is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  * GNU General Public License for more details.
  16.  *
  17.  * You should have received a copy of the GNU General Public License
  18.  * along with this program; if not, write to the Free Software
  19.  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA.
  20.  *
  21.  * Authored by Alberto Aldegheri <albyrock87+dev@gmail.com>
  22.  *             Michal Hruby <michal.mhr@gmail.com>
  23.  *
  24.  */
  25.  
  26. #include <glib.h>
  27. #include <glib-object.h>
  28. #include <gtk/gtk.h>
  29. #include <stdlib.h>
  30. #include <string.h>
  31. #include <gee.h>
  32. #include <gdk/gdk.h>
  33. #include <cairo.h>
  34. #include <float.h>
  35. #include <math.h>
  36. #include <pango/pango.h>
  37. #include <gdk/gdkkeysyms.h>
  38. #include <gio/gio.h>
  39. #include <gtkhotkey.h>
  40. #include <gdk-pixbuf/gdk-pixdata.h>
  41. #include <gobject/gvaluecollector.h>
  42.  
  43.  
  44. #define SEZEN_TYPE_SEZEN_WINDOW (sezen_sezen_window_get_type ())
  45. #define SEZEN_SEZEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEZEN_TYPE_SEZEN_WINDOW, SezenSezenWindow))
  46. #define SEZEN_SEZEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEZEN_TYPE_SEZEN_WINDOW, SezenSezenWindowClass))
  47. #define SEZEN_IS_SEZEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEZEN_TYPE_SEZEN_WINDOW))
  48. #define SEZEN_IS_SEZEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEZEN_TYPE_SEZEN_WINDOW))
  49. #define SEZEN_SEZEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEZEN_TYPE_SEZEN_WINDOW, SezenSezenWindowClass))
  50.  
  51. typedef struct _SezenSezenWindow SezenSezenWindow;
  52. typedef struct _SezenSezenWindowClass SezenSezenWindowClass;
  53. typedef struct _SezenSezenWindowPrivate SezenSezenWindowPrivate;
  54.  
  55. #define SEZEN_TYPE_QUERY_FLAGS (sezen_query_flags_get_type ())
  56.  
  57. #define SEZEN_TYPE_SEZEN_TYPE_SELECTOR (sezen_sezen_type_selector_get_type ())
  58. #define SEZEN_SEZEN_TYPE_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEZEN_TYPE_SEZEN_TYPE_SELECTOR, SezenSezenTypeSelector))
  59. #define SEZEN_SEZEN_TYPE_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEZEN_TYPE_SEZEN_TYPE_SELECTOR, SezenSezenTypeSelectorClass))
  60. #define SEZEN_IS_SEZEN_TYPE_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEZEN_TYPE_SEZEN_TYPE_SELECTOR))
  61. #define SEZEN_IS_SEZEN_TYPE_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEZEN_TYPE_SEZEN_TYPE_SELECTOR))
  62. #define SEZEN_SEZEN_TYPE_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEZEN_TYPE_SEZEN_TYPE_SELECTOR, SezenSezenTypeSelectorClass))
  63.  
  64. typedef struct _SezenSezenTypeSelector SezenSezenTypeSelector;
  65. typedef struct _SezenSezenTypeSelectorClass SezenSezenTypeSelectorClass;
  66.  
  67. #define SEZEN_TYPE_RESULT_BOX (sezen_result_box_get_type ())
  68. #define SEZEN_RESULT_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEZEN_TYPE_RESULT_BOX, SezenResultBox))
  69. #define SEZEN_RESULT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEZEN_TYPE_RESULT_BOX, SezenResultBoxClass))
  70. #define SEZEN_IS_RESULT_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEZEN_TYPE_RESULT_BOX))
  71. #define SEZEN_IS_RESULT_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEZEN_TYPE_RESULT_BOX))
  72. #define SEZEN_RESULT_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEZEN_TYPE_RESULT_BOX, SezenResultBoxClass))
  73.  
  74. typedef struct _SezenResultBox SezenResultBox;
  75. typedef struct _SezenResultBoxClass SezenResultBoxClass;
  76.  
  77. #define SEZEN_TYPE_DATA_SINK (sezen_data_sink_get_type ())
  78. #define SEZEN_DATA_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEZEN_TYPE_DATA_SINK, SezenDataSink))
  79. #define SEZEN_DATA_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEZEN_TYPE_DATA_SINK, SezenDataSinkClass))
  80. #define SEZEN_IS_DATA_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEZEN_TYPE_DATA_SINK))
  81. #define SEZEN_IS_DATA_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEZEN_TYPE_DATA_SINK))
  82. #define SEZEN_DATA_SINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEZEN_TYPE_DATA_SINK, SezenDataSinkClass))
  83.  
  84. typedef struct _SezenDataSink SezenDataSink;
  85. typedef struct _SezenDataSinkClass SezenDataSinkClass;
  86.  
  87. #define SEZEN_TYPE_MATCH (sezen_match_get_type ())
  88. #define SEZEN_MATCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEZEN_TYPE_MATCH, SezenMatch))
  89. #define SEZEN_IS_MATCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEZEN_TYPE_MATCH))
  90. #define SEZEN_MATCH_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SEZEN_TYPE_MATCH, SezenMatchIface))
  91.  
  92. typedef struct _SezenMatch SezenMatch;
  93. typedef struct _SezenMatchIface SezenMatchIface;
  94. #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
  95. #define _g_free0(var) (var = (g_free (var), NULL))
  96. #define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
  97. #define _cairo_pattern_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_pattern_destroy (var), NULL)))
  98.  
  99. #define SEZEN_TYPE_GTK_CONTAINER_OVERLAYED (sezen_gtk_container_overlayed_get_type ())
  100. #define SEZEN_GTK_CONTAINER_OVERLAYED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEZEN_TYPE_GTK_CONTAINER_OVERLAYED, SezenGtkContainerOverlayed))
  101. #define SEZEN_GTK_CONTAINER_OVERLAYED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEZEN_TYPE_GTK_CONTAINER_OVERLAYED, SezenGtkContainerOverlayedClass))
  102. #define SEZEN_IS_GTK_CONTAINER_OVERLAYED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEZEN_TYPE_GTK_CONTAINER_OVERLAYED))
  103. #define SEZEN_IS_GTK_CONTAINER_OVERLAYED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEZEN_TYPE_GTK_CONTAINER_OVERLAYED))
  104. #define SEZEN_GTK_CONTAINER_OVERLAYED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEZEN_TYPE_GTK_CONTAINER_OVERLAYED, SezenGtkContainerOverlayedClass))
  105.  
  106. typedef struct _SezenGtkContainerOverlayed SezenGtkContainerOverlayed;
  107. typedef struct _SezenGtkContainerOverlayedClass SezenGtkContainerOverlayedClass;
  108. #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
  109. typedef struct _Block6Data Block6Data;
  110. typedef struct _SezenSezenTypeSelectorPrivate SezenSezenTypeSelectorPrivate;
  111. typedef struct _SezenResultBoxPrivate SezenResultBoxPrivate;
  112.  
  113. #define SEZEN_RESULT_BOX_TYPE_COLUMN (sezen_result_box_column_get_type ())
  114. #define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
  115. #define __g_list_free_gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (_g_list_free_gtk_tree_path_free (var), NULL)))
  116. #define _g_source_unref0(var) ((var == NULL) ? NULL : (var = (g_source_unref (var), NULL)))
  117. typedef struct _Block7Data Block7Data;
  118.  
  119. #define SEZEN_TYPE_SEZEN_ICON_PROVIDER (sezen_sezen_icon_provider_get_type ())
  120. #define SEZEN_SEZEN_ICON_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEZEN_TYPE_SEZEN_ICON_PROVIDER, SezenSezenIconProvider))
  121. #define SEZEN_SEZEN_ICON_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEZEN_TYPE_SEZEN_ICON_PROVIDER, SezenSezenIconProviderClass))
  122. #define SEZEN_IS_SEZEN_ICON_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEZEN_TYPE_SEZEN_ICON_PROVIDER))
  123. #define SEZEN_IS_SEZEN_ICON_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEZEN_TYPE_SEZEN_ICON_PROVIDER))
  124. #define SEZEN_SEZEN_ICON_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEZEN_TYPE_SEZEN_ICON_PROVIDER, SezenSezenIconProviderClass))
  125.  
  126. typedef struct _SezenSezenIconProvider SezenSezenIconProvider;
  127. typedef struct _SezenSezenIconProviderClass SezenSezenIconProviderClass;
  128. typedef struct _SezenSezenIconProviderPrivate SezenSezenIconProviderPrivate;
  129. typedef struct _SezenParamSpecSezenIconProvider SezenParamSpecSezenIconProvider;
  130. typedef struct _SezenGtkContainerOverlayedPrivate SezenGtkContainerOverlayedPrivate;
  131.  
  132. struct _SezenSezenWindow {
  133.     GtkWindow parent_instance;
  134.     SezenSezenWindowPrivate * priv;
  135. };
  136.  
  137. struct _SezenSezenWindowClass {
  138.     GtkWindowClass parent_class;
  139. };
  140.  
  141. typedef enum  {
  142.     SEZEN_QUERY_FLAGS_LOCAL_ONLY = 1 << 0,
  143.     SEZEN_QUERY_FLAGS_APPLICATIONS = 1 << 1,
  144.     SEZEN_QUERY_FLAGS_ACTIONS = 1 << 2,
  145.     SEZEN_QUERY_FLAGS_AUDIO = 1 << 3,
  146.     SEZEN_QUERY_FLAGS_VIDEO = 1 << 4,
  147.     SEZEN_QUERY_FLAGS_DOCUMENTS = 1 << 5,
  148.     SEZEN_QUERY_FLAGS_IMAGES = 1 << 6,
  149.     SEZEN_QUERY_FLAGS_INTERNET = 1 << 7,
  150.     SEZEN_QUERY_FLAGS_UNCATEGORIZED = 1 << 15,
  151.     SEZEN_QUERY_FLAGS_LOCAL_CONTENT = 0xFF | SEZEN_QUERY_FLAGS_UNCATEGORIZED,
  152.     SEZEN_QUERY_FLAGS_ALL = 0xFE | SEZEN_QUERY_FLAGS_UNCATEGORIZED
  153. } SezenQueryFlags;
  154.  
  155. struct _SezenMatchIface {
  156.     GTypeInterface parent_iface;
  157.     void (*execute) (SezenMatch* self);
  158.     const char* (*get_title) (SezenMatch* self);
  159.     void (*set_title) (SezenMatch* self, const char* value);
  160.     const char* (*get_description) (SezenMatch* self);
  161.     void (*set_description) (SezenMatch* self, const char* value);
  162.     const char* (*get_icon_name) (SezenMatch* self);
  163.     void (*set_icon_name) (SezenMatch* self, const char* value);
  164.     gboolean (*get_has_thumbnail) (SezenMatch* self);
  165.     void (*set_has_thumbnail) (SezenMatch* self, gboolean value);
  166.     const char* (*get_thumbnail_path) (SezenMatch* self);
  167.     void (*set_thumbnail_path) (SezenMatch* self, const char* value);
  168.     const char* (*get_uri) (SezenMatch* self);
  169.     void (*set_uri) (SezenMatch* self, const char* value);
  170. };
  171.  
  172. struct _SezenSezenWindowPrivate {
  173.     char** categories;
  174.     gint categories_length1;
  175.     gint _categories_size_;
  176.     SezenQueryFlags* categories_query;
  177.     gint categories_query_length1;
  178.     gint _categories_query_size_;
  179.     gboolean list_visible;
  180.     GtkLabel* cat_label;
  181.     GtkImage* main_image;
  182.     GtkLabel* main_label;
  183.     GtkLabel* main_label_description;
  184.     GtkImage* action_image;
  185.     GtkLabel* action_label;
  186.     SezenSezenTypeSelector* sts;
  187.     SezenResultBox* result_box;
  188.     GtkHBox* list_hbox;
  189.     GtkHBox* top_hbox;
  190.     GtkIMContext* im_context;
  191.     SezenDataSink* data_sink;
  192.     GeeList* results;
  193.     char* _search_string;
  194.     SezenMatch* current_match;
  195. };
  196.  
  197. typedef enum  {
  198.     SEZEN_SEARCH_ERROR_SEARCH_CANCELLED,
  199.     SEZEN_SEARCH_ERROR_UNKNOWN_ERROR
  200. } SezenSearchError;
  201. #define SEZEN_SEARCH_ERROR sezen_search_error_quark ()
  202. struct _Block6Data {
  203.     int _ref_count_;
  204.     SezenSezenWindow* window;
  205. };
  206.  
  207. struct _SezenSezenTypeSelector {
  208.     GtkLabel parent_instance;
  209.     SezenSezenTypeSelectorPrivate * priv;
  210. };
  211.  
  212. struct _SezenSezenTypeSelectorClass {
  213.     GtkLabelClass parent_class;
  214. };
  215.  
  216. struct _SezenSezenTypeSelectorPrivate {
  217.     char** types;
  218.     gint types_length1;
  219.     gint _types_size_;
  220.     gint* lens;
  221.     gint lens_length1;
  222.     gint _lens_size_;
  223.     gint selected;
  224. };
  225.  
  226. struct _SezenResultBox {
  227.     GtkEventBox parent_instance;
  228.     SezenResultBoxPrivate * priv;
  229. };
  230.  
  231. struct _SezenResultBoxClass {
  232.     GtkEventBoxClass parent_class;
  233. };
  234.  
  235. struct _SezenResultBoxPrivate {
  236.     gint mwidth;
  237.     gboolean no_results;
  238.     GtkTreeView* view;
  239.     GtkListStore* results;
  240. };
  241.  
  242. typedef enum  {
  243.     SEZEN_RESULT_BOX_COLUMN_IconColumn = 0,
  244.     SEZEN_RESULT_BOX_COLUMN_NameColumn = 1
  245. } SezenResultBoxColumn;
  246.  
  247. struct _Block7Data {
  248.     int _ref_count_;
  249.     SezenResultBox * self;
  250.     GtkTreeSelection* sel;
  251.     GtkTreePath* path;
  252. };
  253.  
  254. struct _SezenSezenIconProvider {
  255.     GTypeInstance parent_instance;
  256.     volatile int ref_count;
  257.     SezenSezenIconProviderPrivate * priv;
  258. };
  259.  
  260. struct _SezenSezenIconProviderClass {
  261.     GTypeClass parent_class;
  262.     void (*finalize) (SezenSezenIconProvider *self);
  263. };
  264.  
  265. struct _SezenParamSpecSezenIconProvider {
  266.     GParamSpec parent_instance;
  267. };
  268.  
  269. struct _SezenGtkContainerOverlayed {
  270.     GtkContainer parent_instance;
  271.     SezenGtkContainerOverlayedPrivate * priv;
  272. };
  273.  
  274. struct _SezenGtkContainerOverlayedClass {
  275.     GtkContainerClass parent_class;
  276. };
  277.  
  278. struct _SezenGtkContainerOverlayedPrivate {
  279.     float _scale;
  280.     GtkWidget* _main;
  281.     GtkWidget* _overlay;
  282. };
  283.  
  284.  
  285. static gpointer sezen_sezen_window_parent_class = NULL;
  286. static gpointer sezen_sezen_type_selector_parent_class = NULL;
  287. static gpointer sezen_result_box_parent_class = NULL;
  288. static gpointer sezen_sezen_icon_provider_parent_class = NULL;
  289. static gpointer sezen_gtk_container_overlayed_parent_class = NULL;
  290.  
  291. GType sezen_sezen_window_get_type (void) G_GNUC_CONST;
  292. GType sezen_query_flags_get_type (void) G_GNUC_CONST;
  293. GType sezen_sezen_type_selector_get_type (void) G_GNUC_CONST;
  294. GType sezen_result_box_get_type (void) G_GNUC_CONST;
  295. GType sezen_data_sink_get_type (void) G_GNUC_CONST;
  296. GType sezen_match_get_type (void) G_GNUC_CONST;
  297. #define SEZEN_SEZEN_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEZEN_TYPE_SEZEN_WINDOW, SezenSezenWindowPrivate))
  298. enum  {
  299.     SEZEN_SEZEN_WINDOW_DUMMY_PROPERTY,
  300.     SEZEN_SEZEN_WINDOW_SEARCH_STRING
  301. };
  302. #define SEZEN_SEZEN_WINDOW_PADDING 10
  303. #define SEZEN_SEZEN_WINDOW_BORDER_RADIUS 10
  304. #define SEZEN_SEZEN_WINDOW_ICON_SIZE 172
  305. #define SEZEN_SEZEN_WINDOW_ACTION_ICON_SIZE 64
  306. #define SEZEN_SEZEN_WINDOW_UI_WIDTH (550 + (SEZEN_SEZEN_WINDOW_PADDING * 2))
  307. #define SEZEN_SEZEN_WINDOW_UI_HEIGHT (SEZEN_SEZEN_WINDOW_ICON_SIZE + (SEZEN_SEZEN_WINDOW_PADDING * 2))
  308. #define SEZEN_SEZEN_WINDOW_UI_LIST_WIDTH 400
  309. #define SEZEN_SEZEN_WINDOW_UI_LIST_HEIGHT (((35 + 4) * 5) + 2)
  310. #define SEZEN_SEZEN_WINDOW_LIST_BORDER_RADIUS 3
  311. #define SEZEN_SEZEN_WINDOW_TOP_SPACING ((SEZEN_SEZEN_WINDOW_UI_HEIGHT * 4) / 10)
  312. SezenSezenWindow* sezen_sezen_window_new (void);
  313. SezenSezenWindow* sezen_sezen_window_construct (GType object_type);
  314. static gboolean sezen_sezen_window_on_expose (SezenSezenWindow* self, GtkWidget* w, GdkEventExpose* event);
  315. static gboolean _sezen_sezen_window_on_expose_gtk_widget_expose_event (GtkWidget* _sender, GdkEventExpose* event, gpointer self);
  316. static void sezen_sezen_window_on_composited_changed (SezenSezenWindow* self, GtkWidget* w);
  317. static void _sezen_sezen_window_on_composited_changed_gtk_widget_composited_changed (GtkWidget* _sender, gpointer self);
  318. static void sezen_sezen_window_build_ui (SezenSezenWindow* self);
  319. static void sezen_sezen_window_rounded_rect (SezenSezenWindow* self, cairo_t* ctx, double x, double y, double w, double h, double r);
  320. static void sezen_sezen_window_get_shape (SezenSezenWindow* self, cairo_t* ctx);
  321. static void sezen_sezen_window_get_shape_main (SezenSezenWindow* self, cairo_t* ctx);
  322. static void sezen_sezen_window_get_shape_list (SezenSezenWindow* self, cairo_t* ctx);
  323. static void sezen_sezen_window_set_mask (SezenSezenWindow* self);
  324. static void sezen_sezen_window_color_to_rgb (SezenSezenWindow* self, GdkColor* col, double* r, double* g, double* b);
  325. static void sezen_sezen_window_foo (SezenSezenWindow* self, GtkWidget* w);
  326. SezenGtkContainerOverlayed* sezen_gtk_container_overlayed_new (void);
  327. SezenGtkContainerOverlayed* sezen_gtk_container_overlayed_construct (GType object_type);
  328. GType sezen_gtk_container_overlayed_get_type (void) G_GNUC_CONST;
  329. static void _sezen_sezen_window_foo_gtk_callback (GtkWidget* widget, gpointer self);
  330. SezenSezenTypeSelector* sezen_sezen_type_selector_new (char** types_array, int types_array_length1);
  331. SezenSezenTypeSelector* sezen_sezen_type_selector_construct (GType object_type, char** types_array, int types_array_length1);
  332. static char* sezen_sezen_window_markup_string_with_search (SezenSezenWindow* self, const char* text, const char* pattern);
  333. static char* sezen_sezen_window_get_description_markup (SezenSezenWindow* self, const char* s);
  334. SezenResultBox* sezen_result_box_new (gint width);
  335. SezenResultBox* sezen_result_box_construct (GType object_type, gint width);
  336. static gboolean sezen_sezen_window_real_key_press_event (GtkWidget* base, GdkEventKey* event);
  337. void sezen_match_execute (SezenMatch* self);
  338. static void sezen_sezen_window_search_reset (SezenSezenWindow* self);
  339. static void sezen_sezen_window_search_delete_char (SezenSezenWindow* self);
  340. const char* sezen_sezen_window_get_search_string (SezenSezenWindow* self);
  341. void sezen_sezen_type_selector_select_prev (SezenSezenTypeSelector* self);
  342. static void sezen_sezen_window_set_search_string (SezenSezenWindow* self, const char* value);
  343. void sezen_sezen_type_selector_select_next (SezenSezenTypeSelector* self);
  344. gint sezen_result_box_move_selection (SezenResultBox* self, gint val);
  345. void sezen_sezen_window_focus_match (SezenSezenWindow* self, SezenMatch* match);
  346. static void sezen_sezen_window_set_list_visible (SezenSezenWindow* self, gboolean b);
  347. static void sezen_sezen_window_quit (SezenSezenWindow* self);
  348. static void sezen_sezen_window_search_ready (SezenSezenWindow* self, GObject* obj, GAsyncResult* res);
  349. void sezen_data_sink_search (SezenDataSink* self, const char* query, SezenQueryFlags flags, GAsyncReadyCallback _callback_, gpointer _user_data_);
  350. GQuark sezen_search_error_quark (void);
  351. GeeList* sezen_data_sink_search_finish (SezenDataSink* self, GAsyncResult* _res_, GError** error);
  352. void sezen_result_box_update_matches (SezenResultBox* self, GeeList* rs);
  353. static void sezen_sezen_window_search_add_char (SezenSezenWindow* self, const char* chr);
  354. void sezen_sezen_type_selector_set_selected (SezenSezenTypeSelector* self, gint sel);
  355. gboolean sezen_match_get_has_thumbnail (SezenMatch* self);
  356. const char* sezen_match_get_thumbnail_path (SezenMatch* self);
  357. const char* sezen_match_get_icon_name (SezenMatch* self);
  358. const char* sezen_match_get_title (SezenMatch* self);
  359. const char* sezen_match_get_description (SezenMatch* self);
  360. static glong sezen_sezen_window_strpos (SezenSezenWindow* self, const char* s, const char* find);
  361. void sezen_sezen_window_show_sezen (SezenSezenWindow* self);
  362. gint sezen_sezen_window_main (char** argv, int argv_length1);
  363. static void _lambda10_ (guint event_time, Block6Data* _data6_);
  364. static void __lambda10__gtk_hotkey_info_activated (GtkHotkeyInfo* _sender, guint p0, gpointer self);
  365. static Block6Data* block6_data_ref (Block6Data* _data6_);
  366. static void block6_data_unref (Block6Data* _data6_);
  367. SezenDataSink* sezen_data_sink_new (void);
  368. SezenDataSink* sezen_data_sink_construct (GType object_type);
  369. static void _sezen_sezen_window_search_add_char_gtk_im_context_commit (GtkIMContext* _sender, const char* str, gpointer self);
  370. static void _lambda11_ (SezenSezenWindow* self);
  371. void sezen_data_sink_cancel_search (SezenDataSink* self);
  372. gint sezen_sezen_type_selector_get_selected (SezenSezenTypeSelector* self);
  373. static void _sezen_sezen_window_search_ready_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
  374. static void __lambda11__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
  375. static GObject * sezen_sezen_window_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
  376. static void sezen_sezen_window_finalize (GObject* obj);
  377. static void sezen_sezen_window_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
  378. static void sezen_sezen_window_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
  379. #define SEZEN_SEZEN_TYPE_SELECTOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEZEN_TYPE_SEZEN_TYPE_SELECTOR, SezenSezenTypeSelectorPrivate))
  380. enum  {
  381.     SEZEN_SEZEN_TYPE_SELECTOR_DUMMY_PROPERTY
  382. };
  383. static char** _vala_array_dup2 (char** self, int length);
  384. static void sezen_sezen_type_selector_finalize (GObject* obj);
  385. #define SEZEN_RESULT_BOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEZEN_TYPE_RESULT_BOX, SezenResultBoxPrivate))
  386. enum  {
  387.     SEZEN_RESULT_BOX_DUMMY_PROPERTY
  388. };
  389. static GType sezen_result_box_column_get_type (void) G_GNUC_UNUSED;
  390. #define SEZEN_RESULT_BOX_VISIBLE_RESULTS 5
  391. #define SEZEN_RESULT_BOX_ICON_SIZE 35
  392. static void sezen_result_box_build_ui (SezenResultBox* self);
  393. static void _g_list_free_gtk_tree_path_free (GList* self);
  394. static gboolean _lambda9_ (Block7Data* _data7_);
  395. static gboolean __lambda9__gsource_func (gpointer self);
  396. static Block7Data* block7_data_ref (Block7Data* _data7_);
  397. static void block7_data_unref (Block7Data* _data7_);
  398. static void sezen_result_box_finalize (GObject* obj);
  399. gpointer sezen_sezen_icon_provider_ref (gpointer instance);
  400. void sezen_sezen_icon_provider_unref (gpointer instance);
  401. GParamSpec* sezen_param_spec_sezen_icon_provider (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
  402. void sezen_value_set_sezen_icon_provider (GValue* value, gpointer v_object);
  403. void sezen_value_take_sezen_icon_provider (GValue* value, gpointer v_object);
  404. gpointer sezen_value_get_sezen_icon_provider (const GValue* value);
  405. GType sezen_sezen_icon_provider_get_type (void) G_GNUC_CONST;
  406. enum  {
  407.     SEZEN_SEZEN_ICON_PROVIDER_DUMMY_PROPERTY
  408. };
  409. GdkPixbuf* sezen_sezen_icon_provider_get_icon_pixbuf (const char* name, gint size);
  410. SezenSezenIconProvider* sezen_sezen_icon_provider_new (void);
  411. SezenSezenIconProvider* sezen_sezen_icon_provider_construct (GType object_type);
  412. static void sezen_sezen_icon_provider_finalize (SezenSezenIconProvider* obj);
  413. #define SEZEN_GTK_CONTAINER_OVERLAYED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEZEN_TYPE_GTK_CONTAINER_OVERLAYED, SezenGtkContainerOverlayedPrivate))
  414. enum  {
  415.     SEZEN_GTK_CONTAINER_OVERLAYED_DUMMY_PROPERTY,
  416.     SEZEN_GTK_CONTAINER_OVERLAYED_SCALE,
  417.     SEZEN_GTK_CONTAINER_OVERLAYED_MAIN,
  418.     SEZEN_GTK_CONTAINER_OVERLAYED_OVERLAY
  419. };
  420. static void sezen_gtk_container_overlayed_real_size_request (GtkWidget* base, GtkRequisition* requisition);
  421. GtkWidget* sezen_gtk_container_overlayed_get_main (SezenGtkContainerOverlayed* self);
  422. GtkWidget* sezen_gtk_container_overlayed_get_overlay (SezenGtkContainerOverlayed* self);
  423. static void sezen_gtk_container_overlayed_real_size_allocate (GtkWidget* base, GdkRectangle* allocation);
  424. static void sezen_gtk_container_overlayed_real_forall (GtkContainer* base, GtkCallback callback, void* callback_target);
  425. static void sezen_gtk_container_overlayed_real_add (GtkContainer* base, GtkWidget* widget);
  426. void sezen_gtk_container_overlayed_set_main (SezenGtkContainerOverlayed* self, GtkWidget* value);
  427. void sezen_gtk_container_overlayed_set_overlay (SezenGtkContainerOverlayed* self, GtkWidget* value);
  428. float sezen_gtk_container_overlayed_get_scale (SezenGtkContainerOverlayed* self);
  429. void sezen_gtk_container_overlayed_set_scale (SezenGtkContainerOverlayed* self, float value);
  430. static void sezen_gtk_container_overlayed_finalize (GObject* obj);
  431. static void sezen_gtk_container_overlayed_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
  432. static void sezen_gtk_container_overlayed_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
  433. static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
  434. static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
  435. static int _vala_strcmp0 (const char * str1, const char * str2);
  436.  
  437.  
  438.  
  439. #line 143 "ui-cairo-gtk.vala"
  440. static gboolean _sezen_sezen_window_on_expose_gtk_widget_expose_event (GtkWidget* _sender, GdkEventExpose* event, gpointer self) {
  441. #line 442 "ui-cairo-gtk.c"
  442.     gboolean result;
  443.     result = sezen_sezen_window_on_expose (self, _sender, event);
  444.     return result;
  445. }
  446.  
  447.  
  448. #line 106 "ui-cairo-gtk.vala"
  449. static void _sezen_sezen_window_on_composited_changed_gtk_widget_composited_changed (GtkWidget* _sender, gpointer self) {
  450. #line 451 "ui-cairo-gtk.c"
  451.     sezen_sezen_window_on_composited_changed (self, _sender);
  452. }
  453.  
  454.  
  455. #line 50 "ui-cairo-gtk.vala"
  456. SezenSezenWindow* sezen_sezen_window_construct (GType object_type) {
  457. #line 458 "ui-cairo-gtk.c"
  458.     SezenSezenWindow * self;
  459.     self = g_object_newv (object_type, 0, NULL);
  460. #line 52 "ui-cairo-gtk.vala"
  461.     gtk_window_set_position ((GtkWindow*) self, GTK_WIN_POS_CENTER);
  462. #line 53 "ui-cairo-gtk.vala"
  463.     g_signal_connect_object ((GtkWidget*) self, "expose-event", (GCallback) _sezen_sezen_window_on_expose_gtk_widget_expose_event, self, 0);
  464. #line 54 "ui-cairo-gtk.vala"
  465.     sezen_sezen_window_on_composited_changed (self, (GtkWidget*) self);
  466. #line 55 "ui-cairo-gtk.vala"
  467.     g_signal_connect_object ((GtkWidget*) self, "composited-changed", (GCallback) _sezen_sezen_window_on_composited_changed_gtk_widget_composited_changed, self, 0);
  468. #line 56 "ui-cairo-gtk.vala"
  469.     gtk_widget_set_size_request ((GtkWidget*) self, SEZEN_SEZEN_WINDOW_UI_WIDTH, SEZEN_SEZEN_WINDOW_UI_HEIGHT + SEZEN_SEZEN_WINDOW_UI_LIST_HEIGHT);
  470. #line 57 "ui-cairo-gtk.vala"
  471.     gtk_window_set_decorated ((GtkWindow*) self, FALSE);
  472. #line 58 "ui-cairo-gtk.vala"
  473.     gtk_window_set_resizable ((GtkWindow*) self, FALSE);
  474. #line 59 "ui-cairo-gtk.vala"
  475.     sezen_sezen_window_build_ui (self);
  476. #line 477 "ui-cairo-gtk.c"
  477.     return self;
  478. }
  479.  
  480.  
  481. #line 50 "ui-cairo-gtk.vala"
  482. SezenSezenWindow* sezen_sezen_window_new (void) {
  483. #line 50 "ui-cairo-gtk.vala"
  484.     return sezen_sezen_window_construct (SEZEN_TYPE_SEZEN_WINDOW);
  485. #line 486 "ui-cairo-gtk.c"
  486. }
  487.  
  488.  
  489. #line 62 "ui-cairo-gtk.vala"
  490. static void sezen_sezen_window_rounded_rect (SezenSezenWindow* self, cairo_t* ctx, double x, double y, double w, double h, double r) {
  491. #line 492 "ui-cairo-gtk.c"
  492.     double y2;
  493.     double x2;
  494. #line 62 "ui-cairo-gtk.vala"
  495.     g_return_if_fail (self != NULL);
  496. #line 62 "ui-cairo-gtk.vala"
  497.     g_return_if_fail (ctx != NULL);
  498. #line 64 "ui-cairo-gtk.vala"
  499.     y2 = y + h;
  500. #line 64 "ui-cairo-gtk.vala"
  501.     x2 = x + w;
  502. #line 65 "ui-cairo-gtk.vala"
  503.     cairo_move_to (ctx, x, y2 - r);
  504. #line 66 "ui-cairo-gtk.vala"
  505.     cairo_arc (ctx, x + r, y + r, r, G_PI, G_PI * 1.5);
  506. #line 67 "ui-cairo-gtk.vala"
  507.     cairo_arc (ctx, x2 - r, y + r, r, G_PI * 1.5, G_PI * 2.0);
  508. #line 68 "ui-cairo-gtk.vala"
  509.     cairo_arc (ctx, x2 - r, y2 - r, r, (double) 0, G_PI * 0.5);
  510. #line 69 "ui-cairo-gtk.vala"
  511.     cairo_arc (ctx, x + r, y2 - r, r, G_PI * 0.5, G_PI);
  512. #line 513 "ui-cairo-gtk.c"
  513. }
  514.  
  515.  
  516. #line 72 "ui-cairo-gtk.vala"
  517. static void sezen_sezen_window_get_shape (SezenSezenWindow* self, cairo_t* ctx) {
  518. #line 72 "ui-cairo-gtk.vala"
  519.     g_return_if_fail (self != NULL);
  520. #line 72 "ui-cairo-gtk.vala"
  521.     g_return_if_fail (ctx != NULL);
  522. #line 74 "ui-cairo-gtk.vala"
  523.     cairo_set_source_rgba (ctx, (double) 0, (double) 0, (double) 0, (double) 1);
  524. #line 75 "ui-cairo-gtk.vala"
  525.     sezen_sezen_window_get_shape_main (self, ctx);
  526. #line 76 "ui-cairo-gtk.vala"
  527.     sezen_sezen_window_get_shape_list (self, ctx);
  528. #line 529 "ui-cairo-gtk.c"
  529. }
  530.  
  531.  
  532. #line 79 "ui-cairo-gtk.vala"
  533. static void sezen_sezen_window_get_shape_main (SezenSezenWindow* self, cairo_t* ctx) {
  534. #line 79 "ui-cairo-gtk.vala"
  535.     g_return_if_fail (self != NULL);
  536. #line 79 "ui-cairo-gtk.vala"
  537.     g_return_if_fail (ctx != NULL);
  538. #line 81 "ui-cairo-gtk.vala"
  539.     if (gtk_widget_is_composited ((GtkWidget*) self)) {
  540. #line 83 "ui-cairo-gtk.vala"
  541.         sezen_sezen_window_rounded_rect (self, ctx, (double) 0, (double) SEZEN_SEZEN_WINDOW_TOP_SPACING, (double) SEZEN_SEZEN_WINDOW_UI_WIDTH, (double) (SEZEN_SEZEN_WINDOW_UI_HEIGHT - SEZEN_SEZEN_WINDOW_TOP_SPACING), (double) SEZEN_SEZEN_WINDOW_BORDER_RADIUS);
  542. #line 84 "ui-cairo-gtk.vala"
  543.         cairo_fill (ctx);
  544. #line 85 "ui-cairo-gtk.vala"
  545.         cairo_rectangle (ctx, (double) SEZEN_SEZEN_WINDOW_PADDING, (double) SEZEN_SEZEN_WINDOW_PADDING, (double) SEZEN_SEZEN_WINDOW_ICON_SIZE, (double) SEZEN_SEZEN_WINDOW_ICON_SIZE);
  546. #line 86 "ui-cairo-gtk.vala"
  547.         cairo_fill (ctx);
  548. #line 549 "ui-cairo-gtk.c"
  549.     } else {
  550. #line 89 "ui-cairo-gtk.vala"
  551.         sezen_sezen_window_rounded_rect (self, ctx, (double) 0, (double) 0, (double) SEZEN_SEZEN_WINDOW_UI_WIDTH, (double) SEZEN_SEZEN_WINDOW_UI_HEIGHT, (double) SEZEN_SEZEN_WINDOW_BORDER_RADIUS);
  552. #line 553 "ui-cairo-gtk.c"
  553.     }
  554. #line 90 "ui-cairo-gtk.vala"
  555.     cairo_fill (ctx);
  556. #line 557 "ui-cairo-gtk.c"
  557. }
  558.  
  559.  
  560. #line 93 "ui-cairo-gtk.vala"
  561. static void sezen_sezen_window_get_shape_list (SezenSezenWindow* self, cairo_t* ctx) {
  562. #line 93 "ui-cairo-gtk.vala"
  563.     g_return_if_fail (self != NULL);
  564. #line 93 "ui-cairo-gtk.vala"
  565.     g_return_if_fail (ctx != NULL);
  566. #line 95 "ui-cairo-gtk.vala"
  567.     if (self->priv->list_visible) {
  568. #line 97 "ui-cairo-gtk.vala"
  569.         sezen_sezen_window_rounded_rect (self, ctx, (double) ((SEZEN_SEZEN_WINDOW_UI_WIDTH - SEZEN_SEZEN_WINDOW_UI_LIST_WIDTH) / 2), (double) SEZEN_SEZEN_WINDOW_UI_HEIGHT, (double) SEZEN_SEZEN_WINDOW_UI_LIST_WIDTH, (double) SEZEN_SEZEN_WINDOW_UI_LIST_HEIGHT, (double) SEZEN_SEZEN_WINDOW_LIST_BORDER_RADIUS);
  570. #line 102 "ui-cairo-gtk.vala"
  571.         cairo_fill (ctx);
  572. #line 573 "ui-cairo-gtk.c"
  573.     }
  574. }
  575.  
  576.  
  577. static gpointer _g_object_ref0 (gpointer self) {
  578.     return self ? g_object_ref (self) : NULL;
  579. }
  580.  
  581.  
  582. #line 106 "ui-cairo-gtk.vala"
  583. static void sezen_sezen_window_on_composited_changed (SezenSezenWindow* self, GtkWidget* w) {
  584. #line 585 "ui-cairo-gtk.c"
  585.     GdkColormap* cm;
  586.     const char* _tmp0_;
  587. #line 106 "ui-cairo-gtk.vala"
  588.     g_return_if_fail (self != NULL);
  589. #line 106 "ui-cairo-gtk.vala"
  590.     g_return_if_fail (w != NULL);
  591. #line 108 "ui-cairo-gtk.vala"
  592.     cm = _g_object_ref0 (gdk_screen_get_rgba_colormap (gtk_widget_get_screen (w)));
  593. #line 594 "ui-cairo-gtk.c"
  594.     _tmp0_ = NULL;
  595. #line 109 "ui-cairo-gtk.vala"
  596.     if (cm == NULL) {
  597. #line 109 "ui-cairo-gtk.vala"
  598.         _tmp0_ = "No";
  599. #line 600 "ui-cairo-gtk.c"
  600.     } else {
  601. #line 109 "ui-cairo-gtk.vala"
  602.         _tmp0_ = "si";
  603. #line 604 "ui-cairo-gtk.c"
  604.     }
  605. #line 109 "ui-cairo-gtk.vala"
  606.     g_debug ("ui-cairo-gtk.vala:109: Setting colormap rgba %s", _tmp0_);
  607. #line 110 "ui-cairo-gtk.vala"
  608.     if (cm == NULL) {
  609. #line 610 "ui-cairo-gtk.c"
  610.         GdkColormap* _tmp1_;
  611. #line 111 "ui-cairo-gtk.vala"
  612.         cm = (_tmp1_ = _g_object_ref0 (gdk_screen_get_rgb_colormap (gtk_widget_get_screen (w))), _g_object_unref0 (cm), _tmp1_);
  613. #line 614 "ui-cairo-gtk.c"
  614.     }
  615. #line 112 "ui-cairo-gtk.vala"
  616.     gtk_widget_set_colormap ((GtkWidget*) self, cm);
  617. #line 113 "ui-cairo-gtk.vala"
  618.     sezen_sezen_window_set_mask (self);
  619. #line 620 "ui-cairo-gtk.c"
  620.     _g_object_unref0 (cm);
  621. }
  622.  
  623.  
  624. #line 116 "ui-cairo-gtk.vala"
  625. static void sezen_sezen_window_color_to_rgb (SezenSezenWindow* self, GdkColor* col, double* r, double* g, double* b) {
  626. #line 116 "ui-cairo-gtk.vala"
  627.     g_return_if_fail (self != NULL);
  628. #line 118 "ui-cairo-gtk.vala"
  629.     *r = (*col).red / ((double) 65535);
  630. #line 119 "ui-cairo-gtk.vala"
  631.     *g = (*col).green / ((double) 65535);
  632. #line 120 "ui-cairo-gtk.vala"
  633.     *b = (*col).blue / ((double) 65535);
  634. #line 635 "ui-cairo-gtk.c"
  635. }
  636.  
  637.  
  638. #line 123 "ui-cairo-gtk.vala"
  639. static void sezen_sezen_window_set_mask (SezenSezenWindow* self) {
  640. #line 641 "ui-cairo-gtk.c"
  641.     GdkPixmap* bitmap;
  642.     cairo_t* ctx;
  643. #line 123 "ui-cairo-gtk.vala"
  644.     g_return_if_fail (self != NULL);
  645. #line 125 "ui-cairo-gtk.vala"
  646.     bitmap = gdk_pixmap_new (NULL, SEZEN_SEZEN_WINDOW_UI_WIDTH, SEZEN_SEZEN_WINDOW_UI_HEIGHT + SEZEN_SEZEN_WINDOW_UI_LIST_HEIGHT, 1);
  647. #line 126 "ui-cairo-gtk.vala"
  648.     ctx = gdk_cairo_create ((GdkDrawable*) bitmap);
  649. #line 127 "ui-cairo-gtk.vala"
  650.     cairo_set_operator (ctx, CAIRO_OPERATOR_CLEAR);
  651. #line 128 "ui-cairo-gtk.vala"
  652.     cairo_paint (ctx);
  653. #line 129 "ui-cairo-gtk.vala"
  654.     cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
  655. #line 130 "ui-cairo-gtk.vala"
  656.     sezen_sezen_window_get_shape (self, ctx);
  657. #line 131 "ui-cairo-gtk.vala"
  658.     if (gtk_widget_is_composited ((GtkWidget*) self)) {
  659. #line 133 "ui-cairo-gtk.vala"
  660.         gtk_widget_input_shape_combine_mask ((GtkWidget*) self, NULL, 0, 0);
  661. #line 134 "ui-cairo-gtk.vala"
  662.         gtk_widget_input_shape_combine_mask ((GtkWidget*) self, (GdkBitmap*) bitmap, 0, 0);
  663. #line 664 "ui-cairo-gtk.c"
  664.     } else {
  665. #line 138 "ui-cairo-gtk.vala"
  666.         gtk_widget_shape_combine_mask ((GtkWidget*) self, NULL, 0, 0);
  667. #line 139 "ui-cairo-gtk.vala"
  668.         gtk_widget_shape_combine_mask ((GtkWidget*) self, (GdkBitmap*) bitmap, 0, 0);
  669. #line 670 "ui-cairo-gtk.c"
  670.     }
  671.     _cairo_destroy0 (ctx);
  672.     _g_object_unref0 (bitmap);
  673. }
  674.  
  675.  
  676. #line 143 "ui-cairo-gtk.vala"
  677. static gboolean sezen_sezen_window_on_expose (SezenSezenWindow* self, GtkWidget* w, GdkEventExpose* event) {
  678. #line 679 "ui-cairo-gtk.c"
  679.     gboolean result = FALSE;
  680.     cairo_t* ctx;
  681.     gint top_SPACING;
  682.     GtkStyle* style;
  683.     double r;
  684.     double g;
  685.     double b;
  686.     cairo_pattern_t* pat;
  687.     GdkColor _tmp0_;
  688.     gint PAD;
  689.     GtkContainer* _tmp1_;
  690.     GtkContainer* c;
  691. #line 143 "ui-cairo-gtk.vala"
  692.     g_return_val_if_fail (self != NULL, FALSE);
  693. #line 143 "ui-cairo-gtk.vala"
  694.     g_return_val_if_fail (w != NULL, FALSE);
  695. #line 144 "ui-cairo-gtk.vala"
  696.     ctx = gdk_cairo_create ((GdkDrawable*) w->window);
  697. #line 146 "ui-cairo-gtk.vala"
  698.     cairo_set_operator (ctx, CAIRO_OPERATOR_CLEAR);
  699. #line 147 "ui-cairo-gtk.vala"
  700.     cairo_paint (ctx);
  701. #line 148 "ui-cairo-gtk.vala"
  702.     cairo_set_operator (ctx, CAIRO_OPERATOR_OVER);
  703. #line 150 "ui-cairo-gtk.vala"
  704.     top_SPACING = SEZEN_SEZEN_WINDOW_TOP_SPACING;
  705. #line 151 "ui-cairo-gtk.vala"
  706.     if (!gtk_widget_is_composited (w)) {
  707. #line 152 "ui-cairo-gtk.vala"
  708.         top_SPACING = 0;
  709. #line 710 "ui-cairo-gtk.c"
  710.     }
  711. #line 154 "ui-cairo-gtk.vala"
  712.     style = _g_object_ref0 (gtk_widget_get_style (w));
  713. #line 155 "ui-cairo-gtk.vala"
  714.     r = 0.0;
  715. #line 155 "ui-cairo-gtk.vala"
  716.     g = 0.0;
  717. #line 155 "ui-cairo-gtk.vala"
  718.     b = 0.0;
  719. #line 156 "ui-cairo-gtk.vala"
  720.     pat = cairo_pattern_create_linear ((double) 0, (double) top_SPACING, (double) 0, (double) SEZEN_SEZEN_WINDOW_UI_HEIGHT);
  721. #line 157 "ui-cairo-gtk.vala"
  722.     sezen_sezen_window_color_to_rgb (self, (_tmp0_ = style->bg[GTK_STATE_NORMAL], &_tmp0_), &r, &g, &b);
  723. #line 158 "ui-cairo-gtk.vala"
  724.     cairo_pattern_add_color_stop_rgba (pat, (double) 0, MIN (r + 0.15, (double) 1), MIN (g + 0.15, (double) 1), MIN (b + 0.15, (double) 1), 0.95);
  725. #line 162 "ui-cairo-gtk.vala"
  726.     cairo_pattern_add_color_stop_rgba (pat, (double) 1, MAX (r - 0.15, (double) 0), MAX (g - 0.15, (double) 0), MAX (b - 0.15, (double) 0), 0.95);
  727. #line 167 "ui-cairo-gtk.vala"
  728.     PAD = 1;
  729. #line 168 "ui-cairo-gtk.vala"
  730.     sezen_sezen_window_rounded_rect (self, ctx, (double) PAD, (double) (top_SPACING + PAD), (double) (SEZEN_SEZEN_WINDOW_UI_WIDTH - (PAD * 2)), (double) ((SEZEN_SEZEN_WINDOW_UI_HEIGHT - top_SPACING) - (PAD * 2)), (double) SEZEN_SEZEN_WINDOW_BORDER_RADIUS);
  731. #line 169 "ui-cairo-gtk.vala"
  732.     cairo_set_source (ctx, pat);
  733. #line 170 "ui-cairo-gtk.vala"
  734.     cairo_fill (ctx);
  735. #line 172 "ui-cairo-gtk.vala"
  736.     sezen_sezen_window_rounded_rect (self, ctx, (double) PAD, (double) (top_SPACING + PAD), (double) (SEZEN_SEZEN_WINDOW_UI_WIDTH - (PAD * 2)), (double) ((SEZEN_SEZEN_WINDOW_UI_HEIGHT - top_SPACING) - (PAD * 2)), (double) SEZEN_SEZEN_WINDOW_BORDER_RADIUS);
  737. #line 173 "ui-cairo-gtk.vala"
  738.     cairo_set_line_width (ctx, (double) 2);
  739. #line 174 "ui-cairo-gtk.vala"
  740.     cairo_set_source_rgba (ctx, 1 - r, 1 - g, 1 - b, 0.8);
  741. #line 175 "ui-cairo-gtk.vala"
  742.     cairo_stroke (ctx);
  743. #line 744 "ui-cairo-gtk.c"
  744.     _tmp1_ = NULL;
  745. #line 178 "ui-cairo-gtk.vala"
  746.     if (GTK_IS_CONTAINER (w)) {
  747. #line 178 "ui-cairo-gtk.vala"
  748.         _tmp1_ = GTK_CONTAINER (w);
  749. #line 750 "ui-cairo-gtk.c"
  750.     } else {
  751. #line 178 "ui-cairo-gtk.vala"
  752.         _tmp1_ = NULL;
  753. #line 754 "ui-cairo-gtk.c"
  754.     }
  755. #line 178 "ui-cairo-gtk.vala"
  756.     c = _g_object_ref0 (_tmp1_);
  757. #line 179 "ui-cairo-gtk.vala"
  758.     if (c != NULL) {
  759. #line 180 "ui-cairo-gtk.vala"
  760.         gtk_container_propagate_expose (c, gtk_bin_get_child ((GtkBin*) self), event);
  761. #line 762 "ui-cairo-gtk.c"
  762.     }
  763.     result = TRUE;
  764.     _g_object_unref0 (c);
  765.     _cairo_pattern_destroy0 (pat);
  766.     _g_object_unref0 (style);
  767.     _cairo_destroy0 (ctx);
  768. #line 182 "ui-cairo-gtk.vala"
  769.     return result;
  770. #line 771 "ui-cairo-gtk.c"
  771. }
  772.  
  773.  
  774. #line 197 "ui-cairo-gtk.vala"
  775. static void sezen_sezen_window_foo (SezenSezenWindow* self, GtkWidget* w) {
  776. #line 197 "ui-cairo-gtk.vala"
  777.     g_return_if_fail (self != NULL);
  778. #line 197 "ui-cairo-gtk.vala"
  779.     g_return_if_fail (w != NULL);
  780. #line 781 "ui-cairo-gtk.c"
  781. }
  782.  
  783.  
  784. #line 197 "ui-cairo-gtk.vala"
  785. static void _sezen_sezen_window_foo_gtk_callback (GtkWidget* widget, gpointer self) {
  786. #line 787 "ui-cairo-gtk.c"
  787.     sezen_sezen_window_foo (self, widget);
  788. }
  789.  
  790.  
  791. #line 202 "ui-cairo-gtk.vala"
  792. static void sezen_sezen_window_build_ui (SezenSezenWindow* self) {
  793. #line 794 "ui-cairo-gtk.c"
  794.     GtkVBox* main_vbox;
  795.     GtkHBox* _tmp0_;
  796.     GtkHBox* _tmp1_;
  797.     SezenGtkContainerOverlayed* gco;
  798.     GtkImage* _tmp2_;
  799.     GtkVBox* top_right_vbox;
  800.     GtkLabel* spacer;
  801.     SezenSezenTypeSelector* _tmp3_;
  802.     GtkHBox* right_hbox;
  803.     GtkVBox* labels_vbox;
  804.     GtkLabel* _tmp4_;
  805.     char* _tmp5_;
  806.     GtkLabel* _tmp6_;
  807.     char* _tmp7_;
  808.     GtkImage* _tmp8_;
  809.     SezenResultBox* _tmp9_;
  810.     GtkLabel* spacerleft;
  811.     GtkLabel* spacerright;
  812. #line 202 "ui-cairo-gtk.vala"
  813.     g_return_if_fail (self != NULL);
  814. #line 207 "ui-cairo-gtk.vala"
  815.     main_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
  816. #line 208 "ui-cairo-gtk.vala"
  817.     gtk_widget_set_size_request ((GtkWidget*) main_vbox, SEZEN_SEZEN_WINDOW_UI_WIDTH, SEZEN_SEZEN_WINDOW_UI_HEIGHT + SEZEN_SEZEN_WINDOW_UI_LIST_HEIGHT);
  818. #line 210 "ui-cairo-gtk.vala"
  819.     self->priv->top_hbox = (_tmp0_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)), _g_object_unref0 (self->priv->top_hbox), _tmp0_);
  820. #line 211 "ui-cairo-gtk.vala"
  821.     gtk_container_set_border_width ((GtkContainer*) self->priv->top_hbox, (guint) SEZEN_SEZEN_WINDOW_PADDING);
  822. #line 212 "ui-cairo-gtk.vala"
  823.     gtk_widget_set_size_request ((GtkWidget*) self->priv->top_hbox, SEZEN_SEZEN_WINDOW_UI_WIDTH, SEZEN_SEZEN_WINDOW_UI_HEIGHT);
  824. #line 214 "ui-cairo-gtk.vala"
  825.     self->priv->list_hbox = (_tmp1_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)), _g_object_unref0 (self->priv->list_hbox), _tmp1_);
  826. #line 215 "ui-cairo-gtk.vala"
  827.     gtk_widget_set_size_request ((GtkWidget*) self->priv->list_hbox, SEZEN_SEZEN_WINDOW_UI_LIST_WIDTH, SEZEN_SEZEN_WINDOW_UI_LIST_HEIGHT);
  828. #line 217 "ui-cairo-gtk.vala"
  829.     gtk_container_add ((GtkContainer*) self, (GtkWidget*) main_vbox);
  830. #line 218 "ui-cairo-gtk.vala"
  831.     gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) self->priv->top_hbox, FALSE, TRUE, 0);
  832. #line 219 "ui-cairo-gtk.vala"
  833.     gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) self->priv->list_hbox, TRUE, TRUE, 0);
  834. #line 224 "ui-cairo-gtk.vala"
  835.     gco = g_object_ref_sink (sezen_gtk_container_overlayed_new ());
  836. #line 225 "ui-cairo-gtk.vala"
  837.     self->priv->main_image = (_tmp2_ = g_object_ref_sink ((GtkImage*) gtk_image_new ()), _g_object_unref0 (self->priv->main_image), _tmp2_);
  838. #line 226 "ui-cairo-gtk.vala"
  839.     gtk_image_set_pixel_size (self->priv->main_image, SEZEN_SEZEN_WINDOW_ICON_SIZE);
  840. #line 227 "ui-cairo-gtk.vala"
  841.     gtk_image_set_from_icon_name (self->priv->main_image, "search", GTK_ICON_SIZE_DIALOG);
  842. #line 228 "ui-cairo-gtk.vala"
  843.     gtk_container_add ((GtkContainer*) gco, (GtkWidget*) self->priv->main_image);
  844. #line 229 "ui-cairo-gtk.vala"
  845.     gtk_container_forall ((GtkContainer*) gco, _sezen_sezen_window_foo_gtk_callback, self);
  846. #line 230 "ui-cairo-gtk.vala"
  847.     gtk_box_pack_start ((GtkBox*) self->priv->top_hbox, (GtkWidget*) gco, FALSE, TRUE, 0);
  848. #line 233 "ui-cairo-gtk.vala"
  849.     top_right_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
  850. #line 234 "ui-cairo-gtk.vala"
  851.     gtk_box_pack_start ((GtkBox*) self->priv->top_hbox, (GtkWidget*) top_right_vbox, TRUE, TRUE, 0);
  852. #line 236 "ui-cairo-gtk.vala"
  853.     spacer = g_object_ref_sink ((GtkLabel*) gtk_label_new (""));
  854. #line 237 "ui-cairo-gtk.vala"
  855.     gtk_widget_set_size_request ((GtkWidget*) spacer, 10, (SEZEN_SEZEN_WINDOW_TOP_SPACING - SEZEN_SEZEN_WINDOW_PADDING) + 10);
  856. #line 239 "ui-cairo-gtk.vala"
  857.     self->priv->sts = (_tmp3_ = g_object_ref_sink (sezen_sezen_type_selector_new (self->priv->categories, self->priv->categories_length1)), _g_object_unref0 (self->priv->sts), _tmp3_);
  858. #line 241 "ui-cairo-gtk.vala"
  859.     right_hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
  860. #line 242 "ui-cairo-gtk.vala"
  861.     gtk_box_pack_start ((GtkBox*) top_right_vbox, (GtkWidget*) spacer, FALSE, TRUE, 0);
  862. #line 243 "ui-cairo-gtk.vala"
  863.     gtk_box_pack_start ((GtkBox*) top_right_vbox, (GtkWidget*) self->priv->sts, FALSE, TRUE, 0);
  864. #line 244 "ui-cairo-gtk.vala"
  865.     gtk_box_pack_start ((GtkBox*) top_right_vbox, (GtkWidget*) right_hbox, TRUE, TRUE, 0);
  866. #line 247 "ui-cairo-gtk.vala"
  867.     labels_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
  868. #line 248 "ui-cairo-gtk.vala"
  869.     gtk_box_pack_start ((GtkBox*) right_hbox, (GtkWidget*) labels_vbox, TRUE, TRUE, 0);
  870. #line 251 "ui-cairo-gtk.vala"
  871.     self->priv->main_label = (_tmp4_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), _g_object_unref0 (self->priv->main_label), _tmp4_);
  872. #line 252 "ui-cairo-gtk.vala"
  873.     gtk_misc_set_alignment ((GtkMisc*) self->priv->main_label, (float) 0, (float) 0);
  874. #line 253 "ui-cairo-gtk.vala"
  875.     gtk_label_set_markup (self->priv->main_label, _tmp5_ = sezen_sezen_window_markup_string_with_search (self, " ", " "));
  876. #line 877 "ui-cairo-gtk.c"
  877.     _g_free0 (_tmp5_);
  878. #line 254 "ui-cairo-gtk.vala"
  879.     gtk_label_set_ellipsize (self->priv->main_label, PANGO_ELLIPSIZE_END);
  880. #line 256 "ui-cairo-gtk.vala"
  881.     self->priv->main_label_description = (_tmp6_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), _g_object_unref0 (self->priv->main_label_description), _tmp6_);
  882. #line 257 "ui-cairo-gtk.vala"
  883.     gtk_label_set_markup (self->priv->main_label_description, _tmp7_ = sezen_sezen_window_get_description_markup (self, "Type to search..."));
  884. #line 885 "ui-cairo-gtk.c"
  885.     _g_free0 (_tmp7_);
  886. #line 258 "ui-cairo-gtk.vala"
  887.     gtk_misc_set_alignment ((GtkMisc*) self->priv->main_label_description, (float) 0, (float) 0);
  888. #line 259 "ui-cairo-gtk.vala"
  889.     gtk_label_set_ellipsize (self->priv->main_label_description, PANGO_ELLIPSIZE_END);
  890. #line 260 "ui-cairo-gtk.vala"
  891.     gtk_label_set_line_wrap (self->priv->main_label_description, TRUE);
  892. #line 262 "ui-cairo-gtk.vala"
  893.     gtk_box_pack_end ((GtkBox*) labels_vbox, (GtkWidget*) self->priv->main_label_description, FALSE, TRUE, 0);
  894. #line 263 "ui-cairo-gtk.vala"
  895.     gtk_box_pack_end ((GtkBox*) labels_vbox, (GtkWidget*) self->priv->main_label, FALSE, TRUE, 0);
  896. #line 266 "ui-cairo-gtk.vala"
  897.     self->priv->action_image = (_tmp8_ = g_object_ref_sink ((GtkImage*) gtk_image_new ()), _g_object_unref0 (self->priv->action_image), _tmp8_);
  898. #line 267 "ui-cairo-gtk.vala"
  899.     gtk_image_set_pixel_size (self->priv->action_image, SEZEN_SEZEN_WINDOW_ACTION_ICON_SIZE);
  900. #line 268 "ui-cairo-gtk.vala"
  901.     gtk_widget_set_size_request ((GtkWidget*) self->priv->action_image, SEZEN_SEZEN_WINDOW_ACTION_ICON_SIZE, SEZEN_SEZEN_WINDOW_ACTION_ICON_SIZE);
  902. #line 269 "ui-cairo-gtk.vala"
  903.     gtk_image_set_from_icon_name (self->priv->action_image, "system-run", GTK_ICON_SIZE_DIALOG);
  904. #line 270 "ui-cairo-gtk.vala"
  905.     gtk_box_pack_start ((GtkBox*) right_hbox, (GtkWidget*) self->priv->action_image, FALSE, TRUE, 0);
  906. #line 273 "ui-cairo-gtk.vala"
  907.     self->priv->result_box = (_tmp9_ = g_object_ref_sink (sezen_result_box_new (SEZEN_SEZEN_WINDOW_UI_LIST_WIDTH)), _g_object_unref0 (self->priv->result_box), _tmp9_);
  908. #line 274 "ui-cairo-gtk.vala"
  909.     spacerleft = g_object_ref_sink ((GtkLabel*) gtk_label_new (""));
  910. #line 275 "ui-cairo-gtk.vala"
  911.     spacerright = g_object_ref_sink ((GtkLabel*) gtk_label_new (""));
  912. #line 276 "ui-cairo-gtk.vala"
  913.     gtk_widget_set_size_request ((GtkWidget*) spacerright, (SEZEN_SEZEN_WINDOW_UI_WIDTH - SEZEN_SEZEN_WINDOW_UI_LIST_WIDTH) / 2, 10);
  914. #line 277 "ui-cairo-gtk.vala"
  915.     gtk_widget_set_size_request ((GtkWidget*) spacerleft, (SEZEN_SEZEN_WINDOW_UI_WIDTH - SEZEN_SEZEN_WINDOW_UI_LIST_WIDTH) / 2, 10);
  916. #line 278 "ui-cairo-gtk.vala"
  917.     gtk_box_pack_start ((GtkBox*) self->priv->list_hbox, (GtkWidget*) spacerleft, FALSE, TRUE, 0);
  918. #line 279 "ui-cairo-gtk.vala"
  919.     gtk_box_pack_start ((GtkBox*) self->priv->list_hbox, (GtkWidget*) self->priv->result_box, TRUE, TRUE, 0);
  920. #line 280 "ui-cairo-gtk.vala"
  921.     gtk_box_pack_start ((GtkBox*) self->priv->list_hbox, (GtkWidget*) spacerright, FALSE, TRUE, 0);
  922. #line 281 "ui-cairo-gtk.vala"
  923.     gtk_widget_set_name ((GtkWidget*) self->priv->list_hbox, "list_hbox");
  924. #line 283 "ui-cairo-gtk.vala"
  925.     gtk_widget_show_all ((GtkWidget*) self);
  926. #line 927 "ui-cairo-gtk.c"
  927.     _g_object_unref0 (spacerright);
  928.     _g_object_unref0 (spacerleft);
  929.     _g_object_unref0 (labels_vbox);
  930.     _g_object_unref0 (right_hbox);
  931.     _g_object_unref0 (spacer);
  932.     _g_object_unref0 (top_right_vbox);
  933.     _g_object_unref0 (gco);
  934.     _g_object_unref0 (main_vbox);
  935. }
  936.  
  937.  
  938. #line 287 "ui-cairo-gtk.vala"
  939. static gboolean sezen_sezen_window_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
  940. #line 941 "ui-cairo-gtk.c"
  941.     SezenSezenWindow * self;
  942.     gboolean result = FALSE;
  943.     guint key;
  944.     self = (SezenSezenWindow*) base;
  945. #line 289 "ui-cairo-gtk.vala"
  946.     if (gtk_im_context_filter_keypress (self->priv->im_context, event)) {
  947. #line 948 "ui-cairo-gtk.c"
  948.         result = TRUE;
  949. #line 289 "ui-cairo-gtk.vala"
  950.         return result;
  951. #line 952 "ui-cairo-gtk.c"
  952.     }
  953. #line 291 "ui-cairo-gtk.vala"
  954.     key = (*event).keyval;
  955. #line 292 "ui-cairo-gtk.vala"
  956.     switch (key) {
  957. #line 958 "ui-cairo-gtk.c"
  958.         case GDK_Return:
  959.         case GDK_KP_Enter:
  960.         case GDK_ISO_Enter:
  961.         {
  962. #line 297 "ui-cairo-gtk.vala"
  963.             g_debug ("ui-cairo-gtk.vala:297: enter pressed");
  964. #line 298 "ui-cairo-gtk.vala"
  965.             if (self->priv->current_match != NULL) {
  966. #line 300 "ui-cairo-gtk.vala"
  967.                 sezen_match_execute (self->priv->current_match);
  968. #line 301 "ui-cairo-gtk.vala"
  969.                 gtk_widget_hide ((GtkWidget*) self);
  970. #line 302 "ui-cairo-gtk.vala"
  971.                 sezen_sezen_window_search_reset (self);
  972. #line 973 "ui-cairo-gtk.c"
  973.             }
  974. #line 304 "ui-cairo-gtk.vala"
  975.             break;
  976. #line 977 "ui-cairo-gtk.c"
  977.         }
  978.         case GDK_Delete:
  979.         case GDK_BackSpace:
  980.         {
  981. #line 307 "ui-cairo-gtk.vala"
  982.             sezen_sezen_window_search_delete_char (self);
  983. #line 308 "ui-cairo-gtk.vala"
  984.             break;
  985. #line 986 "ui-cairo-gtk.c"
  986.         }
  987.         case GDK_Escape:
  988.         {
  989. #line 310 "ui-cairo-gtk.vala"
  990.             g_debug ("ui-cairo-gtk.vala:310: escape");
  991. #line 311 "ui-cairo-gtk.vala"
  992.             if (_vala_strcmp0 (self->priv->_search_string, "") != 0) {
  993. #line 313 "ui-cairo-gtk.vala"
  994.                 sezen_sezen_window_search_reset (self);
  995. #line 996 "ui-cairo-gtk.c"
  996.             } else {
  997. #line 317 "ui-cairo-gtk.vala"
  998.                 gtk_widget_hide ((GtkWidget*) self);
  999. #line 1000 "ui-cairo-gtk.c"
  1000.             }
  1001. #line 319 "ui-cairo-gtk.vala"
  1002.             break;
  1003. #line 1004 "ui-cairo-gtk.c"
  1004.         }
  1005.         case GDK_Left:
  1006.         {
  1007. #line 321 "ui-cairo-gtk.vala"
  1008.             sezen_sezen_type_selector_select_prev (self->priv->sts);
  1009. #line 322 "ui-cairo-gtk.vala"
  1010.             sezen_sezen_window_set_search_string (self, self->priv->_search_string);
  1011. #line 323 "ui-cairo-gtk.vala"
  1012.             break;
  1013. #line 1014 "ui-cairo-gtk.c"
  1014.         }
  1015.         case GDK_Right:
  1016.         {
  1017. #line 325 "ui-cairo-gtk.vala"
  1018.             sezen_sezen_type_selector_select_next (self->priv->sts);
  1019. #line 326 "ui-cairo-gtk.vala"
  1020.             sezen_sezen_window_set_search_string (self, self->priv->_search_string);
  1021. #line 327 "ui-cairo-gtk.vala"
  1022.             break;
  1023. #line 1024 "ui-cairo-gtk.c"
  1024.         }
  1025.         case GDK_Up:
  1026.         {
  1027.             gint i;
  1028. #line 329 "ui-cairo-gtk.vala"
  1029.             i = sezen_result_box_move_selection (self->priv->result_box, -1);
  1030. #line 330 "ui-cairo-gtk.vala"
  1031.             if (i < 0) {
  1032. #line 331 "ui-cairo-gtk.vala"
  1033.                 sezen_sezen_window_focus_match (self, NULL);
  1034. #line 1035 "ui-cairo-gtk.c"
  1035.             } else {
  1036.                 SezenMatch* _tmp0_;
  1037. #line 333 "ui-cairo-gtk.vala"
  1038.                 sezen_sezen_window_focus_match (self, _tmp0_ = (SezenMatch*) gee_list_get (self->priv->results, i));
  1039. #line 1040 "ui-cairo-gtk.c"
  1040.                 _g_object_unref0 (_tmp0_);
  1041.             }
  1042. #line 334 "ui-cairo-gtk.vala"
  1043.             sezen_sezen_window_set_list_visible (self, TRUE);
  1044. #line 335 "ui-cairo-gtk.vala"
  1045.             break;
  1046. #line 1047 "ui-cairo-gtk.c"
  1047.         }
  1048.         case GDK_Down:
  1049.         {
  1050.             gint i;
  1051. #line 337 "ui-cairo-gtk.vala"
  1052.             i = sezen_result_box_move_selection (self->priv->result_box, 1);
  1053. #line 338 "ui-cairo-gtk.vala"
  1054.             if (i < 0) {
  1055. #line 339 "ui-cairo-gtk.vala"
  1056.                 sezen_sezen_window_focus_match (self, NULL);
  1057. #line 1058 "ui-cairo-gtk.c"
  1058.             } else {
  1059.                 SezenMatch* _tmp1_;
  1060. #line 341 "ui-cairo-gtk.vala"
  1061.                 sezen_sezen_window_focus_match (self, _tmp1_ = (SezenMatch*) gee_list_get (self->priv->results, i));
  1062. #line 1063 "ui-cairo-gtk.c"
  1063.                 _g_object_unref0 (_tmp1_);
  1064.             }
  1065. #line 342 "ui-cairo-gtk.vala"
  1066.             sezen_sezen_window_set_list_visible (self, TRUE);
  1067. #line 343 "ui-cairo-gtk.vala"
  1068.             break;
  1069. #line 1070 "ui-cairo-gtk.c"
  1070.         }
  1071.         default:
  1072.         {
  1073. #line 345 "ui-cairo-gtk.vala"
  1074.             g_debug ("ui-cairo-gtk.vala:345: im_context didn't filter...");
  1075. #line 346 "ui-cairo-gtk.vala"
  1076.             break;
  1077. #line 1078 "ui-cairo-gtk.c"
  1078.         }
  1079.     }
  1080.     result = TRUE;
  1081. #line 349 "ui-cairo-gtk.vala"
  1082.     return result;
  1083. #line 1084 "ui-cairo-gtk.c"
  1084. }
  1085.  
  1086.  
  1087. #line 351 "ui-cairo-gtk.vala"
  1088. static void sezen_sezen_window_set_list_visible (SezenSezenWindow* self, gboolean b) {
  1089. #line 1090 "ui-cairo-gtk.c"
  1090.     const char* _tmp0_;
  1091. #line 351 "ui-cairo-gtk.vala"
  1092.     g_return_if_fail (self != NULL);
  1093. #line 353 "ui-cairo-gtk.vala"
  1094.     if (b == self->priv->list_visible) {
  1095. #line 354 "ui-cairo-gtk.vala"
  1096.         return;
  1097. #line 1098 "ui-cairo-gtk.c"
  1098.     }
  1099. #line 355 "ui-cairo-gtk.vala"
  1100.     self->priv->list_visible = b;
  1101. #line 1102 "ui-cairo-gtk.c"
  1102.     _tmp0_ = NULL;
  1103. #line 356 "ui-cairo-gtk.vala"
  1104.     if (b) {
  1105. #line 356 "ui-cairo-gtk.vala"
  1106.         _tmp0_ = "yes";
  1107. #line 1108 "ui-cairo-gtk.c"
  1108.     } else {
  1109. #line 356 "ui-cairo-gtk.vala"
  1110.         _tmp0_ = "no";
  1111. #line 1112 "ui-cairo-gtk.c"
  1112.     }
  1113. #line 356 "ui-cairo-gtk.vala"
  1114.     g_debug ("ui-cairo-gtk.vala:356: Set list %s visible", _tmp0_);
  1115. #line 357 "ui-cairo-gtk.vala"
  1116.     if (b) {
  1117. #line 358 "ui-cairo-gtk.vala"
  1118.         gtk_widget_show ((GtkWidget*) self->priv->list_hbox);
  1119. #line 1120 "ui-cairo-gtk.c"
  1120.     } else {
  1121. #line 360 "ui-cairo-gtk.vala"
  1122.         gtk_widget_hide ((GtkWidget*) self->priv->list_hbox);
  1123. #line 1124 "ui-cairo-gtk.c"
  1124.     }
  1125. #line 361 "ui-cairo-gtk.vala"
  1126.     sezen_sezen_window_set_mask (self);
  1127. #line 1128 "ui-cairo-gtk.c"
  1128. }
  1129.  
  1130.  
  1131. #line 364 "ui-cairo-gtk.vala"
  1132. static void sezen_sezen_window_quit (SezenSezenWindow* self) {
  1133. #line 364 "ui-cairo-gtk.vala"
  1134.     g_return_if_fail (self != NULL);
  1135. #line 366 "ui-cairo-gtk.vala"
  1136.     gtk_main_quit ();
  1137. #line 1138 "ui-cairo-gtk.c"
  1138. }
  1139.  
  1140.  
  1141. #line 406 "ui-cairo-gtk.vala"
  1142. static void sezen_sezen_window_search_ready (SezenSezenWindow* self, GObject* obj, GAsyncResult* res) {
  1143. #line 1144 "ui-cairo-gtk.c"
  1144.     GError * _inner_error_ = NULL;
  1145. #line 406 "ui-cairo-gtk.vala"
  1146.     g_return_if_fail (self != NULL);
  1147. #line 406 "ui-cairo-gtk.vala"
  1148.     g_return_if_fail (res != NULL);
  1149. #line 1150 "ui-cairo-gtk.c"
  1150.     {
  1151.         GeeList* _tmp0_;
  1152.         GeeList* _tmp1_;
  1153. #line 410 "ui-cairo-gtk.vala"
  1154.         _tmp0_ = sezen_data_sink_search_finish (self->priv->data_sink, res, &_inner_error_);
  1155. #line 1156 "ui-cairo-gtk.c"
  1156.         if (_inner_error_ != NULL) {
  1157.             if (_inner_error_->domain == SEZEN_SEARCH_ERROR) {
  1158.                 goto __catch17_sezen_search_error;
  1159.             }
  1160.             g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  1161.             g_clear_error (&_inner_error_);
  1162.             return;
  1163.         }
  1164. #line 410 "ui-cairo-gtk.vala"
  1165.         self->priv->results = (_tmp1_ = _tmp0_, _g_object_unref0 (self->priv->results), _tmp1_);
  1166. #line 411 "ui-cairo-gtk.vala"
  1167.         if (gee_collection_get_size ((GeeCollection*) self->priv->results) > 0) {
  1168. #line 1169 "ui-cairo-gtk.c"
  1169.             SezenMatch* _tmp2_;
  1170. #line 413 "ui-cairo-gtk.vala"
  1171.             sezen_sezen_window_focus_match (self, _tmp2_ = (SezenMatch*) gee_list_get (self->priv->results, 0));
  1172. #line 1173 "ui-cairo-gtk.c"
  1173.             _g_object_unref0 (_tmp2_);
  1174. #line 414 "ui-cairo-gtk.vala"
  1175.             sezen_result_box_update_matches (self->priv->result_box, self->priv->results);
  1176. #line 1177 "ui-cairo-gtk.c"
  1177.         } else {
  1178. #line 424 "ui-cairo-gtk.vala"
  1179.             sezen_result_box_update_matches (self->priv->result_box, NULL);
  1180. #line 425 "ui-cairo-gtk.vala"
  1181.             sezen_sezen_window_set_list_visible (self, FALSE);
  1182. #line 426 "ui-cairo-gtk.vala"
  1183.             sezen_sezen_window_focus_match (self, NULL);
  1184. #line 427 "ui-cairo-gtk.vala"
  1185.             gtk_image_set_from_icon_name (self->priv->main_image, "unknown", GTK_ICON_SIZE_DIALOG);
  1186. #line 1187 "ui-cairo-gtk.c"
  1187.         }
  1188.     }
  1189.     goto __finally17;
  1190.     __catch17_sezen_search_error:
  1191.     {
  1192.         GError * err;
  1193.         err = _inner_error_;
  1194.         _inner_error_ = NULL;
  1195.         {
  1196.             _g_error_free0 (err);
  1197.         }
  1198.     }
  1199.     __finally17:
  1200.     if (_inner_error_ != NULL) {
  1201.         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  1202.         g_clear_error (&_inner_error_);
  1203.         return;
  1204.     }
  1205. }
  1206.  
  1207.  
  1208. #line 438 "ui-cairo-gtk.vala"
  1209. static void sezen_sezen_window_search_add_char (SezenSezenWindow* self, const char* chr) {
  1210. #line 1211 "ui-cairo-gtk.c"
  1211.     char* _tmp0_;
  1212. #line 438 "ui-cairo-gtk.vala"
  1213.     g_return_if_fail (self != NULL);
  1214. #line 438 "ui-cairo-gtk.vala"
  1215.     g_return_if_fail (chr != NULL);
  1216. #line 440 "ui-cairo-gtk.vala"
  1217.     sezen_sezen_window_set_search_string (self, _tmp0_ = g_strconcat (self->priv->_search_string, chr, NULL));
  1218. #line 1219 "ui-cairo-gtk.c"
  1219.     _g_free0 (_tmp0_);
  1220. }
  1221.  
  1222.  
  1223. static glong string_get_length (const char* self) {
  1224.     glong result;
  1225.     g_return_val_if_fail (self != NULL, 0L);
  1226.     result = g_utf8_strlen (self, (gssize) (-1));
  1227. #line 1190 "glib-2.0.vapi"
  1228.     return result;
  1229. #line 1230 "ui-cairo-gtk.c"
  1230. }
  1231.  
  1232.  
  1233. #line 1106 "glib-2.0.vapi"
  1234. static char* string_substring (const char* self, glong offset, glong len) {
  1235. #line 1236 "ui-cairo-gtk.c"
  1236.     char* result = NULL;
  1237.     glong string_length;
  1238.     const char* start;
  1239. #line 1106 "glib-2.0.vapi"
  1240.     g_return_val_if_fail (self != NULL, NULL);
  1241. #line 1107 "glib-2.0.vapi"
  1242.     string_length = string_get_length (self);
  1243. #line 1108 "glib-2.0.vapi"
  1244.     if (offset < 0) {
  1245. #line 1109 "glib-2.0.vapi"
  1246.         offset = string_length + offset;
  1247. #line 1110 "glib-2.0.vapi"
  1248.         g_return_val_if_fail (offset >= 0, NULL);
  1249. #line 1250 "ui-cairo-gtk.c"
  1250.     } else {
  1251. #line 1112 "glib-2.0.vapi"
  1252.         g_return_val_if_fail (offset <= string_length, NULL);
  1253. #line 1254 "ui-cairo-gtk.c"
  1254.     }
  1255. #line 1114 "glib-2.0.vapi"
  1256.     if (len < 0) {
  1257. #line 1115 "glib-2.0.vapi"
  1258.         len = string_length - offset;
  1259. #line 1260 "ui-cairo-gtk.c"
  1260.     }
  1261. #line 1117 "glib-2.0.vapi"
  1262.     g_return_val_if_fail ((offset + len) <= string_length, NULL);
  1263. #line 1118 "glib-2.0.vapi"
  1264.     start = g_utf8_offset_to_pointer (self, offset);
  1265. #line 1266 "ui-cairo-gtk.c"
  1266.     result = g_strndup (start, ((gchar*) g_utf8_offset_to_pointer (start, len)) - ((gchar*) start));
  1267. #line 1119 "glib-2.0.vapi"
  1268.     return result;
  1269. #line 1270 "ui-cairo-gtk.c"
  1270. }
  1271.  
  1272.  
  1273. #line 443 "ui-cairo-gtk.vala"
  1274. static void sezen_sezen_window_search_delete_char (SezenSezenWindow* self) {
  1275. #line 1276 "ui-cairo-gtk.c"
  1276.     glong len;
  1277. #line 443 "ui-cairo-gtk.vala"
  1278.     g_return_if_fail (self != NULL);
  1279. #line 445 "ui-cairo-gtk.vala"
  1280.     len = string_get_length (self->priv->_search_string);
  1281. #line 446 "ui-cairo-gtk.vala"
  1282.     if (len > 0) {
  1283. #line 1284 "ui-cairo-gtk.c"
  1284.         char* _tmp0_;
  1285. #line 448 "ui-cairo-gtk.vala"
  1286.         sezen_sezen_window_set_search_string (self, _tmp0_ = string_substring (self->priv->_search_string, (glong) 0, len - 1));
  1287. #line 1288 "ui-cairo-gtk.c"
  1288.         _g_free0 (_tmp0_);
  1289.     } else {
  1290. #line 452 "ui-cairo-gtk.vala"
  1291.         sezen_sezen_window_set_search_string (self, "");
  1292. #line 1293 "ui-cairo-gtk.c"
  1293.     }
  1294. }
  1295.  
  1296.  
  1297. #line 456 "ui-cairo-gtk.vala"
  1298. static void sezen_sezen_window_search_reset (SezenSezenWindow* self) {
  1299. #line 456 "ui-cairo-gtk.vala"
  1300.     g_return_if_fail (self != NULL);
  1301. #line 458 "ui-cairo-gtk.vala"
  1302.     sezen_sezen_window_set_search_string (self, "");
  1303. #line 459 "ui-cairo-gtk.vala"
  1304.     sezen_sezen_type_selector_set_selected (self->priv->sts, 0);
  1305. #line 1306 "ui-cairo-gtk.c"
  1306. }
  1307.  
  1308.  
  1309. #line 464 "ui-cairo-gtk.vala"
  1310. void sezen_sezen_window_focus_match (SezenSezenWindow* self, SezenMatch* match) {
  1311. #line 1312 "ui-cairo-gtk.c"
  1312.     SezenMatch* _tmp0_;
  1313.     GError * _inner_error_ = NULL;
  1314. #line 464 "ui-cairo-gtk.vala"
  1315.     g_return_if_fail (self != NULL);
  1316. #line 466 "ui-cairo-gtk.vala"
  1317.     self->priv->current_match = (_tmp0_ = _g_object_ref0 (match), _g_object_unref0 (self->priv->current_match), _tmp0_);
  1318. #line 467 "ui-cairo-gtk.vala"
  1319.     if (match != NULL) {
  1320. #line 1321 "ui-cairo-gtk.c"
  1321.         char* _tmp2_;
  1322.         char* _tmp3_;
  1323.         {
  1324.             const char* _tmp1_;
  1325.             GIcon* icon;
  1326.             _tmp1_ = NULL;
  1327. #line 471 "ui-cairo-gtk.vala"
  1328.             if (sezen_match_get_has_thumbnail (match)) {
  1329. #line 472 "ui-cairo-gtk.vala"
  1330.                 _tmp1_ = sezen_match_get_thumbnail_path (match);
  1331. #line 1332 "ui-cairo-gtk.c"
  1332.             } else {
  1333. #line 472 "ui-cairo-gtk.vala"
  1334.                 _tmp1_ = sezen_match_get_icon_name (match);
  1335. #line 1336 "ui-cairo-gtk.c"
  1336.             }
  1337. #line 471 "ui-cairo-gtk.vala"
  1338.             icon = _g_object_ref0 (g_icon_new_for_string (_tmp1_, &_inner_error_));
  1339. #line 1340 "ui-cairo-gtk.c"
  1340.             if (_inner_error_ != NULL) {
  1341.                 goto __catch18_g_error;
  1342.             }
  1343. #line 473 "ui-cairo-gtk.vala"
  1344.             gtk_image_set_from_gicon (self->priv->main_image, icon, GTK_ICON_SIZE_DIALOG);
  1345. #line 1346 "ui-cairo-gtk.c"
  1346.             _g_object_unref0 (icon);
  1347.         }
  1348.         goto __finally18;
  1349.         __catch18_g_error:
  1350.         {
  1351.             GError * err;
  1352.             err = _inner_error_;
  1353.             _inner_error_ = NULL;
  1354.             {
  1355. #line 477 "ui-cairo-gtk.vala"
  1356.                 gtk_image_set_from_icon_name (self->priv->main_image, "missing-image", GTK_ICON_SIZE_DIALOG);
  1357. #line 1358 "ui-cairo-gtk.c"
  1358.                 _g_error_free0 (err);
  1359.             }
  1360.         }
  1361.         __finally18:
  1362.         if (_inner_error_ != NULL) {
  1363.             g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  1364.             g_clear_error (&_inner_error_);
  1365.             return;
  1366.         }
  1367. #line 479 "ui-cairo-gtk.vala"
  1368.         gtk_label_set_markup (self->priv->main_label, _tmp2_ = sezen_sezen_window_markup_string_with_search (self, sezen_match_get_title (match), self->priv->_search_string));
  1369. #line 1370 "ui-cairo-gtk.c"
  1370.         _g_free0 (_tmp2_);
  1371. #line 480 "ui-cairo-gtk.vala"
  1372.         gtk_label_set_markup (self->priv->main_label_description, _tmp3_ = sezen_sezen_window_get_description_markup (self, sezen_match_get_description (match)));
  1373. #line 1374 "ui-cairo-gtk.c"
  1374.         _g_free0 (_tmp3_);
  1375.     } else {
  1376.         char* _tmp4_;
  1377.         char* _tmp5_;
  1378. #line 484 "ui-cairo-gtk.vala"
  1379.         gtk_label_set_markup (self->priv->main_label, _tmp4_ = sezen_sezen_window_markup_string_with_search (self, "", self->priv->_search_string));
  1380. #line 1381 "ui-cairo-gtk.c"
  1381.         _g_free0 (_tmp4_);
  1382. #line 485 "ui-cairo-gtk.vala"
  1383.         gtk_label_set_markup (self->priv->main_label_description, _tmp5_ = sezen_sezen_window_get_description_markup (self, "Match not found."));
  1384. #line 1385 "ui-cairo-gtk.c"
  1385.         _g_free0 (_tmp5_);
  1386.     }
  1387. }
  1388.  
  1389.  
  1390. #line 490 "ui-cairo-gtk.vala"
  1391. static glong sezen_sezen_window_strpos (SezenSezenWindow* self, const char* s, const char* find) {
  1392. #line 1393 "ui-cairo-gtk.c"
  1393.     glong result = 0L;
  1394.     char* s2;
  1395. #line 490 "ui-cairo-gtk.vala"
  1396.     g_return_val_if_fail (self != NULL, 0L);
  1397. #line 490 "ui-cairo-gtk.vala"
  1398.     g_return_val_if_fail (s != NULL, 0L);
  1399. #line 490 "ui-cairo-gtk.vala"
  1400.     g_return_val_if_fail (find != NULL, 0L);
  1401. #line 492 "ui-cairo-gtk.vala"
  1402.     s2 = g_strdup (strstr (s, find));
  1403. #line 493 "ui-cairo-gtk.vala"
  1404.     if (s2 == NULL) {
  1405. #line 1406 "ui-cairo-gtk.c"
  1406.         result = (glong) (-1);
  1407.         _g_free0 (s2);
  1408. #line 494 "ui-cairo-gtk.vala"
  1409.         return result;
  1410. #line 1411 "ui-cairo-gtk.c"
  1411.     } else {
  1412.         result = string_get_length (s) - string_get_length (s2);
  1413.         _g_free0 (s2);
  1414. #line 496 "ui-cairo-gtk.vala"
  1415.         return result;
  1416. #line 1417 "ui-cairo-gtk.c"
  1417.     }
  1418.     _g_free0 (s2);
  1419. }
  1420.  
  1421.  
  1422. #line 499 "ui-cairo-gtk.vala"
  1423. static char* sezen_sezen_window_markup_string_with_search (SezenSezenWindow* self, const char* text, const char* pattern) {
  1424. #line 1425 "ui-cairo-gtk.c"
  1425.     char* result = NULL;
  1426.     char* t;
  1427.     char* p;
  1428.     glong pos;
  1429.     char* markup;
  1430.     gint j;
  1431.     gint i;
  1432. #line 499 "ui-cairo-gtk.vala"
  1433.     g_return_val_if_fail (self != NULL, NULL);
  1434. #line 499 "ui-cairo-gtk.vala"
  1435.     g_return_val_if_fail (text != NULL, NULL);
  1436. #line 499 "ui-cairo-gtk.vala"
  1437.     g_return_val_if_fail (pattern != NULL, NULL);
  1438. #line 501 "ui-cairo-gtk.vala"
  1439.     if (_vala_strcmp0 (pattern, "") == 0) {
  1440. #line 1441 "ui-cairo-gtk.c"
  1441.         result = g_markup_printf_escaped ("<span size=\"xx-large\"><b><u>%s</u></b></span>", text);
  1442. #line 503 "ui-cairo-gtk.vala"
  1443.         return result;
  1444. #line 1445 "ui-cairo-gtk.c"
  1445.     }
  1446. #line 506 "ui-cairo-gtk.vala"
  1447.     if (_vala_strcmp0 (text, "") == 0) {
  1448. #line 1449 "ui-cairo-gtk.c"
  1449.         result = g_markup_printf_escaped ("<span size=\"medium\">%s</span>\n" \
  1450. "<span size=\"xx-large\"><b><u> </u></b></span>", pattern);
  1451. #line 508 "ui-cairo-gtk.vala"
  1452.         return result;
  1453. #line 1453 "ui-cairo-gtk.c"
  1454.     }
  1455. #line 510 "ui-cairo-gtk.vala"
  1456.     t = g_utf8_strup (text, -1);
  1457. #line 511 "ui-cairo-gtk.vala"
  1458.     p = g_utf8_strup (pattern, -1);
  1459. #line 514 "ui-cairo-gtk.vala"
  1460.     pos = sezen_sezen_window_strpos (self, t, p);
  1461. #line 515 "ui-cairo-gtk.vala"
  1462.     if (pos >= 0) {
  1463. #line 1463 "ui-cairo-gtk.c"
  1464.         char* _tmp0_;
  1465.         char* _tmp1_;
  1466.         char* _tmp2_;
  1467.         char* _tmp3_;
  1468.         result = (_tmp3_ = g_markup_printf_escaped ("<span size=\"xx-large\">%s<u><b>%s</b></u>%s</span>", _tmp0_ = string_substring (text, (glong) 0, pos), _tmp1_ = string_substring (text, pos, string_get_length (p)), _tmp2_ = string_substring (text, pos + string_get_length (p), -1)), _g_free0 (_tmp2_), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp3_);
  1469.         _g_free0 (p);
  1470.         _g_free0 (t);
  1471. #line 517 "ui-cairo-gtk.vala"
  1472.         return result;
  1473. #line 1473 "ui-cairo-gtk.c"
  1474.     }
  1475. #line 523 "ui-cairo-gtk.vala"
  1476.     markup = g_strdup ("");
  1477. #line 524 "ui-cairo-gtk.vala"
  1478.     j = 0;
  1479. #line 525 "ui-cairo-gtk.vala"
  1480.     i = 0;
  1481. #line 1481 "ui-cairo-gtk.c"
  1482.     {
  1483.         gboolean _tmp4_;
  1484. #line 526 "ui-cairo-gtk.vala"
  1485.         _tmp4_ = TRUE;
  1486. #line 526 "ui-cairo-gtk.vala"
  1487.         while (TRUE) {
  1488. #line 1488 "ui-cairo-gtk.c"
  1489.             gboolean _tmp5_ = FALSE;
  1490. #line 526 "ui-cairo-gtk.vala"
  1491.             if (!_tmp4_) {
  1492. #line 526 "ui-cairo-gtk.vala"
  1493.                 i = i + 1;
  1494. #line 1494 "ui-cairo-gtk.c"
  1495.             }
  1496. #line 526 "ui-cairo-gtk.vala"
  1497.             _tmp4_ = FALSE;
  1498. #line 526 "ui-cairo-gtk.vala"
  1499.             if (i < string_get_length (text)) {
  1500. #line 526 "ui-cairo-gtk.vala"
  1501.                 _tmp5_ = j < string_get_length (pattern);
  1502. #line 1502 "ui-cairo-gtk.c"
  1503.             } else {
  1504. #line 526 "ui-cairo-gtk.vala"
  1505.                 _tmp5_ = FALSE;
  1506. #line 1506 "ui-cairo-gtk.c"
  1507.             }
  1508. #line 526 "ui-cairo-gtk.vala"
  1509.             if (!_tmp5_) {
  1510. #line 526 "ui-cairo-gtk.vala"
  1511.                 break;
  1512. #line 1512 "ui-cairo-gtk.c"
  1513.             }
  1514. #line 528 "ui-cairo-gtk.vala"
  1515.             if (g_utf8_get_char (g_utf8_offset_to_pointer (t, i)) == g_utf8_get_char (g_utf8_offset_to_pointer (p, j))) {
  1516. #line 1516 "ui-cairo-gtk.c"
  1517.                 char* _tmp6_;
  1518.                 char* _tmp7_;
  1519.                 char* _tmp8_;
  1520. #line 530 "ui-cairo-gtk.vala"
  1521.                 markup = (_tmp8_ = g_strconcat (markup, _tmp7_ = g_markup_printf_escaped ("<u><b>%s</b></u>", _tmp6_ = string_substring (text, (glong) i, (glong) 1)), NULL), _g_free0 (markup), _tmp8_);
  1522. #line 1522 "ui-cairo-gtk.c"
  1523.                 _g_free0 (_tmp7_);
  1524.                 _g_free0 (_tmp6_);
  1525. #line 531 "ui-cairo-gtk.vala"
  1526.                 j = j + 1;
  1527. #line 1527 "ui-cairo-gtk.c"
  1528.             } else {
  1529.                 char* _tmp9_;
  1530.                 char* _tmp10_;
  1531. #line 535 "ui-cairo-gtk.vala"
  1532.                 markup = (_tmp10_ = g_strconcat (markup, _tmp9_ = string_substring (text, (glong) i, (glong) 1), NULL), _g_free0 (markup), _tmp10_);
  1533. #line 1533 "ui-cairo-gtk.c"
  1534.                 _g_free0 (_tmp9_);
  1535.             }
  1536.         }
  1537.     }
  1538. #line 538 "ui-cairo-gtk.vala"
  1539.     if (j < string_get_length (pattern)) {
  1540. #line 1540 "ui-cairo-gtk.c"
  1541.         char* _tmp11_;
  1542.         char* _tmp12_;
  1543.         char* _tmp13_;
  1544.         char* _tmp14_;
  1545. #line 540 "ui-cairo-gtk.vala"
  1546.         markup = (_tmp14_ = g_strconcat (_tmp13_ = g_strconcat (_tmp12_ = g_strconcat (_tmp11_ = g_strconcat ("<span size=\"medium\">", pattern, NULL), "</span>\n<span size=\"xx-large\">", NULL), text, NULL), "</span>", NULL), _g_free0 (markup), _tmp14_);
  1547. #line 1547 "ui-cairo-gtk.c"
  1548.         _g_free0 (_tmp13_);
  1549.         _g_free0 (_tmp12_);
  1550.         _g_free0 (_tmp11_);
  1551.     } else {
  1552.         char* _tmp15_;
  1553.         char* _tmp16_;
  1554.         char* _tmp17_;
  1555.         char* _tmp18_;
  1556. #line 544 "ui-cairo-gtk.vala"
  1557.         markup = (_tmp16_ = g_strconcat (markup, _tmp15_ = string_substring (text, (glong) i, -1), NULL), _g_free0 (markup), _tmp16_);
  1558. #line 1558 "ui-cairo-gtk.c"
  1559.         _g_free0 (_tmp15_);
  1560. #line 545 "ui-cairo-gtk.vala"
  1561.         markup = (_tmp18_ = g_strconcat (_tmp17_ = g_strconcat ("<span size=\"xx-large\">", markup, NULL), "</span>", NULL), _g_free0 (markup), _tmp18_);
  1562. #line 1562 "ui-cairo-gtk.c"
  1563.         _g_free0 (_tmp17_);
  1564.     }
  1565.     result = markup;
  1566.     _g_free0 (p);
  1567.     _g_free0 (t);
  1568. #line 548 "ui-cairo-gtk.vala"
  1569.     return result;
  1570. #line 1570 "ui-cairo-gtk.c"
  1571. }
  1572.  
  1573.  
  1574. #line 551 "ui-cairo-gtk.vala"
  1575. static char* sezen_sezen_window_get_description_markup (SezenSezenWindow* self, const char* s) {
  1576. #line 1576 "ui-cairo-gtk.c"
  1577.     char* result = NULL;
  1578.     char* _tmp0_;
  1579.     char* _tmp1_;
  1580. #line 551 "ui-cairo-gtk.vala"
  1581.     g_return_val_if_fail (self != NULL, NULL);
  1582. #line 551 "ui-cairo-gtk.vala"
  1583.     g_return_val_if_fail (s != NULL, NULL);
  1584. #line 1584 "ui-cairo-gtk.c"
  1585.     result = (_tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("<span size=\"medium\"><i>", s, NULL), "</i></span>", NULL), _g_free0 (_tmp0_), _tmp1_);
  1586. #line 553 "ui-cairo-gtk.vala"
  1587.     return result;
  1588. #line 1588 "ui-cairo-gtk.c"
  1589. }
  1590.  
  1591.  
  1592. #line 556 "ui-cairo-gtk.vala"
  1593. void sezen_sezen_window_show_sezen (SezenSezenWindow* self) {
  1594. #line 556 "ui-cairo-gtk.vala"
  1595.     g_return_if_fail (self != NULL);
  1596. #line 558 "ui-cairo-gtk.vala"
  1597.     gtk_widget_show_all ((GtkWidget*) self);
  1598. #line 559 "ui-cairo-gtk.vala"
  1599.     sezen_sezen_window_set_list_visible (self, FALSE);
  1600. #line 1600 "ui-cairo-gtk.c"
  1601. }
  1602.  
  1603.  
  1604. #line 584 "ui-cairo-gtk.vala"
  1605. static void _lambda10_ (guint event_time, Block6Data* _data6_) {
  1606. #line 586 "ui-cairo-gtk.vala"
  1607.     gtk_widget_show ((GtkWidget*) _data6_->window);
  1608. #line 587 "ui-cairo-gtk.vala"
  1609.     gtk_window_present_with_time ((GtkWindow*) _data6_->window, (guint32) event_time);
  1610. #line 1610 "ui-cairo-gtk.c"
  1611. }
  1612.  
  1613.  
  1614. #line 584 "ui-cairo-gtk.vala"
  1615. static void __lambda10__gtk_hotkey_info_activated (GtkHotkeyInfo* _sender, guint p0, gpointer self) {
  1616. #line 1616 "ui-cairo-gtk.c"
  1617.     _lambda10_ (p0, self);
  1618. }
  1619.  
  1620.  
  1621. static Block6Data* block6_data_ref (Block6Data* _data6_) {
  1622.     g_atomic_int_inc (&_data6_->_ref_count_);
  1623.     return _data6_;
  1624. }
  1625.  
  1626.  
  1627. static void block6_data_unref (Block6Data* _data6_) {
  1628.     if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) {
  1629.         _g_object_unref0 (_data6_->window);
  1630.         g_slice_free (Block6Data, _data6_);
  1631.     }
  1632. }
  1633.  
  1634.  
  1635. #line 562 "ui-cairo-gtk.vala"
  1636. gint sezen_sezen_window_main (char** argv, int argv_length1) {
  1637. #line 1637 "ui-cairo-gtk.c"
  1638.     gint result = 0;
  1639.     Block6Data* _data6_;
  1640.     GtkHotkeyRegistry* registry;
  1641.     GtkHotkeyInfo* hotkey;
  1642.     GError * _inner_error_ = NULL;
  1643.     _data6_ = g_slice_new0 (Block6Data);
  1644.     _data6_->_ref_count_ = 1;
  1645. #line 564 "ui-cairo-gtk.vala"
  1646.     gtk_init (&argv_length1, &argv);
  1647. #line 1647 "ui-cairo-gtk.c"
  1648.     _data6_->window = g_object_ref_sink (sezen_sezen_window_new ());
  1649. #line 566 "ui-cairo-gtk.vala"
  1650.     sezen_sezen_window_show_sezen (_data6_->window);
  1651. #line 568 "ui-cairo-gtk.vala"
  1652.     registry = _g_object_ref0 (gtk_hotkey_registry_get_default ());
  1653. #line 1653 "ui-cairo-gtk.c"
  1654.     hotkey = NULL;
  1655.     {
  1656. #line 572 "ui-cairo-gtk.vala"
  1657.         if (gtk_hotkey_registry_has_hotkey (registry, "sezen2", "activate")) {
  1658. #line 1658 "ui-cairo-gtk.c"
  1659.             GtkHotkeyInfo* _tmp0_;
  1660.             GtkHotkeyInfo* _tmp1_;
  1661. #line 574 "ui-cairo-gtk.vala"
  1662.             _tmp0_ = gtk_hotkey_registry_get_hotkey (registry, "sezen2", "activate", &_inner_error_);
  1663. #line 1663 "ui-cairo-gtk.c"
  1664.             if (_inner_error_ != NULL) {
  1665.                 goto __catch19_g_error;
  1666.             }
  1667. #line 574 "ui-cairo-gtk.vala"
  1668.             hotkey = (_tmp1_ = _tmp0_, _g_object_unref0 (hotkey), _tmp1_);
  1669. #line 1669 "ui-cairo-gtk.c"
  1670.         } else {
  1671.             GtkHotkeyInfo* _tmp2_;
  1672. #line 578 "ui-cairo-gtk.vala"
  1673.             hotkey = (_tmp2_ = gtk_hotkey_info_new ("sezen2", "activate", "<Control>space", NULL), _g_object_unref0 (hotkey), _tmp2_);
  1674. #line 580 "ui-cairo-gtk.vala"
  1675.             gtk_hotkey_registry_store_hotkey (registry, hotkey, &_inner_error_);
  1676. #line 1676 "ui-cairo-gtk.c"
  1677.             if (_inner_error_ != NULL) {
  1678.                 goto __catch19_g_error;
  1679.             }
  1680.         }
  1681. #line 582 "ui-cairo-gtk.vala"
  1682.         g_debug ("ui-cairo-gtk.vala:582: Binding activation to %s", gtk_hotkey_info_get_signature (hotkey));
  1683. #line 583 "ui-cairo-gtk.vala"
  1684.         gtk_hotkey_info_bind (hotkey, &_inner_error_);
  1685. #line 1685 "ui-cairo-gtk.c"
  1686.         if (_inner_error_ != NULL) {
  1687.             goto __catch19_g_error;
  1688.         }
  1689. #line 584 "ui-cairo-gtk.vala"
  1690.         g_signal_connect_data (hotkey, "activated", (GCallback) __lambda10__gtk_hotkey_info_activated, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
  1691. #line 1691 "ui-cairo-gtk.c"
  1692.     }
  1693.     goto __finally19;
  1694.     __catch19_g_error:
  1695.     {
  1696.         GError * err;
  1697.         err = _inner_error_;
  1698.         _inner_error_ = NULL;
  1699.         {
  1700. #line 592 "ui-cairo-gtk.vala"
  1701.             g_warning ("ui-cairo-gtk.vala:592: %s", err->message);
  1702. #line 1702 "ui-cairo-gtk.c"
  1703.             _g_error_free0 (err);
  1704.         }
  1705.     }
  1706.     __finally19:
  1707.     if (_inner_error_ != NULL) {
  1708.         _g_object_unref0 (hotkey);
  1709.         _g_object_unref0 (registry);
  1710.         block6_data_unref (_data6_);
  1711.         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  1712.         g_clear_error (&_inner_error_);
  1713.         return 0;
  1714.     }
  1715. #line 595 "ui-cairo-gtk.vala"
  1716.     gtk_main ();
  1717. #line 1717 "ui-cairo-gtk.c"
  1718.     result = 0;
  1719.     _g_object_unref0 (hotkey);
  1720.     _g_object_unref0 (registry);
  1721.     block6_data_unref (_data6_);
  1722. #line 596 "ui-cairo-gtk.vala"
  1723.     return result;
  1724. #line 1724 "ui-cairo-gtk.c"
  1725. }
  1726.  
  1727.  
  1728. #line 562 "ui-cairo-gtk.vala"
  1729. int main (int argc, char ** argv) {
  1730. #line 562 "ui-cairo-gtk.vala"
  1731.     g_type_init ();
  1732. #line 562 "ui-cairo-gtk.vala"
  1733.     return sezen_sezen_window_main (argv, argc);
  1734. #line 1734 "ui-cairo-gtk.c"
  1735. }
  1736.  
  1737.  
  1738. const char* sezen_sezen_window_get_search_string (SezenSezenWindow* self) {
  1739.     const char* result;
  1740.     g_return_val_if_fail (self != NULL, NULL);
  1741.     result = self->priv->_search_string;
  1742. #line 436 "ui-cairo-gtk.vala"
  1743.     return result;
  1744. #line 1744 "ui-cairo-gtk.c"
  1745. }
  1746.  
  1747.  
  1748. static void sezen_sezen_window_set_search_string (SezenSezenWindow* self, const char* value) {
  1749.     char* _tmp0_;
  1750.     g_return_if_fail (self != NULL);
  1751.     self->priv->_search_string = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_search_string), _tmp0_);
  1752.     g_object_notify ((GObject *) self, "search-string");
  1753. }
  1754.  
  1755.  
  1756. #line 438 "ui-cairo-gtk.vala"
  1757. static void _sezen_sezen_window_search_add_char_gtk_im_context_commit (GtkIMContext* _sender, const char* str, gpointer self) {
  1758. #line 1758 "ui-cairo-gtk.c"
  1759.     sezen_sezen_window_search_add_char (self, str);
  1760. }
  1761.  
  1762.  
  1763. #line 406 "ui-cairo-gtk.vala"
  1764. static void _sezen_sezen_window_search_ready_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
  1765. #line 1765 "ui-cairo-gtk.c"
  1766.     sezen_sezen_window_search_ready (self, source_object, res);
  1767.     g_object_unref (self);
  1768. }
  1769.  
  1770.  
  1771. #line 384 "ui-cairo-gtk.vala"
  1772. static void _lambda11_ (SezenSezenWindow* self) {
  1773. #line 1773 "ui-cairo-gtk.c"
  1774.     gboolean _tmp0_ = FALSE;
  1775.     gboolean search_empty;
  1776. #line 386 "ui-cairo-gtk.vala"
  1777.     if (self->priv->_search_string == NULL) {
  1778. #line 386 "ui-cairo-gtk.vala"
  1779.         _tmp0_ = TRUE;
  1780. #line 1780 "ui-cairo-gtk.c"
  1781.     } else {
  1782. #line 386 "ui-cairo-gtk.vala"
  1783.         _tmp0_ = _vala_strcmp0 (self->priv->_search_string, "") == 0;
  1784. #line 1784 "ui-cairo-gtk.c"
  1785.     }
  1786. #line 386 "ui-cairo-gtk.vala"
  1787.     search_empty = _tmp0_;
  1788. #line 388 "ui-cairo-gtk.vala"
  1789.     sezen_data_sink_cancel_search (self->priv->data_sink);
  1790. #line 390 "ui-cairo-gtk.vala"
  1791.     if (!search_empty) {
  1792. #line 392 "ui-cairo-gtk.vala"
  1793.         sezen_data_sink_search (self->priv->data_sink, self->priv->_search_string, self->priv->categories_query[sezen_sezen_type_selector_get_selected (self->priv->sts)], _sezen_sezen_window_search_ready_gasync_ready_callback, g_object_ref (self));
  1794. #line 1794 "ui-cairo-gtk.c"
  1795.     } else {
  1796.         char* _tmp1_;
  1797.         char* _tmp2_;
  1798. #line 397 "ui-cairo-gtk.vala"
  1799.         sezen_result_box_update_matches (self->priv->result_box, NULL);
  1800. #line 398 "ui-cairo-gtk.vala"
  1801.         sezen_sezen_window_set_list_visible (self, FALSE);
  1802. #line 399 "ui-cairo-gtk.vala"
  1803.         gtk_image_set_from_icon_name (self->priv->main_image, "search", GTK_ICON_SIZE_DIALOG);
  1804. #line 400 "ui-cairo-gtk.vala"
  1805.         gtk_label_set_markup (self->priv->main_label, _tmp1_ = sezen_sezen_window_markup_string_with_search (self, " ", " "));
  1806. #line 1806 "ui-cairo-gtk.c"
  1807.         _g_free0 (_tmp1_);
  1808. #line 401 "ui-cairo-gtk.vala"
  1809.         gtk_label_set_markup (self->priv->main_label_description, _tmp2_ = sezen_sezen_window_get_description_markup (self, "Type to search..."));
  1810. #line 1810 "ui-cairo-gtk.c"
  1811.         _g_free0 (_tmp2_);
  1812.     }
  1813. }
  1814.  
  1815.  
  1816. #line 384 "ui-cairo-gtk.vala"
  1817. static void __lambda11__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
  1818. #line 1818 "ui-cairo-gtk.c"
  1819.     _lambda11_ (self);
  1820. }
  1821.  
  1822.  
  1823. static GObject * sezen_sezen_window_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
  1824.     GObject * obj;
  1825.     GObjectClass * parent_class;
  1826.     SezenSezenWindow * self;
  1827.     parent_class = G_OBJECT_CLASS (sezen_sezen_window_parent_class);
  1828.     obj = parent_class->constructor (type, n_construct_properties, construct_properties);
  1829.     self = SEZEN_SEZEN_WINDOW (obj);
  1830.     {
  1831.         SezenDataSink* _tmp2_;
  1832.         GtkIMContext* _tmp3_;
  1833. #line 374 "ui-cairo-gtk.vala"
  1834.         self->priv->data_sink = (_tmp2_ = sezen_data_sink_new (), _g_object_unref0 (self->priv->data_sink), _tmp2_);
  1835. #line 376 "ui-cairo-gtk.vala"
  1836.         gtk_window_set_decorated ((GtkWindow*) self, FALSE);
  1837. #line 377 "ui-cairo-gtk.vala"
  1838.         gtk_window_set_resizable ((GtkWindow*) self, FALSE);
  1839. #line 379 "ui-cairo-gtk.vala"
  1840.         self->priv->im_context = (_tmp3_ = (GtkIMContext*) ((GtkIMMulticontext*) gtk_im_multicontext_new ()), _g_object_unref0 (self->priv->im_context), _tmp3_);
  1841. #line 380 "ui-cairo-gtk.vala"
  1842.         gtk_im_context_set_use_preedit (self->priv->im_context, FALSE);
  1843. #line 381 "ui-cairo-gtk.vala"
  1844.         g_signal_connect_object (self->priv->im_context, "commit", (GCallback) _sezen_sezen_window_search_add_char_gtk_im_context_commit, self, 0);
  1845. #line 382 "ui-cairo-gtk.vala"
  1846.         gtk_im_context_focus_in (self->priv->im_context);
  1847. #line 384 "ui-cairo-gtk.vala"
  1848.         g_signal_connect_object ((GObject*) self, "notify::search-string", (GCallback) __lambda11__g_object_notify, self, 0);
  1849. #line 1849 "ui-cairo-gtk.c"
  1850.     }
  1851.     return obj;
  1852. }
  1853.  
  1854.  
  1855. static void sezen_sezen_window_class_init (SezenSezenWindowClass * klass) {
  1856.     sezen_sezen_window_parent_class = g_type_class_peek_parent (klass);
  1857.     g_type_class_add_private (klass, sizeof (SezenSezenWindowPrivate));
  1858.     GTK_WIDGET_CLASS (klass)->key_press_event = sezen_sezen_window_real_key_press_event;
  1859.     G_OBJECT_CLASS (klass)->get_property = sezen_sezen_window_get_property;
  1860.     G_OBJECT_CLASS (klass)->set_property = sezen_sezen_window_set_property;
  1861.     G_OBJECT_CLASS (klass)->constructor = sezen_sezen_window_constructor;
  1862.     G_OBJECT_CLASS (klass)->finalize = sezen_sezen_window_finalize;
  1863.     g_object_class_install_property (G_OBJECT_CLASS (klass), SEZEN_SEZEN_WINDOW_SEARCH_STRING, g_param_spec_string ("search-string", "search-string", "search-string", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
  1864. }
  1865.  
  1866.  
  1867. static void sezen_sezen_window_instance_init (SezenSezenWindow * self) {
  1868.     char** _tmp0_ = NULL;
  1869.     SezenQueryFlags* _tmp1_ = NULL;
  1870.     self->priv = SEZEN_SEZEN_WINDOW_GET_PRIVATE (self);
  1871.     self->priv->categories = (_tmp0_ = g_new0 (char*, 8 + 1), _tmp0_[0] = g_strdup ("All"), _tmp0_[1] = g_strdup ("Applications"), _tmp0_[2] = g_strdup ("Actions"), _tmp0_[3] = g_strdup ("Audio"), _tmp0_[4] = g_strdup ("Video"), _tmp0_[5] = g_strdup ("Documents"), _tmp0_[6] = g_strdup ("Images"), _tmp0_[7] = g_strdup ("Internet"), _tmp0_);
  1872.     self->priv->categories_length1 = 8;
  1873.     self->priv->_categories_size_ = self->priv->categories_length1;
  1874.     self->priv->categories_query = (_tmp1_ = g_new0 (SezenQueryFlags, 8), _tmp1_[0] = SEZEN_QUERY_FLAGS_ALL, _tmp1_[1] = SEZEN_QUERY_FLAGS_APPLICATIONS, _tmp1_[2] = SEZEN_QUERY_FLAGS_ACTIONS, _tmp1_[3] = SEZEN_QUERY_FLAGS_AUDIO, _tmp1_[4] = SEZEN_QUERY_FLAGS_VIDEO, _tmp1_[5] = SEZEN_QUERY_FLAGS_DOCUMENTS, _tmp1_[6] = SEZEN_QUERY_FLAGS_IMAGES, _tmp1_[7] = SEZEN_QUERY_FLAGS_INTERNET, _tmp1_);
  1875.     self->priv->categories_query_length1 = 8;
  1876.     self->priv->_categories_query_size_ = self->priv->categories_query_length1;
  1877.     self->priv->list_visible = TRUE;
  1878.     self->priv->_search_string = g_strdup ("");
  1879.     self->priv->current_match = NULL;
  1880. }
  1881.  
  1882.  
  1883. static void sezen_sezen_window_finalize (GObject* obj) {
  1884.     SezenSezenWindow * self;
  1885.     self = SEZEN_SEZEN_WINDOW (obj);
  1886.     self->priv->categories = (_vala_array_free (self->priv->categories, self->priv->categories_length1, (GDestroyNotify) g_free), NULL);
  1887.     self->priv->categories_query = (g_free (self->priv->categories_query), NULL);
  1888.     _g_object_unref0 (self->priv->cat_label);
  1889.     _g_object_unref0 (self->priv->main_image);
  1890.     _g_object_unref0 (self->priv->main_label);
  1891.     _g_object_unref0 (self->priv->main_label_description);
  1892.     _g_object_unref0 (self->priv->action_image);
  1893.     _g_object_unref0 (self->priv->action_label);
  1894.     _g_object_unref0 (self->priv->sts);
  1895.     _g_object_unref0 (self->priv->result_box);
  1896.     _g_object_unref0 (self->priv->list_hbox);
  1897.     _g_object_unref0 (self->priv->top_hbox);
  1898.     _g_object_unref0 (self->priv->im_context);
  1899.     _g_object_unref0 (self->priv->data_sink);
  1900.     _g_object_unref0 (self->priv->results);
  1901.     _g_free0 (self->priv->_search_string);
  1902.     _g_object_unref0 (self->priv->current_match);
  1903.     G_OBJECT_CLASS (sezen_sezen_window_parent_class)->finalize (obj);
  1904. }
  1905.  
  1906.  
  1907. GType sezen_sezen_window_get_type (void) {
  1908.     static volatile gsize sezen_sezen_window_type_id__volatile = 0;
  1909.     if (g_once_init_enter (&sezen_sezen_window_type_id__volatile)) {
  1910.         static const GTypeInfo g_define_type_info = { sizeof (SezenSezenWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sezen_sezen_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SezenSezenWindow), 0, (GInstanceInitFunc) sezen_sezen_window_instance_init, NULL };
  1911.         GType sezen_sezen_window_type_id;
  1912.         sezen_sezen_window_type_id = g_type_register_static (GTK_TYPE_WINDOW, "SezenSezenWindow", &g_define_type_info, 0);
  1913.         g_once_init_leave (&sezen_sezen_window_type_id__volatile, sezen_sezen_window_type_id);
  1914.     }
  1915.     return sezen_sezen_window_type_id__volatile;
  1916. }
  1917.  
  1918.  
  1919. static void sezen_sezen_window_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
  1920.     SezenSezenWindow * self;
  1921.     self = SEZEN_SEZEN_WINDOW (object);
  1922.     switch (property_id) {
  1923.         case SEZEN_SEZEN_WINDOW_SEARCH_STRING:
  1924.         g_value_set_string (value, sezen_sezen_window_get_search_string (self));
  1925.         break;
  1926.         default:
  1927.         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
  1928.         break;
  1929.     }
  1930. }
  1931.  
  1932.  
  1933. static void sezen_sezen_window_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
  1934.     SezenSezenWindow * self;
  1935.     self = SEZEN_SEZEN_WINDOW (object);
  1936.     switch (property_id) {
  1937.         case SEZEN_SEZEN_WINDOW_SEARCH_STRING:
  1938.         sezen_sezen_window_set_search_string (self, g_value_get_string (value));
  1939.         break;
  1940.         default:
  1941.         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
  1942.         break;
  1943.     }
  1944. }
  1945.  
  1946.  
  1947. static char** _vala_array_dup2 (char** self, int length) {
  1948.     char** result;
  1949.     int i;
  1950.     result = g_new0 (char*, length + 1);
  1951.     for (i = 0; i < length; i++) {
  1952.         result[i] = g_strdup (self[i]);
  1953.     }
  1954.     return result;
  1955. }
  1956.  
  1957.  
  1958. #line 607 "ui-cairo-gtk.vala"
  1959. SezenSezenTypeSelector* sezen_sezen_type_selector_construct (GType object_type, char** types_array, int types_array_length1) {
  1960. #line 1960 "ui-cairo-gtk.c"
  1961.     SezenSezenTypeSelector * self;
  1962.     char** _tmp0_;
  1963.     char** _tmp1_;
  1964.     gint _tmp2_;
  1965.     self = g_object_newv (object_type, 0, NULL);
  1966. #line 609 "ui-cairo-gtk.vala"
  1967.     self->priv->types = (_tmp1_ = (_tmp0_ = types_array, (_tmp0_ == NULL) ? ((gpointer) _tmp0_) : _vala_array_dup2 (_tmp0_, types_array_length1)), self->priv->types = (_vala_array_free (self->priv->types, self->priv->types_length1, (GDestroyNotify) g_free), NULL), self->priv->types_length1 = types_array_length1, self->priv->_types_size_ = self->priv->types_length1, _tmp1_);
  1968. #line 610 "ui-cairo-gtk.vala"
  1969.     _tmp2_ = self->priv->types_length1;
  1970. #line 610 "ui-cairo-gtk.vala"
  1971.     self->priv->lens = g_renew (gint, self->priv->lens, self->priv->types_length1);
  1972. #line 610 "ui-cairo-gtk.vala"
  1973.     (_tmp2_ > self->priv->lens_length1) ? memset (self->priv->lens + self->priv->lens_length1, 0, sizeof (gint) * (_tmp2_ - self->priv->lens_length1)) : NULL;
  1974. #line 610 "ui-cairo-gtk.vala"
  1975.     self->priv->lens_length1 = _tmp2_;
  1976. #line 611 "ui-cairo-gtk.vala"
  1977.     gtk_label_set_markup ((GtkLabel*) self, "");
  1978. #line 612 "ui-cairo-gtk.vala"
  1979.     gtk_misc_set_alignment ((GtkMisc*) self, (float) 0, (float) 0);
  1980. #line 613 "ui-cairo-gtk.vala"
  1981.     gtk_label_set_ellipsize ((GtkLabel*) self, PANGO_ELLIPSIZE_END);
  1982. #line 614 "ui-cairo-gtk.vala"
  1983.     sezen_sezen_type_selector_set_selected (self, 0);
  1984. #line 1984 "ui-cairo-gtk.c"
  1985.     return self;
  1986. }
  1987.  
  1988.  
  1989. #line 607 "ui-cairo-gtk.vala"
  1990. SezenSezenTypeSelector* sezen_sezen_type_selector_new (char** types_array, int types_array_length1) {
  1991. #line 607 "ui-cairo-gtk.vala"
  1992.     return sezen_sezen_type_selector_construct (SEZEN_TYPE_SEZEN_TYPE_SELECTOR, types_array, types_array_length1);
  1993. #line 1993 "ui-cairo-gtk.c"
  1994. }
  1995.  
  1996.  
  1997. #line 617 "ui-cairo-gtk.vala"
  1998. void sezen_sezen_type_selector_select_next (SezenSezenTypeSelector* self) {
  1999. #line 617 "ui-cairo-gtk.vala"
  2000.     g_return_if_fail (self != NULL);
  2001. #line 619 "ui-cairo-gtk.vala"
  2002.     sezen_sezen_type_selector_set_selected (self, self->priv->selected + 1);
  2003. #line 2003 "ui-cairo-gtk.c"
  2004. }
  2005.  
  2006.  
  2007. #line 622 "ui-cairo-gtk.vala"
  2008. void sezen_sezen_type_selector_select_prev (SezenSezenTypeSelector* self) {
  2009. #line 622 "ui-cairo-gtk.vala"
  2010.     g_return_if_fail (self != NULL);
  2011. #line 624 "ui-cairo-gtk.vala"
  2012.     sezen_sezen_type_selector_set_selected (self, self->priv->selected - 1);
  2013. #line 2013 "ui-cairo-gtk.c"
  2014. }
  2015.  
  2016.  
  2017. #line 627 "ui-cairo-gtk.vala"
  2018. gint sezen_sezen_type_selector_get_selected (SezenSezenTypeSelector* self) {
  2019. #line 2019 "ui-cairo-gtk.c"
  2020.     gint result = 0;
  2021. #line 627 "ui-cairo-gtk.vala"
  2022.     g_return_val_if_fail (self != NULL, 0);
  2023. #line 2023 "ui-cairo-gtk.c"
  2024.     result = self->priv->selected;
  2025. #line 629 "ui-cairo-gtk.vala"
  2026.     return result;
  2027. #line 2027 "ui-cairo-gtk.c"
  2028. }
  2029.  
  2030.  
  2031. #line 632 "ui-cairo-gtk.vala"
  2032. void sezen_sezen_type_selector_set_selected (SezenSezenTypeSelector* self, gint sel) {
  2033. #line 2033 "ui-cairo-gtk.c"
  2034.     gint i;
  2035.     gint j;
  2036.     char* s;
  2037. #line 632 "ui-cairo-gtk.vala"
  2038.     g_return_if_fail (self != NULL);
  2039. #line 634 "ui-cairo-gtk.vala"
  2040.     i = 0;
  2041. #line 634 "ui-cairo-gtk.vala"
  2042.     j = 0;
  2043. #line 635 "ui-cairo-gtk.vala"
  2044.     if (sel < 0) {
  2045. #line 636 "ui-cairo-gtk.vala"
  2046.         sel = self->priv->types_length1 - 1;
  2047. #line 2047 "ui-cairo-gtk.c"
  2048.     } else {
  2049. #line 637 "ui-cairo-gtk.vala"
  2050.         if (sel >= self->priv->types_length1) {
  2051. #line 638 "ui-cairo-gtk.vala"
  2052.             sel = 0;
  2053. #line 2053 "ui-cairo-gtk.c"
  2054.         }
  2055.     }
  2056. #line 640 "ui-cairo-gtk.vala"
  2057.     s = g_markup_printf_escaped ("<span size=\"large\">Search Type: > <b>%s</b> <</span>", self->priv->types[sel]);
  2058. #line 642 "ui-cairo-gtk.vala"
  2059.     self->priv->selected = sel;
  2060. #line 643 "ui-cairo-gtk.vala"
  2061.     gtk_label_set_markup ((GtkLabel*) self, s);
  2062. #line 644 "ui-cairo-gtk.vala"
  2063.     gtk_widget_queue_draw ((GtkWidget*) self);
  2064. #line 2064 "ui-cairo-gtk.c"
  2065.     _g_free0 (s);
  2066. }
  2067.  
  2068.  
  2069. static void sezen_sezen_type_selector_class_init (SezenSezenTypeSelectorClass * klass) {
  2070.     sezen_sezen_type_selector_parent_class = g_type_class_peek_parent (klass);
  2071.     g_type_class_add_private (klass, sizeof (SezenSezenTypeSelectorPrivate));
  2072.     G_OBJECT_CLASS (klass)->finalize = sezen_sezen_type_selector_finalize;
  2073. }
  2074.  
  2075.  
  2076. static void sezen_sezen_type_selector_instance_init (SezenSezenTypeSelector * self) {
  2077.     self->priv = SEZEN_SEZEN_TYPE_SELECTOR_GET_PRIVATE (self);
  2078.     self->priv->selected = 0;
  2079. }
  2080.  
  2081.  
  2082. static void sezen_sezen_type_selector_finalize (GObject* obj) {
  2083.     SezenSezenTypeSelector * self;
  2084.     self = SEZEN_SEZEN_TYPE_SELECTOR (obj);
  2085.     self->priv->types = (_vala_array_free (self->priv->types, self->priv->types_length1, (GDestroyNotify) g_free), NULL);
  2086.     self->priv->lens = (g_free (self->priv->lens), NULL);
  2087.     G_OBJECT_CLASS (sezen_sezen_type_selector_parent_class)->finalize (obj);
  2088. }
  2089.  
  2090.  
  2091. GType sezen_sezen_type_selector_get_type (void) {
  2092.     static volatile gsize sezen_sezen_type_selector_type_id__volatile = 0;
  2093.     if (g_once_init_enter (&sezen_sezen_type_selector_type_id__volatile)) {
  2094.         static const GTypeInfo g_define_type_info = { sizeof (SezenSezenTypeSelectorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sezen_sezen_type_selector_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SezenSezenTypeSelector), 0, (GInstanceInitFunc) sezen_sezen_type_selector_instance_init, NULL };
  2095.         GType sezen_sezen_type_selector_type_id;
  2096.         sezen_sezen_type_selector_type_id = g_type_register_static (GTK_TYPE_LABEL, "SezenSezenTypeSelector", &g_define_type_info, 0);
  2097.         g_once_init_leave (&sezen_sezen_type_selector_type_id__volatile, sezen_sezen_type_selector_type_id);
  2098.     }
  2099.     return sezen_sezen_type_selector_type_id__volatile;
  2100. }
  2101.  
  2102.  
  2103. static GType sezen_result_box_column_get_type (void) {
  2104.     static volatile gsize sezen_result_box_column_type_id__volatile = 0;
  2105.     if (g_once_init_enter (&sezen_result_box_column_type_id__volatile)) {
  2106.         static const GEnumValue values[] = {{SEZEN_RESULT_BOX_COLUMN_IconColumn, "SEZEN_RESULT_BOX_COLUMN_IconColumn", "iconcolumn"}, {SEZEN_RESULT_BOX_COLUMN_NameColumn, "SEZEN_RESULT_BOX_COLUMN_NameColumn", "namecolumn"}, {0, NULL, NULL}};
  2107.         GType sezen_result_box_column_type_id;
  2108.         sezen_result_box_column_type_id = g_enum_register_static ("SezenResultBoxColumn", values);
  2109.         g_once_init_leave (&sezen_result_box_column_type_id__volatile, sezen_result_box_column_type_id);
  2110.     }
  2111.     return sezen_result_box_column_type_id__volatile;
  2112. }
  2113.  
  2114.  
  2115. #line 655 "ui-cairo-gtk.vala"
  2116. SezenResultBox* sezen_result_box_construct (GType object_type, gint width) {
  2117. #line 2117 "ui-cairo-gtk.c"
  2118.     SezenResultBox * self;
  2119.     self = g_object_newv (object_type, 0, NULL);
  2120. #line 657 "ui-cairo-gtk.vala"
  2121.     self->priv->mwidth = width;
  2122. #line 658 "ui-cairo-gtk.vala"
  2123.     self->priv->no_results = TRUE;
  2124. #line 659 "ui-cairo-gtk.vala"
  2125.     sezen_result_box_build_ui (self);
  2126. #line 2126 "ui-cairo-gtk.c"
  2127.     return self;
  2128. }
  2129.  
  2130.  
  2131. #line 655 "ui-cairo-gtk.vala"
  2132. SezenResultBox* sezen_result_box_new (gint width) {
  2133. #line 655 "ui-cairo-gtk.vala"
  2134.     return sezen_result_box_construct (SEZEN_TYPE_RESULT_BOX, width);
  2135. #line 2135 "ui-cairo-gtk.c"
  2136. }
  2137.  
  2138.  
  2139. #line 670 "ui-cairo-gtk.vala"
  2140. static void sezen_result_box_build_ui (SezenResultBox* self) {
  2141. #line 2141 "ui-cairo-gtk.c"
  2142.     GtkVBox* vbox;
  2143.     GtkScrolledWindow* resultsScrolledWindow;
  2144.     GtkTreeView* _tmp0_;
  2145.     GtkListStore* _tmp1_;
  2146.     GtkTreeViewColumn* column;
  2147.     GtkCellRendererPixbuf* crp;
  2148.     GtkCellRendererText* ctxt;
  2149. #line 670 "ui-cairo-gtk.vala"
  2150.     g_return_if_fail (self != NULL);
  2151. #line 672 "ui-cairo-gtk.vala"
  2152.     gtk_widget_set_sensitive ((GtkWidget*) self, FALSE);
  2153. #line 673 "ui-cairo-gtk.vala"
  2154.     vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
  2155. #line 674 "ui-cairo-gtk.vala"
  2156.     gtk_container_set_border_width ((GtkContainer*) vbox, (guint) 1);
  2157. #line 675 "ui-cairo-gtk.vala"
  2158.     gtk_container_add ((GtkContainer*) self, (GtkWidget*) vbox);
  2159. #line 676 "ui-cairo-gtk.vala"
  2160.     resultsScrolledWindow = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
  2161. #line 677 "ui-cairo-gtk.vala"
  2162.     gtk_scrolled_window_set_policy (resultsScrolledWindow, GTK_POLICY_NEVER, GTK_POLICY_NEVER);
  2163. #line 678 "ui-cairo-gtk.vala"
  2164.     gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) resultsScrolledWindow, TRUE, TRUE, 0);
  2165. #line 680 "ui-cairo-gtk.vala"
  2166.     self->priv->view = (_tmp0_ = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ()), _g_object_unref0 (self->priv->view), _tmp0_);
  2167. #line 681 "ui-cairo-gtk.vala"
  2168.     gtk_tree_view_set_enable_search (self->priv->view, FALSE);
  2169. #line 682 "ui-cairo-gtk.vala"
  2170.     gtk_tree_view_set_headers_visible (self->priv->view, FALSE);
  2171. #line 685 "ui-cairo-gtk.vala"
  2172.     gtk_tree_view_set_fixed_height_mode (self->priv->view, TRUE);
  2173. #line 686 "ui-cairo-gtk.vala"
  2174.     gtk_container_add ((GtkContainer*) resultsScrolledWindow, (GtkWidget*) self->priv->view);
  2175. #line 687 "ui-cairo-gtk.vala"
  2176.     gtk_widget_show ((GtkWidget*) self->priv->view);
  2177. #line 689 "ui-cairo-gtk.vala"
  2178.     gtk_tree_view_set_model (self->priv->view, (GtkTreeModel*) (self->priv->results = (_tmp1_ = gtk_list_store_new (2, G_TYPE_ICON, G_TYPE_STRING), _g_object_unref0 (self->priv->results), _tmp1_)));
  2179. #line 691 "ui-cairo-gtk.vala"
  2180.     column = g_object_ref_sink (gtk_tree_view_column_new ());
  2181. #line 692 "ui-cairo-gtk.vala"
  2182.     gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);
  2183. #line 694 "ui-cairo-gtk.vala"
  2184.     crp = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ());
  2185. #line 695 "ui-cairo-gtk.vala"
  2186.     gtk_cell_renderer_set_fixed_size ((GtkCellRenderer*) crp, SEZEN_RESULT_BOX_ICON_SIZE, SEZEN_RESULT_BOX_ICON_SIZE);
  2187. #line 696 "ui-cairo-gtk.vala"
  2188.     g_object_set (crp, "stock-size", (guint) GTK_ICON_SIZE_DND, NULL);
  2189. #line 697 "ui-cairo-gtk.vala"
  2190.     gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) crp, FALSE);
  2191. #line 698 "ui-cairo-gtk.vala"
  2192.     gtk_cell_layout_add_attribute ((GtkCellLayout*) column, (GtkCellRenderer*) crp, "gicon", (gint) SEZEN_RESULT_BOX_COLUMN_IconColumn);
  2193. #line 700 "ui-cairo-gtk.vala"
  2194.     ctxt = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ());
  2195. #line 701 "ui-cairo-gtk.vala"
  2196.     g_object_set (ctxt, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
  2197. #line 702 "ui-cairo-gtk.vala"
  2198.     gtk_cell_renderer_set_fixed_size ((GtkCellRenderer*) ctxt, self->priv->mwidth - SEZEN_RESULT_BOX_ICON_SIZE, SEZEN_RESULT_BOX_ICON_SIZE);
  2199. #line 703 "ui-cairo-gtk.vala"
  2200.     gtk_cell_layout_pack_start ((GtkCellLayout*) column, (GtkCellRenderer*) ctxt, FALSE);
  2201. #line 704 "ui-cairo-gtk.vala"
  2202.     gtk_cell_layout_add_attribute ((GtkCellLayout*) column, (GtkCellRenderer*) ctxt, "markup", (gint) SEZEN_RESULT_BOX_COLUMN_NameColumn);
  2203. #line 706 "ui-cairo-gtk.vala"
  2204.     gtk_tree_view_append_column (self->priv->view, column);
  2205. #line 2205 "ui-cairo-gtk.c"
  2206.     _g_object_unref0 (ctxt);
  2207.     _g_object_unref0 (crp);
  2208.     _g_object_unref0 (column);
  2209.     _g_object_unref0 (resultsScrolledWindow);
  2210.     _g_object_unref0 (vbox);
  2211. }
  2212.  
  2213.  
  2214. #line 708 "ui-cairo-gtk.vala"
  2215. void sezen_result_box_update_matches (SezenResultBox* self, GeeList* rs) {
  2216. #line 2216 "ui-cairo-gtk.c"
  2217.     GtkTreeIter iter = {0};
  2218.     GtkTreeSelection* sel;
  2219.     GtkTreePath* _tmp2_;
  2220.     GError * _inner_error_ = NULL;
  2221. #line 708 "ui-cairo-gtk.vala"
  2222.     g_return_if_fail (self != NULL);
  2223. #line 710 "ui-cairo-gtk.vala"
  2224.     gtk_list_store_clear (self->priv->results);
  2225. #line 711 "ui-cairo-gtk.vala"
  2226.     if (rs == NULL) {
  2227. #line 713 "ui-cairo-gtk.vala"
  2228.         self->priv->no_results = TRUE;
  2229. #line 714 "ui-cairo-gtk.vala"
  2230.         return;
  2231. #line 2231 "ui-cairo-gtk.c"
  2232.     }
  2233. #line 716 "ui-cairo-gtk.vala"
  2234.     self->priv->no_results = FALSE;
  2235. #line 2235 "ui-cairo-gtk.c"
  2236.     {
  2237.         GeeIterator* _m_it;
  2238. #line 718 "ui-cairo-gtk.vala"
  2239.         _m_it = gee_iterable_iterator ((GeeIterable*) rs);
  2240. #line 718 "ui-cairo-gtk.vala"
  2241.         while (TRUE) {
  2242. #line 2242 "ui-cairo-gtk.c"
  2243.             SezenMatch* m;
  2244.             GIcon* _tmp0_;
  2245.             char* _tmp1_;
  2246. #line 718 "ui-cairo-gtk.vala"
  2247.             if (!gee_iterator_next (_m_it)) {
  2248. #line 718 "ui-cairo-gtk.vala"
  2249.                 break;
  2250. #line 2250 "ui-cairo-gtk.c"
  2251.             }
  2252. #line 718 "ui-cairo-gtk.vala"
  2253.             m = (SezenMatch*) gee_iterator_get (_m_it);
  2254. #line 720 "ui-cairo-gtk.vala"
  2255.             gtk_list_store_append (self->priv->results, &iter);
  2256. #line 721 "ui-cairo-gtk.vala"
  2257.             _tmp0_ = g_icon_new_for_string (sezen_match_get_icon_name (m), &_inner_error_);
  2258. #line 2258 "ui-cairo-gtk.c"
  2259.             if (_inner_error_ != NULL) {
  2260.                 _g_object_unref0 (m);
  2261.                 _g_object_unref0 (_m_it);
  2262.                 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  2263.                 g_clear_error (&_inner_error_);
  2264.                 return;
  2265.             }
  2266. #line 721 "ui-cairo-gtk.vala"
  2267.             gtk_list_store_set (self->priv->results, &iter, SEZEN_RESULT_BOX_COLUMN_IconColumn, _tmp0_, SEZEN_RESULT_BOX_COLUMN_NameColumn, _tmp1_ = g_markup_printf_escaped ("<span><b>%s</b></span>\n<span size=\"small\">%s</span>", sezen_match_get_title (m), sezen_match_get_description (m)), -1);
  2268. #line 2268 "ui-cairo-gtk.c"
  2269.             _g_free0 (_tmp1_);
  2270.             _g_object_unref0 (m);
  2271.         }
  2272.         _g_object_unref0 (_m_it);
  2273.     }
  2274. #line 724 "ui-cairo-gtk.vala"
  2275.     sel = _g_object_ref0 (gtk_tree_view_get_selection (self->priv->view));
  2276. #line 725 "ui-cairo-gtk.vala"
  2277.     gtk_tree_selection_select_path (sel, _tmp2_ = gtk_tree_path_new_first ());
  2278. #line 2278 "ui-cairo-gtk.c"
  2279.     _gtk_tree_path_free0 (_tmp2_);
  2280.     _g_object_unref0 (sel);
  2281. }
  2282.  
  2283.  
  2284. static gpointer _gtk_tree_path_copy0 (gpointer self) {
  2285.     return self ? gtk_tree_path_copy (self) : NULL;
  2286. }
  2287.  
  2288.  
  2289. static void _g_list_free_gtk_tree_path_free (GList* self) {
  2290.     g_list_foreach (self, (GFunc) gtk_tree_path_free, NULL);
  2291.     g_list_free (self);
  2292. }
  2293.  
  2294.  
  2295. #line 751 "ui-cairo-gtk.vala"
  2296. static gboolean _lambda9_ (Block7Data* _data7_) {
  2297. #line 2297 "ui-cairo-gtk.c"
  2298.     SezenResultBox * self;
  2299.     gboolean result = FALSE;
  2300.     self = _data7_->self;
  2301. #line 752 "ui-cairo-gtk.vala"
  2302.     gtk_tree_selection_unselect_all (_data7_->sel);
  2303. #line 753 "ui-cairo-gtk.vala"
  2304.     gtk_tree_selection_select_path (_data7_->sel, _data7_->path);
  2305. #line 754 "ui-cairo-gtk.vala"
  2306.     gtk_tree_view_scroll_to_cell (self->priv->view, _data7_->path, NULL, TRUE, 0.5F, 0.0F);
  2307. #line 2307 "ui-cairo-gtk.c"
  2308.     result = FALSE;
  2309. #line 755 "ui-cairo-gtk.vala"
  2310.     return result;
  2311. #line 2311 "ui-cairo-gtk.c"
  2312. }
  2313.  
  2314.  
  2315. #line 751 "ui-cairo-gtk.vala"
  2316. static gboolean __lambda9__gsource_func (gpointer self) {
  2317. #line 2317 "ui-cairo-gtk.c"
  2318.     gboolean result;
  2319.     result = _lambda9_ (self);
  2320.     return result;
  2321. }
  2322.  
  2323.  
  2324. static Block7Data* block7_data_ref (Block7Data* _data7_) {
  2325.     g_atomic_int_inc (&_data7_->_ref_count_);
  2326.     return _data7_;
  2327. }
  2328.  
  2329.  
  2330. static void block7_data_unref (Block7Data* _data7_) {
  2331.     if (g_atomic_int_dec_and_test (&_data7_->_ref_count_)) {
  2332.         _g_object_unref0 (_data7_->self);
  2333.         _gtk_tree_path_free0 (_data7_->path);
  2334.         _g_object_unref0 (_data7_->sel);
  2335.         g_slice_free (Block7Data, _data7_);
  2336.     }
  2337. }
  2338.  
  2339.  
  2340. #line 727 "ui-cairo-gtk.vala"
  2341. gint sezen_result_box_move_selection (SezenResultBox* self, gint val) {
  2342. #line 2342 "ui-cairo-gtk.c"
  2343.     gint result = 0;
  2344.     Block7Data* _data7_;
  2345.     gint index;
  2346.     gint oindex;
  2347.     GList* sel_paths;
  2348.     GtkTreePath* opath;
  2349.     gboolean _tmp0_ = FALSE;
  2350.     GSource* time;
  2351.     GError * _inner_error_ = NULL;
  2352. #line 727 "ui-cairo-gtk.vala"
  2353.     g_return_val_if_fail (self != NULL, 0);
  2354. #line 2354 "ui-cairo-gtk.c"
  2355.     _data7_ = g_slice_new0 (Block7Data);
  2356.     _data7_->_ref_count_ = 1;
  2357.     _data7_->self = g_object_ref (self);
  2358. #line 729 "ui-cairo-gtk.vala"
  2359.     if (self->priv->no_results) {
  2360. #line 2360 "ui-cairo-gtk.c"
  2361.         result = -1;
  2362.         block7_data_unref (_data7_);
  2363. #line 730 "ui-cairo-gtk.vala"
  2364.         return result;
  2365. #line 2365 "ui-cairo-gtk.c"
  2366.     }
  2367.     _data7_->sel = _g_object_ref0 (gtk_tree_view_get_selection (self->priv->view));
  2368. #line 732 "ui-cairo-gtk.vala"
  2369.     index = -1;
  2370. #line 732 "ui-cairo-gtk.vala"
  2371.     oindex = -1;
  2372. #line 733 "ui-cairo-gtk.vala"
  2373.     sel_paths = gtk_tree_selection_get_selected_rows (_data7_->sel, NULL);
  2374. #line 2374 "ui-cairo-gtk.c"
  2375.     _data7_->path = _gtk_tree_path_copy0 ((GtkTreePath*) g_list_first (sel_paths)->data);
  2376. #line 735 "ui-cairo-gtk.vala"
  2377.     opath = _gtk_tree_path_copy0 (_data7_->path);
  2378. #line 2378 "ui-cairo-gtk.c"
  2379.     {
  2380. #line 736 "ui-cairo-gtk.vala"
  2381.         oindex = atoi (gtk_tree_path_to_string (_data7_->path));
  2382. #line 2382 "ui-cairo-gtk.c"
  2383.     }
  2384.     goto __finally20;
  2385.     __catch20_g_error:
  2386.     {
  2387.         g_clear_error (&_inner_error_);
  2388.         _inner_error_ = NULL;
  2389.         {
  2390.         }
  2391.     }
  2392.     __finally20:
  2393.     if (_inner_error_ != NULL) {
  2394.         _gtk_tree_path_free0 (opath);
  2395.         __g_list_free_gtk_tree_path_free0 (sel_paths);
  2396.         block7_data_unref (_data7_);
  2397.         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  2398.         g_clear_error (&_inner_error_);
  2399.         return 0;
  2400.     }
  2401. #line 737 "ui-cairo-gtk.vala"
  2402.     if (val > 0) {
  2403. #line 738 "ui-cairo-gtk.vala"
  2404.         gtk_tree_path_next (_data7_->path);
  2405. #line 2405 "ui-cairo-gtk.c"
  2406.     } else {
  2407. #line 739 "ui-cairo-gtk.vala"
  2408.         if (val < 0) {
  2409. #line 740 "ui-cairo-gtk.vala"
  2410.             gtk_tree_path_prev (_data7_->path);
  2411. #line 2411 "ui-cairo-gtk.c"
  2412.         }
  2413.     }
  2414.     {
  2415. #line 742 "ui-cairo-gtk.vala"
  2416.         index = atoi (gtk_tree_path_to_string (_data7_->path));
  2417. #line 2417 "ui-cairo-gtk.c"
  2418.     }
  2419.     goto __finally21;
  2420.     __catch21_g_error:
  2421.     {
  2422.         g_clear_error (&_inner_error_);
  2423.         _inner_error_ = NULL;
  2424.         {
  2425.         }
  2426.     }
  2427.     __finally21:
  2428.     if (_inner_error_ != NULL) {
  2429.         _gtk_tree_path_free0 (opath);
  2430.         __g_list_free_gtk_tree_path_free0 (sel_paths);
  2431.         block7_data_unref (_data7_);
  2432.         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  2433.         g_clear_error (&_inner_error_);
  2434.         return 0;
  2435.     }
  2436. #line 744 "ui-cairo-gtk.vala"
  2437.     if (index < 0) {
  2438. #line 744 "ui-cairo-gtk.vala"
  2439.         _tmp0_ = TRUE;
  2440. #line 2440 "ui-cairo-gtk.c"
  2441.     } else {
  2442. #line 744 "ui-cairo-gtk.vala"
  2443.         _tmp0_ = index >= self->priv->results->length;
  2444. #line 2444 "ui-cairo-gtk.c"
  2445.     }
  2446. #line 744 "ui-cairo-gtk.vala"
  2447.     if (_tmp0_) {
  2448. #line 2448 "ui-cairo-gtk.c"
  2449.         GtkTreePath* _tmp1_;
  2450. #line 746 "ui-cairo-gtk.vala"
  2451.         index = oindex;
  2452. #line 747 "ui-cairo-gtk.vala"
  2453.         _data7_->path = (_tmp1_ = _gtk_tree_path_copy0 (opath), _gtk_tree_path_free0 (_data7_->path), _tmp1_);
  2454. #line 2454 "ui-cairo-gtk.c"
  2455.     }
  2456. #line 750 "ui-cairo-gtk.vala"
  2457.     time = g_timeout_source_new ((guint) 1);
  2458. #line 751 "ui-cairo-gtk.vala"
  2459.     g_source_set_callback (time, __lambda9__gsource_func, block7_data_ref (_data7_), block7_data_unref);
  2460. #line 757 "ui-cairo-gtk.vala"
  2461.     g_source_attach (time, NULL);
  2462. #line 2462 "ui-cairo-gtk.c"
  2463.     result = index;
  2464.     _g_source_unref0 (time);
  2465.     _gtk_tree_path_free0 (opath);
  2466.     __g_list_free_gtk_tree_path_free0 (sel_paths);
  2467.     block7_data_unref (_data7_);
  2468. #line 758 "ui-cairo-gtk.vala"
  2469.     return result;
  2470. #line 2470 "ui-cairo-gtk.c"
  2471. }
  2472.  
  2473.  
  2474. static void sezen_result_box_class_init (SezenResultBoxClass * klass) {
  2475.     sezen_result_box_parent_class = g_type_class_peek_parent (klass);
  2476.     g_type_class_add_private (klass, sizeof (SezenResultBoxPrivate));
  2477.     G_OBJECT_CLASS (klass)->finalize = sezen_result_box_finalize;
  2478. }
  2479.  
  2480.  
  2481. static void sezen_result_box_instance_init (SezenResultBox * self) {
  2482.     self->priv = SEZEN_RESULT_BOX_GET_PRIVATE (self);
  2483. }
  2484.  
  2485.  
  2486. static void sezen_result_box_finalize (GObject* obj) {
  2487.     SezenResultBox * self;
  2488.     self = SEZEN_RESULT_BOX (obj);
  2489.     _g_object_unref0 (self->priv->view);
  2490.     _g_object_unref0 (self->priv->results);
  2491.     G_OBJECT_CLASS (sezen_result_box_parent_class)->finalize (obj);
  2492. }
  2493.  
  2494.  
  2495. GType sezen_result_box_get_type (void) {
  2496.     static volatile gsize sezen_result_box_type_id__volatile = 0;
  2497.     if (g_once_init_enter (&sezen_result_box_type_id__volatile)) {
  2498.         static const GTypeInfo g_define_type_info = { sizeof (SezenResultBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sezen_result_box_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SezenResultBox), 0, (GInstanceInitFunc) sezen_result_box_instance_init, NULL };
  2499.         GType sezen_result_box_type_id;
  2500.         sezen_result_box_type_id = g_type_register_static (GTK_TYPE_EVENT_BOX, "SezenResultBox", &g_define_type_info, 0);
  2501.         g_once_init_leave (&sezen_result_box_type_id__volatile, sezen_result_box_type_id);
  2502.     }
  2503.     return sezen_result_box_type_id__volatile;
  2504. }
  2505.  
  2506.  
  2507. #line 764 "ui-cairo-gtk.vala"
  2508. GdkPixbuf* sezen_sezen_icon_provider_get_icon_pixbuf (const char* name, gint size) {
  2509. #line 2509 "ui-cairo-gtk.c"
  2510.     GdkPixbuf* result = NULL;
  2511.     GdkPixbuf* pixbuf;
  2512.     char* name_noext;
  2513.     GtkIconTheme* theme;
  2514.     GError * _inner_error_ = NULL;
  2515. #line 764 "ui-cairo-gtk.vala"
  2516.     g_return_val_if_fail (name != NULL, NULL);
  2517. #line 766 "ui-cairo-gtk.vala"
  2518.     pixbuf = NULL;
  2519. #line 2519 "ui-cairo-gtk.c"
  2520.     name_noext = NULL;
  2521. #line 769 "ui-cairo-gtk.vala"
  2522.     theme = _g_object_ref0 (gtk_icon_theme_get_default ());
  2523. #line 2523 "ui-cairo-gtk.c"
  2524.     {
  2525. #line 772 "ui-cairo-gtk.vala"
  2526.         if (gtk_icon_theme_has_icon (theme, name)) {
  2527. #line 2527 "ui-cairo-gtk.c"
  2528.             GdkPixbuf* _tmp0_;
  2529.             GdkPixbuf* _tmp1_;
  2530. #line 773 "ui-cairo-gtk.vala"
  2531.             _tmp0_ = gtk_icon_theme_load_icon (theme, name, size, 0, &_inner_error_);
  2532. #line 2532 "ui-cairo-gtk.c"
  2533.             if (_inner_error_ != NULL) {
  2534.                 goto __catch22_g_error;
  2535.             }
  2536. #line 773 "ui-cairo-gtk.vala"
  2537.             pixbuf = (_tmp1_ = _g_object_ref0 (_tmp0_), _g_object_unref0 (pixbuf), _tmp1_);
  2538. #line 2538 "ui-cairo-gtk.c"
  2539.         } else {
  2540.             gboolean _tmp2_ = FALSE;
  2541. #line 774 "ui-cairo-gtk.vala"
  2542.             if (_vala_strcmp0 (name, "gnome-mime-text-plain") == 0) {
  2543. #line 774 "ui-cairo-gtk.vala"
  2544.                 _tmp2_ = gtk_icon_theme_has_icon (theme, "gnome-mime-text");
  2545. #line 2545 "ui-cairo-gtk.c"
  2546.             } else {
  2547. #line 774 "ui-cairo-gtk.vala"
  2548.                 _tmp2_ = FALSE;
  2549. #line 2549 "ui-cairo-gtk.c"
  2550.             }
  2551. #line 774 "ui-cairo-gtk.vala"
  2552.             if (_tmp2_) {
  2553. #line 2553 "ui-cairo-gtk.c"
  2554.                 GdkPixbuf* _tmp3_;
  2555.                 GdkPixbuf* _tmp4_;
  2556. #line 775 "ui-cairo-gtk.vala"
  2557.                 _tmp3_ = gtk_icon_theme_load_icon (theme, "gnome-mime-text", size, 0, &_inner_error_);
  2558. #line 2558 "ui-cairo-gtk.c"
  2559.                 if (_inner_error_ != NULL) {
  2560.                     goto __catch22_g_error;
  2561.                 }
  2562. #line 775 "ui-cairo-gtk.vala"
  2563.                 pixbuf = (_tmp4_ = _g_object_ref0 (_tmp3_), _g_object_unref0 (pixbuf), _tmp4_);
  2564. #line 2564 "ui-cairo-gtk.c"
  2565.             }
  2566.         }
  2567.     }
  2568.     goto __finally22;
  2569.     __catch22_g_error:
  2570.     {
  2571.         g_clear_error (&_inner_error_);
  2572.         _inner_error_ = NULL;
  2573.         {
  2574.             GdkPixbuf* _tmp5_;
  2575. #line 778 "ui-cairo-gtk.vala"
  2576.             pixbuf = (_tmp5_ = NULL, _g_object_unref0 (pixbuf), _tmp5_);
  2577. #line 2577 "ui-cairo-gtk.c"
  2578.         }
  2579.     }
  2580.     __finally22:
  2581.     if (_inner_error_ != NULL) {
  2582.         _g_object_unref0 (theme);
  2583.         _g_free0 (name_noext);
  2584.         _g_object_unref0 (pixbuf);
  2585.         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
  2586.         g_clear_error (&_inner_error_);
  2587.         return NULL;
  2588.     }
  2589.     result = pixbuf;
  2590.     _g_object_unref0 (theme);
  2591.     _g_free0 (name_noext);
  2592. #line 781 "ui-cairo-gtk.vala"
  2593.     return result;
  2594. #line 2594 "ui-cairo-gtk.c"
  2595. }
  2596.  
  2597.  
  2598. #line 762 "ui-cairo-gtk.vala"
  2599. SezenSezenIconProvider* sezen_sezen_icon_provider_construct (GType object_type) {
  2600. #line 2600 "ui-cairo-gtk.c"
  2601.     SezenSezenIconProvider* self;
  2602.     self = (SezenSezenIconProvider*) g_type_create_instance (object_type);
  2603.     return self;
  2604. }
  2605.  
  2606.  
  2607. #line 762 "ui-cairo-gtk.vala"
  2608. SezenSezenIconProvider* sezen_sezen_icon_provider_new (void) {
  2609. #line 762 "ui-cairo-gtk.vala"
  2610.     return sezen_sezen_icon_provider_construct (SEZEN_TYPE_SEZEN_ICON_PROVIDER);
  2611. #line 2611 "ui-cairo-gtk.c"
  2612. }
  2613.  
  2614.  
  2615. static void sezen_value_sezen_icon_provider_init (GValue* value) {
  2616.     value->data[0].v_pointer = NULL;
  2617. }
  2618.  
  2619.  
  2620. static void sezen_value_sezen_icon_provider_free_value (GValue* value) {
  2621.     if (value->data[0].v_pointer) {
  2622.         sezen_sezen_icon_provider_unref (value->data[0].v_pointer);
  2623.     }
  2624. }
  2625.  
  2626.  
  2627. static void sezen_value_sezen_icon_provider_copy_value (const GValue* src_value, GValue* dest_value) {
  2628.     if (src_value->data[0].v_pointer) {
  2629.         dest_value->data[0].v_pointer = sezen_sezen_icon_provider_ref (src_value->data[0].v_pointer);
  2630.     } else {
  2631.         dest_value->data[0].v_pointer = NULL;
  2632.     }
  2633. }
  2634.  
  2635.  
  2636. static gpointer sezen_value_sezen_icon_provider_peek_pointer (const GValue* value) {
  2637.     return value->data[0].v_pointer;
  2638. }
  2639.  
  2640.  
  2641. static gchar* sezen_value_sezen_icon_provider_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
  2642.     if (collect_values[0].v_pointer) {
  2643.         SezenSezenIconProvider* object;
  2644.         object = collect_values[0].v_pointer;
  2645.         if (object->parent_instance.g_class == NULL) {
  2646.             return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
  2647.         } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
  2648.             return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
  2649.         }
  2650.         value->data[0].v_pointer = sezen_sezen_icon_provider_ref (object);
  2651.     } else {
  2652.         value->data[0].v_pointer = NULL;
  2653.     }
  2654.     return NULL;
  2655. }
  2656.  
  2657.  
  2658. static gchar* sezen_value_sezen_icon_provider_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
  2659.     SezenSezenIconProvider** object_p;
  2660.     object_p = collect_values[0].v_pointer;
  2661.     if (!object_p) {
  2662.         return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
  2663.     }
  2664.     if (!value->data[0].v_pointer) {
  2665.         *object_p = NULL;
  2666.     } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
  2667.         *object_p = value->data[0].v_pointer;
  2668.     } else {
  2669.         *object_p = sezen_sezen_icon_provider_ref (value->data[0].v_pointer);
  2670.     }
  2671.     return NULL;
  2672. }
  2673.  
  2674.  
  2675. GParamSpec* sezen_param_spec_sezen_icon_provider (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
  2676.     SezenParamSpecSezenIconProvider* spec;
  2677.     g_return_val_if_fail (g_type_is_a (object_type, SEZEN_TYPE_SEZEN_ICON_PROVIDER), NULL);
  2678.     spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
  2679.     G_PARAM_SPEC (spec)->value_type = object_type;
  2680.     return G_PARAM_SPEC (spec);
  2681. }
  2682.  
  2683.  
  2684. gpointer sezen_value_get_sezen_icon_provider (const GValue* value) {
  2685.     g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SEZEN_TYPE_SEZEN_ICON_PROVIDER), NULL);
  2686.     return value->data[0].v_pointer;
  2687. }
  2688.  
  2689.  
  2690. void sezen_value_set_sezen_icon_provider (GValue* value, gpointer v_object) {
  2691.     SezenSezenIconProvider* old;
  2692.     g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SEZEN_TYPE_SEZEN_ICON_PROVIDER));
  2693.     old = value->data[0].v_pointer;
  2694.     if (v_object) {
  2695.         g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SEZEN_TYPE_SEZEN_ICON_PROVIDER));
  2696.         g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
  2697.         value->data[0].v_pointer = v_object;
  2698.         sezen_sezen_icon_provider_ref (value->data[0].v_pointer);
  2699.     } else {
  2700.         value->data[0].v_pointer = NULL;
  2701.     }
  2702.     if (old) {
  2703.         sezen_sezen_icon_provider_unref (old);
  2704.     }
  2705. }
  2706.  
  2707.  
  2708. void sezen_value_take_sezen_icon_provider (GValue* value, gpointer v_object) {
  2709.     SezenSezenIconProvider* old;
  2710.     g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SEZEN_TYPE_SEZEN_ICON_PROVIDER));
  2711.     old = value->data[0].v_pointer;
  2712.     if (v_object) {
  2713.         g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SEZEN_TYPE_SEZEN_ICON_PROVIDER));
  2714.         g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
  2715.         value->data[0].v_pointer = v_object;
  2716.     } else {
  2717.         value->data[0].v_pointer = NULL;
  2718.     }
  2719.     if (old) {
  2720.         sezen_sezen_icon_provider_unref (old);
  2721.     }
  2722. }
  2723.  
  2724.  
  2725. static void sezen_sezen_icon_provider_class_init (SezenSezenIconProviderClass * klass) {
  2726.     sezen_sezen_icon_provider_parent_class = g_type_class_peek_parent (klass);
  2727.     SEZEN_SEZEN_ICON_PROVIDER_CLASS (klass)->finalize = sezen_sezen_icon_provider_finalize;
  2728. }
  2729.  
  2730.  
  2731. static void sezen_sezen_icon_provider_instance_init (SezenSezenIconProvider * self) {
  2732.     self->ref_count = 1;
  2733. }
  2734.  
  2735.  
  2736. static void sezen_sezen_icon_provider_finalize (SezenSezenIconProvider* obj) {
  2737.     SezenSezenIconProvider * self;
  2738.     self = SEZEN_SEZEN_ICON_PROVIDER (obj);
  2739. }
  2740.  
  2741.  
  2742. GType sezen_sezen_icon_provider_get_type (void) {
  2743.     static volatile gsize sezen_sezen_icon_provider_type_id__volatile = 0;
  2744.     if (g_once_init_enter (&sezen_sezen_icon_provider_type_id__volatile)) {
  2745.         static const GTypeValueTable g_define_type_value_table = { sezen_value_sezen_icon_provider_init, sezen_value_sezen_icon_provider_free_value, sezen_value_sezen_icon_provider_copy_value, sezen_value_sezen_icon_provider_peek_pointer, "p", sezen_value_sezen_icon_provider_collect_value, "p", sezen_value_sezen_icon_provider_lcopy_value };
  2746.         static const GTypeInfo g_define_type_info = { sizeof (SezenSezenIconProviderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sezen_sezen_icon_provider_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SezenSezenIconProvider), 0, (GInstanceInitFunc) sezen_sezen_icon_provider_instance_init, &g_define_type_value_table };
  2747.         static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
  2748.         GType sezen_sezen_icon_provider_type_id;
  2749.         sezen_sezen_icon_provider_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SezenSezenIconProvider", &g_define_type_info, &g_define_type_fundamental_info, 0);
  2750.         g_once_init_leave (&sezen_sezen_icon_provider_type_id__volatile, sezen_sezen_icon_provider_type_id);
  2751.     }
  2752.     return sezen_sezen_icon_provider_type_id__volatile;
  2753. }
  2754.  
  2755.  
  2756. gpointer sezen_sezen_icon_provider_ref (gpointer instance) {
  2757.     SezenSezenIconProvider* self;
  2758.     self = instance;
  2759.     g_atomic_int_inc (&self->ref_count);
  2760.     return instance;
  2761. }
  2762.  
  2763.  
  2764. void sezen_sezen_icon_provider_unref (gpointer instance) {
  2765.     SezenSezenIconProvider* self;
  2766.     self = instance;
  2767.     if (g_atomic_int_dec_and_test (&self->ref_count)) {
  2768.         SEZEN_SEZEN_ICON_PROVIDER_GET_CLASS (self)->finalize (self);
  2769.         g_type_free_instance ((GTypeInstance *) self);
  2770.     }
  2771. }
  2772.  
  2773.  
  2774. #line 789 "ui-cairo-gtk.vala"
  2775. SezenGtkContainerOverlayed* sezen_gtk_container_overlayed_construct (GType object_type) {
  2776. #line 2776 "ui-cairo-gtk.c"
  2777.     SezenGtkContainerOverlayed * self;
  2778. #line 791 "ui-cairo-gtk.vala"
  2779.     self = (SezenGtkContainerOverlayed*) g_object_new (object_type, NULL);
  2780. #line 792 "ui-cairo-gtk.vala"
  2781.     gtk_widget_set_has_window ((GtkWidget*) self, FALSE);
  2782. #line 793 "ui-cairo-gtk.vala"
  2783.     gtk_widget_set_redraw_on_allocate ((GtkWidget*) self, FALSE);
  2784. #line 2784 "ui-cairo-gtk.c"
  2785.     return self;
  2786. }
  2787.  
  2788.  
  2789. #line 789 "ui-cairo-gtk.vala"
  2790. SezenGtkContainerOverlayed* sezen_gtk_container_overlayed_new (void) {
  2791. #line 789 "ui-cairo-gtk.vala"
  2792.     return sezen_gtk_container_overlayed_construct (SEZEN_TYPE_GTK_CONTAINER_OVERLAYED);
  2793. #line 2793 "ui-cairo-gtk.c"
  2794. }
  2795.  
  2796.  
  2797. #line 795 "ui-cairo-gtk.vala"
  2798. static void sezen_gtk_container_overlayed_real_size_request (GtkWidget* base, GtkRequisition* requisition) {
  2799. #line 2799 "ui-cairo-gtk.c"
  2800.     SezenGtkContainerOverlayed * self;
  2801.     gint w;
  2802.     gint h;
  2803.     self = (SezenGtkContainerOverlayed*) base;
  2804. #line 797 "ui-cairo-gtk.vala"
  2805.     w = 0;
  2806. #line 797 "ui-cairo-gtk.vala"
  2807.     h = 0;
  2808. #line 798 "ui-cairo-gtk.vala"
  2809.     (*requisition).width = 1;
  2810. #line 799 "ui-cairo-gtk.vala"
  2811.     (*requisition).height = 1;
  2812. #line 800 "ui-cairo-gtk.vala"
  2813.     if (self->priv->_main != NULL) {
  2814. #line 802 "ui-cairo-gtk.vala"
  2815.         gtk_widget_get_size_request (self->priv->_main, &w, &h);
  2816. #line 803 "ui-cairo-gtk.vala"
  2817.         (*requisition).width = MAX (w, (*requisition).width);
  2818. #line 804 "ui-cairo-gtk.vala"
  2819.         (*requisition).height = MAX (h, (*requisition).height);
  2820. #line 2820 "ui-cairo-gtk.c"
  2821.     }
  2822. #line 806 "ui-cairo-gtk.vala"
  2823.     if (self->priv->_overlay != NULL) {
  2824. #line 808 "ui-cairo-gtk.vala"
  2825.         gtk_widget_get_size_request (self->priv->_overlay, &w, &h);
  2826. #line 809 "ui-cairo-gtk.vala"
  2827.         (*requisition).width = MAX (w, (*requisition).width);
  2828. #line 810 "ui-cairo-gtk.vala"
  2829.         (*requisition).height = MAX (h, (*requisition).height);
  2830. #line 2830 "ui-cairo-gtk.c"
  2831.     }
  2832. #line 812 "ui-cairo-gtk.vala"
  2833.     g_debug ("ui-cairo-gtk.vala:812: size alloc");
  2834. #line 2834 "ui-cairo-gtk.c"
  2835. }
  2836.  
  2837.  
  2838. #line 814 "ui-cairo-gtk.vala"
  2839. static void sezen_gtk_container_overlayed_real_size_allocate (GtkWidget* base, GdkRectangle* allocation) {
  2840. #line 2840 "ui-cairo-gtk.c"
  2841.     SezenGtkContainerOverlayed * self;
  2842.     GdkRectangle _tmp0_ = {0};
  2843.     GdkRectangle aoverlay;
  2844.     GtkAllocation _tmp1_ = {0};
  2845.     GtkAllocation alloc;
  2846.     self = (SezenGtkContainerOverlayed*) base;
  2847. #line 816 "ui-cairo-gtk.vala"
  2848.     aoverlay = (_tmp0_.x = (*allocation).x + ((*allocation).width / 2), _tmp0_.y = (*allocation).y + ((*allocation).height / 2), _tmp0_.width = (*allocation).width / 2, _tmp0_.height = (*allocation).height / 2, _tmp0_);
  2849. #line 821 "ui-cairo-gtk.vala"
  2850.     alloc = (_tmp1_.x = (*allocation).x, _tmp1_.y = (*allocation).y, _tmp1_.width = (*allocation).width, _tmp1_.height = (*allocation).height, _tmp1_);
  2851. #line 822 "ui-cairo-gtk.vala"
  2852.     gtk_widget_set_allocation ((GtkWidget*) self, &alloc);
  2853. #line 823 "ui-cairo-gtk.vala"
  2854.     gtk_widget_size_allocate (self->priv->_main, allocation);
  2855. #line 824 "ui-cairo-gtk.vala"
  2856.     gtk_widget_size_allocate (self->priv->_overlay, &aoverlay);
  2857. #line 825 "ui-cairo-gtk.vala"
  2858.     g_debug ("ui-cairo-gtk.vala:825: sizealloc");
  2859. #line 2859 "ui-cairo-gtk.c"
  2860. }
  2861.  
  2862.  
  2863. #line 827 "ui-cairo-gtk.vala"
  2864. static void sezen_gtk_container_overlayed_real_forall (GtkContainer* base, GtkCallback callback, void* callback_target) {
  2865. #line 2865 "ui-cairo-gtk.c"
  2866.     SezenGtkContainerOverlayed * self;
  2867.     self = (SezenGtkContainerOverlayed*) base;
  2868. #line 829 "ui-cairo-gtk.vala"
  2869.     g_debug ("ui-cairo-gtk.vala:829: forall");
  2870. #line 830 "ui-cairo-gtk.vala"
  2871.     if (self->priv->_main != NULL) {
  2872. #line 831 "ui-cairo-gtk.vala"
  2873.         callback (self->priv->_main, callback_target);
  2874. #line 2874 "ui-cairo-gtk.c"
  2875.     }
  2876. #line 832 "ui-cairo-gtk.vala"
  2877.     if (self->priv->_overlay != NULL) {
  2878. #line 833 "ui-cairo-gtk.vala"
  2879.         callback (self->priv->_overlay, callback_target);
  2880. #line 2880 "ui-cairo-gtk.c"
  2881.     }
  2882. }
  2883.  
  2884.  
  2885. #line 835 "ui-cairo-gtk.vala"
  2886. static void sezen_gtk_container_overlayed_real_add (GtkContainer* base, GtkWidget* widget) {
  2887. #line 2887 "ui-cairo-gtk.c"
  2888.     SezenGtkContainerOverlayed * self;
  2889.     self = (SezenGtkContainerOverlayed*) base;
  2890. #line 835 "ui-cairo-gtk.vala"
  2891.     g_return_if_fail (widget != NULL);
  2892. #line 837 "ui-cairo-gtk.vala"
  2893.     if (self->priv->_main == NULL) {
  2894. #line 839 "ui-cairo-gtk.vala"
  2895.         sezen_gtk_container_overlayed_set_main (self, widget);
  2896. #line 840 "ui-cairo-gtk.vala"
  2897.         gtk_widget_set_parent (self->priv->_main, (GtkWidget*) self);
  2898. #line 2898 "ui-cairo-gtk.c"
  2899.     } else {
  2900. #line 842 "ui-cairo-gtk.vala"
  2901.         if (self->priv->_overlay == NULL) {
  2902. #line 844 "ui-cairo-gtk.vala"
  2903.             sezen_gtk_container_overlayed_set_overlay (self, widget);
  2904. #line 845 "ui-cairo-gtk.vala"
  2905.             gtk_widget_set_parent (self->priv->_overlay, (GtkWidget*) self);
  2906. #line 2906 "ui-cairo-gtk.c"
  2907.         }
  2908.     }
  2909. }
  2910.  
  2911.  
  2912. float sezen_gtk_container_overlayed_get_scale (SezenGtkContainerOverlayed* self) {
  2913.     float result;
  2914.     g_return_val_if_fail (self != NULL, 0.0F);
  2915.     result = self->priv->_scale;
  2916. #line 786 "ui-cairo-gtk.vala"
  2917.     return result;
  2918. #line 2918 "ui-cairo-gtk.c"
  2919. }
  2920.  
  2921.  
  2922. void sezen_gtk_container_overlayed_set_scale (SezenGtkContainerOverlayed* self, float value) {
  2923.     g_return_if_fail (self != NULL);
  2924.     self->priv->_scale = value;
  2925.     g_object_notify ((GObject *) self, "scale");
  2926. }
  2927.  
  2928.  
  2929. GtkWidget* sezen_gtk_container_overlayed_get_main (SezenGtkContainerOverlayed* self) {
  2930.     GtkWidget* result;
  2931.     g_return_val_if_fail (self != NULL, NULL);
  2932.     result = self->priv->_main;
  2933. #line 787 "ui-cairo-gtk.vala"
  2934.     return result;
  2935. #line 2935 "ui-cairo-gtk.c"
  2936. }
  2937.  
  2938.  
  2939. void sezen_gtk_container_overlayed_set_main (SezenGtkContainerOverlayed* self, GtkWidget* value) {
  2940.     GtkWidget* _tmp0_;
  2941.     g_return_if_fail (self != NULL);
  2942.     self->priv->_main = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_main), _tmp0_);
  2943.     g_object_notify ((GObject *) self, "main");
  2944. }
  2945.  
  2946.  
  2947. GtkWidget* sezen_gtk_container_overlayed_get_overlay (SezenGtkContainerOverlayed* self) {
  2948.     GtkWidget* result;
  2949.     g_return_val_if_fail (self != NULL, NULL);
  2950.     result = self->priv->_overlay;
  2951. #line 788 "ui-cairo-gtk.vala"
  2952.     return result;
  2953. #line 2953 "ui-cairo-gtk.c"
  2954. }
  2955.  
  2956.  
  2957. void sezen_gtk_container_overlayed_set_overlay (SezenGtkContainerOverlayed* self, GtkWidget* value) {
  2958.     GtkWidget* _tmp0_;
  2959.     g_return_if_fail (self != NULL);
  2960.     self->priv->_overlay = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_overlay), _tmp0_);
  2961.     g_object_notify ((GObject *) self, "overlay");
  2962. }
  2963.  
  2964.  
  2965. static void sezen_gtk_container_overlayed_class_init (SezenGtkContainerOverlayedClass * klass) {
  2966.     sezen_gtk_container_overlayed_parent_class = g_type_class_peek_parent (klass);
  2967.     g_type_class_add_private (klass, sizeof (SezenGtkContainerOverlayedPrivate));
  2968.     GTK_WIDGET_CLASS (klass)->size_request = sezen_gtk_container_overlayed_real_size_request;
  2969.     GTK_WIDGET_CLASS (klass)->size_allocate = sezen_gtk_container_overlayed_real_size_allocate;
  2970.     GTK_CONTAINER_CLASS (klass)->forall = sezen_gtk_container_overlayed_real_forall;
  2971.     GTK_CONTAINER_CLASS (klass)->add = sezen_gtk_container_overlayed_real_add;
  2972.     G_OBJECT_CLASS (klass)->get_property = sezen_gtk_container_overlayed_get_property;
  2973.     G_OBJECT_CLASS (klass)->set_property = sezen_gtk_container_overlayed_set_property;
  2974.     G_OBJECT_CLASS (klass)->finalize = sezen_gtk_container_overlayed_finalize;
  2975.     g_object_class_install_property (G_OBJECT_CLASS (klass), SEZEN_GTK_CONTAINER_OVERLAYED_SCALE, g_param_spec_float ("scale", "scale", "scale", -G_MAXFLOAT, G_MAXFLOAT, 0.25f, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
  2976.     g_object_class_install_property (G_OBJECT_CLASS (klass), SEZEN_GTK_CONTAINER_OVERLAYED_MAIN, g_param_spec_object ("main", "main", "main", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
  2977.     g_object_class_install_property (G_OBJECT_CLASS (klass), SEZEN_GTK_CONTAINER_OVERLAYED_OVERLAY, g_param_spec_object ("overlay", "overlay", "overlay", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
  2978. }
  2979.  
  2980.  
  2981. static void sezen_gtk_container_overlayed_instance_init (SezenGtkContainerOverlayed * self) {
  2982.     self->priv = SEZEN_GTK_CONTAINER_OVERLAYED_GET_PRIVATE (self);
  2983.     self->priv->_scale = 0.25f;
  2984.     self->priv->_main = NULL;
  2985.     self->priv->_overlay = NULL;
  2986. }
  2987.  
  2988.  
  2989. static void sezen_gtk_container_overlayed_finalize (GObject* obj) {
  2990.     SezenGtkContainerOverlayed * self;
  2991.     self = SEZEN_GTK_CONTAINER_OVERLAYED (obj);
  2992.     _g_object_unref0 (self->priv->_main);
  2993.     _g_object_unref0 (self->priv->_overlay);
  2994.     G_OBJECT_CLASS (sezen_gtk_container_overlayed_parent_class)->finalize (obj);
  2995. }
  2996.  
  2997.  
  2998. GType sezen_gtk_container_overlayed_get_type (void) {
  2999.     static volatile gsize sezen_gtk_container_overlayed_type_id__volatile = 0;
  3000.     if (g_once_init_enter (&sezen_gtk_container_overlayed_type_id__volatile)) {
  3001.         static const GTypeInfo g_define_type_info = { sizeof (SezenGtkContainerOverlayedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sezen_gtk_container_overlayed_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SezenGtkContainerOverlayed), 0, (GInstanceInitFunc) sezen_gtk_container_overlayed_instance_init, NULL };
  3002.         GType sezen_gtk_container_overlayed_type_id;
  3003.         sezen_gtk_container_overlayed_type_id = g_type_register_static (GTK_TYPE_CONTAINER, "SezenGtkContainerOverlayed", &g_define_type_info, 0);
  3004.         g_once_init_leave (&sezen_gtk_container_overlayed_type_id__volatile, sezen_gtk_container_overlayed_type_id);
  3005.     }
  3006.     return sezen_gtk_container_overlayed_type_id__volatile;
  3007. }
  3008.  
  3009.  
  3010. static void sezen_gtk_container_overlayed_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
  3011.     SezenGtkContainerOverlayed * self;
  3012.     self = SEZEN_GTK_CONTAINER_OVERLAYED (object);
  3013.     switch (property_id) {
  3014.         case SEZEN_GTK_CONTAINER_OVERLAYED_SCALE:
  3015.         g_value_set_float (value, sezen_gtk_container_overlayed_get_scale (self));
  3016.         break;
  3017.         case SEZEN_GTK_CONTAINER_OVERLAYED_MAIN:
  3018.         g_value_set_object (value, sezen_gtk_container_overlayed_get_main (self));
  3019.         break;
  3020.         case SEZEN_GTK_CONTAINER_OVERLAYED_OVERLAY:
  3021.         g_value_set_object (value, sezen_gtk_container_overlayed_get_overlay (self));
  3022.         break;
  3023.         default:
  3024.         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
  3025.         break;
  3026.     }
  3027. }
  3028.  
  3029.  
  3030. static void sezen_gtk_container_overlayed_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
  3031.     SezenGtkContainerOverlayed * self;
  3032.     self = SEZEN_GTK_CONTAINER_OVERLAYED (object);
  3033.     switch (property_id) {
  3034.         case SEZEN_GTK_CONTAINER_OVERLAYED_SCALE:
  3035.         sezen_gtk_container_overlayed_set_scale (self, g_value_get_float (value));
  3036.         break;
  3037.         case SEZEN_GTK_CONTAINER_OVERLAYED_MAIN:
  3038.         sezen_gtk_container_overlayed_set_main (self, g_value_get_object (value));
  3039.         break;
  3040.         case SEZEN_GTK_CONTAINER_OVERLAYED_OVERLAY:
  3041.         sezen_gtk_container_overlayed_set_overlay (self, g_value_get_object (value));
  3042.         break;
  3043.         default:
  3044.         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
  3045.         break;
  3046.     }
  3047. }
  3048.  
  3049.  
  3050. static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
  3051.     if ((array != NULL) && (destroy_func != NULL)) {
  3052.         int i;
  3053.         for (i = 0; i < array_length; i = i + 1) {
  3054.             if (((gpointer*) array)[i] != NULL) {
  3055.                 destroy_func (((gpointer*) array)[i]);
  3056.             }
  3057.         }
  3058.     }
  3059. }
  3060.  
  3061.  
  3062. static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
  3063.     _vala_array_destroy (array, array_length, destroy_func);
  3064.     g_free (array);
  3065. }
  3066.  
  3067.  
  3068. static int _vala_strcmp0 (const char * str1, const char * str2) {
  3069.     if (str1 == NULL) {
  3070.         return -(str1 != str2);
  3071.     }
  3072.     if (str2 == NULL) {
  3073.         return str1 != str2;
  3074.     }
  3075.     return strcmp (str1, str2);
  3076. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement