X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=progs%2Fdemos%2FResizer%2FResizer.cpp;h=f56d826637ae807dddbae3b5214dbc695b2430cf;hb=7ff5f34c5ec3b44e3bc6a022122fc101ed8f584f;hp=163123f8d31cd3012cfdf3d04c69e5269626db8d;hpb=99d53f15a4216240088132f6af9cb194b519b1cc;p=freeglut diff --git a/progs/demos/Resizer/Resizer.cpp b/progs/demos/Resizer/Resizer.cpp index 163123f..f56d826 100644 --- a/progs/demos/Resizer/Resizer.cpp +++ b/progs/demos/Resizer/Resizer.cpp @@ -194,6 +194,27 @@ void SampleKeyboard( unsigned char cChar, int nMouseX, int nMouseY ) glutTimerFunc(2000, UnhideTimer, nWindow); } glutHideWindow(); + break; + + case 'p': + case 'P': + if (nChildWindow!=-1 && cChar=='p') /* Capital P always changes pointer for the main window*/ + { + glutSetWindow(nChildWindow); + if (glutGet(GLUT_WINDOW_CURSOR)==GLUT_CURSOR_TOP_SIDE) + glutSetCursor(GLUT_CURSOR_RIGHT_ARROW); + else + glutSetCursor(GLUT_CURSOR_TOP_SIDE); + } + else + { + glutSetWindow(nWindow); + if (glutGet(GLUT_WINDOW_CURSOR)==GLUT_CURSOR_CYCLE) + glutSetCursor(GLUT_CURSOR_RIGHT_ARROW); + else + glutSetCursor(GLUT_CURSOR_CYCLE); + } + break; default: break; @@ -255,6 +276,7 @@ void WindowStatus(int state) void Redisplay(void) { int win = glutGetWindow(); + int viewport[4]; if (win==nWindow) { @@ -271,6 +293,14 @@ void Redisplay(void) glClear(GL_COLOR_BUFFER_BIT); DrawQuad(); + if (win==nWindow) + { + glColor3f(1, 1, 0); + glGetIntegerv(GL_VIEWPORT, viewport); + glRasterPos2i(2, -glutBitmapHeight(GLUT_BITMAP_9_BY_15)+3+viewport[3]); + glutBitmapString(GLUT_BITMAP_9_BY_15, (unsigned char*)"press f/r/m/d/c/i/h/p"); + } + glutSwapBuffers(); glutPostWindowRedisplay(win); } @@ -304,7 +334,7 @@ void Timer(int unused) width, height, x ,y, x-border, - y-border-caption); + y-caption); else printf("child window %dx%d, top-left of client at: (%d,%d), relative to parent\n", width, height, @@ -350,4 +380,4 @@ int main(int argc, char* argv[]) printf("glutMainLoop returned\n"); return EXIT_SUCCESS; -} \ No newline at end of file +}