From 60af0b389dfd98f05278f3259485d1d2349d2012 Mon Sep 17 00:00:00 2001 From: lempamo Date: Fri, 8 Sep 2017 11:03:22 -0400 Subject: [PATCH 1/2] WIP ClassicTextbox --- Histacom2.Engine/Histacom2.Engine.csproj | 3 ++ Histacom2.Engine/Theme.cs | 10 ++++++ Histacom2.Engine/UI/ClassicTextbox.cs | 44 ++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 Histacom2.Engine/UI/ClassicTextbox.cs diff --git a/Histacom2.Engine/Histacom2.Engine.csproj b/Histacom2.Engine/Histacom2.Engine.csproj index 9b186d8..e8b62bc 100644 --- a/Histacom2.Engine/Histacom2.Engine.csproj +++ b/Histacom2.Engine/Histacom2.Engine.csproj @@ -94,6 +94,9 @@ Component + + Component + Component diff --git a/Histacom2.Engine/Theme.cs b/Histacom2.Engine/Theme.cs index 5b5ae50..8385062 100644 --- a/Histacom2.Engine/Theme.cs +++ b/Histacom2.Engine/Theme.cs @@ -24,6 +24,8 @@ public class Theme public Font buttonFont { get; set; } + public Color windowColor { get; set; } + public Color activeTitleBarColor { get; set; } public Color activeTitleTextColor { get; set; } public Color inactiveTitleBarColor { get; set; } @@ -52,6 +54,8 @@ public Default95Theme() buttonFont = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular); + windowColor = Color.White; + activeTitleBarColor = Color.Navy; activeTitleTextColor = Color.White; inactiveTitleBarColor = Color.Gray; @@ -80,6 +84,8 @@ public Default98Theme() buttonFont = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular); + windowColor = Color.White; + activeTitleBarColor = Color.Navy; activeTitleTextColor = Color.White; inactiveTitleBarColor = Color.Gray; @@ -108,6 +114,8 @@ public DangerousCreaturesTheme() buttonFont = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold); + windowColor = Color.FromArgb(184, 184, 184); + activeTitleBarColor = Color.Teal; activeTitleTextColor = Color.White; inactiveTitleBarColor = Color.FromArgb(72, 72, 72); @@ -132,6 +140,8 @@ public InsideComputerTheme() buttonFont = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold); + windowColor = Color.White; + activeTitleBarColor = Color.FromArgb(224, 0, 0); activeTitleTextColor = Color.White; inactiveTitleBarColor = Color.FromArgb(96, 168, 128); diff --git a/Histacom2.Engine/UI/ClassicTextbox.cs b/Histacom2.Engine/UI/ClassicTextbox.cs new file mode 100644 index 0000000..efe85a4 --- /dev/null +++ b/Histacom2.Engine/UI/ClassicTextbox.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Histacom2.Engine.UI +{ + public class ClassicTextbox : Control + { + public ClassicTextbox() : base() + { + + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + var textboxcolor = Color.Silver; + if (SaveSystem.currentTheme != null) textboxcolor = SaveSystem.currentTheme.windowColor; + + if (SaveSystem.currentTheme != null) BackColor = SaveSystem.currentTheme.threeDObjectsColor; + else BackColor = Color.White; + + var _lightBack = Paintbrush.GetLightFromColor(textboxcolor); + var _darkBack = Paintbrush.GetDarkFromColor(textboxcolor); + + var g = e.Graphics; + g.Clear(BackColor); + + g.DrawLine(new Pen(_darkBack), 0, 0, Width - 2, 0); + g.DrawLine(new Pen(_lightBack), Width - 1, 0, Width - 1, Height - 1); + g.DrawLine(new Pen(_lightBack), 0, Height - 1, Width - 1, Height - 1); + g.DrawLine(new Pen(_darkBack), 0, 0, 0, Height - 2); + g.DrawLine(Pens.Black, 1, 1, Width - 3, 1); + g.DrawLine(Pens.Black, 1, 1, 1, Height - 3); + g.DrawLine(new Pen(textboxcolor), 1, Height - 2, Width - 2, Height - 2); + g.DrawLine(new Pen(textboxcolor), Width - 2, Height - 2, Width - 2, 1); + } + } +} From c11ba68e8f319acc62b72259235a04b12892bffa Mon Sep 17 00:00:00 2001 From: lempamo Date: Sat, 9 Sep 2017 19:16:44 -0400 Subject: [PATCH 2/2] finished the look of the textbox, but it doesnt work --- Histacom2.Engine/UI/ClassicTextbox.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Histacom2.Engine/UI/ClassicTextbox.cs b/Histacom2.Engine/UI/ClassicTextbox.cs index efe85a4..e38af16 100644 --- a/Histacom2.Engine/UI/ClassicTextbox.cs +++ b/Histacom2.Engine/UI/ClassicTextbox.cs @@ -10,9 +10,12 @@ namespace Histacom2.Engine.UI { public class ClassicTextbox : Control { + public bool UseSystemPasswordChar { get; set; } + public ClassicTextbox() : base() { - + if (SaveSystem.currentTheme != null) Font = SaveSystem.currentTheme.buttonFont; + else Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular); } protected override void OnPaint(PaintEventArgs e) @@ -28,9 +31,16 @@ protected override void OnPaint(PaintEventArgs e) var _lightBack = Paintbrush.GetLightFromColor(textboxcolor); var _darkBack = Paintbrush.GetDarkFromColor(textboxcolor); + if (SaveSystem.currentTheme != null) Font = SaveSystem.currentTheme.buttonFont; + else Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular); + var g = e.Graphics; g.Clear(BackColor); + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; + if (UseSystemPasswordChar) g.DrawString(new string('●', Text.Length), Font, Brushes.Black, 3, 3); + else g.DrawString(Text, Font, Brushes.Black, 3, 3); + g.DrawLine(new Pen(_darkBack), 0, 0, Width - 2, 0); g.DrawLine(new Pen(_lightBack), Width - 1, 0, Width - 1, Height - 1); g.DrawLine(new Pen(_lightBack), 0, Height - 1, Width - 1, Height - 1);