Я использую GLUT (freeglut3) (через привязки Haskell GLUT).freeGLUT ввод клавиатуры
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
Кажется, что различные важные клавиши (например, Shift + Tab) не вызывают мой обратный вызов. Кроме того, «моды» не описывают win-key, только Ctrl, Shift и Alt.
Наличие такого ограниченного доступа к клавиатуре является серьезным препятствием для реальной разработки приложений. Я делаю что-то не так здесь или просто нелепо, просто искалечен? Является ли GLUT калекой вообще?
Я использовал этот код с Ubuntu, а не Windows. Я не думаю, что Windows ловушки «shift + Tab». Если GLUT знает только о вещах, существовавших 12 лет назад, разве это не калечащее ограничение? – Peaker
Упс - это alt + tab, что ловушки Windows; Я извиняюсь. ИМО, о единственном действительном использовании для GLUT - это такие вещи, как тестирование и/или демонстрация. Я сомневаюсь, что я действительно даже * считаю * использовать его в коде для доставки клиенту (за исключением, возможно, чего-то вроде макета, который никогда не предназначался для реального использования). –
Я вижу. Я сам начинаю формировать это мнение :-) Вопрос в том, какая библиотека, независимая от оконной системы, для устройств ввода? SDL является ближайшим, я видел, но он имеет проблемы с OS X, по крайней мере, когда привязки Haskell используются. – Peaker