Author: esr
Date: Sun Oct 12 01:41:41 2008
New Revision: 30066
URL: http://svn.gna.org/viewcvs/wesnoth?rev=30066&view=rev
Log:
trackplacer: refactor, eliminating a global.
Modified:
trunk/data/tools/trackplacer
Modified: trunk/data/tools/trackplacer
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/data/tools/trackplacer?rev=30066&r1=30065&r2=30066&view=diff
==============================================================================
--- trunk/data/tools/trackplacer (original)
+++ trunk/data/tools/trackplacer Sun Oct 12 01:41:41 2008
@@ -116,58 +116,15 @@
self.filename = self.filew.get_filename()
self.filew.destroy()
-# Backing pixmap for drawing area
-pixmap = None
-
-# Create a new backing pixmap of the appropriate size
-def configure_event(widget, event):
- global pixmap
-
- x, y, width, height = widget.get_allocation()
- pixmap = gtk.gdk.Pixmap(widget.window, width, height)
- pixmap.draw_rectangle(widget.get_style().white_gc,
- True, 0, 0, width, height)
-
- return True
-
-# Redraw the screen from the backing pixmap
-def expose_event(widget, event):
- x , y, width, height = event.area
- widget.window.draw_drawable(widget.get_style().fg_gc[gtk.STATE_NORMAL],
- pixmap, x, y, x, y, width, height)
- return False
-
-# Draw a rectangle on the screen
-def draw_brush(widget, x, y):
- rect = (int(x-5), int(y-5), 10, 10)
- pixmap.draw_rectangle(widget.get_style().black_gc, True,
- rect[0], rect[1], rect[2], rect[3])
- widget.queue_draw_area(rect[0], rect[1], rect[2], rect[3])
-
-def button_press_event(widget, event):
- if event.button == 1 and pixmap != None:
- draw_brush(widget, event.x, event.y)
- return True
-
-def motion_notify_event(widget, event):
- if event.is_hint:
- x, y, state = event.window.get_pointer()
- else:
- x = event.x
- y = event.y
- state = event.state
-
- if state & gtk.gdk.BUTTON1_MASK and pixmap != None:
- draw_brush(widget, x, y)
-
- return True
-
class TrackEditor:
def __init__(self, filename=None, verbose=False):
self.verbose = verbose
# Initialize our info about the map and track
self.journey = JourneyTrack()
self.journey.read(filename)
+ # Backing pixmap for drawing area
+ self.pixmap = None
+
# We need two copies of the map -- one scratchpad for scribbling on,
# and one for restoring from when we erase track dots.
self.log("about to read map %s" % self.journey.filename)
@@ -207,12 +164,12 @@
drawing_area.show()
# Signals used to handle backing pixmap
- drawing_area.connect("expose_event", expose_event)
- drawing_area.connect("configure_event", configure_event)
+ drawing_area.connect("expose_event", self.expose_event)
+ drawing_area.connect("configure_event", self.configure_event)
# Event signals
- drawing_area.connect("motion_notify_event", motion_notify_event)
- drawing_area.connect("button_press_event", button_press_event)
+ drawing_area.connect("motion_notify_event", self.motion_notify_event)
+ drawing_area.connect("button_press_event", self.button_press_event)
drawing_area.set_events(gtk.gdk.EXPOSURE_MASK
| gtk.gdk.LEAVE_NOTIFY_MASK
@@ -232,6 +189,47 @@
gtk.main()
self.log("initialization successful")
+
+ # Create a new backing pixmap of the appropriate size
+ def configure_event(self, widget, event):
+ x, y, width, height = widget.get_allocation()
+ self.pixmap = gtk.gdk.Pixmap(widget.window, width, height)
+ self.pixmap.draw_rectangle(widget.get_style().white_gc,
+ True, 0, 0, width, height)
+
+ return True
+
+ # Redraw the screen from the backing pixmap
+ def expose_event(self, widget, event):
+ x , y, width, height = event.area
+ widget.window.draw_drawable(widget.get_style().fg_gc[gtk.STATE_NORMAL],
+ self.pixmap, x, y, x, y, width, height)
+ return False
+
+ # Draw a rectangle on the screen
+ def draw_brush(self, widget, x, y):
+ rect = (int(x-5), int(y-5), 10, 10)
+ self.pixmap.draw_rectangle(widget.get_style().black_gc, True,
+ rect[0], rect[1], rect[2], rect[3])
+ widget.queue_draw_area(rect[0], rect[1], rect[2], rect[3])
+
+ def button_press_event(self, widget, event):
+ if event.button == 1 and self.pixmap != None:
+ self.draw_brush(widget, event.x, event.y)
+ return True
+
+ def motion_notify_event(self, widget, event):
+ if event.is_hint:
+ x, y, state = event.window.get_pointer()
+ else:
+ x = event.x
+ y = event.y
+ state = event.state
+
+ if state & gtk.gdk.BUTTON1_MASK and self.pixmap != None:
+ self.draw_brush(widget, x, y)
+
+ return True
def log(self, msg):
"Notify user of error and die."
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits