diff options
author | Gonzalo Odiard <godiard@sugarlabs.org> | 2010-11-23 03:52:36 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@sugarlabs.org> | 2010-11-23 03:52:36 (GMT) |
commit | c9998b45ec718bd0d04409f30cb08edaf12378bf (patch) | |
tree | 308b63e6f5fd2b84bd7587aeef36066bba492efa /globos.py | |
parent | 36bf7200def6fdbf419badcb2066827d958997f2 (diff) |
enable change size of globe from all the sides / show cursor
Diffstat (limited to 'globos.py')
-rw-r--r-- | globos.py | 39 |
1 files changed, 37 insertions, 2 deletions
@@ -180,6 +180,32 @@ class Globo: self.texto.mover_a(self.x, self.y) + def get_over_state(self, x, y): + """ + if (self.x - self.ancho) < x < (self.x + self.ancho) and \ + (self.y - self.alto) < y < (self.y + self.alto): + return None + """ + state = None + sensibility = 2 + if abs((self.x - self.ancho) - x) < sensibility: + state = 'LEFT_SIDE' + if abs((self.y - self.alto) - y) < sensibility: + state = 'TOP_LEFT_CORNER' + if abs((self.y + self.alto) - y) < sensibility: + state = 'BOTTOM_LEFT_CORNER' + elif abs((self.x + self.ancho) - x) < sensibility: + state = 'RIGHT_SIDE' + if abs((self.y - self.alto) - y) < sensibility: + state = 'TOP_RIGHT_CORNER' + if abs((self.y + self.alto) - y) < sensibility: + state = 'BOTTOM_RIGHT_CORNER' + elif abs((self.y - self.alto) - y) < sensibility: + state = 'TOP_SIDE' + elif abs((self.y + self.alto) - y) < sensibility: + state = 'BOTTOM_SIDE' + return state + def is_selec(self, x, y): #devuelve True si es seleccionado if (self.x - self.ancho) < x < (self.x + self.ancho) and \ @@ -276,6 +302,15 @@ class Globo: def set_dimension(self, x, y, rect, context): alto_ant = self.alto ancho_ant = self.ancho + + # si estoy cambiando el tamaƱo desde la derecha o desde abajo + # cambio x / y como para que se calcule como si fuera desde + # arriba y a la izquierda + if x > self.x: + x = 2 * self.x - x + if y > self.y: + y = 2 * self.y - y + if (2 * self.x - x) < rect.width: if 0 < x < (self.x - self.radio): self.ancho = self.x - x @@ -477,12 +512,12 @@ class Nube(Globo): state += 1 if state == 3: - state = 0 + state = 0 x1 = x_cen + (1.0 * self.ancho * cosalpha) y1 = y_cen + (1.0 * self.alto * sinalpha) x2 = x_cen + (1.0 * self.ancho) - y2 = y_cen + y2 = y_cen x3 = x_cen + (1.0 * self.ancho) y3 = y_cen cr.curve_to(x1, y1, x2, y2, x3, y3) |