Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/globos.py
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@sugarlabs.org>2010-11-23 03:52:36 (GMT)
committer Gonzalo Odiard <godiard@sugarlabs.org>2010-11-23 03:52:36 (GMT)
commitc9998b45ec718bd0d04409f30cb08edaf12378bf (patch)
tree308b63e6f5fd2b84bd7587aeef36066bba492efa /globos.py
parent36bf7200def6fdbf419badcb2066827d958997f2 (diff)
enable change size of globe from all the sides / show cursor
Diffstat (limited to 'globos.py')
-rw-r--r--globos.py39
1 files changed, 37 insertions, 2 deletions
diff --git a/globos.py b/globos.py
index 0fd2342..39cabdd 100644
--- a/globos.py
+++ b/globos.py
@@ -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)