ibus-xkb-layouts: Support ibus-1.4.

I've confirmed it could compile with the new API, but I haven't checked if it works correctly.

BUG=chromium-os:9810
TEST=manually

Change-Id: I22103e7d91aa1216699701d9c9cfe8f2597068a9

Review URL: http://codereview.chromium.org/5449001
diff --git a/src/main.c b/src/main.c
index 65275f3..a539ccd 100644
--- a/src/main.c
+++ b/src/main.c
@@ -48,7 +48,11 @@
     engines = ibus_component_get_engines (component);
     for (p = engines; p != NULL; p = p->next) {
         IBusEngineDesc *engine = (IBusEngineDesc *)p->data;
+#if IBUS_CHECK_VERSION(1, 3, 99)
+        ibus_factory_add_engine (factory, ibus_engine_desc_get_name(engine), IBUS_TYPE_XKB_LAYOUT_ENGINE);
+#else
         ibus_factory_add_engine (factory, engine->name, IBUS_TYPE_XKB_LAYOUT_ENGINE);
+#endif
     }
 
     if (ibus) {
diff --git a/src/xkbutil.c b/src/xkbutil.c
index 59eb4cd..2bb258a 100644
--- a/src/xkbutil.c
+++ b/src/xkbutil.c
@@ -33,6 +33,21 @@
         engine_hotkeys = "Muhenkan";
     }
 
+    /* set default rank to 0 */
+    gint rank = 0;
+    if (g_strcmp0(layout, "us") == 0 && (!variant || !*variant)) {
+        rank = 100;
+    }
+
+#if IBUS_CHECK_VERSION(1, 3, 99)
+    engine = ibus_engine_desc_new_varargs("name", engine_name,
+                                          "longname", (engine_longname ? engine_longname : layout_desc),
+                                          "language", language,
+                                          "layout", (engine_layout ? engine_layout : layout),
+                                          "hotkeys", engine_hotkeys,
+                                          "rank", rank,
+                                          NULL);
+#else
     engine = ibus_engine_desc_new2(engine_name,
                                    engine_longname ? engine_longname : layout_desc,
                                    "",
@@ -42,13 +57,8 @@
                                    "",
                                    engine_layout ? engine_layout : layout,
                                    engine_hotkeys);
-
-    /* set default rank to 0 */
-    engine->rank = 0;
-
-    if (g_strcmp0(layout, "us") == 0 && (!variant || !*variant)) {
-        engine->rank = 100;
-    }
+    engine->rank = rank;
+#endif
 
     g_free (engine_name);
     g_free (engine_longname);