diff options
Diffstat (limited to 'shell/view/frame')
-rw-r--r-- | shell/view/frame/ActivitiesBox.py | 134 | ||||
-rw-r--r-- | shell/view/frame/ClipboardBox.py | 60 | ||||
-rw-r--r-- | shell/view/frame/Frame.py | 442 | ||||
-rw-r--r-- | shell/view/frame/FriendsBox.py | 164 | ||||
-rw-r--r-- | shell/view/frame/PanelWindow.py | 34 | ||||
-rw-r--r-- | shell/view/frame/ZoomBox.py | 160 | ||||
-rw-r--r-- | shell/view/frame/notificationtray.py | 20 | ||||
-rw-r--r-- | shell/view/frame/overlaybox.py | 18 | ||||
-rw-r--r-- | shell/view/frame/shutdownicon.py | 34 |
9 files changed, 533 insertions, 533 deletions
diff --git a/shell/view/frame/ActivitiesBox.py b/shell/view/frame/ActivitiesBox.py index 2e3a75a..aa96585 100644 --- a/shell/view/frame/ActivitiesBox.py +++ b/shell/view/frame/ActivitiesBox.py @@ -22,80 +22,80 @@ from sugar.presence import PresenceService from sugar.graphics import style class ActivityItem(CanvasIcon): - def __init__(self, activity): - icon_name = activity.get_icon() - CanvasIcon.__init__(self, icon_name=icon_name) - style.apply_stylesheet(self, 'frame.ActivityIcon') - self._activity = activity + def __init__(self, activity): + icon_name = activity.get_icon() + CanvasIcon.__init__(self, icon_name=icon_name) + style.apply_stylesheet(self, 'frame.ActivityIcon') + self._activity = activity - def get_bundle_id(self): - return self._activity.get_service_name() + def get_bundle_id(self): + return self._activity.get_service_name() class InviteItem(CanvasIcon): - def __init__(self, activity, invite): - CanvasIcon.__init__(self, icon_name=activity.get_icon()) + def __init__(self, activity, invite): + CanvasIcon.__init__(self, icon_name=activity.get_icon()) - style.apply_stylesheet(self, 'frame.ActivityIcon') - self.props.color = activity.get_color() + style.apply_stylesheet(self, 'frame.ActivityIcon') + self.props.color = activity.get_color() - self._invite = invite + self._invite = invite - def get_activity_id(self): - return self._invite.get_activity_id() + def get_activity_id(self): + return self._invite.get_activity_id() - def get_bundle_id(self): - return self._invite.get_bundle_id() + def get_bundle_id(self): + return self._invite.get_bundle_id() - def get_invite(self): - return self._invite + def get_invite(self): + return self._invite class ActivitiesBox(hippo.CanvasBox): - def __init__(self, shell): - hippo.CanvasBox.__init__(self, orientation=hippo.ORIENTATION_HORIZONTAL) - - self._shell = shell - self._shell_model = self._shell.get_model() - self._invite_to_item = {} - self._invites = self._shell_model.get_invites() - - for bundle in self._shell_model.get_bundle_registry(): - if bundle.get_show_launcher(): - self.add_activity(bundle) - - for invite in self._invites: - self.add_invite(invite) - self._invites.connect('invite-added', self._invite_added_cb) - self._invites.connect('invite-removed', self._invite_removed_cb) - - def _activity_clicked_cb(self, icon): - self._shell.start_activity(icon.get_bundle_id()) - - def _invite_clicked_cb(self, icon): - self._invites.remove_invite(icon.get_invite()) - self._shell.join_activity(icon.get_bundle_id(), - icon.get_activity_id()) - - def _invite_added_cb(self, invites, invite): - self.add_invite(invite) - - def _invite_removed_cb(self, invites, invite): - self.remove_invite(invite) - - def add_activity(self, activity): - item = ActivityItem(activity) - item.connect('activated', self._activity_clicked_cb) - self.append(item, 0) - - def add_invite(self, invite): - mesh = self._shell_model.get_mesh() - activity = mesh.get_activity(invite.get_activity_id()) - if activity: - item = InviteItem(activity, invite) - item.connect('activated', self._invite_clicked_cb) - self.append(item, 0) - - self._invite_to_item[invite] = item - - def remove_invite(self, invite): - self.remove(self._invite_to_item[invite]) - del self._invite_to_item[invite] + def __init__(self, shell): + hippo.CanvasBox.__init__(self, orientation=hippo.ORIENTATION_HORIZONTAL) + + self._shell = shell + self._shell_model = self._shell.get_model() + self._invite_to_item = {} + self._invites = self._shell_model.get_invites() + + for bundle in self._shell_model.get_bundle_registry(): + if bundle.get_show_launcher(): + self.add_activity(bundle) + + for invite in self._invites: + self.add_invite(invite) + self._invites.connect('invite-added', self._invite_added_cb) + self._invites.connect('invite-removed', self._invite_removed_cb) + + def _activity_clicked_cb(self, icon): + self._shell.start_activity(icon.get_bundle_id()) + + def _invite_clicked_cb(self, icon): + self._invites.remove_invite(icon.get_invite()) + self._shell.join_activity(icon.get_bundle_id(), + icon.get_activity_id()) + + def _invite_added_cb(self, invites, invite): + self.add_invite(invite) + + def _invite_removed_cb(self, invites, invite): + self.remove_invite(invite) + + def add_activity(self, activity): + item = ActivityItem(activity) + item.connect('activated', self._activity_clicked_cb) + self.append(item, 0) + + def add_invite(self, invite): + mesh = self._shell_model.get_mesh() + activity = mesh.get_activity(invite.get_activity_id()) + if activity: + item = InviteItem(activity, invite) + item.connect('activated', self._invite_clicked_cb) + self.append(item, 0) + + self._invite_to_item[invite] = item + + def remove_invite(self, invite): + self.remove(self._invite_to_item[invite]) + del self._invite_to_item[invite] diff --git a/shell/view/frame/ClipboardBox.py b/shell/view/frame/ClipboardBox.py index 849c7e0..82dccb6 100644 --- a/shell/view/frame/ClipboardBox.py +++ b/shell/view/frame/ClipboardBox.py @@ -7,36 +7,36 @@ from view.ClipboardIcon import ClipboardIcon from sugar.clipboard import ClipboardService class ClipboardBox(hippo.CanvasBox): - - def __init__(self, frame, menu_shell): - hippo.CanvasBox.__init__(self) - self._frame = frame - self._menu_shell = menu_shell - self._icons = {} - - cb_service = ClipboardService.get_instance() - cb_service.connect('object-added', self._object_added_cb) - cb_service.connect('object-deleted', self._object_deleted_cb) - cb_service.connect('object-state-changed', self._object_state_changed_cb) + + def __init__(self, frame, menu_shell): + hippo.CanvasBox.__init__(self) + self._frame = frame + self._menu_shell = menu_shell + self._icons = {} + + cb_service = ClipboardService.get_instance() + cb_service.connect('object-added', self._object_added_cb) + cb_service.connect('object-deleted', self._object_deleted_cb) + cb_service.connect('object-state-changed', self._object_state_changed_cb) - def _object_added_cb(self, cb_service, name, mimeType, fileName): - icon = ClipboardIcon(self._menu_shell, name, fileName) - style.apply_stylesheet(icon, 'frame.BuddyIcon') - self.append(icon) - self._icons[fileName] = icon - - if not self._frame.is_visible(): - self._frame.show_and_hide(0.1) - - logging.debug('ClipboardBox: ' + fileName + ' was added.') + def _object_added_cb(self, cb_service, name, mimeType, fileName): + icon = ClipboardIcon(self._menu_shell, name, fileName) + style.apply_stylesheet(icon, 'frame.BuddyIcon') + self.append(icon) + self._icons[fileName] = icon + + if not self._frame.is_visible(): + self._frame.show_and_hide(0.1) + + logging.debug('ClipboardBox: ' + fileName + ' was added.') - def _object_deleted_cb(self, cb_service, fileName): - icon = self._icons[fileName] - self.remove(icon) - del self._icons[fileName] - logging.debug('ClipboardBox: ' + fileName + ' was deleted.') + def _object_deleted_cb(self, cb_service, fileName): + icon = self._icons[fileName] + self.remove(icon) + del self._icons[fileName] + logging.debug('ClipboardBox: ' + fileName + ' was deleted.') - def _object_state_changed_cb(self, cb_service, fileName, percent): - icon = self._icons[fileName] - icon.set_percent(percent) - logging.debug('ClipboardBox: ' + fileName + ' state was changed.') + def _object_state_changed_cb(self, cb_service, fileName, percent): + icon = self._icons[fileName] + icon.set_percent(percent) + logging.debug('ClipboardBox: ' + fileName + ' state was changed.') diff --git a/shell/view/frame/Frame.py b/shell/view/frame/Frame.py index 37f28cb..c865219 100644 --- a/shell/view/frame/Frame.py +++ b/shell/view/frame/Frame.py @@ -32,268 +32,268 @@ from sugar.graphics.grid import Grid from sugar.graphics.menushell import MenuShell class EventFrame(gobject.GObject): - __gsignals__ = { - 'enter-edge': (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, ([])), - 'enter-corner': (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, ([])), - 'leave': (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, ([])) - } - - HOVER_NONE = 0 - HOVER_CORNER = 1 - HOVER_EDGE = 2 - - def __init__(self): - gobject.GObject.__init__(self) - - self._windows = [] - self._hover = EventFrame.HOVER_NONE - self._active = False - - invisible = self._create_invisible(0, 0, gtk.gdk.screen_width(), 1) - self._windows.append(invisible) - - invisible = self._create_invisible(0, 0, 1, gtk.gdk.screen_height()) - self._windows.append(invisible) - - invisible = self._create_invisible(gtk.gdk.screen_width() - 1, 0, - gtk.gdk.screen_width(), - gtk.gdk.screen_height()) - self._windows.append(invisible) - - invisible = self._create_invisible(0, gtk.gdk.screen_height() - 1, - gtk.gdk.screen_width(), - gtk.gdk.screen_height()) - self._windows.append(invisible) - - screen = wnck.screen_get_default() - screen.connect('active-window-changed', - self._active_window_changed_cb) - - def _create_invisible(self, x, y, width, height): - invisible = gtk.Invisible() - invisible.connect('motion-notify-event', self._motion_notify_cb) - invisible.connect('enter-notify-event', self._enter_notify_cb) - invisible.connect('leave-notify-event', self._leave_notify_cb) - - invisible.realize() - invisible.window.set_events(gtk.gdk.POINTER_MOTION_MASK | - gtk.gdk.ENTER_NOTIFY_MASK | - gtk.gdk.LEAVE_NOTIFY_MASK) - invisible.window.move_resize(x, y, width, height) - - return invisible - - def _enter_notify_cb(self, widget, event): - self._notify_enter(event.x, event.y) - - def _motion_notify_cb(self, widget, event): - self._notify_enter(event.x, event.y) - - def _notify_enter(self, x, y): - screen_w = gtk.gdk.screen_width() - screen_h = gtk.gdk.screen_height() - - if (x == 0 and y == 0) or \ - (x == 0 and y == screen_h - 1) or \ - (x == screen_w - 1 and y == 0) or \ - (x == screen_w - 1 and y == screen_h - 1): - if self._hover != EventFrame.HOVER_CORNER: - self._hover = EventFrame.HOVER_CORNER - self.emit('enter-corner') - else: - if self._hover != EventFrame.HOVER_EDGE: - self._hover = EventFrame.HOVER_EDGE - self.emit('enter-edge') - - def _leave_notify_cb(self, widget, event): - self._hover = EventFrame.HOVER_NONE - if self._active: - self.emit('leave') - - def show(self): - self._active = True - for window in self._windows: - window.show() - - def hide(self): - self._active = False - for window in self._windows: - window.hide() - - def _active_window_changed_cb(self, screen): - for window in self._windows: - window.window.raise_() + __gsignals__ = { + 'enter-edge': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, ([])), + 'enter-corner': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, ([])), + 'leave': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, ([])) + } + + HOVER_NONE = 0 + HOVER_CORNER = 1 + HOVER_EDGE = 2 + + def __init__(self): + gobject.GObject.__init__(self) + + self._windows = [] + self._hover = EventFrame.HOVER_NONE + self._active = False + + invisible = self._create_invisible(0, 0, gtk.gdk.screen_width(), 1) + self._windows.append(invisible) + + invisible = self._create_invisible(0, 0, 1, gtk.gdk.screen_height()) + self._windows.append(invisible) + + invisible = self._create_invisible(gtk.gdk.screen_width() - 1, 0, + gtk.gdk.screen_width(), + gtk.gdk.screen_height()) + self._windows.append(invisible) + + invisible = self._create_invisible(0, gtk.gdk.screen_height() - 1, + gtk.gdk.screen_width(), + gtk.gdk.screen_height()) + self._windows.append(invisible) + + screen = wnck.screen_get_default() + screen.connect('active-window-changed', + self._active_window_changed_cb) + + def _create_invisible(self, x, y, width, height): + invisible = gtk.Invisible() + invisible.connect('motion-notify-event', self._motion_notify_cb) + invisible.connect('enter-notify-event', self._enter_notify_cb) + invisible.connect('leave-notify-event', self._leave_notify_cb) + + invisible.realize() + invisible.window.set_events(gtk.gdk.POINTER_MOTION_MASK | + gtk.gdk.ENTER_NOTIFY_MASK | + gtk.gdk.LEAVE_NOTIFY_MASK) + invisible.window.move_resize(x, y, width, height) + + return invisible + + def _enter_notify_cb(self, widget, event): + self._notify_enter(event.x, event.y) + + def _motion_notify_cb(self, widget, event): + self._notify_enter(event.x, event.y) + + def _notify_enter(self, x, y): + screen_w = gtk.gdk.screen_width() + screen_h = gtk.gdk.screen_height() + + if (x == 0 and y == 0) or \ + (x == 0 and y == screen_h - 1) or \ + (x == screen_w - 1 and y == 0) or \ + (x == screen_w - 1 and y == screen_h - 1): + if self._hover != EventFrame.HOVER_CORNER: + self._hover = EventFrame.HOVER_CORNER + self.emit('enter-corner') + else: + if self._hover != EventFrame.HOVER_EDGE: + self._hover = EventFrame.HOVER_EDGE + self.emit('enter-edge') + + def _leave_notify_cb(self, widget, event): + self._hover = EventFrame.HOVER_NONE + if self._active: + self.emit('leave') + + def show(self): + self._active = True + for window in self._windows: + window.show() + + def hide(self): + self._active = False + for window in self._windows: + window.hide() + + def _active_window_changed_cb(self, screen): + for window in self._windows: + window.window.raise_() class Frame: - INACTIVE = 0 - TEMPORARY = 1 - STICKY = 2 - HIDE_ON_LEAVE = 3 - AUTOMATIC = 4 + INACTIVE = 0 + TEMPORARY = 1 + STICKY = 2 + HIDE_ON_LEAVE = 3 + AUTOMATIC = 4 - def __init__(self, shell): - self._windows = [] - self._active_menus = 0 - self._shell = shell - self._mode = Frame.INACTIVE + def __init__(self, shell): + self._windows = [] + self._active_menus = 0 + self._shell = shell + self._mode = Frame.INACTIVE - self._timeline = Timeline(self) - self._timeline.add_tag('slide_in', 6, 12) - self._timeline.add_tag('before_slide_out', 36, 36) - self._timeline.add_tag('slide_out', 37, 42) + self._timeline = Timeline(self) + self._timeline.add_tag('slide_in', 6, 12) + self._timeline.add_tag('before_slide_out', 36, 36) + self._timeline.add_tag('slide_out', 37, 42) - self._event_frame = EventFrame() - self._event_frame.connect('enter-edge', self._enter_edge_cb) - self._event_frame.connect('enter-corner', self._enter_corner_cb) - self._event_frame.connect('leave', self._event_frame_leave_cb) - self._event_frame.show() + self._event_frame = EventFrame() + self._event_frame.connect('enter-edge', self._enter_edge_cb) + self._event_frame.connect('enter-corner', self._enter_corner_cb) + self._event_frame.connect('leave', self._event_frame_leave_cb) + self._event_frame.show() - grid = Grid() + grid = Grid() - # Top panel - [menu_shell, root] = self._create_panel(grid, 0, 0, 16, 1) - menu_shell.set_position(MenuShell.BOTTOM) + # Top panel + [menu_shell, root] = self._create_panel(grid, 0, 0, 16, 1) + menu_shell.set_position(MenuShell.BOTTOM) - box = ZoomBox(self._shell, menu_shell) + box = ZoomBox(self._shell, menu_shell) - [x, y] = grid.point(1, 0) - root.append(box, hippo.PACK_FIXED) - root.move(box, x, y) + [x, y] = grid.point(1, 0) + root.append(box, hippo.PACK_FIXED) + root.move(box, x, y) - tray = NotificationTray() - tray_box = hippo.CanvasBox(box_width=grid.dimension(1), - box_height=grid.dimension(1), - xalign=hippo.ALIGNMENT_END) + tray = NotificationTray() + tray_box = hippo.CanvasBox(box_width=grid.dimension(1), + box_height=grid.dimension(1), + xalign=hippo.ALIGNMENT_END) - tray_widget = hippo.CanvasWidget() - tray_widget.props.widget = tray - tray_box.append(tray_widget, gtk.EXPAND) + tray_widget = hippo.CanvasWidget() + tray_widget.props.widget = tray + tray_box.append(tray_widget, gtk.EXPAND) - [x, y] = grid.point(13, 0) - root.append(tray_box, hippo.PACK_FIXED) - root.move(tray_box, x, y) + [x, y] = grid.point(13, 0) + root.append(tray_box, hippo.PACK_FIXED) + root.move(tray_box, x, y) - box = OverlayBox(self._shell) + box = OverlayBox(self._shell) - [x, y] = grid.point(14, 0) - root.append(box, hippo.PACK_FIXED) - root.move(box, x, y) + [x, y] = grid.point(14, 0) + root.append(box, hippo.PACK_FIXED) + root.move(box, x, y) - shutdown_icon = ShutdownIcon(menu_shell) + shutdown_icon = ShutdownIcon(menu_shell) - [x, y] = grid.point(12, 0) - root.append(shutdown_icon, hippo.PACK_FIXED) - root.move(shutdown_icon, x, y) + [x, y] = grid.point(12, 0) + root.append(shutdown_icon, hippo.PACK_FIXED) + root.move(shutdown_icon, x, y) - # Bottom panel - [menu_shell, root] = self._create_panel(grid, 0, 11, 16, 1) - menu_shell.set_position(MenuShell.TOP) + # Bottom panel + [menu_shell, root] = self._create_panel(grid, 0, 11, 16, 1) + menu_shell.set_position(MenuShell.TOP) - box = ActivitiesBox(self._shell) - root.append(box, hippo.PACK_FIXED) + box = ActivitiesBox(self._shell) + root.append(box, hippo.PACK_FIXED) - [x, y] = grid.point(1, 0) - root.move(box, x, y) + [x, y] = grid.point(1, 0) + root.move(box, x, y) - # Right panel - [menu_shell, root] = self._create_panel(grid, 15, 1, 1, 10) - menu_shell.set_position(MenuShell.LEFT) + # Right panel + [menu_shell, root] = self._create_panel(grid, 15, 1, 1, 10) + menu_shell.set_position(MenuShell.LEFT) - box = FriendsBox(self._shell, menu_shell) - root.append(box) + box = FriendsBox(self._shell, menu_shell) + root.append(box) - # Left panel - [menu_shell, root] = self._create_panel(grid, 0, 1, 1, 10) + # Left panel + [menu_shell, root] = self._create_panel(grid, 0, 1, 1, 10) - box = ClipboardBox(self, menu_shell) - root.append(box) + box = ClipboardBox(self, menu_shell) + root.append(box) - def _create_panel(self, grid, x, y, width, height): - panel = PanelWindow() + def _create_panel(self, grid, x, y, width, height): + panel = PanelWindow() - panel.connect('enter-notify-event', self._enter_notify_cb) - panel.connect('leave-notify-event', self._leave_notify_cb) + panel.connect('enter-notify-event', self._enter_notify_cb) + panel.connect('leave-notify-event', self._leave_notify_cb) - menu_shell = panel.get_menu_shell() - menu_shell.connect('activated', self._menu_shell_activated_cb) - menu_shell.connect('deactivated', self._menu_shell_deactivated_cb) + menu_shell = panel.get_menu_shell() + menu_shell.connect('activated', self._menu_shell_activated_cb) + menu_shell.connect('deactivated', self._menu_shell_deactivated_cb) - [x, y, width, height] = grid.rectangle(x, y, width, height) + [x, y, width, height] = grid.rectangle(x, y, width, height) - panel.move(x, y) - panel.resize(width, height) + panel.move(x, y) + panel.resize(width, height) - self._windows.append(panel) + self._windows.append(panel) - return [panel.get_menu_shell(), panel.get_root()] + return [panel.get_menu_shell(), panel.get_root()] - def _menu_shell_activated_cb(self, menu_shell): - self._active_menus += 1 - self._timeline.goto('slide_in', True) + def _menu_shell_activated_cb(self, menu_shell): + self._active_menus += 1 + self._timeline.goto('slide_in', True) - def _menu_shell_deactivated_cb(self, menu_shell): - self._active_menus -= 1 - if self._mode != Frame.STICKY: - self._timeline.play('before_slide_out', 'slide_out') + def _menu_shell_deactivated_cb(self, menu_shell): + self._active_menus -= 1 + if self._mode != Frame.STICKY: + self._timeline.play('before_slide_out', 'slide_out') - def _enter_notify_cb(self, window, event): - self._timeline.goto('slide_in', True) + def _enter_notify_cb(self, window, event): + self._timeline.goto('slide_in', True) - def _leave_notify_cb(self, window, event): - # FIXME for some reason every click cause also a leave-notify - if event.state == gtk.gdk.BUTTON1_MASK: - return + def _leave_notify_cb(self, window, event): + # FIXME for some reason every click cause also a leave-notify + if event.state == gtk.gdk.BUTTON1_MASK: + return - if self._active_menus == 0 and \ - (self._mode == Frame.HIDE_ON_LEAVE or \ - self._mode == Frame.AUTOMATIC): - self._timeline.play('before_slide_out', 'slide_out') + if self._active_menus == 0 and \ + (self._mode == Frame.HIDE_ON_LEAVE or \ + self._mode == Frame.AUTOMATIC): + self._timeline.play('before_slide_out', 'slide_out') - def _enter_edge_cb(self, event_frame): - self._mode = Frame.HIDE_ON_LEAVE - self._timeline.play(None, 'slide_in') + def _enter_edge_cb(self, event_frame): + self._mode = Frame.HIDE_ON_LEAVE + self._timeline.play(None, 'slide_in') - def _enter_corner_cb(self, event_frame): - self._mode = Frame.HIDE_ON_LEAVE - self._timeline.play('slide_in', 'slide_in') + def _enter_corner_cb(self, event_frame): + self._mode = Frame.HIDE_ON_LEAVE + self._timeline.play('slide_in', 'slide_in') - def _event_frame_leave_cb(self, event_frame): - if self._mode != Frame.STICKY: - self._timeline.goto('slide_out', True) + def _event_frame_leave_cb(self, event_frame): + if self._mode != Frame.STICKY: + self._timeline.goto('slide_out', True) - def show_and_hide(self, seconds): - self._mode = Frame.AUTOMATIC - self._timeline.play() + def show_and_hide(self, seconds): + self._mode = Frame.AUTOMATIC + self._timeline.play() - def notify_key_press(self): - if self._timeline.on_tag('slide_in'): - self._timeline.play('before_slide_out', 'slide_out') - elif self._timeline.on_tag('before_slide_out'): - self._mode = Frame.TEMPORARY - else: - self._mode = Frame.STICKY - self._timeline.play('slide_in', 'slide_in') + def notify_key_press(self): + if self._timeline.on_tag('slide_in'): + self._timeline.play('before_slide_out', 'slide_out') + elif self._timeline.on_tag('before_slide_out'): + self._mode = Frame.TEMPORARY + else: + self._mode = Frame.STICKY + self._timeline.play('slide_in', 'slide_in') - def notify_key_release(self): - if self._mode == Frame.TEMPORARY: - self._timeline.play('before_slide_out', 'slide_out') + def notify_key_release(self): + if self._mode == Frame.TEMPORARY: + self._timeline.play('before_slide_out', 'slide_out') - def do_slide_in(self, current=0, n_frames=0): - if not self._windows[0].props.visible: - for panel in self._windows: - panel.show() - self._event_frame.hide() + def do_slide_in(self, current=0, n_frames=0): + if not self._windows[0].props.visible: + for panel in self._windows: + panel.show() + self._event_frame.hide() - def do_slide_out(self, current=0, n_frames=0): - if self._windows[0].props.visible: - for panel in self._windows: - panel.hide() - self._event_frame.show() + def do_slide_out(self, current=0, n_frames=0): + if self._windows[0].props.visible: + for panel in self._windows: + panel.hide() + self._event_frame.show() - def is_visible(self): - if self._windows[0].props.visible: - return True - return False + def is_visible(self): + if self._windows[0].props.visible: + return True + return False diff --git a/shell/view/frame/FriendsBox.py b/shell/view/frame/FriendsBox.py index 14f1290..cdc07ad 100644 --- a/shell/view/frame/FriendsBox.py +++ b/shell/view/frame/FriendsBox.py @@ -24,85 +24,85 @@ from view.BuddyIcon import BuddyIcon from model.BuddyModel import BuddyModel class FriendsBox(hippo.CanvasBox): - def __init__(self, shell, menu_shell): - hippo.CanvasBox.__init__(self) - self._shell = shell - self._menu_shell = menu_shell - self._activity_ps = None - self._joined_hid = -1 - self._left_hid = -1 - self._buddies = {} - - self._pservice = PresenceService.get_instance() - self._pservice.connect('activity-appeared', - self.__activity_appeared_cb) - - # Add initial activities the PS knows about - for activity in self._pservice.get_activities(): - self.__activity_appeared_cb(self._pservice, activity) - - shell.connect('activity-changed', self.__activity_changed_cb) - - def add_buddy(self, buddy): - if self._buddies.has_key(buddy.get_name()): - return - - model = BuddyModel(buddy=buddy) - icon = BuddyIcon(self._shell, self._menu_shell, model) - style.apply_stylesheet(icon, 'frame.BuddyIcon') - self.append(icon) - - self._buddies[buddy.get_name()] = icon - - def remove_buddy(self, buddy): - if not self._buddies.has_key(buddy.get_name()): - return - - self.remove(self._buddies[buddy.get_name()]) - - def clear(self): - for item in self.get_children(): - self.remove(item) - self._buddies = {} - - def __activity_appeared_cb(self, pservice, activity_ps): - activity = self._shell.get_current_activity() - if activity and activity_ps.get_id() == activity.get_id(): - self._set_activity_ps(activity_ps) - - def _set_activity_ps(self, activity_ps): - if self._activity_ps == activity_ps: - return - - if self._joined_hid > 0: - self._activity_ps.disconnect(self._joined_hid) - self._joined_hid = -1 - if self._left_hid > 0: - self._activity_ps.disconnect(self._left_hid) - self._left_hid = -1 - - self._activity_ps = activity_ps - - self.clear() - - if activity_ps != None: - for buddy in activity_ps.get_joined_buddies(): - self.add_buddy(buddy) - - self._joined_hid = activity_ps.connect( - 'buddy-joined', self.__buddy_joined_cb) - self._left_hid = activity_ps.connect( - 'buddy-left', self.__buddy_left_cb) - - def __activity_changed_cb(self, group, activity): - if activity: - ps = self._pservice.get_activity(activity.get_id()) - self._set_activity_ps(ps) - else: - self._set_activity_ps(None) - - def __buddy_joined_cb(self, activity, buddy): - self.add_buddy(buddy) - - def __buddy_left_cb(self, activity, buddy): - self.remove_buddy(buddy) + def __init__(self, shell, menu_shell): + hippo.CanvasBox.__init__(self) + self._shell = shell + self._menu_shell = menu_shell + self._activity_ps = None + self._joined_hid = -1 + self._left_hid = -1 + self._buddies = {} + + self._pservice = PresenceService.get_instance() + self._pservice.connect('activity-appeared', + self.__activity_appeared_cb) + + # Add initial activities the PS knows about + for activity in self._pservice.get_activities(): + self.__activity_appeared_cb(self._pservice, activity) + + shell.connect('activity-changed', self.__activity_changed_cb) + + def add_buddy(self, buddy): + if self._buddies.has_key(buddy.get_name()): + return + + model = BuddyModel(buddy=buddy) + icon = BuddyIcon(self._shell, self._menu_shell, model) + style.apply_stylesheet(icon, 'frame.BuddyIcon') + self.append(icon) + + self._buddies[buddy.get_name()] = icon + + def remove_buddy(self, buddy): + if not self._buddies.has_key(buddy.get_name()): + return + + self.remove(self._buddies[buddy.get_name()]) + + def clear(self): + for item in self.get_children(): + self.remove(item) + self._buddies = {} + + def __activity_appeared_cb(self, pservice, activity_ps): + activity = self._shell.get_current_activity() + if activity and activity_ps.get_id() == activity.get_id(): + self._set_activity_ps(activity_ps) + + def _set_activity_ps(self, activity_ps): + if self._activity_ps == activity_ps: + return + + if self._joined_hid > 0: + self._activity_ps.disconnect(self._joined_hid) + self._joined_hid = -1 + if self._left_hid > 0: + self._activity_ps.disconnect(self._left_hid) + self._left_hid = -1 + + self._activity_ps = activity_ps + + self.clear() + + if activity_ps != None: + for buddy in activity_ps.get_joined_buddies(): + self.add_buddy(buddy) + + self._joined_hid = activity_ps.connect( + 'buddy-joined', self.__buddy_joined_cb) + self._left_hid = activity_ps.connect( + 'buddy-left', self.__buddy_left_cb) + + def __activity_changed_cb(self, group, activity): + if activity: + ps = self._pservice.get_activity(activity.get_id()) + self._set_activity_ps(ps) + else: + self._set_activity_ps(None) + + def __buddy_joined_cb(self, activity, buddy): + self.add_buddy(buddy) + + def __buddy_left_cb(self, activity, buddy): + self.remove_buddy(buddy) diff --git a/shell/view/frame/PanelWindow.py b/shell/view/frame/PanelWindow.py index 14e72b1..8fd8145 100644 --- a/shell/view/frame/PanelWindow.py +++ b/shell/view/frame/PanelWindow.py @@ -20,28 +20,28 @@ import hippo from sugar.graphics.menushell import MenuShell class PanelWindow(gtk.Window): - def __init__(self): - gtk.Window.__init__(self) + def __init__(self): + gtk.Window.__init__(self) - self.set_decorated(False) - self.connect('realize', self._realize_cb) + self.set_decorated(False) + self.connect('realize', self._realize_cb) - canvas = hippo.Canvas() + canvas = hippo.Canvas() - self._bg = hippo.CanvasBox(background_color=0x414141ff) - canvas.set_root(self._bg) + self._bg = hippo.CanvasBox(background_color=0x414141ff) + canvas.set_root(self._bg) - self.add(canvas) - canvas.show() + self.add(canvas) + canvas.show() - self._menu_shell = MenuShell(canvas) + self._menu_shell = MenuShell(canvas) - def get_menu_shell(self): - return self._menu_shell + def get_menu_shell(self): + return self._menu_shell - def get_root(self): - return self._bg + def get_root(self): + return self._bg - def _realize_cb(self, widget): - self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) - self.window.set_accept_focus(False) + def _realize_cb(self, widget): + self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) + self.window.set_accept_focus(False) diff --git a/shell/view/frame/ZoomBox.py b/shell/view/frame/ZoomBox.py index 45c76cd..ed7e0a1 100644 --- a/shell/view/frame/ZoomBox.py +++ b/shell/view/frame/ZoomBox.py @@ -23,98 +23,98 @@ from sugar.graphics import style import sugar class ActivityMenu(Menu): - ACTION_SHARE = 1 - ACTION_CLOSE = 2 + ACTION_SHARE = 1 + ACTION_CLOSE = 2 - def __init__(self, activity_host): - Menu.__init__(self, activity_host.get_title()) + def __init__(self, activity_host): + Menu.__init__(self, activity_host.get_title()) - if not activity_host.get_shared(): - self._add_mesh_action() + if not activity_host.get_shared(): + self._add_mesh_action() - self._add_close_action() + self._add_close_action() - def _add_mesh_action(self): - icon = CanvasIcon(icon_name='stock-share-mesh') - self.add_action(icon, ActivityMenu.ACTION_SHARE) + def _add_mesh_action(self): + icon = CanvasIcon(icon_name='stock-share-mesh') + self.add_action(icon, ActivityMenu.ACTION_SHARE) - def _add_close_action(self): - icon = CanvasIcon(icon_name='stock-close') - self.add_action(icon, ActivityMenu.ACTION_CLOSE) + def _add_close_action(self): + icon = CanvasIcon(icon_name='stock-close') + self.add_action(icon, ActivityMenu.ACTION_CLOSE) class ActivityIcon(MenuIcon): - def __init__(self, shell, menu_shell, activity_host): - self._shell = shell - self._activity_host = activity_host + def __init__(self, shell, menu_shell, activity_host): + self._shell = shell + self._activity_host = activity_host - icon_name = activity_host.get_icon_name() - icon_color = activity_host.get_icon_color() + icon_name = activity_host.get_icon_name() + icon_color = activity_host.get_icon_color() - MenuIcon.__init__(self, menu_shell, icon_name=icon_name, - color=icon_color) + MenuIcon.__init__(self, menu_shell, icon_name=icon_name, + color=icon_color) - def create_menu(self): - menu = ActivityMenu(self._activity_host) - menu.connect('action', self._action_cb) - return menu + def create_menu(self): + menu = ActivityMenu(self._activity_host) + menu.connect('action', self._action_cb) + return menu - def _action_cb(self, menu, action): - self.popdown() + def _action_cb(self, menu, action): + self.popdown() - activity = self._shell.get_current_activity() - if activity == None: - return + activity = self._shell.get_current_activity() + if activity == None: + return - if action == ActivityMenu.ACTION_SHARE: - activity.share() - if action == ActivityMenu.ACTION_CLOSE: - activity.close() + if action == ActivityMenu.ACTION_SHARE: + activity.share() + if action == ActivityMenu.ACTION_CLOSE: + activity.close() class ZoomBox(hippo.CanvasBox): - def __init__(self, shell, menu_shell): - hippo.CanvasBox.__init__(self, orientation=hippo.ORIENTATION_HORIZONTAL) - - self._shell = shell - self._menu_shell = menu_shell - self._activity_icon = None - - icon = CanvasIcon(icon_name='stock-zoom-mesh') - style.apply_stylesheet(icon, 'frame.ZoomIcon') - icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_MESH) - self.append(icon) - - icon = CanvasIcon(icon_name='stock-zoom-friends') - style.apply_stylesheet(icon, 'frame.ZoomIcon') - icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_FRIENDS) - self.append(icon) - - icon = CanvasIcon(icon_name='stock-zoom-home') - style.apply_stylesheet(icon, 'frame.ZoomIcon') - icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_HOME) - self.append(icon) - - icon = CanvasIcon(icon_name='stock-zoom-activity') - style.apply_stylesheet(icon, 'frame.ZoomIcon') - icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_ACTIVITY) - self.append(icon) - - shell.connect('activity-changed', self._activity_changed_cb) - self._set_current_activity(shell.get_current_activity()) - - def _set_current_activity(self, activity): - if self._activity_icon: - self.remove(self._activity_icon) - - if activity: - icon = ActivityIcon(self._shell, self._menu_shell, activity) - style.apply_stylesheet(icon, 'frame.ZoomIcon') - self.append(icon, 0) - self._activity_icon = icon - else: - self._activity_icon = None - - def _activity_changed_cb(self, shell_model, activity): - self._set_current_activity(activity) - - def _level_clicked_cb(self, item, level): - self._shell.set_zoom_level(level) + def __init__(self, shell, menu_shell): + hippo.CanvasBox.__init__(self, orientation=hippo.ORIENTATION_HORIZONTAL) + + self._shell = shell + self._menu_shell = menu_shell + self._activity_icon = None + + icon = CanvasIcon(icon_name='stock-zoom-mesh') + style.apply_stylesheet(icon, 'frame.ZoomIcon') + icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_MESH) + self.append(icon) + + icon = CanvasIcon(icon_name='stock-zoom-friends') + style.apply_stylesheet(icon, 'frame.ZoomIcon') + icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_FRIENDS) + self.append(icon) + + icon = CanvasIcon(icon_name='stock-zoom-home') + style.apply_stylesheet(icon, 'frame.ZoomIcon') + icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_HOME) + self.append(icon) + + icon = CanvasIcon(icon_name='stock-zoom-activity') + style.apply_stylesheet(icon, 'frame.ZoomIcon') + icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_ACTIVITY) + self.append(icon) + + shell.connect('activity-changed', self._activity_changed_cb) + self._set_current_activity(shell.get_current_activity()) + + def _set_current_activity(self, activity): + if self._activity_icon: + self.remove(self._activity_icon) + + if activity: + icon = ActivityIcon(self._shell, self._menu_shell, activity) + style.apply_stylesheet(icon, 'frame.ZoomIcon') + self.append(icon, 0) + self._activity_icon = icon + else: + self._activity_icon = None + + def _activity_changed_cb(self, shell_model, activity): + self._set_current_activity(activity) + + def _level_clicked_cb(self, item, level): + self._shell.set_zoom_level(level) diff --git a/shell/view/frame/notificationtray.py b/shell/view/frame/notificationtray.py index 5fa5123..b304868 100644 --- a/shell/view/frame/notificationtray.py +++ b/shell/view/frame/notificationtray.py @@ -3,16 +3,16 @@ import gtk from _sugar import TrayManager class NotificationTray(gtk.HBox): - def __init__(self): - gtk.HBox.__init__(self) + def __init__(self): + gtk.HBox.__init__(self) - self._manager = TrayManager() - self._manager.connect('tray-icon-added', self._icon_added_cb) - self._manager.connect('tray-icon-removed', self._icon_removed_cb) - self._manager.manage_screen(gtk.gdk.screen_get_default()) + self._manager = TrayManager() + self._manager.connect('tray-icon-added', self._icon_added_cb) + self._manager.connect('tray-icon-removed', self._icon_removed_cb) + self._manager.manage_screen(gtk.gdk.screen_get_default()) - def _icon_added_cb(self, manager, icon): - self.pack_start(icon, False) + def _icon_added_cb(self, manager, icon): + self.pack_start(icon, False) - def _icon_removed_cb(self, manager, icon): - icon.destroy() + def _icon_removed_cb(self, manager, icon): + icon.destroy() diff --git a/shell/view/frame/overlaybox.py b/shell/view/frame/overlaybox.py index eaa1e5d..406173a 100644 --- a/shell/view/frame/overlaybox.py +++ b/shell/view/frame/overlaybox.py @@ -4,15 +4,15 @@ from sugar.graphics import style from sugar.graphics.canvasicon import CanvasIcon class OverlayBox(hippo.CanvasBox): - def __init__(self, shell): - hippo.CanvasBox.__init__(self, orientation=hippo.ORIENTATION_HORIZONTAL) + def __init__(self, shell): + hippo.CanvasBox.__init__(self, orientation=hippo.ORIENTATION_HORIZONTAL) - self._shell = shell + self._shell = shell - icon = CanvasIcon(icon_name='stock-chat') - style.apply_stylesheet(icon, 'frame.OverlayIcon') - icon.connect('activated', self._overlay_clicked_cb) - self.append(icon) + icon = CanvasIcon(icon_name='stock-chat') + style.apply_stylesheet(icon, 'frame.OverlayIcon') + icon.connect('activated', self._overlay_clicked_cb) + self.append(icon) - def _overlay_clicked_cb(self, item): - self._shell.toggle_chat_visibility() + def _overlay_clicked_cb(self, item): + self._shell.toggle_chat_visibility() diff --git a/shell/view/frame/shutdownicon.py b/shell/view/frame/shutdownicon.py index 520ba20..5814f72 100644 --- a/shell/view/frame/shutdownicon.py +++ b/shell/view/frame/shutdownicon.py @@ -21,24 +21,24 @@ from sugar.graphics.menu import Menu from sugar.graphics import style class ShutdownIcon(MenuIcon): - ACTION_SHUTDOWN = 2 + ACTION_SHUTDOWN = 2 - def __init__(self, menu_shell): - MenuIcon.__init__(self, menu_shell, icon_name='stock-close') - style.apply_stylesheet(self, 'menu.ActionIcon') + def __init__(self, menu_shell): + MenuIcon.__init__(self, menu_shell, icon_name='stock-close') + style.apply_stylesheet(self, 'menu.ActionIcon') - def create_menu(self): - menu = Menu() - menu.add_item('Shut Down', ShutdownIcon.ACTION_SHUTDOWN) - menu.connect('action', self._action_cb) - return menu + def create_menu(self): + menu = Menu() + menu.add_item('Shut Down', ShutdownIcon.ACTION_SHUTDOWN) + menu.connect('action', self._action_cb) + return menu - def _action_cb(self, menu, action): - self.popdown() + def _action_cb(self, menu, action): + self.popdown() - if action == ShutdownIcon.ACTION_SHUTDOWN: - bus = dbus.SystemBus() - proxy = bus.get_object('org.freedesktop.Hal', - '/org/freedesktop/Hal/devices/computer') - mgr = dbus.Interface(proxy, 'org.freedesktop.Hal.Device.SystemPowerManagement') - mgr.Shutdown() + if action == ShutdownIcon.ACTION_SHUTDOWN: + bus = dbus.SystemBus() + proxy = bus.get_object('org.freedesktop.Hal', + '/org/freedesktop/Hal/devices/computer') + mgr = dbus.Interface(proxy, 'org.freedesktop.Hal.Device.SystemPowerManagement') + mgr.Shutdown() |