Mercurial > sdl-ios-xcode
annotate docs/man3/Makefile.am @ 563:04dcaf3da918
Massive Quartz input enhancements from Darrell Walisser. His email:
Enclosed is a patch that addresses the following:
--Various minor cleanups.
Removed dead/obsolete code, made some style cleanups
--Mouse Events
Now keep track of what button(s) were pressed so we know when to send
the mouse up event. This fixes the case where the mouse is dragged
outside of the game window and released (in which case we want to send
the mouse up event even though the mouse is outside the game window).
--Input Grabbing
Here is my take on the grabbing situation, which is the basis for the
new implementation.
There are 3 grab states, ungrabbed (UG), visible (VG), and invisible
(IG). Both VG and IG keep the mouse constrained to the window and
produce relative motion events. In VG the cursor is visible (duh), in
IG it is not. In VG, absolute motion events also work.
There are 6 actions that can affect grabbing:
1. Set Fullscreen/Window (F/W). In fullscreen, a visible grab should do
nothing. However, a fullscreen visible grab can be treated just like a
windowed visible grab, which is what I have done to help simplify
things.
2. Cursor hide/show (H/S). If the cursor is hidden when grabbing, the
grab is an invisible grab. If the cursor is visible, the grab should
just constrain the mouse to the window.
3. Input grab/ungrab(G/U). If grabbed, the cursor should be confined to
the window as should the keyboard input. On Mac OS X, the keyboard
input is implicitly grabbed by confining the cursor, except for
command-tab which can switch away from the application. Should the
window come to the foreground if the application is deactivated and
grab input is called? This isn't necessary in this implementation
because the grab state will be asserted upon activation.
Using my notation, these are all the cases that need to be handled
(state + action = new state).
UG+U = UG
UG+G = VG or IG, if cursor is visible or not
UG+H = UG
UG+S = UG
VG+U = UG
VG+G = VG
VG+H = IG
VG+S = VG
IG+U = UG
IG+G = IG
IG+H = IG
IG+S = VG
The cases that result in the same state can be ignored in the code,
which cuts it down to just 5 cases.
Another issue is what happens when the app loses/gains input focus from
deactivate/activate or iconify/deiconify. I think that if input focus
is ever lost (outside of SDL's control), the grab state should be
suspended and the cursor should become visible and active again. When
regained, the cursor should reappear in its original location and/or
grab state. This way, when reactivating the cursor is still in the same
position as before so apps shouldn't get confused when the next motion
event comes in. This is what I've done in this patch.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Fri, 27 Dec 2002 20:52:41 +0000 |
parents | e5bc29de3f0a |
children |
rev | line source |
---|---|
0 | 1 man_MANS = \ |
2 SDLKey.3 \ | |
3 SDL_ActiveEvent.3 \ | |
4 SDL_AddTimer.3 \ | |
5 SDL_AudioCVT.3 \ | |
6 SDL_AudioSpec.3 \ | |
7 SDL_BlitSurface.3 \ | |
8 SDL_BuildAudioCVT.3 \ | |
9 SDL_CD.3 \ | |
10 SDL_CDClose.3 \ | |
11 SDL_CDEject.3 \ | |
12 SDL_CDName.3 \ | |
13 SDL_CDNumDrives.3 \ | |
14 SDL_CDOpen.3 \ | |
15 SDL_CDPause.3 \ | |
16 SDL_CDPlay.3 \ | |
17 SDL_CDPlayTracks.3 \ | |
18 SDL_CDResume.3 \ | |
19 SDL_CDStatus.3 \ | |
20 SDL_CDStop.3 \ | |
21 SDL_CDtrack.3 \ | |
22 SDL_CloseAudio.3 \ | |
23 SDL_Color.3 \ | |
24 SDL_CondBroadcast.3 \ | |
25 SDL_CondSignal.3 \ | |
26 SDL_CondWait.3 \ | |
27 SDL_CondWaitTimeout.3 \ | |
28 SDL_ConvertAudio.3 \ | |
29 SDL_ConvertSurface.3 \ | |
30 SDL_CreateCond.3 \ | |
31 SDL_CreateCursor.3 \ | |
32 SDL_CreateMutex.3 \ | |
33 SDL_CreateRGBSurface.3 \ | |
34 SDL_CreateRGBSurfaceFrom.3 \ | |
35 SDL_CreateSemaphore.3 \ | |
36 SDL_CreateThread.3 \ | |
37 SDL_CreateYUVOverlay.3 \ | |
38 SDL_Delay.3 \ | |
39 SDL_DestroyCond.3 \ | |
40 SDL_DestroyMutex.3 \ | |
41 SDL_DestroySemaphore.3 \ | |
42 SDL_DisplayFormat.3 \ | |
43 SDL_DisplayFormatAlpha.3 \ | |
44 SDL_DisplayYUVOverlay.3 \ | |
45 SDL_EnableKeyRepeat.3 \ | |
46 SDL_EnableUNICODE.3 \ | |
47 SDL_Event.3 \ | |
48 SDL_EventState.3 \ | |
181
e5bc29de3f0a
Updated from the SDL Documentation Project
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
49 SDL_ExposeEvent.3 \ |
0 | 50 SDL_FillRect.3 \ |
51 SDL_Flip.3 \ | |
52 SDL_FreeCursor.3 \ | |
53 SDL_FreeSurface.3 \ | |
54 SDL_FreeWAV.3 \ | |
55 SDL_FreeYUVOverlay.3 \ | |
56 SDL_GL_GetAttribute.3 \ | |
57 SDL_GL_GetProcAddress.3 \ | |
58 SDL_GL_LoadLibrary.3 \ | |
59 SDL_GL_SetAttribute.3 \ | |
60 SDL_GL_SwapBuffers.3 \ | |
61 SDL_GLattr.3 \ | |
62 SDL_GetAppState.3 \ | |
63 SDL_GetAudioStatus.3 \ | |
64 SDL_GetClipRect.3 \ | |
65 SDL_GetCursor.3 \ | |
181
e5bc29de3f0a
Updated from the SDL Documentation Project
Sam Lantinga <slouken@libsdl.org>
parents:
0
diff
changeset
|
66 SDL_GetError.3 \ |
0 | 67 SDL_GetEventFilter.3 \ |
68 SDL_GetGamma.3 \ | |
69 SDL_GetGammaRamp.3 \ | |
70 SDL_GetKeyName.3 \ | |
71 SDL_GetKeyState.3 \ | |
72 SDL_GetModState.3 \ | |
73 SDL_GetMouseState.3 \ | |
74 SDL_GetRGB.3 \ | |
75 SDL_GetRGBA.3 \ | |
76 SDL_GetRelativeMouseState.3 \ | |
77 SDL_GetThreadID.3 \ | |
78 SDL_GetTicks.3 \ | |
79 SDL_GetVideoInfo.3 \ | |
80 SDL_GetVideoSurface.3 \ | |
81 SDL_Init.3 \ | |
82 SDL_InitSubSystem.3 \ | |
83 SDL_JoyAxisEvent.3 \ | |
84 SDL_JoyBallEvent.3 \ | |
85 SDL_JoyButtonEvent.3 \ | |
86 SDL_JoyHatEvent.3 \ | |
87 SDL_JoystickClose.3 \ | |
88 SDL_JoystickEventState.3 \ | |
89 SDL_JoystickGetAxis.3 \ | |
90 SDL_JoystickGetBall.3 \ | |
91 SDL_JoystickGetButton.3 \ | |
92 SDL_JoystickGetHat.3 \ | |
93 SDL_JoystickIndex.3 \ | |
94 SDL_JoystickName.3 \ | |
95 SDL_JoystickNumAxes.3 \ | |
96 SDL_JoystickNumBalls.3 \ | |
97 SDL_JoystickNumButtons.3 \ | |
98 SDL_JoystickNumHats.3 \ | |
99 SDL_JoystickOpen.3 \ | |
100 SDL_JoystickOpened.3 \ | |
101 SDL_JoystickUpdate.3 \ | |
102 SDL_KeyboardEvent.3 \ | |
103 SDL_KillThread.3 \ | |
104 SDL_ListModes.3 \ | |
105 SDL_LoadBMP.3 \ | |
106 SDL_LoadWAV.3 \ | |
107 SDL_LockAudio.3 \ | |
108 SDL_LockSurface.3 \ | |
109 SDL_LockYUVOverlay.3 \ | |
110 SDL_MapRGB.3 \ | |
111 SDL_MapRGBA.3 \ | |
112 SDL_MixAudio.3 \ | |
113 SDL_MouseButtonEvent.3 \ | |
114 SDL_MouseMotionEvent.3 \ | |
115 SDL_NumJoysticks.3 \ | |
116 SDL_OpenAudio.3 \ | |
117 SDL_Overlay.3 \ | |
118 SDL_Palette.3 \ | |
119 SDL_PauseAudio.3 \ | |
120 SDL_PeepEvents.3 \ | |
121 SDL_PixelFormat.3 \ | |
122 SDL_PollEvent.3 \ | |
123 SDL_PumpEvents.3 \ | |
124 SDL_PushEvent.3 \ | |
125 SDL_Quit.3 \ | |
126 SDL_QuitEvent.3 \ | |
127 SDL_QuitSubSystem.3 \ | |
128 SDL_RWFromFile.3 \ | |
129 SDL_Rect.3 \ | |
130 SDL_RemoveTimer.3 \ | |
131 SDL_ResizeEvent.3 \ | |
132 SDL_SaveBMP.3 \ | |
133 SDL_SemPost.3 \ | |
134 SDL_SemTryWait.3 \ | |
135 SDL_SemValue.3 \ | |
136 SDL_SemWait.3 \ | |
137 SDL_SemWaitTimeout.3 \ | |
138 SDL_SetAlpha.3 \ | |
139 SDL_SetClipRect.3 \ | |
140 SDL_SetColorKey.3 \ | |
141 SDL_SetColors.3 \ | |
142 SDL_SetCursor.3 \ | |
143 SDL_SetEventFilter.3 \ | |
144 SDL_SetGamma.3 \ | |
145 SDL_SetGammaRamp.3 \ | |
146 SDL_SetModState.3 \ | |
147 SDL_SetPalette.3 \ | |
148 SDL_SetTimer.3 \ | |
149 SDL_SetVideoMode.3 \ | |
150 SDL_ShowCursor.3 \ | |
151 SDL_Surface.3 \ | |
152 SDL_SysWMEvent.3 \ | |
153 SDL_ThreadID.3 \ | |
154 SDL_UnlockAudio.3 \ | |
155 SDL_UnlockSurface.3 \ | |
156 SDL_UnlockYUVOverlay.3 \ | |
157 SDL_UpdateRect.3 \ | |
158 SDL_UpdateRects.3 \ | |
159 SDL_UserEvent.3 \ | |
160 SDL_VideoDriverName.3 \ | |
161 SDL_VideoInfo.3 \ | |
162 SDL_VideoModeOK.3 \ | |
163 SDL_WM_GetCaption.3 \ | |
164 SDL_WM_GrabInput.3 \ | |
165 SDL_WM_IconifyWindow.3 \ | |
166 SDL_WM_SetCaption.3 \ | |
167 SDL_WM_SetIcon.3 \ | |
168 SDL_WM_ToggleFullScreen.3 \ | |
169 SDL_WaitEvent.3 \ | |
170 SDL_WaitThread.3 \ | |
171 SDL_WarpMouse.3 \ | |
172 SDL_WasInit.3 \ | |
173 SDL_keysym.3 \ | |
174 SDL_mutexP.3 \ | |
175 SDL_mutexV.3 | |
176 EXTRA_DIST = $(man_MANS) |