This file is indexed.

/usr/share/doc/libghc-glut-doc/html/Graphics-UI-GLUT-Callbacks-Window.html is in libghc-glut-doc 2.4.0.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Graphics.UI.GLUT.Callbacks.Window</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Graphics-UI-GLUT-Callbacks-Window.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Graphics-UI-GLUT-Callbacks-Window.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">GLUT-2.4.0.0: A binding for the OpenGL Utility Toolkit</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>stable</td></tr><tr><th>Maintainer</th><td>sven.panne@aedion.de</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Graphics.UI.GLUT.Callbacks.Window</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Redisplay callbacks
</a></li><li><a href="#g:2">Reshape callback
</a></li><li><a href="#g:3">Callbacks for visibility changes
</a></li><li><a href="#g:4">Window close callback
</a></li><li><a href="#g:5">Keyboard callback
</a></li><li><a href="#g:6">Special callback
</a></li><li><a href="#g:7">Mouse callback
</a></li><li><a href="#g:8">Keyboard and mouse input callback
</a></li><li><a href="#g:9">Mouse wheel callback
</a></li><li><a href="#g:10">Mouse movement callbacks
</a></li><li><a href="#g:11">Spaceball callback
</a></li><li><a href="#g:12">Dial &amp; button box callback
</a></li><li><a href="#g:13">Tablet callback
</a></li><li><a href="#g:14">Joystick callback
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty">&nbsp;</div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:DisplayCallback">DisplayCallback</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:displayCallback">displayCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DisplayCallback">DisplayCallback</a></li><li class="src short"><a href="#v:overlayDisplayCallback">overlayDisplayCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DisplayCallback">DisplayCallback</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:ReshapeCallback">ReshapeCallback</a> = <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:reshapeCallback">reshapeCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:ReshapeCallback">ReshapeCallback</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Visibility">Visibility</a> <ul class="subs"><li>= <a href="#v:NotVisible">NotVisible</a>  </li><li>| <a href="#v:Visible">Visible</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:VisibilityCallback">VisibilityCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Visibility">Visibility</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:visibilityCallback">visibilityCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:VisibilityCallback">VisibilityCallback</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:WindowState">WindowState</a> <ul class="subs"><li>= <a href="#v:Unmapped">Unmapped</a>  </li><li>| <a href="#v:FullyRetained">FullyRetained</a>  </li><li>| <a href="#v:PartiallyRetained">PartiallyRetained</a>  </li><li>| <a href="#v:FullyCovered">FullyCovered</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:WindowStateCallback">WindowStateCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WindowState">WindowState</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:windowStateCallback">windowStateCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WindowStateCallback">WindowStateCallback</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:CloseCallback">CloseCallback</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:closeCallback">closeCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:CloseCallback">CloseCallback</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:KeyboardCallback">KeyboardCallback</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Char.html#t:Char">Char</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:keyboardCallback">keyboardCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyboardCallback">KeyboardCallback</a>)</li><li class="src short"><a href="#v:keyboardUpCallback">keyboardUpCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyboardCallback">KeyboardCallback</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:SpecialCallback">SpecialCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialKey">SpecialKey</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:specialCallback">specialCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialCallback">SpecialCallback</a>)</li><li class="src short"><a href="#v:specialUpCallback">specialUpCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialCallback">SpecialCallback</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:MouseCallback">MouseCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseButton">MouseButton</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:mouseCallback">mouseCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseCallback">MouseCallback</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Key">Key</a> <ul class="subs"><li>= <a href="#v:Char">Char</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Char.html#t:Char">Char</a>  </li><li>| <a href="#v:SpecialKey">SpecialKey</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialKey">SpecialKey</a>  </li><li>| <a href="#v:MouseButton">MouseButton</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseButton">MouseButton</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:SpecialKey">SpecialKey</a> <ul class="subs"><li>= <a href="#v:KeyF1">KeyF1</a>  </li><li>| <a href="#v:KeyF2">KeyF2</a>  </li><li>| <a href="#v:KeyF3">KeyF3</a>  </li><li>| <a href="#v:KeyF4">KeyF4</a>  </li><li>| <a href="#v:KeyF5">KeyF5</a>  </li><li>| <a href="#v:KeyF6">KeyF6</a>  </li><li>| <a href="#v:KeyF7">KeyF7</a>  </li><li>| <a href="#v:KeyF8">KeyF8</a>  </li><li>| <a href="#v:KeyF9">KeyF9</a>  </li><li>| <a href="#v:KeyF10">KeyF10</a>  </li><li>| <a href="#v:KeyF11">KeyF11</a>  </li><li>| <a href="#v:KeyF12">KeyF12</a>  </li><li>| <a href="#v:KeyLeft">KeyLeft</a>  </li><li>| <a href="#v:KeyUp">KeyUp</a>  </li><li>| <a href="#v:KeyRight">KeyRight</a>  </li><li>| <a href="#v:KeyDown">KeyDown</a>  </li><li>| <a href="#v:KeyPageUp">KeyPageUp</a>  </li><li>| <a href="#v:KeyPageDown">KeyPageDown</a>  </li><li>| <a href="#v:KeyHome">KeyHome</a>  </li><li>| <a href="#v:KeyEnd">KeyEnd</a>  </li><li>| <a href="#v:KeyInsert">KeyInsert</a>  </li><li>| <a href="#v:KeyNumLock">KeyNumLock</a>  </li><li>| <a href="#v:KeyBegin">KeyBegin</a>  </li><li>| <a href="#v:KeyDelete">KeyDelete</a>  </li><li>| <a href="#v:KeyUnknown">KeyUnknown</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:MouseButton">MouseButton</a> <ul class="subs"><li>= <a href="#v:LeftButton">LeftButton</a>  </li><li>| <a href="#v:MiddleButton">MiddleButton</a>  </li><li>| <a href="#v:RightButton">RightButton</a>  </li><li>| <a href="#v:WheelUp">WheelUp</a>  </li><li>| <a href="#v:WheelDown">WheelDown</a>  </li><li>| <a href="#v:AdditionalButton">AdditionalButton</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:KeyState">KeyState</a> <ul class="subs"><li>= <a href="#v:Down">Down</a>  </li><li>| <a href="#v:Up">Up</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Modifiers">Modifiers</a>  = <a href="#v:Modifiers">Modifiers</a> {<ul class="subs"><li><a href="#v:shift">shift</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></li><li><a href="#v:ctrl">ctrl</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></li><li><a href="#v:alt">alt</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:KeyboardMouseCallback">KeyboardMouseCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Key">Key</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Modifiers">Modifiers</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:keyboardMouseCallback">keyboardMouseCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyboardMouseCallback">KeyboardMouseCallback</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:WheelNumber">WheelNumber</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:WheelDirection">WheelDirection</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:MouseWheelCallback">MouseWheelCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WheelNumber">WheelNumber</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WheelDirection">WheelDirection</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:mouseWheelCallback">mouseWheelCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseWheelCallback">MouseWheelCallback</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:MotionCallback">MotionCallback</a> = <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:motionCallback">motionCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MotionCallback">MotionCallback</a>)</li><li class="src short"><a href="#v:passiveMotionCallback">passiveMotionCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MotionCallback">MotionCallback</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Crossing">Crossing</a> <ul class="subs"><li>= <a href="#v:WindowLeft">WindowLeft</a>  </li><li>| <a href="#v:WindowEntered">WindowEntered</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:CrossingCallback">CrossingCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Crossing">Crossing</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:crossingCallback">crossingCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:CrossingCallback">CrossingCallback</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:SpaceballMotion">SpaceballMotion</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:SpaceballRotation">SpaceballRotation</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ButtonIndex">ButtonIndex</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:SpaceballInput">SpaceballInput</a> <ul class="subs"><li>= <a href="#v:SpaceballMotion">SpaceballMotion</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballMotion">SpaceballMotion</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballMotion">SpaceballMotion</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballMotion">SpaceballMotion</a>  </li><li>| <a href="#v:SpaceballRotation">SpaceballRotation</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballRotation">SpaceballRotation</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballRotation">SpaceballRotation</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballRotation">SpaceballRotation</a>  </li><li>| <a href="#v:SpaceballButton">SpaceballButton</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:ButtonIndex">ButtonIndex</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:SpaceballCallback">SpaceballCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballInput">SpaceballInput</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:spaceballCallback">spaceballCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballCallback">SpaceballCallback</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:DialAndButtonBoxInput">DialAndButtonBoxInput</a> <ul class="subs"><li>= <a href="#v:DialAndButtonBoxButton">DialAndButtonBoxButton</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:ButtonIndex">ButtonIndex</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a>  </li><li>| <a href="#v:DialAndButtonBoxDial">DialAndButtonBoxDial</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialIndex">DialIndex</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:DialIndex">DialIndex</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DialAndButtonBoxCallback">DialAndButtonBoxCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialAndButtonBoxInput">DialAndButtonBoxInput</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:dialAndButtonBoxCallback">dialAndButtonBoxCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialAndButtonBoxCallback">DialAndButtonBoxCallback</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:TabletPosition">TabletPosition</a>  = <a href="#v:TabletPosition">TabletPosition</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:TabletInput">TabletInput</a> <ul class="subs"><li>= <a href="#v:TabletMotion">TabletMotion</a>  </li><li>| <a href="#v:TabletButton">TabletButton</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:ButtonIndex">ButtonIndex</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:TabletCallback">TabletCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletInput">TabletInput</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletPosition">TabletPosition</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:tabletCallback">tabletCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletCallback">TabletCallback</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:JoystickButtons">JoystickButtons</a>  = <a href="#v:JoystickButtons">JoystickButtons</a> {<ul class="subs"><li><a href="#v:joystickButtonA">joystickButtonA</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></li><li><a href="#v:joystickButtonB">joystickButtonB</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></li><li><a href="#v:joystickButtonC">joystickButtonC</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></li><li><a href="#v:joystickButtonD">joystickButtonD</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:JoystickPosition">JoystickPosition</a>  = <a href="#v:JoystickPosition">JoystickPosition</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:JoystickCallback">JoystickCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickButtons">JoystickButtons</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickPosition">JoystickPosition</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:joystickCallback">joystickCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickCallback">JoystickCallback</a>, <a href="Graphics-UI-GLUT-State.html#t:PollRate">PollRate</a>))</li></ul></div><div id="interface"><h1 id="g:1">Redisplay callbacks
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DisplayCallback" class="def">DisplayCallback</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#DisplayCallback" class="link">Source</a></p><div class="doc"><p>A display callback
</p></div></div><div class="top"><p class="src"><a name="v:displayCallback" class="def">displayCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DisplayCallback">DisplayCallback</a><a href="src/Graphics-UI-GLUT-Callbacks-Window.html#displayCallback" class="link">Source</a></p><div class="doc"><p>Controls the display callback for the <em>current window.</em> When GLUT determines
 that the normal plane for the window needs to be redisplayed, the display
 callback for the window is called. Before the callback, the <em>current window</em>
 is set to the window needing to be redisplayed and (if no overlay display
 callback is registered) the <em>layer in use</em> is set to the normal plane. The
 entire normal plane region should be redisplayed in response to the callback
 (this includes ancillary buffers if your program depends on their state).
</p><p>GLUT determines when the display callback should be triggered based on the
 window's redisplay state. The redisplay state for a window can be either set
 explicitly by calling <code><a href="Graphics-UI-GLUT-Window.html#t:postRedisplay">postRedisplay</a></code> or implicitly
 as the result of window damage reported by the window system. Multiple posted
 redisplays for a window are coalesced by GLUT to minimize the number of
 display callbacks called.
</p><p>When an overlay is established for a window, but there is no overlay display
 callback registered, the display callback is used for redisplaying both the
 overlay and normal plane (that is, it will be called if either the redisplay
 state or overlay redisplay state is set). In this case, the <em>layer in use</em> is
 not implicitly changed on entry to the display callback.
</p><p>See <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:overlayDisplayCallback">overlayDisplayCallback</a></code> to understand how distinct callbacks for the
 overlay and normal plane of a window may be established.
</p><p>When a window is created, no display callback exists for the window. It is
 the responsibility of the programmer to install a display callback for the
 window before the window is shown. A display callback must be registered for
 any window that is shown. If a window becomes displayed without a display
 callback being registered, a fatal error occurs. There is no way to
 &quot;deregister&quot; a display callback (though another callback routine can always
 be registered).
</p><p>Upon return from the display callback, the normal damaged state of the window
 (see <code><a href="Graphics-UI-GLUT-State.html#v:damaged">damaged</a></code>) is cleared. If there is no overlay
 display callback registered the overlay damaged state of the window (see
 <code><a href="Graphics-UI-GLUT-State.html#v:damaged">damaged</a></code>) is also cleared.
</p></div></div><div class="top"><p class="src"><a name="v:overlayDisplayCallback" class="def">overlayDisplayCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DisplayCallback">DisplayCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#overlayDisplayCallback" class="link">Source</a></p><div class="doc"><p>Controls the overlay display callback for the <em>current window.</em> The overlay
 display callback is functionally the same as the window's display callback
 except that the overlay display callback is used to redisplay the window's
 overlay.
</p><p>When GLUT determines that the overlay plane for the window needs to be
 redisplayed, the overlay display callback for the window is called. Before
 the callback, the <em>current window</em> is set to the window needing to be
 redisplayed and the <em>layer in use</em> is set to the overlay. The entire overlay
 region should be redisplayed in response to the callback (this includes
 ancillary buffers if your program depends on their state).
</p><p>GLUT determines when the overlay display callback should be triggered based
 on the window's overlay redisplay state. The overlay redisplay state for a
 window can be either set explicitly by calling
 <code><a href="Graphics-UI-GLUT-Overlay.html#t:postOverlayRedisplay">postOverlayRedisplay</a></code> or implicitly as the result
 of window damage reported by the window system. Multiple posted overlay
 redisplays for a window are coalesced by GLUT to minimize the number of
 overlay display callbacks called.
</p><p>Upon return from the overlay display callback, the overlay damaged state of
 the window (see <code><a href="Graphics-UI-GLUT-State.html#v:damaged">damaged</a></code>) is cleared.
</p><p>Initially there is no overlay display callback registered when an overlay is
 established. See <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:displayCallback">displayCallback</a></code> to understand how the display callback
 alone is used if an overlay display callback is not registered.
</p></div></div><h1 id="g:2">Reshape callback
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ReshapeCallback" class="def">ReshapeCallback</a> = <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#ReshapeCallback" class="link">Source</a></p><div class="doc"><p>A reshape callback
</p></div></div><div class="top"><p class="src"><a name="v:reshapeCallback" class="def">reshapeCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:ReshapeCallback">ReshapeCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#reshapeCallback" class="link">Source</a></p><div class="doc"><p>Controls the reshape callback for the <em>current window.</em> The reshape callback
 is triggered when a window is reshaped. A reshape callback is also triggered
 immediately before a window's first display callback after a window is
 created or whenever an overlay for the window is established. The parameter
 of the callback specifies the new window size in pixels. Before the callback,
 the <em>current window</em> is set to the window that has been reshaped.
</p><p>If a reshape callback is not registered for a window or <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:reshapeCallback">reshapeCallback</a></code> is
 set to <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#v:Nothing">Nothing</a></code> (to deregister a previously registered callback), the
 default reshape callback is used. This default callback will simply call
</p><pre>
 <code><a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:viewport">viewport</a></code> (<code><a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a></code> 0 0) (<code><a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a></code> <em>width</em> <em>height</em>)
</pre><p>on the normal plane (and on the overlay if one exists).
</p><p>If an overlay is established for the window, a single reshape callback is
 generated. It is the callback's responsibility to update both the normal
 plane and overlay for the window (changing the layer in use as necessary).
</p><p>When a top-level window is reshaped, subwindows are not reshaped. It is up to
 the GLUT program to manage the size and positions of subwindows within a
 top-level window. Still, reshape callbacks will be triggered for subwindows
 when their size is changed using <code><a href="Graphics-UI-GLUT-Window.html#t:windowSize">windowSize</a></code>.
</p></div></div><h1 id="g:3">Callbacks for visibility changes
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Visibility" class="def">Visibility</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#Visibility" class="link">Source</a></p><div class="doc"><p>The visibility state of the <em>current window</em>
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NotVisible" class="def">NotVisible</a></td><td class="doc"><p>No part of the <em>current window</em> is visible, i.e., until the
   window's visibility changes, all further rendering to the
   window is discarded.
</p></td></tr><tr><td class="src"><a name="v:Visible" class="def">Visible</a></td><td class="doc"><p>The <em>current window</em> is totally or partially visible. GLUT
   considers a window visible if any pixel of the window is
   visible or any pixel of any descendant window is visible on
   the screen.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Visibility" class="caption collapser" onclick="toggleSection('i:Visibility')">Instances</p><div id="section.i:Visibility" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Visibility">Visibility</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Visibility">Visibility</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Visibility">Visibility</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:VisibilityCallback" class="def">VisibilityCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Visibility">Visibility</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#VisibilityCallback" class="link">Source</a></p><div class="doc"><p>A visibility callback
</p></div></div><div class="top"><p class="src"><a name="v:visibilityCallback" class="def">visibilityCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:VisibilityCallback">VisibilityCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#visibilityCallback" class="link">Source</a></p><div class="doc"><p>Controls the visibility callback for the <em>current window.</em> The visibility
 callback for a window is called when the visibility of a window changes.
</p><p>If the visibility callback for a window is disabled and later re-enabled, the
 visibility status of the window is undefined; any change in window visibility
 will be reported, that is if you disable a visibility callback and re-enable
 the callback, you are guaranteed the next visibility change will be reported.
</p><p>Note that you can either use <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:visibilityCallback">visibilityCallback</a></code> or <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:windowStateCallback">windowStateCallback</a></code>,
 but not both, because the former is implemented via the latter.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:WindowState" class="def">WindowState</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#WindowState" class="link">Source</a></p><div class="doc"><p>The window state of the <em>current window</em>
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Unmapped" class="def">Unmapped</a></td><td class="doc"><p>The <em>current window</em> is unmapped.
</p></td></tr><tr><td class="src"><a name="v:FullyRetained" class="def">FullyRetained</a></td><td class="doc"><p>The <em>current window</em> is unobscured.
</p></td></tr><tr><td class="src"><a name="v:PartiallyRetained" class="def">PartiallyRetained</a></td><td class="doc"><p>The <em>current window</em> is partially obscured.
</p></td></tr><tr><td class="src"><a name="v:FullyCovered" class="def">FullyCovered</a></td><td class="doc"><p>The <em>current window</em> is fully obscured.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:WindowState" class="caption collapser" onclick="toggleSection('i:WindowState')">Instances</p><div id="section.i:WindowState" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WindowState">WindowState</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WindowState">WindowState</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WindowState">WindowState</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:WindowStateCallback" class="def">WindowStateCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WindowState">WindowState</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#WindowStateCallback" class="link">Source</a></p><div class="doc"><p>A window state callback
</p></div></div><div class="top"><p class="src"><a name="v:windowStateCallback" class="def">windowStateCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WindowStateCallback">WindowStateCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#windowStateCallback" class="link">Source</a></p><div class="doc"><p>Controls the window state callback for the
 <em>current window.</em> The window state callback for a window is called when the
 window state of a window changes.
</p><p>If the window state callback for a window is disabled and later re-enabled,
 the window state state of the window is undefined; any change in the window
 state will be reported, that is if you disable a window state callback and
 re-enable the callback, you are guaranteed the next window state change will
 be reported.
</p><p>Note that you can either use <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:visibilityCallback">visibilityCallback</a></code> or <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:windowStateCallback">windowStateCallback</a></code>,
 but not both, because the former is implemented via the latter.
</p></div></div><h1 id="g:4">Window close callback
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CloseCallback" class="def">CloseCallback</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#CloseCallback" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:closeCallback" class="def">closeCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:CloseCallback">CloseCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#closeCallback" class="link">Source</a></p></div><h1 id="g:5">Keyboard callback
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:KeyboardCallback" class="def">KeyboardCallback</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Char.html#t:Char">Char</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#KeyboardCallback" class="link">Source</a></p><div class="doc"><p>A keyboard callback
</p></div></div><div class="top"><p class="src"><a name="v:keyboardCallback" class="def">keyboardCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyboardCallback">KeyboardCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#keyboardCallback" class="link">Source</a></p><div class="doc"><p>Controls the keyboard callback for the <em>current window</em>. This is
 activated only when a key is pressed.
</p></div></div><div class="top"><p class="src"><a name="v:keyboardUpCallback" class="def">keyboardUpCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyboardCallback">KeyboardCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#keyboardUpCallback" class="link">Source</a></p><div class="doc"><p>Controls the keyboard callback for the <em>current window</em>. This is
 activated only when a key is released.
</p></div></div><h1 id="g:6">Special callback
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:SpecialCallback" class="def">SpecialCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialKey">SpecialKey</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#SpecialCallback" class="link">Source</a></p><div class="doc"><p>A special key callback
</p></div></div><div class="top"><p class="src"><a name="v:specialCallback" class="def">specialCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialCallback">SpecialCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#specialCallback" class="link">Source</a></p><div class="doc"><p>Controls the special key callback for the <em>current window</em>. This is
 activated only when a special key is pressed.
</p></div></div><div class="top"><p class="src"><a name="v:specialUpCallback" class="def">specialUpCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialCallback">SpecialCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#specialUpCallback" class="link">Source</a></p><div class="doc"><p>Controls the special key callback for the <em>current window</em>. This is
 activated only when a special key is released.
</p></div></div><h1 id="g:7">Mouse callback
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:MouseCallback" class="def">MouseCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseButton">MouseButton</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#MouseCallback" class="link">Source</a></p><div class="doc"><p>A mouse callback
</p></div></div><div class="top"><p class="src"><a name="v:mouseCallback" class="def">mouseCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseCallback">MouseCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#mouseCallback" class="link">Source</a></p><div class="doc"><p>Controls the mouse callback for the <em>current window</em>.
</p></div></div><h1 id="g:8">Keyboard and mouse input callback
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Key" class="def">Key</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#Key" class="link">Source</a></p><div class="doc"><p>A generalized view of keys
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Char" class="def">Char</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Char.html#t:Char">Char</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SpecialKey" class="def">SpecialKey</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialKey">SpecialKey</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MouseButton" class="def">MouseButton</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseButton">MouseButton</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Key" class="caption collapser" onclick="toggleSection('i:Key')">Instances</p><div id="section.i:Key" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Key">Key</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Key">Key</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Key">Key</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SpecialKey" class="def">SpecialKey</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#SpecialKey" class="link">Source</a></p><div class="doc"><p>Special keys
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:KeyF1" class="def">KeyF1</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF2" class="def">KeyF2</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF3" class="def">KeyF3</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF4" class="def">KeyF4</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF5" class="def">KeyF5</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF6" class="def">KeyF6</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF7" class="def">KeyF7</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF8" class="def">KeyF8</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF9" class="def">KeyF9</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF10" class="def">KeyF10</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF11" class="def">KeyF11</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyF12" class="def">KeyF12</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyLeft" class="def">KeyLeft</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyUp" class="def">KeyUp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyRight" class="def">KeyRight</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyDown" class="def">KeyDown</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyPageUp" class="def">KeyPageUp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyPageDown" class="def">KeyPageDown</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyHome" class="def">KeyHome</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyEnd" class="def">KeyEnd</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyInsert" class="def">KeyInsert</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyNumLock" class="def">KeyNumLock</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyBegin" class="def">KeyBegin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyDelete" class="def">KeyDelete</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:KeyUnknown" class="def">KeyUnknown</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SpecialKey" class="caption collapser" onclick="toggleSection('i:SpecialKey')">Instances</p><div id="section.i:SpecialKey" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialKey">SpecialKey</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialKey">SpecialKey</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpecialKey">SpecialKey</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:MouseButton" class="def">MouseButton</a>  <a href="src/Graphics-UI-GLUT-Types.html#MouseButton" class="link">Source</a></p><div class="doc"><p>Mouse buttons, including a wheel
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:LeftButton" class="def">LeftButton</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MiddleButton" class="def">MiddleButton</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RightButton" class="def">RightButton</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:WheelUp" class="def">WheelUp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:WheelDown" class="def">WheelDown</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AdditionalButton" class="def">AdditionalButton</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:MouseButton" class="caption collapser" onclick="toggleSection('i:MouseButton')">Instances</p><div id="section.i:MouseButton" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseButton">MouseButton</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseButton">MouseButton</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseButton">MouseButton</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:KeyState" class="def">KeyState</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#KeyState" class="link">Source</a></p><div class="doc"><p>The current state of a key or button
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Down" class="def">Down</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Up" class="def">Up</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:KeyState" class="caption collapser" onclick="toggleSection('i:KeyState')">Instances</p><div id="section.i:KeyState" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Modifiers" class="def">Modifiers</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#Modifiers" class="link">Source</a></p><div class="doc"><p>The state of the keyboard modifiers
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Modifiers" class="def">Modifiers</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:shift" class="def">shift</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ctrl" class="def">ctrl</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:alt" class="def">alt</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Modifiers" class="caption collapser" onclick="toggleSection('i:Modifiers')">Instances</p><div id="section.i:Modifiers" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Modifiers">Modifiers</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Modifiers">Modifiers</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Modifiers">Modifiers</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:KeyboardMouseCallback" class="def">KeyboardMouseCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Key">Key</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Modifiers">Modifiers</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#KeyboardMouseCallback" class="link">Source</a></p><div class="doc"><p>A keyboard/mouse callback
</p></div></div><div class="top"><p class="src"><a name="v:keyboardMouseCallback" class="def">keyboardMouseCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyboardMouseCallback">KeyboardMouseCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#keyboardMouseCallback" class="link">Source</a></p><div class="doc"><p>Controls the keyboard/mouse callback for the <em>current window.</em> The
 keyboard/mouse callback for a window is called when the state of a key or
 mouse button changes. The callback parameters indicate the new state of the
 key/button, the state of the keyboard modifiers, and the mouse location in
 window relative coordinates.
</p><p>Note that this is a convenience function that should not ordinarily be used
 in conjunction with <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:keyboardCallback">keyboardCallback</a></code>, <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:keyboardUpCallback">keyboardUpCallback</a></code>,
 <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:specialCallback">specialCallback</a></code>, <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:specialUpCallback">specialUpCallback</a></code>, or <code><a href="Graphics-UI-GLUT-Callbacks-Window.html#v:mouseCallback">mouseCallback</a></code>.
</p></div></div><h1 id="g:9">Mouse wheel callback
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:WheelNumber" class="def">WheelNumber</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a><a href="src/Graphics-UI-GLUT-Callbacks-Window.html#WheelNumber" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:WheelDirection" class="def">WheelDirection</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a><a href="src/Graphics-UI-GLUT-Callbacks-Window.html#WheelDirection" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:MouseWheelCallback" class="def">MouseWheelCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WheelNumber">WheelNumber</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:WheelDirection">WheelDirection</a> -&gt; <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#MouseWheelCallback" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:mouseWheelCallback" class="def">mouseWheelCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MouseWheelCallback">MouseWheelCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#mouseWheelCallback" class="link">Source</a></p><div class="doc"><p>(<em>freeglut only</em>) Controls the mouse wheel callback for the
 <em>current window.</em> The mouse wheel callback for a window is called when a
 mouse wheel is used and the wheel number is greater than or equal to
 <code><a href="Graphics-UI-GLUT-State.html#v:numMouseButtons">numMouseButtons</a></code>.
</p></div></div><h1 id="g:10">Mouse movement callbacks
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:MotionCallback" class="def">MotionCallback</a> = <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#MotionCallback" class="link">Source</a></p><div class="doc"><p>A motion callback
</p></div></div><div class="top"><p class="src"><a name="v:motionCallback" class="def">motionCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MotionCallback">MotionCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#motionCallback" class="link">Source</a></p><div class="doc"><p>Controls the motion callback for the <em>current window.</em> The motion callback
 for a window is called when the mouse moves within the window while one or
 more mouse buttons are pressed. The callback parameter indicates the mouse
 location in window relative coordinates.
</p></div></div><div class="top"><p class="src"><a name="v:passiveMotionCallback" class="def">passiveMotionCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:MotionCallback">MotionCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#passiveMotionCallback" class="link">Source</a></p><div class="doc"><p>Controls the passive motion callback for the <em>current window.</em> The passive
 motion callback for a window is called when the mouse moves within the window
 while <em>no</em> mouse buttons are pressed. The callback parameter indicates the
 mouse location in window relative coordinates.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Crossing" class="def">Crossing</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#Crossing" class="link">Source</a></p><div class="doc"><p>The relation between the mouse pointer and the <em>current window</em> has
 changed.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:WindowLeft" class="def">WindowLeft</a></td><td class="doc"><p>The mouse pointer has left the <em>current window.</em>
</p></td></tr><tr><td class="src"><a name="v:WindowEntered" class="def">WindowEntered</a></td><td class="doc"><p>The mouse pointer has entered the <em>current window.</em>
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Crossing" class="caption collapser" onclick="toggleSection('i:Crossing')">Instances</p><div id="section.i:Crossing" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Crossing">Crossing</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Crossing">Crossing</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Crossing">Crossing</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CrossingCallback" class="def">CrossingCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:Crossing">Crossing</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#CrossingCallback" class="link">Source</a></p><div class="doc"><p>An enter/leave callback
</p></div></div><div class="top"><p class="src"><a name="v:crossingCallback" class="def">crossingCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:CrossingCallback">CrossingCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#crossingCallback" class="link">Source</a></p><div class="doc"><p>Controls the mouse enter/leave callback for the <em>current window.</em> Note
 that some window systems may not generate accurate enter/leave callbacks.
</p><p><em>X Implementation Notes:</em> An X implementation of GLUT should generate
 accurate enter/leave callbacks.
</p></div></div><h1 id="g:11">Spaceball callback
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:SpaceballMotion" class="def">SpaceballMotion</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a><a href="src/Graphics-UI-GLUT-Callbacks-Window.html#SpaceballMotion" class="link">Source</a></p><div class="doc"><p>Translation of the Spaceball along one axis, normalized to be in the range
 of -1000 to +1000 inclusive
</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:SpaceballRotation" class="def">SpaceballRotation</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a><a href="src/Graphics-UI-GLUT-Callbacks-Window.html#SpaceballRotation" class="link">Source</a></p><div class="doc"><p>Rotation of the Spaceball along one axis, normalized to be in the range
 of -1800 .. +1800 inclusive
</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ButtonIndex" class="def">ButtonIndex</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a><a href="src/Graphics-UI-GLUT-Callbacks-Window.html#ButtonIndex" class="link">Source</a></p><div class="doc"><p>The index of a specific buttons of an input device.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SpaceballInput" class="def">SpaceballInput</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#SpaceballInput" class="link">Source</a></p><div class="doc"><p>The state of the Spaceball has changed.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SpaceballMotion" class="def">SpaceballMotion</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballMotion">SpaceballMotion</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballMotion">SpaceballMotion</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballMotion">SpaceballMotion</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SpaceballRotation" class="def">SpaceballRotation</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballRotation">SpaceballRotation</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballRotation">SpaceballRotation</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballRotation">SpaceballRotation</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SpaceballButton" class="def">SpaceballButton</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:ButtonIndex">ButtonIndex</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SpaceballInput" class="caption collapser" onclick="toggleSection('i:SpaceballInput')">Instances</p><div id="section.i:SpaceballInput" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballInput">SpaceballInput</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballInput">SpaceballInput</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballInput">SpaceballInput</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:SpaceballCallback" class="def">SpaceballCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballInput">SpaceballInput</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#SpaceballCallback" class="link">Source</a></p><div class="doc"><p>A SpaceballButton callback
</p></div></div><div class="top"><p class="src"><a name="v:spaceballCallback" class="def">spaceballCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:SpaceballCallback">SpaceballCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#spaceballCallback" class="link">Source</a></p><div class="doc"><p>Controls the Spaceball callback for the <em>current window.</em> The Spaceball
 callback for a window is called when the window has Spaceball input focus
 (normally, when the mouse is in the window) and the user generates Spaceball
 translations, rotations, or button presses. The number of available Spaceball
 buttons can be determined with <code><a href="Graphics-UI-GLUT-State.html#v:numSpaceballButtons">numSpaceballButtons</a></code>.
</p><p>Registering a Spaceball callback when a Spaceball device is not available has
 no effect and is not an error. In this case, no Spaceball callbacks will be
 generated.
</p></div></div><h1 id="g:12">Dial &amp; button box callback
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:DialAndButtonBoxInput" class="def">DialAndButtonBoxInput</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#DialAndButtonBoxInput" class="link">Source</a></p><div class="doc"><p>The dial &amp; button box state has changed.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:DialAndButtonBoxButton" class="def">DialAndButtonBoxButton</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:ButtonIndex">ButtonIndex</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DialAndButtonBoxDial" class="def">DialAndButtonBoxDial</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialIndex">DialIndex</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:DialAndButtonBoxInput" class="caption collapser" onclick="toggleSection('i:DialAndButtonBoxInput')">Instances</p><div id="section.i:DialAndButtonBoxInput" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialAndButtonBoxInput">DialAndButtonBoxInput</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialAndButtonBoxInput">DialAndButtonBoxInput</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialAndButtonBoxInput">DialAndButtonBoxInput</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DialIndex" class="def">DialIndex</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a><a href="src/Graphics-UI-GLUT-Callbacks-Window.html#DialIndex" class="link">Source</a></p><div class="doc"><p>The index of a specific dial of a dial and button box.
</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DialAndButtonBoxCallback" class="def">DialAndButtonBoxCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialAndButtonBoxInput">DialAndButtonBoxInput</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#DialAndButtonBoxCallback" class="link">Source</a></p><div class="doc"><p>A dial &amp; button box callback
</p></div></div><div class="top"><p class="src"><a name="v:dialAndButtonBoxCallback" class="def">dialAndButtonBoxCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:DialAndButtonBoxCallback">DialAndButtonBoxCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#dialAndButtonBoxCallback" class="link">Source</a></p><div class="doc"><p>Controls the dial &amp; button box callback for the <em>current window.</em> The dial
 &amp; button box button callback for a window is called when the window has dial
 &amp; button box input focus (normally, when the mouse is in the window) and the
 user generates dial &amp; button box button presses or dial changes. The number
 of available dial &amp; button box buttons and dials can be determined with
 <code><a href="Graphics-UI-GLUT-State.html#v:numDialsAndButtons">numDialsAndButtons</a></code>.
</p><p>Registering a dial &amp; button box callback when a dial &amp; button box device is
 not available is ineffectual and not an error. In this case, no dial &amp; button
 box button will be generated.
</p></div></div><h1 id="g:13">Tablet callback
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TabletPosition" class="def">TabletPosition</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#TabletPosition" class="link">Source</a></p><div class="doc"><p>Absolute tablet position, with coordinates normalized to be in the range of
 0 to 2000 inclusive
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TabletPosition" class="def">TabletPosition</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:TabletPosition" class="caption collapser" onclick="toggleSection('i:TabletPosition')">Instances</p><div id="section.i:TabletPosition" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletPosition">TabletPosition</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletPosition">TabletPosition</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletPosition">TabletPosition</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TabletInput" class="def">TabletInput</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#TabletInput" class="link">Source</a></p><div class="doc"><p>The table state has changed.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TabletMotion" class="def">TabletMotion</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:TabletButton" class="def">TabletButton</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:ButtonIndex">ButtonIndex</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:TabletInput" class="caption collapser" onclick="toggleSection('i:TabletInput')">Instances</p><div id="section.i:TabletInput" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletInput">TabletInput</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletInput">TabletInput</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletInput">TabletInput</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TabletCallback" class="def">TabletCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletInput">TabletInput</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletPosition">TabletPosition</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#TabletCallback" class="link">Source</a></p><div class="doc"><p>A tablet callback
</p></div></div><div class="top"><p class="src"><a name="v:tabletCallback" class="def">tabletCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:TabletCallback">TabletCallback</a>)<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#tabletCallback" class="link">Source</a></p><div class="doc"><p>Controls the tablet callback for the <em>current window.</em> The tablet callback
 for a window is called when the window has tablet input focus (normally, when
 the mouse is in the window) and the user generates tablet motion or button
 presses. The number of available tablet buttons can be determined with
 <code><a href="Graphics-UI-GLUT-State.html#v:numTabletButtons">numTabletButtons</a></code>.
</p><p>Registering a tablet callback when a tablet device is not available is
 ineffectual and not an error. In this case, no tablet callbacks will be
 generated.
</p></div></div><h1 id="g:14">Joystick callback
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:JoystickButtons" class="def">JoystickButtons</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#JoystickButtons" class="link">Source</a></p><div class="doc"><p>The state of the joystick buttons
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:JoystickButtons" class="def">JoystickButtons</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:joystickButtonA" class="def">joystickButtonA</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:joystickButtonB" class="def">joystickButtonB</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:joystickButtonC" class="def">joystickButtonC</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:joystickButtonD" class="def">joystickButtonD</a> :: <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:KeyState">KeyState</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:JoystickButtons" class="caption collapser" onclick="toggleSection('i:JoystickButtons')">Instances</p><div id="section.i:JoystickButtons" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickButtons">JoystickButtons</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickButtons">JoystickButtons</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickButtons">JoystickButtons</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:JoystickPosition" class="def">JoystickPosition</a>  <a href="src/Graphics-UI-GLUT-Callbacks-Window.html#JoystickPosition" class="link">Source</a></p><div class="doc"><p>Absolute joystick position, with coordinates normalized to be in the range
 of -1000 to 1000 inclusive. The signs of the three axes mean the following:
</p><ul><li> negative = left, positive = right
</li><li> negative = towards player, positive = away
</li><li> if available (e.g. rudder): negative = down, positive = up
</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:JoystickPosition" class="def">JoystickPosition</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:JoystickPosition" class="caption collapser" onclick="toggleSection('i:JoystickPosition')">Instances</p><div id="section.i:JoystickPosition" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickPosition">JoystickPosition</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickPosition">JoystickPosition</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Text-Show.html#t:Show">Show</a> <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickPosition">JoystickPosition</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:JoystickCallback" class="def">JoystickCallback</a> = <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickButtons">JoystickButtons</a> -&gt; <a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickPosition">JoystickPosition</a> -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#JoystickCallback" class="link">Source</a></p><div class="doc"><p>A joystick callback
</p></div></div><div class="top"><p class="src"><a name="v:joystickCallback" class="def">joystickCallback</a> :: <a href="/usr/share/doc/libghc-opengl-doc/html/Graphics-Rendering-OpenGL-GL-StateVar.html#t:SettableStateVar">SettableStateVar</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Graphics-UI-GLUT-Callbacks-Window.html#t:JoystickCallback">JoystickCallback</a>, <a href="Graphics-UI-GLUT-State.html#t:PollRate">PollRate</a>))<a href="src/Graphics-UI-GLUT-Callbacks-Window.html#joystickCallback" class="link">Source</a></p><div class="doc"><p>Controls the joystick callback for the <em>current window.</em> The joystick
 callback is called either due to polling of the joystick at the uniform timer
 interval specified (if &gt; 0) or in response to an explicit call of
 <code><a href="Graphics-UI-GLUT-DeviceControl.html#t:forceJoystickCallback">forceJoystickCallback</a></code>.
</p><p><em>X Implementation Notes:</em> Currently GLUT has no joystick support for X11.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>