Blame src/ibuspanelservice.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) 2009-2014 Google Inc. All rights reserved.
Packit Service 1d8f1c
 * Copyright (C) 2010-2014 Peng Huang <shawn.p.huang@gmail.com>
Packit Service 1d8f1c
 * Copyright (C) 2017-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
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 "ibusshare.h"
Packit Service 1d8f1c
#include "ibuspanelservice.h"
Packit Service 1d8f1c
#include "ibusmarshalers.h"
Packit Service 1d8f1c
#include "ibusinternal.h"
Packit Service 1d8f1c
Packit Service 1d8f1c
#define IBUS_PANEL_SERVICE_GET_PRIVATE(o)  \
Packit Service 1d8f1c
   (G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_PANEL_SERVICE, \
Packit Service 1d8f1c
                                 IBusPanelServicePrivate))
Packit Service 1d8f1c
Packit Service 1d8f1c
enum {
Packit Service 1d8f1c
    UPDATE_PREEDIT_TEXT,
Packit Service 1d8f1c
    UPDATE_AUXILIARY_TEXT,
Packit Service 1d8f1c
    UPDATE_LOOKUP_TABLE,
Packit Service 1d8f1c
    FOCUS_IN,
Packit Service 1d8f1c
    FOCUS_OUT,
Packit Service 1d8f1c
    REGISTER_PROPERTIES,
Packit Service 1d8f1c
    UPDATE_PROPERTY,
Packit Service 1d8f1c
    SET_CURSOR_LOCATION,
Packit Service 1d8f1c
    SET_CURSOR_LOCATION_RELATIVE,
Packit Service 1d8f1c
    CURSOR_UP_LOOKUP_TABLE,
Packit Service 1d8f1c
    CURSOR_DOWN_LOOKUP_TABLE,
Packit Service 1d8f1c
    HIDE_AUXILIARY_TEXT,
Packit Service 1d8f1c
    HIDE_LANGUAGE_BAR,
Packit Service 1d8f1c
    HIDE_LOOKUP_TABLE,
Packit Service 1d8f1c
    HIDE_PREEDIT_TEXT,
Packit Service 1d8f1c
    PAGE_UP_LOOKUP_TABLE,
Packit Service 1d8f1c
    PAGE_DOWN_LOOKUP_TABLE,
Packit Service 1d8f1c
    RESET,
Packit Service 1d8f1c
    SHOW_AUXILIARY_TEXT,
Packit Service 1d8f1c
    SHOW_LANGUAGE_BAR,
Packit Service 1d8f1c
    SHOW_LOOKUP_TABLE,
Packit Service 1d8f1c
    SHOW_PREEDIT_TEXT,
Packit Service 1d8f1c
    START_SETUP,
Packit Service 1d8f1c
    STATE_CHANGED,
Packit Service 1d8f1c
    DESTROY_CONTEXT,
Packit Service 1d8f1c
    SET_CONTENT_TYPE,
Packit Service 1d8f1c
    PANEL_EXTENSION_RECEIVED,
Packit Service 1d8f1c
    PROCESS_KEY_EVENT,
Packit Service 1d8f1c
    COMMIT_TEXT_RECEIVED,
Packit Service 1d8f1c
    CANDIDATE_CLICKED_LOOKUP_TABLE,
Packit Service 1d8f1c
    LAST_SIGNAL,
Packit Service 1d8f1c
};
Packit Service 1d8f1c
Packit Service 1d8f1c
enum {
Packit Service 1d8f1c
    PROP_0,
Packit Service 1d8f1c
};
Packit Service 1d8f1c
Packit Service 1d8f1c
static guint            panel_signals[LAST_SIGNAL] = { 0 };
Packit Service 1d8f1c
Packit Service 1d8f1c
/* functions prototype */
Packit Service 1d8f1c
static void      ibus_panel_service_set_property
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    guint                   prop_id,
Packit Service 1d8f1c
                                    const GValue           *value,
Packit Service 1d8f1c
                                    GParamSpec             *pspec);
Packit Service 1d8f1c
static void      ibus_panel_service_get_property
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    guint                   prop_id,
Packit Service 1d8f1c
                                    GValue                 *value,
Packit Service 1d8f1c
                                    GParamSpec             *pspec);
Packit Service 1d8f1c
static void      ibus_panel_service_real_destroy
Packit Service 1d8f1c
                                   (IBusPanelService       *panel);
Packit Service 1d8f1c
static void      ibus_panel_service_service_method_call
Packit Service 1d8f1c
                                   (IBusService            *service,
Packit Service 1d8f1c
                                    GDBusConnection        *connection,
Packit Service 1d8f1c
                                    const gchar            *sender,
Packit Service 1d8f1c
                                    const gchar            *object_path,
Packit Service 1d8f1c
                                    const gchar            *interface_name,
Packit Service 1d8f1c
                                    const gchar            *method_name,
Packit Service 1d8f1c
                                    GVariant               *parameters,
Packit Service 1d8f1c
                                    GDBusMethodInvocation  *invocation);
Packit Service 1d8f1c
static GVariant *ibus_panel_service_service_get_property
Packit Service 1d8f1c
                                   (IBusService            *service,
Packit Service 1d8f1c
                                    GDBusConnection        *connection,
Packit Service 1d8f1c
                                    const gchar            *sender,
Packit Service 1d8f1c
                                    const gchar            *object_path,
Packit Service 1d8f1c
                                    const gchar            *interface_name,
Packit Service 1d8f1c
                                    const gchar            *property_name,
Packit Service 1d8f1c
                                    GError                **error);
Packit Service 1d8f1c
static gboolean  ibus_panel_service_service_set_property
Packit Service 1d8f1c
                                   (IBusService            *service,
Packit Service 1d8f1c
                                    GDBusConnection        *connection,
Packit Service 1d8f1c
                                    const gchar            *sender,
Packit Service 1d8f1c
                                    const gchar            *object_path,
Packit Service 1d8f1c
                                    const gchar            *interface_name,
Packit Service 1d8f1c
                                    const gchar            *property_name,
Packit Service 1d8f1c
                                    GVariant               *value,
Packit Service 1d8f1c
                                    GError                **error);
Packit Service 1d8f1c
static void      ibus_panel_service_not_implemented
Packit Service 1d8f1c
                                   (IBusPanelService       *panel);
Packit Service 1d8f1c
static void      ibus_panel_service_focus_in
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    const gchar            *input_context_path);
Packit Service 1d8f1c
static void      ibus_panel_service_focus_out
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    const gchar            *input_context_path);
Packit Service 1d8f1c
static void      ibus_panel_service_destroy_context
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    const gchar            *input_context_path);
Packit Service 1d8f1c
static void      ibus_panel_service_register_properties
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    IBusPropList           *prop_list);
Packit Service 1d8f1c
static void      ibus_panel_service_set_cursor_location
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    gint                    x,
Packit Service 1d8f1c
                                    gint                    y,
Packit Service 1d8f1c
                                    gint                    w,
Packit Service 1d8f1c
                                    gint                    h);
Packit Service 1d8f1c
static void      ibus_panel_service_set_cursor_location_relative
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    gint                    x,
Packit Service 1d8f1c
                                    gint                    y,
Packit Service 1d8f1c
                                    gint                    w,
Packit Service 1d8f1c
                                    gint                    h);
Packit Service 1d8f1c
static void      ibus_panel_service_update_auxiliary_text
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    IBusText               *text,
Packit Service 1d8f1c
                                    gboolean                visible);
Packit Service 1d8f1c
static void      ibus_panel_service_update_lookup_table
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    IBusLookupTable        *lookup_table,
Packit Service 1d8f1c
                                    gboolean                visible);
Packit Service 1d8f1c
static void      ibus_panel_service_update_preedit_text
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    IBusText               *text,
Packit Service 1d8f1c
                                    guint                   cursor_pos,
Packit Service 1d8f1c
                                    gboolean                visible);
Packit Service 1d8f1c
static void      ibus_panel_service_update_property
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    IBusProperty           *prop);
Packit Service 1d8f1c
static void      ibus_panel_service_set_content_type
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    guint                   purpose,
Packit Service 1d8f1c
                                    guint                   hints);
Packit Service 1d8f1c
static void      ibus_panel_service_panel_extension_received
Packit Service 1d8f1c
                                   (IBusPanelService       *panel,
Packit Service 1d8f1c
                                    IBusExtensionEvent     *event);
Packit Service 1d8f1c
Packit Service 1d8f1c
G_DEFINE_TYPE (IBusPanelService, ibus_panel_service, IBUS_TYPE_SERVICE)
Packit Service 1d8f1c
Packit Service 1d8f1c
static const gchar introspection_xml[] =
Packit Service 1d8f1c
    "<node>"
Packit Service 1d8f1c
    "  <interface name='org.freedesktop.IBus.Panel'>"
Packit Service 1d8f1c
    /* Methods */
Packit Service 1d8f1c
    "    <method name='UpdatePreeditText'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='v' name='text' />"
Packit Service 1d8f1c
    "      <arg direction='in'  type='u' name='cursor_pos' />"
Packit Service 1d8f1c
    "      <arg direction='in'  type='b' name='visible' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='ShowPreeditText' />"
Packit Service 1d8f1c
    "    <method name='HidePreeditText' />"
Packit Service 1d8f1c
    "    <method name='UpdateAuxiliaryText'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='v' name='text' />"
Packit Service 1d8f1c
    "      <arg direction='in'  type='b' name='visible' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='ShowAuxiliaryText' />"
Packit Service 1d8f1c
    "    <method name='HideAuxiliaryText' />"
Packit Service 1d8f1c
    "    <method name='UpdateLookupTable'>"
Packit Service 1d8f1c
    "      <arg direction='in' type='v' name='table' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='b' name='visible' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='ShowLookupTable' />"
Packit Service 1d8f1c
    "    <method name='HideLookupTable' />"
Packit Service 1d8f1c
    "    <method name='CursorUpLookupTable' />"
Packit Service 1d8f1c
    "    <method name='CursorDownLookupTable' />"
Packit Service 1d8f1c
    "    <method name='PageUpLookupTable' />"
Packit Service 1d8f1c
    "    <method name='PageDownLookupTable' />"
Packit Service 1d8f1c
    "    <method name='CandidateClickedLookupTable'>"
Packit Service 1d8f1c
    "      <arg direction='in' type='u' name='index' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='u' name='button' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='u' name='state' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='RegisterProperties'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='v' name='props' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='UpdateProperty'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='v' name='prop' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='FocusIn'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='o' name='ic' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='FocusOut'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='o' name='ic' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='DestroyContext'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='o' name='ic' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='SetCursorLocation'>"
Packit Service 1d8f1c
    "      <arg direction='in' type='i' name='x' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='i' name='y' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='i' name='w' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='i' name='h' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='SetCursorLocationRelative'>"
Packit Service 1d8f1c
    "      <arg direction='in' type='i' name='x' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='i' name='y' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='i' name='w' />"
Packit Service 1d8f1c
    "      <arg direction='in' type='i' name='h' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='Reset' />"
Packit Service 1d8f1c
    "    <method name='StartSetup' />"
Packit Service 1d8f1c
    "    <method name='StateChanged' />"
Packit Service 1d8f1c
    "    <method name='HideLanguageBar' />"
Packit Service 1d8f1c
    "    <method name='ShowLanguageBar' />"
Packit Service 1d8f1c
    "    <method name='ContentType'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='u' name='purpose' />"
Packit Service 1d8f1c
    "      <arg direction='in'  type='u' name='hints' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='PanelExtensionReceived'>"
Packit Service 1d8f1c
    "      <arg direction='in' type='v' name='event' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='ProcessKeyEvent'>"
Packit Service 1d8f1c
    "      <arg direction='in'  type='u' name='keyval' />"
Packit Service 1d8f1c
    "      <arg direction='in'  type='u' name='keycode' />"
Packit Service 1d8f1c
    "      <arg direction='in'  type='u' name='state' />"
Packit Service 1d8f1c
    "      <arg direction='out' type='b' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <method name='CommitTextReceived'>"
Packit Service 1d8f1c
    "      <arg direction='in' type='v' name='text' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    /* Signals */
Packit Service 1d8f1c
    "    <signal name='CursorUp' />"
Packit Service 1d8f1c
    "    <signal name='CursorDown' />"
Packit Service 1d8f1c
    "    <signal name='PageUp' />"
Packit Service 1d8f1c
    "    <signal name='PageDown' />"
Packit Service 1d8f1c
    "    <signal name='PropertyActivate'>"
Packit Service 1d8f1c
    "      <arg type='s' name='prop_name' />"
Packit Service 1d8f1c
    "      <arg type='i' name='prop_state' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "    <signal name='PropertyShow'>"
Packit Service 1d8f1c
    "      <arg type='s' name='prop_name' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "    <signal name='PropertyHide'>"
Packit Service 1d8f1c
    "      <arg type='s' name='prop_name' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "    <signal name='CandidateClicked'>"
Packit Service 1d8f1c
    "      <arg type='u' name='index' />"
Packit Service 1d8f1c
    "      <arg type='u' name='button' />"
Packit Service 1d8f1c
    "      <arg type='u' name='state' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "    <signal name='CommitText'>"
Packit Service 1d8f1c
    "      <arg type='v' name='text' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "    <signal name='PanelExtension'>"
Packit Service 1d8f1c
    "      <arg type='v' name='event' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "    <method name='PanelExtensionRegisterKeys'>"
Packit Service 1d8f1c
    "      <arg type='v' name='data' />"
Packit Service 1d8f1c
    "    </method>"
Packit Service 1d8f1c
    "    <signal name='UpdatePreeditTextReceived'>"
Packit Service 1d8f1c
    "      <arg type='v' name='text' />"
Packit Service 1d8f1c
    "      <arg type='u' name='cursor_pos' />"
Packit Service 1d8f1c
    "      <arg type='b' name='visible' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "    <signal name='UpdateAuxiliaryTextReceived'>"
Packit Service 1d8f1c
    "      <arg type='v' name='text' />"
Packit Service 1d8f1c
    "      <arg type='b' name='visible' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "    <signal name='UpdateLookupTableReceived'>"
Packit Service 1d8f1c
    "      <arg type='v' name='table' />"
Packit Service 1d8f1c
    "      <arg type='b' name='visible' />"
Packit Service 1d8f1c
    "    </signal>"
Packit Service 1d8f1c
    "  </interface>"
Packit Service 1d8f1c
    "</node>";
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_class_init (IBusPanelServiceClass *class)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GObjectClass *gobject_class = G_OBJECT_CLASS (class);
Packit Service 1d8f1c
    ibus_panel_service_parent_class =
Packit Service 1d8f1c
            IBUS_SERVICE_CLASS (g_type_class_peek_parent (class));
Packit Service 1d8f1c
Packit Service 1d8f1c
    gobject_class->set_property =
Packit Service 1d8f1c
            (GObjectSetPropertyFunc) ibus_panel_service_set_property;
Packit Service 1d8f1c
    gobject_class->get_property =
Packit Service 1d8f1c
            (GObjectGetPropertyFunc) ibus_panel_service_get_property;
Packit Service 1d8f1c
Packit Service 1d8f1c
    IBUS_OBJECT_CLASS (gobject_class)->destroy =
Packit Service 1d8f1c
            (IBusObjectDestroyFunc) ibus_panel_service_real_destroy;
Packit Service 1d8f1c
Packit Service 1d8f1c
    IBUS_SERVICE_CLASS (class)->service_method_call  =
Packit Service 1d8f1c
            ibus_panel_service_service_method_call;
Packit Service 1d8f1c
    IBUS_SERVICE_CLASS (class)->service_get_property =
Packit Service 1d8f1c
            ibus_panel_service_service_get_property;
Packit Service 1d8f1c
    IBUS_SERVICE_CLASS (class)->service_set_property =
Packit Service 1d8f1c
            ibus_panel_service_service_set_property;
Packit Service 1d8f1c
Packit Service 1d8f1c
    ibus_service_class_add_interfaces (IBUS_SERVICE_CLASS (class),
Packit Service 1d8f1c
                                       introspection_xml);
Packit Service 1d8f1c
Packit Service 1d8f1c
    class->focus_in              = ibus_panel_service_focus_in;
Packit Service 1d8f1c
    class->focus_out             = ibus_panel_service_focus_out;
Packit Service 1d8f1c
    class->destroy_context       = ibus_panel_service_destroy_context;
Packit Service 1d8f1c
    class->register_properties   = ibus_panel_service_register_properties;
Packit Service 1d8f1c
    class->set_cursor_location   = ibus_panel_service_set_cursor_location;
Packit Service 1d8f1c
    class->set_cursor_location_relative = ibus_panel_service_set_cursor_location_relative;
Packit Service 1d8f1c
    class->update_lookup_table   = ibus_panel_service_update_lookup_table;
Packit Service 1d8f1c
    class->update_auxiliary_text = ibus_panel_service_update_auxiliary_text;
Packit Service 1d8f1c
    class->update_preedit_text   = ibus_panel_service_update_preedit_text;
Packit Service 1d8f1c
    class->update_property       = ibus_panel_service_update_property;
Packit Service 1d8f1c
    class->set_content_type      = ibus_panel_service_set_content_type;
Packit Service 1d8f1c
    class->panel_extension_received =
Packit Service 1d8f1c
            ibus_panel_service_panel_extension_received;
Packit Service 1d8f1c
Packit Service 1d8f1c
    class->cursor_down_lookup_table = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->cursor_up_lookup_table   = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->hide_auxiliary_text      = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->hide_language_bar        = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->hide_lookup_table        = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->hide_preedit_text        = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->page_down_lookup_table   = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->page_up_lookup_table     = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->reset                    = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->show_auxiliary_text      = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->show_language_bar        = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->show_lookup_table        = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->show_preedit_text        = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->start_setup              = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
    class->state_changed            = ibus_panel_service_not_implemented;
Packit Service 1d8f1c
Packit Service 1d8f1c
    /* install signals */
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::update-preedit-text:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @text: A preedit text to be updated.
Packit Service 1d8f1c
     * @cursor_pos: The cursor position of the text.
Packit Service 1d8f1c
     * @visible: Whether the update is visible.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::update-preedit-text.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::update_preedit_text in extended class
Packit Service 1d8f1c
     * to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[UPDATE_PREEDIT_TEXT] =
Packit Service 1d8f1c
        g_signal_new (I_("update-preedit-text"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, update_preedit_text),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__OBJECT_UINT_BOOLEAN,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            3,
Packit Service 1d8f1c
            IBUS_TYPE_TEXT,
Packit Service 1d8f1c
            G_TYPE_UINT,
Packit Service 1d8f1c
            G_TYPE_BOOLEAN);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::update-auxiliary-text:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @text: A preedit text to be updated.
Packit Service 1d8f1c
     * @visible: Whether the update is visible.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::update-auxiliary-text.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::update_auxiliary_text in extended class
Packit Service 1d8f1c
     * to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[UPDATE_AUXILIARY_TEXT] =
Packit Service 1d8f1c
        g_signal_new (I_("update-auxiliary-text"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, update_auxiliary_text),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__OBJECT_BOOLEAN,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            2,
Packit Service 1d8f1c
            IBUS_TYPE_TEXT,
Packit Service 1d8f1c
            G_TYPE_BOOLEAN);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::update-lookup-table:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @lookup_table: A lookup table to be updated.
Packit Service 1d8f1c
     * @visible: Whether the update is visible.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::update-lookup-table.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::update_lookup_table in extended class
Packit Service 1d8f1c
     * to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[UPDATE_LOOKUP_TABLE] =
Packit Service 1d8f1c
        g_signal_new (I_("update-lookup-table"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, update_lookup_table),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__OBJECT_BOOLEAN,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            2,
Packit Service 1d8f1c
            IBUS_TYPE_LOOKUP_TABLE,
Packit Service 1d8f1c
            G_TYPE_BOOLEAN);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::focus-in:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @input_context_path: Object path of InputContext.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::focus-in.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::focus_in in extended class to receive
Packit Service 1d8f1c
     * this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[FOCUS_IN] =
Packit Service 1d8f1c
        g_signal_new (I_("focus-in"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, focus_in),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__STRING,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            1,
Packit Service 1d8f1c
            G_TYPE_STRING);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::focus-out:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @input_context_path: Object path of InputContext.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::focus-out.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::focus_out in extended class to receive
Packit Service 1d8f1c
     * this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[FOCUS_OUT] =
Packit Service 1d8f1c
        g_signal_new (I_("focus-out"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, focus_out),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__STRING,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            1,
Packit Service 1d8f1c
            G_TYPE_STRING);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::register-properties:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @prop_list: An IBusPropList that contains properties.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::register-properties.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::register_properties in extended class
Packit Service 1d8f1c
     * to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[REGISTER_PROPERTIES] =
Packit Service 1d8f1c
        g_signal_new (I_("register-properties"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, register_properties),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__OBJECT,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            1,
Packit Service 1d8f1c
            IBUS_TYPE_PROP_LIST);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::update-property:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @prop: The IBusProperty to be updated.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::update-property.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::update_property in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[UPDATE_PROPERTY] =
Packit Service 1d8f1c
        g_signal_new (I_("update-property"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, update_property),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__OBJECT,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            1,
Packit Service 1d8f1c
            IBUS_TYPE_PROPERTY);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::set-cursor-location:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @x: X coordinate of the cursor.
Packit Service 1d8f1c
     * @y: Y coordinate of the cursor.
Packit Service 1d8f1c
     * @w: Width of the cursor.
Packit Service 1d8f1c
     * @h: Height of the cursor.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::set-cursor-location.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::set_cursor_location in extended class
Packit Service 1d8f1c
     * to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[SET_CURSOR_LOCATION] =
Packit Service 1d8f1c
        g_signal_new (I_("set-cursor-location"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, set_cursor_location),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__INT_INT_INT_INT,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            4,
Packit Service 1d8f1c
            G_TYPE_INT,
Packit Service 1d8f1c
            G_TYPE_INT,
Packit Service 1d8f1c
            G_TYPE_INT,
Packit Service 1d8f1c
            G_TYPE_INT);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::set-cursor-location-relative:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @x: X coordinate of the cursor.
Packit Service 1d8f1c
     * @y: Y coordinate of the cursor.
Packit Service 1d8f1c
     * @w: Width of the cursor.
Packit Service 1d8f1c
     * @h: Height of the cursor.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the set-cursor-location-relative.
Packit Service 1d8f1c
     * Implement the member function set_cursor_location_relative() in
Packit Service 1d8f1c
     * extended class to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[SET_CURSOR_LOCATION_RELATIVE] =
Packit Service 1d8f1c
        g_signal_new (I_("set-cursor-location-relative"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, set_cursor_location_relative),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__INT_INT_INT_INT,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            4,
Packit Service 1d8f1c
            G_TYPE_INT,
Packit Service 1d8f1c
            G_TYPE_INT,
Packit Service 1d8f1c
            G_TYPE_INT,
Packit Service 1d8f1c
            G_TYPE_INT);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::cursor-up-lookup-table:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::cursor-up-lookup-table.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::cursor_up_lookup_table in extended
Packit Service 1d8f1c
     * class to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[CURSOR_UP_LOOKUP_TABLE] =
Packit Service 1d8f1c
        g_signal_new (I_("cursor-up-lookup-table"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, cursor_up_lookup_table),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::cursor-down-lookup-table:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::cursor-down-lookup-table.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::cursor_down_lookup_table in extended
Packit Service 1d8f1c
     * class to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[CURSOR_DOWN_LOOKUP_TABLE] =
Packit Service 1d8f1c
        g_signal_new (I_("cursor-down-lookup-table"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, cursor_down_lookup_table),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::hide-auxiliary-text:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::hide-auxiliary-text.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::hide_auxiliary_text in extended class
Packit Service 1d8f1c
     * to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[HIDE_AUXILIARY_TEXT] =
Packit Service 1d8f1c
        g_signal_new (I_("hide-auxiliary-text"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, hide_auxiliary_text),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::hide-language-bar:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::hide-language-bar.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::hide_language_bar in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[HIDE_LANGUAGE_BAR] =
Packit Service 1d8f1c
        g_signal_new (I_("hide-language-bar"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, hide_language_bar),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::hide-lookup-table:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::hide-lookup-table.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::hide_lookup_table in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[HIDE_LOOKUP_TABLE] =
Packit Service 1d8f1c
        g_signal_new (I_("hide-lookup-table"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, hide_lookup_table),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::hide-preedit-text:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::hide-preedit-text.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::hide_preedit_text in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[HIDE_PREEDIT_TEXT] =
Packit Service 1d8f1c
        g_signal_new (I_("hide-preedit-text"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, hide_preedit_text),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::page-up-lookup-table:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::page-up-lookup-table.
Packit Service 1d8f1c
     * Implement the member function 
Packit Service 1d8f1c
     * IBusPanelServiceClass::page_up_lookup_table in extended class
Packit Service 1d8f1c
     * to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[PAGE_UP_LOOKUP_TABLE] =
Packit Service 1d8f1c
        g_signal_new (I_("page-up-lookup-table"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, page_up_lookup_table),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::page-down-lookup-table:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::page-down-lookup-table.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::page_down_lookup_table in extended
Packit Service 1d8f1c
     * class to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[PAGE_DOWN_LOOKUP_TABLE] =
Packit Service 1d8f1c
        g_signal_new (I_("page-down-lookup-table"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, page_down_lookup_table),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::reset:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::reset.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::reset in extended class to receive this
Packit Service 1d8f1c
     * signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[RESET] =
Packit Service 1d8f1c
        g_signal_new (I_("reset"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, reset),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::show-auxiliary-text:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::show-auxiliary-text.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::show_auxiliary_text in extended class
Packit Service 1d8f1c
     * to receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[SHOW_AUXILIARY_TEXT] =
Packit Service 1d8f1c
        g_signal_new (I_("show-auxiliary-text"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, show_auxiliary_text),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::show-language-bar:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::show-language-bar.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::show_language_bar in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[SHOW_LANGUAGE_BAR] =
Packit Service 1d8f1c
        g_signal_new (I_("show-language-bar"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, show_language_bar),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::show-lookup-table:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::show-lookup-table.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::show_lookup_table in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[SHOW_LOOKUP_TABLE] =
Packit Service 1d8f1c
        g_signal_new (I_("show-lookup-table"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, show_lookup_table),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::show-preedit-text:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::show-preedit-text.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::show_preedit_text in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[SHOW_PREEDIT_TEXT] =
Packit Service 1d8f1c
        g_signal_new (I_("show-preedit-text"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, show_preedit_text),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::start-setup:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::start-setup.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::start_setup in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[START_SETUP] =
Packit Service 1d8f1c
        g_signal_new (I_("start-setup"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, start_setup),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::state-changed:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::state-changed.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::state_changed in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[STATE_CHANGED] =
Packit Service 1d8f1c
        g_signal_new (I_("state-changed"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, state_changed),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__VOID,
Packit Service 1d8f1c
            G_TYPE_NONE, 0);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::destroy-context:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @input_context_path: Object path of InputContext.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application destroys.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::destroy_context in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[DESTROY_CONTEXT] =
Packit Service 1d8f1c
        g_signal_new (I_("destroy-context"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, destroy_context),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__STRING,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            1,
Packit Service 1d8f1c
            G_TYPE_STRING);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::set-content-type:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @purpose: Input purpose.
Packit Service 1d8f1c
     * @hints: Input hints.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::set-content-type.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::set_content_type in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[SET_CONTENT_TYPE] =
Packit Service 1d8f1c
        g_signal_new (I_("set-content-type"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, set_content_type),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__UINT_UINT,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            2,
Packit Service 1d8f1c
            G_TYPE_UINT,
Packit Service 1d8f1c
            G_TYPE_UINT);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::panel-extension-received:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @data: A #GVariant
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::panel-extension-received.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::panel_extension_received in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[PANEL_EXTENSION_RECEIVED] =
Packit Service 1d8f1c
        g_signal_new (I_("panel-extension-received"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, panel_extension_received),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__OBJECT,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            1,
Packit Service 1d8f1c
            IBUS_TYPE_EXTENSION_EVENT);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::process-key-event:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @keyval: Key symbol of the key press.
Packit Service 1d8f1c
     * @keycode: KeyCode of the key press.
Packit Service 1d8f1c
     * @state: Key modifier flags.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when a key event is received.
Packit Service 1d8f1c
     * Implement the member function IBusPanelServiceClass::process_key_event
Packit Service 1d8f1c
     * in extended class to receive this signal.
Packit Service 1d8f1c
     * Both the key symbol and keycode are passed to the member function.
Packit Service 1d8f1c
     * See ibus_input_context_process_key_event() for further explanation of
Packit Service 1d8f1c
     * key symbol, keycode and which to use.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Returns: %TRUE for successfully process the key; %FALSE otherwise.
Packit Service 1d8f1c
     * See also:  ibus_input_context_process_key_event().
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[PROCESS_KEY_EVENT] =
Packit Service 1d8f1c
        g_signal_new (I_("process-key-event"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, process_key_event),
Packit Service 1d8f1c
            g_signal_accumulator_true_handled, NULL,
Packit Service 1d8f1c
            _ibus_marshal_BOOLEAN__UINT_UINT_UINT,
Packit Service 1d8f1c
            G_TYPE_BOOLEAN,
Packit Service 1d8f1c
            3,
Packit Service 1d8f1c
            G_TYPE_UINT,
Packit Service 1d8f1c
            G_TYPE_UINT,
Packit Service 1d8f1c
            G_TYPE_UINT);
Packit Service 1d8f1c
Packit Service 1d8f1c
    /**
Packit Service 1d8f1c
     * IBusPanelService::commit-text-received:
Packit Service 1d8f1c
     * @panel: An #IBusPanelService
Packit Service 1d8f1c
     * @text: A #IBusText
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * Emitted when the client application get the ::commit-text-received.
Packit Service 1d8f1c
     * Implement the member function
Packit Service 1d8f1c
     * IBusPanelServiceClass::commit_text_received in extended class to
Packit Service 1d8f1c
     * receive this signal.
Packit Service 1d8f1c
     *
Packit Service 1d8f1c
     * <note><para>Argument @user_data is ignored in this function.</para>
Packit Service 1d8f1c
     * </note>
Packit Service 1d8f1c
     */
Packit Service 1d8f1c
    panel_signals[COMMIT_TEXT_RECEIVED] =
Packit Service 1d8f1c
        g_signal_new (I_("commit-text-received"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass, commit_text_received),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__OBJECT,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            1,
Packit Service 1d8f1c
            IBUS_TYPE_TEXT);
Packit Service 1d8f1c
Packit Service 1d8f1c
    panel_signals[CANDIDATE_CLICKED_LOOKUP_TABLE] =
Packit Service 1d8f1c
        g_signal_new (I_("candidate-clicked-lookup-table"),
Packit Service 1d8f1c
            G_TYPE_FROM_CLASS (gobject_class),
Packit Service 1d8f1c
            G_SIGNAL_RUN_LAST,
Packit Service 1d8f1c
            G_STRUCT_OFFSET (IBusPanelServiceClass,
Packit Service 1d8f1c
                             candidate_clicked_lookup_table),
Packit Service 1d8f1c
            NULL, NULL,
Packit Service 1d8f1c
            _ibus_marshal_VOID__UINT_UINT_UINT,
Packit Service 1d8f1c
            G_TYPE_NONE,
Packit Service 1d8f1c
            3,
Packit Service 1d8f1c
            G_TYPE_UINT,
Packit Service 1d8f1c
            G_TYPE_UINT,
Packit Service 1d8f1c
            G_TYPE_UINT);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_init (IBusPanelService *panel)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_set_property (IBusPanelService *panel,
Packit Service 1d8f1c
                                 guint             prop_id,
Packit Service 1d8f1c
                                 const GValue     *value,
Packit Service 1d8f1c
                                 GParamSpec       *pspec)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    switch (prop_id) {
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        G_OBJECT_WARN_INVALID_PROPERTY_ID (panel, prop_id, pspec);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_get_property (IBusPanelService *panel,
Packit Service 1d8f1c
                                 guint             prop_id,
Packit Service 1d8f1c
                                 GValue           *value,
Packit Service 1d8f1c
                                 GParamSpec       *pspec)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    switch (prop_id) {
Packit Service 1d8f1c
    default:
Packit Service 1d8f1c
        G_OBJECT_WARN_INVALID_PROPERTY_ID (panel, prop_id, pspec);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_real_destroy (IBusPanelService *panel)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    IBUS_OBJECT_CLASS(ibus_panel_service_parent_class)->destroy (IBUS_OBJECT (panel));
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
_g_object_unref_if_floating (gpointer instance)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    if (g_object_is_floating (instance))
Packit Service 1d8f1c
        g_object_unref (instance);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static gboolean
Packit Service 1d8f1c
ibus_panel_service_service_authorized_method (IBusService     *service,
Packit Service 1d8f1c
                                              GDBusConnection *connection)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    if (ibus_service_get_connection (service) == connection)
Packit Service 1d8f1c
        return TRUE;
Packit Service 1d8f1c
    return FALSE;
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_service_method_call (IBusService           *service,
Packit Service 1d8f1c
                                        GDBusConnection       *connection,
Packit Service 1d8f1c
                                        const gchar           *sender,
Packit Service 1d8f1c
                                        const gchar           *object_path,
Packit Service 1d8f1c
                                        const gchar           *interface_name,
Packit Service 1d8f1c
                                        const gchar           *method_name,
Packit Service 1d8f1c
                                        GVariant              *parameters,
Packit Service 1d8f1c
                                        GDBusMethodInvocation *invocation)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    IBusPanelService *panel = IBUS_PANEL_SERVICE (service);
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (interface_name, IBUS_INTERFACE_PANEL) != 0) {
Packit Service 1d8f1c
        IBUS_SERVICE_CLASS (ibus_panel_service_parent_class)->
Packit Service 1d8f1c
                service_method_call (service,
Packit Service 1d8f1c
                                     connection,
Packit Service 1d8f1c
                                     sender,
Packit Service 1d8f1c
                                     object_path,
Packit Service 1d8f1c
                                     interface_name,
Packit Service 1d8f1c
                                     method_name,
Packit Service 1d8f1c
                                     parameters,
Packit Service 1d8f1c
                                     invocation);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (!ibus_panel_service_service_authorized_method (service, connection))
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "UpdatePreeditText") == 0) {
Packit Service 1d8f1c
        GVariant *variant = NULL;
Packit Service 1d8f1c
        guint cursor = 0;
Packit Service 1d8f1c
        gboolean visible = FALSE;
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_variant_get (parameters, "(vub)", &variant, &cursor, &visible);
Packit Service 1d8f1c
        IBusText *text = IBUS_TEXT (ibus_serializable_deserialize (variant));
Packit Service 1d8f1c
        g_variant_unref (variant);
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[UPDATE_PREEDIT_TEXT], 0, text, cursor, visible);
Packit Service 1d8f1c
        _g_object_unref_if_floating (text);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "UpdateAuxiliaryText") == 0) {
Packit Service 1d8f1c
        GVariant *variant = NULL;
Packit Service 1d8f1c
        gboolean visible = FALSE;
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_variant_get (parameters, "(vb)", &variant, &visible);
Packit Service 1d8f1c
        IBusText *text = IBUS_TEXT (ibus_serializable_deserialize (variant));
Packit Service 1d8f1c
        g_variant_unref (variant);
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[UPDATE_AUXILIARY_TEXT], 0, text, visible);
Packit Service 1d8f1c
        _g_object_unref_if_floating (text);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "UpdateLookupTable") == 0) {
Packit Service 1d8f1c
        GVariant *variant = NULL;
Packit Service 1d8f1c
        gboolean visible = FALSE;
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_variant_get (parameters, "(vb)", &variant, &visible);
Packit Service 1d8f1c
        IBusLookupTable *table = IBUS_LOOKUP_TABLE (ibus_serializable_deserialize (variant));
Packit Service 1d8f1c
        g_variant_unref (variant);
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[UPDATE_LOOKUP_TABLE], 0, table, visible);
Packit Service 1d8f1c
        _g_object_unref_if_floating (table);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "FocusIn") == 0) {
Packit Service 1d8f1c
        const gchar *path;
Packit Service 1d8f1c
        g_variant_get (parameters, "(&o)", &path);
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[FOCUS_IN], 0, path);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "FocusOut") == 0) {
Packit Service 1d8f1c
        const gchar *path;
Packit Service 1d8f1c
        g_variant_get (parameters, "(&o)", &path);
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[FOCUS_OUT], 0, path);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "DestroyContext") == 0) {
Packit Service 1d8f1c
        const gchar *path;
Packit Service 1d8f1c
        g_variant_get (parameters, "(&o)", &path);
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[DESTROY_CONTEXT], 0, path);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "RegisterProperties") == 0) {
Packit Service 1d8f1c
        GVariant *variant = g_variant_get_child_value (parameters, 0);
Packit Service 1d8f1c
        IBusPropList *prop_list = IBUS_PROP_LIST (ibus_serializable_deserialize (variant));
Packit Service 1d8f1c
        g_variant_unref (variant);
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[REGISTER_PROPERTIES], 0, prop_list);
Packit Service 1d8f1c
        _g_object_unref_if_floating (prop_list);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "UpdateProperty") == 0) {
Packit Service 1d8f1c
        GVariant *variant = g_variant_get_child_value (parameters, 0);
Packit Service 1d8f1c
        IBusProperty *property = IBUS_PROPERTY (ibus_serializable_deserialize (variant));
Packit Service 1d8f1c
        g_variant_unref (variant);
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[UPDATE_PROPERTY], 0, property);
Packit Service 1d8f1c
        _g_object_unref_if_floating (property);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "SetCursorLocation") == 0) {
Packit Service 1d8f1c
        gint x, y, w, h;
Packit Service 1d8f1c
        g_variant_get (parameters, "(iiii)", &x, &y, &w, &h);
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[SET_CURSOR_LOCATION], 0, x, y, w, h);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "SetCursorLocationRelative") == 0) {
Packit Service 1d8f1c
        gint x, y, w, h;
Packit Service 1d8f1c
        g_variant_get (parameters, "(iiii)", &x, &y, &w, &h);
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[SET_CURSOR_LOCATION_RELATIVE],
Packit Service 1d8f1c
                       0, x, y, w, h);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "ContentType") == 0) {
Packit Service 1d8f1c
        guint purpose, hints;
Packit Service 1d8f1c
        g_variant_get (parameters, "(uu)", &purpose, &hints);
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[SET_CONTENT_TYPE], 0,
Packit Service 1d8f1c
                       purpose, hints);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "PanelExtensionReceived") == 0) {
Packit Service 1d8f1c
        GVariant *arg0 = NULL;
Packit Service 1d8f1c
        IBusExtensionEvent *event = NULL;
Packit Service 1d8f1c
        g_variant_get (parameters, "(v)", &arg0);
Packit Service 1d8f1c
        if (arg0) {
Packit Service 1d8f1c
            event = IBUS_EXTENSION_EVENT (ibus_serializable_deserialize (arg0));
Packit Service 1d8f1c
            g_variant_unref (arg0);
Packit Service 1d8f1c
        }
Packit Service 1d8f1c
        if (!event) {
Packit Service 1d8f1c
            g_dbus_method_invocation_return_error (
Packit Service 1d8f1c
                    invocation,
Packit Service 1d8f1c
                    G_DBUS_ERROR,
Packit Service 1d8f1c
                    G_DBUS_ERROR_FAILED,
Packit Service 1d8f1c
                    "PanelExtensionReceived method gives NULL");
Packit Service 1d8f1c
            return;
Packit Service 1d8f1c
        }
Packit Service 1d8f1c
        g_signal_emit (panel, panel_signals[PANEL_EXTENSION_RECEIVED], 0,
Packit Service 1d8f1c
                       event);
Packit Service 1d8f1c
        _g_object_unref_if_floating (event);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "ProcessKeyEvent") == 0) {
Packit Service 1d8f1c
        guint keyval, keycode, state;
Packit Service 1d8f1c
        gboolean retval = FALSE;
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_variant_get (parameters, "(uuu)", &keyval, &keycode, &state);
Packit Service 1d8f1c
        g_signal_emit (panel,
Packit Service 1d8f1c
                       panel_signals[PROCESS_KEY_EVENT],
Packit Service 1d8f1c
                       0,
Packit Service 1d8f1c
                       keyval,
Packit Service 1d8f1c
                       keycode,
Packit Service 1d8f1c
                       state,
Packit Service 1d8f1c
                       &retval);
Packit Service 1d8f1c
        g_dbus_method_invocation_return_value (invocation,
Packit Service 1d8f1c
                                               g_variant_new ("(b)", retval));
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "CommitTextReceived") == 0) {
Packit Service 1d8f1c
        GVariant *arg0 = NULL;
Packit Service 1d8f1c
        IBusText *text = NULL;
Packit Service 1d8f1c
Packit Service 1d8f1c
        g_variant_get (parameters, "(v)", &arg0);
Packit Service 1d8f1c
        if (arg0) {
Packit Service 1d8f1c
            text = (IBusText *) ibus_serializable_deserialize (arg0);
Packit Service 1d8f1c
            g_variant_unref (arg0);
Packit Service 1d8f1c
        }
Packit Service 1d8f1c
        if (!text) {
Packit Service 1d8f1c
            g_dbus_method_invocation_return_error (
Packit Service 1d8f1c
                    invocation,
Packit Service 1d8f1c
                    G_DBUS_ERROR,
Packit Service 1d8f1c
                    G_DBUS_ERROR_FAILED,
Packit Service 1d8f1c
                    "CommitTextReceived method gives NULL");
Packit Service 1d8f1c
            return;
Packit Service 1d8f1c
        }
Packit Service 1d8f1c
        g_signal_emit (panel,
Packit Service 1d8f1c
                       panel_signals[COMMIT_TEXT_RECEIVED],
Packit Service 1d8f1c
                       0,
Packit Service 1d8f1c
                       text);
Packit Service 1d8f1c
        _g_object_unref_if_floating (text);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
    if (g_strcmp0 (method_name, "CandidateClickedLookupTable") == 0) {
Packit Service 1d8f1c
        guint index = 0;
Packit Service 1d8f1c
        guint button = 0;
Packit Service 1d8f1c
        guint state = 0;
Packit Service 1d8f1c
        g_variant_get (parameters, "(uuu)", &index, &button, &state);
Packit Service 1d8f1c
        g_signal_emit (panel,
Packit Service 1d8f1c
                       panel_signals[CANDIDATE_CLICKED_LOOKUP_TABLE],
Packit Service 1d8f1c
                       0,
Packit Service 1d8f1c
                       index, button, state);
Packit Service 1d8f1c
        return;
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
Packit Service 1d8f1c
    const static struct {
Packit Service 1d8f1c
        const gchar *name;
Packit Service 1d8f1c
        const gint signal_id;
Packit Service 1d8f1c
    } no_arg_methods [] = {
Packit Service 1d8f1c
        { "CursorUpLookupTable",   CURSOR_UP_LOOKUP_TABLE },
Packit Service 1d8f1c
        { "CursorDownLookupTable", CURSOR_DOWN_LOOKUP_TABLE },
Packit Service 1d8f1c
        { "HideAuxiliaryText",     HIDE_AUXILIARY_TEXT },
Packit Service 1d8f1c
        { "HideLanguageBar",       HIDE_LANGUAGE_BAR },
Packit Service 1d8f1c
        { "HideLookupTable",       HIDE_LOOKUP_TABLE },
Packit Service 1d8f1c
        { "HidePreeditText",       HIDE_PREEDIT_TEXT },
Packit Service 1d8f1c
        { "PageUpLookupTable",     PAGE_UP_LOOKUP_TABLE },
Packit Service 1d8f1c
        { "PageDownLookupTable",   PAGE_DOWN_LOOKUP_TABLE },
Packit Service 1d8f1c
        { "Reset",                 RESET },
Packit Service 1d8f1c
        { "ShowAuxiliaryText",     SHOW_AUXILIARY_TEXT },
Packit Service 1d8f1c
        { "ShowLanguageBar",       SHOW_LANGUAGE_BAR },
Packit Service 1d8f1c
        { "ShowLookupTable",       SHOW_LOOKUP_TABLE },
Packit Service 1d8f1c
        { "ShowPreeditText",       SHOW_PREEDIT_TEXT },
Packit Service 1d8f1c
        { "StartSetup",            START_SETUP },
Packit Service 1d8f1c
        { "StateChanged",          STATE_CHANGED },
Packit Service 1d8f1c
    };
Packit Service 1d8f1c
Packit Service 1d8f1c
    gint i;
Packit Service 1d8f1c
    for (i = 0; i < G_N_ELEMENTS (no_arg_methods); i++) {
Packit Service 1d8f1c
        if (g_strcmp0 (method_name, no_arg_methods[i].name) == 0) {
Packit Service 1d8f1c
            if (no_arg_methods[i].signal_id >= 0) {
Packit Service 1d8f1c
                g_signal_emit (panel, panel_signals[no_arg_methods[i].signal_id], 0);
Packit Service 1d8f1c
            }
Packit Service 1d8f1c
            g_dbus_method_invocation_return_value (invocation, NULL);
Packit Service 1d8f1c
            return;
Packit Service 1d8f1c
        }
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
Packit Service 1d8f1c
    /* should not be reached */
Packit Service 1d8f1c
    g_return_if_reached ();
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static GVariant *
Packit Service 1d8f1c
ibus_panel_service_service_get_property (IBusService        *service,
Packit Service 1d8f1c
                                         GDBusConnection    *connection,
Packit Service 1d8f1c
                                         const gchar        *sender,
Packit Service 1d8f1c
                                         const gchar        *object_path,
Packit Service 1d8f1c
                                         const gchar        *interface_name,
Packit Service 1d8f1c
                                         const gchar        *property_name,
Packit Service 1d8f1c
                                         GError            **error)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    return IBUS_SERVICE_CLASS (ibus_panel_service_parent_class)->
Packit Service 1d8f1c
                service_get_property (service,
Packit Service 1d8f1c
                                      connection,
Packit Service 1d8f1c
                                      sender,
Packit Service 1d8f1c
                                      object_path,
Packit Service 1d8f1c
                                      interface_name,
Packit Service 1d8f1c
                                      property_name,
Packit Service 1d8f1c
                                      error);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static gboolean
Packit Service 1d8f1c
ibus_panel_service_service_set_property (IBusService        *service,
Packit Service 1d8f1c
                                         GDBusConnection    *connection,
Packit Service 1d8f1c
                                         const gchar        *sender,
Packit Service 1d8f1c
                                         const gchar        *object_path,
Packit Service 1d8f1c
                                         const gchar        *interface_name,
Packit Service 1d8f1c
                                         const gchar        *property_name,
Packit Service 1d8f1c
                                         GVariant           *value,
Packit Service 1d8f1c
                                         GError            **error)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    return IBUS_SERVICE_CLASS (ibus_panel_service_parent_class)->
Packit Service 1d8f1c
                service_set_property (service,
Packit Service 1d8f1c
                                      connection,
Packit Service 1d8f1c
                                      sender,
Packit Service 1d8f1c
                                      object_path,
Packit Service 1d8f1c
                                      interface_name,
Packit Service 1d8f1c
                                      property_name,
Packit Service 1d8f1c
                                      value,
Packit Service 1d8f1c
                                      error);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_not_implemented (IBusPanelService *panel)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    /* g_debug ("not implemented"); */
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_focus_in (IBusPanelService    *panel,
Packit Service 1d8f1c
                             const gchar         *input_context_path)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_focus_out (IBusPanelService    *panel,
Packit Service 1d8f1c
                              const gchar         *input_context_path)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_destroy_context (IBusPanelService    *panel,
Packit Service 1d8f1c
                                    const gchar         *input_context_path)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_register_properties (IBusPanelService *panel,
Packit Service 1d8f1c
                                        IBusPropList     *prop_list)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_set_cursor_location (IBusPanelService *panel,
Packit Service 1d8f1c
                                        gint              x,
Packit Service 1d8f1c
                                        gint              y,
Packit Service 1d8f1c
                                        gint              w,
Packit Service 1d8f1c
                                        gint              h)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_set_cursor_location_relative (IBusPanelService *panel,
Packit Service 1d8f1c
                                                 gint              x,
Packit Service 1d8f1c
                                                 gint              y,
Packit Service 1d8f1c
                                                 gint              w,
Packit Service 1d8f1c
                                                 gint              h)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_update_auxiliary_text (IBusPanelService *panel,
Packit Service 1d8f1c
                                          IBusText         *text,
Packit Service 1d8f1c
                                          gboolean          visible)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_update_lookup_table (IBusPanelService *panel,
Packit Service 1d8f1c
                                        IBusLookupTable  *lookup_table,
Packit Service 1d8f1c
                                        gboolean          visible)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_update_preedit_text (IBusPanelService *panel,
Packit Service 1d8f1c
                                        IBusText         *text,
Packit Service 1d8f1c
                                        guint             cursor_pos,
Packit Service 1d8f1c
                                        gboolean          visible)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_update_property (IBusPanelService *panel,
Packit Service 1d8f1c
                                    IBusProperty     *prop)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_set_content_type (IBusPanelService *panel,
Packit Service 1d8f1c
                                     guint             purpose,
Packit Service 1d8f1c
                                     guint             hints)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
static void
Packit Service 1d8f1c
ibus_panel_service_panel_extension_received (IBusPanelService   *panel,
Packit Service 1d8f1c
                                             IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    ibus_panel_service_not_implemented(panel);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
IBusPanelService *
Packit Service 1d8f1c
ibus_panel_service_new (GDBusConnection *connection)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL);
Packit Service 1d8f1c
Packit Service 1d8f1c
    GObject *object = g_object_new (IBUS_TYPE_PANEL_SERVICE,
Packit Service 1d8f1c
                                    "object-path", IBUS_PATH_PANEL,
Packit Service 1d8f1c
                                    "connection", connection,
Packit Service 1d8f1c
                                    NULL);
Packit Service 1d8f1c
Packit Service 1d8f1c
    return IBUS_PANEL_SERVICE (object);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_candidate_clicked (IBusPanelService *panel,
Packit Service 1d8f1c
                                      guint             index,
Packit Service 1d8f1c
                                      guint             button,
Packit Service 1d8f1c
                                      guint             state)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "CandidateClicked",
Packit Service 1d8f1c
                              g_variant_new ("(uuu)", index, button, state),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_property_activate (IBusPanelService *panel,
Packit Service 1d8f1c
                                      const gchar      *prop_name,
Packit Service 1d8f1c
                                      guint             prop_state)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "PropertyActivate",
Packit Service 1d8f1c
                              g_variant_new ("(su)", prop_name, prop_state),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_property_show (IBusPanelService *panel,
Packit Service 1d8f1c
                                  const gchar      *prop_name)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "PropertyShow",
Packit Service 1d8f1c
                              g_variant_new ("(s)", prop_name),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_property_hide (IBusPanelService *panel,
Packit Service 1d8f1c
                                  const gchar      *prop_name)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "PropertyHide",
Packit Service 1d8f1c
                              g_variant_new ("(s)", prop_name),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_commit_text (IBusPanelService *panel,
Packit Service 1d8f1c
                                IBusText         *text)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GVariant *variant;
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_TEXT (text));
Packit Service 1d8f1c
Packit Service 1d8f1c
    variant = ibus_serializable_serialize ((IBusSerializable *)text);
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "CommitText",
Packit Service 1d8f1c
                              g_variant_new ("(v)", variant),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_object_is_floating (text)) {
Packit Service 1d8f1c
        g_object_unref (text);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_panel_extension (IBusPanelService   *panel,
Packit Service 1d8f1c
                                    IBusExtensionEvent *event)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GVariant *variant;
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_EXTENSION_EVENT (event));
Packit Service 1d8f1c
Packit Service 1d8f1c
    variant = ibus_serializable_serialize ((IBusSerializable *)event);
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "PanelExtension",
Packit Service 1d8f1c
                              g_variant_new ("(v)", variant),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_object_is_floating (event)) {
Packit Service 1d8f1c
        g_object_unref (event);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_panel_extension_register_keys (IBusPanelService   *panel,
Packit Service 1d8f1c
                                                  const gchar
Packit Service 1d8f1c
                                                           *first_property_name,
Packit Service 1d8f1c
                                                  ...)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GVariantBuilder builder;
Packit Service 1d8f1c
    GVariantBuilder child;
Packit Service 1d8f1c
    const gchar *name;
Packit Service 1d8f1c
    va_list var_args;
Packit Service 1d8f1c
    IBusProcessKeyEventData *keys;
Packit Service 1d8f1c
Packit Service 1d8f1c
    g_return_if_fail (first_property_name);
Packit Service 1d8f1c
Packit Service 1d8f1c
    g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
Packit Service 1d8f1c
    name = first_property_name;
Packit Service 1d8f1c
Packit Service 1d8f1c
    va_start (var_args, first_property_name);
Packit Service 1d8f1c
    do {
Packit Service 1d8f1c
        keys = va_arg (var_args, IBusProcessKeyEventData *);
rpm-build 0a7332
        if (keys == NULL) {
rpm-build 0a7332
            va_end (var_args);
rpm-build 0a7332
            g_warning ("Failed to va_arg for IBusProcessKeyEventData");
rpm-build 0a7332
            return;
rpm-build 0a7332
        }
Packit Service 1d8f1c
        g_variant_builder_init (&child, G_VARIANT_TYPE ("av"));
Packit Service 1d8f1c
        for (; keys; keys++) {
Packit Service 1d8f1c
            if (keys->keyval == 0 && keys->keycode == 0 && keys->state == 0)
Packit Service 1d8f1c
                break;
Packit Service 1d8f1c
            g_variant_builder_add (&child, "v",
Packit Service 1d8f1c
                                   g_variant_new ("(iii)",
Packit Service 1d8f1c
                                                  keys->keyval,
Packit Service 1d8f1c
                                                  keys->keycode, 
Packit Service 1d8f1c
                                                  keys->state));
Packit Service 1d8f1c
        }
Packit Service 1d8f1c
        g_variant_builder_add (&builder, "{sv}",
Packit Service 1d8f1c
                               g_strdup (name), g_variant_builder_end (&child));
Packit Service 1d8f1c
    } while ((name = va_arg (var_args, const gchar *)));
Packit Service 1d8f1c
    va_end (var_args);
Packit Service 1d8f1c
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "PanelExtensionRegisterKeys",
Packit Service 1d8f1c
                              g_variant_new ("(v)",
Packit Service 1d8f1c
                                             g_variant_builder_end (&builder)),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_update_preedit_text_received (IBusPanelService *panel,
Packit Service 1d8f1c
                                                 IBusText         *text,
Packit Service 1d8f1c
                                                 guint             cursor_pos,
Packit Service 1d8f1c
                                                 gboolean          visible)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GVariant *variant;
Packit Service 1d8f1c
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_TEXT (text));
Packit Service 1d8f1c
Packit Service 1d8f1c
    variant = ibus_serializable_serialize ((IBusSerializable *)text);
Packit Service 1d8f1c
    g_return_if_fail (variant);
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "UpdatePreeditTextReceived",
Packit Service 1d8f1c
                              g_variant_new ("(vub)",
Packit Service 1d8f1c
                                             variant, cursor_pos, visible),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_object_is_floating (text)) {
Packit Service 1d8f1c
        g_object_unref (text);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_update_auxiliary_text_received (IBusPanelService *panel,
Packit Service 1d8f1c
                                                   IBusText         *text,
Packit Service 1d8f1c
                                                   gboolean          visible)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GVariant *variant;
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_TEXT (text));
Packit Service 1d8f1c
Packit Service 1d8f1c
    variant = ibus_serializable_serialize ((IBusSerializable *)text);
Packit Service 1d8f1c
    g_return_if_fail (variant);
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "UpdateAuxiliaryTextReceived",
Packit Service 1d8f1c
                              g_variant_new ("(vb)",
Packit Service 1d8f1c
                                             variant, visible),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_object_is_floating (text)) {
Packit Service 1d8f1c
        g_object_unref (text);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
void
Packit Service 1d8f1c
ibus_panel_service_update_lookup_table_received (IBusPanelService *panel,
Packit Service 1d8f1c
                                                 IBusLookupTable  *table,
Packit Service 1d8f1c
                                                 gboolean          visible)
Packit Service 1d8f1c
{
Packit Service 1d8f1c
    GVariant *variant;
Packit Service 1d8f1c
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));
Packit Service 1d8f1c
    g_return_if_fail (IBUS_IS_LOOKUP_TABLE (table));
Packit Service 1d8f1c
Packit Service 1d8f1c
    variant = ibus_serializable_serialize ((IBusSerializable *)table);
Packit Service 1d8f1c
    g_return_if_fail (variant);
Packit Service 1d8f1c
    ibus_service_emit_signal ((IBusService *) panel,
Packit Service 1d8f1c
                              NULL,
Packit Service 1d8f1c
                              IBUS_INTERFACE_PANEL,
Packit Service 1d8f1c
                              "UpdateLookupTableReceived",
Packit Service 1d8f1c
                              g_variant_new ("(vb)",
Packit Service 1d8f1c
                                             variant, visible),
Packit Service 1d8f1c
                              NULL);
Packit Service 1d8f1c
Packit Service 1d8f1c
    if (g_object_is_floating (table)) {
Packit Service 1d8f1c
        g_object_unref (table);
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
}
Packit Service 1d8f1c
Packit Service 1d8f1c
#define DEFINE_FUNC(name, Name)                             \
Packit Service 1d8f1c
    void                                                    \
Packit Service 1d8f1c
    ibus_panel_service_##name (IBusPanelService *panel)     \
Packit Service 1d8f1c
    {                                                       \
Packit Service 1d8f1c
        g_return_if_fail (IBUS_IS_PANEL_SERVICE (panel));   \
Packit Service 1d8f1c
        ibus_service_emit_signal ((IBusService *) panel,    \
Packit Service 1d8f1c
                                  NULL,                     \
Packit Service 1d8f1c
                                  IBUS_INTERFACE_PANEL,     \
Packit Service 1d8f1c
                                  #Name,                    \
Packit Service 1d8f1c
                                  NULL,                     \
Packit Service 1d8f1c
                                  NULL);                    \
Packit Service 1d8f1c
    }
Packit Service 1d8f1c
DEFINE_FUNC (cursor_down, CursorDown)
Packit Service 1d8f1c
DEFINE_FUNC (cursor_up, CursorUp)
Packit Service 1d8f1c
DEFINE_FUNC (page_down, PageDown)
Packit Service 1d8f1c
DEFINE_FUNC (page_up, PageUp)
Packit Service 1d8f1c
#undef DEFINE_FUNC