示例#1
0
文件: ibusbus.c 项目: BBIO/ibus
guint
ibus_bus_request_name (IBusBus      *bus,
                       const gchar  *name,
                       guint         flags)
{
    g_assert (IBUS_IS_BUS (bus));

    guint retval;
    gboolean result;

    result = ibus_bus_call (bus,
                            DBUS_SERVICE_DBUS,
                            DBUS_PATH_DBUS,
                            DBUS_INTERFACE_DBUS,
                            "RequestName",
                            G_TYPE_STRING, &name,
                            G_TYPE_UINT, &flags,
                            G_TYPE_INVALID,
                            G_TYPE_UINT, &retval,
                            G_TYPE_INVALID);

    if (result)
        return retval;

    return 0;
}
示例#2
0
文件: ibusbus.c 项目: BBIO/ibus
gboolean
ibus_bus_register_component (IBusBus       *bus,
                             IBusComponent *component)
{
    g_assert (IBUS_IS_BUS (bus));
    g_assert (IBUS_IS_COMPONENT (component));

    gboolean result;

    result = ibus_bus_call (bus,
                            IBUS_SERVICE_IBUS,
                            IBUS_PATH_IBUS,
                            IBUS_INTERFACE_IBUS,
                            "RegisterComponent",
                            IBUS_TYPE_COMPONENT, &component,
                            G_TYPE_INVALID,
                            G_TYPE_INVALID);

    return result;


#if 0
    IBusMessage *message, *reply;
    IBusError *error;

    IBusBusPrivate *priv;
    priv = IBUS_BUS_GET_PRIVATE (bus);

    message = ibus_message_new_method_call (IBUS_SERVICE_IBUS,
                                            IBUS_PATH_IBUS,
                                            IBUS_INTERFACE_IBUS,
                                            "RegisterComponent");

    ibus_message_append_args (message,
                              IBUS_TYPE_COMPONENT, &component,
                              G_TYPE_INVALID);

    reply = ibus_connection_send_with_reply_and_block (
                                        priv->connection,
                                        message,
                                        -1,
                                        &error);
    ibus_message_unref (message);

    if (reply == NULL) {
        g_warning ("%s : %s", error->name, error->message);
        ibus_error_free (error);
        return FALSE;
    }

    if ((error = ibus_error_from_message (reply)) != NULL) {
        g_warning ("%s : %s", error->name, error->message);
        ibus_error_free (error);
        ibus_message_unref (reply);
        return FALSE;
    }

    return TRUE;
#endif
}
示例#3
0
文件: ibusbus.c 项目: hychen/ibus
void
ibus_bus_remove_match (IBusBus      *bus,
                       const gchar  *rule)
{
    g_assert (IBUS_IS_BUS (bus));

    ibus_bus_call (bus,
                   DBUS_SERVICE_DBUS,
                   DBUS_PATH_DBUS,
                   DBUS_INTERFACE_DBUS,
                   "RemoveMatch",
                   G_TYPE_STRING, &rule,
                   G_TYPE_INVALID);
}
示例#4
0
文件: ibusbus.c 项目: BBIO/ibus
void
ibus_bus_add_match (IBusBus     *bus,
                    const gchar *rule)
{
    g_assert (IBUS_IS_BUS (bus));

    gboolean result;

    result = ibus_bus_call (bus,
                            DBUS_SERVICE_DBUS,
                            DBUS_PATH_DBUS,
                            DBUS_INTERFACE_DBUS,
                            "AddMatch",
                            G_TYPE_STRING, &rule,
                            G_TYPE_INVALID,
                            G_TYPE_INVALID);
}
示例#5
0
文件: ibusbus.c 项目: hychen/ibus
gboolean
ibus_bus_set_global_engine (IBusBus     *bus,
                            const gchar *global_engine)
{
    g_assert (IBUS_IS_BUS (bus));

    gboolean result;
    result = ibus_bus_call (bus,
                            IBUS_SERVICE_IBUS,
                            IBUS_PATH_IBUS,
                            IBUS_INTERFACE_IBUS,
                            "SetGlobalEngine",
                            G_TYPE_STRING, &global_engine,
                            G_TYPE_INVALID);

    return result;
}
示例#6
0
文件: ibusbus.c 项目: hychen/ibus
gboolean
ibus_bus_register_component (IBusBus       *bus,
                             IBusComponent *component)
{
    g_assert (IBUS_IS_BUS (bus));
    g_assert (IBUS_IS_COMPONENT (component));

    gboolean result;

    result = ibus_bus_call (bus,
                            IBUS_SERVICE_IBUS,
                            IBUS_PATH_IBUS,
                            IBUS_INTERFACE_IBUS,
                            "RegisterComponent",
                            IBUS_TYPE_COMPONENT, &component,
                            G_TYPE_INVALID);

    return result;
}
示例#7
0
文件: ibusbus.c 项目: hychen/ibus
gboolean
ibus_bus_exit (IBusBus *bus,
               gboolean restart)
{
    g_assert (IBUS_IS_BUS (bus));

    IBusBusPrivate *priv;
    priv = IBUS_BUS_GET_PRIVATE (bus);

    gboolean result;
    result = ibus_bus_call (bus,
                            IBUS_SERVICE_IBUS,
                            IBUS_PATH_IBUS,
                            IBUS_INTERFACE_IBUS,
                            "Exit",
                            G_TYPE_BOOLEAN, &restart,
                            G_TYPE_INVALID);
    return result;
}
示例#8
0
文件: ibusbus.c 项目: BBIO/ibus
gboolean
ibus_bus_name_has_owner (IBusBus        *bus,
                         const gchar    *name)
{
    gboolean retval;
    gboolean result;

    result = ibus_bus_call (bus,
                            DBUS_SERVICE_DBUS,
                            DBUS_PATH_DBUS,
                            DBUS_INTERFACE_DBUS,
                            "NameHasOwner",
                            G_TYPE_STRING, &name,
                            G_TYPE_INVALID,
                            G_TYPE_BOOLEAN, &retval,
                            G_TYPE_INVALID);

    if (result)
        return retval;

    return FALSE;
}
示例#9
0
文件: ibusbus.c 项目: BBIO/ibus
const gchar *
ibus_bus_hello (IBusBus *bus)
{
    g_assert (IBUS_IS_BUS (bus));

    gchar *unique_name = NULL;
    gboolean result;

    result = ibus_bus_call (bus,
                            DBUS_SERVICE_DBUS,
                            DBUS_PATH_DBUS,
                            DBUS_INTERFACE_DBUS,
                            "Hello",
                            G_TYPE_INVALID,
                            G_TYPE_STRING, &unique_name,
                            G_TYPE_INVALID);

    if (result)
        return unique_name;

    return NULL;
}
示例#10
0
文件: ibusbus.c 项目: BBIO/ibus
const gchar *
ibus_bus_current_input_context(IBusBus      *bus)
{
    g_assert (IBUS_IS_BUS (bus));

    gchar *name = NULL;
    gboolean result;

    result = ibus_bus_call (bus,
                            DBUS_SERVICE_DBUS,
                            DBUS_PATH_DBUS,
                            DBUS_INTERFACE_DBUS,
                            "CurrentInputContext",
                            G_TYPE_INVALID,
                            G_TYPE_STRING, &name,
                            G_TYPE_INVALID);

    if (result)
        return name;

    return NULL;
}
示例#11
0
文件: ibusbus.c 项目: BBIO/ibus
const gchar *
ibus_bus_get_name_owner (IBusBus        *bus,
                         const gchar    *name)
{
    g_assert (IBUS_IS_BUS (bus));

    gchar *owner = NULL;
    gboolean result;

    result = ibus_bus_call (bus,
                            DBUS_SERVICE_DBUS,
                            DBUS_PATH_DBUS,
                            DBUS_INTERFACE_DBUS,
                            "GetNameOwner",
                            G_TYPE_STRING, &name,
                            G_TYPE_INVALID,
                            G_TYPE_STRING, &owner,
                            G_TYPE_INVALID);

    if (result)
        return owner;

    return NULL;
}