diff options
author | Santhosh Thottingal <santhosh.thottingal@gmail.com> | 2009-05-03 21:31:17 +0530 |
---|---|---|
committer | Santhosh Thottingal <santhosh.thottingal@gmail.com> | 2009-05-03 21:31:17 +0530 |
commit | 6d33918b6b8e90f80b3ea78b659fea155b2cb1e0 (patch) | |
tree | eab2fef7f698715a15f78bf416d35624f58c2375 /input-methods/ibus-sulekha/engine/main.py | |
parent | 7a81f78656d6a386231c0497819ace63a0079798 (diff) | |
download | Rachana.git-6d33918b6b8e90f80b3ea78b659fea155b2cb1e0.tar.gz Rachana.git-6d33918b6b8e90f80b3ea78b659fea155b2cb1e0.tar.xz Rachana.git-6d33918b6b8e90f80b3ea78b659fea155b2cb1e0.zip |
initial version of ibus-sulekha
Diffstat (limited to 'input-methods/ibus-sulekha/engine/main.py')
-rw-r--r-- | input-methods/ibus-sulekha/engine/main.py | 96 |
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() |