comparison gamelib/gamescreen.py @ 324:3476e8f3b100

Fixed mouse and cursor handling.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 28 Aug 2010 13:30:44 +0200
parents fd849354be58
children 057e2a40c999
comparison
equal deleted inserted replaced
323:0630a37cb371 324:3476e8f3b100
83 # of what happens 83 # of what happens
84 result = self.state.check_enter_leave(self.screen) 84 result = self.state.check_enter_leave(self.screen)
85 handle_result(result, self) 85 handle_result(result, self)
86 86
87 def mouse_move(self, event): 87 def mouse_move(self, event):
88 self.state.highlight_override = False
88 if not self.subwidgets: 89 if not self.subwidgets:
89 self._mouse_move(event.pos) 90 self._mouse_move(event.pos)
90 91
91 def _mouse_move(self, pos): 92 def _mouse_move(self, pos):
92 self.state.mouse_move(pos, self.screen) 93 self.state.highlight_override = False
94 self.state.mouse_move(pos)
93 95
94 def show_message(self, message, style=None): 96 def show_message(self, message, style=None):
95 self.parent.cursor_highlight(False)
96 # Display the message as a modal dialog 97 # Display the message as a modal dialog
97 MessageDialog(self.screen, message, 60, style=style).present() 98 MessageDialog(self.screen, message, 60, style=style).present()
98 # queue a redraw to show updated state 99 # queue a redraw to show updated state
99 self.invalidate() 100 self.invalidate()
100 # The cursor could have gone anywhere 101 # The cursor could have gone anywhere
106 def show_detail(self, detail): 107 def show_detail(self, detail):
107 w, h = self.state.set_current_detail(detail) 108 w, h = self.state.set_current_detail(detail)
108 self.detail.set_image_rect(Rect(0, 0, w, h)) 109 self.detail.set_image_rect(Rect(0, 0, w, h))
109 self.add_centered(self.detail) 110 self.add_centered(self.detail)
110 self.state.do_enter_detail() 111 self.state.do_enter_detail()
111 self.parent.cursor_highlight(False)
112 112
113 def clear_detail(self): 113 def clear_detail(self):
114 """Hide the detail view""" 114 """Hide the detail view"""
115 self.remove(self.detail) 115 self.remove(self.detail)
116 self.state.do_leave_detail() 116 self.state.do_leave_detail()
151 151
152 def mouse_move(self, event): 152 def mouse_move(self, event):
153 self._mouse_move(event.pos) 153 self._mouse_move(event.pos)
154 154
155 def _mouse_move(self, pos): 155 def _mouse_move(self, pos):
156 self.state.mouse_move_detail(self.global_to_local(pos), self.screen) 156 self.state.highlight_override = False
157 self.state.mouse_move_detail(self.global_to_local(pos))
157 158
158 def show_message(self, message, style=None): 159 def show_message(self, message, style=None):
159 self.parent.show_message(message, style) 160 self.parent.show_message(message, style)
160 self.invalidate() 161 self.invalidate()
161 162
225 self.inventory.unselect() 226 self.inventory.unselect()
226 227
227 def begin_frame(self): 228 def begin_frame(self):
228 if self.running: 229 if self.running:
229 self.state_widget.animate() 230 self.state_widget.animate()
230
231 def mouse_delta(self, event):
232 CursorWidget.mouse_delta(self, event)
233 if not self.state_widget.rect.collidepoint(event.pos):
234 self.cursor_highlight(False)