diff options
author | Justin Lewis <jtl1728@rit.edu> | 2010-01-29 19:54:15 (GMT) |
---|---|---|
committer | Justin Lewis <jtl1728@rit.edu> | 2010-01-29 19:54:15 (GMT) |
commit | 91ceb526f0ed388d527810a30797ed49a9f92498 (patch) | |
tree | a70ee84440477fcb058b32fc9750db6ae7910c9d /FortuneMaker.activity | |
parent | fb37d173635d375d8af8ff68b54e3b5c639a1f38 (diff) |
Fixed grid redraw problem. Now only redraws changed rooms
Diffstat (limited to 'FortuneMaker.activity')
-rw-r--r-- | FortuneMaker.activity/FortuneMaker.py | 16 | ||||
-rw-r--r-- | FortuneMaker.activity/Room.py | 11 |
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 |