Blame ui/gtk3/ibusemojidialog.h

Packit 3ff832
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
Packit 3ff832
/* vim:set et sts=4: */
Packit 3ff832
/* bus - The Input Bus
Packit 3ff832
 * Copyright (C) 2017-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
Packit 3ff832
 * Copyright (C) 2017 Red Hat, Inc.
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
#ifndef __IBUS_EMOJI_DIALOG_H_
Packit 3ff832
#define __IBUS_EMOJI_DIALOG_H_
Packit 3ff832
Packit 3ff832
#include <gtk/gtk.h>
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * SECTION: ibusemojidialog
Packit 3ff832
 * @short_description: emoji dialog utility.
Packit 3ff832
 * @stability: Unstable
Packit 3ff832
 *
Packit 3ff832
 * miscellaneous emoji dialg APIs.
Packit 3ff832
 */
Packit 3ff832
Packit 3ff832
G_BEGIN_DECLS
Packit 3ff832
Packit 3ff832
typedef struct _IBusEmojier IBusEmojier;
Packit 3ff832
typedef struct _IBusEmojierPrivate IBusEmojierPrivate;
Packit 3ff832
typedef struct _IBusEmojierClass IBusEmojierClass;
Packit 3ff832
Packit 3ff832
struct _IBusEmojier {
Packit 3ff832
    /*< private >*/
Packit 3ff832
    GtkWindow parent_instance;
Packit 3ff832
    IBusEmojierPrivate * priv;
Packit 3ff832
    /* instance members */
Packit 3ff832
    /*< public >*/
Packit 3ff832
};
Packit 3ff832
Packit 3ff832
struct _IBusEmojierClass {
Packit 3ff832
    /*< private >*/
Packit 3ff832
    GtkWindowClass parent_class;
Packit 3ff832
    /* class members */
Packit 3ff832
    /*< public >*/
Packit 3ff832
    /* signals */
Packit 3ff832
};
Packit 3ff832
Packit 3ff832
GType           ibus_emojier_get_type        (void);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_new:
Packit 3ff832
 *
Packit 3ff832
 * Creates a new #IBusEmojier.
Packit 3ff832
 *
Packit 3ff832
 * Returns: A newly allocated #IBusEmojiier.
Packit 3ff832
 */
Packit 3ff832
IBusEmojier * ibus_emojier_new                    (void);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_run:
Packit 3ff832
 * @self: An #IBusEmojier
Packit 3ff832
 * @input_context_path: An input context path of #IBusInputContext
Packit 3ff832
 *                      of the focused application.
Packit 3ff832
 * @event: A #GdkEventKey for timestamp
Packit 3ff832
 *
Packit 3ff832
 * Runs emoji dialog to select emoji.
Packit 3ff832
 *
Packit 3ff832
 * Returns: A selected emoji character.
Packit 3ff832
 */
Packit 3ff832
gchar *       ibus_emojier_run                    (IBusEmojier* self,
Packit 3ff832
                                                   const gchar*
Packit 3ff832
                                                           input_context_path,
Packit 3ff832
                                                   GdkEvent*    event);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_is_running:
Packit 3ff832
 * @self: An #IBusEmojier
Packit 3ff832
 *
Packit 3ff832
 * Returns: boolean if the emoji dialog is running
Packit 3ff832
 */
Packit 3ff832
gboolean      ibus_emojier_is_running             (IBusEmojier* self);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_get_input_context_path:
Packit 3ff832
 * @self: An #IBusEmojier
Packit 3ff832
 *
Packit 3ff832
 * Returns: an input context path of #IBusInputContext
Packit 3ff832
 * which is saved in ibus_emojier_run().
Packit 3ff832
 */
Packit 3ff832
gchar *       ibus_emojier_get_input_context_path (IBusEmojier* self);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_get_selected_string:
Packit 3ff832
 * @self: An #IBusEmojier
Packit 3ff832
 *
Packit 3ff832
 * Returns: an selected emoji character on the emoji dialog.
Packit 3ff832
 */
Packit 3ff832
gchar *       ibus_emojier_get_selected_string    (IBusEmojier* self);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_reset:
Packit 3ff832
 * @self: An #IBusEmojier
Packit 3ff832
 *
Packit 3ff832
 * Reset the selected string and input context path.
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_reset                  (IBusEmojier* self);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_present_centralize:
Packit 3ff832
 * @self: An #IBusEmojier
Packit 3ff832
 * @event: A #GdkEventKey for timestamp
Packit 3ff832
 *
Packit 3ff832
 * Move the window to the toplevel on the screen and centralize it.
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_present_centralize     (IBusEmojier* self,
Packit 3ff832
                                                   GdkEvent*    event);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_has_loaded_emoji_dict:
Packit 3ff832
 *
Packit 3ff832
 * Returns: %TRUE if the emoji dict is loaded, otherwise %FALSE.
Packit 3ff832
 */
Packit 3ff832
gboolean      ibus_emojier_has_loaded_emoji_dict  (void);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_set_annotation_lang:
Packit 3ff832
 * @lang: A langauge id for emoji annotations.
Packit 3ff832
 *
Packit 3ff832
 * Set a language id for emoji annotations. #IBusEmojier will load
Packit 3ff832
 * $PKGDATADIR/dicts/emoji-@lang.dict. The default is "en".
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_set_annotation_lang    (const gchar* lang);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_set_emoji_font:
Packit 3ff832
 * @emoji_font: font name for emoji characters
Packit 3ff832
 *
Packit 3ff832
 * Set emoji font on the emoji dialog
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_set_emoji_font         (const gchar* emoji_font);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_set_favorites:
Packit 3ff832
 * @favorites: (array length=favorites_length): A custom emoji list.
Packit 3ff832
 * @favorites_length: A length of @favorites
Packit 3ff832
 * @favorite_annotations: (array length=favorite_annotations_length):
Packit 3ff832
 *                        (nullable):
Packit 3ff832
 *                        A custom annotation listfor @favorites.
Packit 3ff832
 * @favorite_annotations_length: A length of @favorite_annotations
Packit 3ff832
 *
Packit 3ff832
 * Set custom emojis on the emoji dialog. @favorite_annotations
Packit 3ff832
 * can be null. If you don't assign an annotation for a specific emoji,
Packit 3ff832
 * you can pass the annotation as "", e.g.
Packit 3ff832
 * favorite_annotations = { "", "", "my annotation" };
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_set_favorites          (gchar**      favorites,
Packit 3ff832
                                                   int
Packit 3ff832
                                                   favorites_length,
Packit 3ff832
                                                   gchar**
Packit 3ff832
                                                   favorite_annotations,
Packit 3ff832
                                                   int
Packit 3ff832
                                                   favorite_annotations_length);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_set_partial_match:
Packit 3ff832
 * @has_partial_match: Enable the partial match if %TRUE. Otherwise if %FALSE.
Packit 3ff832
 *
Packit 3ff832
 * Set partial match for emoji annotations.
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_set_partial_match      (gboolean  has_partial_match);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_set_partial_match_length:
Packit 3ff832
 * @length: minimum lenght to match partially.
Packit 3ff832
 *
Packit 3ff832
 * Set the minimum lenght to match partially.
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_set_partial_match_length
Packit 3ff832
                                                  (gint         length);
Packit 3ff832
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_set_partial_match_condition:
Packit 3ff832
 * @condition: condition id between 0 and 2.
Packit 3ff832
 *
Packit 3ff832
 * Set the partial match condition with the integer.
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_set_partial_match_condition
Packit 3ff832
                                                  (gint         condition);
Packit 3ff832
/**
Packit 3ff832
 * ibus_emojier_load_unicode_dict:
Packit 3ff832
 *
Packit 3ff832
 * Load the dictionary of #IBusUnicodeData.
Packit 3ff832
 */
Packit 3ff832
void          ibus_emojier_load_unicode_dict      (void);
Packit 3ff832
Packit 3ff832
G_END_DECLS
Packit 3ff832
#endif