Browse Source

Adds a better keyup/keydown demo to demo.cs (#395)

* Revert "Drop NuGet restore"

This reverts commit 5c7a0d05f077755943ec66e6a82db890a24cd056.

* Revert "Revert "Drop NuGet restore""

This reverts commit 2dc5fce8654ffeb6f3e570b0bdefcc6a5b6a6d2b.

* merge

* better keyup/down demo
Charlie Kindel 5 years ago
parent
commit
8b26240741
1 changed files with 29 additions and 19 deletions
  1. 29 19
      Example/demo.cs

+ 29 - 19
Example/demo.cs

@@ -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);
-		Application.Run (container);
-	}
+		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);
 
-	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}";
+		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);
 	}
-#endregion
+	#endregion
 
 	public static Label ml;
 	public static MenuBar menu;