/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ /* vim:set et sts=4: */ /* bus - The Input Bus * Copyright (C) 2017-2018 Takao Fujiwara * Copyright (C) 2017 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA */ #ifndef __IBUS_EMOJI_DIALOG_H_ #define __IBUS_EMOJI_DIALOG_H_ #include /** * SECTION: ibusemojidialog * @short_description: emoji dialog utility. * @stability: Unstable * * miscellaneous emoji dialg APIs. */ G_BEGIN_DECLS typedef struct _IBusEmojier IBusEmojier; typedef struct _IBusEmojierPrivate IBusEmojierPrivate; typedef struct _IBusEmojierClass IBusEmojierClass; struct _IBusEmojier { /*< private >*/ GtkWindow parent_instance; IBusEmojierPrivate * priv; /* instance members */ /*< public >*/ }; struct _IBusEmojierClass { /*< private >*/ GtkWindowClass parent_class; /* class members */ /*< public >*/ /* signals */ }; GType ibus_emojier_get_type (void); /** * ibus_emojier_new: * * Creates a new #IBusEmojier. * * Returns: A newly allocated #IBusEmojiier. */ IBusEmojier * ibus_emojier_new (void); /** * ibus_emojier_run: * @self: An #IBusEmojier * @input_context_path: An input context path of #IBusInputContext * of the focused application. * @event: A #GdkEventKey for timestamp * * Runs emoji dialog to select emoji. * * Returns: A selected emoji character. */ gchar * ibus_emojier_run (IBusEmojier* self, const gchar* input_context_path, GdkEvent* event); /** * ibus_emojier_is_running: * @self: An #IBusEmojier * * Returns: boolean if the emoji dialog is running */ gboolean ibus_emojier_is_running (IBusEmojier* self); /** * ibus_emojier_get_input_context_path: * @self: An #IBusEmojier * * Returns: an input context path of #IBusInputContext * which is saved in ibus_emojier_run(). */ gchar * ibus_emojier_get_input_context_path (IBusEmojier* self); /** * ibus_emojier_get_selected_string: * @self: An #IBusEmojier * * Returns: an selected emoji character on the emoji dialog. */ gchar * ibus_emojier_get_selected_string (IBusEmojier* self); /** * ibus_emojier_reset: * @self: An #IBusEmojier * * Reset the selected string and input context path. */ void ibus_emojier_reset (IBusEmojier* self); /** * ibus_emojier_present_centralize: * @self: An #IBusEmojier * @event: A #GdkEventKey for timestamp * * Move the window to the toplevel on the screen and centralize it. */ void ibus_emojier_present_centralize (IBusEmojier* self, GdkEvent* event); /** * ibus_emojier_has_loaded_emoji_dict: * * Returns: %TRUE if the emoji dict is loaded, otherwise %FALSE. */ gboolean ibus_emojier_has_loaded_emoji_dict (void); /** * ibus_emojier_set_annotation_lang: * @lang: A langauge id for emoji annotations. * * Set a language id for emoji annotations. #IBusEmojier will load * $PKGDATADIR/dicts/emoji-@lang.dict. The default is "en". */ void ibus_emojier_set_annotation_lang (const gchar* lang); /** * ibus_emojier_set_emoji_font: * @emoji_font: font name for emoji characters * * Set emoji font on the emoji dialog */ void ibus_emojier_set_emoji_font (const gchar* emoji_font); /** * ibus_emojier_set_favorites: * @favorites: (array length=favorites_length): A custom emoji list. * @favorites_length: A length of @favorites * @favorite_annotations: (array length=favorite_annotations_length): * (nullable): * A custom annotation listfor @favorites. * @favorite_annotations_length: A length of @favorite_annotations * * Set custom emojis on the emoji dialog. @favorite_annotations * can be null. If you don't assign an annotation for a specific emoji, * you can pass the annotation as "", e.g. * favorite_annotations = { "", "", "my annotation" }; */ void ibus_emojier_set_favorites (gchar** favorites, int favorites_length, gchar** favorite_annotations, int favorite_annotations_length); /** * ibus_emojier_set_partial_match: * @has_partial_match: Enable the partial match if %TRUE. Otherwise if %FALSE. * * Set partial match for emoji annotations. */ void ibus_emojier_set_partial_match (gboolean has_partial_match); /** * ibus_emojier_set_partial_match_length: * @length: minimum lenght to match partially. * * Set the minimum lenght to match partially. */ void ibus_emojier_set_partial_match_length (gint length); /** * ibus_emojier_set_partial_match_condition: * @condition: condition id between 0 and 2. * * Set the partial match condition with the integer. */ void ibus_emojier_set_partial_match_condition (gint condition); /** * ibus_emojier_load_unicode_dict: * * Load the dictionary of #IBusUnicodeData. */ void ibus_emojier_load_unicode_dict (void); G_END_DECLS #endif