Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/src/shell.py
blob: 6eb2c5fa4fb60d16affa2d3c8c55f7017d395f9d (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/python

import string

import dbus
import dbus.service
import dbus.glib
import gobject
import pygtk
pygtk.require('2.0')
import gtk


activity_counter = 0

class Activity(dbus.service.Object):

    def __init__(self, activity_container, activity_name):
	global activity_counter

	self.activity_container = activity_container

	self.activity_object_name = "/com/redhat/Sugar/Shell/Activity_%d"%activity_counter
	activity_counter += 1
	print "object name = %s"%self.activity_object_name

	dbus.service.Object.__init__(self, activity_container.service, self.activity_object_name)
	self.socket = gtk.Socket()
	self.socket.show()

	tab_name = gtk.Label(activity_name)
	activity_container.notebook.append_page(self.socket, tab_name)


class ActivityContainer(dbus.service.Object):

    def __init__(self, service):

	self.activities = []

	self.service = service

        dbus.service.Object.__init__(self, service, "/com/redhat/Sugar/Shell/ActivityContainer")

	self.window = gtk.Window()
	self.window.set_title("OLPC Sugar")
	self.window.resize(640, 480)

	self.notebook = gtk.Notebook()

	tab_label = gtk.Label("Some tab")
	empty_label = gtk.Label("This left intentionally blank")
	empty_label.show()
	self.notebook.append_page(empty_label, tab_label)

	self.notebook.show()
	self.window.add(self.notebook)

	self.window.connect("destroy", lambda w: gtk.main_quit())
	self.window.show()


    @dbus.service.method("com.redhat.Sugar.Shell.ActivityContainer", \
			 in_signature="s", \
			 out_signature="t", \
			 sender_keyword="sender")
    def add_activity(self, activity_name, sender):
	print "hello world, activity_name = '%s', sender = '%s'"%(activity_name, sender)
	activity = Activity(self, activity_name)
	self.activities.append(activity)
	window_id = activity.socket.get_id()
	print "window_id = %d"%window_id
	return window_id



session_bus = dbus.SessionBus()
service = dbus.service.BusName("com.redhat.Sugar.Shell", bus=session_bus)

activityContainer = ActivityContainer(service)

gtk.main()