Blame bus/engineproxy.h

Packit Service 1d8f1c
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
Packit Service 1d8f1c
/* vim:set et sts=4: */
Packit Service 1d8f1c
/* ibus - The Input Bus
Packit Service 1d8f1c
 * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>
Packit Service 1d8f1c
 * Copyright (C) 2018 Takao Fujiwara <takao.fujiwara@gmail.com>
Packit Service 1d8f1c
 * Copyright (C) 2008-2018 Red Hat, Inc.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * This library is free software; you can redistribute it and/or
Packit Service 1d8f1c
 * modify it under the terms of the GNU Lesser General Public
Packit Service 1d8f1c
 * License as published by the Free Software Foundation; either
Packit Service 1d8f1c
 * version 2.1 of the License, or (at your option) any later version.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * This library is distributed in the hope that it will be useful,
Packit Service 1d8f1c
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 1d8f1c
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 1d8f1c
 * Lesser General Public License for more details.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * You should have received a copy of the GNU Lesser General Public
Packit Service 1d8f1c
 * License along with this library; if not, write to the Free Software
Packit Service 1d8f1c
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
Packit Service 1d8f1c
 * USA
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
#ifndef __BUS_ENGINE_PROXY_H_
Packit Service 1d8f1c
#define __BUS_ENGINE_PROXY_H_
Packit Service 1d8f1c
Packit Service 1d8f1c
#include <gio/gio.h>
Packit Service 1d8f1c
#include <ibus.h>
Packit Service 1d8f1c
#include "connection.h"
Packit Service 1d8f1c
Packit Service 1d8f1c
/*
Packit Service 1d8f1c
 * Type macros.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
Packit Service 1d8f1c
/* define GOBJECT macros */
Packit Service 1d8f1c
#define BUS_TYPE_ENGINE_PROXY             \
Packit Service 1d8f1c
    (bus_engine_proxy_get_type ())
Packit Service 1d8f1c
#define BUS_ENGINE_PROXY(obj)             \
Packit Service 1d8f1c
    (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUS_TYPE_ENGINE_PROXY, BusEngineProxy))
Packit Service 1d8f1c
#define BUS_ENGINE_PROXY_CLASS(klass)     \
Packit Service 1d8f1c
    (G_TYPE_CHECK_CLASS_CAST ((klass), BUS_TYPE_ENGINE_PROXY, BusEngineProxyClass))
Packit Service 1d8f1c
#define BUS_IS_ENGINE_PROXY(obj)          \
Packit Service 1d8f1c
    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUS_TYPE_ENGINE_PROXY))
Packit Service 1d8f1c
#define BUS_IS_ENGINE_PROXY_CLASS(klass)  \
Packit Service 1d8f1c
    (G_TYPE_CHECK_CLASS_TYPE ((klass), BUS_TYPE_ENGINE_PROXY))
Packit Service 1d8f1c
#define BUS_ENGINE_PROXY_GET_CLASS(obj)   \
Packit Service 1d8f1c
    (G_TYPE_INSTANCE_GET_CLASS ((obj), BUS_TYPE_ENGINE_PROXY, BusEngineProxyClass))
Packit Service 1d8f1c
Packit Service 1d8f1c
G_BEGIN_DECLS
Packit Service 1d8f1c
Packit Service 1d8f1c
typedef struct _BusEngineProxy BusEngineProxy;
Packit Service 1d8f1c
typedef struct _BusEngineProxyClass BusEngineProxyClass;
Packit Service 1d8f1c
Packit Service 1d8f1c
GType           bus_engine_proxy_get_type    (void);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_new:
Packit Service 1d8f1c
 * @desc: the engine to create.
Packit Service 1d8f1c
 * @timeout: timeout in msec, or -1 to use the default timeout value.
Packit Service 1d8f1c
 * @cancellable: a object that could be used to cancel the operation.
Packit Service 1d8f1c
 * @callback: a function to be called when the method invocation is done.
Packit Service 1d8f1c
 * @user_data: a pointer that will be passed to the callback.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_new         (IBusEngineDesc     *desc,
Packit Service 1d8f1c
                                              gint                timeout,
Packit Service 1d8f1c
                                              GCancellable       *cancellable,
Packit Service 1d8f1c
                                              GAsyncReadyCallback callback,
Packit Service 1d8f1c
                                              gpointer            user_data);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_new_finish:
Packit Service 1d8f1c
 * @res: A #GAsyncResult.
Packit Service 1d8f1c
 * @error: Return location for error or %NULL.
Packit Service 1d8f1c
 * @returns: On success, return an engine object. On error, return %NULL.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Get the result of bus_engine_proxy_new() call. You have to call this
Packit Service 1d8f1c
 * function in the #GAsyncReadyCallback function.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
BusEngineProxy *bus_engine_proxy_new_finish  (GAsyncResult       *res,
Packit Service 1d8f1c
                                              GError            **error);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_get_desc:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Get an #IBusEngineDesc object associated with the engine.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
IBusEngineDesc *bus_engine_proxy_get_desc    (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_process_key_event:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @keyval: Key symbol of the key press.
Packit Service 1d8f1c
 * @keycode: KeyCode of the key press.
Packit Service 1d8f1c
 * @state: Key modifier flags.
Packit Service 1d8f1c
 * @callback: A function to be called when the method invocation is done.
Packit Service 1d8f1c
 * @user_data: Data supplied to @callback.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "ProcessKeyEvent" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_process_key_event
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              guint               keyval,
Packit Service 1d8f1c
                                              guint               keycode,
Packit Service 1d8f1c
                                              guint               state,
Packit Service 1d8f1c
                                              GAsyncReadyCallback callback,
Packit Service 1d8f1c
                                              gpointer            user_data);
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_set_cursor_location:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @x: X coordinate of the cursor.
Packit Service 1d8f1c
 * @y: Y coordinate of the cursor.
Packit Service 1d8f1c
 * @w: Width of the cursor.
Packit Service 1d8f1c
 * @h: Height of the cursor.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "SetCursorLocation" method of an engine asynchronously. Unlike
Packit Service 1d8f1c
 * bus_engine_proxy_process_key_event(), there's no way to know the
Packit Service 1d8f1c
 * result of the method invocation. If the same coordinate is given
Packit Service 1d8f1c
 * twice or more, the function does nothing from the second time.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_set_cursor_location
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              gint                x,
Packit Service 1d8f1c
                                              gint                y,
Packit Service 1d8f1c
                                              gint                w,
Packit Service 1d8f1c
                                              gint                h);
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_focus_in:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "FocusIn" method of an engine asynchronously. Do nothing if
Packit Service 1d8f1c
 * the engine already has a focus.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_focus_in    (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_focus_out:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "FocusOut" method of an engine asynchronously. Do nothing if
Packit Service 1d8f1c
 * the engine does not have a focus.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_focus_out   (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_reset:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "Reset" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_reset       (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_set_capabilities:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @caps: Capabilities flags of IBusEngine, see #IBusCapabilite.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "SetCapabilities" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_set_capabilities
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              guint               caps);
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_page_up:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "PageUp" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_page_up     (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_page_down:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "PageDown" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_page_down   (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_cursor_up:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "CursorUp" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_cursor_up   (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_cursor_down:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "CursorDown" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_cursor_down (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_candidate_clicked:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @index:  Index of candidate be clicked.
Packit Service 1d8f1c
 * @button: Mouse button.
Packit Service 1d8f1c
 * @state:  Keyboard state.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "CandidateClicked" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_candidate_clicked
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              guint               index,
Packit Service 1d8f1c
                                              guint               button,
Packit Service 1d8f1c
                                              guint               state);
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_enable:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "Enable" method of an engine asynchronously. Do nothing if the
Packit Service 1d8f1c
 * engine is already enabled.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_enable      (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_disable:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "Disable" method of an engine asynchronously. Do nothing if
Packit Service 1d8f1c
 * the engine is already disabled.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_disable     (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_property_activate:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @name: Property name.
Packit Service 1d8f1c
 * @state: Property state.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "PropertyActivate" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_property_activate
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              const gchar        *prop_name,
Packit Service 1d8f1c
                                              guint               state);
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_property_show:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @prop_name: Property name.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "PropertyShow" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_property_show
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              const gchar        *prop_name);
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_property_hide:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @prop_name: Property name.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "PropertyHide" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_property_hide
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              const gchar        *prop_name);
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_is_enabled:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @returns: %TRUE if the engine is enabled.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
gboolean        bus_engine_proxy_is_enabled  (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_set_surrounding_text:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @text: The surrounding text.
Packit Service 1d8f1c
 * @cursor_pos: The cursor position on surrounding text.
Packit Service 1d8f1c
 * @anchor_pos: The anchor position on selection area.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "SetSurroundingText" method of an engine asynchronously.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_set_surrounding_text
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              IBusText           *text,
Packit Service 1d8f1c
                                              guint               cursor_pos,
Packit Service 1d8f1c
                                              guint               anchor_pos);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_process_hand_writing_event:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @coordinates: A #GVariant containing an array of coordinates.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "ProcessHandWritingEvent" method of an engine
Packit Service 1d8f1c
 * asynchronously. The type of the GVariant should be "(ad)".  See
Packit Service 1d8f1c
 * ibus_input_context_process_hand_writing_event() for details.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_process_hand_writing_event
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              GVariant           *coordinates);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_cancel_hand_writing:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @n_strokes: The number of strokes to be removed. 0 means "remove all".
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "CancelHandWriting" method of an engine asynchronously.
Packit Service 1d8f1c
 * See ibus_input_context_cancel_hand_writing() for details.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_cancel_hand_writing
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              guint               n_strokes);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_set_content_type:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @purpose: Primary purpose of the input context, as an #IBusInputPurpose.
Packit Service 1d8f1c
 * @hints: Hints that augment @purpose, as an #IBusInputHints.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Call "SetContentType" method of an engine asynchronously.
Packit Service 1d8f1c
 * See ibus_input_context_set_content_type() for details.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_set_content_type
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              guint               purpose,
Packit Service 1d8f1c
                                              guint               hints);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_get_properties:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @returns: An #IBusPropList.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Get an #IBusPropList object associated with the engine.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
IBusPropList   *bus_engine_proxy_get_properties
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_panel_extension_received:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @event: An #IBusExtensionEvent.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Send an #IBusExtensionEvent to the engine.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_panel_extension_received
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              IBusExtensionEvent *event);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * bus_engine_proxy_panel_extension_register_keys:
Packit Service 1d8f1c
 * @engine: A #BusEngineProxy.
Packit Service 1d8f1c
 * @parameters: A #GVariant array which includes the name and shortcut keys.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Send shortcut keys to the engine to enable the extension.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void            bus_engine_proxy_panel_extension_register_keys
Packit Service 1d8f1c
                                             (BusEngineProxy     *engine,
Packit Service 1d8f1c
                                              GVariant           *parameters);
Packit Service 1d8f1c
Packit Service 1d8f1c
G_END_DECLS
Packit Service 1d8f1c
#endif