X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_main.c;h=06da108511dff5eaa50c73af1f4d8342a72f7ee1;hb=a630da4d7b24b4147120facf3f7a6a6839d31fb5;hp=3e3a344c0c158abe6601503b20e6bb004fdd47e8;hpb=a7b26eabcdc0e509aa60cb1a385ab16717963f75;p=freeglut diff --git a/src/freeglut_main.c b/src/freeglut_main.c index 3e3a344..06da108 100644 --- a/src/freeglut_main.c +++ b/src/freeglut_main.c @@ -62,8 +62,22 @@ struct GXKeyList { short vkStart; POINT ptStart; }; +/*__declspec(dllimport) struct GXKeyList GXGetDefaultKeys(int iOptions); +__declspec(dllimport) int GXOpenInput(); +#include "my_gx.h"*/ + extern void wince_GetDefaultKeys(void* nData, int iOptions); extern void wince_OpenInput(); + +/*void wince_GetDefaultKeys(void* nData, int iOptions) +{ + *(struct GXKeyList*)nData = GXGetDefaultKeys(iOptions); +} +void wince_OpenInput() +{ + GXOpenInput(); +}*/ + #endif #ifndef MAX @@ -157,7 +171,7 @@ static void fghReshapeWindowByHandle ( SFG_WindowHandleType handle, SWP_NOZORDER ); } -#endif //TARGET_HOST_WINCE +#endif /* TARGET_HOST_WINCE */ /* * XXX Should update {window->State.OldWidth, window->State.OldHeight} @@ -290,7 +304,7 @@ static void fghcbCheckJoystickPolls( SFG_Window *window, { #if !TARGET_HOST_WINCE fgJoystickPollWindow( window ); -#endif //!TARGET_HOST_WINCE +#endif /* !TARGET_HOST_WINCE */ window->State.JoystickLastPoll = checkTime; } @@ -1285,9 +1299,9 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, ReleaseDC( window->Window.Handle, window->Window.Device ); #if TARGET_HOST_WINCE - // Take over button handling - wince_OpenInput(); -#endif //TARGET_HOST_WINCE + // Take over button handling + wince_OpenInput(); +#endif /* TARGET_HOST_WINCE */ break; case WM_SIZE: @@ -1305,7 +1319,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, #else window->State.Width = LOWORD(lParam); window->State.Height = HIWORD(lParam); -#endif //TARGET_HOST_WINCE +#endif /* TARGET_HOST_WINCE */ } break; @@ -1405,7 +1419,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, #else window->State.MouseX = LOWORD( lParam ); window->State.MouseY = HIWORD( lParam ); -#endif //TARGET_HOST_WINCE +#endif /* TARGET_HOST_WINCE */ if ( window->ActiveMenu ) { @@ -1445,7 +1459,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, #else window->State.MouseX = LOWORD( lParam ); window->State.MouseY = HIWORD( lParam ); -#endif //TARGET_HOST_WINCE +#endif /* TARGET_HOST_WINCE */ switch( uMsg ) { @@ -1488,7 +1502,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, if( button == GLUT_RIGHT_BUTTON ) button = GLUT_LEFT_BUTTON; } -#endif //!TARGET_HOST_WINCE +#endif /* !TARGET_HOST_WINCE */ if( button == -1 ) return DefWindowProc( hWnd, uMsg, lParam, wParam ); @@ -1650,7 +1664,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, { #if TARGET_HOST_WINCE struct GXKeyList gxKeyList; -#endif //TARGET_HOST_WINCE +#endif /* TARGET_HOST_WINCE */ int keypress = -1; POINT mouse_pos ; @@ -1708,27 +1722,27 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, } #if TARGET_HOST_WINCE - if(!(lParam & 0x40000000)) // Prevent auto-repeat - { - wince_GetDefaultKeys(&gxKeyList, 0x03); - - if(wParam==(unsigned)gxKeyList.vkRight) - keypress = GLUT_KEY_RIGHT; - else if(wParam==(unsigned)gxKeyList.vkLeft) - keypress = GLUT_KEY_LEFT; - else if(wParam==(unsigned)gxKeyList.vkUp) - keypress = GLUT_KEY_UP; - else if(wParam==(unsigned)gxKeyList.vkDown) - keypress = GLUT_KEY_DOWN; - else if(wParam==(unsigned)gxKeyList.vkA) - keypress = GLUT_KEY_F1; - else if(wParam==(unsigned)gxKeyList.vkB) - keypress = GLUT_KEY_F2; - else if(wParam==(unsigned)gxKeyList.vkC) - keypress = GLUT_KEY_F3; - else if(wParam==(unsigned)gxKeyList.vkStart) - keypress = GLUT_KEY_F4; - } + if(!(lParam & 0x40000000)) // Prevent auto-repeat + { + wince_GetDefaultKeys(&gxKeyList, 0x03); + + if(wParam==(unsigned)gxKeyList.vkRight) + keypress = GLUT_KEY_RIGHT; + else if(wParam==(unsigned)gxKeyList.vkLeft) + keypress = GLUT_KEY_LEFT; + else if(wParam==(unsigned)gxKeyList.vkUp) + keypress = GLUT_KEY_UP; + else if(wParam==(unsigned)gxKeyList.vkDown) + keypress = GLUT_KEY_DOWN; + else if(wParam==(unsigned)gxKeyList.vkA) + keypress = GLUT_KEY_F1; + else if(wParam==(unsigned)gxKeyList.vkB) + keypress = GLUT_KEY_F2; + else if(wParam==(unsigned)gxKeyList.vkC) + keypress = GLUT_KEY_F3; + else if(wParam==(unsigned)gxKeyList.vkStart) + keypress = GLUT_KEY_F4; + } #endif if( keypress != -1 ) @@ -1812,7 +1826,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, ( (char)wParam, window->State.MouseX, window->State.MouseY ) ); -#endif //!TARGET_HOST_WINCE +#endif /* !TARGET_HOST_WINCE */ } } @@ -1952,7 +1966,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, break ; } } -#endif //!TARGET_HOST_WINCE +#endif /* !TARGET_HOST_WINCE */ /* We need to pass the message on to the operating system as well */ lRet = DefWindowProc( hWnd, uMsg, wParam, lParam );