aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms/Controls/ShiftedProgressBar.cs
diff options
context:
space:
mode:
authorwilliam341 <[email protected]>2017-06-18 16:43:30 -0700
committerGitHub <[email protected]>2017-06-18 16:43:30 -0700
commitba80dcf3f80018cbb041b62ad8a40268427d1311 (patch)
treef0bd18b2355d34c07c744c3cd82a4725a799eecd /ShiftOS.WinForms/Controls/ShiftedProgressBar.cs
parent771c20cfb3a703e0f1550fdcf9eb07b78298c944 (diff)
parent12acff8742f4c64976bfabee1b70dc515190fc7c (diff)
downloadshiftos_thereturn-ba80dcf3f80018cbb041b62ad8a40268427d1311.tar.gz
shiftos_thereturn-ba80dcf3f80018cbb041b62ad8a40268427d1311.tar.bz2
shiftos_thereturn-ba80dcf3f80018cbb041b62ad8a40268427d1311.zip
Merge pull request #2 from shiftos-game/master
wew
Diffstat (limited to 'ShiftOS.WinForms/Controls/ShiftedProgressBar.cs')
-rw-r--r--ShiftOS.WinForms/Controls/ShiftedProgressBar.cs88
1 files changed, 51 insertions, 37 deletions
diff --git a/ShiftOS.WinForms/Controls/ShiftedProgressBar.cs b/ShiftOS.WinForms/Controls/ShiftedProgressBar.cs
index ceaff02..c5a6d05 100644
--- a/ShiftOS.WinForms/Controls/ShiftedProgressBar.cs
+++ b/ShiftOS.WinForms/Controls/ShiftedProgressBar.cs
@@ -140,51 +140,65 @@ namespace ShiftOS.WinForms.Controls
protected override void OnPaint(PaintEventArgs pe)
{
- pe.Graphics.Clear(this.RealBackColor);
- if(RealBackgroundImage != null)
+ try
{
- pe.Graphics.FillRectangle(new TextureBrush(RealBackgroundImage), new Rectangle(0, 0, this.Width, this.Height));
- }
- switch (Style)
- {
- case ProgressBarStyle.Continuous:
- double width = linear(this.Value, 0, this.Maximum, 0, this.Width);
- if (ProgressImage != null)
- {
- pe.Graphics.FillRectangle(new TextureBrush(ProgressImage), new RectangleF(0, 0, (float)width, this.Height));
- }
- else
- {
- pe.Graphics.FillRectangle(new SolidBrush(ProgressColor), new RectangleF(0, 0, (float)width, this.Height));
- }
- break;
- case ProgressBarStyle.Blocks:
- int block_count = this.Width / (this.BlockSize + 2);
- int blocks = (int)linear(this.Value, 0, this.Maximum, 0, block_count);
- for(int i = 0; i < blocks - 1; i++)
- {
- int position = i * (BlockSize + 2);
+ pe.Graphics.Clear(this.RealBackColor);
+ if (RealBackgroundImage != null)
+ {
+ pe.Graphics.FillRectangle(new TextureBrush(RealBackgroundImage), new Rectangle(0, 0, this.Width, this.Height));
+ }
+ switch (Style)
+ {
+ case ProgressBarStyle.Continuous:
+ double width = linear(this.Value, 0, this.Maximum, 0, this.Width);
if (ProgressImage != null)
{
- pe.Graphics.FillRectangle(new TextureBrush(ProgressImage), new Rectangle(position, 0, BlockSize, this.Height));
+ pe.Graphics.FillRectangle(new TextureBrush(ProgressImage), new RectangleF(0, 0, (float)width, this.Height));
+ }
+ else
+ {
+ pe.Graphics.FillRectangle(new SolidBrush(ProgressColor), new RectangleF(0, 0, (float)width, this.Height));
+ }
+ break;
+ case ProgressBarStyle.Blocks:
+ int block_count = this.Width / (this.BlockSize + 2);
+ int blocks = (int)linear(this.Value, 0, this.Maximum, 0, block_count);
+ for (int i = 0; i < blocks - 1; i++)
+ {
+ int position = i * (BlockSize + 2);
+ if (ProgressImage != null)
+ {
+ pe.Graphics.FillRectangle(new TextureBrush(ProgressImage), new Rectangle(position, 0, BlockSize, this.Height));
+ }
+ else
+ {
+ pe.Graphics.FillRectangle(new SolidBrush(ProgressColor), new Rectangle(position, 0, BlockSize, this.Height));
+ }
+ }
+ break;
+ case ProgressBarStyle.Marquee:
+ if (ProgressImage != null)
+ {
+ pe.Graphics.FillRectangle(new TextureBrush(ProgressImage), new Rectangle(_marqueePos, 0, this.Width / 4, this.Height));
}
else
{
- pe.Graphics.FillRectangle(new SolidBrush(ProgressColor), new Rectangle(position, 0, BlockSize, this.Height));
+ pe.Graphics.FillRectangle(new SolidBrush(ProgressColor), new Rectangle(_marqueePos, 0, this.Width / 4, this.Height));
}
- }
- break;
- case ProgressBarStyle.Marquee:
- if (ProgressImage != null)
- {
- pe.Graphics.FillRectangle(new TextureBrush(ProgressImage), new Rectangle(_marqueePos, 0, this.Width / 4, this.Height));
- }
- else
- {
- pe.Graphics.FillRectangle(new SolidBrush(ProgressColor), new Rectangle(_marqueePos, 0, this.Width / 4, this.Height));
- }
- break;
+ break;
+ }
+ }
+ catch
+ {
+ pe.Graphics.Clear(Color.Black);
+ string text = "Preview mode. This control can't be drawn without an initiated ShiftOS engine.";
+ SizeF sz = pe.Graphics.MeasureString(text, this.Font);
+ PointF loc = new PointF(
+ (this.Width - sz.Width) / 2,
+ (this.Height - sz.Height) / 2
+ );
+ pe.Graphics.DrawString(text, Font, new SolidBrush(Color.White), loc);
}
}