comparison gamelib/state.py @ 210:eb101b6fb3dd

Transparent message dialogs.
author Jeremy Thurgood <firxen@gmail.com>
date Thu, 26 Aug 2010 16:29:54 +0200
parents 9531a22721d1
children a5325919342e
comparison
equal deleted inserted replaced
209:aeb96ca5f76c 210:eb101b6fb3dd
16 DEBUG_SCENE = None 16 DEBUG_SCENE = None
17 17
18 class Result(object): 18 class Result(object):
19 """Result of interacting with a thing""" 19 """Result of interacting with a thing"""
20 20
21 def __init__(self, message=None, soundfile=None, detail_view=None): 21 def __init__(self, message=None, soundfile=None, detail_view=None, style=None):
22 self.message = message 22 self.message = message
23 self.sound = None 23 self.sound = None
24 if soundfile: 24 if soundfile:
25 self.sound = get_sound(soundfile) 25 self.sound = get_sound(soundfile)
26 self.detail_view = detail_view 26 self.detail_view = detail_view
27 self.style = style
27 28
28 def process(self, scene_widget): 29 def process(self, scene_widget):
29 """Helper function to do the right thing with a result object""" 30 """Helper function to do the right thing with a result object"""
30 if self.sound: 31 if self.sound:
31 self.sound.play() 32 self.sound.play()
32 if self.message: 33 if self.message:
33 scene_widget.show_message(self.message) 34 scene_widget.show_message(self.message, self.style)
34 if self.detail_view: 35 if self.detail_view:
35 scene_widget.show_detail(self.detail_view) 36 scene_widget.show_detail(self.detail_view)
36 37
37 38
38 def handle_result(result, scene_widget): 39 def handle_result(result, scene_widget):
256 return None 257 return None
257 label = BoomLabel(text) 258 label = BoomLabel(text)
258 label.set_margin(5) 259 label.set_margin(5)
259 label.border_width = 1 260 label.border_width = 1
260 label.border_color = (0, 0, 0) 261 label.border_color = (0, 0, 0)
261 label.bg_color = (127, 127, 127) 262 label.bg_color = Color(127, 127, 127, 255)
262 label.fg_color = (0, 0, 0) 263 label.fg_color = (0, 0, 0)
263 return label 264 return label
264 265
265 def draw_description(self, surface, screen): 266 def draw_description(self, surface, screen):
266 if self._current_description is not None: 267 if self._current_description is not None: