WIP fix gtk3 setup issues
[platform/upstream/ibus.git] / gconf / main.c
1 /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
2 /* vim:set et sts=4: */
3
4 #include <ibus.h>
5 #include <stdlib.h>
6 #include <locale.h>
7 #include "config.h"
8
9 static IBusBus *bus = NULL;
10 static IBusConfigGConf *config = NULL;
11
12 /* options */
13 static gboolean ibus = FALSE;
14 static gboolean verbose = FALSE;
15
16 static const GOptionEntry entries[] =
17 {
18     { "ibus", 'i', 0, G_OPTION_ARG_NONE, &ibus, "component is executed by ibus", NULL },
19     { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "verbose", NULL },
20     { NULL },
21 };
22
23
24 static void
25 ibus_disconnected_cb (IBusBus  *bus,
26                       gpointer  user_data)
27 {
28     ibus_quit ();
29 }
30
31 static void
32 ibus_gconf_start (void)
33 {
34     ibus_init ();
35     bus = ibus_bus_new ();
36     if (!ibus_bus_is_connected (bus)) {
37         exit (-1);
38     }
39     g_signal_connect (bus, "disconnected", G_CALLBACK (ibus_disconnected_cb), NULL);
40     config = ibus_config_gconf_new (ibus_bus_get_connection (bus));
41     ibus_bus_request_name (bus, IBUS_SERVICE_CONFIG, 0);
42     ibus_main ();
43 }
44
45 gint
46 main (gint argc, gchar **argv)
47 {
48     GError *error = NULL;
49     GOptionContext *context;
50
51     setlocale (LC_ALL, "");
52
53     context = g_option_context_new ("- ibus gconf component");
54
55     g_option_context_add_main_entries (context, entries, "ibus-gconf");
56
57     if (!g_option_context_parse (context, &argc, &argv, &error)) {
58         g_print ("Option parsing failed: %s\n", error->message);
59         exit (-1);
60     }
61
62     ibus_gconf_start ();
63
64     return 0;
65 }