123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- using System;
- using System.Globalization;
- using System.Text;
- using System.Threading;
- using Terminal.Gui;
- namespace UICatalog.Scenarios {
- [ScenarioMetadata (Name: "RuneWidthGreaterThanOne", Description: "Test rune width greater than one")]
- [ScenarioCategory ("Controls")]
- public class RuneWidthGreaterThanOne : Scenario {
- private Label _label;
- private TextField _text;
- private Button _button;
- private Label _labelR;
- private Label _labelV;
- private Window _win;
- private string _lastRunesUsed;
- public override void Init (ColorScheme colorScheme)
- {
- Application.Init ();
- var menu = new MenuBar (new MenuBarItem [] {
- new MenuBarItem ("Margin", new MenuItem [] {
- new MenuItem ("With margin", "", WithMargin),
- new MenuItem ("Without margin", "", WithoutMargin)
- }),
- new MenuBarItem ("Draw Margin Frame", new MenuItem [] {
- new MenuItem ("With draw", "", WithDrawMargin),
- new MenuItem ("Without draw", "", WithoutDrawMargin)
- }),
- new MenuBarItem ("Runes length", new MenuItem [] {
- new MenuItem ("Wide", "", WideRunes),
- new MenuItem ("Narrow", "", NarrowRunes),
- new MenuItem ("Mixed", "", MixedRunes)
- })
- });
- _label = new Label () {
- X = Pos.Center (),
- Y = 1,
- ColorScheme = new ColorScheme () {
- Normal = Colors.Base.Focus
- }
- };
- _text = new TextField () {
- X = Pos.Center (),
- Y = 3,
- Width = 20
- };
- _button = new Button () {
- X = Pos.Center (),
- Y = 5
- };
- _labelR = new Label () {
- X = Pos.AnchorEnd (30),
- Y = 18
- };
- _labelV = new Label () {
- TextDirection = TextDirection.TopBottom_LeftRight,
- X = Pos.AnchorEnd (30),
- Y = Pos.Bottom (_labelR)
- };
- _win = new Window () {
- X = 5,
- Y = 5,
- Width = Dim.Fill (22),
- Height = Dim.Fill (5)
- };
- _win.Add (_label, _text, _button, _labelR, _labelV);
- Application.Top.Add (menu, _win);
- WideRunes ();
- //NarrowRunes ();
- //MixedRunes ();
- Application.Run ();
- }
- private void UnsetClickedEvent ()
- {
- switch (_lastRunesUsed) {
- case "Narrow":
- _button.Clicked -= NarrowMessage;
- break;
- case "Mixed":
- _button.Clicked -= MixedMessage;
- break;
- case "Wide":
- _button.Clicked -= WideMessage;
- break;
- }
- }
- private void MixedMessage ()
- {
- MessageBox.Query ("Say Hello 你", $"Hello {_text.Text}", "Ok");
- }
- private void NarrowMessage ()
- {
- MessageBox.Query ("Say Hello", $"Hello {_text.Text}", "Ok");
- }
- private void WideMessage ()
- {
- MessageBox.Query ("こんにちはと言う", $"こんにちは {_text.Text}", "Ok");
- }
- private void MixedRunes ()
- {
- UnsetClickedEvent ();
- _label.Text = "Enter your name 你:";
- _text.Text = "gui.cs 你:";
- _button.Text = "Say Hello 你";
- _button.Clicked += MixedMessage;
- _labelR.X = Pos.AnchorEnd (21);
- _labelR.Y = 18;
- _labelR.Text = "This is a test text 你";
- _labelV.X = Pos.AnchorEnd (21);
- _labelV.Y = Pos.Bottom (_labelR);
- _labelV.Text = "This is a test text 你";
- _win.Title = "HACC Demo 你";
- _lastRunesUsed = "Mixed";
- Application.Refresh ();
- }
- private void NarrowRunes ()
- {
- UnsetClickedEvent ();
- _label.Text = "Enter your name:";
- _text.Text = "gui.cs";
- _button.Text = "Say Hello";
- _button.Clicked += NarrowMessage;
- _labelR.X = Pos.AnchorEnd (19);
- _labelR.Y = 18;
- _labelR.Text = "This is a test text";
- _labelV.X = Pos.AnchorEnd (19);
- _labelV.Y = Pos.Bottom (_labelR);
- _labelV.Text = "This is a test text";
- _win.Title = "HACC Demo";
- _lastRunesUsed = "Narrow";
- Application.Refresh ();
- }
- private void WideRunes ()
- {
- UnsetClickedEvent ();
- _label.Text = "あなたの名前を入力してください:";
- _text.Text = "ティラミス";
- _button.Text = "こんにちはと言う";
- _button.Clicked += WideMessage;
- _labelR.X = Pos.AnchorEnd (29);
- _labelR.Y = 18;
- _labelR.Text = "あなたの名前を入力してください";
- _labelV.X = Pos.AnchorEnd (29);
- _labelV.Y = Pos.Bottom (_labelR);
- _labelV.Text = "あなたの名前を入力してください";
- _win.Title = "デモエムポンズ";
- _lastRunesUsed = "Wide";
- Application.Refresh ();
- }
- private void WithoutDrawMargin ()
- {
- _win.Border.BorderStyle = BorderStyle.None;
- _win.Border.DrawMarginFrame = false;
- }
- private void WithDrawMargin ()
- {
- _win.Border.DrawMarginFrame = true;
- _win.Border.BorderStyle = BorderStyle.Single;
- }
- private void WithoutMargin ()
- {
- _win.X = 0;
- _win.Y = 0;
- _win.Width = Dim.Fill ();
- _win.Height = Dim.Fill ();
- }
- private void WithMargin ()
- {
- _win.X = 5;
- _win.Y = 5;
- _win.Width = Dim.Fill (22);
- _win.Height = Dim.Fill (5);
- }
- public override void Run ()
- {
- }
- }
- }
|