comparison tools/rect_drawer.py @ 524:a91cb4bffd5d

Make close button helper in rect_drawer zoom correctly
author Neil Muller <neil@dip.sun.ac.za>
date Wed, 08 Sep 2010 00:59:51 +0200
parents 08dbb7f3a34d
children 5b9f371c2bb8
comparison
equal deleted inserted replaced
523:08dbb7f3a34d 524:a91cb4bffd5d
82 self.current_image = None 82 self.current_image = None
83 self.place_image_menu = None 83 self.place_image_menu = None
84 self.close_button = BoomLabel('Close', font=get_font(20, 'Vera.ttf')) 84 self.close_button = BoomLabel('Close', font=get_font(20, 'Vera.ttf'))
85 self.close_button.fg_color = (0, 0, 0) 85 self.close_button.fg_color = (0, 0, 0)
86 self.close_button.bg_color = (0, 0, 0) 86 self.close_button.bg_color = (0, 0, 0)
87 if self.state.current_detail:
88 w, h = self.state.current_detail.get_detail_size()
89 rect = pygame.rect.Rect(0, 0, w, h)
90 self.close_button.rect.midbottom = rect.midbottom
91 self.add(self.close_button)
92 self.offset = (0, 0)
93 else:
94 self.offset = (-self.state.current_scene.OFFSET[0], - self.state.current_scene.OFFSET[1])
95 self.draw_rects = True 87 self.draw_rects = True
96 self.draw_things = True 88 self.draw_things = True
97 self.draw_thing_rects = True 89 self.draw_thing_rects = True
98 self.draw_images = True 90 self.draw_images = True
99 self.trans_images = False 91 self.trans_images = False
100 self.draw_toolbar = True 92 self.draw_toolbar = True
101 self.old_mouse_pos = None 93 self.old_mouse_pos = None
102 self.zoom_display = False 94 self.zoom_display = False
103 self.draw_anim = False 95 self.draw_anim = False
104 self.zoom_offset = (600, 600) 96 self.zoom_offset = (600, 600)
97 if self.state.current_detail:
98 w, h = self.state.current_detail.get_detail_size()
99 rect = pygame.rect.Rect(0, 0, w, h)
100 self.close_button.rect.midbottom = rect.midbottom
101 self.offset = (0, 0)
102 else:
103 self.offset = (-self.state.current_scene.OFFSET[0], - self.state.current_scene.OFFSET[1])
105 self.find_existing_intersects() 104 self.find_existing_intersects()
106 105
107 def _get_scene(self): 106 def _get_scene(self):
108 if self.state.current_detail: 107 if self.state.current_detail:
109 return self.state.current_detail 108 return self.state.current_detail
245 if self.state.current_detail: 244 if self.state.current_detail:
246 if self.draw_things: 245 if self.draw_things:
247 self.state.current_detail.draw(surface, None) 246 self.state.current_detail.draw(surface, None)
248 else: 247 else:
249 self.state.current_detail.draw_background(surface) 248 self.state.current_detail.draw_background(surface)
249 # We duplicate Albow's draw logic here, so we zoom the close
250 # button correctly
251 r = self.close_button.get_rect()
252 surf_rect = surface.get_rect()
253 sub_rect = surf_rect.clip(r)
254 try:
255 sub = surface.subsurface(sub_rect)
256 self.close_button.draw_all(sub)
257 except ValueError, e:
258 print 'Error, failed to draw close button', e
250 else: 259 else:
251 if self.draw_things: 260 if self.draw_things:
252 self.state.current_scene.draw(surface, None) 261 self.state.current_scene.draw(surface, None)
253 else: 262 else:
254 self.state.current_scene.draw_background(surface) 263 self.state.current_scene.draw_background(surface)