-
Notifications
You must be signed in to change notification settings - Fork 200
/
Makers.cs
105 lines (92 loc) · 3.23 KB
/
Makers.cs
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
using System;
using System.Drawing;
using ClassicalSharp;
using Launcher.Gui.Views;
namespace Launcher.Gui.Widgets {
/// <summary> Helper methods to construct widgets. </summary>
public static class Makers {
public static Widget Button(IView view, string text, int width, int height, Font font) {
ButtonWidget widget;
if (view.widgets[view.widgetIndex] != null) {
widget = (ButtonWidget)view.widgets[view.widgetIndex];
} else {
widget = new ButtonWidget(view.game);
widget.Text = text;
view.widgets[view.widgetIndex] = widget;
}
widget.Active = false;
widget.SetDrawData(view.game.Drawer, text, font, width, height);
view.widgetIndex++;
return widget;
}
public static Widget Label(IView view, string text, Font font) {
LabelWidget widget;
if (view.widgets[view.widgetIndex] != null) {
widget = (LabelWidget)view.widgets[view.widgetIndex];
} else {
widget = new LabelWidget(view.game, font);
view.widgets[view.widgetIndex] = widget;
}
widget.SetDrawData(view.game.Drawer, text);
view.widgetIndex++;
return widget;
}
public static Widget Checkbox(IView view, bool initValue, int size) {
CheckboxWidget widget;
if (view.widgets[view.widgetIndex] != null) {
widget = (CheckboxWidget)view.widgets[view.widgetIndex];
} else {
widget = new CheckboxWidget(view.game, size, size);
widget.Value = initValue;
view.widgets[view.widgetIndex] = widget;
}
view.widgetIndex++;
return widget;
}
public static Widget Input(IView view, string text, int width, Font inputFont,
Font inputHintFont, bool password, int maxChars, string hint) {
InputWidget widget;
if (view.widgets[view.widgetIndex] != null) {
widget = (InputWidget)view.widgets[view.widgetIndex];
} else {
widget = new InputWidget(view.game);
widget.Password = password;
widget.Chars.MaxChars = maxChars;
widget.HintText = hint;
view.widgets[view.widgetIndex] = widget;
}
widget.SetDrawData(view.game.Drawer, text,
inputFont, inputHintFont, width, 30);
view.widgetIndex++;
return widget;
}
public static Widget Slider(IView view, int width, int height,
int initValue, int maxValue,
PackedCol progressCol) {
SliderWidget widget;
if (view.widgets[view.widgetIndex] != null) {
widget = (SliderWidget)view.widgets[view.widgetIndex];
} else {
widget = new SliderWidget(view.game, width, height);
view.widgets[view.widgetIndex] = widget;
widget.Value = initValue;
widget.MaxValue = maxValue;
}
widget.ProgressColour = progressCol;
view.widgetIndex++;
return widget;
}
public static Widget Bitmap(IView view, byte[] indices,
PackedCol[] palette, int size) {
BitmapWidget widget;
if (view.widgets[view.widgetIndex] != null) {
widget = (BitmapWidget)view.widgets[view.widgetIndex];
} else {
widget = new BitmapWidget(view.game, size, indices, palette);
view.widgets[view.widgetIndex] = widget;
}
view.widgetIndex++;
return widget;
}
}
}