mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
100 lines
2.9 KiB
C#
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 ();
|
|
|
|
}
|
|
}
|