//using System; //using System.Collections.Generic; //using System.Diagnostics; //using Terminal.Gui; //namespace UICatalog.Scenarios { // [ScenarioMetadata (Name: "ASCIICustomButtonTest", Description: "ASCIICustomButton sample")] // [ScenarioCategory ("Controls")] // public class ASCIICustomButtonTest : Scenario { // private static bool smallerWindow; // private ScrollViewTestWindow scrollViewTestWindow; // private MenuItem miSmallerWindow; // public override void Init (ColorScheme colorScheme) // { // Application.Init (); // scrollViewTestWindow = new ScrollViewTestWindow (); // var menu = new MenuBar (new MenuBarItem [] { // new MenuBarItem("Window Size", new MenuItem [] { // miSmallerWindow = new MenuItem ("Smaller Window", "", ChangeWindowSize) { // CheckType = MenuItemCheckStyle.Checked // }, // null, // new MenuItem("Quit", "",() => Application.RequestStop(),null,null, Key.Q | Key.CtrlMask) // }) // }); // Application.Top.Add (menu, scrollViewTestWindow); // Application.Run (); // } // private void ChangeWindowSize () // { // smallerWindow = (bool)(miSmallerWindow.Checked = !miSmallerWindow.Checked); // scrollViewTestWindow.Dispose (); // Application.Top.Remove (scrollViewTestWindow); // scrollViewTestWindow = new ScrollViewTestWindow (); // Application.Top.Add (scrollViewTestWindow); // } // public override void Run () // { // } // public class ASCIICustomButton : Button { // public string Description => $"Description of: {id}"; // public event Action PointerEnter; // private Label fill; // private FrameView border; // private string id; // public ASCIICustomButton (string text, Pos x, Pos y, int width, int height) : base (text) // { // CustomInitialize ("", text, x, y, width, height); // } // public ASCIICustomButton (string id, string text, Pos x, Pos y, int width, int height) : base (text) // { // CustomInitialize (id, text, x, y, width, height); // } // private void CustomInitialize (string id, string text, Pos x, Pos y, int width, int height) // { // this.id = id; // X = x; // Y = y; // Frame = new Rect { // Width = width, // Height = height // }; // border = new FrameView () { // Width = width, // Height = height // }; // AutoSize = false; // var fillText = new System.Text.StringBuilder (); // for (int i = 0; i < Bounds.Height; i++) { // if (i > 0) { // fillText.AppendLine (""); // } // for (int j = 0; j < Bounds.Width; j++) { // fillText.Append ("█"); // } // } // fill = new Label (fillText.ToString ()) { // Visible = false, // CanFocus = false // }; // var title = new Label (text) { // X = Pos.Center (), // Y = Pos.Center (), // }; // border.MouseClick += This_MouseClick; // //border.Subviews [0].MouseClick += This_MouseClick; // fill.MouseClick += This_MouseClick; // title.MouseClick += This_MouseClick; // Add (border, fill, title); // } // private void This_MouseClick (MouseEventArgs obj) // { // OnMouseEvent (obj.MouseEvent); // } // public override bool OnMouseEvent (MouseEvent mouseEvent) // { // Debug.WriteLine ($"{mouseEvent.Flags}"); // if (mouseEvent.Flags == MouseFlags.Button1Clicked) { // if (!HasFocus && SuperView != null) { // if (!SuperView.HasFocus) { // SuperView.SetFocus (); // } // SetFocus (); // SetNeedsDisplay (); // } // OnClicked (); // return true; // } // return base.OnMouseEvent (mouseEvent); // } // public override bool OnEnter (View view) // { // border.Visible = false; // fill.Visible = true; // PointerEnter.Invoke (this); // view = this; // return base.OnEnter (view); // } // public override bool OnLeave (View view) // { // border.Visible = true; // fill.Visible = false; // if (view == null) // view = this; // return base.OnLeave (view); // } // } // public class ScrollViewTestWindow : Window { // private List