1 |
6 |
Kragenwar-3044 |
import "Turbine.UI"; |
2 |
|
Kragenwar-3044 |
|
3 |
|
Kragenwar-3044 |
SetupButtonBars = class(Turbine.UI.ListBox); |
4 |
|
Kragenwar-3044 |
|
5 |
|
Kragenwar-3044 |
-- helper functions |
6 |
|
Kragenwar-3044 |
local tt = function(width, height, control, text) |
7 |
|
Kragenwar-3044 |
local tooltip = KragenPlugs.UI.Tooltip(); |
8 |
|
Kragenwar-3044 |
tooltip:SetText(text); |
9 |
|
Kragenwar-3044 |
tooltip:SetControl(control); |
10 |
|
Kragenwar-3044 |
tooltip:SetSize(width, height); |
11 |
|
Kragenwar-3044 |
end |
12 |
|
Kragenwar-3044 |
|
13 |
|
Kragenwar-3044 |
local holder = function(parent, height) |
14 |
|
Kragenwar-3044 |
local container = Turbine.UI.Control(); |
15 |
|
Kragenwar-3044 |
container:SetSize(400, height); |
16 |
|
Kragenwar-3044 |
parent:AddItem(container); |
17 |
|
Kragenwar-3044 |
return container; |
18 |
|
Kragenwar-3044 |
end |
19 |
|
Kragenwar-3044 |
|
20 |
|
Kragenwar-3044 |
|
21 |
|
Kragenwar-3044 |
function SetupButtonBars:Constructor() |
22 |
|
Kragenwar-3044 |
Turbine.UI.ListBox.Constructor(self); |
23 |
|
Kragenwar-3044 |
|
24 |
|
Kragenwar-3044 |
self.current = nil; |
25 |
62 |
Valdacil-446 |
self.titlebars = { }; |
26 |
|
Valdacil-446 |
self.buttonbars = { }; |
27 |
74 |
Valdacil-446 |
self.bars = { }; |
28 |
62 |
Valdacil-446 |
|
29 |
6 |
Kragenwar-3044 |
self:SetOrientation(Turbine.UI.Orientation.Horizontal); |
30 |
|
Kragenwar-3044 |
self:SetMaxItemsPerLine(1); |
31 |
|
Kragenwar-3044 |
|
32 |
62 |
Valdacil-446 |
self:AddTitleBar("Button Bars"); |
33 |
74 |
Valdacil-446 |
|
34 |
|
Valdacil-446 |
local index = #self.bars + 1; |
35 |
|
Valdacil-446 |
local line = holder(self, 30); |
36 |
|
Valdacil-446 |
self.bars[index] = { }; |
37 |
|
Valdacil-446 |
self.bars[index].combobox = KragenPlugs.UI.ComboBox(); |
38 |
|
Valdacil-446 |
self.bars[index].combobox:SetParent(line); |
39 |
|
Valdacil-446 |
self.bars[index].combobox:SetSize(190, 20); |
40 |
76 |
Valdacil-446 |
self.bars[index].combobox:SetPosition(0, 0); |
41 |
74 |
Valdacil-446 |
self.bars[index].combobox:SetVisible(false); |
42 |
|
Valdacil-446 |
self.barslist = self.bars[index].combobox; |
43 |
|
Valdacil-446 |
self.barslist:SetVisible(true); |
44 |
|
Valdacil-446 |
|
45 |
|
Valdacil-446 |
self.bars[index].namebox = Turbine.UI.Lotro.TextBox(); |
46 |
|
Valdacil-446 |
self.bars[index].namebox:SetParent(line); |
47 |
|
Valdacil-446 |
self.bars[index].namebox:SetSize(180, 20); |
48 |
76 |
Valdacil-446 |
self.bars[index].namebox:SetPosition(210, 0); |
49 |
74 |
Valdacil-446 |
self.bars[index].namebox:SetFont(Turbine.UI.Lotro.Font.Verdana14); |
50 |
|
Valdacil-446 |
self.bars[index].namebox:SetMultiline(false); |
51 |
|
Valdacil-446 |
self.barsnamebox = self.bars[index].namebox; |
52 |
|
Valdacil-446 |
self.barsnamebox:SetVisible(true); |
53 |
|
Valdacil-446 |
|
54 |
|
Valdacil-446 |
index = #self.bars + 1; |
55 |
|
Valdacil-446 |
line = holder(self,30); |
56 |
|
Valdacil-446 |
self.bars[index] = { }; |
57 |
|
Valdacil-446 |
self.bars[index].buttonnew = Turbine.UI.Lotro.Button(); |
58 |
|
Valdacil-446 |
self.bars[index].buttonnew:SetParent(line); |
59 |
|
Valdacil-446 |
self.bars[index].buttonnew:SetPosition(60, 0); |
60 |
|
Valdacil-446 |
self.bars[index].buttonnew:SetSize(100, 22); |
61 |
|
Valdacil-446 |
self.bars[index].buttonnew:SetText("New"); |
62 |
|
Valdacil-446 |
self.barsbuttonnew = self.bars[index].buttonnew; |
63 |
|
Valdacil-446 |
self.barsbuttonnew:SetVisible(true); |
64 |
|
Valdacil-446 |
|
65 |
|
Valdacil-446 |
self.bars[index].buttonremove = Turbine.UI.Lotro.Button(); |
66 |
|
Valdacil-446 |
self.bars[index].buttonremove:SetParent(line); |
67 |
|
Valdacil-446 |
self.bars[index].buttonremove:SetPosition(240, 0); |
68 |
|
Valdacil-446 |
self.bars[index].buttonremove:SetSize(100, 22); |
69 |
|
Valdacil-446 |
self.bars[index].buttonremove:SetText("Remove"); |
70 |
|
Valdacil-446 |
self.barsbuttonremove = self.bars[index].buttonremove; |
71 |
|
Valdacil-446 |
self.barsbuttonremove:SetVisible(true); |
72 |
|
Valdacil-446 |
|
73 |
|
Valdacil-446 |
line = holder(self,10); |
74 |
|
Valdacil-446 |
|
75 |
|
Valdacil-446 |
index = #self.bars + 1; |
76 |
|
Valdacil-446 |
line = holder(self,30); |
77 |
|
Valdacil-446 |
self.bars[index] = KragenPlugs.UI.CheckBox(); |
78 |
|
Valdacil-446 |
self.bars[index]:SetParent(line); |
79 |
|
Valdacil-446 |
self.bars[index]:SetSize(180, 20); |
80 |
|
Valdacil-446 |
self.bars[index]:SetPosition(0,0); |
81 |
|
Valdacil-446 |
self.bars[index]:SetText("Active"); |
82 |
|
Valdacil-446 |
self.bars[index]:SetVisible(true); |
83 |
|
Valdacil-446 |
self.barsactive = self.bars[3]; |
84 |
|
Valdacil-446 |
|
85 |
|
Valdacil-446 |
index = #self.bars + 1; |
86 |
|
Valdacil-446 |
self.bars[index] = KragenPlugs.UI.ComboBox(); |
87 |
|
Valdacil-446 |
self.bars[index]:SetParent(line); |
88 |
|
Valdacil-446 |
self.bars[index]:SetSize(190, 20); |
89 |
|
Valdacil-446 |
self.bars[index]:SetPosition(210, 0); |
90 |
|
Valdacil-446 |
self.bars[index]:SetVisible(true); |
91 |
|
Valdacil-446 |
self.barscombat = self.bars[4]; |
92 |
|
Valdacil-446 |
self.barscombat:AddItem("Always", 1); |
93 |
|
Valdacil-446 |
self.barscombat:AddItem("Only In Combat", 2); |
94 |
|
Valdacil-446 |
self.barscombat:AddItem("Only Out of Combat", 3); |
95 |
|
Valdacil-446 |
|
96 |
|
Valdacil-446 |
self:AddSlider(self.bars, 1, 12, 1, "Bar Width (slots)"); |
97 |
|
Valdacil-446 |
self.barswidth = self.bars[5]; |
98 |
|
Valdacil-446 |
self:AddSlider(self.bars, 1, 12, 1, "Bar Height (slots)"); |
99 |
|
Valdacil-446 |
self.barsheight = self.bars[6]; |
100 |
119 |
Valdacil-446 |
|
101 |
|
Valdacil-446 |
self:AddSlider(self.bars, 9, 72, 9, "Slot Size (pixels)"); |
102 |
|
Valdacil-446 |
self.barsslotsize = self.bars[#self.bars]; |
103 |
|
Valdacil-446 |
self.barsslotsize:SetVisible(false); |
104 |
|
Valdacil-446 |
|
105 |
|
Valdacil-446 |
self:AddComboBox(self.bars); |
106 |
|
Valdacil-446 |
self.barsthresholdcombo = self.bars[#self.bars]; |
107 |
|
Valdacil-446 |
self.barsthresholdcombo.label:SetText("Show Bar When:"); |
108 |
|
Valdacil-446 |
self.barsthresholdcombo.label:SetVisible(false); |
109 |
|
Valdacil-446 |
self.barsthresholdcombo.combobox:SetVisible(false); |
110 |
|
Valdacil-446 |
local combolist = {"Any morale or power", "Morale above threshold", "Morale below threshold", "Power above threshold", "Power below threshold"}; |
111 |
|
Valdacil-446 |
for k,v in pairs(combolist) do |
112 |
|
Valdacil-446 |
self.barsthresholdcombo.combobox:AddItem(v, k); |
113 |
|
Valdacil-446 |
end |
114 |
|
Valdacil-446 |
|
115 |
|
Valdacil-446 |
self:AddSlider(self.bars, 0, 100, 1, "Threshold (%)"); |
116 |
|
Valdacil-446 |
self.barsthresholdslider = self.bars[#self.bars]; |
117 |
|
Valdacil-446 |
self.barsthresholdslider:SetVisible(false); |
118 |
|
Valdacil-446 |
|
119 |
6 |
Kragenwar-3044 |
|
120 |
62 |
Valdacil-446 |
|
121 |
|
Valdacil-446 |
end |
122 |
6 |
Kragenwar-3044 |
|
123 |
|
Kragenwar-3044 |
|
124 |
62 |
Valdacil-446 |
function SetupButtonBars:AddTitleBar(text) |
125 |
|
Valdacil-446 |
local index = #self.titlebars + 1; |
126 |
|
Valdacil-446 |
|
127 |
|
Valdacil-446 |
local line = holder(self, 35); |
128 |
|
Valdacil-446 |
self.titlebars[index] = KragenPlugs.UI.PanelDivider(); |
129 |
|
Valdacil-446 |
self.titlebars[index]:SetPosition(0,0); |
130 |
|
Valdacil-446 |
self.titlebars[index]:SetParent(line); |
131 |
|
Valdacil-446 |
self.titlebars[index]:SetText(text); |
132 |
|
Valdacil-446 |
self.titlebars[index]:SetSize(400, 30); |
133 |
6 |
Kragenwar-3044 |
|
134 |
62 |
Valdacil-446 |
end |
135 |
6 |
Kragenwar-3044 |
|
136 |
62 |
Valdacil-446 |
function SetupButtonBars:AddCheckboxRow(option) |
137 |
|
Valdacil-446 |
local index = #option + 1; |
138 |
|
Valdacil-446 |
local line = holder(self, 20); |
139 |
|
Valdacil-446 |
|
140 |
|
Valdacil-446 |
for i = 1,2 do |
141 |
|
Valdacil-446 |
option[index] = KragenPlugs.UI.CheckBox(); |
142 |
|
Valdacil-446 |
option[index]:SetParent(line); |
143 |
|
Valdacil-446 |
option[index]:SetSize(180, 20); |
144 |
|
Valdacil-446 |
if math.mod(index, 2) == 0 then |
145 |
|
Valdacil-446 |
option[index]:SetPosition(220,0); |
146 |
|
Valdacil-446 |
option[index]:AlignLeft(true); |
147 |
|
Valdacil-446 |
else |
148 |
|
Valdacil-446 |
option[index]:SetPosition(0,0); |
149 |
|
Valdacil-446 |
end |
150 |
|
Valdacil-446 |
option[index]:SetText("Checkbox"); |
151 |
|
Valdacil-446 |
option[index]:SetVisible(false); |
152 |
|
Valdacil-446 |
index = #option + 1; |
153 |
|
Valdacil-446 |
end |
154 |
6 |
Kragenwar-3044 |
|
155 |
62 |
Valdacil-446 |
end |
156 |
6 |
Kragenwar-3044 |
|
157 |
62 |
Valdacil-446 |
function SetupButtonBars:AddSlider(option, mini, maxi, step, text) |
158 |
|
Valdacil-446 |
local index = #option + 1; |
159 |
|
Valdacil-446 |
|
160 |
|
Valdacil-446 |
local line = holder(self, 50); |
161 |
|
Valdacil-446 |
option[index] = KragenPlugs.UI.Slider(); |
162 |
|
Valdacil-446 |
option[index]:SetParent(line); |
163 |
|
Valdacil-446 |
option[index]:SetText(text); |
164 |
|
Valdacil-446 |
option[index]:SetPosition(49, 0); |
165 |
|
Valdacil-446 |
option[index]:SetSize(350, 40); |
166 |
|
Valdacil-446 |
option[index]:SetStep(step); |
167 |
|
Valdacil-446 |
option[index]:SetMin(mini); |
168 |
|
Valdacil-446 |
option[index]:SetMax(maxi); |
169 |
6 |
Kragenwar-3044 |
|
170 |
|
Kragenwar-3044 |
end |
171 |
|
Kragenwar-3044 |
|
172 |
62 |
Valdacil-446 |
function SetupButtonBars:AddComboBox(option) |
173 |
|
Valdacil-446 |
local index = #option + 1; |
174 |
|
Valdacil-446 |
|
175 |
|
Valdacil-446 |
local line = holder(self, 30); |
176 |
|
Valdacil-446 |
option[index] = { }; |
177 |
|
Valdacil-446 |
option[index].label = KragenPlugs.UI.Label(); |
178 |
|
Valdacil-446 |
option[index].label:SetParent(line); |
179 |
|
Valdacil-446 |
option[index].label:SetSize(190, 20); |
180 |
|
Valdacil-446 |
option[index].label:SetPosition(20, 0); |
181 |
|
Valdacil-446 |
option[index].label:SetText("Label"); |
182 |
|
Valdacil-446 |
option[index].label:SetVisible(false); |
183 |
|
Valdacil-446 |
|
184 |
|
Valdacil-446 |
option[index].combobox = KragenPlugs.UI.ComboBox(); |
185 |
|
Valdacil-446 |
option[index].combobox:SetParent(line); |
186 |
|
Valdacil-446 |
option[index].combobox:SetSize(190, 20); |
187 |
|
Valdacil-446 |
option[index].combobox:SetPosition(210, 0); |
188 |
|
Valdacil-446 |
option[index].combobox:SetVisible(false); |
189 |
6 |
Kragenwar-3044 |
|
190 |
|
Kragenwar-3044 |
end |
191 |
|
Kragenwar-3044 |
|
192 |
|
Kragenwar-3044 |
function SetupButtonBars:Destroy() |
193 |
|
Kragenwar-3044 |
-- cleanup the quickslots so the client doesn't crash |
194 |
|
Kragenwar-3044 |
|
195 |
|
Kragenwar-3044 |
end |