diff options
Diffstat (limited to 'shell/ActivityContainer.py')
-rw-r--r-- | shell/ActivityContainer.py | 101 |
1 files changed, 26 insertions, 75 deletions
diff --git a/shell/ActivityContainer.py b/shell/ActivityContainer.py index 1e48b95..cf961bb 100644 --- a/shell/ActivityContainer.py +++ b/shell/ActivityContainer.py @@ -7,6 +7,7 @@ from sugar.chat.ChatWindow import ChatWindow from sugar.chat.MeshChat import MeshChat from ActivityHost import ActivityHost from PresenceWindow import PresenceWindow +from HomeWindow import HomeWindow from WindowManager import WindowManager from StartPage import StartPage from Owner import ShellOwner @@ -33,46 +34,23 @@ class ActivityContainerSignalHelper(gobject.GObject): self.emit('local-activity-ended', self._parent, activity_id) class ActivityContainer(dbus.service.Object): - def __init__(self, service, bus): - self.activities = [] - - self.bus = bus - self.service = service - + self._activities = [] + self._bus = bus + self._service = service self._signal_helper = ActivityContainerSignalHelper(self) + self._current_activity = None - dbus.service.Object.__init__(self, self.service, "/com/redhat/Sugar/Shell/ActivityContainer") - bus.add_signal_receiver(self.name_owner_changed, dbus_interface = "org.freedesktop.DBus", signal_name = "NameOwnerChanged") - - self.window = gtk.Window() - self.window.connect("key-press-event", self.__key_press_event_cb) - self.window.set_title("OLPC Sugar") - - self._fullscreen = False - - self.notebook = gtk.Notebook() - self.notebook.set_scrollable(True) - - tab_label = gtk.Label(_("Everyone")) - self._start_page = StartPage(self, self._signal_helper) - self.notebook.append_page(self._start_page, tab_label) - self._start_page.show() - - self.notebook.show() - self.notebook.connect("switch-page", self.notebook_tab_changed) - self.window.add(self.notebook) - - self.window.connect("destroy", lambda w: gtk.main_quit()) - - self.current_activity = None + dbus.service.Object.__init__(self, self._service, + "/com/redhat/Sugar/Shell/ActivityContainer") + bus.add_signal_receiver(self.name_owner_changed, + dbus_interface = "org.freedesktop.DBus", + signal_name = "NameOwnerChanged") # Create our owner service self._owner = ShellOwner() self._presence_window = PresenceWindow(self) - self._presence_window.set_transient_for(self.window) - wm = WindowManager(self._presence_window) wm.set_type(WindowManager.TYPE_POPUP) wm.set_animation(WindowManager.ANIMATION_SLIDE_IN) @@ -80,16 +58,21 @@ class ActivityContainer(dbus.service.Object): wm.set_key(gtk.keysyms.F1) self._chat_window = ChatWindow() - self._chat_window.set_transient_for(self.window) - - self._chat_wm = WindowManager(self._chat_window) - self._chat_wm.set_animation(WindowManager.ANIMATION_SLIDE_IN) - self._chat_wm.set_type(WindowManager.TYPE_POPUP) - self._chat_wm.set_geometry(0.28, 0.1, 0.5, 0.9) - self._chat_wm.set_key(gtk.keysyms.F1) + chat_wm = WindowManager(self._chat_window) + chat_wm.set_animation(WindowManager.ANIMATION_SLIDE_IN) + chat_wm.set_type(WindowManager.TYPE_POPUP) + chat_wm.set_geometry(0.28, 0.1, 0.5, 0.9) + chat_wm.set_key(gtk.keysyms.F1) self._mesh_chat = MeshChat() + home_window = HomeWindow() + 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.9, 0.9) + wm.set_key(gtk.keysyms.F2) + def show(self): self.window.show() @@ -103,35 +86,20 @@ class ActivityContainer(dbus.service.Object): else: self._chat_window.set_chat(self._mesh_chat) - def notebook_tab_changed(self, notebook, page, page_number): - new_activity = notebook.get_nth_page(page_number).get_data("sugar-activity") - - if self.current_activity != None: - self.current_activity.lost_focus() - - self.set_current_activity(new_activity) - - if self.current_activity != None: - self.current_activity.got_focus() - def name_owner_changed(self, service_name, old_service_name, new_service_name): - #print "in name_owner_changed: svc=%s oldsvc=%s newsvc=%s"%(service_name, old_service_name, new_service_name) - for owner, activity in self.activities[:]: + for owner, activity in self._activities[:]: if owner == old_service_name: activity_id = activity.get_host_activity_id() self._signal_helper.activity_ended(activity_id) - self.activities.remove((owner, activity)) - #self.__print_activities() - + self._activities.remove((owner, activity)) @dbus.service.method("com.redhat.Sugar.Shell.ActivityContainer", \ in_signature="ss", \ out_signature="s", \ sender_keyword="sender") def add_activity(self, activity_name, default_type, sender): - #print "hello world, activity_name = '%s', sender = '%s'"%(activity_name, sender) activity = ActivityHost(self, activity_name, default_type) - self.activities.append((sender, activity)) + self._activities.append((sender, activity)) activity_id = activity.get_host_activity_id() self._signal_helper.activity_started(activity_id) @@ -144,24 +112,7 @@ class ActivityContainer(dbus.service.Object): sender_keyword="sender") def add_activity_with_id(self, activity_name, default_type, activity_id, sender): activity = ActivityHost(self, activity_name, default_type, activity_id) - self.activities.append((sender, activity)) + self._activities.append((sender, activity)) activity_id = activity.get_host_activity_id() self._signal_helper.activity_started(activity_id) self.current_activity = activity - - def __print_activities(self): - print "__print_activities: %d activities registered" % len(self.activities) - i = 0 - for owner, activity in self.activities: - print " %d: owner=%s activity_object_name=%s" % (i, owner, activity.dbus_object_name) - i += 1 - - def __key_press_event_cb(self, window, event): - if event.keyval == gtk.keysyms.F11: - if self._fullscreen: - window.unfullscreen() - self._fullscreen = False - else: - window.fullscreen() - self._fullscreen = True - |