Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xexample.py98
1 files changed, 72 insertions, 26 deletions
diff --git a/example.py b/example.py
index 723003d..c4e1f88 100755
--- a/example.py
+++ b/example.py
@@ -2,7 +2,7 @@
import gtk
import gobject
-DELAY = 20
+DELAY = 10
class MyApp():
@@ -26,10 +26,14 @@ class MyApp():
self.hslide = gtk.HScale(self.hadjustment)
self.vslide.set_digits(0)
self.hslide.set_digits(0)
+ self.vslide.set_draw_value(False)
+ self.hslide.set_draw_value(False)
#variable global para desplazamiento del slide
- self.increment = 1
- #self.changed_value = 0
+ self.increment_x = 1
+ self.increment_y = 1
+ self.indicator_x = -1
+ self.indicator_y = -1
#asignacion de variables a widgest de gtk
self.drawing_area = gtk.DrawingArea()
@@ -42,8 +46,9 @@ class MyApp():
self.drawing_area.connect('expose-event', self.__expose_cb)
#eventos de widgets
- self.hslide.connect('key-press-event', self.__capturar_valor_cb)
- #self.drawing_area.connect('expose-event', self.__area_expose_cb)
+ window.connect('key-press-event', self.__key_press_event_cb)
+ #self.hslide.connect('key-press-event', self.__capturar_valor_hslider_cb)
+ #self.vslide.connect('key-press-event', self.__capturar_valor_vslider_cb)
#a;andiendo widgets dentro del contenedor principal
window.add(hbox)
@@ -55,37 +60,78 @@ class MyApp():
#mostrando los widgets
window.show_all()
- #invocacion de la funcion que realiza loop del slider
- gobject.timeout_add(DELAY, self.__value_changed_cb, self.hslide)
+ #invocacion de la funcion que realiza loop del slider horizontal
+ gobject.timeout_add(DELAY, self.__hslider_move_cb)
- #funcion que hace el loop de los valores del slider
- def __value_changed_cb(self, hslide):
- self.hadjustment.value += self.increment
-
- if self.hadjustment.value >= 100:
- self.increment *= -1
- elif self.hadjustment.value <= 0:
- self.increment *= -1
+
+ #funcion que verifica el estado de los indicadores
+ def __key_press_event_cb(self, window, event):
+ gobject.timeout_add(DELAY, self.__vslider_move_cb)
+ if self.indicator_x == 0:
+ self.capturar_valor_vslider_cb()
+ else:
+ self.capturar_valor_hslider_cb()
+
+
+ #funcion que hace el loop de los valores del slider vertical
+ def __hslider_move_cb(self):
+ if self.indicator_x < 0:
+ self.hadjustment.value += self.increment_x
+
+ if self.hadjustment.value >= 100:
+ self.increment_x *= -1
+ elif self.hadjustment.value <= 0:
+ self.increment_x *= -1
+ return True
+ else:
+ return False
+
+ #funcion que hace el loop de los valores del slider vertical
+ def __vslider_move_cb(self):
+ if self.indicator_y < 0:
+ self.vadjustment.value += self.increment_y
+
+ if self.vadjustment.value >= 100:
+ self.increment_y *= -1
+ elif self.vadjustment.value <= 0:
+ self.increment_y *= -1
+ return True
+ else:
+ return False
+
+ #funcion que captura el valor del slider horizontal al pulsar una tecla
+ def capturar_valor_hslider_cb(self):
+ #variable en donde se captura el valor al presionar un tecla
+ self.hslide_value = self.hslide.get_value()
- self.hslide = gtk.HScale(self.hadjustment)
-
- return True
+ #convierte el valor de changed_value a int
+ self.cv_x = (((int(self.hslide_value)) * 600) / 100)
- #funcion que captura el valor del slider al pulsar una tecla
- def __capturar_valor_cb(self, hslide, event):
- self.changed_value = hslide.get_value()
+ #detener el slider
+ self.indicator_x = 0
+ #impresion temporal de prueba
+ print self.cv_x
+
+ #funcion que captura el valor del slider vertical al pulsar una tecla
+ def capturar_valor_vslider_cb(self):
+ #variable en donde se captura el valor al presionar un tecla
+ self.vslide_value = self.vslide.get_value()
#valida el estilo del area de dibujo
self.style = self.drawing_area.get_style()
self.gc = self.style.fg_gc[gtk.STATE_NORMAL]
#convierte el valor de changed_value a int
- self.cv = (((int(self.changed_value)) * 600) / 100)
+ self.cv_y = (((int(self.vslide_value)) * 600) / 100)
#invoca a la funcion que dibuja la pelota de acuerdo a los valores del slider
- self.draw_ball(self.cv,self.cv)
- print self.cv
-
+ self.draw_ball(self.cv_x,self.cv_y)
+
+ #detener el slider
+ self.indicator_y = 0
+ #impresion temporal de prueba
+ print self.cv_y
+
#funcion que dibuja la pelota
def draw_ball(self, x, y):
- self.drawing_area.window.draw_arc(self.gc, False, x, y*0, 70, 70, 0, 360*64)
+ self.drawing_area.window.draw_arc(self.gc, False, x, y, 70, 70, 0, 360*64)
def destroy(self, window, data=None):
gtk.main_quit()