summaryrefslogtreecommitdiffstats
path: root/input-methods/ibus-sulekha/engine/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'input-methods/ibus-sulekha/engine/main.py')
-rw-r--r--input-methods/ibus-sulekha/engine/main.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/input-methods/ibus-sulekha/engine/main.py b/input-methods/ibus-sulekha/engine/main.py
new file mode 100644
index 0000000..c64dcc7
--- /dev/null
+++ b/input-methods/ibus-sulekha/engine/main.py
@@ -0,0 +1,96 @@
+# vim:set et sts=4 sw=4:
+#
+# ibus-sulekha - The Sulekha engine for IBus
+#
+# Copyright(c) 2009 Santhosh Thottingal <santhosh.thottingal@gmail.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+import os
+import sys
+import getopt
+import ibus
+import gobject
+import factory
+
+class IMApp:
+ def __init__(self, exec_by_ibus):
+ self.__component = ibus.Component("org.freedesktop.IBus.Sulekha",
+ "Sulekha Component",
+ "0.1.0",
+ "GPL",
+ "Peng Huang <shawn.p.huang@gmail.com>")
+ self.__component.add_engine("sulekha",
+ "Sulekha",
+ "Sulekha Input method",
+ "ml_IN",
+ "GPL",
+ "Peng Huang <shawn.p.huang@gmail.com>",
+ "",
+ "en")
+ self.__mainloop = gobject.MainLoop()
+ self.__bus = ibus.Bus()
+ self.__bus.connect("destroy", self.__bus_destroy_cb)
+ self.__factory = factory.EngineFactory(self.__bus)
+ if exec_by_ibus:
+ self.__bus.request_name("org.freedesktop.IBus.Sulekha", 0)
+ else:
+ self.__bus.register_component(self.__component)
+
+ def run(self):
+ self.__mainloop.run()
+
+ def __bus_destroy_cb(self, bus):
+ self.__mainloop.quit()
+
+
+def launch_engine(exec_by_ibus):
+ IMApp(exec_by_ibus).run()
+
+def print_help(out, v = 0):
+ print >> out, "-i, --ibus execute by ibus."
+ print >> out, "-h, --help show this message."
+ print >> out, "-d, --daemonize daemonize ibus"
+ sys.exit(v)
+
+def main():
+ daemonize = False
+ exec_by_ibus = False
+ shortopt = "hdi"
+ longopt = ["help", "daemonize", "ibus"]
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], shortopt, longopt)
+ except getopt.GetoptError, err:
+ print_help(sys.stderr, 1)
+
+ for o, a in opts:
+ if o in("-h", "--help"):
+ print_help(sys.stdout)
+ elif o in ("-d", "--daemonize"):
+ daemonize = True
+ elif o in ("-i", "--ibus"):
+ exec_by_ibus = True
+ else:
+ print >> sys.stderr, "Unknown argument: %s" % o
+ print_help(sys.stderr, 1)
+
+ if daemonize:
+ if os.fork():
+ sys.exit()
+
+ launch_engine(exec_by_ibus)
+
+if __name__ == "__main__":
+ main()