1 |
6 |
Kragenwar-3044 |
import "Turbine.UI"; |
2 |
|
Kragenwar-3044 |
|
3 |
|
Kragenwar-3044 |
Window = class(Turbine.UI.Window); |
4 |
|
Kragenwar-3044 |
|
5 |
|
Kragenwar-3044 |
-- colors |
6 |
|
Kragenwar-3044 |
Window.TitleColor = Turbine.UI.Color(245/255, 222/255, 147/255); |
7 |
|
Kragenwar-3044 |
|
8 |
|
Kragenwar-3044 |
function Window:Constructor() |
9 |
|
Kragenwar-3044 |
Turbine.UI.Window.Constructor(self); |
10 |
|
Kragenwar-3044 |
|
11 |
|
Kragenwar-3044 |
-- hidden window to get the movement arrows |
12 |
|
Kragenwar-3044 |
self.hidden = Turbine.UI.Lotro.Window(); |
13 |
|
Kragenwar-3044 |
self.hidden:SetOpacity(0); |
14 |
|
Kragenwar-3044 |
self.hidden.PositionChanged = function(sender, args) |
15 |
|
Kragenwar-3044 |
if (type(self.PositionChanged) == "function") then |
16 |
|
Kragenwar-3044 |
self:PositionChanged(args); |
17 |
|
Kragenwar-3044 |
end |
18 |
|
Kragenwar-3044 |
end |
19 |
|
Kragenwar-3044 |
|
20 |
|
Kragenwar-3044 |
self.titleWidth = 250; |
21 |
|
Kragenwar-3044 |
self:SetParent(self.hidden); |
22 |
|
Kragenwar-3044 |
self:SetMouseVisible(false); |
23 |
|
Kragenwar-3044 |
Turbine.UI.Window.SetPosition(self, 0, 0); |
24 |
|
Kragenwar-3044 |
|
25 |
|
Kragenwar-3044 |
-- title label |
26 |
|
Kragenwar-3044 |
self.title = Turbine.UI.Label(); |
27 |
|
Kragenwar-3044 |
self.title:SetParent(self); |
28 |
|
Kragenwar-3044 |
self.title:SetPosition(0, 0); |
29 |
|
Kragenwar-3044 |
self.title:SetSize(0, 20); |
30 |
|
Kragenwar-3044 |
self.title:SetOutlineColor(Turbine.UI.Color(1, 0, 0, 0)); |
31 |
|
Kragenwar-3044 |
self.title:SetFontStyle(Turbine.UI.FontStyle.Outline); |
32 |
|
Kragenwar-3044 |
self.title:SetFont(Turbine.UI.Lotro.Font.TrajanPro18); |
33 |
|
Kragenwar-3044 |
self.title:SetForeColor(Window.TitleColor); |
34 |
|
Kragenwar-3044 |
self.title:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter); |
35 |
|
Kragenwar-3044 |
self.title:SetMouseVisible(false); |
36 |
|
Kragenwar-3044 |
self.title:SetZOrder(5); |
37 |
|
Kragenwar-3044 |
|
38 |
|
Kragenwar-3044 |
-- top left corner |
39 |
|
Kragenwar-3044 |
self.topLeft = Turbine.UI.Control(); |
40 |
|
Kragenwar-3044 |
self.topLeft:SetParent(self); |
41 |
|
Kragenwar-3044 |
self.topLeft:SetSize(36, 36); |
42 |
|
Kragenwar-3044 |
self.topLeft:SetMouseVisible(false); |
43 |
|
Kragenwar-3044 |
self.topLeft:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
44 |
|
Kragenwar-3044 |
self.topLeft:SetBackground("KragenPlugs/UI/Resources/box_silver_top_left.tga"); |
45 |
|
Kragenwar-3044 |
|
46 |
|
Kragenwar-3044 |
-- topRight |
47 |
|
Kragenwar-3044 |
self.topRight = Turbine.UI.Control(); |
48 |
|
Kragenwar-3044 |
self.topRight:SetParent(self); |
49 |
|
Kragenwar-3044 |
self.topRight:SetSize(36, 36); |
50 |
|
Kragenwar-3044 |
self.topRight:SetMouseVisible(false); |
51 |
|
Kragenwar-3044 |
self.topRight:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
52 |
|
Kragenwar-3044 |
self.topRight:SetBackground("KragenPlugs/UI/Resources/box_silver_top_right.tga"); |
53 |
|
Kragenwar-3044 |
|
54 |
|
Kragenwar-3044 |
-- bottomLeft |
55 |
|
Kragenwar-3044 |
self.bottomLeft = Turbine.UI.Control(); |
56 |
|
Kragenwar-3044 |
self.bottomLeft:SetParent(self); |
57 |
|
Kragenwar-3044 |
self.bottomLeft:SetSize(36, 36); |
58 |
|
Kragenwar-3044 |
self.bottomLeft:SetMouseVisible(false); |
59 |
|
Kragenwar-3044 |
self.bottomLeft:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
60 |
|
Kragenwar-3044 |
self.bottomLeft:SetBackground("KragenPlugs/UI/Resources/box_silver_bottom_left.tga"); |
61 |
|
Kragenwar-3044 |
|
62 |
|
Kragenwar-3044 |
-- bottomRight |
63 |
|
Kragenwar-3044 |
self.bottomRight = Turbine.UI.Control(); |
64 |
|
Kragenwar-3044 |
self.bottomRight:SetParent(self); |
65 |
|
Kragenwar-3044 |
self.bottomRight:SetSize(36, 36); |
66 |
|
Kragenwar-3044 |
self.bottomRight:SetMouseVisible(false); |
67 |
|
Kragenwar-3044 |
self.bottomRight:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
68 |
|
Kragenwar-3044 |
self.bottomRight:SetBackground("KragenPlugs/UI/Resources/box_silver_bottom_right.tga"); |
69 |
|
Kragenwar-3044 |
|
70 |
|
Kragenwar-3044 |
-- top side |
71 |
|
Kragenwar-3044 |
self.top = Turbine.UI.Control(); |
72 |
|
Kragenwar-3044 |
self.top:SetParent(self); |
73 |
|
Kragenwar-3044 |
self.top:SetSize(36, 36); |
74 |
|
Kragenwar-3044 |
self.top:SetMouseVisible(false); |
75 |
|
Kragenwar-3044 |
self.top:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
76 |
|
Kragenwar-3044 |
self.top:SetBackground("KragenPlugs/UI/Resources/box_silver_top.tga"); |
77 |
|
Kragenwar-3044 |
|
78 |
|
Kragenwar-3044 |
-- left side |
79 |
|
Kragenwar-3044 |
self.left = Turbine.UI.Control(); |
80 |
|
Kragenwar-3044 |
self.left:SetParent(self); |
81 |
|
Kragenwar-3044 |
self.left:SetSize(36, 36); |
82 |
|
Kragenwar-3044 |
self.left:SetMouseVisible(false); |
83 |
|
Kragenwar-3044 |
self.left:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
84 |
|
Kragenwar-3044 |
self.left:SetBackground("KragenPlugs/UI/Resources/box_silver_left.tga"); |
85 |
|
Kragenwar-3044 |
|
86 |
|
Kragenwar-3044 |
-- right side |
87 |
|
Kragenwar-3044 |
self.right = Turbine.UI.Control(); |
88 |
|
Kragenwar-3044 |
self.right:SetParent(self); |
89 |
|
Kragenwar-3044 |
self.right:SetSize(36, 36); |
90 |
|
Kragenwar-3044 |
self.right:SetMouseVisible(false); |
91 |
|
Kragenwar-3044 |
self.right:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
92 |
|
Kragenwar-3044 |
self.right:SetBackground("KragenPlugs/UI/Resources/box_silver_right.tga"); |
93 |
|
Kragenwar-3044 |
|
94 |
|
Kragenwar-3044 |
-- bottom side |
95 |
|
Kragenwar-3044 |
self.bottom = Turbine.UI.Control(); |
96 |
|
Kragenwar-3044 |
self.bottom:SetParent(self); |
97 |
|
Kragenwar-3044 |
self.bottom:SetSize(36, 36); |
98 |
|
Kragenwar-3044 |
self.bottom:SetMouseVisible(false); |
99 |
|
Kragenwar-3044 |
self.bottom:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
100 |
|
Kragenwar-3044 |
self.bottom:SetBackground("KragenPlugs/UI/Resources/box_silver_bottom.tga"); |
101 |
|
Kragenwar-3044 |
|
102 |
|
Kragenwar-3044 |
-- center |
103 |
|
Kragenwar-3044 |
self.center = Turbine.UI.Control(); |
104 |
|
Kragenwar-3044 |
self.center:SetParent(self); |
105 |
|
Kragenwar-3044 |
--self.center:SetMouseVisible(false); |
106 |
|
Kragenwar-3044 |
self.center:SetBackColor(Turbine.UI.Color(.925, 0, 0, 0)); |
107 |
|
Kragenwar-3044 |
--self.center:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
108 |
|
Kragenwar-3044 |
--self.center:SetBackground("KragenPlugs/UI/Resources/base_box_center_silver.tga"); |
109 |
|
Kragenwar-3044 |
|
110 |
|
Kragenwar-3044 |
-- title left |
111 |
|
Kragenwar-3044 |
self.titleLeft = Turbine.UI.Control(); |
112 |
|
Kragenwar-3044 |
self.titleLeft:SetParent(self); |
113 |
|
Kragenwar-3044 |
self.titleLeft:SetSize(35, 42); |
114 |
|
Kragenwar-3044 |
self.titleLeft:SetMouseVisible(false); |
115 |
|
Kragenwar-3044 |
self.titleLeft:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
116 |
|
Kragenwar-3044 |
self.titleLeft:SetBackground("KragenPlugs/UI/Resources/base_box_titlebar_left.tga"); |
117 |
|
Kragenwar-3044 |
|
118 |
|
Kragenwar-3044 |
-- title mid |
119 |
|
Kragenwar-3044 |
self.titleMid = Turbine.UI.Control(); |
120 |
|
Kragenwar-3044 |
self.titleMid:SetParent(self); |
121 |
|
Kragenwar-3044 |
self.titleMid:SetSize(20, 42); |
122 |
|
Kragenwar-3044 |
self.titleMid:SetMouseVisible(false); |
123 |
|
Kragenwar-3044 |
self.titleMid:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
124 |
|
Kragenwar-3044 |
self.titleMid:SetBackground("KragenPlugs/UI/Resources/base_box_titlebar_top.tga"); |
125 |
|
Kragenwar-3044 |
|
126 |
|
Kragenwar-3044 |
-- title right |
127 |
|
Kragenwar-3044 |
self.titleRight = Turbine.UI.Control(); |
128 |
|
Kragenwar-3044 |
self.titleRight:SetParent(self); |
129 |
|
Kragenwar-3044 |
self.titleRight:SetSize(35, 42); |
130 |
|
Kragenwar-3044 |
self.titleRight:SetMouseVisible(false); |
131 |
|
Kragenwar-3044 |
self.titleRight:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
132 |
|
Kragenwar-3044 |
self.titleRight:SetBackground("KragenPlugs/UI/Resources/base_box_titlebar_right.tga"); |
133 |
|
Kragenwar-3044 |
|
134 |
|
Kragenwar-3044 |
-- close button |
135 |
|
Kragenwar-3044 |
self.close = Turbine.UI.Control(); |
136 |
|
Kragenwar-3044 |
self.close:SetParent(self); |
137 |
|
Kragenwar-3044 |
self.close:SetSize(16, 16); |
138 |
|
Kragenwar-3044 |
--self.close:SetMouseVisible(false); |
139 |
|
Kragenwar-3044 |
self.close:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend); |
140 |
|
Kragenwar-3044 |
self.close:SetBackground("KragenPlugs/UI/Resources/titlebar_X_2.tga"); |
141 |
|
Kragenwar-3044 |
self.close.pressed = false; |
142 |
|
Kragenwar-3044 |
self.close.MouseEnter = function(sender, args) |
143 |
|
Kragenwar-3044 |
self.close:SetBackground("KragenPlugs/UI/Resources/titlebar_X_2_"..(self.close.pressed and "pressed" or "mouseover")..".tga"); |
144 |
|
Kragenwar-3044 |
end |
145 |
|
Kragenwar-3044 |
self.close.MouseLeave = function(sender, args) |
146 |
|
Kragenwar-3044 |
self.close:SetBackground("KragenPlugs/UI/Resources/titlebar_X_2"..(self.close.pressed and "_mouseover" or "")..".tga"); |
147 |
|
Kragenwar-3044 |
end |
148 |
|
Kragenwar-3044 |
self.close.MouseDown = function(sender, args) |
149 |
|
Kragenwar-3044 |
self.close.pressed = true; |
150 |
|
Kragenwar-3044 |
self.close:SetBackground("KragenPlugs/UI/Resources/titlebar_X_2_pressed.tga"); |
151 |
|
Kragenwar-3044 |
end |
152 |
|
Kragenwar-3044 |
self.close.MouseUp = function(sender, args) |
153 |
|
Kragenwar-3044 |
self.close.pressed = false; |
154 |
|
Kragenwar-3044 |
self.close:SetBackground("KragenPlugs/UI/Resources/titlebar_X_2.tga"); |
155 |
|
Kragenwar-3044 |
end |
156 |
|
Kragenwar-3044 |
self.close.MouseClick = function(sender, args) |
157 |
|
Kragenwar-3044 |
self:Close(); |
158 |
|
Kragenwar-3044 |
end |
159 |
|
Kragenwar-3044 |
end |
160 |
|
Kragenwar-3044 |
|
161 |
|
Kragenwar-3044 |
function Window:SetText(text) |
162 |
|
Kragenwar-3044 |
self.title:SetText(text); |
163 |
|
Kragenwar-3044 |
end |
164 |
|
Kragenwar-3044 |
|
165 |
|
Kragenwar-3044 |
function Window:SetSize(width, height) |
166 |
|
Kragenwar-3044 |
Turbine.UI.Window.SetSize(self, width, height); |
167 |
|
Kragenwar-3044 |
self.hidden:SetSize(width, height); |
168 |
|
Kragenwar-3044 |
self:Layout(); |
169 |
|
Kragenwar-3044 |
end |
170 |
|
Kragenwar-3044 |
|
171 |
|
Kragenwar-3044 |
function Window:SetPosition(x, y) |
172 |
|
Kragenwar-3044 |
self.hidden:SetPosition(x, y); |
173 |
|
Kragenwar-3044 |
end |
174 |
|
Kragenwar-3044 |
|
175 |
|
Kragenwar-3044 |
function Window:GetPosition() |
176 |
|
Kragenwar-3044 |
return self.hidden:GetPosition(); |
177 |
|
Kragenwar-3044 |
end |
178 |
|
Kragenwar-3044 |
|
179 |
|
Kragenwar-3044 |
function Window:SetVisible(visible) |
180 |
|
Kragenwar-3044 |
Turbine.UI.Window.SetVisible(self, visible); |
181 |
|
Kragenwar-3044 |
self.hidden:SetVisible(visible); |
182 |
|
Kragenwar-3044 |
end |
183 |
|
Kragenwar-3044 |
|
184 |
|
Kragenwar-3044 |
function Window:Close() |
185 |
|
Kragenwar-3044 |
Turbine.UI.Window.Close(self); |
186 |
|
Kragenwar-3044 |
self.hidden:Close(); |
187 |
|
Kragenwar-3044 |
end |
188 |
|
Kragenwar-3044 |
|
189 |
|
Kragenwar-3044 |
function Window:Layout() |
190 |
|
Kragenwar-3044 |
local width, height = self:GetSize(); |
191 |
|
Kragenwar-3044 |
if (width < 142) then |
192 |
|
Kragenwar-3044 |
width = 142; |
193 |
|
Kragenwar-3044 |
end |
194 |
|
Kragenwar-3044 |
if (height < 102) then |
195 |
|
Kragenwar-3044 |
height = 102; |
196 |
|
Kragenwar-3044 |
end |
197 |
|
Kragenwar-3044 |
|
198 |
|
Kragenwar-3044 |
local titleWidth = math.min(self.titleWidth, width - 72); |
199 |
|
Kragenwar-3044 |
local spacer = (width - titleWidth) / 2; |
200 |
|
Kragenwar-3044 |
self.titleLeft:SetPosition(spacer, -7); |
201 |
|
Kragenwar-3044 |
self.titleMid:SetPosition(spacer + 35, -7); |
202 |
|
Kragenwar-3044 |
self.titleMid:SetWidth(titleWidth - 70); |
203 |
|
Kragenwar-3044 |
self.titleRight:SetPosition(width - spacer - 35, -7); |
204 |
|
Kragenwar-3044 |
self.title:SetPosition(spacer + 25, 8); |
205 |
|
Kragenwar-3044 |
self.title:SetWidth(titleWidth - 50); |
206 |
|
Kragenwar-3044 |
|
207 |
|
Kragenwar-3044 |
local offset = 20; |
208 |
|
Kragenwar-3044 |
self.close:SetPosition(width - 22, offset + 5); |
209 |
|
Kragenwar-3044 |
self.topLeft:SetPosition(0, offset); |
210 |
|
Kragenwar-3044 |
self.top:SetPosition(36, offset); |
211 |
|
Kragenwar-3044 |
self.topRight:SetPosition(width - 36, offset); |
212 |
|
Kragenwar-3044 |
self.bottomLeft:SetPosition(0, height - 36); |
213 |
|
Kragenwar-3044 |
self.bottom:SetPosition(36, height - 36); |
214 |
|
Kragenwar-3044 |
self.bottomRight:SetPosition(width - 36, height - 36); |
215 |
|
Kragenwar-3044 |
self.left:SetPosition(0, 36 + offset); |
216 |
|
Kragenwar-3044 |
self.right:SetPosition(width - 36, 36 + offset); |
217 |
|
Kragenwar-3044 |
self.center:SetPosition(36, 36 + offset); |
218 |
|
Kragenwar-3044 |
|
219 |
|
Kragenwar-3044 |
self.top:SetWidth(width - 72); |
220 |
|
Kragenwar-3044 |
self.bottom:SetWidth(width - 72); |
221 |
|
Kragenwar-3044 |
self.left:SetHeight(height - 72 - offset); |
222 |
|
Kragenwar-3044 |
self.right:SetHeight(height - 72 - offset); |
223 |
|
Kragenwar-3044 |
self.center:SetSize(width - 72, height - 72 - offset) |
224 |
|
Kragenwar-3044 |
end |