123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- using Terminal.Gui;
- namespace UICatalog.Scenarios;
- [ScenarioMetadata ("View Experiments", "v2 View Experiments")]
- [ScenarioCategory ("Controls")]
- [ScenarioCategory ("Borders")]
- [ScenarioCategory ("Layout")]
- [ScenarioCategory ("Proof of Concept")]
- public class ViewExperiments : Scenario
- {
- public override void Init ()
- {
- Application.Init ();
- ConfigurationManager.Themes.Theme = Theme;
- ConfigurationManager.Apply ();
- Top = new ();
- Top.ColorScheme = Colors.ColorSchemes [TopLevelColorScheme];
- }
- public override void Setup ()
- {
- var containerLabel = new Label
- {
- X = 0,
- Y = 0,
- AutoSize = false,
- Width = Dim.Fill (),
- Height = 3
- };
- Top.Add (containerLabel);
- var view = new View
- {
- X = 2,
- Y = Pos.Bottom (containerLabel),
- Height = Dim.Fill (2),
- Width = Dim.Fill (2),
- Title = "View with 2xMargin, 2xBorder, & 2xPadding",
- ColorScheme = Colors.ColorSchemes ["Base"],
- Id = "DaView"
- };
- //Top.Add (view);
- view.Margin.Thickness = new Thickness (2, 2, 2, 2);
- view.Margin.ColorScheme = Colors.ColorSchemes ["Toplevel"];
- view.Margin.Data = "Margin";
- view.Border.Thickness = new Thickness (3);
- view.Border.LineStyle = LineStyle.Single;
- view.Border.ColorScheme = view.ColorScheme;
- view.Border.Data = "Border";
- view.Padding.Thickness = new Thickness (2);
- view.Padding.ColorScheme = Colors.ColorSchemes ["Error"];
- view.Padding.Data = "Padding";
- var window1 = new Window
- {
- X = 2,
- Y = 3,
- Height = 7,
- Width = 17,
- Title = "Window 1",
- Text = "Window #2",
- TextAlignment = TextAlignment.Centered
- };
- window1.Margin.Thickness = new Thickness (0);
- window1.Margin.ColorScheme = Colors.ColorSchemes ["Toplevel"];
- window1.Margin.Data = "Margin";
- window1.Border.Thickness = new Thickness (1);
- window1.Border.LineStyle = LineStyle.Single;
- window1.Border.ColorScheme = view.ColorScheme;
- window1.Border.Data = "Border";
- window1.Padding.Thickness = new Thickness (0);
- window1.Padding.ColorScheme = Colors.ColorSchemes ["Error"];
- window1.Padding.Data = "Padding";
- view.Add (window1);
- var window2 = new Window
- {
- X = Pos.Right (window1) + 1,
- Y = 3,
- Height = 5,
- Width = 37,
- Title = "Window2",
- Text = "Window #2 (Right(window1)+1",
- TextAlignment = TextAlignment.Centered
- };
- //view3.InitializeFrames ();
- window2.Margin.Thickness = new Thickness (1, 1, 0, 0);
- window2.Margin.ColorScheme = Colors.ColorSchemes ["Toplevel"];
- window2.Margin.Data = "Margin";
- window2.Border.Thickness = new Thickness (1, 1, 1, 1);
- window2.Border.LineStyle = LineStyle.Single;
- window2.Border.ColorScheme = view.ColorScheme;
- window2.Border.Data = "Border";
- window2.Padding.Thickness = new Thickness (1, 1, 0, 0);
- window2.Padding.ColorScheme = Colors.ColorSchemes ["Error"];
- window2.Padding.Data = "Padding";
- view.Add (window2);
- var view4 = new View
- {
- X = Pos.Right (window2) + 1,
- Y = 3,
- Height = 5,
- Width = 37,
- Title = "View4",
- Text = "View #4 (Right(window2)+1",
- TextAlignment = TextAlignment.Centered
- };
- //view4.InitializeFrames ();
- view4.Margin.Thickness = new Thickness (0, 0, 1, 1);
- view4.Margin.ColorScheme = Colors.ColorSchemes ["Toplevel"];
- view4.Margin.Data = "Margin";
- view4.Border.Thickness = new Thickness (1, 1, 1, 1);
- view4.Border.LineStyle = LineStyle.Single;
- view4.Border.ColorScheme = view.ColorScheme;
- view4.Border.Data = "Border";
- view4.Padding.Thickness = new Thickness (0, 0, 1, 1);
- view4.Padding.ColorScheme = Colors.ColorSchemes ["Error"];
- view4.Padding.Data = "Padding";
- view.Add (view4);
- var view5 = new View
- {
- X = Pos.Right (view4) + 1,
- Y = 3,
- Height = Dim.Fill (2),
- Width = Dim.Fill (),
- Title = "View5",
- Text = "View #5 (Right(view4)+1 Fill",
- TextAlignment = TextAlignment.Centered
- };
- //view5.InitializeFrames ();
- view5.Margin.Thickness = new Thickness (0, 0, 0, 0);
- view5.Margin.ColorScheme = Colors.ColorSchemes ["Toplevel"];
- view5.Margin.Data = "Margin";
- view5.Border.Thickness = new Thickness (1, 1, 1, 1);
- view5.Border.LineStyle = LineStyle.Single;
- view5.Border.ColorScheme = view.ColorScheme;
- view5.Border.Data = "Border";
- view5.Padding.Thickness = new Thickness (0, 0, 0, 0);
- view5.Padding.ColorScheme = Colors.ColorSchemes ["Error"];
- view5.Padding.Data = "Padding";
- view.Add (view5);
- var label = new Label { Text = "AutoSize true; 1;1:", X = 1, Y = 1 };
- view.Add (label);
- var edit = new TextField
- {
- Text = "Right (label)",
- X = Pos.Right (label),
- Y = 1,
- Width = 15,
- Height = 1
- };
- view.Add (edit);
- edit = new TextField
- {
- Text = "Right (edit) + 1",
- X = Pos.Right (edit) + 1,
- Y = 1,
- Width = 20,
- Height = 1
- };
- view.Add (edit);
- var label50 = new View
- {
- Title = "Border Inherit Demo",
- Text = "Center();50%",
- X = Pos.Center (),
- Y = Pos.Percent (50),
- Width = 30,
- TextAlignment = TextAlignment.Centered
- };
- label50.Border.Thickness = new Thickness (1, 3, 1, 1);
- label50.Height = 5;
- view.Add (label50);
- edit = new TextField
- {
- Text = "0 + Percent(50);70%",
- X = 0 + Pos.Percent (50),
- Y = Pos.Percent (70),
- Width = 30,
- Height = 1
- };
- view.Add (edit);
- edit = new TextField { Text = "AnchorEnd[Right];AnchorEnd (1)", Y = Pos.AnchorEnd (1), Width = 30, Height = 1 };
- edit.X = Pos.AnchorEnd () - (Pos.Right (edit) - Pos.Left (edit));
- view.Add (edit);
- edit = new TextField
- {
- Text = "Left;AnchorEnd (2)",
- X = 0,
- Y = Pos.AnchorEnd (2),
- Width = 30,
- Height = 1
- };
- view.Add (edit);
- view.LayoutComplete += (s, e) =>
- {
- containerLabel.Text =
- $"Container.Frame: {
- Top.Frame
- } .Bounds: {
- Top.Viewport
- }\nView.Frame: {
- view.Frame
- } .Viewport: {
- view.Viewport
- } .viewportOffset: {
- view.GetViewportOffsetFromFrame ()
- }\n .Padding.Frame: {
- view.Padding.Frame
- } .Padding.Viewport: {
- view.Padding.Viewport
- }";
- };
- view.X = Pos.Center ();
- var editor = new Adornments.AdornmentsEditor
- {
- Title = "Adornments Editor",
- X = 0,
- Y = Pos.Bottom (containerLabel),
- Width = Dim.Fill (),
- ViewToEdit = view
- };
- Top.Add (editor);
- view.X = 36;
- view.Y = 4;
- view.Width = Dim.Fill ();
- view.Height = Dim.Fill ();
- Top.Add (view);
- }
- }
|