Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/FortuneMaker.activity
diff options
context:
space:
mode:
authorJustin Lewis <jtl1728@rit.edu>2010-01-29 19:54:15 (GMT)
committer Justin Lewis <jtl1728@rit.edu>2010-01-29 19:54:15 (GMT)
commit91ceb526f0ed388d527810a30797ed49a9f92498 (patch)
treea70ee84440477fcb058b32fc9750db6ae7910c9d /FortuneMaker.activity
parentfb37d173635d375d8af8ff68b54e3b5c639a1f38 (diff)
Fixed grid redraw problem. Now only redraws changed rooms
Diffstat (limited to 'FortuneMaker.activity')
-rw-r--r--FortuneMaker.activity/FortuneMaker.py16
-rw-r--r--FortuneMaker.activity/Room.py11
2 files changed, 14 insertions, 13 deletions
diff --git a/FortuneMaker.activity/FortuneMaker.py b/FortuneMaker.activity/FortuneMaker.py
index 9c3500d..6ddac67 100644
--- a/FortuneMaker.activity/FortuneMaker.py
+++ b/FortuneMaker.activity/FortuneMaker.py
@@ -510,8 +510,7 @@ class FortuneMaker(Activity):
box.pack_start( row, False )
for room in row_array:
room_gui = room.render_room()
- room_gui.connect('button-press-event', self.add_prop_to_room, room)
- #room_gui.connect('clicked', self.add_prop_to_room, room)
+ room_gui.connect('button-press-event', self.add_prop_to_room, room, room_gui)
row.pack_start( room_gui, False )
if self._pane2:
self.edit_pane.remove( self._pane2 )
@@ -816,8 +815,7 @@ class FortuneMaker(Activity):
self.active_room = room
self.view_room()
- #def add_prop_to_room(self, widget, room):
- def add_prop_to_room(self, widget, event, room):
+ def add_prop_to_room(self, widget, event, room, room_gui):
self.active_room = room
self.enable_room_icons(True, True)
for but in self.action_but_group:
@@ -897,6 +895,7 @@ class FortuneMaker(Activity):
adj_room.remove_door( "N" )
elif door_pos == "W":
adj_room.remove_door( "E" )
+ adj_room._room_gui.queue_draw()
except:
pass
@@ -915,6 +914,7 @@ class FortuneMaker(Activity):
adj_room.add_door( "N", but.track_flag)
elif door_pos == "W":
adj_room.add_door( "E", but.track_flag)
+ adj_room._room_gui.queue_draw()
else:
self._alert( _("Door Not Added"), _("This door can not be placed at edge of dungeon"))
else:
@@ -933,8 +933,8 @@ class FortuneMaker(Activity):
def add_item(click, flag):
if not self.active_room.add_item( but.track_flag, flag ):
self._alert( _("Item not added to room"), _("Room can not hold any more items"))
- self.dungeon.update_room( self.active_room )
- self._draw_room_button_grid()
+ self.dungeon.update_room( self.active_room )
+ room_gui.queue_draw()
menu = gtk.Menu()
for flag in ITEM_FLAGS:
@@ -942,14 +942,14 @@ class FortuneMaker(Activity):
opt = gtk.MenuItem(ITEM_FLAGS[flag])
opt.connect("activate", add_item, flag)
menu.append(opt)
- #one.set_submenu(submenu)
menu.show_all()
menu.popup(None, None, None, event.button, event.get_time())
return
self.dungeon.update_room( self.active_room )
- self._draw_room_button_grid()
+ room_gui.queue_draw()
+ #self._draw_room_button_grid()
break
def _alert(self, title, text=None, timeout=5):
diff --git a/FortuneMaker.activity/Room.py b/FortuneMaker.activity/Room.py
index 928146e..af368a3 100644
--- a/FortuneMaker.activity/Room.py
+++ b/FortuneMaker.activity/Room.py
@@ -16,6 +16,7 @@ class Room:
self.doors = {}
self.enemy = []
self.item = []
+ self._room_gui = None
self.has_doors = False
self.has_enemy = False
@@ -223,9 +224,9 @@ class Room:
layout.set_font_description(font_desc)
widget.window.draw_layout(xgc, 7, 7, layout)
- drawing_area = gtk.DrawingArea()
- drawing_area.set_size_request(ROOM_SIZE, ROOM_SIZE)
- drawing_area.connect("expose-event", expose_handler)
- drawing_area.set_events(gtk.gdk.BUTTON_PRESS_MASK)
+ self._room_gui = gtk.DrawingArea()
+ self._room_gui.set_size_request(ROOM_SIZE, ROOM_SIZE)
+ self._room_gui.connect("expose-event", expose_handler)
+ self._room_gui.set_events(gtk.gdk.BUTTON_PRESS_MASK)
- return drawing_area
+ return self._room_gui