Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/Shell.py
blob: dd222dae4f346638da4b54c54c10aab45aa0b252 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import dbus
import gtk
import gobject

from sugar.LogWriter import LogWriter
from WindowManager import WindowManager
from ConsoleLogger import ConsoleLogger
from ActivityContainer import ActivityContainer
from ActivityRegistry import ActivityRegistry
from HomeWindow import HomeWindow

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()

		self._registry = ActivityRegistry()
		
		root_window = gtk.Window()
		root_window.set_title('Sugar')
		wm = WindowManager(root_window)
		wm.set_type(WindowManager.TYPE_ROOT)
		wm.show()		
		
		home_window = HomeWindow(self)
		home_window.set_transient_for(root_window)
		wm = WindowManager(home_window)
		wm.set_type(WindowManager.TYPE_POPUP)
		wm.set_animation(WindowManager.ANIMATION_SLIDE_IN)
		wm.set_geometry(0.1, 0.1, 0.8, 0.8)
		wm.set_key(gtk.keysyms.F2)
		wm.show()

		session_bus = dbus.SessionBus()
		service = dbus.service.BusName("com.redhat.Sugar.Shell", bus=session_bus)
		activity_container = ActivityContainer(service, session_bus)
		
	def get_registry(self):
		return self._registry

if __name__ == "__main__":
	shell = Shell()
	shell.start()
	try:
		gtk.main()
	except KeyboardInterrupt:
		print 'Ctrl+c pressed, exiting...'