/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ /* vim:set et sts=4: */ /* ibus - The Input Bus * Copyright (C) 2008-2013 Peng Huang * Copyright (C) 2015-2018 Takao Fujiwara * Copyright (C) 2008-2018 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 can be included directly" #endif #ifndef __IBUS_SHARE_H_ #define __IBUS_SHARE_H_ /** * SECTION: ibusshare * @short_description: Shared utility functions and definition. * @stability: Stable * * This file defines some utility functions and definition * which are shared among ibus component and services. */ #include #ifdef IBUS_DISABLE_DEPRECATION_WARNINGS #define IBUS_DEPRECATED #else #define IBUS_DEPRECATED G_DEPRECATED #endif /** * IBUS_SERVICE_IBUS: * * Address of IBus service. */ #define IBUS_SERVICE_IBUS "org.freedesktop.IBus" /** * IBUS_SERVICE_PORTAL: * * Address of IBus portalservice. */ #define IBUS_SERVICE_PORTAL "org.freedesktop.portal.IBus" /** * IBUS_SERVICE_PANEL: * * Address of IBus panel service. */ #define IBUS_SERVICE_PANEL "org.freedesktop.IBus.Panel" /** * IBUS_SERVICE_PANEL_EXTENSION: * * Address of IBus panel extension service. */ #define IBUS_SERVICE_PANEL_EXTENSION "org.freedesktop.IBus.Panel.Extension" /** * IBUS_SERVICE_PANEL_EXTENSION_EMOJI: * * Address of IBus panel extension service for emoji. * This service provides emoji, Unicode code point, Unicode name features. */ #define IBUS_SERVICE_PANEL_EXTENSION_EMOJI \ "org.freedesktop.IBus.Panel.Extension.Emoji" /** * IBUS_SERVICE_CONFIG: * * Address of IBus config service. */ #define IBUS_SERVICE_CONFIG "org.freedesktop.IBus.Config" /** * IBUS_SERVICE_NOTIFICATIONS: * * Address of IBus notification service. */ #define IBUS_SERVICE_NOTIFICATIONS "org.freedesktop.IBus.Notifications" /** * IBUS_PATH_IBUS: * * D-Bus path for IBus */ #define IBUS_PATH_IBUS "/org/freedesktop/IBus" /** * IBUS_PATH_FACTORY: * * D-Bus path for IBus factory. */ #define IBUS_PATH_FACTORY "/org/freedesktop/IBus/Factory" /** * IBUS_PATH_PANEL: * * D-Bus path for IBus panel. */ #define IBUS_PATH_PANEL "/org/freedesktop/IBus/Panel" /** * IBUS_PATH_PANEL_EXTENSION_EMOJI: * * D-Bus path for IBus extension panel for emoji. * This service provides emoji, Unicode code point, Unicode name features. */ #define IBUS_PATH_PANEL_EXTENSION_EMOJI \ "/org/freedesktop/IBus/Panel/Extension/Emoji" /** * IBUS_PATH_CONFIG: * * D-Bus path for IBus config. */ #define IBUS_PATH_CONFIG "/org/freedesktop/IBus/Config" /** * IBUS_PATH_NOTIFICATIONS: * * D-Bus path for IBus notifications. */ #define IBUS_PATH_NOTIFICATIONS "/org/freedesktop/IBus/Notifications" /** * IBUS_PATH_INPUT_CONTEXT: * * Template of D-Bus path for IBus input context. */ #define IBUS_PATH_INPUT_CONTEXT "/org/freedesktop/IBus/InputContext_%d" /** * IBUS_INTERFACE_IBUS: * * D-Bus interface for IBus. */ #define IBUS_INTERFACE_IBUS "org.freedesktop.IBus" /** * IBUS_INTERFACE_PORTAL: * * D-Bus interface for IBus portal. */ #define IBUS_INTERFACE_PORTAL "org.freedesktop.IBus.Portal" /** * IBUS_INTERFACE_INPUT_CONTEXT: * * D-Bus interface for IBus input context. */ #define IBUS_INTERFACE_INPUT_CONTEXT \ "org.freedesktop.IBus.InputContext" /** * IBUS_INTERFACE_FACTORY: * * D-Bus interface for IBus factory. */ #define IBUS_INTERFACE_FACTORY "org.freedesktop.IBus.Factory" /** * IBUS_INTERFACE_ENGINE: * * D-Bus interface for IBus engine. */ #define IBUS_INTERFACE_ENGINE "org.freedesktop.IBus.Engine" /** * IBUS_INTERFACE_PANEL: * * D-Bus interface for IBus panel. */ #define IBUS_INTERFACE_PANEL "org.freedesktop.IBus.Panel" /** * IBUS_INTERFACE_CONFIG: * * D-Bus interface for IBus config. */ #define IBUS_INTERFACE_CONFIG "org.freedesktop.IBus.Config" /** * IBUS_INTERFACE_NOTIFICATIONS: * * D-Bus interface for IBus notifications. */ #define IBUS_INTERFACE_NOTIFICATIONS "org.freedesktop.IBus.Notifications" G_BEGIN_DECLS /** * ibus_get_local_machine_id: * * Obtains the machine UUID of the machine this process is running on. * * Returns: A newly allocated string that shows the UUID of the machine. */ const gchar *ibus_get_local_machine_id (void); /** * ibus_set_display: * @display: Display address, as in DISPLAY environment for X. * * Set the display address. */ void ibus_set_display (const gchar *display); /** * ibus_get_address: * * Return the D-Bus address of IBus. * It will find the address from following source: * * Environment variable IBUS_ADDRESS * Socket file under ~/.config/ibus/bus/ * * * Returns: D-Bus address of IBus. %NULL for not found. * * See also: ibus_write_address(). */ const gchar *ibus_get_address (void); /** * ibus_write_address: * @address: D-Bus address of IBus. * * Write D-Bus address to socket file. * * See also: ibus_get_address(). */ void ibus_write_address (const gchar *address); /** * ibus_get_user_name: * * Get the current user name. * It is determined by: * * getlogin() * Environment variable SUDO_USER * Environment variable USERHELPER_UID * Environment variable USERNAME * Environment variable LOGNAME * Environment variable USER * Environment variable LNAME * * * Returns: A newly allocated string that stores current user name. */ const gchar *ibus_get_user_name (void); /** * ibus_get_daemon_uid: * * Get UID of ibus-daemon. * * Returns: UID of ibus-daemon; or 0 if UID is not available. * * Deprecated: This function has been deprecated and should * not be used in newly written code. */ glong ibus_get_daemon_uid (void) G_GNUC_DEPRECATED; /** * ibus_get_socket_path: * * Get the path of socket file. * * Returns: A newly allocated string that stores the path of socket file. */ const gchar *ibus_get_socket_path (void); /** * ibus_get_timeout: * * Get the GDBus timeout in milliseconds. The timeout is for clients (e.g. * im-ibus.so), not for ibus-daemon. * Note that the timeout for ibus-daemon could be set by --timeout command * line option of the daemon. * * Returns: A GDBus timeout in milliseconds. -1 when default timeout for * GDBus should be used. */ gint ibus_get_timeout (void); /** * ibus_free_strv: * @strv: List of strings. * * Free a list of strings. * Deprecated: This function has been deprecated and should * not be used in newly written code. */ void ibus_free_strv (gchar **strv) G_GNUC_DEPRECATED; /** * ibus_key_event_to_string: * @keyval: Key symbol. * @modifiers: Modifiers such as Ctrl or Shift. * * Return the name of a key symbol and modifiers. * * For example, if press ctrl, shift, and enter, then this function returns: * Shift+Control+enter. * * Returns: The name of a key symbol and modifier. */ gchar *ibus_key_event_to_string (guint keyval, guint modifiers); /** * ibus_key_event_from_string: * @string: Key event string. * @keyval: Variable that hold key symbol result. * @modifiers: Variable that hold modifiers result. * * Parse key event string and return key symbol and modifiers. * * Returns: %TRUE for succeed; %FALSE if failed. */ gboolean ibus_key_event_from_string (const gchar *string, guint *keyval, guint *modifiers); /** * ibus_init: * * Initialize the ibus types. */ void ibus_init (void); /** * ibus_main: * * Runs an IBus main loop until ibus_quit() is called in the loop. * * See also: ibus_quit(). */ void ibus_main (void); /** * ibus_quit: * * Stops an IBus from running. * * Any calls to ibus_quit() for the loop will return. * See also: ibus_main(). */ void ibus_quit (void); /** * ibus_set_log_handler: * @verbose: TRUE for verbose logging. * * Sets GLIB's log handler to ours. Our log handler adds time info * including hour, minute, second, and microsecond, like: * * (ibus-daemon:7088): IBUS-DEBUG: 18:06:45.822819: ibus-daemon started * * If @verbose is %TRUE, all levels of messages will be logged. Otherwise, * DEBUG and WARNING messages will be ignored. The function is used in * ibus-daemon, but can be useful for IBus client programs as well for * debugging. It's totally fine for not calling this function. If you * don't set a custom GLIB log handler, the default GLIB log handler will * be used. */ void ibus_set_log_handler (gboolean verbose); /** * ibus_unset_log_handler: * * Remove the log handler which is set by ibus_set_log_handler. */ void ibus_unset_log_handler (void); G_END_DECLS #endif