123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- using System.Collections.Generic;
- using System.IO;
- using System.Text;
- using Terminal.Gui;
- namespace UICatalog.Scenarios;
- [ScenarioMetadata ("Unicode", "Tries to test Unicode in all controls (#204)")]
- [ScenarioCategory ("Text and Formatting")]
- [ScenarioCategory ("Controls")]
- public class UnicodeInMenu : Scenario
- {
- public override void Setup ()
- {
- var unicode =
- "Τὴ γλῶσσα μοῦ ἔδωσαν ἑλληνικὴ\nτὸ σπίτι φτωχικὸ στὶς ἀμμουδιὲς τοῦ Ὁμήρου.\nΜονάχη ἔγνοια ἡ γλῶσσα μου στὶς ἀμμουδιὲς τοῦ Ὁμήρου.";
- var gitString =
- $"gui.cs 糊 (hú) {
- CM.Glyphs.IdenticalTo
- } {
- CM.Glyphs.DownArrow
- }18 {
- CM.Glyphs.UpArrow
- }10 {
- CM.Glyphs.VerticalFourDots
- }1 {
- CM.Glyphs.HorizontalEllipsis
- }";
- var menu = new MenuBar
- {
- Menus =
- [
- new (
- "_Файл",
- new MenuItem []
- {
- new (
- "_Создать",
- "Creates new file",
- null
- ),
- new ("_Открыть", "", null),
- new ("Со_хранить", "", null),
- new (
- "_Выход",
- "",
- () => Application.RequestStop ()
- )
- }
- ),
- new (
- "_Edit",
- new MenuItem []
- {
- new ("_Copy", "", null), new ("C_ut", "", null),
- new ("_糊", "hú (Paste)", null)
- }
- )
- ]
- };
- Top.Add (menu);
- var statusBar = new StatusBar (
- new StatusItem []
- {
- new (
- Application.QuitKey,
- $"{Application.QuitKey} Выход",
- () => Application.RequestStop ()
- ),
- new (KeyCode.Null, "~F2~ Создать", null),
- new (KeyCode.Null, "~F3~ Со_хранить", null)
- }
- );
- Top.Add (statusBar);
- var label = new Label { X = 0, Y = 1, Text = "Label:" };
- Win.Add (label);
- var testlabel = new Label
- {
- X = 20,
- Y = Pos.Y (label),
- Width = Dim.Percent (50),
- Text = gitString
- };
- Win.Add (testlabel);
- label = new() { X = Pos.X (label), Y = Pos.Bottom (label) + 1, Text = "Label (CanFocus):" };
- Win.Add (label);
- var sb = new StringBuilder ();
- sb.Append ('e');
- sb.Append ('\u0301');
- sb.Append ('\u0301');
- testlabel = new()
- {
- X = 20,
- Y = Pos.Y (label),
- Width = Dim.Percent (50),
- CanFocus = true,
- HotKeySpecifier = new ('&'),
- Text = $"Should be [e with two accents, but isn't due to #2616]: [{sb}]"
- };
- Win.Add (testlabel);
- label = new() { X = Pos.X (label), Y = Pos.Bottom (label) + 1, Text = "Button:" };
- Win.Add (label);
- var button = new Button { X = 20, Y = Pos.Y (label), Text = "A123456789♥♦♣♠JQK" };
- Win.Add (button);
- label = new() { X = Pos.X (label), Y = Pos.Bottom (label) + 1, Text = "CheckBox:" };
- Win.Add (label);
- var checkBox = new CheckBox
- {
- X = 20,
- Y = Pos.Y (label),
- Width = Dim.Percent (50),
- Height = 1,
- Text = gitString
- };
- var checkBoxRight = new CheckBox
- {
- X = 20,
- Y = Pos.Bottom (checkBox),
- Width = Dim.Percent (50),
- Height = 1,
- TextAlignment = Alignment.End,
- Text = $"End - {gitString}"
- };
- Win.Add (checkBox, checkBoxRight);
- label = new() { X = Pos.X (label), Y = Pos.Bottom (checkBoxRight) + 1, Text = "ComboBox:" };
- Win.Add (label);
- var comboBox = new ComboBox { X = 20, Y = Pos.Y (label), Width = Dim.Percent (50) };
- comboBox.SetSource (new List<string> { gitString, "Со_хранить" });
- Win.Add (comboBox);
- comboBox.Text = gitString;
- label = new() { X = Pos.X (label), Y = Pos.Bottom (label) + 2, Text = "HexView:" };
- Win.Add (label);
- var hexView = new HexView (new MemoryStream (Encoding.ASCII.GetBytes (gitString + " Со_хранить")))
- {
- X = 20, Y = Pos.Y (label), Width = Dim.Percent (60), Height = 5
- };
- Win.Add (hexView);
- label = new() { X = Pos.X (label), Y = Pos.Bottom (hexView) + 1, Text = "ListView:" };
- Win.Add (label);
- var listView = new ListView
- {
- X = 20,
- Y = Pos.Y (label),
- Width = Dim.Percent (60),
- Height = 3,
- Source = new ListWrapper (
- new List<string> { "item #1", gitString, "Со_хранить", unicode }
- )
- };
- Win.Add (listView);
- label = new() { X = Pos.X (label), Y = Pos.Bottom (listView) + 1, Text = "RadioGroup:" };
- Win.Add (label);
- var radioGroup = new RadioGroup
- {
- X = 20,
- Y = Pos.Y (label),
- Width = Dim.Percent (60),
- RadioLabels = new [] { "item #1", gitString, "Со_хранить", "𝔽𝕆𝕆𝔹𝔸ℝ" }
- };
- Win.Add (radioGroup);
- label = new() { X = Pos.X (label), Y = Pos.Bottom (radioGroup) + 1, Text = "TextField:" };
- Win.Add (label);
- var textField = new TextField
- {
- X = 20, Y = Pos.Y (label), Width = Dim.Percent (60), Text = gitString + " = Со_хранить"
- };
- Win.Add (textField);
- label = new() { X = Pos.X (label), Y = Pos.Bottom (textField) + 1, Text = "TextView:" };
- Win.Add (label);
- var textView = new TextView
- {
- X = 20,
- Y = Pos.Y (label),
- Width = Dim.Percent (60),
- Height = 5,
- Text = unicode
- };
- Win.Add (textView);
- }
- }
|