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

Reply via email to