开发者

freeGLUT keyboard input

I'm using GLUT (freeglut3) (v开发者_JAVA技巧ia the Haskell GLUT bindings).

import Graphics.UI.GLUT

handleKBMouse :: KeyboardMouseCallback
handleKBMouse key keyState mods mousePos = do
    print (key, keyState, mods, mousePos)

main :: IO ()
main = do
    getArgsAndInitialize
    createWindow "testTitle"
    keyboardMouseCallback $= Just handleKBMouse
    mainLoop

It seems that various important keys (e.g: Shift+Tab) do not call my callback. Also, "mods" doesn't describe the win-key, only Ctrl, Shift and Alt.

Having such limited access to keyboard input is a serious impediment for real application development. Am I doing anything wrong here or is just freeglut just crippled? Is GLUT crippled in general?


First, Windows traps the shift-tab sequence, so even if you work directly with Win32 you won't normally see it. Second, GLUT is intended to be portable, so unless you can expect to see the same key under Linux, MacOS, etc., chances are that GLUT won't even attempt to deal with it. Third, the GLUT spec was last updated a long time ago, so even if the win-key (or at least something similar) is pretty common now, if it wasn't 12 or 15 years ago, GLUT probably won't know about it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜