diff options
author | Walter Bender <walter@walter-laptop.(none)> | 2010-02-13 01:21:31 (GMT) |
---|---|---|
committer | Walter Bender <walter@walter-laptop.(none)> | 2010-02-13 01:21:31 (GMT) |
commit | e6f1790e6ac8a249330e534b1c62957d23908279 (patch) | |
tree | 3f8f71d1e4b3cb78e8b165abf4dc028293de2a11 /tablock.py | |
parent | 9a7a61c665f717f4e22f7af71b06c0099ccd1183 (diff) |
skins scale properly
Diffstat (limited to 'tablock.py')
-rw-r--r-- | tablock.py | 26 |
1 files changed, 17 insertions, 9 deletions
@@ -19,6 +19,7 @@ #OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN #THE SOFTWARE. +import gtk from taconstants import * from tasprite_factory import SVG, svg_str_to_pixbuf import sprites @@ -97,6 +98,7 @@ class Block: self.ey = 0 self._ei = 0 self._font_size = [6.0, 4.5] + self._image = None if OLD_NAMES.has_key(self.name): self.name = OLD_NAMES[self.name] @@ -131,6 +133,19 @@ class Block: self.dx = 0 self.refresh() + # Some blocks get a skin. + def set_image(self, image, x, y): + self._image = image + self.spr.set_image(image, 1, x, y) + + # The skin might need scaling. + # Keep the original here, the scaled version stays with the sprite. + def scale_image(self, x, y, w, h): + if self._image is not None: + tmp = self._image.scale_simple(w, h, + gtk.gdk.INTERP_NEAREST) + self.spr.set_image(tmp, 1, x, y) + # We may want to rescale blocks as well. def rescale(self, scale): for i in range(len(self._font_size)): @@ -241,15 +256,8 @@ class Block: self.resize() def _set_margins(self): - if self._left == 0: - self._left = self.svg.margins[0] - if self._top == 0: - self._top = self.svg.margins[1] - if self._right == 0: - self._right = self.svg.margins[2] - if self._bottom == 0: - self._bottom = self.svg.margins[3] - self.spr.set_margins(self._left, self._top, self._right, self._bottom) + self.spr.set_margins(self.svg.margins[0], self.svg.margins[1], + self.svg.margins[2], self.svg.margins[3]) def _set_label_attributes(self): if self.name in CONTENT_BLOCKS: |