Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/view/Makefile.am1
-rw-r--r--src/view/Shell.py9
-rw-r--r--src/view/home/HomeWindow.py16
-rw-r--r--src/view/home/Makefile.am1
-rw-r--r--src/view/launchwindow.py (renamed from src/view/home/launchbox.py)40
5 files changed, 41 insertions, 26 deletions
diff --git a/src/view/Makefile.am b/src/view/Makefile.am
index a710bfe..d905b7a 100644
--- a/src/view/Makefile.am
+++ b/src/view/Makefile.am
@@ -9,6 +9,7 @@ sugar_PYTHON = \
clipboardicon.py \
clipboardmenu.py \
keyhandler.py \
+ launchwindow.py \
pulsingicon.py \
tabbinghandler.py \
OverlayWindow.py \
diff --git a/src/view/Shell.py b/src/view/Shell.py
index 1c90c40..5fd81c1 100644
--- a/src/view/Shell.py
+++ b/src/view/Shell.py
@@ -38,6 +38,7 @@ from view.ActivityHost import ActivityHost
from view.frame import frame
from view.keyhandler import KeyHandler
from view.home.HomeWindow import HomeWindow
+from view.launchwindow import LaunchWindow
from model import shellmodel
# #3903 - this constant can be removed and assumed to be 1 when dbus-python
@@ -63,6 +64,8 @@ class Shell(gobject.GObject):
self._home_window = HomeWindow()
self._home_window.show()
+ self._launch_window = LaunchWindow()
+
home_model = self._model.get_home()
home_model.connect('launch-started', self.__launch_started_cb)
home_model.connect('launch-failed', self.__launch_failed_cb)
@@ -92,12 +95,14 @@ class Shell(gobject.GObject):
def __launch_started_cb(self, home_model, home_activity):
if home_activity.get_type() != 'org.laptop.JournalActivity':
- self._home_window.show_launcher()
+ self._launch_window.show()
def __launch_failed_cb(self, home_model, home_activity):
- self._home_window.hide_launcher()
+ self._launch_window.hide()
def __launch_completed_cb(self, home_model, home_activity):
+ self._launch_window.hide()
+
activity_host = ActivityHost(home_activity)
self._hosts[activity_host.get_xid()] = activity_host
diff --git a/src/view/home/HomeWindow.py b/src/view/home/HomeWindow.py
index 9c5180c..4ff0620 100644
--- a/src/view/home/HomeWindow.py
+++ b/src/view/home/HomeWindow.py
@@ -23,7 +23,6 @@ from view.home.MeshBox import MeshBox
from view.home.HomeBox import HomeBox
from view.home.FriendsBox import FriendsBox
from view.home.transitionbox import TransitionBox
-from view.home.launchbox import LaunchBox
from model.shellmodel import ShellModel
from model import shellmodel
@@ -31,7 +30,6 @@ _HOME_PAGE = 0
_FRIENDS_PAGE = 1
_MESH_PAGE = 2
_TRANSITION_PAGE = 3
-_LAUNCH_PAGE = 4
class HomeWindow(gtk.Window):
def __init__(self):
@@ -63,7 +61,6 @@ class HomeWindow(gtk.Window):
self._friends_box = FriendsBox()
self._mesh_box = MeshBox()
self._transition_box = TransitionBox()
- self._launch_box = LaunchBox()
self._activate_view()
self.add(self._home_box)
@@ -137,9 +134,6 @@ class HomeWindow(gtk.Window):
self._transition_box.set_size(size)
def _transition_completed_cb(self, transition_box):
- self._sync_view()
-
- def _sync_view(self):
current_child = self.get_child()
self.remove(current_child)
@@ -156,13 +150,3 @@ class HomeWindow(gtk.Window):
def get_home_box(self):
return self._home_box
-
- def show_launcher(self):
- self.remove(self.get_child())
- self.add(self._launch_box)
- self._launch_box.show()
-
- self._launch_box.zoom_in()
-
- def hide_launcher(self):
- self._sync_view()
diff --git a/src/view/home/Makefile.am b/src/view/home/Makefile.am
index 80781d7..b323589 100644
--- a/src/view/home/Makefile.am
+++ b/src/view/home/Makefile.am
@@ -7,7 +7,6 @@ sugar_PYTHON = \
grid.py \
FriendView.py \
FriendsBox.py \
- launchbox.py \
HomeBox.py \
HomeWindow.py \
MeshBox.py \
diff --git a/src/view/home/launchbox.py b/src/view/launchwindow.py
index da4cb84..ee3ccfa 100644
--- a/src/view/home/launchbox.py
+++ b/src/view/launchwindow.py
@@ -14,6 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+import gtk
import hippo
import gobject
import logging
@@ -25,22 +26,47 @@ from sugar.graphics.xocolor import XoColor
from model import shellmodel
from view.pulsingicon import CanvasPulsingIcon
-class LaunchBox(hippo.Canvas):
+class LaunchWindow(hippo.CanvasWindow):
def __init__(self):
- gobject.GObject.__init__(self)
+ gobject.GObject.__init__(
+ self, type_hint=gtk.gdk.WINDOW_TYPE_HINT_SPLASHSCREEN)
+
+ self._box = LaunchBox()
+ self.set_root(self._box)
+
+ self.connect('focus-out-event', self.__focus_out_event_cb)
+
+ screen = gtk.gdk.screen_get_default()
+ screen.connect('size-changed', self.__size_changed_cb)
+
+ self._update_size()
+
+ def show(self):
+ self.present()
+ self._box.zoom_in()
+
+ def _update_size(self):
+ self.resize(gtk.gdk.screen_width(), gtk.gdk.screen_height())
+
+ def __focus_out_event_cb(self, widget, event):
+ self.hide()
+
+ def __size_changed_cb(self, screen):
+ self._update_size()
+
+class LaunchBox(hippo.CanvasBox):
+ def __init__(self):
+ gobject.GObject.__init__(self, orientation=hippo.ORIENTATION_VERTICAL,
+ background_color=style.COLOR_WHITE.get_int())
self._activity_icon = CanvasPulsingIcon()
+ self.append(self._activity_icon, hippo.PACK_EXPAND)
# FIXME support non-xo colors in CanvasPulsingIcon
self._activity_icon.props.base_color = \
XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(),
style.COLOR_TRANSPARENT.get_svg()))
- vbox = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL)
- vbox.props.background_color = style.COLOR_WHITE.get_int()
- vbox.append(self._activity_icon, hippo.PACK_EXPAND)
- self.set_root(vbox)
-
self._animator = animator.Animator(1.0)
self._home = shellmodel.get_instance().get_home()