Ejemplo n.º 1
0
        static void OnKeyUp(char key, GLUTWrapper.SpecialKey specialKey, GLUTWrapper.ModifierKey modifiers)
        {
            Noesis.Key noesisKey = GetNoesisKey(key, specialKey);
            if (noesisKey != Noesis.Key.None)
            {
                _view.KeyUp(noesisKey);
            }

            ProcessModifiers(modifiers);
        }
Ejemplo n.º 2
0
        static Noesis.Key GetNoesisKey(char key, GLUTWrapper.SpecialKey specialKey)
        {
            switch (specialKey)
            {
            case GLUTWrapper.SpecialKey.F1: return(Noesis.Key.F1);

            case GLUTWrapper.SpecialKey.F2: return(Noesis.Key.F2);

            case GLUTWrapper.SpecialKey.F3: return(Noesis.Key.F3);

            case GLUTWrapper.SpecialKey.F4: return(Noesis.Key.F4);

            case GLUTWrapper.SpecialKey.F5: return(Noesis.Key.F5);

            case GLUTWrapper.SpecialKey.F6: return(Noesis.Key.F6);

            case GLUTWrapper.SpecialKey.F7: return(Noesis.Key.F7);

            case GLUTWrapper.SpecialKey.F8: return(Noesis.Key.F8);

            case GLUTWrapper.SpecialKey.F9: return(Noesis.Key.F9);

            case GLUTWrapper.SpecialKey.F10: return(Noesis.Key.F10);

            case GLUTWrapper.SpecialKey.F11: return(Noesis.Key.F11);

            case GLUTWrapper.SpecialKey.F12: return(Noesis.Key.F12);

            case GLUTWrapper.SpecialKey.PageUp: return(Noesis.Key.Prior);

            case GLUTWrapper.SpecialKey.PageDown: return(Noesis.Key.Next);

            case GLUTWrapper.SpecialKey.Home: return(Noesis.Key.Home);

            case GLUTWrapper.SpecialKey.End: return(Noesis.Key.End);

            case GLUTWrapper.SpecialKey.Insert: return(Noesis.Key.Insert);

            case GLUTWrapper.SpecialKey.Left: return(Noesis.Key.Left);

            case GLUTWrapper.SpecialKey.Right: return(Noesis.Key.Right);

            case GLUTWrapper.SpecialKey.Up: return(Noesis.Key.Up);

            case GLUTWrapper.SpecialKey.Down: return(Noesis.Key.Down);

            default: break;
            }

            switch (key)
            {
            case '\n':
            case '\r': return(Noesis.Key.Return);

            case '\t': return(Noesis.Key.Tab);

            case '\b': return(Noesis.Key.Back);

            case ' ': return(Noesis.Key.Space);

            case (char)0x01: return(Noesis.Key.A);

            case (char)0x03: return(Noesis.Key.C);

            case (char)0x16: return(Noesis.Key.V);

            case (char)0x18: return(Noesis.Key.X);

            case (char)0x7F: return(Noesis.Key.Delete);

            default: break;
            }

            if (key >= 'a' && key <= 'z')
            {
                return((Noesis.Key)((int)Noesis.Key.A + (int)key - 'a'));
            }
            if (key >= 'A' && key <= 'Z')
            {
                return((Noesis.Key)((int)Noesis.Key.A + (int)key - 'A'));
            }

            if (key >= '0' && key <= '9')
            {
                return((Noesis.Key)((int)Noesis.Key.D0 + (int)key - '0'));
            }

            return(Noesis.Key.None);
        }