diff --git a/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs b/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs
index 0f6b48f5a..b5db7847b 100644
--- a/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs
+++ b/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs
@@ -191,7 +191,7 @@ namespace Terminal.Gui {
background: MapCursesColor (background));
}
- static Attribute MakeColor (Color fore, Color back)
+ public override Attribute MakeColor (Color fore, Color back)
{
return MakeColor ((short)MapColor (fore), (short)MapColor (back));
}
@@ -890,51 +890,14 @@ namespace Terminal.Gui {
//UpArrow = Curses.ACS_UARROW;
//DownArrow = Curses.ACS_DARROW;
- Colors.TopLevel = new ColorScheme ();
- Colors.Base = new ColorScheme ();
- Colors.Dialog = new ColorScheme ();
- Colors.Menu = new ColorScheme ();
- Colors.Error = new ColorScheme ();
-
if (Curses.HasColors) {
Curses.StartColor ();
Curses.UseDefaultColors ();
- Colors.TopLevel.Normal = MakeColor (Color.Green, Color.Black);
- Colors.TopLevel.Focus = MakeColor (Color.White, Color.Cyan);
- Colors.TopLevel.HotNormal = MakeColor (Color.Brown, Color.Black);
- Colors.TopLevel.HotFocus = MakeColor (Color.Blue, Color.Cyan);
- Colors.TopLevel.Disabled = MakeColor (Color.DarkGray, Color.Black);
-
- Colors.Base.Normal = MakeColor (Color.White, Color.Blue);
- Colors.Base.Focus = MakeColor (Color.Black, Color.Gray);
- Colors.Base.HotNormal = MakeColor (Color.BrightCyan, Color.Blue);
- Colors.Base.HotFocus = MakeColor (Color.BrightBlue, Color.Gray);
- Colors.Base.Disabled = MakeColor (Color.DarkGray, Color.Blue);
-
- // Focused,
- // Selected, Hot: Yellow on Black
- // Selected, text: white on black
- // Unselected, hot: yellow on cyan
- // unselected, text: same as unfocused
- Colors.Menu.Normal = MakeColor (Color.White, Color.DarkGray);
- Colors.Menu.Focus = MakeColor (Color.White, Color.Black);
- Colors.Menu.HotNormal = MakeColor (Color.BrightYellow, Color.DarkGray);
- Colors.Menu.HotFocus = MakeColor (Color.BrightYellow, Color.Black);
- Colors.Menu.Disabled = MakeColor (Color.Gray, Color.DarkGray);
-
- Colors.Dialog.Normal = MakeColor (Color.Black, Color.Gray);
- Colors.Dialog.Focus = MakeColor (Color.White, Color.DarkGray);
- Colors.Dialog.HotNormal = MakeColor (Color.Blue, Color.Gray);
- Colors.Dialog.HotFocus = MakeColor (Color.Blue, Color.DarkGray);
- Colors.Dialog.Disabled = MakeColor (Color.DarkGray, Color.Gray);
-
- Colors.Error.Normal = MakeColor (Color.Red, Color.White);
- Colors.Error.Focus = MakeColor (Color.White, Color.Red);
- Colors.Error.HotNormal = MakeColor (Color.Black, Color.White);
- Colors.Error.HotFocus = MakeColor (Color.Black, Color.Red);
- Colors.Error.Disabled = MakeColor (Color.DarkGray, Color.White);
+ CreateColors ();
} else {
+ CreateColors (false);
+
Colors.TopLevel.Normal = Curses.COLOR_GREEN;
Colors.TopLevel.Focus = Curses.COLOR_WHITE;
Colors.TopLevel.HotNormal = Curses.COLOR_YELLOW;
diff --git a/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs b/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs
index 0faccb274..50662f364 100644
--- a/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs
+++ b/Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs
@@ -157,6 +157,11 @@ namespace Terminal.Gui {
FakeConsole.Clear ();
}
+ public override Attribute MakeColor (Color foreground, Color background)
+ {
+ return MakeColor ((ConsoleColor)foreground, (ConsoleColor)background);
+ }
+
static Attribute MakeColor (ConsoleColor f, ConsoleColor b)
{
// Encode the colors into the int value.
@@ -177,47 +182,7 @@ namespace Terminal.Gui {
ResizeScreen ();
UpdateOffScreen ();
- Colors.TopLevel = new ColorScheme ();
- Colors.Base = new ColorScheme ();
- Colors.Dialog = new ColorScheme ();
- Colors.Menu = new ColorScheme ();
- Colors.Error = new ColorScheme ();
- Clip = new Rect (0, 0, Cols, Rows);
-
- Colors.TopLevel.Normal = MakeColor (ConsoleColor.Green, ConsoleColor.Black);
- Colors.TopLevel.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkCyan);
- Colors.TopLevel.HotNormal = MakeColor (ConsoleColor.DarkYellow, ConsoleColor.Black);
- Colors.TopLevel.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkCyan);
- Colors.TopLevel.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Black);
-
- Colors.Base.Normal = MakeColor (ConsoleColor.White, ConsoleColor.Blue);
- Colors.Base.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Cyan);
- Colors.Base.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.Blue);
- Colors.Base.HotFocus = MakeColor (ConsoleColor.Yellow, ConsoleColor.Cyan);
- Colors.Base.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.DarkBlue);
-
- // Focused,
- // Selected, Hot: Yellow on Black
- // Selected, text: white on black
- // Unselected, hot: yellow on cyan
- // unselected, text: same as unfocused
- Colors.Menu.HotFocus = MakeColor (ConsoleColor.Yellow, ConsoleColor.Black);
- Colors.Menu.Focus = MakeColor (ConsoleColor.White, ConsoleColor.Black);
- Colors.Menu.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.Cyan);
- Colors.Menu.Normal = MakeColor (ConsoleColor.White, ConsoleColor.Cyan);
- Colors.Menu.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Cyan);
-
- Colors.Dialog.Normal = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
- Colors.Dialog.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Cyan);
- Colors.Dialog.HotNormal = MakeColor (ConsoleColor.Blue, ConsoleColor.Gray);
- Colors.Dialog.HotFocus = MakeColor (ConsoleColor.Blue, ConsoleColor.Cyan);
- Colors.Dialog.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Gray);
-
- Colors.Error.Normal = MakeColor (ConsoleColor.White, ConsoleColor.Red);
- Colors.Error.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
- Colors.Error.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.Red);
- Colors.Error.HotFocus = Colors.Error.HotNormal;
- Colors.Error.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.White);
+ CreateColors ();
//MockConsole.Clear ();
}
diff --git a/Terminal.Gui/ConsoleDrivers/NetDriver.cs b/Terminal.Gui/ConsoleDrivers/NetDriver.cs
index 95e93391a..c6c65caa7 100644
--- a/Terminal.Gui/ConsoleDrivers/NetDriver.cs
+++ b/Terminal.Gui/ConsoleDrivers/NetDriver.cs
@@ -1309,6 +1309,11 @@ namespace Terminal.Gui {
}
}
+ public override Attribute MakeColor (Color foreground, Color background)
+ {
+ return MakeColor ((ConsoleColor)foreground, (ConsoleColor)background);
+ }
+
static Attribute MakeColor (ConsoleColor f, ConsoleColor b)
{
// Encode the colors into the int value.
@@ -1337,46 +1342,7 @@ namespace Terminal.Gui {
StartReportingMouseMoves ();
- Colors.TopLevel = new ColorScheme ();
- Colors.Base = new ColorScheme ();
- Colors.Dialog = new ColorScheme ();
- Colors.Menu = new ColorScheme ();
- Colors.Error = new ColorScheme ();
-
- Colors.TopLevel.Normal = MakeColor (ConsoleColor.Green, ConsoleColor.Black);
- Colors.TopLevel.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkCyan);
- Colors.TopLevel.HotNormal = MakeColor (ConsoleColor.DarkYellow, ConsoleColor.Black);
- Colors.TopLevel.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkCyan);
- Colors.TopLevel.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Black);
-
- Colors.Base.Normal = MakeColor (ConsoleColor.White, ConsoleColor.DarkBlue);
- Colors.Base.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
- Colors.Base.HotNormal = MakeColor (ConsoleColor.Cyan, ConsoleColor.DarkBlue);
- Colors.Base.HotFocus = MakeColor (ConsoleColor.Blue, ConsoleColor.Gray);
- Colors.Base.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.DarkBlue);
-
- // Focused,
- // Selected, Hot: Yellow on Black
- // Selected, text: white on black
- // Unselected, hot: yellow on cyan
- // unselected, text: same as unfocused
- Colors.Menu.Normal = MakeColor (ConsoleColor.White, ConsoleColor.DarkGray);
- Colors.Menu.Focus = MakeColor (ConsoleColor.White, ConsoleColor.Black);
- Colors.Menu.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.DarkGray);
- Colors.Menu.HotFocus = MakeColor (ConsoleColor.Yellow, ConsoleColor.Black);
- Colors.Menu.Disabled = MakeColor (ConsoleColor.Gray, ConsoleColor.DarkGray);
-
- Colors.Dialog.Normal = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
- Colors.Dialog.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkGray);
- Colors.Dialog.HotNormal = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.Gray);
- Colors.Dialog.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkGray);
- Colors.Dialog.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Gray);
-
- Colors.Error.Normal = MakeColor (ConsoleColor.DarkRed, ConsoleColor.White);
- Colors.Error.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkRed);
- Colors.Error.HotNormal = MakeColor (ConsoleColor.Black, ConsoleColor.White);
- Colors.Error.HotFocus = MakeColor (ConsoleColor.Black, ConsoleColor.DarkRed);
- Colors.Error.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.White);
+ CreateColors ();
Clear ();
}
diff --git a/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs b/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs
index 21b7a6094..e5f65fbfd 100644
--- a/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs
+++ b/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs
@@ -1397,41 +1397,7 @@ namespace Terminal.Gui {
ResizeScreen ();
UpdateOffScreen ();
- Colors.TopLevel = new ColorScheme ();
- Colors.Base = new ColorScheme ();
- Colors.Dialog = new ColorScheme ();
- Colors.Menu = new ColorScheme ();
- Colors.Error = new ColorScheme ();
-
- Colors.TopLevel.Normal = MakeColor (ConsoleColor.Green, ConsoleColor.Black);
- Colors.TopLevel.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkCyan);
- Colors.TopLevel.HotNormal = MakeColor (ConsoleColor.DarkYellow, ConsoleColor.Black);
- Colors.TopLevel.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkCyan);
- Colors.TopLevel.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Black);
-
- Colors.Base.Normal = MakeColor (ConsoleColor.White, ConsoleColor.DarkBlue);
- Colors.Base.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
- Colors.Base.HotNormal = MakeColor (ConsoleColor.Cyan, ConsoleColor.DarkBlue);
- Colors.Base.HotFocus = MakeColor (ConsoleColor.Blue, ConsoleColor.Gray);
- Colors.Base.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.DarkBlue);
-
- Colors.Menu.Normal = MakeColor (ConsoleColor.White, ConsoleColor.DarkGray);
- Colors.Menu.Focus = MakeColor (ConsoleColor.White, ConsoleColor.Black);
- Colors.Menu.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.DarkGray);
- Colors.Menu.HotFocus = MakeColor (ConsoleColor.Yellow, ConsoleColor.Black);
- Colors.Menu.Disabled = MakeColor (ConsoleColor.Gray, ConsoleColor.DarkGray);
-
- Colors.Dialog.Normal = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
- Colors.Dialog.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkGray);
- Colors.Dialog.HotNormal = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.Gray);
- Colors.Dialog.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkGray);
- Colors.Dialog.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Gray);
-
- Colors.Error.Normal = MakeColor (ConsoleColor.DarkRed, ConsoleColor.White);
- Colors.Error.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkRed);
- Colors.Error.HotNormal = MakeColor (ConsoleColor.Black, ConsoleColor.White);
- Colors.Error.HotFocus = MakeColor (ConsoleColor.Black, ConsoleColor.DarkRed);
- Colors.Error.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.White);
+ CreateColors ();
}
public override void ResizeScreen ()
@@ -1537,6 +1503,11 @@ namespace Terminal.Gui {
currentAttribute = c;
}
+ public override Attribute MakeColor (Color foreground, Color background)
+ {
+ return MakeColor ((ConsoleColor)foreground, (ConsoleColor)background);
+ }
+
Attribute MakeColor (ConsoleColor f, ConsoleColor b)
{
// Encode the colors into the int value.
diff --git a/Terminal.Gui/Core/ConsoleDriver.cs b/Terminal.Gui/Core/ConsoleDriver.cs
index 5116c07ed..873d8398b 100644
--- a/Terminal.Gui/Core/ConsoleDriver.cs
+++ b/Terminal.Gui/Core/ConsoleDriver.cs
@@ -1338,5 +1338,60 @@ namespace Terminal.Gui {
///
/// The current attribute.
public abstract Attribute GetAttribute ();
+
+ ///
+ /// Make the for the .
+ ///
+ /// The foreground color.
+ /// The background color.
+ /// The attribute for the foreground and background colors.
+ public abstract Attribute MakeColor (Color foreground, Color background);
+
+ ///
+ /// Create all with the for the console driver.
+ ///
+ /// Flag indicating if colors are supported.
+ public void CreateColors (bool hasColors = true)
+ {
+ Colors.TopLevel = new ColorScheme ();
+ Colors.Base = new ColorScheme ();
+ Colors.Dialog = new ColorScheme ();
+ Colors.Menu = new ColorScheme ();
+ Colors.Error = new ColorScheme ();
+
+ if (!hasColors) {
+ return;
+ }
+
+ Colors.TopLevel.Normal = MakeColor (Color.BrightGreen, Color.Black);
+ Colors.TopLevel.Focus = MakeColor (Color.White, Color.Cyan);
+ Colors.TopLevel.HotNormal = MakeColor (Color.Brown, Color.Black);
+ Colors.TopLevel.HotFocus = MakeColor (Color.Blue, Color.Cyan);
+ Colors.TopLevel.Disabled = MakeColor (Color.DarkGray, Color.Black);
+
+ Colors.Base.Normal = MakeColor (Color.White, Color.Blue);
+ Colors.Base.Focus = MakeColor (Color.Black, Color.Gray);
+ Colors.Base.HotNormal = MakeColor (Color.BrightCyan, Color.Blue);
+ Colors.Base.HotFocus = MakeColor (Color.BrightBlue, Color.Gray);
+ Colors.Base.Disabled = MakeColor (Color.DarkGray, Color.Blue);
+
+ Colors.Dialog.Normal = MakeColor (Color.Black, Color.Gray);
+ Colors.Dialog.Focus = MakeColor (Color.White, Color.DarkGray);
+ Colors.Dialog.HotNormal = MakeColor (Color.Blue, Color.Gray);
+ Colors.Dialog.HotFocus = MakeColor (Color.BrightYellow, Color.DarkGray);
+ Colors.Dialog.Disabled = MakeColor (Color.Gray, Color.DarkGray);
+
+ Colors.Menu.Normal = MakeColor (Color.White, Color.DarkGray);
+ Colors.Menu.Focus = MakeColor (Color.White, Color.Black);
+ Colors.Menu.HotNormal = MakeColor (Color.BrightYellow, Color.DarkGray);
+ Colors.Menu.HotFocus = MakeColor (Color.BrightYellow, Color.Black);
+ Colors.Menu.Disabled = MakeColor (Color.Gray, Color.DarkGray);
+
+ Colors.Error.Normal = MakeColor (Color.Red, Color.White);
+ Colors.Error.Focus = MakeColor (Color.Black, Color.BrightRed);
+ Colors.Error.HotNormal = MakeColor (Color.Black, Color.White);
+ Colors.Error.HotFocus = MakeColor (Color.BrightRed, Color.Gray);
+ Colors.Error.Disabled = MakeColor (Color.DarkGray, Color.White);
+ }
}
}
diff --git a/UICatalog/Scenarios/GraphViewExample.cs b/UICatalog/Scenarios/GraphViewExample.cs
index 3e5890a7b..8404f044b 100644
--- a/UICatalog/Scenarios/GraphViewExample.cs
+++ b/UICatalog/Scenarios/GraphViewExample.cs
@@ -101,7 +101,8 @@ namespace UICatalog.Scenarios {
about.Text = "Housing Expenditures by income thirds 1996-2003";
- var black = Application.Driver.MakeAttribute (graphView.ColorScheme.Normal.Foreground, Color.Black);
+ var fore = graphView.ColorScheme.Normal.Foreground == Color.Black ? Color.White : graphView.ColorScheme.Normal.Foreground;
+ var black = Application.Driver.MakeAttribute (fore, Color.Black);
var cyan = Application.Driver.MakeAttribute (Color.BrightCyan, Color.Black);
var magenta = Application.Driver.MakeAttribute (Color.BrightMagenta, Color.Black);
var red = Application.Driver.MakeAttribute (Color.BrightRed, Color.Black);
@@ -138,7 +139,7 @@ namespace UICatalog.Scenarios {
graphView.AxisY.Minimum = 0;
- var legend = new LegendAnnotation (new Rect (graphView.Bounds.Width - 20,0, 20, 5));
+ var legend = new LegendAnnotation (new Rect (graphView.Bounds.Width - 20, 0, 20, 5));
legend.AddEntry (new GraphCellToRender (stiple, series.SubSeries.ElementAt (0).OverrideBarColor), "Lower Third");
legend.AddEntry (new GraphCellToRender (stiple, series.SubSeries.ElementAt (1).OverrideBarColor), "Middle Third");
legend.AddEntry (new GraphCellToRender (stiple, series.SubSeries.ElementAt (2).OverrideBarColor), "Upper Third");
@@ -540,26 +541,19 @@ namespace UICatalog.Scenarios {
var driver = Application.Driver;
int x = start.X;
- for(int y = end.Y; y <= start.Y; y++) {
+ for (int y = end.Y; y <= start.Y; y++) {
var height = graph.ScreenToGraphSpace (x, y).Y;
if (height >= 85) {
- driver.SetAttribute(red);
- }
- else
- if (height >= 66) {
+ driver.SetAttribute (red);
+ } else if (height >= 66) {
driver.SetAttribute (brightred);
- }
- else
- if (height >= 45) {
+ } else if (height >= 45) {
driver.SetAttribute (brightyellow);
- }
- else
- if (height >= 25) {
+ } else if (height >= 25) {
driver.SetAttribute (brightgreen);
- }
- else{
+ } else {
driver.SetAttribute (green);
}
@@ -683,9 +677,8 @@ namespace UICatalog.Scenarios {
private void Margin (bool left, bool increase)
{
if (left) {
- graphView.MarginLeft = (uint)Math.Max(0,graphView.MarginLeft + (increase ? 1 : -1));
- }
- else {
+ graphView.MarginLeft = (uint)Math.Max (0, graphView.MarginLeft + (increase ? 1 : -1));
+ } else {
graphView.MarginBottom = (uint)Math.Max (0, graphView.MarginBottom + (increase ? 1 : -1));
}