Mercurial > parpg-source
comparison common/listeners/event_listener.py @ 0:7a89ea5404b1
Initial commit of parpg-core.
author | M. George Hansen <technopolitica@gmail.com> |
---|---|
date | Sat, 14 May 2011 01:12:35 -0700 |
parents | |
children | 80672955ab70 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:7a89ea5404b1 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 # This file is part of PARPG. | |
4 | |
5 # PARPG is free software: you can redistribute it and/or modify | |
6 # it under the terms of the GNU General Public License as published by | |
7 # the Free Software Foundation, either version 3 of the License, or | |
8 # (at your option) any later version. | |
9 | |
10 # PARPG is distributed in the hope that it will be useful, | |
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 # GNU General Public License for more details. | |
14 | |
15 # You should have received a copy of the GNU General Public License | |
16 # along with PARPG. If not, see <http://www.gnu.org/licenses/>. | |
17 | |
18 """This module contains the EventListener that receives events and distributes | |
19 them to PARPG listeners""" | |
20 | |
21 from fife import fife | |
22 import logging | |
23 | |
24 logger = logging.getLogger('event_listener') | |
25 | |
26 class EventListener(fife.IKeyListener, | |
27 fife.ICommandListener, | |
28 fife.IMouseListener, | |
29 fife.ConsoleExecuter): | |
30 """Class that receives all events and distributes them to the listeners""" | |
31 def __init__(self, engine): | |
32 """Initialize the instance""" | |
33 self.event_manager = engine.getEventManager() | |
34 | |
35 fife.IKeyListener.__init__(self) | |
36 self.event_manager.addKeyListener(self) | |
37 fife.ICommandListener.__init__(self) | |
38 self.event_manager.addCommandListener(self) | |
39 fife.IMouseListener.__init__(self) | |
40 self.event_manager.addMouseListener(self) | |
41 fife.ConsoleExecuter.__init__(self) | |
42 engine.getGuiManager().getConsole().setConsoleExecuter(self) | |
43 | |
44 self.listeners = {"Mouse" : [], | |
45 "Key" : [], | |
46 "Command" : [], | |
47 "ConsoleCommand" : [], | |
48 "Widget" : []} | |
49 | |
50 def addListener(self, listener_type, listener): | |
51 """Adds a listener""" | |
52 if listener_type in self.listeners.iterkeys(): | |
53 if not listener in self.listeners[listener_type]: | |
54 self.listeners[listener_type].append(listener) | |
55 else: | |
56 logger.warning("Listener type " | |
57 "'{0}' not supported".format(listener_type)) | |
58 | |
59 def removeListener(self, listener_type, listener): | |
60 """Removes a listener""" | |
61 if listener_type in self.listeners.iterkeys(): | |
62 self.listeners[listener_type].remove(listener) | |
63 else: | |
64 logger.warning("Listener type " | |
65 "'{0}' not supported".format(listener_type)) | |
66 | |
67 def mousePressed(self, evt): | |
68 """Called when a mouse button is pressed""" | |
69 for listeners in self.listeners["Mouse"]: | |
70 listeners.mousePressed(evt) | |
71 | |
72 def mouseReleased(self, evt): | |
73 """Called when a mouse button is released""" | |
74 for listeners in self.listeners["Mouse"]: | |
75 listeners.mouseReleased(evt) | |
76 | |
77 def mouseEntered(self, evt): | |
78 """Called when a mouse enters a region""" | |
79 for listeners in self.listeners["Mouse"]: | |
80 listeners.mouseEntered(evt) | |
81 | |
82 def mouseExited(self, evt): | |
83 """Called when a mouse exits a region""" | |
84 for listeners in self.listeners["Mouse"]: | |
85 listeners.mouseExited(evt) | |
86 | |
87 def mouseClicked(self, evt): | |
88 """Called after a mouse button is pressed and released""" | |
89 for listeners in self.listeners["Mouse"]: | |
90 listeners.mouseClicked(evt) | |
91 | |
92 def mouseWheelMovedUp(self, evt): | |
93 """Called when the mouse wheel has been moved up""" | |
94 for listeners in self.listeners["Mouse"]: | |
95 listeners.mouseWheelMovedUp(evt) | |
96 | |
97 def mouseWheelMovedDown(self, evt): | |
98 """Called when the mouse wheel has been moved down""" | |
99 for listener in self.listeners["Mouse"]: | |
100 listener.mouseWheelMovedDown(evt) | |
101 | |
102 def mouseMoved(self, evt): | |
103 """Called when when the mouse has been moved""" | |
104 for listener in self.listeners["Mouse"]: | |
105 listener.mouseMoved(evt) | |
106 | |
107 def mouseDragged(self, evt): | |
108 """Called when dragging the mouse""" | |
109 for listener in self.listeners["Mouse"]: | |
110 listener.mouseDragged(evt) | |
111 | |
112 def keyPressed(self, evt): | |
113 """Called when a key is being pressed""" | |
114 for listener in self.listeners["Key"]: | |
115 listener.keyPressed(evt) | |
116 | |
117 def keyReleased(self, evt): | |
118 """Called when a key is being released""" | |
119 for listener in self.listeners["Key"]: | |
120 listener.keyReleased(evt) | |
121 | |
122 def onCommand(self, command): | |
123 """Called when a command is executed""" | |
124 for listener in self.listeners["Command"]: | |
125 listener.onCommand(command) | |
126 | |
127 def onToolsClick(self): | |
128 """Called when the tools button has been clicked""" | |
129 for listener in self.listeners["ConsoleCommand"]: | |
130 listener.onToolsClick() | |
131 | |
132 def onConsoleCommand(self, command): | |
133 """Called when a console command is executed""" | |
134 for listener in self.listeners["ConsoleCommand"]: | |
135 listener.onConsoleCommand(command) | |
136 | |
137 def onWidgetAction(self, evt): | |
138 """Called when a widget action is executed""" | |
139 for listener in self.listeners["Widget"]: | |
140 listener.onWidgetAction(evt) | |
141 | |
142 |