*/
void FGAPIENTRY glutSetCursor( int cursorID )
{
- freeglut_assert_ready;
- freeglut_assert_window;
+ freeglut_assert_ready; /* XXX WHY do we need the timer active for this? */
+ freeglut_assert_window;
#if TARGET_HOST_UNIX_X11
- /*
- * Open issues:
- * (a) GLUT_CURSOR_NONE doesn't do what it should. We can probably
- * build an empty pixmap for it, though, quite painlessly.
- * (b) Are we allocating resources, or causing X to do so?
- * If yes, we should arrange to deallocate!
- * (c) No error checking. Is that a problem?
- * (d) FULL_CROSSHAIR demotes to plain CROSSHAIR. Old GLUT allows
- * for this, but if there is a system that easily supports a full-
- * window (or full-screen) crosshair, we might consider it.
- * (e) Out-of-range cursor-types are ignored. Should we abort?
- * Print a warning message?
- */
+ /*
+ * Open issues:
+ * (a) GLUT_CURSOR_NONE doesn't do what it should. We can probably
+ * build an empty pixmap for it, though, quite painlessly.
+ * (b) Are we allocating resources, or causing X to do so?
+ * If yes, we should arrange to deallocate!
+ * (c) No error checking. Is that a problem?
+ * (d) FULL_CROSSHAIR demotes to plain CROSSHAIR. Old GLUT allows
+ * for this, but if there is a system that easily supports a full-
+ * window (or full-screen) crosshair, we might consider it.
+ * (e) Out-of-range cursor-types are ignored. Should we abort?
+ * Print a warning message?
+ */
{
Cursor cursor;
-#define MAP_CURSOR(a,b) case a: cursor = XCreateFontCursor( fgDisplay.Display, b ); break;
+
+#define MAP_CURSOR(a,b) \
+ case a: \
+ cursor = XCreateFontCursor( fgDisplay.Display, b ); \
+ break;
+
if( GLUT_CURSOR_FULL_CROSSHAIR == cursorID )
cursorID = GLUT_CURSOR_CROSSHAIR;
}
if( GLUT_CURSOR_INHERIT == cursorID )
- XUndefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle );
+ XUndefineCursor( fgDisplay.Display,
+ fgStructure.Window->Window.Handle );
else
- XDefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle, cursor );
+ XDefineCursor( fgDisplay.Display,
+ fgStructure.Window->Window.Handle, cursor );
}
#elif TARGET_HOST_WIN32
- /*
- * This is a temporary solution only...
- */
- /* Set the cursor AND change it for this window class. */
-# define MAP_CURSOR(a,b) case a: SetCursor( LoadCursor( NULL, b ) ); \
- SetClassLong(fgStructure.Window->Window.Handle,GCL_HCURSOR,(LONG)LoadCursor(NULL,b)); \
+ /*
+ * This is a temporary solution only...
+ */
+ /* Set the cursor AND change it for this window class. */
+# define MAP_CURSOR(a,b) \
+ case a: \
+ SetCursor( LoadCursor( NULL, b ) ); \
+ SetClassLong( fgStructure.Window->Window.Handle, \
+ GCL_HCURSOR, \
+ ( LONG )LoadCursor( NULL, b ) ); \
break;
+
/* Nuke the cursor AND change it for this window class. */
-# define ZAP_CURSOR(a,b) case a: SetCursor( NULL ); \
- SetClassLong(fgStructure.Window->Window.Handle,GCL_HCURSOR,(LONG)NULL); \
+# define ZAP_CURSOR(a,b) \
+ case a: \
+ SetCursor( NULL ); \
+ SetClassLong( fgStructure.Window->Window.Handle, \
+ GCL_HCURSOR, ( LONG )NULL ); \
break;
switch( cursorID )
MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW, IDC_ARROW );
MAP_CURSOR( GLUT_CURSOR_INFO, IDC_HELP );
MAP_CURSOR( GLUT_CURSOR_DESTROY, IDC_CROSS );
- MAP_CURSOR( GLUT_CURSOR_HELP, IDC_HELP );
+ MAP_CURSOR( GLUT_CURSOR_HELP, IDC_HELP );
MAP_CURSOR( GLUT_CURSOR_CYCLE, IDC_SIZEALL );
MAP_CURSOR( GLUT_CURSOR_SPRAY, IDC_CROSS );
- MAP_CURSOR( GLUT_CURSOR_WAIT, IDC_WAIT );
+ MAP_CURSOR( GLUT_CURSOR_WAIT, IDC_WAIT );
MAP_CURSOR( GLUT_CURSOR_TEXT, IDC_UPARROW );
MAP_CURSOR( GLUT_CURSOR_CROSSHAIR, IDC_CROSS );
- /* MAP_CURSOR( GLUT_CURSOR_NONE, IDC_NO ); */
+ /* MAP_CURSOR( GLUT_CURSOR_NONE, IDC_NO ); */
ZAP_CURSOR( GLUT_CURSOR_NONE, NULL );
default:
*/
void FGAPIENTRY glutWarpPointer( int x, int y )
{
- freeglut_assert_ready;
- freeglut_assert_window;
+ freeglut_assert_ready; /* XXX WHY do we need the timer active for this? */
+ freeglut_assert_window;
#if TARGET_HOST_UNIX_X11
- XWarpPointer(
+ XWarpPointer(
fgDisplay.Display,
None,
fgStructure.Window->Window.Handle,
0, 0, 0, 0,
x, y
- );
- XFlush( fgDisplay.Display );
+ );
+ XFlush( fgDisplay.Display ); /* XXX Is this really necessary? */
#elif TARGET_HOST_WIN32
- {
- POINT coords = { x, y };
- /*
- * ClientToScreen() translates {coords} for us.
- */
- ClientToScreen( fgStructure.Window->Window.Handle, &coords );
- SetCursorPos( coords.x, coords.y );
- }
+ {
+ POINT coords = { x, y };
+ /*
+ * ClientToScreen() translates {coords} for us.
+ */
+ ClientToScreen( fgStructure.Window->Window.Handle, &coords );
+ SetCursorPos( coords.x, coords.y );
+ }
#endif
}