diff --git a/Terminal.Gui/Views/Bar.cs b/Terminal.Gui/Views/Bar.cs
index ad0a1a5fe..958c2c32b 100644
--- a/Terminal.Gui/Views/Bar.cs
+++ b/Terminal.Gui/Views/Bar.cs
@@ -1,5 +1,6 @@
using System;
using System.Linq;
+using System.Reflection;
using Microsoft.CodeAnalysis;
namespace Terminal.Gui;
@@ -23,9 +24,13 @@ public class Bar : View
Height = Dim.Auto ();
LayoutStarted += Bar_LayoutStarted;
-
Initialized += Bar_Initialized;
+ if (shortcuts is null)
+ {
+ return;
+ }
+
foreach (Shortcut shortcut in shortcuts)
{
Add (shortcut);
@@ -35,7 +40,7 @@ public class Bar : View
private void Bar_Initialized (object sender, EventArgs e)
{
ColorScheme = Colors.ColorSchemes ["Menu"];
- AdjustSubviewBorders ();
+ AdjustSubviews ();
}
///
@@ -45,23 +50,41 @@ public class Bar : View
Border.LineStyle = value;
}
+ private Orientation _orientation = Orientation.Horizontal;
+
///
/// Gets or sets the for this . The default is
/// .
///
- public Orientation Orientation { get; set; } = Orientation.Horizontal;
+ public Orientation Orientation
+ {
+ get => _orientation;
+ set
+ {
+ _orientation = value;
+ SetNeedsLayout ();
+ }
+ }
+
+ private AlignmentModes _alignmentModes = AlignmentModes.StartToEnd;
///
/// Gets or sets the for this . The default is .
///
- public AlignmentModes AlignmentModes { get; set; } = AlignmentModes.StartToEnd;
-
- public bool StatusBarStyle { get; set; } = true;
+ public AlignmentModes AlignmentModes
+ {
+ get => _alignmentModes;
+ set
+ {
+ _alignmentModes = value;
+ SetNeedsLayout ();
+ }
+ }
public override View Add (View view)
{
base.Add (view);
- AdjustSubviewBorders ();
+ AdjustSubviews ();
return view;
}
@@ -70,7 +93,7 @@ public class Bar : View
public override View Remove (View view)
{
base.Remove (view);
- AdjustSubviewBorders ();
+ AdjustSubviews ();
return view;
}
@@ -118,47 +141,31 @@ public class Bar : View
return toRemove as Shortcut;
}
- private void AdjustSubviewBorders ()
+ private void AdjustSubviews ()
{
for (var index = 0; index < Subviews.Count; index++)
{
View barItem = Subviews [index];
- barItem.Border.LineStyle = BorderStyle;
- barItem.SuperViewRendersLineCanvas = true;
- barItem.ColorScheme = ColorScheme;
+ //barItem.Border.LineStyle = BorderStyle;
+ //barItem.SuperViewRendersLineCanvas = true;
+ //barItem.ColorScheme = ColorScheme;
- if (!barItem.Visible)
- {
- continue;
- }
+ //if (!barItem.Visible)
+ //{
+ // continue;
+ //}
- if (StatusBarStyle)
- {
- barItem.BorderStyle = LineStyle.Dashed;
+ //barItem.BorderStyle = LineStyle.None;
+ //if (index == 0)
+ //{
+ // barItem.Border.Thickness = new Thickness (1, 1, 1, 0);
+ //}
- if (index == Subviews.Count - 1)
- {
- barItem.Border.Thickness = new Thickness (0, 0, 0, 0);
- }
- else
- {
- barItem.Border.Thickness = new Thickness (0, 0, 1, 0);
- }
- }
- else
- {
- barItem.BorderStyle = LineStyle.None;
- if (index == 0)
- {
- barItem.Border.Thickness = new Thickness (1, 1, 1, 0);
- }
-
- if (index == Subviews.Count - 1)
- {
- barItem.Border.Thickness = new Thickness (1, 0, 1, 1);
- }
- }
+ //if (index == Subviews.Count - 1)
+ //{
+ // barItem.Border.Thickness = new Thickness (1, 0, 1, 1);
+ //}
}
}
@@ -173,40 +180,12 @@ public class Bar : View
{
View barItem = Subviews [index];
- if (!barItem.Visible)
- {
- continue;
- }
+ barItem.ColorScheme = ColorScheme;
+ barItem.X = Pos.Align (Alignment.Start, AlignmentModes);
+ barItem.Y = 0;//Pos.Center ();
- //if (StatusBarStyle)
- //{
- // barItem.BorderStyle = LineStyle.Dashed;
- //}
- //else
- //{
- // barItem.BorderStyle = LineStyle.None;
- //}
-
- //if (index == Subviews.Count - 1)
- //{
- // barItem.Border.Thickness = new Thickness (0, 0, 0, 0);
- //}
- //else
- //{
- // barItem.Border.Thickness = new Thickness (0, 0, 1, 0);
- //}
-
- if (barItem is Shortcut shortcut)
- {
- shortcut.X = Pos.Align (Alignment.Start, AlignmentModes);
- }
- else
- {
- barItem.X = Pos.Align (Alignment.Start, AlignmentModes);
- }
-
- barItem.Y = Pos.Center ();
- prevBarItem = barItem;
+ // HACK: This should not be needed
+ barItem.SetRelativeLayout (GetContentSize ());
}
break;
diff --git a/Terminal.Gui/Views/Shortcut.cs b/Terminal.Gui/Views/Shortcut.cs
index ff35a7159..fb66cf305 100644
--- a/Terminal.Gui/Views/Shortcut.cs
+++ b/Terminal.Gui/Views/Shortcut.cs
@@ -98,6 +98,11 @@ public class Shortcut : View
LayoutStarted += OnLayoutStarted;
Initialized += OnInitialized;
+ if (key is null)
+ {
+ key = Key.Empty;
+ }
+
Key = key;
Title = commandText;
Action = action;
@@ -445,7 +450,7 @@ public class Shortcut : View
{
CommandView.Margin.Thickness = GetMarginThickness ();
CommandView.X = Pos.Align (Alignment.End, AlignmentModes);
- CommandView.Y = 0; //Pos.Center (),
+ CommandView.Y = 0;//Pos.Center ();
}
@@ -470,9 +475,9 @@ public class Shortcut : View
{
HelpView.Margin.Thickness = GetMarginThickness ();
HelpView.X = Pos.Align (Alignment.End, AlignmentModes);
- HelpView.Y = 0; //Pos.Center (),
+ HelpView.Y = 0;//Pos.Center ();
HelpView.Width = Dim.Auto (DimAutoStyle.Text);
- HelpView.Height = CommandView?.IsAdded == true ? Dim.Height (CommandView) : 1;
+ HelpView.Height = CommandView?.Visible == true ? Dim.Height (CommandView) : 1;
HelpView.Visible = true;
HelpView.VerticalTextAlignment = Alignment.Center;
@@ -592,9 +597,9 @@ public class Shortcut : View
{
KeyView.Margin.Thickness = GetMarginThickness ();
KeyView.X = Pos.Align (Alignment.End, AlignmentModes);
- //KeyView.Y = Pos.Center ();
+ KeyView.Y = 0;//Pos.Center ();
KeyView.Width = Dim.Auto (DimAutoStyle.Text, Dim.Func (GetMinimumKeyViewSize));
- KeyView.Height = CommandView?.IsAdded == true ? Dim.Height (CommandView) : 1;
+ KeyView.Height = CommandView?.Visible == true ? Dim.Height (CommandView) : 1;
KeyView.Visible = true;
@@ -653,7 +658,7 @@ public class Shortcut : View
}
}
- return true;
+ return false;
}
///
@@ -702,7 +707,7 @@ public class Shortcut : View
}
// Set KeyView's colors to show "hot"
- if (IsInitialized)
+ if (IsInitialized && base.ColorScheme is {})
{
var cs = new ColorScheme (base.ColorScheme)
{
diff --git a/Terminal.Gui/Views/StatusBar.cs b/Terminal.Gui/Views/StatusBar.cs
index 966f2d59a..69cb264a6 100644
--- a/Terminal.Gui/Views/StatusBar.cs
+++ b/Terminal.Gui/Views/StatusBar.cs
@@ -1,3 +1,6 @@
+using System;
+using System.Reflection;
+
namespace Terminal.Gui;
///
@@ -9,28 +12,61 @@ namespace Terminal.Gui;
///
public class StatusBar : Bar
{
- ///
+ ///
public StatusBar () : this ([]) { }
- ///
+ ///
public StatusBar (IEnumerable shortcuts) : base (shortcuts)
{
Orientation = Orientation.Horizontal;
Y = Pos.AnchorEnd ();
Width = Dim.Fill ();
- StatusBarStyle = true;
+ Height = Dim.Auto (DimAutoStyle.Content, 1);
+ BorderStyle = LineStyle.Dashed;
+ ColorScheme = Colors.ColorSchemes ["Menu"];
+
+ LayoutStarted += StatusBar_LayoutStarted;
}
- ///
+ // StatusBar arranges the items horizontally.
+ // The first item has no left border, the last item has no right border.
+ // The Shortcuts are configured with the command, help, and key views aligned in reverse order (EndToStart).
+ private void StatusBar_LayoutStarted (object sender, LayoutEventArgs e)
+ {
+ for (int index = 0; index < Subviews.Count; index++)
+ {
+ View barItem = Subviews [index];
+
+ barItem.BorderStyle = BorderStyle;
+
+ if (index == Subviews.Count - 1)
+ {
+ barItem.Border.Thickness = new Thickness (0, 0, 0, 0);
+ }
+ else
+ {
+ barItem.Border.Thickness = new Thickness (0, 0, 1, 0);
+ }
+
+ if (barItem is Shortcut shortcut)
+ {
+ shortcut.AlignmentModes = AlignmentModes.EndToStart | AlignmentModes.IgnoreFirstOrLast;
+
+ }
+ }
+ }
+
+
+ ///
public override View Add (View view)
{
view.CanFocus = false;
+
if (view is Shortcut shortcut)
{
shortcut.KeyBindingScope = KeyBindingScope.Application;
- shortcut.AlignmentModes = AlignmentModes.EndToStart | AlignmentModes.IgnoreFirstOrLast;
}
+
return base.Add (view);
}
-
}
diff --git a/UICatalog/Scenarios/Bars.cs b/UICatalog/Scenarios/Bars.cs
index 81d2cad6e..73ef5a546 100644
--- a/UICatalog/Scenarios/Bars.cs
+++ b/UICatalog/Scenarios/Bars.cs
@@ -36,7 +36,7 @@ public class Bars : Scenario
{
X = Pos.AnchorEnd (),
Width = 50,
- Height = Dim.Fill (3),
+ Height = Dim.Fill (6),
ColorScheme = Colors.ColorSchemes ["Toplevel"],
Source = new ListWrapper (eventSource)
};
@@ -104,15 +104,14 @@ public class Bars : Scenario
// eventLog.MoveDown ();
// };
- var bar = new Bar
+ var vBar = new Bar
{
X = 2,
Y = 2,
Orientation = Orientation.Vertical,
- StatusBarStyle = false,
BorderStyle = LineStyle.Rounded
};
- bar.Add (shortcut1, shortcut2);
+ vBar.Add (shortcut1, shortcut2);
////CheckBox hello = new ()
////{
@@ -128,14 +127,48 @@ public class Bars : Scenario
//// };
- Application.Top.Add (bar);
+ Application.Top.Add (vBar);
// BUGBUG: This should not be needed
Application.Top.LayoutSubviews ();
- // SetupMenuBar ();
+ // SetupMenuBar ();
//SetupContentMenu ();
- SetupStatusBar ();
+ Label label = new Label ()
+ {
+ Title = " Bar:",
+ X = 0,
+ Y = Pos.AnchorEnd () - 6
+ };
+ Application.Top.Add (label);
+ var bar = new Bar
+ {
+ Id = "bar",
+ X = Pos.Right (label),
+ Y = Pos.Top (label),
+ Width = Dim.Fill (),
+ Orientation = Orientation.Horizontal,
+ };
+ ConfigStatusBar (bar);
+ Application.Top.Add (bar);
+
+ label = new Label ()
+ {
+ Title = "StatusBar:",
+ X = 0,
+ Y = Pos.AnchorEnd () - 3
+ };
+ Application.Top.Add (label);
+ bar = new StatusBar()
+ {
+ Id = "statusBar",
+ X = Pos.Right (label),
+ Y = Pos.Top (label),
+ Width = Dim.Fill (),
+ Orientation = Orientation.Horizontal,
+ };
+ ConfigStatusBar (bar);
+ Application.Top.Add (bar);
foreach (Bar barView in Application.Top.Subviews.Where (b => b is Bar)!)
{
@@ -143,14 +176,13 @@ public class Bars : Scenario
{
sh.Accept += (o, args) =>
{
- eventSource.Add ($"Accept: {sh!.CommandView.Text}");
+ eventSource.Add ($"Accept: {sh!.SuperView.Id} {sh!.CommandView.Text}");
eventLog.MoveDown ();
};
}
}
}
- private void Button_Clicked (object sender, EventArgs e) { MessageBox.Query ("Hi", $"You clicked {sender}"); }
//private void SetupContentMenu ()
//{
@@ -307,7 +339,6 @@ public class Bars : Scenario
Width = Dim.Fill (),
Height = 1,//Dim.Auto (DimAutoStyle.Content),
Orientation = Orientation.Horizontal,
- StatusBarStyle = false,
};
var fileMenuBarItem = new Shortcut
@@ -317,7 +348,7 @@ public class Bars : Scenario
Key = Key.F.WithAlt,
};
fileMenuBarItem.KeyView.Visible = false;
-
+
var editMenuBarItem = new Shortcut
{
Title = "_Edit",
@@ -338,8 +369,7 @@ public class Bars : Scenario
X = 1,
Y = 1,
Orientation = Orientation.Vertical,
- StatusBarStyle = false,
- // Modal = true,
+ // Modal = true,
Visible = false,
};
@@ -381,7 +411,7 @@ public class Bars : Scenario
{
if (fileMenu.Visible)
{
- // fileMenu.RequestStop ();
+ // fileMenu.RequestStop ();
prevFocus?.SetFocus ();
return;
}
@@ -405,26 +435,18 @@ public class Bars : Scenario
}
- private void SetupStatusBar ()
+ private void ConfigStatusBar (Bar bar)
{
- var statusBar = new Bar
- {
- Id = "statusBar",
- X = 0,
- Y = Pos.AnchorEnd (),
- Width = Dim.Fill (),
- };
-
var shortcut = new Shortcut
{
+ Height = Dim.Auto (DimAutoStyle.Content, 3),
Text = "Quit",
Title = "Q_uit",
Key = Application.QuitKey,
KeyBindingScope = KeyBindingScope.Application,
- CanFocus = false
};
- statusBar.Add (shortcut);
+ bar.Add (shortcut);
shortcut = new Shortcut
{
@@ -432,24 +454,9 @@ public class Bars : Scenario
Title = "Help",
Key = Key.F1,
KeyBindingScope = KeyBindingScope.HotKey,
- CanFocus = false
};
- var labelHelp = new Label
- {
- X = Pos.Center (),
- Y = Pos.Top (statusBar) - 1,
- Text = "Help"
- };
- Application.Top.Add (labelHelp);
-
- shortcut.Accept += (s, e) =>
- {
- labelHelp.Text = labelHelp.Text + "!";
- e.Cancel = true;
- };
-
- statusBar.Add (shortcut);
+ bar.Add (shortcut);
shortcut = new Shortcut
{
@@ -460,10 +467,9 @@ public class Bars : Scenario
{
Text = "_Show/Hide"
},
- CanFocus = false
};
- statusBar.Add (shortcut);
+ bar.Add (shortcut);
var button1 = new Button
{
@@ -471,15 +477,16 @@ public class Bars : Scenario
// Visible = false
};
button1.Accept += Button_Clicked;
- statusBar.Add (button1);
+ bar.Add (button1);
shortcut.Accept += (s, e) =>
{
button1.Visible = !button1.Visible;
button1.Enabled = button1.Visible;
+ e.Cancel = false;
};
- statusBar.Add (new Label
+ bar.Add (new Label
{
HotKeySpecifier = new Rune ('_'),
Text = "Fo_cusLabel",
@@ -492,11 +499,11 @@ public class Bars : Scenario
};
button2.Accept += (s, e) => Application.RequestStop ();
- statusBar.Add (button2);
+ bar.Add (button2);
- statusBar.Initialized += Menu_Initialized;
+ return;
- Application.Top.Add (statusBar);
+ void Button_Clicked (object sender, EventArgs e) { MessageBox.Query ("Hi", $"You clicked {sender}"); }
}
diff --git a/UICatalog/Scenarios/GraphViewExample.cs b/UICatalog/Scenarios/GraphViewExample.cs
index 9c9beb097..754a8aa10 100644
--- a/UICatalog/Scenarios/GraphViewExample.cs
+++ b/UICatalog/Scenarios/GraphViewExample.cs
@@ -4,7 +4,6 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using Terminal.Gui;
-using static System.Net.Mime.MediaTypeNames;
using Application = Terminal.Gui.Application;
namespace UICatalog.Scenarios;
@@ -44,101 +43,101 @@ public class GraphViewExample : Scenario
{
Menus =
[
- new MenuBarItem (
- "_File",
- new MenuItem []
- {
- new (
- "Scatter _Plot",
- "",
- () => _graphs [_currentGraph =
- 0] ()
- ),
- new (
- "_V Bar Graph",
- "",
- () => _graphs [_currentGraph =
- 1] ()
- ),
- new (
- "_H Bar Graph",
- "",
- () => _graphs [_currentGraph =
- 2] ()
- ),
- new (
- "P_opulation Pyramid",
- "",
- () => _graphs [_currentGraph =
- 3] ()
- ),
- new (
- "_Line Graph",
- "",
- () => _graphs [_currentGraph =
- 4] ()
- ),
- new (
- "Sine _Wave",
- "",
- () => _graphs [_currentGraph =
- 5] ()
- ),
- new (
- "Silent _Disco",
- "",
- () => _graphs [_currentGraph =
- 6] ()
- ),
- new (
- "_Multi Bar Graph",
- "",
- () => _graphs [_currentGraph =
- 7] ()
- ),
- new ("_Quit", "", () => Quit ())
- }
- ),
- new MenuBarItem (
- "_View",
- new []
- {
- new ("Zoom _In", "", () => Zoom (0.5f)),
- new ("Zoom _Out", "", () => Zoom (2f)),
- new ("MarginLeft++", "", () => Margin (true, true)),
- new ("MarginLeft--", "", () => Margin (true, false)),
- new ("MarginBottom++", "", () => Margin (false, true)),
- new ("MarginBottom--", "", () => Margin (false, false)),
- _miShowBorder = new MenuItem (
- "_Enable Margin, Border, and Padding",
- "",
- () => ShowBorder ()
- )
- {
- Checked = true,
- CheckType = MenuItemCheckStyle
- .Checked
- },
- _miDiags = new MenuItem (
- "_Diagnostics",
- "",
- () => ToggleDiagnostics ()
- )
- {
- Checked = View.Diagnostics
- == (ViewDiagnosticFlags
- .Padding
- | ViewDiagnosticFlags
- .Ruler),
- CheckType = MenuItemCheckStyle.Checked
- }
- }
- )
+ new (
+ "_File",
+ new MenuItem []
+ {
+ new (
+ "Scatter _Plot",
+ "",
+ () => _graphs [_currentGraph =
+ 0] ()
+ ),
+ new (
+ "_V Bar Graph",
+ "",
+ () => _graphs [_currentGraph =
+ 1] ()
+ ),
+ new (
+ "_H Bar Graph",
+ "",
+ () => _graphs [_currentGraph =
+ 2] ()
+ ),
+ new (
+ "P_opulation Pyramid",
+ "",
+ () => _graphs [_currentGraph =
+ 3] ()
+ ),
+ new (
+ "_Line Graph",
+ "",
+ () => _graphs [_currentGraph =
+ 4] ()
+ ),
+ new (
+ "Sine _Wave",
+ "",
+ () => _graphs [_currentGraph =
+ 5] ()
+ ),
+ new (
+ "Silent _Disco",
+ "",
+ () => _graphs [_currentGraph =
+ 6] ()
+ ),
+ new (
+ "_Multi Bar Graph",
+ "",
+ () => _graphs [_currentGraph =
+ 7] ()
+ ),
+ new ("_Quit", "", () => Quit ())
+ }
+ ),
+ new (
+ "_View",
+ new []
+ {
+ new ("Zoom _In", "", () => Zoom (0.5f)),
+ new ("Zoom _Out", "", () => Zoom (2f)),
+ new ("MarginLeft++", "", () => Margin (true, true)),
+ new ("MarginLeft--", "", () => Margin (true, false)),
+ new ("MarginBottom++", "", () => Margin (false, true)),
+ new ("MarginBottom--", "", () => Margin (false, false)),
+ _miShowBorder = new (
+ "_Enable Margin, Border, and Padding",
+ "",
+ () => ShowBorder ()
+ )
+ {
+ Checked = true,
+ CheckType = MenuItemCheckStyle
+ .Checked
+ },
+ _miDiags = new (
+ "_Diagnostics",
+ "",
+ () => ToggleDiagnostics ()
+ )
+ {
+ Checked = View.Diagnostics
+ == (ViewDiagnosticFlags
+ .Padding
+ | ViewDiagnosticFlags
+ .Ruler),
+ CheckType = MenuItemCheckStyle.Checked
+ }
+ }
+ )
]
};
app.Add (menu);
- _graphView = new GraphView
+ _graphView = new()
{
X = 0,
Y = 1,
@@ -162,7 +161,7 @@ public class GraphViewExample : Scenario
};
frameRight.Add (
- _about = new TextView { Width = Dim.Fill (), Height = Dim.Fill () }
+ _about = new() { Width = Dim.Fill (), Height = Dim.Fill () }
);
app.Add (frameRight);
@@ -172,15 +171,15 @@ public class GraphViewExample : Scenario
{
new (Key.G.WithCtrl, "Next Graph", () => _graphs [_currentGraph++ % _graphs.Length] ()),
new (Key.CursorUp, "Zoom In", () => Zoom (0.5f)),
- new (Key.CursorDown, "Zoom Out", () => Zoom (2f)),
+ new (Key.CursorDown, "Zoom Out", () => Zoom (2f))
}
);
app.Add (statusBar);
- var diagShortcut = new Shortcut ()
+ var diagShortcut = new Shortcut
{
Key = Key.F10,
- CommandView = new CheckBox ()
+ CommandView = new CheckBox
{
Title = "Diagnostics",
CanFocus = false
@@ -195,12 +194,12 @@ public class GraphViewExample : Scenario
View.Diagnostics = _viewDiagnostics;
app.Dispose ();
Application.Shutdown ();
-
}
private void DiagShortcut_Accept (object sender, CancelEventArgs e)
{
- ToggleDiagnostics();
+ ToggleDiagnostics ();
+
if (sender is Shortcut shortcut && shortcut.CommandView is CheckBox checkBox)
{
checkBox.Checked = _miDiags.Checked;
@@ -212,9 +211,9 @@ public class GraphViewExample : Scenario
_miDiags.Checked = !_miDiags.Checked;
View.Diagnostics = _miDiags.Checked == true
- ? ViewDiagnosticFlags.Padding
- | ViewDiagnosticFlags.Ruler
- : ViewDiagnosticFlags.Off;
+ ? ViewDiagnosticFlags.Padding
+ | ViewDiagnosticFlags.Ruler
+ : ViewDiagnosticFlags.Off;
Application.Refresh ();
}
@@ -241,7 +240,7 @@ public class GraphViewExample : Scenario
_about.Text = "Housing Expenditures by income thirds 1996-2003";
Color fore = _graphView.ColorScheme.Normal.Foreground == new Color (ColorName.Black)
- ? new Color (ColorName.White)
+ ? new (ColorName.White)
: _graphView.ColorScheme.Normal.Foreground;
var black = new Attribute (fore, Color.Black);
var cyan = new Attribute (Color.BrightCyan, Color.Black);
@@ -263,7 +262,7 @@ public class GraphViewExample : Scenario
series.AddBars ("'02", stiple, 6600, 11000, 16700);
series.AddBars ("'03", stiple, 7000, 12000, 17000);
- _graphView.CellSize = new PointF (0.25f, 1000);
+ _graphView.CellSize = new (0.25f, 1000);
_graphView.Series.Add (series);
_graphView.SetNeedsDisplay ();
@@ -279,20 +278,20 @@ public class GraphViewExample : Scenario
_graphView.AxisY.Minimum = 0;
- var legend = new LegendAnnotation (new Rectangle (_graphView.Viewport.Width - 20, 0, 20, 5));
+ var legend = new LegendAnnotation (new (_graphView.Viewport.Width - 20, 0, 20, 5));
legend.AddEntry (
- new GraphCellToRender (stiple, series.SubSeries.ElementAt (0).OverrideBarColor),
+ new (stiple, series.SubSeries.ElementAt (0).OverrideBarColor),
"Lower Third"
);
legend.AddEntry (
- new GraphCellToRender (stiple, series.SubSeries.ElementAt (1).OverrideBarColor),
+ new (stiple, series.SubSeries.ElementAt (1).OverrideBarColor),
"Middle Third"
);
legend.AddEntry (
- new GraphCellToRender (stiple, series.SubSeries.ElementAt (2).OverrideBarColor),
+ new (stiple, series.SubSeries.ElementAt (2).OverrideBarColor),
"Upper Third"
);
_graphView.Annotations.Add (legend);
@@ -324,7 +323,7 @@ public class GraphViewExample : Scenario
for (var i = 0; i < 31; i++)
{
bars.Add (
- new BarSeriesBar (null, stiple, r.Next (0, 100))
+ new (null, stiple, r.Next (0, 100))
{
//ColorGetter = colorDelegate
}
@@ -344,7 +343,7 @@ public class GraphViewExample : Scenario
_graphView.Series.Add (series);
// How much graph space each cell of the console depicts
- _graphView.CellSize = new PointF (1, 10);
+ _graphView.CellSize = new (1, 10);
_graphView.AxisX.Increment = 0; // No graph ticks
_graphView.AxisX.ShowLabelsEvery = 0; // no labels
@@ -399,7 +398,7 @@ public class GraphViewExample : Scenario
var barSeries = new BarSeries
{
- Bars = new List
+ Bars = new()
{
new ("Switzerland", softStiple, 83.4f),
new (
@@ -476,7 +475,7 @@ public class GraphViewExample : Scenario
barSeries.Orientation = Orientation.Vertical;
// How much graph space each cell of the console depicts
- _graphView.CellSize = new PointF (0.1f, 0.25f);
+ _graphView.CellSize = new (0.1f, 0.25f);
// No axis marks since Bar will add it's own categorical marks
_graphView.AxisX.Increment = 0f;
@@ -494,14 +493,14 @@ public class GraphViewExample : Scenario
_graphView.MarginLeft = 6;
// Start the graph at 80 years because that is where most of our data is
- _graphView.ScrollOffset = new PointF (0, 80);
+ _graphView.ScrollOffset = new (0, 80);
}
else
{
barSeries.Orientation = Orientation.Horizontal;
// How much graph space each cell of the console depicts
- _graphView.CellSize = new PointF (0.1f, 1f);
+ _graphView.CellSize = new (0.1f, 1f);
// No axis marks since Bar will add it's own categorical marks
_graphView.AxisY.Increment = 0f;
@@ -520,7 +519,7 @@ public class GraphViewExample : Scenario
_graphView.MarginLeft = (uint)barSeries.Bars.Max (b => b.Text.Length) + 2;
// Start the graph at 80 years because that is where most of our data is
- _graphView.ScrollOffset = new PointF (80, 0);
+ _graphView.ScrollOffset = new (80, 0);
}
_graphView.SetNeedsDisplay ();
@@ -547,7 +546,7 @@ public class GraphViewExample : Scenario
for (var i = 0; i < 10; i++)
{
- randomPoints.Add (new PointF (r.Next (100), r.Next (100)));
+ randomPoints.Add (new (r.Next (100), r.Next (100)));
}
var points = new ScatterSeries { Points = randomPoints };
@@ -560,14 +559,14 @@ public class GraphViewExample : Scenario
_graphView.Series.Add (points);
_graphView.Annotations.Add (line);
- randomPoints = new List ();
+ randomPoints = new ();
for (var i = 0; i < 10; i++)
{
- randomPoints.Add (new PointF (r.Next (100), r.Next (100)));
+ randomPoints.Add (new (r.Next (100), r.Next (100)));
}
- var points2 = new ScatterSeries { Points = randomPoints, Fill = new GraphCellToRender ((Rune)'x', red) };
+ var points2 = new ScatterSeries { Points = randomPoints, Fill = new ((Rune)'x', red) };
var line2 = new PathAnnotation
{
@@ -578,7 +577,7 @@ public class GraphViewExample : Scenario
_graphView.Annotations.Add (line2);
// How much graph space each cell of the console depicts
- _graphView.CellSize = new PointF (2, 5);
+ _graphView.CellSize = new (2, 5);
// leave space for axis labels
_graphView.MarginBottom = 2;
@@ -599,10 +598,10 @@ public class GraphViewExample : Scenario
new TextAnnotation
{
Text = "(Max)",
- GraphPosition = new PointF (
- max.X + 2 * _graphView.CellSize.X,
- max.Y
- )
+ GraphPosition = new (
+ max.X + 2 * _graphView.CellSize.X,
+ max.Y
+ )
}
);
@@ -622,7 +621,7 @@ public class GraphViewExample : Scenario
_graphView.Series.Add (
new ScatterSeries
{
- Points = new List
+ Points = new()
{
new (1, 1.007f),
new (2, 4.002f),
@@ -744,7 +743,7 @@ public class GraphViewExample : Scenario
);
// How much graph space each cell of the console depicts
- _graphView.CellSize = new PointF (1, 5);
+ _graphView.CellSize = new (1, 5);
// leave space for axis labels
_graphView.MarginBottom = 2;
@@ -797,10 +796,10 @@ public class GraphViewExample : Scenario
_graphView.Reset ();
// How much graph space each cell of the console depicts
- _graphView.CellSize = new PointF (100_000, 1);
+ _graphView.CellSize = new (100_000, 1);
//center the x axis in middle of screen to show both sides
- _graphView.ScrollOffset = new PointF (-3_000_000, 0);
+ _graphView.ScrollOffset = new (-3_000_000, 0);
_graphView.AxisX.Text = "Number Of People";
_graphView.AxisX.Increment = 500_000;
@@ -826,7 +825,7 @@ public class GraphViewExample : Scenario
var malesSeries = new BarSeries
{
Orientation = Orientation.Horizontal,
- Bars = new List
+ Bars = new()
{
new ("0-4", stiple, -2009363),
new ("5-9", stiple, -2108550),
@@ -857,7 +856,7 @@ public class GraphViewExample : Scenario
var femalesSeries = new BarSeries
{
Orientation = Orientation.Horizontal,
- Bars = new List
+ Bars = new()
{
new ("0-4", stiple, 1915127),
new ("5-9", stiple, 2011016),
@@ -920,15 +919,15 @@ public class GraphViewExample : Scenario
// Generate line graph with 2,000 points
for (float x = -500; x < 500; x += 0.5f)
{
- points.Points.Add (new PointF (x, (float)Math.Sin (x)));
- line.Points.Add (new PointF (x, (float)Math.Sin (x)));
+ points.Points.Add (new (x, (float)Math.Sin (x)));
+ line.Points.Add (new (x, (float)Math.Sin (x)));
}
_graphView.Series.Add (points);
_graphView.Annotations.Add (line);
// How much graph space each cell of the console depicts
- _graphView.CellSize = new PointF (0.1f, 0.1f);
+ _graphView.CellSize = new (0.1f, 0.1f);
// leave space for axis labels
_graphView.MarginBottom = 2;
@@ -945,7 +944,7 @@ public class GraphViewExample : Scenario
_graphView.AxisY.Text = "↑Y";
_graphView.AxisY.LabelGetter = v => v.Value.ToString ("N2");
- _graphView.ScrollOffset = new PointF (-2.5f, -1);
+ _graphView.ScrollOffset = new (-2.5f, -1);
_graphView.SetNeedsDisplay ();
}
@@ -971,10 +970,10 @@ public class GraphViewExample : Scenario
private void Zoom (float factor)
{
- _graphView.CellSize = new PointF (
- _graphView.CellSize.X * factor,
- _graphView.CellSize.Y * factor
- );
+ _graphView.CellSize = new (
+ _graphView.CellSize.X * factor,
+ _graphView.CellSize.Y * factor
+ );
_graphView.AxisX.Increment *= factor;
_graphView.AxisY.Increment *= factor;
@@ -992,11 +991,11 @@ public class GraphViewExample : Scenario
public DiscoBarSeries ()
{
- _green = new Attribute (Color.BrightGreen, Color.Black);
- _brightgreen = new Attribute (Color.Green, Color.Black);
- _brightyellow = new Attribute (Color.BrightYellow, Color.Black);
- _red = new Attribute (Color.Red, Color.Black);
- _brightred = new Attribute (Color.BrightRed, Color.Black);
+ _green = new (Color.BrightGreen, Color.Black);
+ _brightgreen = new (Color.Green, Color.Black);
+ _brightyellow = new (Color.BrightYellow, Color.Black);
+ _red = new (Color.Red, Color.Black);
+ _brightred = new (Color.BrightRed, Color.Black);
}
protected override void DrawBarLine (GraphView graph, Point start, Point end, BarSeriesBar beingDrawn)
diff --git a/UICatalog/UICatalog.cs b/UICatalog/UICatalog.cs
index ee9ab8fbc..4e3e8cc62 100644
--- a/UICatalog/UICatalog.cs
+++ b/UICatalog/UICatalog.cs
@@ -458,8 +458,8 @@ internal class UICatalogApp
StatusBar = new ()
{
Visible = ShowStatusBar,
- AlignmentModes = AlignmentModes.StartToEnd | AlignmentModes.IgnoreFirstOrLast
};
+ StatusBar.AlignmentModes = AlignmentModes.StartToEnd | AlignmentModes.IgnoreFirstOrLast;
Shortcut statusBarShortcut = new Shortcut ()
{
diff --git a/UnitTests/Views/ContextMenuTests.cs b/UnitTests/Views/ContextMenuTests.cs
index b1917e5c0..6d42add38 100644
--- a/UnitTests/Views/ContextMenuTests.cs
+++ b/UnitTests/Views/ContextMenuTests.cs
@@ -113,142 +113,6 @@ public class ContextMenuTests (ITestOutputHelper output)
top.Dispose ();
}
- [Fact]
- [AutoInitShutdown]
- public void ContextMenu_On_Toplevel_With_A_MenuBar_TextField_StatusBar ()
- {
- Thread.CurrentThread.CurrentUICulture = new CultureInfo ("en-US");
-
- var menu = new MenuBar
- {
- Menus =
- [
- new MenuBarItem ("File", "", null),
- new MenuBarItem ("Edit", "", null)
- ]
- };
-
- var label = new Label { X = 2, Y = 3, Text = "Label:" };
-
- var tf = new TextField { X = Pos.Right (label) + 1, Y = Pos.Top (label), Width = 20, Text = "TextField" };
-
- var statusBar = new StatusBar (
-#if V2_STATUSBAR
- [
- new StatusItem (KeyCode.F1, "~F1~ Help", null),
- new StatusItem (KeyCode.CtrlMask | KeyCode.Q, "~^Q~ Quit", null)
- ]
-#endif
- );
-
- var top = new Toplevel ();
- top.Add (menu, label, tf, statusBar);
- ((FakeDriver)Application.Driver).SetBufferSize (45, 17);
- Application.Begin (top);
-
- Assert.Equal (new Rectangle (9, 3, 20, 1), tf.Frame);
- Assert.True (tf.HasFocus);
-
- tf.ContextMenu.Show ();
- Assert.True (ContextMenu.IsShow);
- Assert.Equal (new Point (9, 3), tf.ContextMenu.Position);
- Application.Top.Draw ();
-
- var expected = @"
- File Edit
-
-
- Label: TextField
- ┌─────────────────────┐
- │ Select All Ctrl+T │
- │ Delete All Ctrl+R │
- │ Copy Ctrl+C │
- │ Cut Ctrl+X │
- │ Paste Ctrl+V │
- │ Undo Ctrl+Z │
- │ Redo Ctrl+Y │
- └─────────────────────┘
-
-
-
- F1 Help │ ^Q Quit
-";
-
- Rectangle pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rectangle (1, 0, 32, 17), pos);
- top.Dispose ();
- }
-
- [Fact]
- [AutoInitShutdown]
- public void ContextMenu_On_Toplevel_With_A_MenuBar_Window_TextField_StatusBar ()
- {
- Thread.CurrentThread.CurrentUICulture = new CultureInfo ("en-US");
-
- var menu = new MenuBar
- {
- Menus =
- [
- new MenuBarItem ("File", "", null),
- new MenuBarItem ("Edit", "", null)
- ]
- };
-
- var label = new Label { X = 2, Y = 3, Text = "Label:" };
-
- var tf = new TextField { X = Pos.Right (label) + 1, Y = Pos.Top (label), Width = 20, Text = "TextField" };
-
- var win = new Window ();
- win.Add (label, tf);
-
- var statusBar = new StatusBar (
-#if V2_STATUSBAR
- new []
- {
- new StatusItem (KeyCode.F1, "~F1~ Help", null),
- new StatusItem (KeyCode.CtrlMask | KeyCode.Q, "~^Q~ Quit", null)
- }
-#endif
- );
-
- var top = new Toplevel ();
- top.Add (menu, win, statusBar);
- Application.Begin (top);
- ((FakeDriver)Application.Driver).SetBufferSize (44, 17);
-
- Assert.Equal (new Rectangle (9, 3, 20, 1), tf.Frame);
- Assert.True (tf.HasFocus);
-
- tf.ContextMenu.Show ();
- Assert.True (ContextMenu.IsShow);
- Assert.Equal (new Point (10, 5), tf.ContextMenu.Position);
- Application.Top.Draw ();
-
- var expected = @"
- File Edit
-┌──────────────────────────────────────────┐
-│ │
-│ │
-│ │
-│ Label: TextField │
-│ ┌─────────────────────┐ │
-│ │ Select All Ctrl+T │ │
-│ │ Delete All Ctrl+R │ │
-│ │ Copy Ctrl+C │ │
-│ │ Cut Ctrl+X │ │
-│ │ Paste Ctrl+V │ │
-│ │ Undo Ctrl+Z │ │
-│ │ Redo Ctrl+Y │ │
-│ └─────────────────────┘ │
-└──────────────────────────────────────────┘
- F1 Help │ ^Q Quit
-";
-
- Rectangle pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
- Assert.Equal (new Rectangle (1, 0, 44, 17), pos);
- top.Dispose ();
- }
-
[Fact]
[AutoInitShutdown]
public void Draw_A_ContextMenu_Over_A_Borderless_Top ()