Blame ui/gtk3/emojierapp.c

Packit 3ff832
/* emojierapp.c generated by valac 0.40.8, the Vala compiler
Packit 3ff832
 * generated from emojierapp.vala, do not modify */
Packit 3ff832
Packit 3ff832
/* vim:set et sts=4 sw=4:
Packit 3ff832
 *
Packit 3ff832
 * ibus - The Input Bus
Packit 3ff832
 *
Packit 3ff832
 * Copyright (c) 2017 Peng Wu <alexepico@gmail.com>
Packit 3ff832
 *
Packit 3ff832
 * This library is free software; you can redistribute it and/or
Packit 3ff832
 * modify it under the terms of the GNU Lesser General Public
Packit 3ff832
 * License as published by the Free Software Foundation; either
Packit 3ff832
 * version 2.1 of the License, or (at your option) any later version.
Packit 3ff832
 *
Packit 3ff832
 * This library is distributed in the hope that it will be useful,
Packit 3ff832
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 3ff832
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 3ff832
 * Lesser General Public License for more details.
Packit 3ff832
 *
Packit 3ff832
 * You should have received a copy of the GNU Lesser General Public
Packit 3ff832
 * License along with this library; if not, write to the Free Software
Packit 3ff832
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
Packit 3ff832
 * USA
Packit 3ff832
 */
Packit 3ff832
Packit 3ff832
Packit 3ff832
#include <glib.h>
Packit 3ff832
#include <glib-object.h>
Packit 3ff832
#include <stdlib.h>
Packit 3ff832
#include <string.h>
Packit 3ff832
#include <gtk/gtk.h>
Packit 3ff832
#include <gio/gio.h>
Packit 3ff832
#include <glib/gi18n-lib.h>
Packit 3ff832
#include <gdk/gdk.h>
Packit 3ff832
#include <config.h>
Packit 3ff832
#include <stdio.h>
Packit 3ff832
#include <ibus.h>
Packit 3ff832
Packit 3ff832
Packit 3ff832
#define TYPE_EMOJI_APPLICATION (emoji_application_get_type ())
Packit 3ff832
#define EMOJI_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EMOJI_APPLICATION, EmojiApplication))
Packit 3ff832
#define EMOJI_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EMOJI_APPLICATION, EmojiApplicationClass))
Packit 3ff832
#define IS_EMOJI_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EMOJI_APPLICATION))
Packit 3ff832
#define IS_EMOJI_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EMOJI_APPLICATION))
Packit 3ff832
#define EMOJI_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EMOJI_APPLICATION, EmojiApplicationClass))
Packit 3ff832
Packit 3ff832
typedef struct _EmojiApplication EmojiApplication;
Packit 3ff832
typedef struct _EmojiApplicationClass EmojiApplicationClass;
Packit 3ff832
typedef struct _EmojiApplicationPrivate EmojiApplicationPrivate;
Packit 3ff832
Packit 3ff832
#define TYPE_IBUS_EMOJIER (ibus_emojier_get_type ())
Packit 3ff832
#define IBUS_EMOJIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IBUS_EMOJIER, IBusEmojier))
Packit 3ff832
#define IBUS_EMOJIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IBUS_EMOJIER, IBusEmojierClass))
Packit 3ff832
#define IS_IBUS_EMOJIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IBUS_EMOJIER))
Packit 3ff832
#define IS_IBUS_EMOJIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IBUS_EMOJIER))
Packit 3ff832
#define IBUS_EMOJIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IBUS_EMOJIER, IBusEmojierClass))
Packit 3ff832
Packit 3ff832
typedef struct _IBusEmojier IBusEmojier;
Packit 3ff832
typedef struct _IBusEmojierClass IBusEmojierClass;
Packit 3ff832
enum  {
Packit 3ff832
	EMOJI_APPLICATION_0_PROPERTY,
Packit 3ff832
	EMOJI_APPLICATION_NUM_PROPERTIES
Packit 3ff832
};
Packit 3ff832
static GParamSpec* emoji_application_properties[EMOJI_APPLICATION_NUM_PROPERTIES];
Packit 3ff832
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
Packit 3ff832
#define _g_free0(var) (var = (g_free (var), NULL))
Packit 3ff832
#define _g_option_context_free0(var) ((var == NULL) ? NULL : (var = (g_option_context_free (var), NULL)))
Packit 3ff832
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
Packit 3ff832
#define __vala_GdkEvent_free0(var) ((var == NULL) ? NULL : (var = (_vala_GdkEvent_free (var), NULL)))
Packit 3ff832
Packit 3ff832
struct _EmojiApplication {
Packit 3ff832
	GtkApplication parent_instance;
Packit 3ff832
	EmojiApplicationPrivate * priv;
Packit 3ff832
};
Packit 3ff832
Packit 3ff832
struct _EmojiApplicationClass {
Packit 3ff832
	GtkApplicationClass parent_class;
Packit 3ff832
};
Packit 3ff832
Packit 3ff832
struct _EmojiApplicationPrivate {
Packit 3ff832
	IBusEmojier* m_emojier;
Packit 3ff832
	GSettings* m_settings_emoji;
Packit 3ff832
	GApplicationCommandLine* m_command_line;
Packit 3ff832
};
Packit 3ff832
Packit 3ff832
Packit 3ff832
extern gchar* emoji_font;
Packit 3ff832
gchar* emoji_font = NULL;
Packit 3ff832
extern gchar* annotation_lang;
Packit 3ff832
gchar* annotation_lang = NULL;
Packit 3ff832
extern gboolean partial_match;
Packit 3ff832
gboolean partial_match = FALSE;
Packit 3ff832
extern gint partial_match_length;
Packit 3ff832
gint partial_match_length = -1;
Packit 3ff832
extern gint partial_match_condition;
Packit 3ff832
gint partial_match_condition = -1;
Packit 3ff832
static gpointer emoji_application_parent_class = NULL;
Packit 3ff832
Packit 3ff832
GType emoji_application_get_type (void) G_GNUC_CONST;
Packit 3ff832
GType ibus_emojier_get_type (void) G_GNUC_CONST;
Packit 3ff832
#define EMOJI_APPLICATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EMOJI_APPLICATION, EmojiApplicationPrivate))
Packit 3ff832
static EmojiApplication* emoji_application_new (void);
Packit 3ff832
static EmojiApplication* emoji_application_construct (GType object_type);
Packit 3ff832
static void emoji_application_show_dialog (EmojiApplication* self,
Packit 3ff832
                                    GApplicationCommandLine* command_line);
Packit 3ff832
void ibus_emojier_reset (IBusEmojier* self);
Packit 3ff832
void ibus_emojier_set_annotation (IBusEmojier* self,
Packit 3ff832
                                  const gchar* annotation);
Packit 3ff832
void emoji_application_candidate_clicked_lookup_table (EmojiApplication* self,
Packit 3ff832
                                                       guint index,
Packit 3ff832
                                                       guint button,
Packit 3ff832
                                                       guint state);
Packit 3ff832
#define IBUS_EMOJIER_BUTTON_CLOSE_BUTTON ((guint) 1000)
Packit 3ff832
guint ibus_emojier_get_number_of_candidates (IBusEmojier* self);
Packit 3ff832
void ibus_emojier_set_cursor_pos (IBusEmojier* self,
Packit 3ff832
                                  guint cursor_pos);
Packit 3ff832
gboolean ibus_emojier_has_variants (IBusEmojier* self,
Packit 3ff832
                                    guint index);
Packit 3ff832
gchar* ibus_emojier_get_current_candidate (IBusEmojier* self);
Packit 3ff832
static void _vala_array_add1 (gchar** * array,
Packit 3ff832
                       int* length,
Packit 3ff832
                       int* size,
Packit 3ff832
                       gchar* value);
Packit 3ff832
void emoji_application_activate_dialog (EmojiApplication* self,
Packit 3ff832
                                        GApplicationCommandLine* command_line);
Packit 3ff832
static gint _emoji_application_command_line (EmojiApplication* self,
Packit 3ff832
                                      GApplicationCommandLine* command_line);
Packit 3ff832
void ibus_emojier_set_emoji_font (const gchar* emoji_font);
Packit 3ff832
gboolean ibus_emojier_is_running (IBusEmojier* self);
Packit 3ff832
void ibus_emojier_present_centralize (IBusEmojier* self,
Packit 3ff832
                                      GdkEvent* event);
Packit 3ff832
static void _vala_GdkEvent_free (GdkEvent* self);
Packit 3ff832
void ibus_emojier_set_annotation_lang (const gchar* lang);
Packit 3ff832
void ibus_emojier_set_partial_match (gboolean has_partial_match);
Packit 3ff832
void ibus_emojier_set_partial_match_length (gint length);
Packit 3ff832
void ibus_emojier_set_partial_match_condition (gint condition);
Packit 3ff832
void ibus_emojier_set_favorites (gchar** unowned_favorites,
Packit 3ff832
                                 int unowned_favorites_length1,
Packit 3ff832
                                 gchar** unowned_favorite_annotations,
Packit 3ff832
                                 int unowned_favorite_annotations_length1);
Packit 3ff832
void ibus_emojier_load_unicode_dict (void);
Packit 3ff832
IBusEmojier* ibus_emojier_new (void);
Packit 3ff832
IBusEmojier* ibus_emojier_construct (GType object_type);
Packit 3ff832
static void ___lambda28_ (EmojiApplication* self,
Packit 3ff832
                   guint i,
Packit 3ff832
                   guint b,
Packit 3ff832
                   guint s);
Packit 3ff832
static void ____lambda28__ibus_emojier_candidate_clicked (IBusEmojier* _sender,
Packit 3ff832
                                                   guint index,
Packit 3ff832
                                                   guint button,
Packit 3ff832
                                                   guint state,
Packit 3ff832
                                                   gpointer self);
Packit 3ff832
static gint emoji_application_real_command_line (GApplication* base,
Packit 3ff832
                                          GApplicationCommandLine* command_line);
Packit 3ff832
static void emoji_application_real_shutdown (GApplication* base);
Packit 3ff832
gint emoji_application_main (gchar** args,
Packit 3ff832
                             int args_length1);
Packit 3ff832
static void emoji_application_finalize (GObject * obj);
Packit 3ff832
static void _vala_array_destroy (gpointer array,
Packit 3ff832
                          gint array_length,
Packit 3ff832
                          GDestroyNotify destroy_func);
Packit 3ff832
static void _vala_array_free (gpointer array,
Packit 3ff832
                       gint array_length,
Packit 3ff832
                       GDestroyNotify destroy_func);
Packit 3ff832
static gint _vala_array_length (gpointer array);
Packit 3ff832
Packit 3ff832
Packit 3ff832
static EmojiApplication*
Packit 3ff832
emoji_application_construct (GType object_type)
Packit 3ff832
{
Packit 3ff832
	EmojiApplication * self = NULL;
Packit 3ff832
	self = (EmojiApplication*) g_object_new (object_type, "application-id", "org.freedesktop.IBus.Panel.Emojier", "flags", G_APPLICATION_HANDLES_COMMAND_LINE, NULL);
Packit 3ff832
	g_application_set_inactivity_timeout ((GApplication*) self, (guint) 100000);
Packit 3ff832
	return self;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static EmojiApplication*
Packit 3ff832
emoji_application_new (void)
Packit 3ff832
{
Packit 3ff832
	return emoji_application_construct (TYPE_EMOJI_APPLICATION);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static gpointer
Packit 3ff832
_g_object_ref0 (gpointer self)
Packit 3ff832
{
Packit 3ff832
	return self ? g_object_ref (self) : NULL;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
emoji_application_show_dialog (EmojiApplication* self,
Packit 3ff832
                               GApplicationCommandLine* command_line)
Packit 3ff832
{
Packit 3ff832
	GApplicationCommandLine* _tmp0_;
Packit 3ff832
	IBusEmojier* _tmp1_;
Packit 3ff832
	IBusEmojier* _tmp2_;
Packit 3ff832
	IBusEmojier* _tmp3_;
Packit 3ff832
	g_return_if_fail (self != NULL);
Packit 3ff832
	g_return_if_fail (command_line != NULL);
Packit 3ff832
	_tmp0_ = _g_object_ref0 (command_line);
Packit 3ff832
	_g_object_unref0 (self->priv->m_command_line);
Packit 3ff832
	self->priv->m_command_line = _tmp0_;
Packit 3ff832
	_tmp1_ = self->priv->m_emojier;
Packit 3ff832
	ibus_emojier_reset (_tmp1_);
Packit 3ff832
	_tmp2_ = self->priv->m_emojier;
Packit 3ff832
	ibus_emojier_set_annotation (_tmp2_, "");
Packit 3ff832
	_tmp3_ = self->priv->m_emojier;
Packit 3ff832
	gtk_widget_show_all ((GtkWidget*) _tmp3_);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
_vala_array_add1 (gchar** * array,
Packit 3ff832
                  int* length,
Packit 3ff832
                  int* size,
Packit 3ff832
                  gchar* value)
Packit 3ff832
{
Packit 3ff832
	if ((*length) == (*size)) {
Packit 3ff832
		*size = (*size) ? (2 * (*size)) : 4;
Packit 3ff832
		*array = g_renew (gchar*, *array, (*size) + 1);
Packit 3ff832
	}
Packit 3ff832
	(*array)[(*length)++] = value;
Packit 3ff832
	(*array)[*length] = NULL;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
void
Packit 3ff832
emoji_application_candidate_clicked_lookup_table (EmojiApplication* self,
Packit 3ff832
                                                  guint index,
Packit 3ff832
                                                  guint button,
Packit 3ff832
                                                  guint state)
Packit 3ff832
{
Packit 3ff832
	GApplicationCommandLine* _tmp0_;
Packit 3ff832
	IBusEmojier* _tmp3_;
Packit 3ff832
	gboolean show_candidate = FALSE;
Packit 3ff832
	guint ncandidates = 0U;
Packit 3ff832
	IBusEmojier* _tmp4_;
Packit 3ff832
	gboolean _tmp5_ = FALSE;
Packit 3ff832
	guint _tmp6_;
Packit 3ff832
	gboolean _tmp10_;
Packit 3ff832
	gchar* emoji = NULL;
Packit 3ff832
	IBusEmojier* _tmp11_;
Packit 3ff832
	gchar* _tmp12_;
Packit 3ff832
	IBusEmojier* _tmp13_;
Packit 3ff832
	GtkClipboard* clipboard = NULL;
Packit 3ff832
	GtkClipboard* _tmp14_;
Packit 3ff832
	GtkClipboard* _tmp15_;
Packit 3ff832
	GtkClipboard* _tmp16_;
Packit 3ff832
	const gchar* _tmp17_;
Packit 3ff832
	GtkClipboard* _tmp18_;
Packit 3ff832
	gchar** emojier_favorites = NULL;
Packit 3ff832
	GSettings* _tmp19_;
Packit 3ff832
	gchar** _tmp20_;
Packit 3ff832
	gchar** _tmp21_;
Packit 3ff832
	gint emojier_favorites_length1;
Packit 3ff832
	gint _emojier_favorites_size_;
Packit 3ff832
	gboolean has_favorite = FALSE;
Packit 3ff832
	gchar** _tmp22_;
Packit 3ff832
	gint _tmp22__length1;
Packit 3ff832
	gboolean _tmp25_;
Packit 3ff832
	GApplicationCommandLine* _tmp31_;
Packit 3ff832
	g_return_if_fail (self != NULL);
Packit 3ff832
	_tmp0_ = self->priv->m_command_line;
Packit 3ff832
	if (_tmp0_ == NULL) {
Packit 3ff832
		return;
Packit 3ff832
	}
Packit 3ff832
	if (button == IBUS_EMOJIER_BUTTON_CLOSE_BUTTON) {
Packit 3ff832
		IBusEmojier* _tmp1_;
Packit 3ff832
		GApplicationCommandLine* _tmp2_;
Packit 3ff832
		_tmp1_ = self->priv->m_emojier;
Packit 3ff832
		gtk_widget_hide ((GtkWidget*) _tmp1_);
Packit 3ff832
		_tmp2_ = self->priv->m_command_line;
Packit 3ff832
		g_application_command_line_print (_tmp2_, "%s\n", _ ("Canceled to choose an emoji."));
Packit 3ff832
		_g_object_unref0 (self->priv->m_command_line);
Packit 3ff832
		self->priv->m_command_line = NULL;
Packit 3ff832
		return;
Packit 3ff832
	}
Packit 3ff832
	_tmp3_ = self->priv->m_emojier;
Packit 3ff832
	if (_tmp3_ == NULL) {
Packit 3ff832
		return;
Packit 3ff832
	}
Packit 3ff832
	show_candidate = FALSE;
Packit 3ff832
	_tmp4_ = self->priv->m_emojier;
Packit 3ff832
	ncandidates = ibus_emojier_get_number_of_candidates (_tmp4_);
Packit 3ff832
	_tmp6_ = ncandidates;
Packit 3ff832
	if (_tmp6_ > ((guint) 0)) {
Packit 3ff832
		guint _tmp7_;
Packit 3ff832
		_tmp7_ = ncandidates;
Packit 3ff832
		_tmp5_ = _tmp7_ >= index;
Packit 3ff832
	} else {
Packit 3ff832
		_tmp5_ = FALSE;
Packit 3ff832
	}
Packit 3ff832
	if (_tmp5_) {
Packit 3ff832
		IBusEmojier* _tmp8_;
Packit 3ff832
		IBusEmojier* _tmp9_;
Packit 3ff832
		_tmp8_ = self->priv->m_emojier;
Packit 3ff832
		ibus_emojier_set_cursor_pos (_tmp8_, index);
Packit 3ff832
		_tmp9_ = self->priv->m_emojier;
Packit 3ff832
		show_candidate = ibus_emojier_has_variants (_tmp9_, index);
Packit 3ff832
	} else {
Packit 3ff832
		return;
Packit 3ff832
	}
Packit 3ff832
	_tmp10_ = show_candidate;
Packit 3ff832
	if (_tmp10_) {
Packit 3ff832
		return;
Packit 3ff832
	}
Packit 3ff832
	_tmp11_ = self->priv->m_emojier;
Packit 3ff832
	_tmp12_ = ibus_emojier_get_current_candidate (_tmp11_);
Packit 3ff832
	emoji = _tmp12_;
Packit 3ff832
	_tmp13_ = self->priv->m_emojier;
Packit 3ff832
	gtk_widget_hide ((GtkWidget*) _tmp13_);
Packit 3ff832
	_tmp14_ = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
Packit 3ff832
	_tmp15_ = _g_object_ref0 (_tmp14_);
Packit 3ff832
	clipboard = _tmp15_;
Packit 3ff832
	_tmp16_ = clipboard;
Packit 3ff832
	_tmp17_ = emoji;
Packit 3ff832
	gtk_clipboard_set_text (_tmp16_, _tmp17_, -1);
Packit 3ff832
	_tmp18_ = clipboard;
Packit 3ff832
	gtk_clipboard_store (_tmp18_);
Packit 3ff832
	_tmp19_ = self->priv->m_settings_emoji;
Packit 3ff832
	_tmp21_ = _tmp20_ = g_settings_get_strv (_tmp19_, "favorites");
Packit 3ff832
	emojier_favorites = _tmp21_;
Packit 3ff832
	emojier_favorites_length1 = _vala_array_length (_tmp20_);
Packit 3ff832
	_emojier_favorites_size_ = emojier_favorites_length1;
Packit 3ff832
	has_favorite = FALSE;
Packit 3ff832
	_tmp22_ = emojier_favorites;
Packit 3ff832
	_tmp22__length1 = emojier_favorites_length1;
Packit 3ff832
	{
Packit 3ff832
		gchar** favorite_collection = NULL;
Packit 3ff832
		gint favorite_collection_length1 = 0;
Packit 3ff832
		gint _favorite_collection_size_ = 0;
Packit 3ff832
		gint favorite_it = 0;
Packit 3ff832
		favorite_collection = _tmp22_;
Packit 3ff832
		favorite_collection_length1 = _tmp22__length1;
Packit 3ff832
		for (favorite_it = 0; favorite_it < _tmp22__length1; favorite_it = favorite_it + 1) {
Packit 3ff832
			const gchar* favorite = NULL;
Packit 3ff832
			favorite = favorite_collection[favorite_it];
Packit 3ff832
			{
Packit 3ff832
				const gchar* _tmp23_;
Packit 3ff832
				const gchar* _tmp24_;
Packit 3ff832
				_tmp23_ = favorite;
Packit 3ff832
				_tmp24_ = emoji;
Packit 3ff832
				if (g_strcmp0 (_tmp23_, _tmp24_) == 0) {
Packit 3ff832
					has_favorite = TRUE;
Packit 3ff832
					break;
Packit 3ff832
				}
Packit 3ff832
			}
Packit 3ff832
		}
Packit 3ff832
	}
Packit 3ff832
	_tmp25_ = has_favorite;
Packit 3ff832
	if (!_tmp25_) {
Packit 3ff832
		gchar** _tmp26_;
Packit 3ff832
		gint _tmp26__length1;
Packit 3ff832
		const gchar* _tmp27_;
Packit 3ff832
		gchar* _tmp28_;
Packit 3ff832
		GSettings* _tmp29_;
Packit 3ff832
		gchar** _tmp30_;
Packit 3ff832
		gint _tmp30__length1;
Packit 3ff832
		_tmp26_ = emojier_favorites;
Packit 3ff832
		_tmp26__length1 = emojier_favorites_length1;
Packit 3ff832
		_tmp27_ = emoji;
Packit 3ff832
		_tmp28_ = g_strdup (_tmp27_);
Packit 3ff832
		_vala_array_add1 (&emojier_favorites, &emojier_favorites_length1, &_emojier_favorites_size_, _tmp28_);
Packit 3ff832
		_tmp29_ = self->priv->m_settings_emoji;
Packit 3ff832
		_tmp30_ = emojier_favorites;
Packit 3ff832
		_tmp30__length1 = emojier_favorites_length1;
Packit 3ff832
		g_settings_set_strv (_tmp29_, "favorites", _tmp30_);
Packit 3ff832
	}
Packit 3ff832
	_tmp31_ = self->priv->m_command_line;
Packit 3ff832
	g_application_command_line_print (_tmp31_, "%s\n", _ ("Copied an emoji to your clipboard."));
Packit 3ff832
	_g_object_unref0 (self->priv->m_command_line);
Packit 3ff832
	self->priv->m_command_line = NULL;
Packit 3ff832
	emojier_favorites = (_vala_array_free (emojier_favorites, emojier_favorites_length1, (GDestroyNotify) g_free), NULL);
Packit 3ff832
	_g_object_unref0 (clipboard);
Packit 3ff832
	_g_free0 (emoji);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
void
Packit 3ff832
emoji_application_activate_dialog (EmojiApplication* self,
Packit 3ff832
                                   GApplicationCommandLine* command_line)
Packit 3ff832
{
Packit 3ff832
	g_return_if_fail (self != NULL);
Packit 3ff832
	g_return_if_fail (command_line != NULL);
Packit 3ff832
	g_application_hold ((GApplication*) self);
Packit 3ff832
	emoji_application_show_dialog (self, command_line);
Packit 3ff832
	g_application_release ((GApplication*) self);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
_vala_GdkEvent_free (GdkEvent* self)
Packit 3ff832
{
Packit 3ff832
	g_boxed_free (gdk_event_get_type (), self);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
___lambda28_ (EmojiApplication* self,
Packit 3ff832
              guint i,
Packit 3ff832
              guint b,
Packit 3ff832
              guint s)
Packit 3ff832
{
Packit 3ff832
	emoji_application_candidate_clicked_lookup_table (self, i, b, s);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
____lambda28__ibus_emojier_candidate_clicked (IBusEmojier* _sender,
Packit 3ff832
                                              guint index,
Packit 3ff832
                                              guint button,
Packit 3ff832
                                              guint state,
Packit 3ff832
                                              gpointer self)
Packit 3ff832
{
Packit 3ff832
	___lambda28_ ((EmojiApplication*) self, index, button, state);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static gint
Packit 3ff832
_emoji_application_command_line (EmojiApplication* self,
Packit 3ff832
                                 GApplicationCommandLine* command_line)
Packit 3ff832
{
Packit 3ff832
	gint result = 0;
Packit 3ff832
	GSettings* _tmp0_;
Packit 3ff832
	gchar* _tmp1_;
Packit 3ff832
	gchar* _tmp2_;
Packit 3ff832
	static const GOptionEntry options[6] = {{"font", (gchar) 0, 0, G_OPTION_ARG_STRING, &emoji_font, N_ ("\"FONT\" for emoji characters on emoji dialog"), N_ ("FONT")}, {"lang", (gchar) 0, 0, G_OPTION_ARG_STRING, &annotation_lang, N_ ("\"LANG\" for annotations on emoji dialog. E.g. \"en\""), N_ ("LANG")}, {"partial-match", (gchar) 0, 0, G_OPTION_ARG_NONE, &partial_match, N_ ("Emoji annotations can be match partially"), NULL}, {"partial-match-length", (gchar) 0, 0, G_OPTION_ARG_INT, &partial_match_length, N_ ("Match with the length of the specified integer"), NULL}, {"partial-match-condition", (gchar) 0, 0, G_OPTION_ARG_INT, &partial_match_condition, N_ ("Match with the condition of the specified integer"), NULL}, {NULL}};
Packit 3ff832
	GOptionContext* option = NULL;
Packit 3ff832
	GOptionContext* _tmp3_;
Packit 3ff832
	GOptionContext* _tmp4_;
Packit 3ff832
	gchar** args = NULL;
Packit 3ff832
	gint _tmp5_;
Packit 3ff832
	gchar** _tmp6_;
Packit 3ff832
	gint args_length1;
Packit 3ff832
	gint _args_size_;
Packit 3ff832
	const gchar** _args = NULL;
Packit 3ff832
	gchar** _tmp7_;
Packit 3ff832
	gint _tmp7__length1;
Packit 3ff832
	gchar** _tmp8_;
Packit 3ff832
	gint _args_length1;
Packit 3ff832
	gint __args_size_;
Packit 3ff832
	gboolean _tmp26_ = FALSE;
Packit 3ff832
	IBusEmojier* _tmp27_;
Packit 3ff832
	const gchar* _tmp35_;
Packit 3ff832
	const gchar* _tmp38_;
Packit 3ff832
	gboolean _tmp39_;
Packit 3ff832
	gint _tmp40_;
Packit 3ff832
	gint _tmp43_;
Packit 3ff832
	const gchar* _tmp48_;
Packit 3ff832
	GSettings* _tmp50_;
Packit 3ff832
	gchar** _tmp51_;
Packit 3ff832
	gchar** _tmp52_;
Packit 3ff832
	gchar** _tmp53_;
Packit 3ff832
	gint _tmp53__length1;
Packit 3ff832
	GSettings* _tmp54_;
Packit 3ff832
	gchar** _tmp55_;
Packit 3ff832
	gchar** _tmp56_;
Packit 3ff832
	gchar** _tmp57_;
Packit 3ff832
	gint _tmp57__length1;
Packit 3ff832
	IBusEmojier* _tmp58_;
Packit 3ff832
	GError * _inner_error_ = NULL;
Packit 3ff832
	g_return_val_if_fail (self != NULL, 0);
Packit 3ff832
	g_return_val_if_fail (command_line != NULL, 0);
Packit 3ff832
	_tmp0_ = self->priv->m_settings_emoji;
Packit 3ff832
	_tmp1_ = g_settings_get_string (_tmp0_, "font");
Packit 3ff832
	_tmp2_ = _tmp1_;
Packit 3ff832
	ibus_emojier_set_emoji_font (_tmp2_);
Packit 3ff832
	_g_free0 (_tmp2_);
Packit 3ff832
	_tmp3_ = g_option_context_new (NULL);
Packit 3ff832
	option = _tmp3_;
Packit 3ff832
	_tmp4_ = option;
Packit 3ff832
	g_option_context_add_main_entries (_tmp4_, options, GETTEXT_PACKAGE);
Packit 3ff832
	_tmp6_ = g_application_command_line_get_arguments (command_line, &_tmp5_);
Packit 3ff832
	args = _tmp6_;
Packit 3ff832
	args_length1 = _tmp5_;
Packit 3ff832
	_args_size_ = args_length1;
Packit 3ff832
	_tmp7_ = args;
Packit 3ff832
	_tmp7__length1 = args_length1;
Packit 3ff832
	_tmp8_ = g_new0 (gchar*, _tmp7__length1 + 1);
Packit 3ff832
	_args = _tmp8_;
Packit 3ff832
	_args_length1 = _tmp7__length1;
Packit 3ff832
	__args_size_ = _args_length1;
Packit 3ff832
	{
Packit 3ff832
		gint i = 0;
Packit 3ff832
		i = 0;
Packit 3ff832
		{
Packit 3ff832
			gboolean _tmp9_ = FALSE;
Packit 3ff832
			_tmp9_ = TRUE;
Packit 3ff832
			while (TRUE) {
Packit 3ff832
				gint _tmp11_;
Packit 3ff832
				gchar** _tmp12_;
Packit 3ff832
				gint _tmp12__length1;
Packit 3ff832
				const gchar** _tmp13_;
Packit 3ff832
				gint _tmp13__length1;
Packit 3ff832
				gint _tmp14_;
Packit 3ff832
				gchar** _tmp15_;
Packit 3ff832
				gint _tmp15__length1;
Packit 3ff832
				gint _tmp16_;
Packit 3ff832
				const gchar* _tmp17_;
Packit 3ff832
				const gchar* _tmp18_;
Packit 3ff832
				if (!_tmp9_) {
Packit 3ff832
					gint _tmp10_;
Packit 3ff832
					_tmp10_ = i;
Packit 3ff832
					i = _tmp10_ + 1;
Packit 3ff832
				}
Packit 3ff832
				_tmp9_ = FALSE;
Packit 3ff832
				_tmp11_ = i;
Packit 3ff832
				_tmp12_ = args;
Packit 3ff832
				_tmp12__length1 = args_length1;
Packit 3ff832
				if (!(_tmp11_ < _tmp12__length1)) {
Packit 3ff832
					break;
Packit 3ff832
				}
Packit 3ff832
				_tmp13_ = _args;
Packit 3ff832
				_tmp13__length1 = _args_length1;
Packit 3ff832
				_tmp14_ = i;
Packit 3ff832
				_tmp15_ = args;
Packit 3ff832
				_tmp15__length1 = args_length1;
Packit 3ff832
				_tmp16_ = i;
Packit 3ff832
				_tmp17_ = _tmp15_[_tmp16_];
Packit 3ff832
				_tmp13_[_tmp14_] = _tmp17_;
Packit 3ff832
				_tmp18_ = _tmp13_[_tmp14_];
Packit 3ff832
			}
Packit 3ff832
		}
Packit 3ff832
	}
Packit 3ff832
	_g_free0 (emoji_font);
Packit 3ff832
	emoji_font = NULL;
Packit 3ff832
	_g_free0 (annotation_lang);
Packit 3ff832
	annotation_lang = NULL;
Packit 3ff832
	{
Packit 3ff832
		gchar** tmp = NULL;
Packit 3ff832
		const gchar** _tmp19_;
Packit 3ff832
		gint _tmp19__length1;
Packit 3ff832
		gint tmp_length1;
Packit 3ff832
		gint _tmp_size_;
Packit 3ff832
		GOptionContext* _tmp20_;
Packit 3ff832
		_tmp19_ = _args;
Packit 3ff832
		_tmp19__length1 = _args_length1;
Packit 3ff832
		tmp = _tmp19_;
Packit 3ff832
		tmp_length1 = _tmp19__length1;
Packit 3ff832
		_tmp_size_ = tmp_length1;
Packit 3ff832
		_tmp20_ = option;
Packit 3ff832
		g_option_context_parse (_tmp20_, &tmp_length1, &tmp, &_inner_error_);
Packit 3ff832
		if (G_UNLIKELY (_inner_error_ != NULL)) {
Packit 3ff832
			gint _tmp21_ = -1;
Packit 3ff832
			if (_inner_error_->domain == G_OPTION_ERROR) {
Packit 3ff832
				goto __catch0_g_option_error;
Packit 3ff832
			}
Packit 3ff832
			_args = (g_free (_args), NULL);
Packit 3ff832
			args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
Packit 3ff832
			_g_option_context_free0 (option);
Packit 3ff832
			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);
Packit 3ff832
			g_clear_error (&_inner_error_);
Packit 3ff832
			return _tmp21_;
Packit 3ff832
		}
Packit 3ff832
	}
Packit 3ff832
	goto __finally0;
Packit 3ff832
	__catch0_g_option_error:
Packit 3ff832
	{
Packit 3ff832
		GError* e = NULL;
Packit 3ff832
		FILE* _tmp22_;
Packit 3ff832
		GError* _tmp23_;
Packit 3ff832
		const gchar* _tmp24_;
Packit 3ff832
		e = _inner_error_;
Packit 3ff832
		_inner_error_ = NULL;
Packit 3ff832
		_tmp22_ = stderr;
Packit 3ff832
		_tmp23_ = e;
Packit 3ff832
		_tmp24_ = _tmp23_->message;
Packit 3ff832
		fprintf (_tmp22_, "%s\n", _tmp24_);
Packit 3ff832
		result = EXIT_FAILURE;
Packit 3ff832
		_g_error_free0 (e);
Packit 3ff832
		_args = (g_free (_args), NULL);
Packit 3ff832
		args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
Packit 3ff832
		_g_option_context_free0 (option);
Packit 3ff832
		return result;
Packit 3ff832
	}
Packit 3ff832
	__finally0:
Packit 3ff832
	if (G_UNLIKELY (_inner_error_ != NULL)) {
Packit 3ff832
		gint _tmp25_ = -1;
Packit 3ff832
		_args = (g_free (_args), NULL);
Packit 3ff832
		args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
Packit 3ff832
		_g_option_context_free0 (option);
Packit 3ff832
		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);
Packit 3ff832
		g_clear_error (&_inner_error_);
Packit 3ff832
		return _tmp25_;
Packit 3ff832
	}
Packit 3ff832
	_tmp27_ = self->priv->m_emojier;
Packit 3ff832
	if (_tmp27_ != NULL) {
Packit 3ff832
		IBusEmojier* _tmp28_;
Packit 3ff832
		_tmp28_ = self->priv->m_emojier;
Packit 3ff832
		_tmp26_ = ibus_emojier_is_running (_tmp28_);
Packit 3ff832
	} else {
Packit 3ff832
		_tmp26_ = FALSE;
Packit 3ff832
	}
Packit 3ff832
	if (_tmp26_) {
Packit 3ff832
		GdkEvent* event = NULL;
Packit 3ff832
		GdkEvent* _tmp29_;
Packit 3ff832
		GdkEvent* _tmp30_;
Packit 3ff832
		GdkEventKey* _tmp31_;
Packit 3ff832
		GdkEventKey* _tmp32_;
Packit 3ff832
		IBusEmojier* _tmp33_;
Packit 3ff832
		GdkEvent* _tmp34_;
Packit 3ff832
		_tmp29_ = gdk_event_new (GDK_KEY_PRESS);
Packit 3ff832
		event = _tmp29_;
Packit 3ff832
		_tmp30_ = event;
Packit 3ff832
		_tmp31_ = (GdkEventKey *) (_tmp30_);
Packit 3ff832
		_tmp32_ = _tmp31_;
Packit 3ff832
		_tmp32_->time = (guint32) GDK_CURRENT_TIME;
Packit 3ff832
		_tmp33_ = self->priv->m_emojier;
Packit 3ff832
		_tmp34_ = event;
Packit 3ff832
		ibus_emojier_present_centralize (_tmp33_, _tmp34_);
Packit 3ff832
		result = EXIT_SUCCESS;
Packit 3ff832
		__vala_GdkEvent_free0 (event);
Packit 3ff832
		_args = (g_free (_args), NULL);
Packit 3ff832
		args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
Packit 3ff832
		_g_option_context_free0 (option);
Packit 3ff832
		return result;
Packit 3ff832
	}
Packit 3ff832
	_tmp35_ = annotation_lang;
Packit 3ff832
	if (_tmp35_ == NULL) {
Packit 3ff832
		GSettings* _tmp36_;
Packit 3ff832
		gchar* _tmp37_;
Packit 3ff832
		_tmp36_ = self->priv->m_settings_emoji;
Packit 3ff832
		_tmp37_ = g_settings_get_string (_tmp36_, "lang");
Packit 3ff832
		_g_free0 (annotation_lang);
Packit 3ff832
		annotation_lang = _tmp37_;
Packit 3ff832
	}
Packit 3ff832
	_tmp38_ = annotation_lang;
Packit 3ff832
	ibus_emojier_set_annotation_lang (_tmp38_);
Packit 3ff832
	_tmp39_ = partial_match;
Packit 3ff832
	ibus_emojier_set_partial_match (_tmp39_);
Packit 3ff832
	_tmp40_ = partial_match_length;
Packit 3ff832
	if (_tmp40_ > 0) {
Packit 3ff832
		gint _tmp41_;
Packit 3ff832
		_tmp41_ = partial_match_length;
Packit 3ff832
		ibus_emojier_set_partial_match_length (_tmp41_);
Packit 3ff832
	} else {
Packit 3ff832
		GSettings* _tmp42_;
Packit 3ff832
		_tmp42_ = self->priv->m_settings_emoji;
Packit 3ff832
		ibus_emojier_set_partial_match_length (g_settings_get_int (_tmp42_, "partial-match-length"));
Packit 3ff832
	}
Packit 3ff832
	_tmp43_ = partial_match_condition;
Packit 3ff832
	if (_tmp43_ > 2) {
Packit 3ff832
		GSettings* _tmp44_;
Packit 3ff832
		g_warning ("emojierapp.vala:178: Need condition between 0 and 2.");
Packit 3ff832
		_tmp44_ = self->priv->m_settings_emoji;
Packit 3ff832
		ibus_emojier_set_partial_match_condition (g_settings_get_int (_tmp44_, "partial-match-condition"));
Packit 3ff832
	} else {
Packit 3ff832
		gint _tmp45_;
Packit 3ff832
		_tmp45_ = partial_match_condition;
Packit 3ff832
		if (_tmp45_ >= 0) {
Packit 3ff832
			gint _tmp46_;
Packit 3ff832
			_tmp46_ = partial_match_condition;
Packit 3ff832
			ibus_emojier_set_partial_match_condition (_tmp46_);
Packit 3ff832
		} else {
Packit 3ff832
			GSettings* _tmp47_;
Packit 3ff832
			_tmp47_ = self->priv->m_settings_emoji;
Packit 3ff832
			ibus_emojier_set_partial_match_condition (g_settings_get_int (_tmp47_, "partial-match-condition"));
Packit 3ff832
		}
Packit 3ff832
	}
Packit 3ff832
	_tmp48_ = emoji_font;
Packit 3ff832
	if (_tmp48_ != NULL) {
Packit 3ff832
		const gchar* _tmp49_;
Packit 3ff832
		_tmp49_ = emoji_font;
Packit 3ff832
		ibus_emojier_set_emoji_font (_tmp49_);
Packit 3ff832
	}
Packit 3ff832
	_tmp50_ = self->priv->m_settings_emoji;
Packit 3ff832
	_tmp52_ = _tmp51_ = g_settings_get_strv (_tmp50_, "favorites");
Packit 3ff832
	_tmp53_ = _tmp52_;
Packit 3ff832
	_tmp53__length1 = _vala_array_length (_tmp51_);
Packit 3ff832
	_tmp54_ = self->priv->m_settings_emoji;
Packit 3ff832
	_tmp56_ = _tmp55_ = g_settings_get_strv (_tmp54_, "favorite-annotations");
Packit 3ff832
	_tmp57_ = _tmp56_;
Packit 3ff832
	_tmp57__length1 = _vala_array_length (_tmp55_);
Packit 3ff832
	ibus_emojier_set_favorites (_tmp53_, _vala_array_length (_tmp51_), _tmp57_, _vala_array_length (_tmp55_));
Packit 3ff832
	_tmp57_ = (_vala_array_free (_tmp57_, _tmp57__length1, (GDestroyNotify) g_free), NULL);
Packit 3ff832
	_tmp53_ = (_vala_array_free (_tmp53_, _tmp53__length1, (GDestroyNotify) g_free), NULL);
Packit 3ff832
	ibus_emojier_load_unicode_dict ();
Packit 3ff832
	_tmp58_ = self->priv->m_emojier;
Packit 3ff832
	if (_tmp58_ == NULL) {
Packit 3ff832
		IBusEmojier* _tmp59_;
Packit 3ff832
		IBusEmojier* _tmp60_;
Packit 3ff832
		IBusEmojier* _tmp61_;
Packit 3ff832
		_tmp59_ = ibus_emojier_new ();
Packit 3ff832
		g_object_ref_sink (_tmp59_);
Packit 3ff832
		_g_object_unref0 (self->priv->m_emojier);
Packit 3ff832
		self->priv->m_emojier = _tmp59_;
Packit 3ff832
		_tmp60_ = self->priv->m_emojier;
Packit 3ff832
		gtk_application_add_window ((GtkApplication*) self, (GtkWindow*) _tmp60_);
Packit 3ff832
		_tmp61_ = self->priv->m_emojier;
Packit 3ff832
		g_signal_connect_object (_tmp61_, "candidate-clicked", (GCallback) ____lambda28__ibus_emojier_candidate_clicked, self, 0);
Packit 3ff832
	}
Packit 3ff832
	emoji_application_activate_dialog (self, command_line);
Packit 3ff832
	result = EXIT_SUCCESS;
Packit 3ff832
	_args = (g_free (_args), NULL);
Packit 3ff832
	args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
Packit 3ff832
	_g_option_context_free0 (option);
Packit 3ff832
	return result;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static gint
Packit 3ff832
emoji_application_real_command_line (GApplication* base,
Packit 3ff832
                                     GApplicationCommandLine* command_line)
Packit 3ff832
{
Packit 3ff832
	EmojiApplication * self;
Packit 3ff832
	gint result = 0;
Packit 3ff832
	gint _result_ = 0;
Packit 3ff832
	self = (EmojiApplication*) base;
Packit 3ff832
	g_return_val_if_fail (command_line != NULL, 0);
Packit 3ff832
	g_application_hold ((GApplication*) self);
Packit 3ff832
	_result_ = _emoji_application_command_line (self, command_line);
Packit 3ff832
	g_application_release ((GApplication*) self);
Packit 3ff832
	result = _result_;
Packit 3ff832
	return result;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
emoji_application_real_shutdown (GApplication* base)
Packit 3ff832
{
Packit 3ff832
	EmojiApplication * self;
Packit 3ff832
	IBusEmojier* _tmp0_;
Packit 3ff832
	self = (EmojiApplication*) base;
Packit 3ff832
	G_APPLICATION_CLASS (emoji_application_parent_class)->shutdown ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_application_get_type (), GtkApplication));
Packit 3ff832
	_tmp0_ = self->priv->m_emojier;
Packit 3ff832
	gtk_application_remove_window ((GtkApplication*) self, (GtkWindow*) _tmp0_);
Packit 3ff832
	_g_object_unref0 (self->priv->m_emojier);
Packit 3ff832
	self->priv->m_emojier = NULL;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
gint
Packit 3ff832
emoji_application_main (gchar** args,
Packit 3ff832
                        int args_length1)
Packit 3ff832
{
Packit 3ff832
	gint result = 0;
Packit 3ff832
	EmojiApplication* app = NULL;
Packit 3ff832
	EmojiApplication* _tmp0_;
Packit 3ff832
	gint status = 0;
Packit 3ff832
	bindtextdomain (GETTEXT_PACKAGE, GLIB_LOCALE_DIR);
Packit 3ff832
	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
Packit 3ff832
	textdomain (GETTEXT_PACKAGE);
Packit 3ff832
	ibus_init ();
Packit 3ff832
	gtk_init (&args_length1, &args);
Packit 3ff832
	_tmp0_ = emoji_application_new ();
Packit 3ff832
	app = _tmp0_;
Packit 3ff832
	status = g_application_run ((GApplication*) app, args_length1, args);
Packit 3ff832
	result = status;
Packit 3ff832
	_g_object_unref0 (app);
Packit 3ff832
	return result;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
int
Packit 3ff832
main (int argc,
Packit 3ff832
      char ** argv)
Packit 3ff832
{
Packit 3ff832
	return emoji_application_main (argv, argc);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
emoji_application_class_init (EmojiApplicationClass * klass)
Packit 3ff832
{
Packit 3ff832
	emoji_application_parent_class = g_type_class_peek_parent (klass);
Packit 3ff832
	g_type_class_add_private (klass, sizeof (EmojiApplicationPrivate));
Packit 3ff832
	((GApplicationClass *) klass)->command_line = (gint (*) (GApplication *, GApplicationCommandLine*)) emoji_application_real_command_line;
Packit 3ff832
	((GApplicationClass *) klass)->shutdown = (void (*) (GApplication *)) emoji_application_real_shutdown;
Packit 3ff832
	G_OBJECT_CLASS (klass)->finalize = emoji_application_finalize;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
emoji_application_instance_init (EmojiApplication * self)
Packit 3ff832
{
Packit 3ff832
	GSettings* _tmp0_;
Packit 3ff832
	self->priv = EMOJI_APPLICATION_GET_PRIVATE (self);
Packit 3ff832
	_tmp0_ = g_settings_new ("org.freedesktop.ibus.panel.emoji");
Packit 3ff832
	self->priv->m_settings_emoji = _tmp0_;
Packit 3ff832
	self->priv->m_command_line = NULL;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
emoji_application_finalize (GObject * obj)
Packit 3ff832
{
Packit 3ff832
	EmojiApplication * self;
Packit 3ff832
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EMOJI_APPLICATION, EmojiApplication);
Packit 3ff832
	_g_object_unref0 (self->priv->m_emojier);
Packit 3ff832
	_g_object_unref0 (self->priv->m_settings_emoji);
Packit 3ff832
	_g_object_unref0 (self->priv->m_command_line);
Packit 3ff832
	G_OBJECT_CLASS (emoji_application_parent_class)->finalize (obj);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
GType
Packit 3ff832
emoji_application_get_type (void)
Packit 3ff832
{
Packit 3ff832
	static volatile gsize emoji_application_type_id__volatile = 0;
Packit 3ff832
	if (g_once_init_enter (&emoji_application_type_id__volatile)) {
Packit 3ff832
		static const GTypeInfo g_define_type_info = { sizeof (EmojiApplicationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) emoji_application_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EmojiApplication), 0, (GInstanceInitFunc) emoji_application_instance_init, NULL };
Packit 3ff832
		GType emoji_application_type_id;
Packit 3ff832
		emoji_application_type_id = g_type_register_static (gtk_application_get_type (), "EmojiApplication", &g_define_type_info, 0);
Packit 3ff832
		g_once_init_leave (&emoji_application_type_id__volatile, emoji_application_type_id);
Packit 3ff832
	}
Packit 3ff832
	return emoji_application_type_id__volatile;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
_vala_array_destroy (gpointer array,
Packit 3ff832
                     gint array_length,
Packit 3ff832
                     GDestroyNotify destroy_func)
Packit 3ff832
{
Packit 3ff832
	if ((array != NULL) && (destroy_func != NULL)) {
Packit 3ff832
		int i;
Packit 3ff832
		for (i = 0; i < array_length; i = i + 1) {
Packit 3ff832
			if (((gpointer*) array)[i] != NULL) {
Packit 3ff832
				destroy_func (((gpointer*) array)[i]);
Packit 3ff832
			}
Packit 3ff832
		}
Packit 3ff832
	}
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static void
Packit 3ff832
_vala_array_free (gpointer array,
Packit 3ff832
                  gint array_length,
Packit 3ff832
                  GDestroyNotify destroy_func)
Packit 3ff832
{
Packit 3ff832
	_vala_array_destroy (array, array_length, destroy_func);
Packit 3ff832
	g_free (array);
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static gint
Packit 3ff832
_vala_array_length (gpointer array)
Packit 3ff832
{
Packit 3ff832
	int length;
Packit 3ff832
	length = 0;
Packit 3ff832
	if (array) {
Packit 3ff832
		while (((gpointer*) array)[length]) {
Packit 3ff832
			length++;
Packit 3ff832
		}
Packit 3ff832
	}
Packit 3ff832
	return length;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832