Beispiel #1
0
 public static bool KeyDown(Control control, NSEvent theEvent)
 {
     if (control != null)
     {
         char keyChar = !string.IsNullOrEmpty(theEvent.Characters) ? theEvent.Characters [0] : '\0';
         Key  key     = KeyMap.MapKey(theEvent.KeyCode);
         KeyPressEventArgs kpea;
         Key modifiers = KeyMap.GetModifiers(theEvent);
         key |= modifiers;
         //Console.WriteLine("\t\tkeymap.Add({2}, Key.{0}({1})); {3}", theEvent.Characters, (int)keyChar, theEvent.KeyCode, theEvent.ModifierFlags);
         //Console.WriteLine("\t\t{0} {1} {2}", key & Key.ModifierMask, key & Key.KeyMask, (NSKey)keyChar);
         if (key != Key.None)
         {
             if (((modifiers & ~(Key.Shift | Key.Alt)) == 0))
             {
                 kpea = new KeyPressEventArgs(key, keyChar);
             }
             else
             {
                 kpea = new KeyPressEventArgs(key);
             }
         }
         else
         {
             kpea = new KeyPressEventArgs(key, keyChar);
         }
         control.OnKeyDown(kpea);
         return(kpea.Handled);
     }
     return(false);
 }