Beispiel #1
0
        // This version is used by the CommandManager to track the keystrokes the user has hit for binding lookups.
        public static KeyboardShortcut[] AccelsFromKey(Gdk.EventKey raw, out bool complete)
        {
            KeyboardShortcut[] shortcuts;
            Gdk.ModifierType   modifier;
            Gdk.Key            key;

            GtkWorkarounds.MapKeys(raw, out key, out modifier, out shortcuts);
            complete = !KeyIsModifier(key);

            return(shortcuts);
        }
Beispiel #2
0
        protected override bool OnKeyPressEvent(EventKey evnt)
        {
            Gdk.Key            key;
            Gdk.ModifierType   mod;
            KeyboardShortcut[] accels;
            GtkWorkarounds.MapKeys(evnt, out key, out mod, out accels);

            switch (accels [0].Key)
            {
            case Gdk.Key.Left:
            case Gdk.Key.KP_Left:
                LeftItem();
                break;

            case Gdk.Key.Right:
            case Gdk.Key.KP_Right:
                RightItem();
                break;

            case Gdk.Key.Up:
            case Gdk.Key.KP_Up:
                PrevItem(false);
                break;

            case Gdk.Key.Down:
            case Gdk.Key.KP_Down:
                NextItem(false);
                break;

            case Gdk.Key.Tab:
                if ((accels [0].Modifier & ModifierType.ShiftMask) == 0)
                {
                    NextItem(true);
                }
                else
                {
                    PrevItem(true);
                }
                break;

            case Gdk.Key.Return:
            case Gdk.Key.KP_Enter:
            case Gdk.Key.ISO_Enter:
                OnRequestClose(new RequestActionEventArgs(true));
                break;

            case Gdk.Key.Escape:
                OnRequestClose(new RequestActionEventArgs(false));
                break;
            }
            return(base.OnKeyPressEvent(evnt));
        }
		// This version is used by the KeyBindingsPanel to display the keystrokes that the user has hit.
		public static string AccelLabelFromKey (Gdk.EventKey raw, out bool complete)
		{
			KeyboardShortcut[] shortcuts;
			Gdk.ModifierType modifier;
			Gdk.Key key;
			
			GtkWorkarounds.MapKeys (raw, out key, out modifier, out shortcuts);
			bool keyIsModifier = KeyIsModifier (key);
			complete = !keyIsModifier;
			
			// The first shortcut is the fully decomposed version
			string accel = ModifierToString (shortcuts[0].Modifier);
			if (keyIsModifier)
				return accel + ModifierKeyToString (shortcuts[0].Key);
			
			return accel + KeyToString (shortcuts[0].Key);
		}
Beispiel #4
0
        protected override bool OnKeyReleaseEvent(Gdk.EventKey evnt)
        {
            if (initialKey.IsEmpty)
            {
                Gdk.Key             key;
                Gdk.ModifierType    mod;
                KeyboardShortcut [] accels;
                GtkWorkarounds.MapKeys(evnt, out key, out mod, out accels);
                initialKey = new KeyboardShortcut(key, mod);
            }

            var releaseMods = GtkWorkarounds.KeysForMod(initialKey.Modifier);

            if ((releaseMods.Length == 0 && (evnt.Key == Gdk.Key.Control_L || evnt.Key == Gdk.Key.Control_R)) ||
                releaseMods.Contains(evnt.Key))
            {
                OnRequestClose(new RequestActionEventArgs(true));
            }
            return(base.OnKeyReleaseEvent(evnt));
        }