Initial commit

This commit is contained in:
Tig Kindel
2023-12-23 14:12:21 -07:00
committed by Tig
parent ccfcfdc196
commit 8bf1ea2d05

71
Terminal.Gui/Views/Bar.cs Normal file
View File

@@ -0,0 +1,71 @@
using System;
using System.Linq;
namespace Terminal.Gui;
public class BarItem : View {
public BarItem ()
{
Height = 1;
}
public override string Text {
set {
base.Text = $"{KeyBindings.Bindings.FirstOrDefault (b => b.Value.Scope != KeyBindingScope.Focused).Key} `{value}`";
}
get {
return $"{KeyBindings.Bindings.FirstOrDefault(b => b.Value.Scope != KeyBindingScope.Focused).Key} `{base.Text}`";
}
}
}
/// <summary>
/// The Bar <see cref="View"/> provides a container for other views to be used as a toolbar or status bar.
/// </summary>
/// <remarks>
/// Views added to a Bar will be positioned horizontally from left to right.
/// </remarks>
public class Bar : View {
/// <inheritdoc/>
public Bar () => SetInitialProperties ();
void SetInitialProperties ()
{
X = 0;
Y = Pos.AnchorEnd (1);
Width = Dim.Fill ();
Height = 1;
AutoSize = false;
ColorScheme = Colors.Menu;
}
public override void Add (View view)
{
// Align the views horizontally from left to right. Use Border to separate them.
// until we know this view is not the rightmost, make it fill the bar
//view.Width = Dim.Fill ();
view.Margin.Thickness = new Thickness (1, 0, 0, 0);
view.Margin.ColorScheme = Colors.Menu;
// Light up right border
view.BorderStyle = LineStyle.Single;
view.Border.Thickness = new Thickness (0, 0, 1, 0);
view.Padding.Thickness = new Thickness (0, 0, 1, 0);
view.Padding.ColorScheme = Colors.Menu;
// leftmost view is at X=0
if (Subviews.Count == 0) {
view.X = 0;
} else {
// Make view to right be autosize
//Subviews [^1].AutoSize = true;
// Align the view to the right of the previous view
view.X = Pos.Right (Subviews [^1]);
}
base.Add (view);
}
}