diff options
Diffstat (limited to 'shell/Shell.py')
-rwxr-xr-x | shell/Shell.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/shell/Shell.py b/shell/Shell.py new file mode 100755 index 0000000..025ec80 --- /dev/null +++ b/shell/Shell.py @@ -0,0 +1,43 @@ +import dbus +import gobject + +from sugar.LogWriter import LogWriter +from WindowManager import WindowManager +from ConsoleLogger import ConsoleLogger +from ActivityContainer import ActivityContainer + +class Shell(gobject.GObject): + __gsignals__ = { + 'close': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, + ([])), + } + + def __init__(self): + gobject.GObject.__init__(self) + + def start(self): + console = ConsoleLogger() + + log_writer = LogWriter("Shell", False) + log_writer.start() + + session_bus = dbus.SessionBus() + service = dbus.service.BusName("com.redhat.Sugar.Shell", bus=session_bus) + + activity_container = ActivityContainer(service, session_bus) + activity_container.window.connect('destroy', self.__activity_container_destroy_cb) + activity_container.show() + + wm = WindowManager(activity_container.window) + wm.show() + + def __activity_container_destroy_cb(self, activity_container): + self.emit('close') + +if __name__ == "__main__": + shell = Shell() + shell.start() + try: + gtk.main() + except KeyboardInterrupt: + print 'Ctrl+c pressed, exiting...' |