glutcursor.cpp

来自「mesa-6.5-minigui源码」· C++ 代码 · 共 91 行

CPP
91
字号
/*********************************************************** *      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 + =
减小字号Ctrl + -
显示快捷键?