void MenuFunc(int value) { KeyboardFunc((unsigned char) value, 0, 0); }
void CGLWindow_X::Execute() { m_created = true; Select(); ReshapeFunc( m_width, m_height ); XMapWindow( m_display, m_window ); XEvent event; while ( true ) { XNextEvent( m_display, &event ); LockForTerminate(); switch ( event.type ) { case Expose: DisplayFunc(); break; case ConfigureNotify: ReshapeFunc( event.xconfigure.width, event.xconfigure.height ); break; case KeyPress: { KEY_VK key = XKeyEventToKeyVK( &(event.xkey) ); KeyboardFunc( KEYDIRECT_DOWN, KEY_MOD_NONE, key ); } break; case KeyRelease: { KEY_VK key = XKeyEventToKeyVK( &(event.xkey) ); KeyboardFunc( KEYDIRECT_UP, KEY_MOD_NONE, key ); } break; case ButtonPress: { int x = event.xbutton.x; int y = event.xbutton.y; MB button = XButtonToMB( event.xbutton.button ); MouseButtonFunc( MB_DOWN, x, y, button ); } break; case ButtonRelease: { int x = event.xbutton.x; int y = event.xbutton.y; MB button = XButtonToMB( event.xbutton.button ); MouseButtonFunc( MB_DOWN, x, y, button ); } break; case MotionNotify: { int x = event.xmotion.x; int y = event.xmotion.y; MouseMotionFunc( x, y ); } break; case CreateNotify: // XCreateWindowEvent xcreatewindow; break; case DestroyNotify: DestroyWindowFunc(); return; default: break; }; UnLockForTerminate(); }; }