X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=progs%2Fdemos%2FResizer%2FResizer.cpp;h=28350228ce10f77cb7b9f2a93fb45f400d03d880;hb=56cc35535901ef071bf8acab59ba176355ee3e0e;hp=0ee64bacfedf3488bdb554201ff9fade73f06cd9;hpb=36f909a7edc5a953ccc17b95cca5776161cbc4c6;p=freeglut diff --git a/progs/demos/Resizer/Resizer.cpp b/progs/demos/Resizer/Resizer.cpp index 0ee64ba..2835022 100644 --- a/progs/demos/Resizer/Resizer.cpp +++ b/progs/demos/Resizer/Resizer.cpp @@ -14,6 +14,7 @@ void SampleKeyboard( unsigned char cChar, int nMouseX, int nMouseY ); void Redisplay(); void Reshape(int width, int height); void Position(int x, int y); +void WindowStatus(int state); @@ -31,6 +32,12 @@ void DrawQuad() glEnd(); } +void UnhideTimer(int window) +{ + glutSetWindow(window); + glutShowWindow(); +} + void SampleKeyboard( unsigned char cChar, int nMouseX, int nMouseY ) { switch (cChar) @@ -119,6 +126,7 @@ void SampleKeyboard( unsigned char cChar, int nMouseX, int nMouseY ) glutDisplayFunc( Redisplay ); glutReshapeFunc( Reshape ); glutPositionFunc( Position ); + glutWindowStatusFunc( WindowStatus ); } else { @@ -133,6 +141,26 @@ void SampleKeyboard( unsigned char cChar, int nMouseX, int nMouseY ) break; + case 'i': + case 'I': + glutIconifyWindow(); + break; + + + case 'h': + case 'H': + if (nChildWindow!=-1 && cChar=='h') /* Capital H always hides the main window*/ + { + glutSetWindow(nChildWindow); + glutTimerFunc(2000, UnhideTimer, nChildWindow); + } + else + { + glutSetWindow(nWindow); + glutTimerFunc(2000, UnhideTimer, nWindow); + } + glutHideWindow(); + default: break; } @@ -172,6 +200,12 @@ void Position(int x, int y) x, y); } +void WindowStatus(int state) +{ + int win = glutGetWindow(); + printf("windowstatus (win %i): %i\n",win,state); +} + void Redisplay(void) { int win = glutGetWindow(); @@ -228,8 +262,8 @@ void Timer(int unused) nWidth, nHeight, nPosX ,nPosY); - /* (re)set the timer callback and ask glut to call it in 1 second */ - glutTimerFunc(300, Timer, 0); + /* (re)set the timer callback and ask glut to call it in 500 ms */ + glutTimerFunc(500, Timer, 0); } @@ -259,6 +293,7 @@ int main(int argc, char* argv[]) glutDisplayFunc( Redisplay ); glutReshapeFunc( Reshape ); glutPositionFunc( Position ); + glutWindowStatusFunc( WindowStatus ); glutTimerFunc(300, Timer, 0);