Re-indentation style changes from John.
There should be no alterations to how the code performs. (I modified how the X11 section of the set-cursor code is indented to slightly better match (IMHO) the rest of his changes.) git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@254 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
6096e031d5
commit
12bdb86d17
@ -35,7 +35,7 @@
|
|||||||
#include "freeglut_internal.h"
|
#include "freeglut_internal.h"
|
||||||
|
|
||||||
#if TARGET_HOST_UNIX_X11
|
#if TARGET_HOST_UNIX_X11
|
||||||
#include <X11/cursorfont.h>
|
#include <X11/cursorfont.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -57,30 +57,31 @@
|
|||||||
*/
|
*/
|
||||||
void FGAPIENTRY glutSetCursor( int cursorID )
|
void FGAPIENTRY glutSetCursor( int cursorID )
|
||||||
{
|
{
|
||||||
freeglut_assert_ready;
|
freeglut_assert_ready;
|
||||||
freeglut_assert_window;
|
freeglut_assert_window;
|
||||||
|
|
||||||
#if TARGET_HOST_UNIX_X11
|
#if TARGET_HOST_UNIX_X11
|
||||||
/*
|
/*
|
||||||
* Open issues:
|
* Open issues:
|
||||||
* (a) GLUT_CURSOR_NONE doesn't do what it should. We can probably
|
* (a) GLUT_CURSOR_NONE doesn't do what it should. We can probably
|
||||||
* build an empty pixmap for it, though, quite painlessly.
|
* build an empty pixmap for it, though, quite painlessly.
|
||||||
* (b) Are we allocating resources, or causing X to do so?
|
* (b) Are we allocating resources, or causing X to do so?
|
||||||
* If yes, we should arrange to deallocate!
|
* If yes, we should arrange to deallocate!
|
||||||
* (c) No error checking. Is that a problem?
|
* (c) No error checking. Is that a problem?
|
||||||
* (d) FULL_CROSSHAIR demotes to plain CROSSHAIR. Old GLUT allows
|
* (d) FULL_CROSSHAIR demotes to plain CROSSHAIR. Old GLUT allows
|
||||||
* for this, but if there is a system that easily supports a full-
|
* for this, but if there is a system that easily supports a full-
|
||||||
* window (or full-screen) crosshair, we might consider it.
|
* window (or full-screen) crosshair, we might consider it.
|
||||||
* (e) Out-of-range cursor-types are ignored. Should we abort?
|
* (e) Out-of-range cursor-types are ignored. Should we abort?
|
||||||
* Print a warning message?
|
* Print a warning message?
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
Cursor cursor;
|
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 )
|
if( GLUT_CURSOR_FULL_CROSSHAIR == cursorID )
|
||||||
cursorID = GLUT_CURSOR_CROSSHAIR;
|
cursorID = GLUT_CURSOR_CROSSHAIR;
|
||||||
switch( cursorID )
|
|
||||||
{
|
switch( cursorID )
|
||||||
|
{
|
||||||
MAP_CURSOR( GLUT_CURSOR_RIGHT_ARROW, XC_right_ptr);
|
MAP_CURSOR( GLUT_CURSOR_RIGHT_ARROW, XC_right_ptr);
|
||||||
MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW, XC_left_ptr);
|
MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW, XC_left_ptr);
|
||||||
MAP_CURSOR( GLUT_CURSOR_INFO, XC_hand1);
|
MAP_CURSOR( GLUT_CURSOR_INFO, XC_hand1);
|
||||||
@ -102,24 +103,24 @@ void FGAPIENTRY glutSetCursor( int cursorID )
|
|||||||
MAP_CURSOR( GLUT_CURSOR_BOTTOM_RIGHT_CORNER, XC_bottom_right_corner);
|
MAP_CURSOR( GLUT_CURSOR_BOTTOM_RIGHT_CORNER, XC_bottom_right_corner);
|
||||||
MAP_CURSOR( GLUT_CURSOR_BOTTOM_LEFT_CORNER, XC_bottom_left_corner);
|
MAP_CURSOR( GLUT_CURSOR_BOTTOM_LEFT_CORNER, XC_bottom_left_corner);
|
||||||
MAP_CURSOR( GLUT_CURSOR_NONE, XC_bogosity);
|
MAP_CURSOR( GLUT_CURSOR_NONE, XC_bogosity);
|
||||||
case GLUT_CURSOR_INHERIT:
|
case GLUT_CURSOR_INHERIT:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if( GLUT_CURSOR_INHERIT == cursorID )
|
|
||||||
XUndefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle );
|
|
||||||
else
|
|
||||||
XDefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle, cursor );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( GLUT_CURSOR_INHERIT == cursorID )
|
||||||
|
XUndefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle );
|
||||||
|
else
|
||||||
|
XDefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle, cursor );
|
||||||
|
}
|
||||||
|
|
||||||
#elif TARGET_HOST_WIN32
|
#elif TARGET_HOST_WIN32
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a temporary solution only...
|
* This is a temporary solution only...
|
||||||
*/
|
*/
|
||||||
/* Set the cursor AND change it for this window class. */
|
/* Set the cursor AND change it for this window class. */
|
||||||
# define MAP_CURSOR(a,b) case a: SetCursor( LoadCursor( NULL, b ) ); \
|
# define MAP_CURSOR(a,b) case a: SetCursor( LoadCursor( NULL, b ) ); \
|
||||||
SetClassLong(fgStructure.Window->Window.Handle,GCL_HCURSOR,(LONG)LoadCursor(NULL,b)); \
|
SetClassLong(fgStructure.Window->Window.Handle,GCL_HCURSOR,(LONG)LoadCursor(NULL,b)); \
|
||||||
break;
|
break;
|
||||||
@ -148,7 +149,7 @@ void FGAPIENTRY glutSetCursor( int cursorID )
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fgStructure.Window->State.Cursor = cursorID;
|
fgStructure.Window->State.Cursor = cursorID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -156,33 +157,32 @@ void FGAPIENTRY glutSetCursor( int cursorID )
|
|||||||
*/
|
*/
|
||||||
void FGAPIENTRY glutWarpPointer( int x, int y )
|
void FGAPIENTRY glutWarpPointer( int x, int y )
|
||||||
{
|
{
|
||||||
freeglut_assert_ready;
|
freeglut_assert_ready;
|
||||||
freeglut_assert_window;
|
freeglut_assert_window;
|
||||||
|
|
||||||
#if TARGET_HOST_UNIX_X11
|
#if TARGET_HOST_UNIX_X11
|
||||||
|
|
||||||
XWarpPointer(
|
XWarpPointer(
|
||||||
fgDisplay.Display,
|
fgDisplay.Display,
|
||||||
None,
|
None,
|
||||||
fgStructure.Window->Window.Handle,
|
fgStructure.Window->Window.Handle,
|
||||||
0, 0, 0, 0,
|
0, 0, 0, 0,
|
||||||
x, y
|
x, y
|
||||||
);
|
);
|
||||||
XFlush( fgDisplay.Display );
|
XFlush( fgDisplay.Display );
|
||||||
|
|
||||||
#elif TARGET_HOST_WIN32
|
#elif TARGET_HOST_WIN32
|
||||||
|
|
||||||
{
|
{
|
||||||
POINT coords = { x, y };
|
POINT coords = { x, y };
|
||||||
/*
|
/*
|
||||||
* ClientToScreen() translates {coords} for us.
|
* ClientToScreen() translates {coords} for us.
|
||||||
*/
|
*/
|
||||||
ClientToScreen( fgStructure.Window->Window.Handle, &coords );
|
ClientToScreen( fgStructure.Window->Window.Handle, &coords );
|
||||||
SetCursorPos( coords.x, coords.y );
|
SetCursorPos( coords.x, coords.y );
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*** END OF FILE ***/
|
/*** END OF FILE ***/
|
||||||
|
Reference in New Issue
Block a user