diff options
Diffstat (limited to 'toolkit/temposlider.py')
-rw-r--r-- | toolkit/temposlider.py | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/toolkit/temposlider.py b/toolkit/temposlider.py index d8e633d..d2bf3ad 100644 --- a/toolkit/temposlider.py +++ b/toolkit/temposlider.py @@ -17,8 +17,8 @@ import gi from gi.repository import Gtk from gi.repository import GdkPixbuf +from gi.repository import Rsvg -import rsvg import cairo from sugar3.graphics import style @@ -48,8 +48,8 @@ class TempoSlider(Gtk.HBox): slider.connect("button-press-event", self._press_cb) slider.connect("button-release-event", self._release_cb) - self.pack_start(slider, True, True) - self.pack_end(self._image, False, False) + self.pack_start(slider, True, True, 0) + self.pack_end(self._image, False, False, 0) def set_value(self, tempo, quiet = False): @@ -75,16 +75,17 @@ class TempoSlider(Gtk.HBox): return oupper return olower + int((oupper-olower+1) * (value-ilower) / - float(iupper-ilower)) + float(iupper-ilower)) - img = map_range(tempo, self.adjustment.lower, - self.adjustment.upper, 0, 7) + img = map_range(tempo, self.adjustment.get_lower(), + self.adjustment.get_upper(), 0, 7) if not self._pixbuf[img]: - svg = rsvg.Handle(data=IMAGE[img]) + svg = Rsvg.Handle() + svg.new_from_data(IMAGE[img]) self._pixbuf[img] = _from_svg_at_size(handle=svg, - width=style.STANDARD_ICON_SIZE, - height=style.STANDARD_ICON_SIZE) + width=style.STANDARD_ICON_SIZE, + height=style.STANDARD_ICON_SIZE) self._image.set_from_pixbuf(self._pixbuf[img]) @@ -103,13 +104,16 @@ def _from_svg_at_size(filename=None, width=None, height=None, handle=None, """ import from pixbuf.py """ if not handle: - handle = rsvg.Handle(filename) + svg = Rsvg.Handle() + svg.new_from_file(IMAGE[img]) - dimensions = handle.get_dimension_data() - icon_width = dimensions[0] - icon_height = dimensions[1] - - if icon_width != width or icon_height != height: + dimensions = handle.get_dimensions() + icon_width = dimensions.height + icon_height = dimensions.width + + if (icon_width != width or icon_height != height) and \ + icon_width != 0 and icon_height != 0: + ratio_width = float(width) / icon_width ratio_height = float(height) / icon_height |