return priv->config;
}
+
+gboolean
+ibus_bus_get_use_sys_layout (IBusBus *bus)
+{
+ g_assert (IBUS_IS_BUS (bus));
+ gboolean result;
+ gboolean use_sys_layout;
+
+ result = ibus_bus_call (bus,
+ IBUS_SERVICE_IBUS,
+ IBUS_PATH_IBUS,
+ IBUS_INTERFACE_IBUS,
+ "GetUseSysLayout",
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &use_sys_layout,
+ G_TYPE_INVALID);
+
+ return result && use_sys_layout;
+}
+
+gboolean
+ibus_bus_get_use_global_engine (IBusBus *bus)
+{
+ g_assert (IBUS_IS_BUS (bus));
+ gboolean result;
+ gboolean use_global_engine;
+
+ result = ibus_bus_call (bus,
+ IBUS_SERVICE_IBUS,
+ IBUS_PATH_IBUS,
+ IBUS_INTERFACE_IBUS,
+ "GetUseGlobalEngine",
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &use_global_engine,
+ G_TYPE_INVALID);
+
+ return result && use_global_engine;
+}
+
+gboolean
+ibus_bus_is_global_engine_enabled (IBusBus *bus)
+{
+ g_assert (IBUS_IS_BUS (bus));
+ gboolean result;
+ gboolean is_global_engine_enabled;
+
+ result = ibus_bus_call (bus,
+ IBUS_SERVICE_IBUS,
+ IBUS_PATH_IBUS,
+ IBUS_INTERFACE_IBUS,
+ "IsGlobalEngineEnabled",
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &is_global_engine_enabled,
+ G_TYPE_INVALID);
+
+ return result && is_global_engine_enabled;
+}
+
+IBusEngineDesc *
+ibus_bus_get_global_engine (IBusBus *bus)
+{
+ g_assert (IBUS_IS_BUS (bus));
+ gboolean result;
+ IBusEngineDesc *global_engine = NULL;
+
+ result = ibus_bus_call (bus,
+ IBUS_SERVICE_IBUS,
+ IBUS_PATH_IBUS,
+ IBUS_INTERFACE_IBUS,
+ "GetGlobalEngine",
+ G_TYPE_INVALID,
+ IBUS_TYPE_ENGINE_DESC, &global_engine,
+ G_TYPE_INVALID);
+
+ return result ? global_engine : NULL;
+}
+
+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,
+ G_TYPE_INVALID);
+
+ return result;
+}
*/
GList *ibus_bus_list_active_engines
(IBusBus *bus);
+
+/**
+ * ibus_bus_get_use_sys_layout:
+ * @bus: An IBusBus.
+ * @returns: TRUE if "use_sys_layout" option is enabled.
+ *
+ * Check if the bus's "use_sys_layout" option is enabled or not.
+ */
+gboolean ibus_bus_get_use_sys_layout(IBusBus *bus);
+
+/**
+ * ibus_bus_get_use_global_engine:
+ * @bus: An IBusBus.
+ * @returns: TRUE if "use_global_engine" option is enabled.
+ *
+ * Check if the bus's "use_global_engine" option is enabled or not.
+ */
+gboolean ibus_bus_get_use_global_engine
+ (IBusBus *bus);
+
+
+/**
+ * ibus_bus_is_global_engine_enabled:
+ * @bus: An IBusBus.
+ * @returns: TRUE if the current global engine is enabled.
+ *
+ * Check if the current global engine is enabled or not.
+ */
+gboolean ibus_bus_is_global_engine_enabled
+ (IBusBus *bus);
+
+/**
+ * ibus_bus_get_global_engine:
+ * @bus: An IBusBus.
+ * @returns: The description of current global engine, or NULL if there is no
+ * global engine.
+ *
+ * Get the description of current global engine.
+ */
+IBusEngineDesc
+ *ibus_bus_get_global_engine (IBusBus *bus);
+
+/**
+ * ibus_bus_set_global_engine:
+ * @bus: An IBusBus.
+ * @global_engine: A new engine name.
+ * @returns: TRUE if the global engine was set successfully.
+ *
+ * Set current global engine.
+ */
+gboolean ibus_bus_set_global_engine (IBusBus *bus,
+ const gchar *global_engine);
+
/* declare config apis */
/**
* ibus_bus_get_config:
g_assert (engines);
print_engines (engines);
g_list_free (engines);
+
+ g_debug ("===== Global engine:");
+ if (ibus_bus_get_use_global_engine (bus)) {
+ g_debug ("use_global_engine is true.");
+ if (ibus_bus_is_global_engine_enabled (bus)) {
+ g_debug ("Global engine is enabled.");
+ IBusEngineDesc *global_engine = ibus_bus_get_global_engine (bus);
+ g_assert (global_engine);
+ g_debug ("%s (id:%s, icon:%s)", global_engine->longname,
+ global_engine->name, global_engine->icon);
+ g_object_unref (global_engine);
+ }
+ }
+
+ g_debug ("===== Use system layout:%s", ibus_bus_get_use_sys_layout (bus) ? "true" : "false");
+
g_debug ("Test ibusbus.c: passed.");
/* Test ibusinputcontext.c */