From 663631725ee2d633d9ec5821cd48953ffd188d00 Mon Sep 17 00:00:00 2001 From: ftrapero Date: Tue, 27 Jun 2017 12:08:38 +0200 Subject: Squashed 'nx-X11/extras/Mesa_6.4.2/' content from commit 475b1f7 git-subtree-dir: nx-X11/extras/Mesa_6.4.2 git-subtree-split: 475b1f7b56fa36ef4f3b22a749f88a98ddc0d502 --- src/glut/beos/glutCursor.cpp | 90 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/glut/beos/glutCursor.cpp (limited to 'src/glut/beos/glutCursor.cpp') diff --git a/src/glut/beos/glutCursor.cpp b/src/glut/beos/glutCursor.cpp new file mode 100644 index 000000000..3081fff44 --- /dev/null +++ b/src/glut/beos/glutCursor.cpp @@ -0,0 +1,90 @@ +/*********************************************************** + * Copyright (C) 1997, Be Inc. Copyright (C) 1999, Jake Hamby. + * + * This program is freely distributable without licensing fees + * and is provided without guarantee or warrantee expressed or + * implied. This program is -not- in the public domain. + * + * + * FILE: glutCursor.cpp + * + * DESCRIPTION: code for handling custom mouse cursors + ***********************************************************/ + +/*********************************************************** + * Headers + ***********************************************************/ +#include +#include "glutint.h" +#include "glutState.h" +#include "glutCursors.h" + +static const unsigned char *cursorTable[] = { + XC_arrow, /* GLUT_CURSOR_RIGHT_ARROW */ + XC_top_left_arrow, /* GLUT_CURSOR_LEFT_ARROW */ + XC_hand1, /* GLUT_CURSOR_INFO */ + XC_pirate, /* GLUT_CURSOR_DESTROY */ + XC_question_arrow, /* GLUT_CURSOR_HELP */ + XC_exchange, /* GLUT_CURSOR_CYCLE */ + XC_spraycan, /* GLUT_CURSOR_SPRAY */ + XC_watch, /* GLUT_CURSOR_WAIT */ + XC_xterm, /* GLUT_CURSOR_TEXT */ + XC_crosshair, /* GLUT_CURSOR_CROSSHAIR */ + XC_sb_v_double_arrow, /* GLUT_CURSOR_UP_DOWN */ + XC_sb_h_double_arrow, /* GLUT_CURSOR_LEFT_RIGHT */ + XC_top_side, /* GLUT_CURSOR_TOP_SIDE */ + XC_bottom_side, /* GLUT_CURSOR_BOTTOM_SIDE */ + XC_left_side, /* GLUT_CURSOR_LEFT_SIDE */ + XC_right_side, /* GLUT_CURSOR_RIGHT_SIDE */ + XC_top_left_corner, /* GLUT_CURSOR_TOP_LEFT_CORNER */ + XC_top_right_corner, /* GLUT_CURSOR_TOP_RIGHT_CORNER */ + XC_bottom_right_corner, /* GLUT_CURSOR_BOTTOM_RIGHT_CORNER */ + XC_bottom_left_corner, /* GLUT_CURSOR_BOTTOM_LEFT_CORNER */ +}; + +/*********************************************************** + * FUNCTION: glutSetCursor (4.13) + * + * DESCRIPTION: set a new mouse cursor for current window + ***********************************************************/ +void glutSetCursor(int cursor) { + gState.currentWindow->Window()->Lock(); + gState.currentWindow->cursor = cursor; + __glutSetCursor(cursor); + gState.currentWindow->Window()->Unlock(); +} + +/*********************************************************** + * FUNCTION: __glutSetCursor + * + * DESCRIPTION: the actual cursor changing routine + ***********************************************************/ +void __glutSetCursor(int cursor) { + int realcursor = cursor; + if (cursor < 0 || cursor > GLUT_CURSOR_BOTTOM_LEFT_CORNER) { + switch(cursor) { + case GLUT_CURSOR_INHERIT: + return; // don't change cursor + case GLUT_CURSOR_NONE: + // this hides the cursor until the user moves the mouse + // change it to HideCursor() AT YOUR OWN RISK! + be_app->ObscureCursor(); + return; + case GLUT_CURSOR_FULL_CROSSHAIR: + realcursor = GLUT_CURSOR_CROSSHAIR; + break; + default: + __glutWarning("unknown cursor\n"); + return; + } + } + be_app->SetCursor(cursorTable[realcursor]); +} + +/*********************************************************** + * FUNCTION: glutWarpPointer (x.xx) + * + * DESCRIPTION: move the mouse pointer to a new location + * (note: can't do this in BeOS!) + ***********************************************************/ +void glutWarpPointer(int x, int y) { } -- cgit v1.2.3