📄 glutcursor.cpp
字号:
/*********************************************************** * 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 <GL/glut.h>#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) { }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -