Blame src/ibusxevent.c

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) 2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
Packit Service 1d8f1c
 * Copyright (C) 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
#include "ibusinternal.h"
Packit Service 1d8f1c
#include "ibusxevent.h"
Packit Service 1d8f1c
Packit Service 1d8f1c
#define IBUS_EXTENSION_EVENT_VERSION 1
Packit Service 1d8f1c
#define IBUS_EXTENSION_EVENT_GET_PRIVATE(o)                             \
Packit Service 1d8f1c
   (G_TYPE_INSTANCE_GET_PRIVATE ((o),                                   \
Packit Service 1d8f1c
                                 IBUS_TYPE_EXTENSION_EVENT,             \
Packit Service 1d8f1c
                                 IBusExtensionEventPrivate))
Packit Service 1d8f1c
Packit Service 1d8f1c
#define IBUS_X_EVENT_VERSION 1
Packit Service 1d8f1c
#define IBUS_X_EVENT_GET_PRIVATE(o)                                     \
Packit Service 1d8f1c
   (G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_X_EVENT, IBusXEventPrivate))
Packit Service 1d8f1c
Packit Service 1d8f1c
enum {
Packit Service 1d8f1c
    PROP_0,
Packit Service 1d8f1c
    PROP_VERSION,
Packit Service 1d8f1c
    PROP_NAME,
Packit Service 1d8f1c
    PROP_IS_ENABLED,
Packit Service 1d8f1c
    PROP_IS_EXTENSION,
Packit Service 1d8f1c
    PROP_PARAMS,
Packit Service 1d8f1c
    PROP_EVENT_TYPE,
Packit Service 1d8f1c
    PROP_WINDOW,
Packit Service 1d8f1c
    PROP_SEND_EVENT,
Packit Service 1d8f1c
    PROP_SERIAL,
Packit Service 1d8f1c
    PROP_TIME,
Packit Service 1d8f1c
    PROP_STATE,
Packit Service 1d8f1c
    PROP_KEYVAL,
Packit Service 1d8f1c
    PROP_LENGTH,
Packit Service 1d8f1c
    PROP_STRING,
Packit Service 1d8f1c
    PROP_HARDWARE_KEYCODE,
Packit Service 1d8f1c
    PROP_GROUP,
Packit Service 1d8f1c
    PROP_IS_MODIFIER,
Packit Service 1d8f1c
    PROP_ROOT,
Packit Service 1d8f1c
    PROP_SUBWINDOW,
Packit Service 1d8f1c
    PROP_X,
Packit Service 1d8f1c
    PROP_Y,
Packit Service 1d8f1c
    PROP_X_ROOT,
Packit Service 1d8f1c
    PROP_Y_ROOT,
Packit Service 1d8f1c
    PROP_SAME_SCREEN,
Packit Service 1d8f1c
    PROP_PURPOSE
Packit Service 1d8f1c
};
Packit Service 1d8f1c
Packit Service 1d8f1c
Packit Service 1d8f1c
struct _IBusExtensionEventPrivate {
Packit Service 1d8f1c
    guint     version;
Packit Service 1d8f1c
    gchar    *name;
Packit Service 1d8f1c
    gboolean  is_enabled;
Packit Service 1d8f1c
    gboolean  is_extension;
Packit Service 1d8f1c
    gchar    *params;
Packit Service 1d8f1c
};
Packit Service 1d8f1c
Packit Service 1d8f1c
struct _IBusXEventPrivate {
Packit Service 1d8f1c
    guint    version;
Packit Service 1d8f1c
    guint32  time;
Packit Service 1d8f1c
    guint    state;
Packit Service 1d8f1c
    guint    keyval;
Packit Service 1d8f1c
    gint     length;
Packit Service 1d8f1c
    gchar   *string;
Packit Service 1d8f1c
    guint16  hardware_keycode;
Packit Service 1d8f1c
    guint8   group;
Packit Service 1d8f1c
    gboolean is_modifier;
Packit Service 1d8f1c
    guint    root;
Packit Service 1d8f1c
    guint    subwindow;
Packit Service 1d8f1c
    gint     x;
Packit Service 1d8f1c
    gint     y;
Packit Service 1d8f1c
    gint     x_root;
Packit Service 1d8f1c
    gint     y_root;
Packit Service 1d8f1c
    gboolean same_screen;
Packit Service 1d8f1c
    gchar   *purpose;
Packit Service 1d8f1c
};
Packit Service 1d8f1c
Packit Service 1d8f1c
/* functions prototype */
Packit Service 1d8f1c
static void      ibus_extension_event_destroy      (IBusExtensionEvent *event);
Packit Service 1d8f1c
static void      ibus_extension_event_set_property (IBusExtensionEvent *event,
Packit Service 1d8f1c
                                                    guint               prop_id,
Packit Service 1d8f1c
                                                    const GValue       *value,
Packit Service 1d8f1c
                                                    GParamSpec         *pspec);
Packit Service 1d8f1c
static void      ibus_extension_event_get_property (IBusExtensionEvent *event,
Packit Service 1d8f1c
                                                    guint               prop_id,
Packit Service 1d8f1c
                                                    GValue             *value,
Packit Service 1d8f1c
                                                    GParamSpec         *pspec);
Packit Service 1d8f1c
static gboolean  ibus_extension_event_serialize    (IBusExtensionEvent *event,
Packit Service 1d8f1c
                                                    GVariantBuilder
Packit Service 1d8f1c
                                                                      *builder);
Packit Service 1d8f1c
static gint      ibus_extension_event_deserialize  (IBusExtensionEvent *event,
Packit Service 1d8f1c
                                                    GVariant
Packit Service 1d8f1c
                                                                      *variant);
Packit Service 1d8f1c
static gboolean  ibus_extension_event_copy         (IBusExtensionEvent
Packit Service 1d8f1c
                                                                          *dest,
Packit Service 1d8f1c
                                                    const IBusExtensionEvent
Packit Service 1d8f1c
                                                                          *src);
Packit Service 1d8f1c
static void      ibus_x_event_destroy              (IBusXEvent         *event);
Packit Service 1d8f1c
static void      ibus_x_event_set_property         (IBusXEvent         *event,
Packit Service 1d8f1c
                                                    guint               prop_id,
Packit Service 1d8f1c
                                                    const GValue       *value,
Packit Service 1d8f1c
                                                    GParamSpec         *pspec);
Packit Service 1d8f1c
static void      ibus_x_event_get_property         (IBusXEvent         *event,
Packit Service 1d8f1c
                                                    guint               prop_id,
Packit Service 1d8f1c
                                                    GValue             *value,
Packit Service 1d8f1c
                                                    GParamSpec         *pspec);
Packit Service 1d8f1c
static gboolean  ibus_x_event_serialize            (IBusXEvent         *event,
Packit Service 1d8f1c
                                                    GVariantBuilder
Packit Service 1d8f1c
                                                                      *builder);
Packit Service 1d8f1c
static gint      ibus_x_event_deserialize          (IBusXEvent         *event,
Packit Service 1d8f1c
                                                    GVariant
Packit Service 1d8f1c
                                                                      *variant);
Packit Service 1d8f1c
static gboolean  ibus_x_event_copy                 (IBusXEvent         *dest,
Packit Service 1d8f1c
                                                    const IBusXEvent   *src);
Packit Service 1d8f1c
Packit Service 1d8f1c
G_DEFINE_TYPE (IBusExtensionEvent, ibus_extension_event, IBUS_TYPE_SERIALIZABLE)
Packit Service 1d8f1c
G_DEFINE_TYPE (IBusXEvent, ibus_x_event, IBUS_TYPE_SERIALIZABLE)
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_extension_event_class_init (IBusExtensionEventClass *class)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GObjectClass *gobject_class = G_OBJECT_CLASS (class);
Packit Service 1d8f1c
    IBusObjectClass *object_class = IBUS_OBJECT_CLASS (class);
Packit Service 1d8f1c
    IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (class);
Packit Service 1d8f1c
Packit Service 1d8f1c
    gobject_class->set_property =
Packit Service 1d8f1c
            (GObjectSetPropertyFunc) ibus_extension_event_set_property;
Packit Service 1d8f1c
    gobject_class->get_property =
Packit Service 1d8f1c
            (GObjectGetPropertyFunc) ibus_extension_event_get_property;
Packit Service 1d8f1c
Packit Service 1d8f1c
    object_class->destroy =
Packit Service 1d8f1c
            (IBusObjectDestroyFunc) ibus_extension_event_destroy;
Packit Service 1d8f1c
Packit Service 1d8f1c
    serializable_class->serialize   =
Packit Service 1d8f1c
            (IBusSerializableSerializeFunc) ibus_extension_event_serialize;
Packit Service 1d8f1c
    serializable_class->deserialize =
Packit Service 1d8f1c
            (IBusSerializableDeserializeFunc) ibus_extension_event_deserialize;
Packit Service 1d8f1c
    serializable_class->copy        =
Packit Service 1d8f1c
            (IBusSerializableCopyFunc) ibus_extension_event_copy;
Packit Service 1d8f1c
Packit Service 1d8f1c
    /* install properties */
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusExtensionEvent:version:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Version of the #IBusExtensionEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_VERSION,
Packit Service 1d8f1c
                    g_param_spec_uint ("version",
Packit Service 1d8f1c
                        "version",
Packit Service 1d8f1c
                        "version",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT32,
Packit Service 1d8f1c
                        IBUS_EXTENSION_EVENT_VERSION,
Packit Service 1d8f1c
                        G_PARAM_READABLE));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusExtensionEvent:name:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Name of the extension in the #IBusExtensionEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_NAME,
Packit Service 1d8f1c
                    g_param_spec_string ("name",
Packit Service 1d8f1c
                        "name",
Packit Service 1d8f1c
                        "name of the extension",
Packit Service 1d8f1c
                        "",
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusExtensionEvent:is-enabled:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * %TRUE if the extension is enabled in the #IBusExtensionEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_IS_ENABLED,
Packit Service 1d8f1c
                    g_param_spec_boolean ("is-enabled",
Packit Service 1d8f1c
                        "is enabled",
Packit Service 1d8f1c
                        "if the extension is enabled",
Packit Service 1d8f1c
                        FALSE,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusExtensionEvent:is-extension:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * %TRUE if the #IBusExtensionEvent is called by an extension.
Packit Service 1d8f1c
     * %FALSE if the #IBusExtensionEvent is called by an active engine or
Packit Service 1d8f1c
     * panel.
Packit Service 1d8f1c
     * If this value is %TRUE, the event is send to ibus-daemon, an active
Packit Service 1d8f1c
     * engine. If it's %FALSE, the event is sned to ibus-daemon, panels.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_IS_EXTENSION,
Packit Service 1d8f1c
                    g_param_spec_boolean ("is-extension",
Packit Service 1d8f1c
                        "is extension",
Packit Service 1d8f1c
                        "if the event is called by an extension",
Packit Service 1d8f1c
                        FALSE,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusExtensionEvent:params:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Parameters to enable the extension in the #IBusExtensionEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_PARAMS,
Packit Service 1d8f1c
                    g_param_spec_string ("params",
Packit Service 1d8f1c
                        "params",
Packit Service 1d8f1c
                        "Parameters to enable the extension",
Packit Service 1d8f1c
                        "",
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    g_type_class_add_private (class, sizeof (IBusExtensionEventPrivate));
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_extension_event_init (IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    event->priv = IBUS_EXTENSION_EVENT_GET_PRIVATE (event);
Packit Service 1d8f1c
    event->priv->version = IBUS_EXTENSION_EVENT_VERSION;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_extension_event_destroy (IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_clear_pointer (&event->priv->name, g_free);
Packit Service 1d8f1c
Packit Service 1d8f1c
    IBUS_OBJECT_CLASS(ibus_extension_event_parent_class)->
Packit Service 1d8f1c
            destroy (IBUS_OBJECT (event));
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_extension_event_set_property (IBusExtensionEvent   *event,
Packit Service 1d8f1c
                                   guint         prop_id,
Packit Service 1d8f1c
                                   const GValue *value,
Packit Service 1d8f1c
                                   GParamSpec   *pspec)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    IBusExtensionEventPrivate *priv = event->priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    switch (prop_id) {
Packit Service 1d8f1c
    case PROP_NAME:
Packit Service 1d8f1c
        g_free (priv->name);
Packit Service 1d8f1c
        priv->name = g_value_dup_string (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_IS_ENABLED:
Packit Service 1d8f1c
        priv->is_enabled = g_value_get_boolean (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_IS_EXTENSION:
Packit Service 1d8f1c
        priv->is_extension = g_value_get_boolean (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_PARAMS:
Packit Service 1d8f1c
        priv->params = g_value_dup_string (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        G_OBJECT_WARN_INVALID_PROPERTY_ID (event, prop_id, pspec);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_extension_event_get_property (IBusExtensionEvent *event,
Packit Service 1d8f1c
                                   guint               prop_id,
Packit Service 1d8f1c
                                   GValue             *value,
Packit Service 1d8f1c
                                   GParamSpec         *pspec)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    IBusExtensionEventPrivate *priv = event->priv;
Packit Service 1d8f1c
    switch (prop_id) {
Packit Service 1d8f1c
    case PROP_VERSION:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->version);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_NAME:
Packit Service 1d8f1c
        g_value_set_string (value, priv->name);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_IS_ENABLED:
Packit Service 1d8f1c
        g_value_set_boolean (value, priv->is_enabled);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_IS_EXTENSION:
Packit Service 1d8f1c
        g_value_set_boolean (value, priv->is_extension);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_PARAMS:
Packit Service 1d8f1c
        g_value_set_string (value, priv->params);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        G_OBJECT_WARN_INVALID_PROPERTY_ID (event, prop_id, pspec);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static gboolean
Packit Service 1d8f1c
ibus_extension_event_serialize (IBusExtensionEvent *event,
Packit Service 1d8f1c
                                GVariantBuilder    *builder)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    gboolean retval;
Packit Service 1d8f1c
    IBusExtensionEventPrivate *priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    retval = IBUS_SERIALIZABLE_CLASS (ibus_extension_event_parent_class)->
Packit Service 1d8f1c
            serialize ((IBusSerializable *)event, builder);
Packit Service 1d8f1c
    g_return_val_if_fail (retval, FALSE);
Packit Service 1d8f1c
    /* End dict iter */
Packit Service 1d8f1c
Packit Service 1d8f1c
    priv = event->priv;
Packit Service 1d8f1c
#define NOTNULL(s) ((s) != NULL ? (s) : "")
Packit Service 1d8f1c
    /* If you will add a new property, you can append it at the end and
Packit Service 1d8f1c
     * you should not change the serialized order of name, longname,
Packit Service 1d8f1c
     * description, ... because the order is also used in other applications
Packit Service 1d8f1c
     * likes ibus-qt. */
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->version);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "s", NOTNULL (priv->name));
Packit Service 1d8f1c
    g_variant_builder_add (builder, "b", priv->is_enabled);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "b", priv->is_extension);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "s", NOTNULL (priv->params));
Packit Service 1d8f1c
#undef NOTNULL
Packit Service 1d8f1c
Packit Service 1d8f1c
    return TRUE;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static gint
Packit Service 1d8f1c
ibus_extension_event_deserialize (IBusExtensionEvent *event,
Packit Service 1d8f1c
                                  GVariant           *variant)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    gint retval;
Packit Service 1d8f1c
    IBusExtensionEventPrivate *priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    retval = IBUS_SERIALIZABLE_CLASS (ibus_extension_event_parent_class)->
Packit Service 1d8f1c
            deserialize ((IBusSerializable *)event, variant);
Packit Service 1d8f1c
    g_return_val_if_fail (retval, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    priv = event->priv;
Packit Service 1d8f1c
    /* If you will add a new property, you can append it at the end and
Packit Service 1d8f1c
     * you should not change the serialized order of name, longname,
Packit Service 1d8f1c
     * description, ... because the order is also used in other applications
Packit Service 1d8f1c
     * likes ibus-qt. */
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->version);
Packit Service 1d8f1c
    ibus_g_variant_get_child_string (variant, retval++,
Packit Service 1d8f1c
                                     &priv->name);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "b", &priv->is_enabled);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "b", &priv->is_extension);
Packit Service 1d8f1c
    ibus_g_variant_get_child_string (variant, retval++,
Packit Service 1d8f1c
                                     &priv->params);
Packit Service 1d8f1c
Packit Service 1d8f1c
    return retval;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static gboolean
Packit Service 1d8f1c
ibus_extension_event_copy (IBusExtensionEvent       *dest,
Packit Service 1d8f1c
                           const IBusExtensionEvent *src)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    gboolean retval;
Packit Service 1d8f1c
    IBusExtensionEventPrivate *dest_priv = dest->priv;
Packit Service 1d8f1c
    IBusExtensionEventPrivate *src_priv = src->priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    retval = IBUS_SERIALIZABLE_CLASS (ibus_extension_event_parent_class)->
Packit Service 1d8f1c
            copy ((IBusSerializable *)dest, (IBusSerializable *)src);
Packit Service 1d8f1c
    g_return_val_if_fail (retval, FALSE);
Packit Service 1d8f1c
Packit Service 1d8f1c
    dest_priv->version           = src_priv->version;
Packit Service 1d8f1c
    dest_priv->name              = g_strdup (src_priv->name);
Packit Service 1d8f1c
    dest_priv->is_enabled        = src_priv->is_enabled;
Packit Service 1d8f1c
    dest_priv->is_extension      = src_priv->is_extension;
Packit Service 1d8f1c
    dest_priv->params            = g_strdup (src_priv->params);
Packit Service 1d8f1c
    return TRUE;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
IBusExtensionEvent *
Packit Service 1d8f1c
ibus_extension_event_new (const gchar   *first_property_name,
Packit Service 1d8f1c
                          ...)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    va_list var_args;
Packit Service 1d8f1c
    IBusExtensionEvent *event;
Packit Service 1d8f1c
Packit Service 1d8f1c
    va_start (var_args, first_property_name);
Packit Service 1d8f1c
    event = (IBusExtensionEvent *) g_object_new_valist (
Packit Service 1d8f1c
            IBUS_TYPE_EXTENSION_EVENT,
Packit Service 1d8f1c
            first_property_name,
Packit Service 1d8f1c
            var_args);
Packit Service 1d8f1c
    va_end (var_args);
Packit Service 1d8f1c
    g_assert (event->priv->version != 0);
Packit Service 1d8f1c
    return event;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint
Packit Service 1d8f1c
ibus_extension_event_get_version (IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_EXTENSION_EVENT (event), 0);
Packit Service 1d8f1c
    return event->priv->version;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
const gchar *
Packit Service 1d8f1c
ibus_extension_event_get_name (IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_EXTENSION_EVENT (event), "");
Packit Service 1d8f1c
    return event->priv->name;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gboolean
Packit Service 1d8f1c
ibus_extension_event_is_enabled (IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_EXTENSION_EVENT (event), FALSE);
Packit Service 1d8f1c
    return event->priv->is_enabled;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gboolean
Packit Service 1d8f1c
ibus_extension_event_is_extension (IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_EXTENSION_EVENT (event), FALSE);
Packit Service 1d8f1c
    return event->priv->is_extension;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
const gchar *
Packit Service 1d8f1c
ibus_extension_event_get_params (IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_EXTENSION_EVENT (event), "");
Packit Service 1d8f1c
    return event->priv->params;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_x_event_class_init (IBusXEventClass *class)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GObjectClass *gobject_class = G_OBJECT_CLASS (class);
Packit Service 1d8f1c
    IBusObjectClass *object_class = IBUS_OBJECT_CLASS (class);
Packit Service 1d8f1c
    IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (class);
Packit Service 1d8f1c
Packit Service 1d8f1c
    gobject_class->set_property =
Packit Service 1d8f1c
            (GObjectSetPropertyFunc) ibus_x_event_set_property;
Packit Service 1d8f1c
    gobject_class->get_property =
Packit Service 1d8f1c
            (GObjectGetPropertyFunc) ibus_x_event_get_property;
Packit Service 1d8f1c
Packit Service 1d8f1c
    object_class->destroy = (IBusObjectDestroyFunc) ibus_x_event_destroy;
Packit Service 1d8f1c
Packit Service 1d8f1c
    serializable_class->serialize   =
Packit Service 1d8f1c
            (IBusSerializableSerializeFunc) ibus_x_event_serialize;
Packit Service 1d8f1c
    serializable_class->deserialize =
Packit Service 1d8f1c
            (IBusSerializableDeserializeFunc) ibus_x_event_deserialize;
Packit Service 1d8f1c
    serializable_class->copy        =
Packit Service 1d8f1c
            (IBusSerializableCopyFunc) ibus_x_event_copy;
Packit Service 1d8f1c
Packit Service 1d8f1c
    /* install properties */
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:version:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Version of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_VERSION,
Packit Service 1d8f1c
                    g_param_spec_uint ("version",
Packit Service 1d8f1c
                        "version",
Packit Service 1d8f1c
                        "version",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT32,
Packit Service 1d8f1c
                        IBUS_X_EVENT_VERSION,
Packit Service 1d8f1c
                        G_PARAM_READABLE));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:event-type:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * IBusXEventType of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_EVENT_TYPE,
Packit Service 1d8f1c
                    g_param_spec_int ("event-type",
Packit Service 1d8f1c
                        "event type",
Packit Service 1d8f1c
                        "event type",
Packit Service 1d8f1c
                        -1,
Packit Service 1d8f1c
                        G_MAXINT32,
Packit Service 1d8f1c
                        -1,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:window:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * window of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_WINDOW,
Packit Service 1d8f1c
                    g_param_spec_uint ("window",
Packit Service 1d8f1c
                        "window",
Packit Service 1d8f1c
                        "window",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:send-event:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * send_event of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_SEND_EVENT,
Packit Service 1d8f1c
                    g_param_spec_int ("send-event",
Packit Service 1d8f1c
                        "send event",
Packit Service 1d8f1c
                        "send event",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXINT8,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:serial:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * serial of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_SERIAL,
Packit Service 1d8f1c
                    g_param_spec_ulong ("serial",
Packit Service 1d8f1c
                        "serial",
Packit Service 1d8f1c
                        "serial",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT64,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:time:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * time of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_TIME,
Packit Service 1d8f1c
                    g_param_spec_uint ("time",
Packit Service 1d8f1c
                        "time",
Packit Service 1d8f1c
                        "time",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:state:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * state of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_STATE,
Packit Service 1d8f1c
                    g_param_spec_uint ("state",
Packit Service 1d8f1c
                        "state",
Packit Service 1d8f1c
                        "state",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:keyval:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * keyval of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_KEYVAL,
Packit Service 1d8f1c
                    g_param_spec_uint ("keyval",
Packit Service 1d8f1c
                        "keyval",
Packit Service 1d8f1c
                        "keyval",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:length:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * keyval of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_LENGTH,
Packit Service 1d8f1c
                    g_param_spec_int ("length",
Packit Service 1d8f1c
                        "length",
Packit Service 1d8f1c
                        "length",
Packit Service 1d8f1c
                        -1,
Packit Service 1d8f1c
                        G_MAXINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:string:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * string of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_STRING,
Packit Service 1d8f1c
                    g_param_spec_string ("string",
Packit Service 1d8f1c
                        "string",
Packit Service 1d8f1c
                        "string",
Packit Service 1d8f1c
                        "",
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:hardware-keycode:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * hardware keycode of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_HARDWARE_KEYCODE,
Packit Service 1d8f1c
                    g_param_spec_uint ("hardware-keycode",
Packit Service 1d8f1c
                        "hardware keycode",
Packit Service 1d8f1c
                        "hardware keycode",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT16,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:group:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * group of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_GROUP,
Packit Service 1d8f1c
                    g_param_spec_uint ("group",
Packit Service 1d8f1c
                        "group",
Packit Service 1d8f1c
                        "group",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT8,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:is-modifier:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * is_modifier of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_IS_MODIFIER,
Packit Service 1d8f1c
                    g_param_spec_boolean ("is-modifier",
Packit Service 1d8f1c
                        "is modifier",
Packit Service 1d8f1c
                        "is modifier",
Packit Service 1d8f1c
                        FALSE,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:root:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * root window of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_ROOT,
Packit Service 1d8f1c
                    g_param_spec_uint ("root",
Packit Service 1d8f1c
                        "root",
Packit Service 1d8f1c
                        "root",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:subwindow:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * subwindow of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_SUBWINDOW,
Packit Service 1d8f1c
                    g_param_spec_uint ("subwindow",
Packit Service 1d8f1c
                        "subwindow",
Packit Service 1d8f1c
                        "subwindow",
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_MAXUINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:x:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * x of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_X,
Packit Service 1d8f1c
                    g_param_spec_int ("x",
Packit Service 1d8f1c
                        "x",
Packit Service 1d8f1c
                        "x",
Packit Service 1d8f1c
                        G_MININT32,
Packit Service 1d8f1c
                        G_MAXINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:y:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * x of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_Y,
Packit Service 1d8f1c
                    g_param_spec_int ("y",
Packit Service 1d8f1c
                        "y",
Packit Service 1d8f1c
                        "y",
Packit Service 1d8f1c
                        G_MININT32,
Packit Service 1d8f1c
                        G_MAXINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:x-root:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * root-x of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_X_ROOT,
Packit Service 1d8f1c
                    g_param_spec_int ("x-root",
Packit Service 1d8f1c
                        "x root",
Packit Service 1d8f1c
                        "x root",
Packit Service 1d8f1c
                        G_MININT32,
Packit Service 1d8f1c
                        G_MAXINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:y-root:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * root-y of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_Y_ROOT,
Packit Service 1d8f1c
                    g_param_spec_int ("y-root",
Packit Service 1d8f1c
                        "y root",
Packit Service 1d8f1c
                        "y root",
Packit Service 1d8f1c
                        G_MININT32,
Packit Service 1d8f1c
                        G_MAXINT32,
Packit Service 1d8f1c
                        0,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:same-screen:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * same_screen of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_SAME_SCREEN,
Packit Service 1d8f1c
                    g_param_spec_boolean ("same-screen",
Packit Service 1d8f1c
                        "same screen",
Packit Service 1d8f1c
                        "same screen",
Packit Service 1d8f1c
                        TRUE,
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusXEvent:purpose:
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * purpose of this IBusXEvent.
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    g_object_class_install_property (gobject_class,
Packit Service 1d8f1c
                    PROP_PURPOSE,
Packit Service 1d8f1c
                    g_param_spec_string ("purpose",
Packit Service 1d8f1c
                        "purpose",
Packit Service 1d8f1c
                        "purpose",
Packit Service 1d8f1c
                        "",
Packit Service 1d8f1c
                        G_PARAM_READWRITE |
Packit Service 1d8f1c
                        G_PARAM_CONSTRUCT_ONLY));
Packit Service 1d8f1c
Packit Service 1d8f1c
    g_type_class_add_private (class, sizeof (IBusXEventPrivate));
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_x_event_init (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    event->priv = IBUS_X_EVENT_GET_PRIVATE (event);
Packit Service 1d8f1c
    event->priv->version = IBUS_X_EVENT_VERSION;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_x_event_destroy (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_clear_pointer (&event->priv->string, g_free);
Packit Service 1d8f1c
    g_clear_pointer (&event->priv->purpose, g_free);
Packit Service 1d8f1c
Packit Service 1d8f1c
    IBUS_OBJECT_CLASS(ibus_x_event_parent_class)->destroy (IBUS_OBJECT (event));
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_x_event_set_property (IBusXEvent   *event,
Packit Service 1d8f1c
                           guint         prop_id,
Packit Service 1d8f1c
                           const GValue *value,
Packit Service 1d8f1c
                           GParamSpec   *pspec)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    IBusXEventPrivate *priv = event->priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    switch (prop_id) {
Packit Service 1d8f1c
    case PROP_EVENT_TYPE:
Packit Service 1d8f1c
        event->event_type = g_value_get_int (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_WINDOW:
Packit Service 1d8f1c
        event->window = g_value_get_uint (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_SEND_EVENT:
Packit Service 1d8f1c
        event->send_event = g_value_get_int (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_SERIAL:
Packit Service 1d8f1c
        event->serial = g_value_get_ulong (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_TIME:
Packit Service 1d8f1c
        priv->time = g_value_get_uint (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_STATE:
Packit Service 1d8f1c
        priv->state = g_value_get_uint (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_KEYVAL:
Packit Service 1d8f1c
        priv->keyval = g_value_get_uint (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_LENGTH:
Packit Service 1d8f1c
        priv->length = g_value_get_int (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_STRING:
Packit Service 1d8f1c
        g_free (priv->string);
Packit Service 1d8f1c
        priv->string = g_value_dup_string (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_HARDWARE_KEYCODE:
Packit Service 1d8f1c
        priv->hardware_keycode = g_value_get_uint (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_GROUP:
Packit Service 1d8f1c
        priv->group = g_value_get_uint (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_IS_MODIFIER:
Packit Service 1d8f1c
        priv->is_modifier = g_value_get_boolean (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_ROOT:
Packit Service 1d8f1c
        priv->root = g_value_get_uint (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_SUBWINDOW:
Packit Service 1d8f1c
        priv->subwindow = g_value_get_uint (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_X:
Packit Service 1d8f1c
        priv->x = g_value_get_int (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_Y:
Packit Service 1d8f1c
        priv->y = g_value_get_int (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_X_ROOT:
Packit Service 1d8f1c
        priv->x_root = g_value_get_int (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_Y_ROOT:
Packit Service 1d8f1c
        priv->y_root = g_value_get_int (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_SAME_SCREEN:
Packit Service 1d8f1c
        priv->same_screen = g_value_get_boolean (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_PURPOSE:
Packit Service 1d8f1c
        g_free (priv->purpose);
Packit Service 1d8f1c
        priv->purpose = g_value_dup_string (value);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        G_OBJECT_WARN_INVALID_PROPERTY_ID (event, prop_id, pspec);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_x_event_get_property (IBusXEvent *event,
Packit Service 1d8f1c
                          guint        prop_id,
Packit Service 1d8f1c
                          GValue      *value,
Packit Service 1d8f1c
                          GParamSpec  *pspec)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    IBusXEventPrivate *priv = event->priv;
Packit Service 1d8f1c
    switch (prop_id) {
Packit Service 1d8f1c
    case PROP_VERSION:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->version);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_EVENT_TYPE:
Packit Service 1d8f1c
        g_value_set_int (value, event->event_type);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_WINDOW:
Packit Service 1d8f1c
        g_value_set_uint (value, event->window);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_SEND_EVENT:
Packit Service 1d8f1c
        g_value_set_int (value, event->send_event);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_SERIAL:
Packit Service 1d8f1c
        g_value_set_ulong (value, event->serial);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_TIME:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->time);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_STATE:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->state);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_KEYVAL:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->keyval);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_LENGTH:
Packit Service 1d8f1c
        g_value_set_int (value, priv->length);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_STRING:
Packit Service 1d8f1c
        g_value_set_string (value, priv->string);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_HARDWARE_KEYCODE:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->hardware_keycode);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_GROUP:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->group);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_IS_MODIFIER:
Packit Service 1d8f1c
        g_value_set_boolean (value, priv->is_modifier);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_ROOT:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->root);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_SUBWINDOW:
Packit Service 1d8f1c
        g_value_set_uint (value, priv->subwindow);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_X:
Packit Service 1d8f1c
        g_value_set_int (value, priv->x);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_Y:
Packit Service 1d8f1c
        g_value_set_int (value, priv->y);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_X_ROOT:
Packit Service 1d8f1c
        g_value_set_int (value, priv->x_root);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_Y_ROOT:
Packit Service 1d8f1c
        g_value_set_int (value, priv->y_root);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_SAME_SCREEN:
Packit Service 1d8f1c
        g_value_set_boolean (value, priv->same_screen);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    case PROP_PURPOSE:
Packit Service 1d8f1c
        g_value_set_string (value, priv->purpose);
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        G_OBJECT_WARN_INVALID_PROPERTY_ID (event, prop_id, pspec);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static gboolean
Packit Service 1d8f1c
ibus_x_event_serialize (IBusXEvent      *event,
Packit Service 1d8f1c
                        GVariantBuilder *builder)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    gboolean retval;
Packit Service 1d8f1c
    IBusXEventPrivate *priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    retval = IBUS_SERIALIZABLE_CLASS (ibus_x_event_parent_class)->
Packit Service 1d8f1c
            serialize ((IBusSerializable *)event, builder);
Packit Service 1d8f1c
    g_return_val_if_fail (retval, FALSE);
Packit Service 1d8f1c
    /* End dict iter */
Packit Service 1d8f1c
Packit Service 1d8f1c
    priv = event->priv;
Packit Service 1d8f1c
#define NOTNULL(s) ((s) != NULL ? (s) : "")
Packit Service 1d8f1c
    /* If you will add a new property, you can append it at the end and
Packit Service 1d8f1c
     * you should not change the serialized order of name, longname,
Packit Service 1d8f1c
     * description, ... because the order is also used in other applications
Packit Service 1d8f1c
     * likes ibus-qt. */
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->version);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", event->event_type);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", event->window);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "i", event->send_event);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "t", event->serial);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->time);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->state);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->keyval);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "i", priv->length);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "s", NOTNULL (priv->string));
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->hardware_keycode);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->group);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "b", priv->is_modifier);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->root);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "u", priv->subwindow);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "i", priv->x);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "i", priv->y);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "i", priv->x_root);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "i", priv->y_root);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "b", priv->same_screen);
Packit Service 1d8f1c
    g_variant_builder_add (builder, "s", NOTNULL (priv->purpose));
Packit Service 1d8f1c
#undef NOTNULL
Packit Service 1d8f1c
Packit Service 1d8f1c
    return TRUE;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static gint
Packit Service 1d8f1c
ibus_x_event_deserialize (IBusXEvent *event,
Packit Service 1d8f1c
                          GVariant   *variant)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    gint retval;
Packit Service 1d8f1c
    IBusXEventPrivate *priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    retval = IBUS_SERIALIZABLE_CLASS (ibus_x_event_parent_class)->
Packit Service 1d8f1c
            deserialize ((IBusSerializable *)event, variant);
Packit Service 1d8f1c
    g_return_val_if_fail (retval, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    priv = event->priv;
Packit Service 1d8f1c
    /* If you will add a new property, you can append it at the end and
Packit Service 1d8f1c
     * you should not change the serialized order of name, longname,
Packit Service 1d8f1c
     * description, ... because the order is also used in other applications
Packit Service 1d8f1c
     * likes ibus-qt. */
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->version);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &event->event_type);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &event->window);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "i", &event->send_event);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "t", &event->serial);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->time);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->state);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->keyval);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "i", &priv->length);
Packit Service 1d8f1c
    ibus_g_variant_get_child_string (variant, retval++,
Packit Service 1d8f1c
                                     &priv->string);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->hardware_keycode);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->group);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "b", &priv->is_modifier);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->root);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "u", &priv->subwindow);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "i", &priv->x);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "i", &priv->y);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "i", &priv->x_root);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "i", &priv->y_root);
Packit Service 1d8f1c
    g_variant_get_child (variant, retval++, "b", &priv->same_screen);
Packit Service 1d8f1c
    ibus_g_variant_get_child_string (variant, retval++,
Packit Service 1d8f1c
                                     &priv->purpose);
Packit Service 1d8f1c
Packit Service 1d8f1c
    return retval;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static gboolean
Packit Service 1d8f1c
ibus_x_event_copy (IBusXEvent       *dest,
Packit Service 1d8f1c
                   const IBusXEvent *src)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    gboolean retval;
Packit Service 1d8f1c
    IBusXEventPrivate *dest_priv = dest->priv;
Packit Service 1d8f1c
    IBusXEventPrivate *src_priv = src->priv;
Packit Service 1d8f1c
Packit Service 1d8f1c
    retval = IBUS_SERIALIZABLE_CLASS (ibus_x_event_parent_class)->
Packit Service 1d8f1c
            copy ((IBusSerializable *)dest, (IBusSerializable *)src);
Packit Service 1d8f1c
    g_return_val_if_fail (retval, FALSE);
Packit Service 1d8f1c
Packit Service 1d8f1c
    dest_priv->version           = src_priv->version;
Packit Service 1d8f1c
    dest->event_type             = src->event_type;
Packit Service 1d8f1c
    dest->window                 = src->window;
Packit Service 1d8f1c
    dest->send_event             = src->send_event;
Packit Service 1d8f1c
    dest->serial                 = src->serial;
Packit Service 1d8f1c
    dest_priv->time              = src_priv->time;
Packit Service 1d8f1c
    dest_priv->state             = src_priv->state;
Packit Service 1d8f1c
    dest_priv->keyval            = src_priv->keyval;
Packit Service 1d8f1c
    dest_priv->length            = src_priv->length;
Packit Service 1d8f1c
    dest_priv->string            = g_strdup (src_priv->string);
Packit Service 1d8f1c
    dest_priv->hardware_keycode  = src_priv->hardware_keycode;
Packit Service 1d8f1c
    dest_priv->group             = src_priv->group;
Packit Service 1d8f1c
    dest_priv->is_modifier       = src_priv->is_modifier;
Packit Service 1d8f1c
    dest_priv->root              = src_priv->root;
Packit Service 1d8f1c
    dest_priv->subwindow         = src_priv->subwindow;
Packit Service 1d8f1c
    dest_priv->x                 = src_priv->x;
Packit Service 1d8f1c
    dest_priv->y                 = src_priv->y;
Packit Service 1d8f1c
    dest_priv->x_root            = src_priv->x_root;
Packit Service 1d8f1c
    dest_priv->y_root            = src_priv->y_root;
Packit Service 1d8f1c
    dest_priv->same_screen       = src_priv->same_screen;
Packit Service 1d8f1c
    dest_priv->purpose           = g_strdup (src_priv->purpose);
Packit Service 1d8f1c
Packit Service 1d8f1c
    return TRUE;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
IBusXEvent *
Packit Service 1d8f1c
ibus_x_event_new (const gchar   *first_property_name,
Packit Service 1d8f1c
                  ...)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    va_list var_args;
Packit Service 1d8f1c
    IBusXEvent *event;
Packit Service 1d8f1c
Packit Service 1d8f1c
    va_start (var_args, first_property_name);
Packit Service 1d8f1c
    event = (IBusXEvent *) g_object_new_valist (IBUS_TYPE_X_EVENT,
Packit Service 1d8f1c
                                                first_property_name,
Packit Service 1d8f1c
                                                var_args);
Packit Service 1d8f1c
    va_end (var_args);
Packit Service 1d8f1c
    g_assert (event->priv->version != 0);
Packit Service 1d8f1c
    g_assert (event->event_type != IBUS_X_EVENT_NOTHING);
Packit Service 1d8f1c
    return event;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint
Packit Service 1d8f1c
ibus_x_event_get_version (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    return event->priv->version;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
IBusXEventType
Packit Service 1d8f1c
ibus_x_event_get_event_type (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    return event->event_type;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint32
Packit Service 1d8f1c
ibus_x_event_get_window (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    return event->window;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gint8
Packit Service 1d8f1c
ibus_x_event_get_send_event (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), -1);
Packit Service 1d8f1c
    return event->send_event;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gulong
Packit Service 1d8f1c
ibus_x_event_get_serial (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    return event->serial;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint32
Packit Service 1d8f1c
ibus_x_event_get_time (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->time;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint
Packit Service 1d8f1c
ibus_x_event_get_state (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->state;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint
Packit Service 1d8f1c
ibus_x_event_get_keyval (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->keyval;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gint
Packit Service 1d8f1c
ibus_x_event_get_length (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), -1);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (-1);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->length;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
const gchar *
Packit Service 1d8f1c
ibus_x_event_get_string (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), "");
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached ("");
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->string;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint16
Packit Service 1d8f1c
ibus_x_event_get_hardware_keycode (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->hardware_keycode;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint8
Packit Service 1d8f1c
ibus_x_event_get_group (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->group;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gboolean
Packit Service 1d8f1c
ibus_x_event_get_is_modifier (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->is_modifier;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint32
Packit Service 1d8f1c
ibus_x_event_get_root (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->root;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
guint32
Packit Service 1d8f1c
ibus_x_event_get_subwindow (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->subwindow;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gint
Packit Service 1d8f1c
ibus_x_event_get_x (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->x;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gint
Packit Service 1d8f1c
ibus_x_event_get_y (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->y;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gint
Packit Service 1d8f1c
ibus_x_event_get_x_root (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->x_root;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gint
Packit Service 1d8f1c
ibus_x_event_get_y_root (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), 0);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (0);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->y_root;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
gboolean
Packit Service 1d8f1c
ibus_x_event_get_same_screen (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), TRUE);
Packit Service 1d8f1c
    switch (event->event_type) {
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_PRESS:
Packit Service 1d8f1c
    case IBUS_X_EVENT_KEY_RELEASE:
Packit Service 1d8f1c
        break;
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        g_return_val_if_reached (TRUE);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    return event->priv->same_screen;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
const gchar *
Packit Service 1d8f1c
ibus_x_event_get_purpose (IBusXEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (IBUS_IS_X_EVENT (event), "");
Packit Service 1d8f1c
    return event->priv->purpose;
Packit Service 1d8f1c
}