Files
Terminal.Gui/Examples/UICatalog/Scenarios/ShadowStyles.cs

100 lines
2.9 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.Metrics;
using System.Linq;
namespace UICatalog.Scenarios;
[ScenarioMetadata ("ShadowStyles Demo", "Demonstrates ShadowStyles Effects.")]
[ScenarioCategory ("Layout")]
[ScenarioCategory ("Adornments")]
public class ShadowStyles : Scenario
{
public override void Main ()
{
Application.Init ();
Window app = new ()
{
Id = "app",
Title = GetQuitKeyAndName ()
};
var editor = new AdornmentsEditor ()
{
Id = "editor",
AutoSelectViewToEdit = true,
ShowViewIdentifier = true,
};
editor.Initialized += (sender, args) => editor.MarginEditor.ExpanderButton.Collapsed = false;
app.Add (editor);
Window shadowWindow = new ()
{
Id = "shadowWindow",
X = Pos.Right (editor),
Y = 0,
Width = Dim.Percent (30),
Height = Dim.Percent (30),
Title = "Shadow Window",
Arrangement = ViewArrangement.Movable | ViewArrangement.Overlapped,
BorderStyle = LineStyle.Double,
ShadowStyle = ShadowStyle.Transparent,
};
app.DrawingContent += (s, e) =>
{
app!.FillRect (app!.Viewport, Glyphs.Dot);
e.Cancel = true;
};
var buttonInWin = new Button
{
Id = "buttonInWin",
X = Pos.Center (),
Y = Pos.Center (), Text = "Button in Window",
ShadowStyle = ShadowStyle.Opaque
};
shadowWindow.Add (buttonInWin);
app.Add (shadowWindow);
var button = new Button
{
Id = "button",
X = Pos.Right (editor) + 10,
Y = Pos.Center (), Text = "Button",
ShadowStyle = ShadowStyle.Opaque
};
ColorPicker colorPicker = new ()
{
Title = "ColorPicker to illustrate highlight (currently broken)",
BorderStyle = LineStyle.Dotted,
Id = "colorPicker16",
X = Pos.Center (),
Y = Pos.AnchorEnd (),
Width = Dim.Percent(80),
};
colorPicker.ColorChanged += (sender, args) =>
{
var normal = app.GetScheme ().Normal;
app.SetScheme (app.GetScheme() with {Normal = new Attribute(normal.Foreground, args.Result)});
};
app.Add (button, colorPicker);
editor.AutoSelectViewToEdit = true;
editor.AutoSelectSuperView = app;
editor.AutoSelectAdornments = false;
Application.Run (app);
app.Dispose ();
Application.Shutdown ();
}
}