self.dialog.set_transient_for(parent)
def get_project(self):
- if not self.dialog.run():
+ # This '1' was defined in the glade file
+ if not self.dialog.run() == 1:
return None
fname = self.wid('image').get_filename()
self.evtbox.connect('button-release-event', self.button_release)
self.evtbox.connect('motion-notify-event', self.motion_notify)
+ # making it possible to grab motion events when the mouse is
+ # over the widget.
+ self.evtbox.set_events(gtk.gdk.POINTER_MOTION_MASK)
+
self.model = gtk.ListStore(int, str)
self.treeview = self.wid('treeview')
self.treeview.set_model(self.model)
self.load_balls_to_treeview()
self.setup_treeview()
+ self.new_ball = False
+
# drawing stuff
self.start_x = -1
self.start_y = -1
+ self.last_x = -1
self.radius = Ball.DEFAULT_WIDTH
+ def show(self):
+ self.window.show_all()
+
def setup_treeview(self):
self.model.connect('rows-reordered', self.on_rows_reordered)
project = proj.get_project()
proj.destroy()
- # This '1' was defined in the glade file
if project:
self.load_project(project)
if not self.image:
return
- self.draw_current_ball()
for i in self.balls:
self.draw_ball(i)
+
+ if self.start_x < 0:
+ return False
+
+ ball = Ball(self.start_x, self.start_y, self.radius)
+ self.draw_ball(ball)
+
return False
def draw_ball(self, ball):
ctx.arc(ball.x, ball.y, ball.radius+1, 0, 64*math.pi)
ctx.stroke()
- def draw_current_ball(self):
- if self.start_x < 0:
- return
- ball = Ball(self.start_x, self.start_y, self.radius)
- self.draw_ball(ball)
-
def button_press(self, widget, event):
+ self.new_ball = True
+
if event.button == 1:
self.start_x = event.x
self.start_y = event.y
self.last_x = event.x
def button_release(self, widget, event):
+ self.new_ball = False
+
if event.button == 1:
self.finish_drawing()
def motion_notify(self, widget, event):
+ if not self.new_ball:
+ return
+
self.draw.queue_draw()
if event.x > self.last_x:
self.radius = Ball.DEFAULT_WIDTH
if __name__ == '__main__':
- Gzv().window.show_all()
+ Gzv().show()
gtk.main()