1 |
6 |
Kragenwar-3044 |
import "Turbine.Gameplay"; |
2 |
|
Kragenwar-3044 |
import "Turbine.UI"; |
3 |
|
Kragenwar-3044 |
import "KragenPlugs.KragenBars"; |
4 |
|
Kragenwar-3044 |
import "KragenPlugs.UI"; |
5 |
|
Kragenwar-3044 |
|
6 |
|
Kragenwar-3044 |
SetupWindow = class(KragenPlugs.UI.Window); |
7 |
|
Kragenwar-3044 |
|
8 |
|
Kragenwar-3044 |
function SetupWindow:Constructor() |
9 |
|
Kragenwar-3044 |
|
10 |
|
Kragenwar-3044 |
KragenPlugs.UI.Window.Constructor(self); |
11 |
|
Kragenwar-3044 |
|
12 |
|
Kragenwar-3044 |
if (type( settings.setup ) ~= "table") then |
13 |
|
Kragenwar-3044 |
settings.setup = { }; |
14 |
|
Kragenwar-3044 |
settings.setup.x = 100; |
15 |
|
Kragenwar-3044 |
settings.setup.y = 100; |
16 |
|
Kragenwar-3044 |
SaveSettings(); |
17 |
|
Kragenwar-3044 |
end |
18 |
|
Kragenwar-3044 |
if (settings.setup.x ~= nil) then |
19 |
|
Kragenwar-3044 |
self:SetPosition(ValidatePosition(settings.setup.x, settings.setup.y, self:GetWidth(), self:GetHeight())); |
20 |
|
Kragenwar-3044 |
end |
21 |
|
Kragenwar-3044 |
|
22 |
|
Kragenwar-3044 |
self:SetVisible(false); |
23 |
|
Kragenwar-3044 |
self:SetText("KragenBars Setup"); |
24 |
|
Kragenwar-3044 |
self:SetSize(575, 535); |
25 |
|
Kragenwar-3044 |
self.Closed = function(sender, args) |
26 |
|
Kragenwar-3044 |
KragenPlugs.UI.ComboBox.Cleanup(); |
27 |
|
Kragenwar-3044 |
local i; |
28 |
|
Kragenwar-3044 |
for i = 1, table.getn(self.tabs) do |
29 |
|
Kragenwar-3044 |
if (type(self.tabs[i].Closed) == "function") then |
30 |
|
Kragenwar-3044 |
self.tabs[i]:Closed(); |
31 |
|
Kragenwar-3044 |
end |
32 |
|
Kragenwar-3044 |
end |
33 |
|
Kragenwar-3044 |
|
34 |
|
Kragenwar-3044 |
-- save the position |
35 |
|
Kragenwar-3044 |
settings.setup.x, settings.setup.y = self:GetPosition(); |
36 |
|
Kragenwar-3044 |
SaveSettings(); |
37 |
|
Kragenwar-3044 |
|
38 |
|
Kragenwar-3044 |
-- remove the ref |
39 |
|
Kragenwar-3044 |
self:Destroy(); |
40 |
|
Kragenwar-3044 |
end |
41 |
|
Kragenwar-3044 |
|
42 |
|
Kragenwar-3044 |
-- restore the position if there is one |
43 |
|
Kragenwar-3044 |
|
44 |
|
Kragenwar-3044 |
-- close any open drop downs |
45 |
|
Kragenwar-3044 |
self.PositionChanged = function(sender, args) |
46 |
|
Kragenwar-3044 |
KragenPlugs.UI.ComboBox.Cleanup(); |
47 |
|
Kragenwar-3044 |
end |
48 |
|
Kragenwar-3044 |
|
49 |
|
Kragenwar-3044 |
-- listen for events |
50 |
|
Kragenwar-3044 |
-- KragenPlugs.Utils.KeyManager.AddListener(self); |
51 |
|
Kragenwar-3044 |
|
52 |
|
Kragenwar-3044 |
self.sideBar = Turbine.UI.Control(); |
53 |
|
Kragenwar-3044 |
self.sideBar:SetParent(self); |
54 |
|
Kragenwar-3044 |
self.sideBar:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
55 |
|
Kragenwar-3044 |
self.sideBar:SetBackground("KragenPlugs/UI/Resources/options_menu_side_bar.tga"); |
56 |
|
Kragenwar-3044 |
self.sideBar:SetSize(140, 507); |
57 |
|
Kragenwar-3044 |
self.sideBar:SetPosition(432, 24); |
58 |
|
Kragenwar-3044 |
self.sideBar:SetMouseVisible(false); |
59 |
|
Kragenwar-3044 |
|
60 |
|
Kragenwar-3044 |
self.cancelButton = Turbine.UI.Lotro.Button(); |
61 |
|
Kragenwar-3044 |
self.cancelButton:SetParent(self); |
62 |
|
Kragenwar-3044 |
self.cancelButton:SetPosition(122, 502); |
63 |
|
Kragenwar-3044 |
self.cancelButton:SetSize(100, 20); |
64 |
|
Kragenwar-3044 |
self.cancelButton:SetText("Cancel"); |
65 |
|
Kragenwar-3044 |
self.cancelButton.Click = function(sender, args) |
66 |
|
Kragenwar-3044 |
self:Close(); |
67 |
|
Kragenwar-3044 |
end |
68 |
|
Kragenwar-3044 |
|
69 |
|
Kragenwar-3044 |
self.acceptButton = Turbine.UI.Lotro.Button(); |
70 |
|
Kragenwar-3044 |
self.acceptButton:SetParent(self); |
71 |
|
Kragenwar-3044 |
self.acceptButton:SetPosition(237, 502); |
72 |
|
Kragenwar-3044 |
self.acceptButton:SetSize(100, 20); |
73 |
|
Kragenwar-3044 |
self.acceptButton:SetText("Accept"); |
74 |
|
Kragenwar-3044 |
self.acceptButton.Click = function(sender, args) |
75 |
|
Kragenwar-3044 |
KragenBars:SetupClosing(); |
76 |
|
Kragenwar-3044 |
self:Close(); |
77 |
|
Kragenwar-3044 |
end |
78 |
|
Kragenwar-3044 |
|
79 |
|
Kragenwar-3044 |
-- create the tabs |
80 |
|
Kragenwar-3044 |
self.setupbb = SetupButtonBars(); |
81 |
|
Kragenwar-3044 |
self.setupf = SetupFeatures(); |
82 |
|
Kragenwar-3044 |
self.setupqs = SetupQuickslots(); |
83 |
|
Kragenwar-3044 |
self.setuplmpets = SetupLMPets(); |
84 |
|
Kragenwar-3044 |
|
85 |
|
Kragenwar-3044 |
self.tabs = {self.setupbb, self.setupf, self.setupqs, self.setuplmpets}; |
86 |
|
Kragenwar-3044 |
self.buttons = {"Button Bars", "Features", "Quickslots", "Pets"}; |
87 |
|
Kragenwar-3044 |
|
88 |
|
Kragenwar-3044 |
local i; |
89 |
|
Kragenwar-3044 |
for i = 1, table.getn(self.tabs) do |
90 |
|
Kragenwar-3044 |
-- create a tab button |
91 |
|
Kragenwar-3044 |
local button = KragenPlugs.UI.Button(); |
92 |
|
Kragenwar-3044 |
button:SetParent(self); |
93 |
|
Kragenwar-3044 |
button:SetPosition(439, 60 + (25 * i)); |
94 |
|
Kragenwar-3044 |
button:SetSize(127, 20); |
95 |
|
Kragenwar-3044 |
button:SetText(self.buttons[i]); |
96 |
|
Kragenwar-3044 |
button.Click = function(sender, args) |
97 |
|
Kragenwar-3044 |
self:SwitchTab(self.tabs[i], self.buttons[i]); |
98 |
|
Kragenwar-3044 |
end |
99 |
|
Kragenwar-3044 |
self.buttons[i] = button; |
100 |
|
Kragenwar-3044 |
|
101 |
|
Kragenwar-3044 |
-- create the tab |
102 |
|
Kragenwar-3044 |
local tab = Turbine.UI.Control(); |
103 |
|
Kragenwar-3044 |
tab:SetParent(self); |
104 |
|
Kragenwar-3044 |
tab:SetSize(415, 447); |
105 |
|
Kragenwar-3044 |
tab:SetPosition(16, 53); |
106 |
|
Kragenwar-3044 |
tab:SetVisible(false); |
107 |
|
Kragenwar-3044 |
|
108 |
|
Kragenwar-3044 |
local scrollbar = Turbine.UI.Lotro.ScrollBar(); |
109 |
|
Kragenwar-3044 |
scrollbar:SetOrientation(Turbine.UI.Orientation.Vertical); |
110 |
|
Kragenwar-3044 |
scrollbar:SetParent(tab); |
111 |
|
Kragenwar-3044 |
scrollbar:SetSize(10, 447); |
112 |
|
Kragenwar-3044 |
scrollbar:SetPosition(405, 0); |
113 |
|
Kragenwar-3044 |
|
114 |
|
Kragenwar-3044 |
local panel = self.tabs[i]; |
115 |
|
Kragenwar-3044 |
panel.tab = tab; |
116 |
|
Kragenwar-3044 |
panel:SetParent(tab); |
117 |
|
Kragenwar-3044 |
panel:SetVerticalScrollBar(scrollbar); |
118 |
|
Kragenwar-3044 |
panel:SetSize(400, 447); |
119 |
|
Kragenwar-3044 |
panel:SetPosition(0, 0); |
120 |
|
Kragenwar-3044 |
panel:GetItem(1).PositionChanged = function(sender, args) |
121 |
|
Kragenwar-3044 |
KragenPlugs.UI.ComboBox.Cleanup(); |
122 |
|
Kragenwar-3044 |
end |
123 |
|
Kragenwar-3044 |
end |
124 |
|
Kragenwar-3044 |
|
125 |
|
Kragenwar-3044 |
self.buttons[4]:SetVisible(false); |
126 |
|
Kragenwar-3044 |
|
127 |
|
Kragenwar-3044 |
-- show the first tab |
128 |
|
Kragenwar-3044 |
self:SwitchTab(self.tabs[1], self.buttons[1]); |
129 |
|
Kragenwar-3044 |
|
130 |
|
Kragenwar-3044 |
end |
131 |
|
Kragenwar-3044 |
|
132 |
|
Kragenwar-3044 |
function SetupWindow:SwitchTab(tab, button) |
133 |
|
Kragenwar-3044 |
KragenPlugs.UI.ComboBox.Cleanup(); |
134 |
|
Kragenwar-3044 |
|
135 |
|
Kragenwar-3044 |
local i; |
136 |
|
Kragenwar-3044 |
for i = 1, table.getn(self.tabs) do |
137 |
|
Kragenwar-3044 |
self.tabs[i].tab:SetVisible(tab == self.tabs[i]); |
138 |
|
Kragenwar-3044 |
self.buttons[i]:SetSelected(button == self.buttons[i]); |
139 |
|
Kragenwar-3044 |
end |
140 |
|
Kragenwar-3044 |
end |
141 |
|
Kragenwar-3044 |
|
142 |
|
Kragenwar-3044 |
-- function SetupWindow:UiHidden(hidden) |
143 |
|
Kragenwar-3044 |
-- self:SetVisible(not hidden); |
144 |
|
Kragenwar-3044 |
-- KragenPlugs.UI.ComboBox.Cleanup(); |
145 |
|
Kragenwar-3044 |
-- end |
146 |
|
Kragenwar-3044 |
|
147 |
|
Kragenwar-3044 |
function SetupWindow:Destroy() |
148 |
|
Kragenwar-3044 |
self:SetVisible(false); |
149 |
|
Kragenwar-3044 |
local i; |
150 |
|
Kragenwar-3044 |
for i = 1, table.getn(self.tabs) do |
151 |
|
Kragenwar-3044 |
if (type(self.tabs[i].Destroy) == "function") then |
152 |
|
Kragenwar-3044 |
self.tabs[i]:Destroy(); |
153 |
|
Kragenwar-3044 |
end |
154 |
|
Kragenwar-3044 |
end |
155 |
|
Kragenwar-3044 |
SetupWindow.instance = nil; |
156 |
|
Kragenwar-3044 |
end |
157 |
|
Kragenwar-3044 |
|
158 |
|
Kragenwar-3044 |
-- class level stuff |
159 |
|
Kragenwar-3044 |
SetupWindow.instance = nil; |
160 |
|
Kragenwar-3044 |
|
161 |
|
Kragenwar-3044 |
-- command to show the options |
162 |
|
Kragenwar-3044 |
function SetupWindow.ShowOptions() |
163 |
|
Kragenwar-3044 |
if (SetupWindow.instance == nil) then |
164 |
|
Kragenwar-3044 |
SetupWindow.instance = SetupWindow(); |
165 |
|
Kragenwar-3044 |
end |
166 |
|
Kragenwar-3044 |
end |
167 |
|
Kragenwar-3044 |
|
168 |
|
Kragenwar-3044 |
-- command to close/cleanup the options |
169 |
|
Kragenwar-3044 |
function SetupWindow.CloseOptions() |
170 |
|
Kragenwar-3044 |
if (SetupWindow.instance ~= nil) then |
171 |
|
Kragenwar-3044 |
SetupWindow.instance:Destroy(); |
172 |
|
Kragenwar-3044 |
end |
173 |
|
Kragenwar-3044 |
end |