From 99fef5c57360f07259fc86f433bed8a9ab59c48e Mon Sep 17 00:00:00 2001 From: lempamo Date: Tue, 22 Aug 2017 20:44:03 -0400 Subject: gtn things --- TimeHACK.Engine/TimeHACK.Engine.csproj | 12 ++ TimeHACK.Engine/UI/ClassicButton.Designer.cs | 91 ++++++++ TimeHACK.Engine/UI/ClassicButton.cs | 58 +++++ TimeHACK.Engine/UI/ClassicButton.resx | 120 +++++++++++ TimeHACK.Engine/UI/IProgressBar.cs | 234 +++++++++++++++++++++ .../OS/Win95/Win95Apps/GuessTheNumber.Designer.cs | 125 +++++++++++ TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.cs | 20 ++ .../OS/Win95/Win95Apps/GuessTheNumber.resx | 120 +++++++++++ TimeHACK.Main/Properties/Resources.Designer.cs | 60 ++++++ TimeHACK.Main/Properties/Resources.resx | 18 ++ TimeHACK.Main/Resources/ButtonPattern.png | Bin 0 -> 165 bytes .../Resources/GuessTheNumber/GTN95_Check.png | Bin 0 -> 308 bytes .../GuessTheNumber/GTN95_CheckClicked.png | Bin 0 -> 314 bytes .../Resources/GuessTheNumber/GTN95_Higher.png | Bin 0 -> 363 bytes .../Resources/GuessTheNumber/GTN95_Restart.png | Bin 0 -> 376 bytes .../GuessTheNumber/GTN95_RestartClicked.png | Bin 0 -> 377 bytes TimeHACK.Main/TimeHACK.Main.csproj | 18 +- TimeHACK.Main/UI/IProgressBar.cs | 234 --------------------- 18 files changed, 873 insertions(+), 237 deletions(-) create mode 100644 TimeHACK.Engine/UI/ClassicButton.Designer.cs create mode 100644 TimeHACK.Engine/UI/ClassicButton.cs create mode 100644 TimeHACK.Engine/UI/ClassicButton.resx create mode 100644 TimeHACK.Engine/UI/IProgressBar.cs create mode 100644 TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.Designer.cs create mode 100644 TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.cs create mode 100644 TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.resx create mode 100644 TimeHACK.Main/Resources/ButtonPattern.png create mode 100644 TimeHACK.Main/Resources/GuessTheNumber/GTN95_Check.png create mode 100644 TimeHACK.Main/Resources/GuessTheNumber/GTN95_CheckClicked.png create mode 100644 TimeHACK.Main/Resources/GuessTheNumber/GTN95_Higher.png create mode 100644 TimeHACK.Main/Resources/GuessTheNumber/GTN95_Restart.png create mode 100644 TimeHACK.Main/Resources/GuessTheNumber/GTN95_RestartClicked.png delete mode 100644 TimeHACK.Main/UI/IProgressBar.cs diff --git a/TimeHACK.Engine/TimeHACK.Engine.csproj b/TimeHACK.Engine/TimeHACK.Engine.csproj index f326107..056d4dc 100644 --- a/TimeHACK.Engine/TimeHACK.Engine.csproj +++ b/TimeHACK.Engine/TimeHACK.Engine.csproj @@ -78,6 +78,15 @@ WinClassic.cs + + UserControl + + + ClassicButton.cs + + + Component + @@ -104,6 +113,9 @@ WinClassic.cs + + ClassicButton.cs + diff --git a/TimeHACK.Engine/UI/ClassicButton.Designer.cs b/TimeHACK.Engine/UI/ClassicButton.Designer.cs new file mode 100644 index 0000000..b6033b2 --- /dev/null +++ b/TimeHACK.Engine/UI/ClassicButton.Designer.cs @@ -0,0 +1,91 @@ +namespace TimeHACK.Engine.UI +{ + partial class ClassicButton + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.borderpart = new System.Windows.Forms.Panel(); + this.graystuff = new System.Windows.Forms.Panel(); + this.lessgraystuff = new System.Windows.Forms.Label(); + this.borderpart.SuspendLayout(); + this.graystuff.SuspendLayout(); + this.SuspendLayout(); + // + // borderpart + // + this.borderpart.BackColor = System.Drawing.Color.White; + this.borderpart.Controls.Add(this.graystuff); + this.borderpart.Location = new System.Drawing.Point(0, 0); + this.borderpart.Name = "borderpart"; + this.borderpart.Size = new System.Drawing.Size(99, 24); + this.borderpart.TabIndex = 0; + // + // graystuff + // + this.graystuff.BackColor = System.Drawing.Color.Gray; + this.graystuff.Controls.Add(this.lessgraystuff); + this.graystuff.Location = new System.Drawing.Point(1, 1); + this.graystuff.Name = "graystuff"; + this.graystuff.Size = new System.Drawing.Size(98, 23); + this.graystuff.TabIndex = 0; + // + // lessgraystuff + // + this.lessgraystuff.BackColor = System.Drawing.Color.Silver; + this.lessgraystuff.Location = new System.Drawing.Point(0, 0); + this.lessgraystuff.Margin = new System.Windows.Forms.Padding(0); + this.lessgraystuff.Name = "lessgraystuff"; + this.lessgraystuff.Size = new System.Drawing.Size(97, 22); + this.lessgraystuff.TabIndex = 0; + this.lessgraystuff.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lessgraystuff.Paint += new System.Windows.Forms.PaintEventHandler(this.lessgraystuff_Paint); + // + // ClassicButton + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.Black; + this.Controls.Add(this.borderpart); + this.Name = "ClassicButton"; + this.Size = new System.Drawing.Size(100, 25); + this.Paint += new System.Windows.Forms.PaintEventHandler(this.ClassicButton_Paint); + this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.ClassicButton_MouseDown); + this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.ClassicButton_MouseUp); + this.Resize += new System.EventHandler(this.ClassicButton_Resize); + this.borderpart.ResumeLayout(false); + this.graystuff.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel borderpart; + private System.Windows.Forms.Panel graystuff; + private System.Windows.Forms.Label lessgraystuff; + } +} diff --git a/TimeHACK.Engine/UI/ClassicButton.cs b/TimeHACK.Engine/UI/ClassicButton.cs new file mode 100644 index 0000000..e61b564 --- /dev/null +++ b/TimeHACK.Engine/UI/ClassicButton.cs @@ -0,0 +1,58 @@ +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; +using System.Windows.Forms; + +namespace TimeHACK.Engine.UI +{ + public partial class ClassicButton : UserControl + { + public ClassicButton() + { + InitializeComponent(); + } + + private void ClassicButton_SizeChanged(object sender, EventArgs e) + { + + } + + private void ClassicButton_MouseDown(object sender, MouseEventArgs e) + { + this.BackColor = Color.White; + borderpart.BackColor = Color.Black; + lessgraystuff.Location = new Point(1, 1); + } + + private void ClassicButton_Paint(object sender, PaintEventArgs e) + { + e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; + base.OnPaint(e); + } + + private void lessgraystuff_Paint(object sender, PaintEventArgs e) + { + e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; + base.OnPaint(e); + } + + private void ClassicButton_MouseUp(object sender, MouseEventArgs 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); + } + } +} \ No newline at end of file diff --git a/TimeHACK.Engine/UI/ClassicButton.resx b/TimeHACK.Engine/UI/ClassicButton.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/TimeHACK.Engine/UI/ClassicButton.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TimeHACK.Engine/UI/IProgressBar.cs b/TimeHACK.Engine/UI/IProgressBar.cs new file mode 100644 index 0000000..d16debf --- /dev/null +++ b/TimeHACK.Engine/UI/IProgressBar.cs @@ -0,0 +1,234 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace TimeHACK.UI +{ + public class ProgressBar : Control + { + private Color _pColor = Color.DarkBlue; + private ProgressBarStyle _style = ProgressBarStyle.Continuous; + + private Timer RedrawTimer = null; + + public Color ProgressColor + { + get + { + return _pColor; + } + set + { + _pColor = value; Refresh(); + } + } + + + public ProgressBarStyle Style + { + get + { + return _style; + } + set + { + _style = value; Refresh(); + } + } + + + private double _max = 100.0; + private double _min = 0.0; + + public double Maximum + { + get + { + return _max; + } + set + { + _max = value; Refresh(); + } + } + public double Minimum + { + get + { + return _min; + } + set + { + _min = value; Refresh(); + } + } + + + private int _blockWidth = 14; + + public int BlockWidth + { + get + { + return _blockWidth; + } + set + { + _blockWidth = value; + Refresh(); + } + } + + private int _blockSpacing = 2; + + public int BlockSpacing + { + get + { + return _blockSpacing; + } + set + { + _blockSpacing = value; + Refresh(); + } + } + + public ProgressBar() : base() + { + MarqueeWidth = 125; + BlockWidth = 20; + BlockSpacing = 5; + Minimum = 0.00; + Maximum = 100.0; + Style = ProgressBarStyle.Continuous; + ProgressColor = Color.DarkBlue; + RedrawTimer = new Timer(); + RedrawTimer.Tick += (o, a) => + { + if (this.Style == ProgressBarStyle.Marquee) + { + if (_marqueePos >= this.Width) + _marqueePos = 0; + else + _marqueePos++; + this.Refresh(); + } + }; + RedrawTimer.Interval = 50; + } + + private double _value = 0.00; + + public double Value + { + get + { + return _value; + } + set + { + if (value < Minimum || value > Maximum) + throw new ArgumentOutOfRangeException("The value is outside the minimum and maximum range."); + this.Refresh(); + _value = value; + } + } + + private int _marqueeWidth = 14; + + public int MarqueeWidth + { + get + { + return _marqueeWidth; + } + set + { + _marqueeWidth = value; + Refresh(); + } + } + + private bool _showText = false; + + public bool ShowText + { + get + { + return _showText; + } + set + { + _showText = value; + Refresh(); + } + } + + protected override void OnVisibleChanged(EventArgs e) + { + if (Visible) + RedrawTimer.Start(); + else + RedrawTimer.Stop(); + } + + private int _marqueePos = 0; + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + var g = e.Graphics; + g.Clear(BackColor); + //Stolen from the ShiftOS code :3 + switch (Style) + { + case ProgressBarStyle.Continuous: + double width = linear(this.Value, this.Minimum, this.Maximum, 0, this.Width); + g.FillRectangle(new SolidBrush(ProgressColor), new RectangleF(0, 0, (float)width, this.Height)); + break; + case ProgressBarStyle.Blocks: + int block_count = this.Width / (this.BlockWidth + this.BlockSpacing); + int blocks = (int)linear(this.Value, this.Minimum, this.Maximum, 0, block_count); + for (int i = 0; i < blocks - 1; i++) + { + int position = i * (BlockWidth + BlockSpacing); + g.FillRectangle(new SolidBrush(ProgressColor), new Rectangle(position, 0, BlockWidth, this.Height)); + } + break; + case ProgressBarStyle.Marquee: + g.FillRectangle(new SolidBrush(ProgressColor), new Rectangle(_marqueePos, 0, MarqueeWidth, this.Height)); + break; + } + if (ShowText) + { + var f = this.Font; + var t = this.Text; + var size = g.MeasureString(t, f); + var loc = new PointF( + (this.Width - size.Width) / 2, + (this.Height - size.Height) / 2 + ); + var color = this.ForeColor; + g.DrawString(t, f, new SolidBrush(color), loc); + } + + } + + /// + /// Simple linear interpolation algorithm. (http://stackoverflow.com/questions/12838007/c-sharp-linear-interpolation) + /// + private double linear(double x, double x0, double x1, double y0, double y1) + { + if ((x1 - x0) == 0) + { + return (y0 + y1) / 2; + } + return y0 + (x - x0) * (y1 - y0) / (x1 - x0); + } + } +} diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.Designer.cs b/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.Designer.cs new file mode 100644 index 0000000..1c3190f --- /dev/null +++ b/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.Designer.cs @@ -0,0 +1,125 @@ +namespace TimeHACK.OS.Win95.Win95Apps +{ + partial class GuessTheNumber + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(20, 10); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(224, 13); + this.label1.TabIndex = 0; + this.label1.Text = "I am thinking of a number between 1 and 100."; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(16, 36); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(40, 13); + this.label2.TabIndex = 1; + this.label2.Text = "Guess:"; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(58, 33); + this.textBox1.MaxLength = 3; + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(33, 20); + this.textBox1.TabIndex = 2; + // + // pictureBox1 + // + this.pictureBox1.BackgroundImage = global::TimeHACK.Properties.Resources.GTN95_Check; + this.pictureBox1.Location = new System.Drawing.Point(191, 30); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(55, 27); + this.pictureBox1.TabIndex = 3; + this.pictureBox1.TabStop = false; + // + // pictureBox2 + // + this.pictureBox2.Location = new System.Drawing.Point(97, 31); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(88, 24); + this.pictureBox2.TabIndex = 4; + this.pictureBox2.TabStop = false; + // + // pictureBox3 + // + this.pictureBox3.BackgroundImage = global::TimeHACK.Properties.Resources.GTN95_Restart; + this.pictureBox3.Location = new System.Drawing.Point(19, 62); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.Size = new System.Drawing.Size(227, 23); + this.pictureBox3.TabIndex = 5; + this.pictureBox3.TabStop = false; + // + // GuessTheNumber + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.Silver; + this.Controls.Add(this.pictureBox3); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Name = "GuessTheNumber"; + this.Size = new System.Drawing.Size(268, 100); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.PictureBox pictureBox3; + } +} diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.cs b/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.cs new file mode 100644 index 0000000..112cb93 --- /dev/null +++ b/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.cs @@ -0,0 +1,20 @@ +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; +using System.Windows.Forms; + +namespace TimeHACK.OS.Win95.Win95Apps +{ + public partial class GuessTheNumber : UserControl + { + public GuessTheNumber() + { + InitializeComponent(); + } + } +} diff --git a/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.resx b/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/TimeHACK.Main/OS/Win95/Win95Apps/GuessTheNumber.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/TimeHACK.Main/Properties/Resources.Designer.cs b/TimeHACK.Main/Properties/Resources.Designer.cs index cbdc265..1ea1211 100644 --- a/TimeHACK.Main/Properties/Resources.Designer.cs +++ b/TimeHACK.Main/Properties/Resources.Designer.cs @@ -135,6 +135,16 @@ namespace TimeHACK.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ButtonPattern { + get { + object obj = ResourceManager.GetObject("ButtonPattern", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -184,6 +194,56 @@ namespace TimeHACK.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap GTN95_Check { + get { + object obj = ResourceManager.GetObject("GTN95_Check", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap GTN95_CheckClicked { + get { + object obj = ResourceManager.GetObject("GTN95_CheckClicked", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap GTN95_Higher { + get { + object obj = ResourceManager.GetObject("GTN95_Higher", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap GTN95_Restart { + get { + object obj = ResourceManager.GetObject("GTN95_Restart", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap GTN95_RestartClicked { + get { + object obj = ResourceManager.GetObject("GTN95_RestartClicked", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// diff --git a/TimeHACK.Main/Properties/Resources.resx b/TimeHACK.Main/Properties/Resources.resx index b86487a..3dfc2cd 100644 --- a/TimeHACK.Main/Properties/Resources.resx +++ b/TimeHACK.Main/Properties/Resources.resx @@ -792,6 +792,24 @@ ..\Resources\IE3\IE3_SwirlyThings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ButtonPattern.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GuessTheNumber\GTN95_Check.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GuessTheNumber\GTN95_CheckClicked.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GuessTheNumber\GTN95_Higher.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GuessTheNumber\GTN95_Restart.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GuessTheNumber\GTN95_RestartClicked.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\IE3\IE3_BackHover.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/TimeHACK.Main/Resources/ButtonPattern.png b/TimeHACK.Main/Resources/ButtonPattern.png new file mode 100644 index 0000000..beb676d Binary files /dev/null and b/TimeHACK.Main/Resources/ButtonPattern.png differ diff --git a/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Check.png b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Check.png new file mode 100644 index 0000000..f522a01 Binary files /dev/null and b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Check.png differ diff --git a/TimeHACK.Main/Resources/GuessTheNumber/GTN95_CheckClicked.png b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_CheckClicked.png new file mode 100644 index 0000000..590b0aa Binary files /dev/null and b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_CheckClicked.png differ diff --git a/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Higher.png b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Higher.png new file mode 100644 index 0000000..6c059cf Binary files /dev/null and b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Higher.png differ diff --git a/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Restart.png b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Restart.png new file mode 100644 index 0000000..93bd9a6 Binary files /dev/null and b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_Restart.png differ diff --git a/TimeHACK.Main/Resources/GuessTheNumber/GTN95_RestartClicked.png b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_RestartClicked.png new file mode 100644 index 0000000..c70da96 Binary files /dev/null and b/TimeHACK.Main/Resources/GuessTheNumber/GTN95_RestartClicked.png differ diff --git a/TimeHACK.Main/TimeHACK.Main.csproj b/TimeHACK.Main/TimeHACK.Main.csproj index b70ee75..93748f1 100644 --- a/TimeHACK.Main/TimeHACK.Main.csproj +++ b/TimeHACK.Main/TimeHACK.Main.csproj @@ -138,6 +138,12 @@ SurviveTheDay.cs + + UserControl + + + GuessTheNumber.cs + UserControl @@ -362,6 +368,9 @@ SurviveTheDay.cs + + GuessTheNumber.cs + 12padams1998.cs @@ -432,9 +441,6 @@ NewGameDialog.cs - - Component - Win95.cs Designer @@ -526,6 +532,12 @@ + + + + + + diff --git a/TimeHACK.Main/UI/IProgressBar.cs b/TimeHACK.Main/UI/IProgressBar.cs deleted file mode 100644 index d16debf..0000000 --- a/TimeHACK.Main/UI/IProgressBar.cs +++ /dev/null @@ -1,234 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace TimeHACK.UI -{ - public class ProgressBar : Control - { - private Color _pColor = Color.DarkBlue; - private ProgressBarStyle _style = ProgressBarStyle.Continuous; - - private Timer RedrawTimer = null; - - public Color ProgressColor - { - get - { - return _pColor; - } - set - { - _pColor = value; Refresh(); - } - } - - - public ProgressBarStyle Style - { - get - { - return _style; - } - set - { - _style = value; Refresh(); - } - } - - - private double _max = 100.0; - private double _min = 0.0; - - public double Maximum - { - get - { - return _max; - } - set - { - _max = value; Refresh(); - } - } - public double Minimum - { - get - { - return _min; - } - set - { - _min = value; Refresh(); - } - } - - - private int _blockWidth = 14; - - public int BlockWidth - { - get - { - return _blockWidth; - } - set - { - _blockWidth = value; - Refresh(); - } - } - - private int _blockSpacing = 2; - - public int BlockSpacing - { - get - { - return _blockSpacing; - } - set - { - _blockSpacing = value; - Refresh(); - } - } - - public ProgressBar() : base() - { - MarqueeWidth = 125; - BlockWidth = 20; - BlockSpacing = 5; - Minimum = 0.00; - Maximum = 100.0; - Style = ProgressBarStyle.Continuous; - ProgressColor = Color.DarkBlue; - RedrawTimer = new Timer(); - RedrawTimer.Tick += (o, a) => - { - if (this.Style == ProgressBarStyle.Marquee) - { - if (_marqueePos >= this.Width) - _marqueePos = 0; - else - _marqueePos++; - this.Refresh(); - } - }; - RedrawTimer.Interval = 50; - } - - private double _value = 0.00; - - public double Value - { - get - { - return _value; - } - set - { - if (value < Minimum || value > Maximum) - throw new ArgumentOutOfRangeException("The value is outside the minimum and maximum range."); - this.Refresh(); - _value = value; - } - } - - private int _marqueeWidth = 14; - - public int MarqueeWidth - { - get - { - return _marqueeWidth; - } - set - { - _marqueeWidth = value; - Refresh(); - } - } - - private bool _showText = false; - - public bool ShowText - { - get - { - return _showText; - } - set - { - _showText = value; - Refresh(); - } - } - - protected override void OnVisibleChanged(EventArgs e) - { - if (Visible) - RedrawTimer.Start(); - else - RedrawTimer.Stop(); - } - - private int _marqueePos = 0; - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - var g = e.Graphics; - g.Clear(BackColor); - //Stolen from the ShiftOS code :3 - switch (Style) - { - case ProgressBarStyle.Continuous: - double width = linear(this.Value, this.Minimum, this.Maximum, 0, this.Width); - g.FillRectangle(new SolidBrush(ProgressColor), new RectangleF(0, 0, (float)width, this.Height)); - break; - case ProgressBarStyle.Blocks: - int block_count = this.Width / (this.BlockWidth + this.BlockSpacing); - int blocks = (int)linear(this.Value, this.Minimum, this.Maximum, 0, block_count); - for (int i = 0; i < blocks - 1; i++) - { - int position = i * (BlockWidth + BlockSpacing); - g.FillRectangle(new SolidBrush(ProgressColor), new Rectangle(position, 0, BlockWidth, this.Height)); - } - break; - case ProgressBarStyle.Marquee: - g.FillRectangle(new SolidBrush(ProgressColor), new Rectangle(_marqueePos, 0, MarqueeWidth, this.Height)); - break; - } - if (ShowText) - { - var f = this.Font; - var t = this.Text; - var size = g.MeasureString(t, f); - var loc = new PointF( - (this.Width - size.Width) / 2, - (this.Height - size.Height) / 2 - ); - var color = this.ForeColor; - g.DrawString(t, f, new SolidBrush(color), loc); - } - - } - - /// - /// Simple linear interpolation algorithm. (http://stackoverflow.com/questions/12838007/c-sharp-linear-interpolation) - /// - private double linear(double x, double x0, double x1, double y0, double y1) - { - if ((x1 - x0) == 0) - { - return (y0 + y1) / 2; - } - return y0 + (x - x0) * (y1 - y0) / (x1 - x0); - } - } -} -- cgit v1.2.3