aboutsummaryrefslogtreecommitdiff
path: root/Histacom2.Engine/UI/ClassicButton.cs
diff options
context:
space:
mode:
authorlempamo <[email protected]>2017-09-04 20:14:19 -0400
committerlempamo <[email protected]>2017-09-04 20:14:19 -0400
commit1a970e69dada088c5f5ea82dd5683da9ae306ebe (patch)
tree1f77a784221a7565843624f321995ab8856e4a3a /Histacom2.Engine/UI/ClassicButton.cs
parent69d4465542fb00108576219d9c1da026f2e864b1 (diff)
downloadhistacom2-1a970e69dada088c5f5ea82dd5683da9ae306ebe.tar.gz
histacom2-1a970e69dada088c5f5ea82dd5683da9ae306ebe.tar.bz2
histacom2-1a970e69dada088c5f5ea82dd5683da9ae306ebe.zip
new classic buttons!
Diffstat (limited to 'Histacom2.Engine/UI/ClassicButton.cs')
-rw-r--r--Histacom2.Engine/UI/ClassicButton.cs77
1 files changed, 40 insertions, 37 deletions
diff --git a/Histacom2.Engine/UI/ClassicButton.cs b/Histacom2.Engine/UI/ClassicButton.cs
index 26629a8..e82a742 100644
--- a/Histacom2.Engine/UI/ClassicButton.cs
+++ b/Histacom2.Engine/UI/ClassicButton.cs
@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
-using System.ComponentModel;
using System.Drawing;
-using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -10,49 +8,54 @@ using System.Windows.Forms;
namespace Histacom2.Engine.UI
{
- public partial class ClassicButton : UserControl
+ public class ClassicButton : Control
{
- public ClassicButton()
- {
- InitializeComponent();
- }
-
- private void ClassicButton_SizeChanged(object sender, EventArgs e)
- {
+ private Color _lightBack = Color.White;
+ private Color _darkBack = Color.Gray;
- }
+ private bool _pressing = false;
- private void ClassicButton_MouseDown(object sender, MouseEventArgs e)
+ public ClassicButton() : base()
{
- this.BackColor = Color.White;
- borderpart.BackColor = Color.Black;
- lessgraystuff.Location = new Point(1, 1);
- }
+ if (SaveSystem.currentTheme != null) BackColor = SaveSystem.currentTheme.threeDObjectsColor;
+ else BackColor = Color.Silver;
+ _lightBack = ControlPaint.Light(BackColor, 50);
+ _darkBack = ControlPaint.Dark(BackColor, 50);
- private void ClassicButton_Paint(object sender, PaintEventArgs e)
- {
- e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
- base.OnPaint(e);
- }
+ if (SaveSystem.currentTheme != null) ForeColor = SaveSystem.currentTheme.threeDObjectsTextColor;
+ else ForeColor = Color.Black;
- private void lessgraystuff_Paint(object sender, PaintEventArgs e)
- {
- e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
- base.OnPaint(e);
+ MouseDown += (s, e) => { _pressing = true; Invalidate(); };
+ MouseUp += (s, e) => { _pressing = false; Invalidate(); };
}
- private void ClassicButton_MouseUp(object sender, MouseEventArgs e)
+ protected override void OnPaint(PaintEventArgs e)
{
- this.BackColor = Color.Black;
- borderpart.BackColor = Color.White;
- lessgraystuff.Location = new Point(0, 0);
- }
-
- private void ClassicButton_Resize(object sender, EventArgs e)
- {
- borderpart.Size = new Size(this.Width - 1, this.Height - 1);
- graystuff.Size = new Size(this.Width - 2, this.Height - 2);
- lessgraystuff.Size = new Size(this.Width - 3, this.Height - 3);
+ base.OnPaint(e);
+ var g = e.Graphics;
+ g.Clear(BackColor);
+
+ g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
+
+ if (_pressing)
+ {
+ g.FillRectangle(new SolidBrush(_lightBack), new Rectangle(0, 0, Width, Height));
+ g.FillRectangle(Brushes.Black, new Rectangle(0, 0, Width - 1, Height - 1));
+ g.FillRectangle(new SolidBrush(_darkBack), new Rectangle(1, 1, Width - 2, Height - 2));
+ g.FillRectangle(new SolidBrush(BackColor), new Rectangle(2, 2, Width - 3, Height - 3));
+
+ g.DrawString(Text, Font, new SolidBrush(ForeColor), (Width / 2) - (g.MeasureString(Text, Font).Width / 2) + 1, (Height / 2) - (g.MeasureString(Text, Font).Height / 2) + 1);
+ }
+ else
+ {
+ g.FillRectangle(Brushes.Black, new Rectangle(0, 0, Width, Height));
+ g.FillRectangle(new SolidBrush(_lightBack), new Rectangle(0, 0, Width - 1, Height - 1));
+ g.FillRectangle(new SolidBrush(_darkBack), new Rectangle(1, 1, Width - 2, Height - 2));
+ g.FillRectangle(new SolidBrush(BackColor), new Rectangle(1, 1, Width - 3, Height - 3));
+
+ g.DrawString(Text, Font, new SolidBrush(ForeColor), (Width / 2) - (g.MeasureString(Text, Font).Width / 2), (Height / 2) - (g.MeasureString(Text, Font).Height / 2));
+ }
}
+
}
-} \ No newline at end of file
+}