• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  The zlib/libpng License
3 
4  Copyright (c) 2005-2007 Phillip Castaneda (pjcast -- www.wreckedgames.com)
5 
6  This software is provided 'as-is', without any express or implied warranty. In no event will
7  the authors be held liable for any damages arising from the use of this software.
8 
9  Permission is granted to anyone to use this software for any purpose, including commercial
10  applications, and to alter it and redistribute it freely, subject to the following
11  restrictions:
12 
13  1. The origin of this software must not be misrepresented; you must not claim that
14  you wrote the original software. If you use this software in a product,
15  an acknowledgment in the product documentation would be appreciated but is
16  not required.
17 
18  2. Altered source versions must be plainly marked as such, and must not be
19  misrepresented as being the original software.
20 
21  3. This notice may not be removed or altered from any source distribution.
22  */
23 
24 #ifndef __LP64__
25 
26 #include "mac/MacHelpers.h"
27 #include "mac/MacKeyboard.h"
28 #include "mac/MacMouse.h"
29 #include "OISException.h"
30 
31 #include <Carbon/Carbon.h>
32 
33 using namespace OIS;
34 
35 //-------------------------------------------------------------------//
KeyDownWrapper(EventHandlerCallRef nextHandler,EventRef theEvent,void * callClass)36 OSStatus KeyDownWrapper( EventHandlerCallRef nextHandler,
37                         EventRef               theEvent,
38                         void*                  callClass )
39 {
40     // TODO find a better way. This cast isn't very safe
41     if (callClass != NULL) {
42         ((MacKeyboard*)callClass)->_keyDownCallback( theEvent );
43 
44         // propagate the event down the chain
45         return CallNextEventHandler( nextHandler, theEvent );
46     }
47     else {
48         OIS_EXCEPT(E_General, "KeyDownWrapper >> Being called by something other than our event handler!");
49         return noErr;
50     }
51 }
52 
53 
54 //-------------------------------------------------------------------//
KeyUpWrapper(EventHandlerCallRef nextHandler,EventRef theEvent,void * callClass)55 OSStatus KeyUpWrapper( EventHandlerCallRef nextHandler,
56                        EventRef               theEvent,
57                        void*                  callClass )
58 {
59     if (callClass != NULL) {
60         ((MacKeyboard*)callClass)->_keyUpCallback( theEvent );
61 
62         // propagate the event down the chain
63         return CallNextEventHandler( nextHandler, theEvent );
64     }
65     else {
66         OIS_EXCEPT(E_General, "KeyUpWrapper >> Being called by something other than our event handler!");
67         return noErr;
68     }
69 }
70 
71 
72 //-------------------------------------------------------------------//
KeyModWrapper(EventHandlerCallRef nextHandler,EventRef theEvent,void * callClass)73 OSStatus KeyModWrapper( EventHandlerCallRef nextHandler,
74                         EventRef               theEvent,
75                         void*                  callClass )
76 {
77     if (callClass != NULL) {
78         ((MacKeyboard*)callClass)->_modChangeCallback( theEvent );
79 
80         // propagate the event down the chain
81         return CallNextEventHandler( nextHandler, theEvent );
82 
83     }
84     else {
85         OIS_EXCEPT(E_General, "KeyModWrapper >> Being called by something other than our event handler!");
86         return noErr;
87     }
88 }
89 
90 /*
91 //-------------------------------------------------------------------//
92 OSStatus MouseMoveWrapper( EventHandlerCallRef nextHandler,
93                            EventRef            theEvent,
94                            void*               callClass )
95 {
96     if (callClass != NULL) {
97         ((MacMouse*)callClass)->_mouseMoveCallback( theEvent );
98 
99         // propagate the event down the chain
100         return CallNextEventHandler( nextHandler, theEvent );
101 
102     }
103     else {
104         OIS_EXCEPT(E_General, "MouseMoveWrapper >> Being called by something other than our event handler!");
105         return noErr;
106     }
107 }
108 
109 
110 //-------------------------------------------------------------------//
111 OSStatus MouseScrollWrapper( EventHandlerCallRef nextHandler,
112                              EventRef            theEvent,
113                              void*               callClass )
114 {
115     if (callClass != NULL) {
116         ((MacMouse*)callClass)->_mouseScrollCallback( theEvent );
117 
118         // propagate the event down the chain
119         return CallNextEventHandler( nextHandler, theEvent );
120 
121     }
122     else {
123         OIS_EXCEPT(E_General, "MouseScrollWrapper >> Being called by something other than our event handler!");
124         return noErr;
125     }
126 }
127 
128 
129 //-------------------------------------------------------------------//
130 OSStatus MouseButtonWrapper( EventHandlerCallRef nextHandler,
131                              EventRef            theEvent,
132                              void*               callClass )
133 {
134     if (callClass != NULL) {
135         ((MacMouse*)callClass)->_mouseButtonCallback( theEvent );
136 
137         // propagate the event down the chain
138         return CallNextEventHandler( nextHandler, theEvent );
139 
140     }
141     else {
142         OIS_EXCEPT(E_General, "MouseButtonWrapper >> Being called by something other than our event handler!");
143         return noErr;
144     }
145 }
146 */
147 
148 //-------------------------------------------------------------------//
MouseWrapper(EventHandlerCallRef nextHandler,EventRef theEvent,void * callClass)149 OSStatus MouseWrapper( EventHandlerCallRef nextHandler, EventRef theEvent, void* callClass )
150 {
151     if (callClass != NULL)
152 	{
153         ((MacMouse*)callClass)->_mouseCallback( theEvent );
154 
155         // propagate the event down the chain
156         return CallNextEventHandler( nextHandler, theEvent );
157     }
158     else
159         OIS_EXCEPT(E_General, "MouseWrapper >> Being called by something other than our event handler!");
160 }
161 
162 #endif