diff --git a/NEWS b/NEWS index 9aa7c522..47c999a5 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,4 @@ +* #2674 Add arrows to hint about the frame corner activation (marco) * #2665 Re-arrange device icons in a line at the bottom (marco) * #3378 Support changes in activity scope (incomplete!) (smcv, marco) * #3081, #3497, #3485 Fix palette sizing and widget placement (benzea) diff --git a/configure.ac b/configure.ac index 5b4f366b..fc808860 100644 --- a/configure.ac +++ b/configure.ac @@ -50,6 +50,7 @@ AC_OUTPUT([ Makefile bin/Makefile data/Makefile +data/icons/Makefile lib/Makefile lib/ui/Makefile services/Makefile diff --git a/data/Makefile.am b/data/Makefile.am index addfb594..400186e7 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,3 +1,5 @@ +SUBDIRS = icons + sugar.gtkrc: gtkrc.em $(srcdir)/em.py -D theme=\'sugar\' $(srcdir)/gtkrc.em > \ $(top_builddir)/data/sugar.gtkrc diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am new file mode 100644 index 00000000..87d79b0f --- /dev/null +++ b/data/icons/Makefile.am @@ -0,0 +1,6 @@ +iconsdir = $(pkgdatadir)/data/icons +icons_DATA = \ + arrow_NE.svg \ + arrow_NW.svg \ + arrow_SE.svg \ + arrow_SW.svg diff --git a/data/icons/arrow_NE.svg b/data/icons/arrow_NE.svg new file mode 100644 index 00000000..e06363d5 --- /dev/null +++ b/data/icons/arrow_NE.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/data/icons/arrow_NW.svg b/data/icons/arrow_NW.svg new file mode 100644 index 00000000..d02978a7 --- /dev/null +++ b/data/icons/arrow_NW.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/data/icons/arrow_SE.svg b/data/icons/arrow_SE.svg new file mode 100644 index 00000000..0a5d0247 --- /dev/null +++ b/data/icons/arrow_SE.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/data/icons/arrow_SW.svg b/data/icons/arrow_SW.svg new file mode 100644 index 00000000..5e712e27 --- /dev/null +++ b/data/icons/arrow_SW.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/shell/sugar-shell b/shell/sugar-shell index 63225fc7..0ecc4eb7 100755 --- a/shell/sugar-shell +++ b/shell/sugar-shell @@ -101,6 +101,9 @@ def main(): _start_matchbox() _setup_translations() + icons_path = env.get_data_path('icons') + gtk.icon_theme_get_default().append_search_path(icons_path) + # Do initial setup if needed if not get_profile().is_valid(): win = intro.IntroWindow() diff --git a/shell/view/home/HomeBox.py b/shell/view/home/HomeBox.py index 79628ba5..69a277b9 100644 --- a/shell/view/home/HomeBox.py +++ b/shell/view/home/HomeBox.py @@ -28,6 +28,7 @@ from hardware import hardwaremanager from sugar.graphics import style from sugar.graphics.xocolor import XoColor from sugar.graphics.palette import Palette, CanvasInvoker +from sugar.graphics.icon import CanvasIcon from sugar import profile from sugar import env @@ -46,24 +47,55 @@ class HomeBox(hippo.CanvasBox, hippo.CanvasItem): shell_model = shell.get_model() - top_box = hippo.CanvasBox(box_height=style.GRID_CELL_SIZE) + top_box = hippo.CanvasBox(yalign=hippo.ALIGNMENT_START, + box_height=style.GRID_CELL_SIZE, + orientation=hippo.ORIENTATION_HORIZONTAL) self.append(top_box, hippo.PACK_EXPAND) + nw_arrow = CanvasIcon(icon_name='arrow_NW', + xalign=hippo.ALIGNMENT_START) + top_box.append(nw_arrow) + + arrows_separator = hippo.CanvasBox() + top_box.append(arrows_separator, hippo.PACK_EXPAND) + + ne_arrow = CanvasIcon(icon_name='arrow_NE', + xalign=hippo.ALIGNMENT_END) + top_box.append(ne_arrow) + self._donut = ActivitiesDonut(shell) self.append(self._donut) bottom_box = hippo.CanvasBox(yalign=hippo.ALIGNMENT_END, - box_height=style.GRID_CELL_SIZE) + box_height=style.GRID_CELL_SIZE, + orientation=hippo.ORIENTATION_HORIZONTAL) self.append(bottom_box, hippo.PACK_EXPAND) self._my_icon = _MyIcon(shell, style.XLARGE_ICON_SIZE) self.append(self._my_icon, hippo.PACK_FIXED) + sw_arrow = CanvasIcon(icon_name='arrow_SW', + xalign=hippo.ALIGNMENT_START) + bottom_box.append(sw_arrow) + devices_box = _DevicesBox(shell_model.get_devices()) - bottom_box.append(devices_box) + bottom_box.append(devices_box, hippo.PACK_EXPAND) + + se_arrow = CanvasIcon(icon_name='arrow_SE', + xalign=hippo.ALIGNMENT_END) + bottom_box.append(se_arrow) + + self._arrows = [ nw_arrow, ne_arrow, sw_arrow, se_arrow ] shell_model.connect('notify::state', self._shell_state_changed_cb) + shell_model.connect('notify::zoom-level', + self._shell_zoom_level_changed_cb) + + def _shell_zoom_level_changed_cb(self, model, pspec): + for arrow in self._arrows: + arrow.destroy() + self._arrows = [] def _shell_state_changed_cb(self, model, pspec): # FIXME implement this