mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Adds a better keyup/keydown demo to demo.cs (#395)
* Revert "Drop NuGet restore" This reverts commit5c7a0d05f0. * Revert "Revert "Drop NuGet restore"" This reverts commit2dc5fce865. * merge * better keyup/down demo
This commit is contained in:
@@ -417,29 +417,39 @@ static class Demo {
|
||||
private static void OnKeyDownUpDemo ()
|
||||
{
|
||||
var container = new Dialog (
|
||||
"OnKeyDown & OnKeyUp demo", 50, 20,
|
||||
new Button ("Ok", is_default: true) { Clicked = () => { Application.RequestStop (); } },
|
||||
new Button ("Cancel") { Clicked = () => { Application.RequestStop (); } });
|
||||
"OnKeyDown & OnKeyUp demo", 80, 20,
|
||||
new Button ("Close") { Clicked = () => { Application.RequestStop (); } }) {
|
||||
Width = Dim.Fill (),
|
||||
Height = Dim.Fill (),
|
||||
};
|
||||
|
||||
var kl = new Label (new Rect (3, 3, 40, 1), "Keyboard: ");
|
||||
container.OnKeyDown += (KeyEvent keyEvent) => KeyUpDown (keyEvent, kl, "Down");
|
||||
container.OnKeyUp += (KeyEvent keyEvent) => KeyUpDown (keyEvent, kl, "Up");
|
||||
container.Add (kl);
|
||||
var list = new List<string> ();
|
||||
var listView = new ListView (list) {
|
||||
X = 0,
|
||||
Y = 0,
|
||||
Width = Dim.Fill () - 1,
|
||||
Height = Dim.Fill () - 2,
|
||||
};
|
||||
listView.ColorScheme = Colors.TopLevel;
|
||||
container.Add (listView);
|
||||
|
||||
void KeyUpDown (KeyEvent keyEvent, string updown)
|
||||
{
|
||||
if ((keyEvent.Key & Key.CtrlMask) != 0) {
|
||||
list.Add ($"Key{updown,-4}: Ctrl ");
|
||||
} else if ((keyEvent.Key & Key.AltMask) != 0) {
|
||||
list.Add ($"Key{updown,-4}: Alt ");
|
||||
} else {
|
||||
list.Add ($"Key{updown,-4}: {(((uint)keyEvent.KeyValue & (uint)Key.CharMask) > 26 ? $"{(char)keyEvent.KeyValue}" : $"{keyEvent.Key}")}");
|
||||
}
|
||||
listView.MoveDown ();
|
||||
}
|
||||
|
||||
container.OnKeyDown += (KeyEvent keyEvent) => KeyUpDown (keyEvent, "Down");
|
||||
container.OnKeyUp += (KeyEvent keyEvent) => KeyUpDown (keyEvent, "Up");
|
||||
Application.Run (container);
|
||||
}
|
||||
|
||||
private static void KeyUpDown (KeyEvent keyEvent, Label kl, string updown)
|
||||
{
|
||||
kl.TextColor = Colors.TopLevel.Normal;
|
||||
if ((keyEvent.Key & Key.CtrlMask) != 0) {
|
||||
kl.Text = $"Keyboard: Ctrl Key{updown}";
|
||||
} else if ((keyEvent.Key & Key.AltMask) != 0) {
|
||||
kl.Text = $"Keyboard: Alt Key{updown}";
|
||||
} else {
|
||||
kl.Text = $"Keyboard: {(char)keyEvent.KeyValue} Key{updown}";
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
public static Label ml;
|
||||
public static MenuBar menu;
|
||||
|
||||
Reference in New Issue
Block a user