Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/PortfolioActivity.py
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-11-15 14:51:46 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-11-15 14:51:46 (GMT)
commitbf3fb469ae3b87dc527274582f0f95ee8fd89890 (patch)
treee9c3eb631da71e2c0b22bb2341f1abb1017b1230 /PortfolioActivity.py
parent809990e730830873863dc4a0dcb8142b4e0cdf1a (diff)
convert to Cairo version of sprites library; common toolbar library
Diffstat (limited to 'PortfolioActivity.py')
-rw-r--r--PortfolioActivity.py87
1 files changed, 51 insertions, 36 deletions
diff --git a/PortfolioActivity.py b/PortfolioActivity.py
index 7f8c553..e382f88 100644
--- a/PortfolioActivity.py
+++ b/PortfolioActivity.py
@@ -35,9 +35,9 @@ from sugar.datastore import datastore
from sprites import Sprites, Sprite
from exporthtml import save_html
from utils import get_path, lighter_color, svg_str_to_pixbuf, \
- radio_button_factory, \
- button_factory, separator_factory, combo_factory, label_factory, \
get_pixbuf_from_journal, genblank, get_hardware
+from toolbar_utils import radio_factory, \
+ button_factory, separator_factory, combo_factory, label_factory
from gettext import gettext as _
@@ -188,10 +188,8 @@ class PortfolioActivity(activity.Activity):
int(descriptionf * self._scale))
self._my_canvas = Sprite(self._sprites, 0, 0,
- gtk.gdk.Pixmap(self._canvas.window,
- self._width,
- self._height, -1))
- self._my_gc = self._my_canvas.images[0].new_gc()
+ svg_str_to_pixbuf(
+ genblank(self._width, self._height, (self._colors[0], self._colors[0]))))
self._my_canvas.set_layer(BOTTOM)
self._clear_screen()
@@ -241,50 +239,52 @@ class PortfolioActivity(activity.Activity):
self.toolbar = primary_toolbar
self._prev_button = button_factory(
- 'go-previous-inactive', _('Prev slide'), self._prev_cb,
- self.toolbar, accelerator='<Ctrl>P')
+ 'go-previous-inactive', self.toolbar, self._prev_cb,
+ tooltip=_('Prev slide'), accelerator='<Ctrl>P')
self._next_button = button_factory(
- 'go-next', _('Next slide'), self._next_cb,
- self.toolbar, accelerator='<Ctrl>N')
+ 'go-next', self.toolbar, self._next_cb,
+ tooltip=_('Next slide'), accelerator='<Ctrl>N')
self._auto_button = button_factory(
- 'media-playback-start', _('Autoplay'), self._autoplay_cb,
- self.toolbar)
+ 'media-playback-start', self.toolbar,
+ self._autoplay_cb, tooltip=_('Autoplay'))
+
if HAVE_TOOLBOX:
toolbox.toolbar.insert(adjust_toolbar_button, -1)
- label = label_factory(_('Adjust playback speed'), adjust_toolbar)
+ label = label_factory(adjust_toolbar, _('Adjust playback speed'))
label.show()
- self._unit_combo = combo_factory(UNITS, TEN,
- _('Adjust playback speed'),
- self._unit_combo_cb, adjust_toolbar)
+ self._unit_combo = combo_factory(UNITS, adjust_toolbar,
+ self._unit_combo_cb,
+ default=UNITS[TEN],
+ tooltip=_('Adjust playback speed'))
self._unit_combo.show()
separator_factory(self.toolbar)
- slide_button = radio_button_factory('slide-view', self.toolbar,
- self._slides_cb, group=None,
- tooltip=_('Slide view'))
+ slide_button = radio_factory('slide-view', self.toolbar,
+ self._slides_cb, group=None,
+ tooltip=_('Slide view'))
- radio_button_factory('thumbs-view', self.toolbar, self._thumbs_cb,
- tooltip=_('Thumbnail view'),
- group=slide_button)
+ radio_factory('thumbs-view', self.toolbar, self._thumbs_cb,
+ tooltip=_('Thumbnail view'),
+ group=slide_button)
- button_factory('system-restart', _('Refresh'), self._rescan_cb,
- self.toolbar)
+ button_factory('system-restart', self.toolbar, self._rescan_cb,
+ tooltip=_('Refresh'))
- button_factory('view-fullscreen', _('Fullscreen'),
- self.do_fullscreen_cb, self.toolbar,
+ button_factory('view-fullscreen', self.toolbar,
+ self.do_fullscreen_cb, tooltip=_('Fullscreen'),
accelerator='<Alt>Return')
separator_factory(self.toolbar)
self._save_button = button_factory(
- 'save-as-html', _('Save as HTML'),
- self._save_as_html_cb, self.toolbar)
+ 'save-as-html', self.toolbar,
+ self._save_as_html_cb, tooltip=_('Save as HTML'))
if HAVE_TOOLBOX:
separator_factory(toolbox.toolbar, False, True)
@@ -411,10 +411,6 @@ class PortfolioActivity(activity.Activity):
def _clear_screen(self):
''' Clear the screen to the darker of the two XO colors. '''
- self._my_gc.set_foreground(
- self._my_gc.get_colormap().alloc_color(self._colors[0]))
- self._my_canvas.images[0].draw_rectangle(self._my_gc, True, 0, 0,
- self._width, self._height)
self._title.hide()
self._full_screen.hide()
self._preview.hide()
@@ -464,17 +460,17 @@ class PortfolioActivity(activity.Activity):
if pixbuf is not None:
if not media_object:
- self._preview.images[0] = pixbuf.scale_simple(
+ self._preview.set_shape(pixbuf.scale_simple(
int(PREVIEWW * self._scale),
int(PREVIEWH * self._scale),
- gtk.gdk.INTERP_TILES)
+ gtk.gdk.INTERP_TILES))
self._full_screen.hide()
self._preview.set_layer(MIDDLE)
else:
- self._full_screen.images[0] = pixbuf.scale_simple(
+ self._full_screen.set_shape(pixbuf.scale_simple(
int(FULLW * self._scale),
int(FULLH * self._scale),
- gtk.gdk.INTERP_TILES)
+ gtk.gdk.INTERP_TILES))
self._full_screen.set_layer(MIDDLE)
self._preview.hide()
else:
@@ -569,6 +565,25 @@ class PortfolioActivity(activity.Activity):
self._thumbs[-1][0].set_label(str(self.i + 1))
self._thumbs[self.i][0].set_layer(TOP)
+ def _expose_cb(self, win, event):
+ ''' Callback to handle window expose events '''
+ self.do_expose_event(event)
+ return True
+
+ # Handle the expose-event by drawing
+ def do_expose_event(self, event):
+
+ # Create the cairo context
+ cr = self.canvas.window.cairo_create()
+
+ # Restrict Cairo to the exposed area; avoid extra work
+ cr.rectangle(event.area.x, event.area.y,
+ event.area.width, event.area.height)
+ cr.clip()
+
+ # Refresh sprite list
+ self._sprites.redraw_sprites(cr=cr)
+
def do_fullscreen_cb(self, button):
''' Hide the Sugar toolbars. '''
self.fullscreen()