/usr/include/ibus-1.0/ibusemoji.h is in libibus-1.0-dev 1.5.17-3ubuntu4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
/* vim:set et sts=4: */
/* bus - The Input Bus
* Copyright (C) 2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
* 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
*/
#if !defined (__IBUS_H_INSIDE__) && !defined (IBUS_COMPILATION)
#error "Only <ibus.h> can be included directly"
#endif
#ifndef __IBUS_EMOJI_H_
#define __IBUS_EMOJI_H_
/**
* SECTION: ibusemoji
* @short_description: emoji utility.
* @stability: Unstable
*
* miscellaneous emoji APIs.
*/
#include "ibusserializable.h"
/*
* Type macros.
*/
/* define GOBJECT macros */
#define IBUS_TYPE_EMOJI_DATA (ibus_emoji_data_get_type ())
#define IBUS_EMOJI_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
IBUS_TYPE_EMOJI_DATA, IBusEmojiData))
#define IBUS_EMOJI_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
IBUS_TYPE_EMOJI_DATA, IBusEmojiDataClass))
#define IBUS_IS_EMOJI_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
IBUS_TYPE_EMOJI_DATA))
G_BEGIN_DECLS
typedef struct _IBusEmojiData IBusEmojiData;
typedef struct _IBusEmojiDataPrivate IBusEmojiDataPrivate;
typedef struct _IBusEmojiDataClass IBusEmojiDataClass;
/**
* IBusEmojiData:
*
* Emoji data likes emoji unicode, annotations, description, category.
* You can get extended values with g_object_get_properties.
*/
struct _IBusEmojiData {
IBusSerializable parent;
/* instance members */
/*< public >*/
/*< private >*/
IBusEmojiDataPrivate *priv;
};
struct _IBusEmojiDataClass {
IBusSerializableClass parent;
/* class members */
};
GType ibus_emoji_data_get_type (void);
/**
* ibus_emoji_data_new:
* @first_property_name: Name of the first property.
* @...: the NULL-terminated arguments of the properties and values.
*
* Creates a new #IBusEmojiData.
* emoji property is required. e.g.
* ibus_emoji_data_new ("emoji", "😁", NULL)
*
* Returns: A newly allocated #IBusEmojiData.
*/
IBusEmojiData * ibus_emoji_data_new (const gchar *first_property_name,
...);
/**
* ibus_emoji_data_get_emoji:
* @emoji : An #IBusEmojiData
*
* Gets the emoji character in #IBusEmojiData. It should not be freed.
*
* Returns: emoji property in #IBusEmojiData
*/
const gchar * ibus_emoji_data_get_emoji (IBusEmojiData *emoji);
/**
* ibus_emoji_data_get_annotations:
* @emoji : An #IBusEmojiData
*
* Gets the annotation list in #IBusEmojiData. It should not be freed.
*
* Returns: (transfer none) (element-type utf8):
* annotation list property in #IBusEmojiData
*/
GSList * ibus_emoji_data_get_annotations (IBusEmojiData *emoji);
/**
* ibus_emoji_data_set_annotations:
* @emoji : An #IBusEmojiData
* @annotations: (transfer full) (element-type utf8): List of emoji annotations
*
* Sets the annotation list in #IBusEmojiData.
*/
void ibus_emoji_data_set_annotations (IBusEmojiData *emoji,
GSList *annotations);
/**
* ibus_emoji_data_get_description:
* @emoji : An #IBusEmojiData
*
* Gets the emoji description in #IBusEmojiData. It should not be freed.
*
* Returns: description property in #IBusEmojiData
*/
const gchar * ibus_emoji_data_get_description (IBusEmojiData *emoji);
/**
* ibus_emoji_data_set_description:
* @emoji : An #IBusEmojiData
* @description: An emoji description
*
* Sets the description in #IBusEmojiData.
*/
void ibus_emoji_data_set_description (IBusEmojiData *emoji,
const gchar *description);
/**
* ibus_emoji_data_get_category:
* @emoji : An #IBusEmojiData
*
* Gets the emoji category in #IBusEmojiData. It should not be freed.
*
* Returns: category property in #IBusEmojiData
*/
const gchar * ibus_emoji_data_get_category (IBusEmojiData *emoji);
/**
* ibus_emoji_dict_save:
* @path: A path of the saved dictionary file.
* @dict: (element-type utf8 gpointer) (transfer none): An Emoji dictionary
*
* Saves the Emoji dictionary to the cache file.
* Recommend to use ibus_emoji_data_save() instead becase GSList in
* GHashTable does not work with Gir and Vala.
* Calls ibus_emoji_data_save() internally. The format of the hash table
* changed and now is { emoji character, #IBusEmojiData object }.
*/
void ibus_emoji_dict_save (const gchar *path,
GHashTable *dict);
/**
* ibus_emoji_dict_load:
* @path: A path of the saved dictionary file.
*
* Returns: (element-type utf8 gpointer) (transfer none): An Emoji dictionary
* file loaded from the saved cache file.
*
* A hash table of { emoji character, #IBusEmojiData object } is loaded
* from the saved cache file.
* Recommend to use ibus_emoji_data_load() instead becase GSList in
* GHashTable does not work with Gir and Vala.
* Calls ibus_emoji_data_load() internally.
*/
GHashTable * ibus_emoji_dict_load (const gchar *path);
/**
* ibus_emoji_dict_lookup:
* @dict: (element-type utf8 IBusEmojiData) (transfer full): An Emoji dictionary
* @emoji: an emoji character
*
* Returns: (transfer none): An #IBusEmojiData of @emoji.
* This API was prepared for the old dict foramat with Gir and Vala
* but no longer needed.
* Use ibus_emoji_data_load() instead.
*/
IBusEmojiData * ibus_emoji_dict_lookup (GHashTable *dict,
const gchar *emoji);
/**
* ibus_emoji_data_save:
* @path: A path of the saved emoji data.
* @list: (element-type IBusEmojiData) (transfer none): A list of emoji data.
*
* Save the list of #IBusEmojiData to the cache file.
*/
void ibus_emoji_data_save (const gchar *path,
GSList *list);
/**
* ibus_emoji_data_load:
* @path: A path of the saved dictionary file.
*
* Returns: (element-type IBusEmojiData) (transfer container):
* An #IBusEmojiData list loaded from the saved cache file.
*/
GSList * ibus_emoji_data_load (const gchar *path);
G_END_DECLS
#endif
|