Mercurial > pyntnclick
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) |