-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathProgressBarManipulator.cs
More file actions
53 lines (48 loc) · 1.5 KB
/
ProgressBarManipulator.cs
File metadata and controls
53 lines (48 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Windows.Forms;
namespace DigglesModManager
{
public class ProgressBarManipulator
{
private readonly Form _form;
private readonly ToolStripProgressBar _modProgressStatusBar;
public ProgressBarManipulator(Form form, ToolStripProgressBar modProgressStatusBar)
{
_form = form;
_modProgressStatusBar = modProgressStatusBar;
}
public bool Reset(int max = 1)
{
if (_form.InvokeRequired)
{
return (bool)_form.Invoke((Func<int, bool>)Reset, max);
}
_modProgressStatusBar.Value = 0;
_modProgressStatusBar.Maximum = max;
_modProgressStatusBar.Visible = true;
return true;
}
public bool Increment(int increment = 1)
{
if (_form.InvokeRequired)
{
return (bool)_form.Invoke((Func<int, bool>)Increment, increment);
}
if (_modProgressStatusBar.Maximum > _modProgressStatusBar.Value)
{
_modProgressStatusBar.Value += increment;
}
return true;
}
public bool Finish()
{
if (_form.InvokeRequired)
{
return (bool)_form.Invoke((Func<bool>)Finish);
}
_modProgressStatusBar.Value = _modProgressStatusBar.Maximum;
//modProgressStatusBar.Visible = false;
return true;
}
}
}