Blame src/ibusengine.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) 2008-2013 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
Packit Service 1d8f1c
#if !defined (__IBUS_H_INSIDE__) && !defined (IBUS_COMPILATION)
Packit Service 1d8f1c
#error "Only <ibus.h> can be included directly"
Packit Service 1d8f1c
#endif
Packit Service 1d8f1c
Packit Service 1d8f1c
#ifndef __IBUS_ENGINE_H_
Packit Service 1d8f1c
#define __IBUS_ENGINE_H_
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * SECTION: ibusengine
Packit Service 1d8f1c
 * @short_description: Input method engine abstract.
Packit Service 1d8f1c
 * @title: IBusEngine
Packit Service 1d8f1c
 * @stability: Stable
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * An IBusEngine provides infrastructure for input method engine.
Packit Service 1d8f1c
 * Developers can "extend" this class for input method engine development.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * see_also: #IBusComponent, #IBusEngineDesc
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
Packit Service 1d8f1c
#include "ibusservice.h"
Packit Service 1d8f1c
#include "ibusattribute.h"
Packit Service 1d8f1c
#include "ibuslookuptable.h"
Packit Service 1d8f1c
#include "ibusproplist.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 IBUS_TYPE_ENGINE             \
Packit Service 1d8f1c
    (ibus_engine_get_type ())
Packit Service 1d8f1c
#define IBUS_ENGINE(obj)             \
Packit Service 1d8f1c
    (G_TYPE_CHECK_INSTANCE_CAST ((obj), IBUS_TYPE_ENGINE, IBusEngine))
Packit Service 1d8f1c
#define IBUS_ENGINE_CLASS(klass)     \
Packit Service 1d8f1c
    (G_TYPE_CHECK_CLASS_CAST ((klass), IBUS_TYPE_ENGINE, IBusEngineClass))
Packit Service 1d8f1c
#define IBUS_IS_ENGINE(obj)          \
Packit Service 1d8f1c
    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IBUS_TYPE_ENGINE))
Packit Service 1d8f1c
#define IBUS_IS_ENGINE_CLASS(klass)  \
Packit Service 1d8f1c
    (G_TYPE_CHECK_CLASS_TYPE ((klass), IBUS_TYPE_ENGINE))
Packit Service 1d8f1c
#define IBUS_ENGINE_GET_CLASS(obj)   \
Packit Service 1d8f1c
    (G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_TYPE_ENGINE, IBusEngineClass))
Packit Service 1d8f1c
Packit Service 1d8f1c
G_BEGIN_DECLS
Packit Service 1d8f1c
Packit Service 1d8f1c
typedef struct _IBusEngine IBusEngine;
Packit Service 1d8f1c
typedef struct _IBusEngineClass IBusEngineClass;
Packit Service 1d8f1c
typedef struct _IBusEnginePrivate IBusEnginePrivate;
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * IBusEngine:
Packit Service 1d8f1c
 * @enabled: Whether the engine is enabled.
Packit Service 1d8f1c
 * @has_focus: Whether the engine has focus.
Packit Service 1d8f1c
 * @cursor_area: Area of cursor.
Packit Service 1d8f1c
 * @client_capabilities: IBusCapabilite (client capabilities) flags.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * IBusEngine properties.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
struct _IBusEngine {
Packit Service 1d8f1c
    /*< private >*/
Packit Service 1d8f1c
    IBusService parent;
Packit Service 1d8f1c
    IBusEnginePrivate *priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    /* instance members */
Packit Service 1d8f1c
    /*< public >*/
Packit Service 1d8f1c
    gboolean enabled;
Packit Service 1d8f1c
    gboolean has_focus;
Packit Service 1d8f1c
Packit Service 1d8f1c
    /* cursor location */
Packit Service 1d8f1c
    IBusRectangle cursor_area;
Packit Service 1d8f1c
    guint client_capabilities;
Packit Service 1d8f1c
};
Packit Service 1d8f1c
Packit Service 1d8f1c
struct _IBusEngineClass {
Packit Service 1d8f1c
    /*< private >*/
Packit Service 1d8f1c
    IBusServiceClass parent;
Packit Service 1d8f1c
Packit Service 1d8f1c
    /* class members */
Packit Service 1d8f1c
    /*< public >*/
Packit Service 1d8f1c
    /* signals */
Packit Service 1d8f1c
    gboolean    (* process_key_event)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                     guint           keyval,
Packit Service 1d8f1c
                                     guint           keycode,
Packit Service 1d8f1c
                                     guint           state);
Packit Service 1d8f1c
    void        (* focus_in)        (IBusEngine     *engine);
Packit Service 1d8f1c
    void        (* focus_out)       (IBusEngine     *engine);
Packit Service 1d8f1c
    void        (* reset)           (IBusEngine     *engine);
Packit Service 1d8f1c
    void        (* enable)          (IBusEngine     *engine);
Packit Service 1d8f1c
    void        (* disable)         (IBusEngine     *engine);
Packit Service 1d8f1c
    void        (* set_cursor_location)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                    gint             x,
Packit Service 1d8f1c
                                    gint             y,
Packit Service 1d8f1c
                                    gint             w,
Packit Service 1d8f1c
                                    gint             h);
Packit Service 1d8f1c
    void        (* set_capabilities)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                     guint           caps);
Packit Service 1d8f1c
Packit Service 1d8f1c
    void        (* page_up)         (IBusEngine     *engine);
Packit Service 1d8f1c
    void        (* page_down)       (IBusEngine     *engine);
Packit Service 1d8f1c
    void        (* cursor_up)       (IBusEngine     *engine);
Packit Service 1d8f1c
    void        (* cursor_down)     (IBusEngine     *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
    void        (* property_activate)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                     const gchar    *prop_name,
Packit Service 1d8f1c
                                     guint           prop_state);
Packit Service 1d8f1c
    void        (* property_show)   (IBusEngine     *engine,
Packit Service 1d8f1c
                                     const gchar    *prop_name);
Packit Service 1d8f1c
    void        (* property_hide)   (IBusEngine     *engine,
Packit Service 1d8f1c
                                     const gchar    *prop_name);
Packit Service 1d8f1c
    void        (* candidate_clicked)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                     guint           index,
Packit Service 1d8f1c
                                     guint           button,
Packit Service 1d8f1c
                                     guint           state);
Packit Service 1d8f1c
    void        (* set_surrounding_text)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                     IBusText       *text,
Packit Service 1d8f1c
                                     guint           cursor_index,
Packit Service 1d8f1c
                                     guint           anchor_pos);
Packit Service 1d8f1c
    void        (* process_hand_writing_event)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                     const gdouble  *coordinates,
Packit Service 1d8f1c
                                     guint           coordinates_len);
Packit Service 1d8f1c
    void        (* cancel_hand_writing)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                     guint           n_strokes);
Packit Service 1d8f1c
    void        (* set_content_type)
Packit Service 1d8f1c
                                    (IBusEngine     *engine,
Packit Service 1d8f1c
                                     guint           purpose,
Packit Service 1d8f1c
                                     guint           hints);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /*< private >*/
Packit Service 1d8f1c
    /* padding */
Packit Service 1d8f1c
    gpointer pdummy[4];
Packit Service 1d8f1c
};
Packit Service 1d8f1c
Packit Service 1d8f1c
GType        ibus_engine_get_type       (void);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_new:
Packit Service 1d8f1c
 * @engine_name: Name of the IBusObject.
Packit Service 1d8f1c
 * @object_path: Path for IBusService.
Packit Service 1d8f1c
 * @connection: An opened GDBusConnection.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Create a new #IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Returns: A newly allocated IBusEngine.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
IBusEngine  *ibus_engine_new            (const gchar        *engine_name,
Packit Service 1d8f1c
                                         const gchar        *object_path,
Packit Service 1d8f1c
                                         GDBusConnection    *connection);
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_new_with_type:
Packit Service 1d8f1c
 * @engine_type: GType of #IBusEngine.
Packit Service 1d8f1c
 * @engine_name: Name of the IBusObject.
Packit Service 1d8f1c
 * @object_path: Path for IBusService.
Packit Service 1d8f1c
 * @connection: An opened GDBusConnection.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Create a new #IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Returns: A newly allocated IBusEngine.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
IBusEngine  *ibus_engine_new_with_type  (GType               engine_type,
Packit Service 1d8f1c
                                         const gchar        *engine_name,
Packit Service 1d8f1c
                                         const gchar        *object_path,
Packit Service 1d8f1c
                                         GDBusConnection    *connection);
Packit Service 1d8f1c
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_commit_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @text: String commit to IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Commit output of input method to IBus client.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * (Note: The text object will be released, if it is floating.
Packit Service 1d8f1c
 *  If caller want to keep the object, caller should make the object
Packit Service 1d8f1c
 *  sink by g_object_ref_sink.)
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_commit_text    (IBusEngine         *engine,
Packit Service 1d8f1c
                                         IBusText           *text);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_update_preedit_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @text: Update content.
Packit Service 1d8f1c
 * @cursor_pos: Current position of cursor
Packit Service 1d8f1c
 * @visible: Whether the pre-edit buffer is visible.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Update the pre-edit buffer.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * (Note: The text object will be released, if it is floating.
Packit Service 1d8f1c
 *  If caller want to keep the object, caller should make the object
Packit Service 1d8f1c
 *  sink by g_object_ref_sink.)
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_update_preedit_text
Packit Service 1d8f1c
                                        (IBusEngine         *engine,
Packit Service 1d8f1c
                                         IBusText           *text,
Packit Service 1d8f1c
                                         guint               cursor_pos,
Packit Service 1d8f1c
                                         gboolean            visible);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_update_preedit_text_with_mode:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @text: Update content.
Packit Service 1d8f1c
 * @cursor_pos: Current position of cursor
Packit Service 1d8f1c
 * @visible: Whether the pre-edit buffer is visible.
Packit Service 1d8f1c
 * @mode: Pre-edit commit mode when the focus is lost.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Update the pre-edit buffer with commit mode. Similar to
Packit Service 1d8f1c
 * ibus_engine_update_preedit_text(), this function allows users to specify
Packit Service 1d8f1c
 * the behavior on focus out when the pre-edit buffer is visible.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * If @mode is IBUS_ENGINE_PREEDIT_COMMIT, contents of the pre-edit buffer
Packit Service 1d8f1c
 * will be comitted and cleared.
Packit Service 1d8f1c
 * If @mode is IBUS_ENGINE_PREEDIT_CLEAR, contents of the pre-edit buffer
Packit Service 1d8f1c
 * will be cleared only.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * (Note: The text object will be released, if it is floating.
Packit Service 1d8f1c
 *  If caller want to keep the object, caller should make the object
Packit Service 1d8f1c
 *  sink by g_object_ref_sink.)
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_update_preedit_text_with_mode
Packit Service 1d8f1c
                                        (IBusEngine              *engine,
Packit Service 1d8f1c
                                         IBusText                *text,
Packit Service 1d8f1c
                                         guint                    cursor_pos,
Packit Service 1d8f1c
                                         gboolean                 visible,
Packit Service 1d8f1c
                                         IBusPreeditFocusMode     mode);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_show_preedit_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Show the pre-edit buffer.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_show_preedit_text
Packit Service 1d8f1c
                                        (IBusEngine         *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_hide_preedit_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Hide the pre-edit buffer.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_hide_preedit_text
Packit Service 1d8f1c
                                        (IBusEngine         *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_update_auxiliary_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @text: Update content.
Packit Service 1d8f1c
 * @visible: Whether the auxiliary text bar is visible.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Update the auxiliary bar.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * (Note: The text object will be released, if it is floating.
Packit Service 1d8f1c
 *  If caller want to keep the object, caller should make the object
Packit Service 1d8f1c
 *  sink by g_object_ref_sink.)
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_update_auxiliary_text
Packit Service 1d8f1c
                                        (IBusEngine        *engine,
Packit Service 1d8f1c
                                         IBusText          *text,
Packit Service 1d8f1c
                                         gboolean           visible);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_show_auxiliary_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Show the auxiliary bar.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_show_auxiliary_text
Packit Service 1d8f1c
                                        (IBusEngine         *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_hide_auxiliary_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Hide the auxiliary bar.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_hide_auxiliary_text
Packit Service 1d8f1c
                                        (IBusEngine         *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_update_lookup_table:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @lookup_table: An lookup_table.
Packit Service 1d8f1c
 * @visible: Whether the lookup_table is visible.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Update the lookup table.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * (Note: The table object will be released, if it is floating.
Packit Service 1d8f1c
 *  If caller want to keep the object, caller should make the object
Packit Service 1d8f1c
 *  sink by g_object_ref_sink.)
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_update_lookup_table
Packit Service 1d8f1c
                                        (IBusEngine         *engine,
Packit Service 1d8f1c
                                         IBusLookupTable    *lookup_table,
Packit Service 1d8f1c
                                         gboolean            visible);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_update_lookup_table_fast:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @lookup_table: An lookup_table.
Packit Service 1d8f1c
 * @visible: Whether the lookup_table is visible.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Fast update for big lookup table.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * If size of lookup table is not over table page size *4,
Packit Service 1d8f1c
 * then it calls ibus_engine_update_lookup_table().
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * (Note: The table object will be released, if it is floating.
Packit Service 1d8f1c
 *  If caller want to keep the object, caller should make the object
Packit Service 1d8f1c
 *  sink by g_object_ref_sink.)
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_update_lookup_table_fast
Packit Service 1d8f1c
                                        (IBusEngine         *engine,
Packit Service 1d8f1c
                                         IBusLookupTable    *lookup_table,
Packit Service 1d8f1c
                                         gboolean            visible);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_show_lookup_table:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Show the lookup table.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_show_lookup_table
Packit Service 1d8f1c
                                        (IBusEngine         *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_hide_lookup_table:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Hide the lookup table.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_hide_lookup_table
Packit Service 1d8f1c
                                        (IBusEngine         *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_forward_key_event:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @keyval: KeySym.
Packit Service 1d8f1c
 * @keycode: keyboard scancode.
Packit Service 1d8f1c
 * @state: Key modifier flags.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Forward the key event.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_forward_key_event
Packit Service 1d8f1c
                                        (IBusEngine         *engine,
Packit Service 1d8f1c
                                         guint               keyval,
Packit Service 1d8f1c
                                         guint               keycode,
Packit Service 1d8f1c
                                         guint               state);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_register_properties:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @prop_list: Property List.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Register and show properties in language bar.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * (Note: The prop_list object will be released, if it is floating.
Packit Service 1d8f1c
 *  If caller want to keep the object, caller should make the object
Packit Service 1d8f1c
 *  sink by g_object_ref_sink.)
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_register_properties
Packit Service 1d8f1c
                                        (IBusEngine         *engine,
Packit Service 1d8f1c
                                         IBusPropList       *prop_list);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_update_property:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @prop: IBusProperty to be updated.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Update the state displayed in language bar.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * (Note: The prop object will be released, if it is floating.
Packit Service 1d8f1c
 *  If caller want to keep the object, caller should make the object
Packit Service 1d8f1c
 *  sink by g_object_ref_sink.)
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void         ibus_engine_update_property(IBusEngine         *engine,
Packit Service 1d8f1c
                                         IBusProperty       *prop);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_delete_surrounding_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @offset: The offset of the first char.
Packit Service 1d8f1c
 * @nchars: Number of chars to be deleted.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Delete surrounding text.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void ibus_engine_delete_surrounding_text(IBusEngine         *engine,
Packit Service 1d8f1c
                                         gint                offset,
Packit Service 1d8f1c
                                         guint               nchars);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_get_surrounding_text:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 * @text: (out) (transfer none) (allow-none): Location to store surrounding text.
Packit Service 1d8f1c
 * @cursor_pos: (out) (allow-none): Cursor position in characters in @text.
Packit Service 1d8f1c
 * @anchor_pos: (out) (allow-none): Anchor position of selection in @text.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Get surrounding text.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * It is also used to tell the input-context that the engine will
Packit Service 1d8f1c
 * utilize surrounding-text.  In that case, it must be called in
Packit Service 1d8f1c
 * #IBusEngine::enable handler, with both @text and @cursor set to
Packit Service 1d8f1c
 * %NULL.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * See also: #IBusEngine::set-surrounding-text
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void ibus_engine_get_surrounding_text   (IBusEngine         *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
/**
Packit Service 1d8f1c
 * ibus_engine_get_content_type:
Packit Service 1d8f1c
 * @engine: An #IBusEngine.
Packit Service 1d8f1c
 * @purpose: (out) (allow-none): Primary purpose of the input context.
Packit Service 1d8f1c
 * @hints: (out) (allow-none): Hints that augument @purpose.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Get content-type (primary purpose and hints) of the current input
Packit Service 1d8f1c
 * context.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * See also: #IBusEngine::set-content-type
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
void ibus_engine_get_content_type       (IBusEngine         *engine,
Packit Service 1d8f1c
                                         guint              *purpose,
Packit Service 1d8f1c
                                         guint              *hints);
Packit Service 1d8f1c
Packit Service 1d8f1c
/**
Packit Service 1d8f1c
 * ibus_engine_get_name:
Packit Service 1d8f1c
 * @engine: An IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Return the name of #IBusEngine.
Packit Service 1d8f1c
 *
Packit Service 1d8f1c
 * Returns: Name of #IBusEngine.
Packit Service 1d8f1c
 */
Packit Service 1d8f1c
const gchar *ibus_engine_get_name       (IBusEngine         *engine);
Packit Service 1d8f1c
Packit Service 1d8f1c
G_END_DECLS
Packit Service 1d8f1c
#endif