|
@@ -1,4 +1,5 @@
|
|
|
-using System;
|
|
|
+using NStack;
|
|
|
+using System;
|
|
|
using System.Linq;
|
|
|
using Terminal.Gui;
|
|
|
|
|
@@ -7,245 +8,330 @@ namespace UICatalog.Scenarios {
|
|
|
[ScenarioCategory ("Layout")]
|
|
|
[ScenarioCategory ("Borders")]
|
|
|
public class Frames : Scenario {
|
|
|
+ public class FrameEditor : View {
|
|
|
+ private Thickness _thickness;
|
|
|
+ private TextField _topEdit;
|
|
|
+ private TextField _leftEdit;
|
|
|
+ private TextField _rightEdit;
|
|
|
+ private TextField _bottomEdit;
|
|
|
+ private bool _isUpdating;
|
|
|
|
|
|
- public class ThicknessEditor : View {
|
|
|
- private Thickness thickness;
|
|
|
+ private ColorPicker _foregroundColorPicker;
|
|
|
+ private ColorPicker _backgroundColorPicker;
|
|
|
+
|
|
|
+ public Terminal.Gui.Attribute Color { get; set; }
|
|
|
|
|
|
public Thickness Thickness {
|
|
|
- get => thickness;
|
|
|
+ get => _thickness;
|
|
|
set {
|
|
|
- thickness = value;
|
|
|
- ThicknessChanged?.Invoke (this, new ThicknessEventArgs () { Thickness = Thickness });
|
|
|
+ if (_isUpdating) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ _thickness = value;
|
|
|
+ ThicknessChanged?.Invoke (this, new ThicknessEventArgs () { Thickness = Thickness });
|
|
|
+ if (IsInitialized) {
|
|
|
+ _isUpdating = true;
|
|
|
+ if (_topEdit.Text != _thickness.Top.ToString ()) {
|
|
|
+ _topEdit.Text = _thickness.Top.ToString ();
|
|
|
+ }
|
|
|
+ if (_leftEdit.Text != _thickness.Left.ToString ()) {
|
|
|
+ _leftEdit.Text = _thickness.Left.ToString ();
|
|
|
+ }
|
|
|
+ if (_rightEdit.Text != _thickness.Right.ToString ()) {
|
|
|
+ _rightEdit.Text = _thickness.Right.ToString ();
|
|
|
+ }
|
|
|
+ if (_bottomEdit.Text != _thickness.Bottom.ToString ()) {
|
|
|
+ _bottomEdit.Text = _thickness.Bottom.ToString ();
|
|
|
+ }
|
|
|
+ _isUpdating = false;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public event EventHandler<ThicknessEventArgs> ThicknessChanged;
|
|
|
+ public event EventHandler<Terminal.Gui.Attribute> AttributeChanged;
|
|
|
|
|
|
- public ThicknessEditor ()
|
|
|
+ public FrameEditor ()
|
|
|
{
|
|
|
Margin.Thickness = new Thickness (0);
|
|
|
- BorderStyle = LineStyle.Single;
|
|
|
+ BorderStyle = LineStyle.Double;
|
|
|
+ Initialized += FrameEditor_Initialized; ;
|
|
|
}
|
|
|
|
|
|
- public override void BeginInit ()
|
|
|
+ void FrameEditor_Initialized (object sender, EventArgs e)
|
|
|
{
|
|
|
- base.BeginInit ();
|
|
|
+ var editWidth = 3;
|
|
|
|
|
|
- var topEdit = new TextField ("") {
|
|
|
+ _topEdit = new TextField ("") {
|
|
|
X = Pos.Center (),
|
|
|
Y = 0,
|
|
|
- Width = 5
|
|
|
- };
|
|
|
- topEdit.TextChanging += (s, e) => {
|
|
|
- try {
|
|
|
- Thickness = new Thickness (Thickness.Left,
|
|
|
- int.Parse (e.NewText.ToString ()), Thickness.Right,
|
|
|
- Thickness.Bottom);
|
|
|
- } catch {
|
|
|
- if (!e.NewText.IsEmpty) {
|
|
|
- e.Cancel = true;
|
|
|
- }
|
|
|
- }
|
|
|
+ Width = editWidth
|
|
|
};
|
|
|
- topEdit.Text = $"{Thickness.Top}";
|
|
|
-
|
|
|
- Add (topEdit);
|
|
|
+ _topEdit.TextChanging += Edit_TextChanging;
|
|
|
+ Add (_topEdit);
|
|
|
|
|
|
- var leftEdit = new TextField ("") {
|
|
|
- X = 0,
|
|
|
- Y = Pos.Bottom (topEdit),
|
|
|
- Width = 5
|
|
|
- };
|
|
|
- leftEdit.TextChanging += (s, e) => {
|
|
|
- try {
|
|
|
- Thickness = new Thickness (int.Parse (e.NewText.ToString ()),
|
|
|
- Thickness.Top, Thickness.Right,
|
|
|
- Thickness.Bottom);
|
|
|
- } catch {
|
|
|
- if (!e.NewText.IsEmpty) {
|
|
|
- e.Cancel = true;
|
|
|
- }
|
|
|
- }
|
|
|
+ _leftEdit = new TextField ("") {
|
|
|
+ X = Pos.Left (_topEdit) - editWidth,
|
|
|
+ Y = Pos.Bottom (_topEdit),
|
|
|
+ Width = editWidth
|
|
|
};
|
|
|
- leftEdit.Text = $"{Thickness.Left}";
|
|
|
- Add (leftEdit);
|
|
|
+ _leftEdit.TextChanging += Edit_TextChanging;
|
|
|
+ Add (_leftEdit);
|
|
|
|
|
|
- var rightEdit = new TextField ("") {
|
|
|
- X = Pos.Right (topEdit),
|
|
|
- Y = Pos.Bottom (topEdit),
|
|
|
- Width = 5
|
|
|
- };
|
|
|
- rightEdit.TextChanging += (s, e) => {
|
|
|
- try {
|
|
|
- Thickness = new Thickness (Thickness.Left,
|
|
|
- Thickness.Top, int.Parse (e.NewText.ToString ()),
|
|
|
- Thickness.Bottom);
|
|
|
- } catch {
|
|
|
- if (!e.NewText.IsEmpty) {
|
|
|
- e.Cancel = true;
|
|
|
- }
|
|
|
- }
|
|
|
+ _rightEdit = new TextField ("") {
|
|
|
+ X = Pos.Right (_topEdit),
|
|
|
+ Y = Pos.Bottom (_topEdit),
|
|
|
+ Width = editWidth
|
|
|
};
|
|
|
- rightEdit.Text = $"{Thickness.Right}";
|
|
|
- Add (rightEdit);
|
|
|
+ _rightEdit.TextChanging += Edit_TextChanging;
|
|
|
+ Add (_rightEdit);
|
|
|
|
|
|
- var bottomEdit = new TextField ("") {
|
|
|
+ _bottomEdit = new TextField ("") {
|
|
|
X = Pos.Center (),
|
|
|
- Y = Pos.Bottom (leftEdit),
|
|
|
- Width = 5
|
|
|
- };
|
|
|
- bottomEdit.TextChanging += (s, e) => {
|
|
|
- try {
|
|
|
- Thickness = new Thickness (Thickness.Left,
|
|
|
- Thickness.Top, Thickness.Right,
|
|
|
- int.Parse (e.NewText.ToString ()));
|
|
|
- } catch {
|
|
|
- if (!e.NewText.IsEmpty) {
|
|
|
- e.Cancel = true;
|
|
|
- }
|
|
|
- }
|
|
|
+ Y = Pos.Bottom (_leftEdit),
|
|
|
+ Width = editWidth
|
|
|
};
|
|
|
- bottomEdit.Text = $"{Thickness.Bottom}";
|
|
|
- Add (bottomEdit);
|
|
|
+ _bottomEdit.TextChanging += Edit_TextChanging;
|
|
|
+ Add (_bottomEdit);
|
|
|
|
|
|
var copyTop = new Button ("Copy Top") {
|
|
|
- X = Pos.Center (),
|
|
|
- Y = Pos.AnchorEnd (1)
|
|
|
+ X = Pos.Center () + 1,
|
|
|
+ Y = Pos.Bottom (_bottomEdit)
|
|
|
};
|
|
|
copyTop.Clicked += (s, e) => {
|
|
|
Thickness = new Thickness (Thickness.Top);
|
|
|
- if (topEdit.Text.IsEmpty) {
|
|
|
- topEdit.Text = "0";
|
|
|
+ if (_topEdit.Text.IsEmpty) {
|
|
|
+ _topEdit.Text = "0";
|
|
|
}
|
|
|
- bottomEdit.Text = leftEdit.Text = rightEdit.Text = topEdit.Text;
|
|
|
+ _bottomEdit.Text = _leftEdit.Text = _rightEdit.Text = _topEdit.Text;
|
|
|
};
|
|
|
Add (copyTop);
|
|
|
|
|
|
+ // Foreground ColorPicker.
|
|
|
+ _foregroundColorPicker = new ColorPicker () {
|
|
|
+ Title = "FG",
|
|
|
+ BoxWidth = 1,
|
|
|
+ BoxHeight = 1,
|
|
|
+ X = -1,
|
|
|
+ Y = Pos.Bottom (copyTop) + 1,
|
|
|
+ BorderStyle = LineStyle.Single,
|
|
|
+ SuperViewRendersLineCanvas = true
|
|
|
+ };
|
|
|
+ _foregroundColorPicker.ColorChanged += (o, a) =>
|
|
|
+ AttributeChanged?.Invoke (this,
|
|
|
+ new Terminal.Gui.Attribute (_foregroundColorPicker.SelectedColor, _backgroundColorPicker.SelectedColor));
|
|
|
+ Add (_foregroundColorPicker);
|
|
|
+
|
|
|
+ // Background ColorPicker.
|
|
|
+ _backgroundColorPicker = new ColorPicker () {
|
|
|
+ Title = "BG",
|
|
|
+ BoxWidth = 1,
|
|
|
+ BoxHeight = 1,
|
|
|
+ X = Pos.Right (_foregroundColorPicker) - 1,
|
|
|
+ Y = Pos.Top (_foregroundColorPicker),
|
|
|
+ BorderStyle = LineStyle.Single,
|
|
|
+ SuperViewRendersLineCanvas = true
|
|
|
+ };
|
|
|
+
|
|
|
+ _backgroundColorPicker.ColorChanged += (o, a) =>
|
|
|
+ AttributeChanged?.Invoke (this,
|
|
|
+ new Terminal.Gui.Attribute (
|
|
|
+ _foregroundColorPicker.SelectedColor,
|
|
|
+ _backgroundColorPicker.SelectedColor));
|
|
|
+ Add (_backgroundColorPicker);
|
|
|
+
|
|
|
+ _topEdit.Text = $"{Thickness.Top}";
|
|
|
+ _leftEdit.Text = $"{Thickness.Left}";
|
|
|
+ _rightEdit.Text = $"{Thickness.Right}";
|
|
|
+ _bottomEdit.Text = $"{Thickness.Bottom}";
|
|
|
+
|
|
|
LayoutSubviews ();
|
|
|
- Height = Margin.Thickness.Vertical + Border.Thickness.Vertical + Padding.Thickness.Vertical + 4;
|
|
|
- Width = 20;
|
|
|
+ Height = GetFramesThickness ().Vertical + 4 + 4;
|
|
|
+ Width = GetFramesThickness ().Horizontal + _foregroundColorPicker.Frame.Width * 2 - 3;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void Edit_TextChanging (object sender, TextChangingEventArgs e)
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ if (string.IsNullOrEmpty (e.NewText.ToString ())) {
|
|
|
+ e.Cancel = true;
|
|
|
+ ((TextField)sender).Text = "0";
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ switch (sender.ToString ()) {
|
|
|
+ case var s when s == _topEdit.ToString ():
|
|
|
+ Thickness = new Thickness (Thickness.Left,
|
|
|
+ int.Parse (e.NewText.ToString ()), Thickness.Right,
|
|
|
+ Thickness.Bottom);
|
|
|
+ break;
|
|
|
+ case var s when s == _leftEdit.ToString ():
|
|
|
+ Thickness = new Thickness (int.Parse (e.NewText.ToString ()),
|
|
|
+ Thickness.Top, Thickness.Right,
|
|
|
+ Thickness.Bottom);
|
|
|
+ break;
|
|
|
+ case var s when s == _rightEdit.ToString ():
|
|
|
+ Thickness = new Thickness (Thickness.Left,
|
|
|
+ Thickness.Top, int.Parse (e.NewText.ToString ()),
|
|
|
+ Thickness.Bottom);
|
|
|
+ break;
|
|
|
+ case var s when s == _bottomEdit.ToString ():
|
|
|
+ Thickness = new Thickness (Thickness.Left,
|
|
|
+ Thickness.Top, Thickness.Right,
|
|
|
+ int.Parse (e.NewText.ToString ()));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ if (!e.NewText.IsEmpty) {
|
|
|
+ e.Cancel = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public class FramesEditor : Window {
|
|
|
- public FramesEditor (NStack.ustring title, View viewToEdit)
|
|
|
+ private View _viewToEdit;
|
|
|
+ private FrameEditor _marginEditor;
|
|
|
+ private FrameEditor _borderEditor;
|
|
|
+ private FrameEditor _paddingEditor;
|
|
|
+
|
|
|
+ public FramesEditor (ustring title, View viewToEdit)
|
|
|
{
|
|
|
- viewToEdit.Margin.ColorScheme = Colors.ColorSchemes ["Toplevel"];
|
|
|
- var marginEditor = new ThicknessEditor () {
|
|
|
- X = 20,
|
|
|
+ this._viewToEdit = viewToEdit;
|
|
|
+
|
|
|
+ viewToEdit.Margin.ColorScheme = new ColorScheme (Colors.ColorSchemes ["Toplevel"]);
|
|
|
+ _marginEditor = new FrameEditor () {
|
|
|
+ X = 0,
|
|
|
Y = 0,
|
|
|
Title = "Margin",
|
|
|
Thickness = viewToEdit.Margin.Thickness,
|
|
|
+ SuperViewRendersLineCanvas = true
|
|
|
};
|
|
|
- marginEditor.ThicknessChanged += (s, a) => {
|
|
|
- try {
|
|
|
- viewToEdit.Margin.Thickness = a.Thickness;
|
|
|
- } catch {
|
|
|
-
|
|
|
- viewToEdit.Margin.Thickness = a.PreviousThickness;
|
|
|
- }
|
|
|
- };
|
|
|
- Add (marginEditor);
|
|
|
-
|
|
|
- viewToEdit.Border.ColorScheme = Colors.ColorSchemes ["Base"];
|
|
|
- var borderEditor = new ThicknessEditor () {
|
|
|
- X = Pos.Right(marginEditor) - 1,
|
|
|
- Y = 0,
|
|
|
+ _marginEditor.ThicknessChanged += Editor_ThicknessChanged;
|
|
|
+ _marginEditor.AttributeChanged += Editor_AttributeChanged; ;
|
|
|
+ Add (_marginEditor);
|
|
|
+
|
|
|
+ viewToEdit.Border.ColorScheme = new ColorScheme (Colors.ColorSchemes ["Base"]);
|
|
|
+ _borderEditor = new FrameEditor () {
|
|
|
+ X = Pos.Left (_marginEditor),
|
|
|
+ Y = Pos.Bottom (_marginEditor),
|
|
|
Title = "Border",
|
|
|
Thickness = viewToEdit.Border.Thickness,
|
|
|
+ SuperViewRendersLineCanvas = true
|
|
|
};
|
|
|
- borderEditor.ThicknessChanged += (s, a) => {
|
|
|
- try {
|
|
|
- viewToEdit.Border.Thickness = a.Thickness;
|
|
|
- } catch {
|
|
|
- viewToEdit.Border.Thickness = a.PreviousThickness;
|
|
|
- }
|
|
|
- };
|
|
|
- Add (borderEditor);
|
|
|
+ _borderEditor.ThicknessChanged += Editor_ThicknessChanged;
|
|
|
+ _borderEditor.AttributeChanged += Editor_AttributeChanged;
|
|
|
+ Add (_borderEditor);
|
|
|
|
|
|
- viewToEdit.Padding.ColorScheme = Colors.ColorSchemes ["Error"];
|
|
|
- var paddingEditor = new ThicknessEditor () {
|
|
|
- X = Pos.Right (borderEditor) - 1,
|
|
|
- Y = 0,
|
|
|
- Title = "Padding",
|
|
|
- Thickness = viewToEdit.Padding.Thickness,
|
|
|
- };
|
|
|
- paddingEditor.ThicknessChanged += (s, a) => {
|
|
|
- try {
|
|
|
- viewToEdit.Padding.Thickness = a.Thickness;
|
|
|
- } catch {
|
|
|
- viewToEdit.Padding.Thickness = a.PreviousThickness;
|
|
|
- }
|
|
|
- };
|
|
|
- Add (paddingEditor);
|
|
|
-
|
|
|
- viewToEdit.Y = Pos.Center () + 4;
|
|
|
-
|
|
|
- Add (new Label ("BorderStyle:"));
|
|
|
+ viewToEdit.Padding.ColorScheme = new ColorScheme (Colors.ColorSchemes ["Error"]);
|
|
|
+ var colorEnum = Enum.GetValues (typeof (Color)).Cast<Color> ().ToList ();
|
|
|
|
|
|
var borderStyleEnum = Enum.GetValues (typeof (LineStyle)).Cast<LineStyle> ().ToList ();
|
|
|
var rbBorderStyle = new RadioGroup (borderStyleEnum.Select (
|
|
|
e => NStack.ustring.Make (e.ToString ())).ToArray ()) {
|
|
|
|
|
|
- X = 2,
|
|
|
- Y = 1,
|
|
|
- SelectedItem = (int)viewToEdit.Border.BorderStyle
|
|
|
+ X = Pos.Right (_borderEditor) - 1,
|
|
|
+ Y = Pos.Top (_borderEditor),
|
|
|
+ SelectedItem = (int)viewToEdit.Border.BorderStyle,
|
|
|
+ BorderStyle = LineStyle.Double,
|
|
|
+ Title = "Border Style",
|
|
|
+ SuperViewRendersLineCanvas = true
|
|
|
};
|
|
|
Add (rbBorderStyle);
|
|
|
|
|
|
rbBorderStyle.SelectedItemChanged += (s, e) => {
|
|
|
+ var prevBorderStyle = viewToEdit.BorderStyle;
|
|
|
viewToEdit.Border.BorderStyle = (LineStyle)e.SelectedItem;
|
|
|
+ if (viewToEdit.Border.BorderStyle == LineStyle.None) {
|
|
|
+ viewToEdit.Border.Thickness = new Thickness (0);
|
|
|
+ } else if (prevBorderStyle == LineStyle.None && viewToEdit.Border.BorderStyle != LineStyle.None) {
|
|
|
+ viewToEdit.Border.Thickness = new Thickness (1);
|
|
|
+ }
|
|
|
+ _borderEditor.Thickness = new Thickness (viewToEdit.Border.Thickness.Left, viewToEdit.Border.Thickness.Top,
|
|
|
+ viewToEdit.Border.Thickness.Right, viewToEdit.Border.Thickness.Bottom);
|
|
|
viewToEdit.SetNeedsDisplay ();
|
|
|
};
|
|
|
|
|
|
- //Add (new Label ("Background:") {
|
|
|
- // Y = 5
|
|
|
- //});
|
|
|
-
|
|
|
- //var colorEnum = Enum.GetValues (typeof (Color)).Cast<Color> ().ToList ();
|
|
|
- //var rbBackground = new RadioGroup (colorEnum.Select (
|
|
|
- // e => NStack.ustring.Make (e.ToString ())).ToArray ()) {
|
|
|
-
|
|
|
- // X = 2,
|
|
|
- // Y = 6,
|
|
|
- // SelectedItem = (int)viewToEdit.Border.BackgroundColor
|
|
|
- //};
|
|
|
- //rbBackground.SelectedItemChanged += (s, e) => {
|
|
|
- // if (viewToEdit.Border != null) {
|
|
|
- // viewToEdit.Border.BackgroundColor = (Color)e.SelectedItem;
|
|
|
- // }
|
|
|
- //};
|
|
|
- //Add (rbBackground);
|
|
|
-
|
|
|
- //Add (new Label ("BorderBrush:") {
|
|
|
- // X = Pos.AnchorEnd (20),
|
|
|
- // Y = 5
|
|
|
- //});
|
|
|
-
|
|
|
- //var rbBorderBrush = new RadioGroup (colorEnum.Select (
|
|
|
- // e => NStack.ustring.Make (e.ToString ())).ToArray ()) {
|
|
|
-
|
|
|
- // X = Pos.AnchorEnd (18),
|
|
|
- // Y = 6,
|
|
|
- // SelectedItem = (int)viewToEdit.Border.ForgroundColor
|
|
|
- //};
|
|
|
- //rbBorderBrush.SelectedItemChanged += (s, e) => {
|
|
|
- // if (viewToEdit.Border != null) {
|
|
|
- // viewToEdit.Border.ForgroundColor = (Color)e.SelectedItem;
|
|
|
- // }
|
|
|
- //};
|
|
|
- //Add (rbBorderBrush);
|
|
|
-
|
|
|
- viewToEdit.X = Pos.Center ();
|
|
|
- viewToEdit.Y = Pos.Bottom (marginEditor);
|
|
|
- viewToEdit.Width = 60;
|
|
|
- viewToEdit.Height = 25;
|
|
|
+ var ckbTitle = new CheckBox ("Show Title") {
|
|
|
+ BorderStyle = LineStyle.Double,
|
|
|
+ X = Pos.Left (_borderEditor),
|
|
|
+ Y = Pos.Bottom (_borderEditor) - 1,
|
|
|
+ Width = Dim.Width (_borderEditor),
|
|
|
+ Checked = true,
|
|
|
+ SuperViewRendersLineCanvas = true
|
|
|
+ };
|
|
|
+ Add (ckbTitle);
|
|
|
+
|
|
|
+ _paddingEditor = new FrameEditor () {
|
|
|
+ X = Pos.Left (_borderEditor),
|
|
|
+ Y = Pos.Bottom (rbBorderStyle),
|
|
|
+ Title = "Padding",
|
|
|
+ Thickness = viewToEdit.Padding.Thickness,
|
|
|
+ SuperViewRendersLineCanvas = true
|
|
|
+ };
|
|
|
+ _paddingEditor.ThicknessChanged += Editor_ThicknessChanged;
|
|
|
+ _paddingEditor.AttributeChanged += Editor_AttributeChanged;
|
|
|
+ Add (_paddingEditor);
|
|
|
+
|
|
|
+ viewToEdit.X = Pos.Right (rbBorderStyle);
|
|
|
+ viewToEdit.Y = 0;
|
|
|
+ viewToEdit.Width = Dim.Fill ();
|
|
|
+ viewToEdit.Height = Dim.Fill ();
|
|
|
Add (viewToEdit);
|
|
|
|
|
|
- LayoutSubviews ();
|
|
|
+ viewToEdit.LayoutComplete += (s, e) => {
|
|
|
+ if (ckbTitle.Checked == true) {
|
|
|
+ viewToEdit.Title = viewToEdit.ToString ();
|
|
|
+ } else {
|
|
|
+ viewToEdit.Title = string.Empty;
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
Title = title;
|
|
|
}
|
|
|
+
|
|
|
+ private void Editor_AttributeChanged (object sender, Terminal.Gui.Attribute attr)
|
|
|
+ {
|
|
|
+ switch (sender.ToString ()) {
|
|
|
+ case var s when s == _marginEditor.ToString ():
|
|
|
+ _viewToEdit.Margin.ColorScheme = new ColorScheme (_viewToEdit.Margin.ColorScheme) { Normal = attr };
|
|
|
+ break;
|
|
|
+ case var s when s == _borderEditor.ToString ():
|
|
|
+ _viewToEdit.Border.ColorScheme = new ColorScheme (_viewToEdit.Border.ColorScheme) { Normal = attr };
|
|
|
+ break;
|
|
|
+ case var s when s == _paddingEditor.ToString ():
|
|
|
+ _viewToEdit.Padding.ColorScheme = new ColorScheme (_viewToEdit.Padding.ColorScheme) { Normal = attr };
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void Editor_ThicknessChanged (object sender, ThicknessEventArgs e)
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ switch (sender.ToString ()) {
|
|
|
+ case var s when s == _marginEditor.ToString ():
|
|
|
+ _viewToEdit.Margin.Thickness = e.Thickness;
|
|
|
+ break;
|
|
|
+ case var s when s == _borderEditor.ToString ():
|
|
|
+ _viewToEdit.Border.Thickness = e.Thickness;
|
|
|
+ break;
|
|
|
+ case var s when s == _paddingEditor.ToString ():
|
|
|
+ _viewToEdit.Padding.Thickness = e.Thickness;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ switch (sender.ToString ()) {
|
|
|
+ case var s when s == _marginEditor.ToString ():
|
|
|
+ _viewToEdit.Margin.Thickness = e.PreviousThickness;
|
|
|
+ break;
|
|
|
+ case var s when s == _borderEditor.ToString ():
|
|
|
+ _viewToEdit.Border.Thickness = e.PreviousThickness;
|
|
|
+ break;
|
|
|
+ case var s when s == _paddingEditor.ToString ():
|
|
|
+ _viewToEdit.Padding.Thickness = e.PreviousThickness;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public override void Init ()
|
|
@@ -256,34 +342,33 @@ namespace UICatalog.Scenarios {
|
|
|
Application.Top.ColorScheme = Colors.ColorSchemes [TopLevelColorScheme];
|
|
|
|
|
|
var view = new Window ();
|
|
|
- var tf1 = new TextField ("1234567890") { Width = 10 };
|
|
|
+ var tf1 = new TextField ("TextField") { Width = 10 };
|
|
|
|
|
|
var button = new Button ("Press me!") {
|
|
|
X = Pos.Center (),
|
|
|
Y = Pos.Center (),
|
|
|
};
|
|
|
- button.Clicked += (s, e) => MessageBox.Query (20, 7, "Hi", $"I'm a {view.GetType().Name}?", "Yes", "No");
|
|
|
+ button.Clicked += (s, e) => MessageBox.Query (20, 7, "Hi", $"Am I a {view.GetType ().Name}?", "Yes", "No");
|
|
|
var label = new Label ($"I'm a {view.GetType ().Name}") {
|
|
|
X = Pos.Center (),
|
|
|
Y = Pos.Center () - 1,
|
|
|
};
|
|
|
- var tf2 = new TextField ("1234567890") {
|
|
|
+ var tf2 = new Button ("Button") {
|
|
|
X = Pos.AnchorEnd (10),
|
|
|
Y = Pos.AnchorEnd (1),
|
|
|
Width = 10
|
|
|
};
|
|
|
- var tv = new TextView () {
|
|
|
+ var tv = new Label () {
|
|
|
Y = Pos.AnchorEnd (2),
|
|
|
- Width = 10,
|
|
|
+ Width = 25,
|
|
|
Height = Dim.Fill (),
|
|
|
- Text = "1234567890"
|
|
|
+ Text = "Label\nY=AnchorEnd(2),Height=Dim.Fill()"
|
|
|
};
|
|
|
|
|
|
view.Margin.Thickness = new Thickness (3);
|
|
|
- view.Margin.ColorScheme = Colors.ColorSchemes ["Dialog"];
|
|
|
+ view.Padding.Thickness = new Thickness (1);
|
|
|
|
|
|
view.Add (tf1, button, label, tf2, tv);
|
|
|
- view.LayoutComplete += (s, e) => view.Title = view.ToString ();
|
|
|
|
|
|
var editor = new FramesEditor (
|
|
|
$"{Application.QuitKey} to Quit - Scenario: {GetName ()}",
|