X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTKeypress.java;h=20db8bb267ebc43389f2d900c49aa5b3462d22d1;hb=HEAD;hp=2470bdfba892196348016f85f0633489413352c5;hpb=d36057dfab8def933a64be042b039d76708ac5ba;p=fanfix.git diff --git a/src/jexer/TKeypress.java b/src/jexer/TKeypress.java index 2470bdf..20db8bb 100644 --- a/src/jexer/TKeypress.java +++ b/src/jexer/TKeypress.java @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (C) 2017 Kevin Lamonte + * Copyright (C) 2019 Kevin Lamonte * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -31,7 +31,7 @@ package jexer; /** * This class represents keystrokes. */ -public final class TKeypress { +public class TKeypress { // ------------------------------------------------------------------------ // Constants -------------------------------------------------------------- @@ -174,7 +174,6 @@ public final class TKeypress { */ public static final int ESC = 43; - // Special "no-key" keypress, used to ignore undefined keystrokes public static final TKeypress kbNoKey = new TKeypress(true, TKeypress.NONE, ' ', false, false, false); @@ -488,6 +487,26 @@ public final class TKeypress { 0, 'y', true, false, false); public static final TKeypress kbAltZ = new TKeypress(false, 0, 'z', true, false, false); + public static final TKeypress kbAlt0 = new TKeypress(false, + 0, '0', true, false, false); + public static final TKeypress kbAlt1 = new TKeypress(false, + 0, '1', true, false, false); + public static final TKeypress kbAlt2 = new TKeypress(false, + 0, '2', true, false, false); + public static final TKeypress kbAlt3 = new TKeypress(false, + 0, '3', true, false, false); + public static final TKeypress kbAlt4 = new TKeypress(false, + 0, '4', true, false, false); + public static final TKeypress kbAlt5 = new TKeypress(false, + 0, '5', true, false, false); + public static final TKeypress kbAlt6 = new TKeypress(false, + 0, '6', true, false, false); + public static final TKeypress kbAlt7 = new TKeypress(false, + 0, '7', true, false, false); + public static final TKeypress kbAlt8 = new TKeypress(false, + 0, '8', true, false, false); + public static final TKeypress kbAlt9 = new TKeypress(false, + 0, '9', true, false, false); public static final TKeypress kbCtrlA = new TKeypress(false, 0, 'A', false, true, false); public static final TKeypress kbCtrlB = new TKeypress(false, @@ -593,6 +612,41 @@ public final class TKeypress { public static final TKeypress kbAltShiftZ = new TKeypress(false, 0, 'Z', true, false, true); + public static final TKeypress kbAltShiftHome = new TKeypress(true, + TKeypress.HOME, ' ', true, false, true); + public static final TKeypress kbAltShiftEnd = new TKeypress(true, + TKeypress.END, ' ', true, false, true); + public static final TKeypress kbAltShiftPgUp = new TKeypress(true, + TKeypress.PGUP, ' ', true, false, true); + public static final TKeypress kbAltShiftPgDn = new TKeypress(true, + TKeypress.PGDN, ' ', true, false, true); + public static final TKeypress kbAltShiftUp = new TKeypress(true, + TKeypress.UP, ' ', true, false, true); + public static final TKeypress kbAltShiftDown = new TKeypress(true, + TKeypress.DOWN, ' ', true, false, true); + public static final TKeypress kbAltShiftLeft = new TKeypress(true, + TKeypress.LEFT, ' ', true, false, true); + public static final TKeypress kbAltShiftRight = new TKeypress(true, + TKeypress.RIGHT, ' ', true, false, true); + + public static final TKeypress kbCtrlShiftHome = new TKeypress(true, + TKeypress.HOME, ' ', false, true, true); + public static final TKeypress kbCtrlShiftEnd = new TKeypress(true, + TKeypress.END, ' ', false, true, true); + public static final TKeypress kbCtrlShiftPgUp = new TKeypress(true, + TKeypress.PGUP, ' ', false, true, true); + public static final TKeypress kbCtrlShiftPgDn = new TKeypress(true, + TKeypress.PGDN, ' ', false, true, true); + public static final TKeypress kbCtrlShiftUp = new TKeypress(true, + TKeypress.UP, ' ', false, true, true); + public static final TKeypress kbCtrlShiftDown = new TKeypress(true, + TKeypress.DOWN, ' ', false, true, true); + public static final TKeypress kbCtrlShiftLeft = new TKeypress(true, + TKeypress.LEFT, ' ', false, true, true); + public static final TKeypress kbCtrlShiftRight = new TKeypress(true, + TKeypress.RIGHT, ' ', false, true, true); + + /** * Backspace as ^H. */ @@ -603,7 +657,7 @@ public final class TKeypress { * Backspace as ^?. */ public static final TKeypress kbBackspaceDel = new TKeypress(false, - 0, (char)0x7F, false, false, false); + 0, (char) 0x7F, false, false, false); // ------------------------------------------------------------------------ // Variables -------------------------------------------------------------- @@ -637,7 +691,7 @@ public final class TKeypress { /** * The character received. */ - private char ch; + private int ch; // ------------------------------------------------------------------------ // Constructors ----------------------------------------------------------- @@ -653,7 +707,7 @@ public final class TKeypress { * @param ctrl if true, CTRL was pressed with this keystroke * @param shift if true, SHIFT was pressed with this keystroke */ - public TKeypress(final boolean isKey, final int fnKey, final char ch, + public TKeypress(final boolean isKey, final int fnKey, final int ch, final boolean alt, final boolean ctrl, final boolean shift) { this.isFunctionKey = isKey; @@ -718,7 +772,7 @@ public final class TKeypress { * * @return the character (only valid if isKey is false) */ - public char getChar() { + public int getChar() { return ch; } @@ -797,6 +851,23 @@ public final class TKeypress { */ @Override public String toString() { + // Special case: Enter is " " + if (equals(kbEnter)) { + return "\u25C0\u2500\u2518"; + } + + // Special case: Space is "Space" + if (equals(kbSpace)) { + return "Space"; + } + + if (equals(kbShiftLeft)) { + return "Shift+\u2190"; + } + if (equals(kbShiftRight)) { + return "Shift+\u2192"; + } + if (isFunctionKey) { switch (keyCode) { case F1: