lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [branches/] [3.10/] [Utils/] [UI/] [DragBar.lua] - Blame information for rev 15

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 Kragenwar-3044
 
2 Kragenwar-3044
-- version 1.3
3 Kragenwar-3044
-- Change in how resource filenames are stored and allow overriding.
4 Kragenwar-3044
-- Added support for DeltaButton / a button to rotate the target window
5 Kragenwar-3044
 
6 Kragenwar-3044
import "Turbine.UI";
7 Kragenwar-3044
import "Turbine.UI.Lotro";
8 Kragenwar-3044
import "KragenPlugs.Utils";
9 Kragenwar-3044
 
10 Kragenwar-3044
local deltaButtonAvailable = pcall( function( ) import "KragenPlugs.Utils.UI.DeltaButton"; end );
11 Kragenwar-3044
 
12 Kragenwar-3044
local defaultDragBarResources = {
13 Kragenwar-3044
          Bar = {
14 Kragenwar-3044
                                  Normal="KragenPlugs/Utils/Resources/DragBarBar.tga"
15 Kragenwar-3044
                                , Dragged="KragenPlugs/Utils/Resources/DragBarBar_Dragged.tga"
16 Kragenwar-3044
                        }
17 Kragenwar-3044
        , Corner = {
18 Kragenwar-3044
                                  Normal="KragenPlugs/Utils/Resources/DragBarCorner.tga"
19 Kragenwar-3044
                                , Dragged="KragenPlugs/Utils/Resources/DragBarCorner_Dragged.tga"
20 Kragenwar-3044
                           }
21 Kragenwar-3044
        , Hover = {
22 Kragenwar-3044
                                  TopLeft="KragenPlugs/Utils/Resources/DragBarHoverBox_TopLeft.tga"
23 Kragenwar-3044
                                , Top="KragenPlugs/Utils/Resources/DragBarHoverBox_Top.tga"
24 Kragenwar-3044
                                , TopRight="KragenPlugs/Utils/Resources/DragBarHoverBox_TopRight.tga"
25 Kragenwar-3044
                                , Left="KragenPlugs/Utils/Resources/DragBarHoverBox_Left.tga"
26 Kragenwar-3044
                                , Right="KragenPlugs/Utils/Resources/DragBarHoverBox_Right.tga"
27 Kragenwar-3044
                                , BottomLeft="KragenPlugs/Utils/Resources/DragBarHoverBox_BottomLeft.tga"
28 Kragenwar-3044
                                , Bottom="KragenPlugs/Utils/Resources/DragBarHoverBox_Bottom.tga"
29 Kragenwar-3044
                                , BottomRight="KragenPlugs/Utils/Resources/DragBarHoverBox_BottomRight.tga"
30 Kragenwar-3044
                          }
31 Kragenwar-3044
};
32 Kragenwar-3044
 
33 Kragenwar-3044
local defaultRotatorResources = {
34 Kragenwar-3044
          Normal="KragenPlugs/Utils/Resources/rotate_button_normal.tga"
35 Kragenwar-3044
        , Hover="KragenPlugs/Utils/Resources/rotate_button_rollover.tga"
36 Kragenwar-3044
        , Pressed="KragenPlugs/Utils/Resources/rotate_button_pressed.tga"
37 Kragenwar-3044
        , Disabled="KragenPlugs/Utils/Resources/rotate_button_ghosted.tga"
38 Kragenwar-3044
};
39 Kragenwar-3044
 
40 Kragenwar-3044
DragBar = class( Turbine.UI.Window );
41 Kragenwar-3044
 
42 Kragenwar-3044
function DragBar:Constructor( ctlAttachTo, sName, bBarOnTop, tResources )
43 Kragenwar-3044
        Turbine.UI.Window.Constructor( self );
44 Kragenwar-3044
 
45 Kragenwar-3044
        self.wndTarget = ctlAttachTo;
46 Kragenwar-3044
        if type(sName) ~= "string" then
47 Kragenwar-3044
                self.sName = "";
48 Kragenwar-3044
        else
49 Kragenwar-3044
                self.sName = sName;
50 Kragenwar-3044
        end
51 Kragenwar-3044
        if type(bBarOnTop) ~= "boolean" then
52 Kragenwar-3044
                bBarOnTop = true;
53 Kragenwar-3044
        end
54 Kragenwar-3044
        if type(tResources) == "table" then
55 Kragenwar-3044
                self.resource = tResources;
56 Kragenwar-3044
        else
57 Kragenwar-3044
                self.resource = defaultDragBarResources;
58 Kragenwar-3044
        end
59 Kragenwar-3044
 
60 Kragenwar-3044
        self:SetSize( self.wndTarget:GetWidth(), 19 );
61 Kragenwar-3044
        self:SetPosition( math.max( self.wndTarget:GetLeft(), 0 )
62 Kragenwar-3044
                                        , math.max( self.wndTarget:GetTop() - 19, 0 ) );
63 Kragenwar-3044
        self:SetBackColor( Turbine.UI.Color( 0, 0, 0, 0 ) );
64 Kragenwar-3044
        self:SetVisible( false );
65 Kragenwar-3044
        self:SetOpacity( 1 );
66 Kragenwar-3044
 
67 Kragenwar-3044
        self.Bar = Turbine.UI.Control();
68 Kragenwar-3044
        self.Bar:SetParent( self );
69 Kragenwar-3044
        self.Bar:SetSize( self:GetWidth() - 19, 19 );
70 Kragenwar-3044
        self.Bar:SetPosition( 19, 0 );
71 Kragenwar-3044
        self.Bar:SetBackground( self.resource.Bar.Normal );
72 Kragenwar-3044
        self.Bar:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
73 Kragenwar-3044
        self.Bar:SetMouseVisible(false);
74 Kragenwar-3044
        self.Bar:SetVisible( true );
75 Kragenwar-3044
        self.Bar:SetOpacity( 1 );
76 Kragenwar-3044
 
77 Kragenwar-3044
        self.Corner = Turbine.UI.Control();
78 Kragenwar-3044
        self.Corner:SetParent( self );
79 Kragenwar-3044
        self.Corner:SetSize( 19, 19 );
80 Kragenwar-3044
        self.Corner:SetPosition( 0, 0 );
81 Kragenwar-3044
        self.Corner:SetBackground( self.resource.Corner.Normal );
82 Kragenwar-3044
        self.Corner:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
83 Kragenwar-3044
        self.Corner:SetMouseVisible(false);
84 Kragenwar-3044
        self.Corner:SetVisible( true );
85 Kragenwar-3044
        self.Corner:SetOpacity( 1 );
86 Kragenwar-3044
 
87 Kragenwar-3044
        self.Label = Turbine.UI.Label();
88 Kragenwar-3044
        self.Label:SetParent( self );
89 Kragenwar-3044
        self.Label:SetForeColor( Turbine.UI.Color( 1, 1, 1, 1 ) );
90 Kragenwar-3044
        self.Label:SetFontStyle( Turbine.UI.FontStyle.Outline );
91 Kragenwar-3044
        self.Label:SetOutlineColor( Turbine.UI.Color( 1, 0, 0, 0 ) );
92 Kragenwar-3044
        self.Label:SetFont( Turbine.UI.Lotro.Font.Verdana12 );
93 Kragenwar-3044
        self.Label:SetTextAlignment( Turbine.UI.ContentAlignment.MiddleCenter );
94 Kragenwar-3044
        self.Label:SetMouseVisible(false);
95 Kragenwar-3044
        self.Label:SetSize( self:GetWidth(), 18 );
96 Kragenwar-3044
        self.Label:SetPosition( 0, 1 );
97 Kragenwar-3044
        self.Label:SetBackColor( Turbine.UI.Color( 0, 0, 0, 0 ) );
98 Kragenwar-3044
        self.Label:SetBackColorBlendMode( Turbine.UI.BlendMode.AlphaBlend );
99 Kragenwar-3044
        self.Label:SetText( self.sName );
100 Kragenwar-3044
 
101 Kragenwar-3044
        self:SetDraggable( false );
102 Kragenwar-3044
        self:SetBeingDragged( false );
103 Kragenwar-3044
        self:SetBarOnTop( bBarOnTop );
104 Kragenwar-3044
        self:SetHUDVisible( true );
105 Kragenwar-3044
        self:SetAllowsDragging( true );
106 Kragenwar-3044
        self:SetAllowsHUDHiding( true, true );
107 Kragenwar-3044
 
108 Kragenwar-3044
        self.KeyDown = function( sender, args )
109 Kragenwar-3044
                if args.Action == 0x1000007B and self:GetAllowsDragging() then
110 Kragenwar-3044
                        self:ToggleDraggable();
111 Kragenwar-3044
                elseif args.Action == 0x100000B3 and self:GetAllowsHUDHiding() then
112 Kragenwar-3044
                        self:ToggleHUDVisible();
113 Kragenwar-3044
                end
114 Kragenwar-3044
        end
115 Kragenwar-3044
 
116 Kragenwar-3044
        self:SetWantsKeyEvents( true );
117 Kragenwar-3044
 
118 Kragenwar-3044
        self.MouseDown = function( sender, args )
119 Kragenwar-3044
                if self:IsDraggable() then
120 Kragenwar-3044
                        self:SetBeingDragged( true, args );
121 Kragenwar-3044
                end
122 Kragenwar-3044
        end
123 Kragenwar-3044
 
124 Kragenwar-3044
        self.MouseMove = function( sender, args )
125 Kragenwar-3044
                if ( self:IsBeingDragged() ) then
126 Kragenwar-3044
                        local left, top = self.wndTarget:GetPosition();
127 Kragenwar-3044
                        self.wndTarget:SetPosition( math.min( math.max( left + ( args.X - self.dragStartX ), 0 ), Turbine.UI.Display:GetWidth() - self.wndTarget:GetWidth() )
128 Kragenwar-3044
                                                                          , math.min( math.max( top + ( args.Y - self.dragStartY ), 0 ), Turbine.UI.Display:GetHeight() - self.wndTarget:GetHeight()) );
129 Kragenwar-3044
                        self:RecalculatePosition();
130 Kragenwar-3044
 
131 Kragenwar-3044
                        if type( self.wndTarget.Dragged ) == "function" then
132 Kragenwar-3044
                                self.wndTarget:Dragged();
133 Kragenwar-3044
                        end
134 Kragenwar-3044
                end
135 Kragenwar-3044
        end
136 Kragenwar-3044
 
137 Kragenwar-3044
        self.MouseUp = function( sender, args )
138 Kragenwar-3044
                self:SetBeingDragged( false, args );
139 Kragenwar-3044
        end
140 Kragenwar-3044
 
141 Kragenwar-3044
        self.MouseEnter = function( sender, args )
142 Kragenwar-3044
                self:CreateHoverBox();
143 Kragenwar-3044
        end
144 Kragenwar-3044
 
145 Kragenwar-3044
        self.MouseLeave = function( sender, args )
146 Kragenwar-3044
                if not self:IsBeingDragged() then
147 Kragenwar-3044
                        self:DestroyHoverBox();
148 Kragenwar-3044
                end
149 Kragenwar-3044
        end
150 Kragenwar-3044
 
151 Kragenwar-3044
        if deltaButtonAvailable then
152 Kragenwar-3044
                self.VisibleChanged = function( sender, args )
153 Kragenwar-3044
                        if type( self.Rotator ) == "table" then
154 Kragenwar-3044
                                self.Rotator:SetVisible( self:IsVisible() );
155 Kragenwar-3044
                        end
156 Kragenwar-3044
                end
157 Kragenwar-3044
 
158 Kragenwar-3044
                self.PositionChanged = function( sender, args )
159 Kragenwar-3044
                        if type( self.Rotator ) == "table" then
160 Kragenwar-3044
                                self.Rotator:RecalculatePosition();
161 Kragenwar-3044
                        end
162 Kragenwar-3044
                end
163 Kragenwar-3044
        end
164 Kragenwar-3044
end
165 Kragenwar-3044
 
166 Kragenwar-3044
function DragBar:CanHaveRotator( )
167 Kragenwar-3044
        if deltaButtonAvailable then
168 Kragenwar-3044
                return true;
169 Kragenwar-3044
        end
170 Kragenwar-3044
 
171 Kragenwar-3044
        return false;
172 Kragenwar-3044
end
173 Kragenwar-3044
 
174 Kragenwar-3044
function DragBar:SetRotatorOffset( oX, oY )
175 Kragenwar-3044
        if type( self.Rotator ) == "table" then
176 Kragenwar-3044
                self.Rotator:SetOffset( oX, oY );
177 Kragenwar-3044
        end
178 Kragenwar-3044
end
179 Kragenwar-3044
 
180 Kragenwar-3044
function DragBar:SetRotator( bEnabled, tResources, bfZoneTest )
181 Kragenwar-3044
        if deltaButtonAvailable then
182 Kragenwar-3044
                if bEnabled then
183 Kragenwar-3044
                        if type(tResources) ~= "table" then
184 Kragenwar-3044
                                tResources = defaultRotatorResources;
185 Kragenwar-3044
                        end
186 Kragenwar-3044
                        self.Rotator = KragenPlugs.Utils.UI.DeltaButton( tResources, bfZoneTest, self );
187 Kragenwar-3044
 
188 Kragenwar-3044
                        self.Rotator.DeltaStart = function( sender, args )
189 Kragenwar-3044
                                if type( self.wndTarget.RotateStart ) == "function" then
190 Kragenwar-3044
                                        self.wndTarget:RotateStart( args );
191 Kragenwar-3044
                                end
192 Kragenwar-3044
                        end
193 Kragenwar-3044
 
194 Kragenwar-3044
                        self.Rotator.DeltaEnd = function( sender, args )
195 Kragenwar-3044
                                if type( self.wndTarget.RotateEnd ) == "function" then
196 Kragenwar-3044
                                        self.wndTarget:RotateEnd( args );
197 Kragenwar-3044
                                end
198 Kragenwar-3044
                        end
199 Kragenwar-3044
 
200 Kragenwar-3044
                        self.Rotator.Delta = function( sender, args )
201 Kragenwar-3044
                                if type( self.wndTarget.Rotating ) == "function" then
202 Kragenwar-3044
                                        self.wndTarget:Rotating( args );
203 Kragenwar-3044
                                end
204 Kragenwar-3044
                        end
205 Kragenwar-3044
 
206 Kragenwar-3044
                        self.Rotator.Click = function( sender, args )
207 Kragenwar-3044
                                if type( self.wndTarget.Rotate ) == "function" then
208 Kragenwar-3044
                                        self.wndTarget:Rotate( args );
209 Kragenwar-3044
                                end
210 Kragenwar-3044
                        end
211 Kragenwar-3044
 
212 Kragenwar-3044
                        return true;
213 Kragenwar-3044
                else
214 Kragenwar-3044
                        self.Rotator = nil;
215 Kragenwar-3044
                        return false;
216 Kragenwar-3044
                end
217 Kragenwar-3044
        end
218 Kragenwar-3044
 
219 Kragenwar-3044
        return nil;
220 Kragenwar-3044
end
221 Kragenwar-3044
 
222 Kragenwar-3044
function DragBar:SetAllowsDragging( bValue )
223 Kragenwar-3044
        if self.bAllowDragging == bValue then
224 Kragenwar-3044
                return;
225 Kragenwar-3044
        end
226 Kragenwar-3044
 
227 Kragenwar-3044
        self.bAllowDragging = bValue;
228 Kragenwar-3044
 
229 Kragenwar-3044
        if ( not self:GetAllowsDragging() ) and self:IsBeingDragged() then
230 Kragenwar-3044
                self:SetDraggable( false );
231 Kragenwar-3044
        end
232 Kragenwar-3044
end
233 Kragenwar-3044
 
234 Kragenwar-3044
function DragBar:SetAllowsHUDHiding( bValue, bShowHUDIfHidden )
235 Kragenwar-3044
        if self.bAllowHUDHiding == bValue then
236 Kragenwar-3044
                return;
237 Kragenwar-3044
        end
238 Kragenwar-3044
 
239 Kragenwar-3044
        self.bAllowHUDHiding = bValue;
240 Kragenwar-3044
 
241 Kragenwar-3044
        if bShowHUDIfHidden then
242 Kragenwar-3044
                if ( not self:GetAllowsHUDHiding() ) and not self:IsHUDVisible() then
243 Kragenwar-3044
                        self:SetHUDVisible( true );
244 Kragenwar-3044
                end
245 Kragenwar-3044
        end
246 Kragenwar-3044
end
247 Kragenwar-3044
 
248 Kragenwar-3044
function DragBar:GetAllowsDragging( )
249 Kragenwar-3044
        return self.bAllowDragging;
250 Kragenwar-3044
end
251 Kragenwar-3044
 
252 Kragenwar-3044
function DragBar:GetAllowsHUDHiding( )
253 Kragenwar-3044
        return self.bAllowHUDHiding;
254 Kragenwar-3044
end
255 Kragenwar-3044
 
256 Kragenwar-3044
function DragBar:HideTargetIfHUDHidden( )
257 Kragenwar-3044
        if self.wndTarget:IsVisible() and not self:IsHUDVisible() then
258 Kragenwar-3044
                self.wndTarget:SetVisible( false );
259 Kragenwar-3044
        end
260 Kragenwar-3044
end
261 Kragenwar-3044
 
262 Kragenwar-3044
function DragBar:SetDraggable( bValue )
263 Kragenwar-3044
        if self.bReposUI == bValue then
264 Kragenwar-3044
                return;
265 Kragenwar-3044
        end
266 Kragenwar-3044
 
267 Kragenwar-3044
        self.bReposUI = bValue;
268 Kragenwar-3044
 
269 Kragenwar-3044
        if self:IsDraggable() then
270 Kragenwar-3044
                self:SetVisible( self:IsHUDVisible() );
271 Kragenwar-3044
 
272 Kragenwar-3044
                if type( self.wndTarget.DragEnable ) == "function" then
273 Kragenwar-3044
                        self.wndTarget:DragEnable();
274 Kragenwar-3044
                end
275 Kragenwar-3044
        else
276 Kragenwar-3044
                self:SetVisible( false );
277 Kragenwar-3044
 
278 Kragenwar-3044
                if type( self.wndTarget.DragDisable ) == "function" then
279 Kragenwar-3044
                        self.wndTarget:DragDisable();
280 Kragenwar-3044
                end
281 Kragenwar-3044
        end
282 Kragenwar-3044
end
283 Kragenwar-3044
 
284 Kragenwar-3044
function DragBar:IsDraggable( )
285 Kragenwar-3044
        return self.bReposUI;
286 Kragenwar-3044
end
287 Kragenwar-3044
 
288 Kragenwar-3044
function DragBar:SetHUDVisible( bValue )
289 Kragenwar-3044
        if self.bHUDVisible == bValue then
290 Kragenwar-3044
                return;
291 Kragenwar-3044
        end
292 Kragenwar-3044
 
293 Kragenwar-3044
        self.bHUDVisible = bValue;
294 Kragenwar-3044
 
295 Kragenwar-3044
        if self:IsHUDVisible() then
296 Kragenwar-3044
                self.wndTarget:SetVisible( true );
297 Kragenwar-3044
                self:SetVisible( self:IsDraggable() );
298 Kragenwar-3044
                if type( self.wndTarget.HUDShow ) == "function" then
299 Kragenwar-3044
                        self.wndTarget:HUDShow();
300 Kragenwar-3044
                end
301 Kragenwar-3044
        else
302 Kragenwar-3044
                self.wndTarget:SetVisible( false );
303 Kragenwar-3044
                self:SetVisible( false );
304 Kragenwar-3044
                if type( self.wndTarget.HUDHide ) == "function" then
305 Kragenwar-3044
                        self.wndTarget:HUDHide();
306 Kragenwar-3044
                end
307 Kragenwar-3044
        end
308 Kragenwar-3044
end
309 Kragenwar-3044
 
310 Kragenwar-3044
function DragBar:IsHUDVisible( )
311 Kragenwar-3044
        return self.bHUDVisible;
312 Kragenwar-3044
end
313 Kragenwar-3044
 
314 Kragenwar-3044
function DragBar:SetBeingDragged( bValue, args )
315 Kragenwar-3044
        local oldValue = self.bDragging;
316 Kragenwar-3044
 
317 Kragenwar-3044
        self.bDragging = bValue;
318 Kragenwar-3044
 
319 Kragenwar-3044
        if self:IsBeingDragged() then
320 Kragenwar-3044
                self.dragStartX = args.X;
321 Kragenwar-3044
                self.dragStartY = args.Y;
322 Kragenwar-3044
                self.Corner:SetBackground( self.resource.Corner.Dragged );
323 Kragenwar-3044
                self.Bar:SetBackground( self.resource.Bar.Dragged );
324 Kragenwar-3044
 
325 Kragenwar-3044
                if not oldValue then
326 Kragenwar-3044
                        if type( self.wndTarget.DragStart ) == "function" then
327 Kragenwar-3044
                                self.wndTarget:DragStart();
328 Kragenwar-3044
                        end
329 Kragenwar-3044
                end
330 Kragenwar-3044
        else
331 Kragenwar-3044
                self.Corner:SetBackground( self.resource.Corner.Normal );
332 Kragenwar-3044
                self.Bar:SetBackground( self.resource.Bar.Normal );
333 Kragenwar-3044
 
334 Kragenwar-3044
                local mx, my = self:GetMousePosition();
335 Kragenwar-3044
                if  mx < 0 or my < 0 or mx > self:GetWidth() or my > self:GetHeight() then
336 Kragenwar-3044
                        self:DestroyHoverBox();
337 Kragenwar-3044
                end
338 Kragenwar-3044
 
339 Kragenwar-3044
                if oldValue then
340 Kragenwar-3044
                        if type( self.wndTarget.DragEnd ) == "function" then
341 Kragenwar-3044
                                self.wndTarget:DragEnd();
342 Kragenwar-3044
                        end
343 Kragenwar-3044
                end
344 Kragenwar-3044
        end
345 Kragenwar-3044
end
346 Kragenwar-3044
 
347 Kragenwar-3044
function DragBar:IsBeingDragged( )
348 Kragenwar-3044
        return self.bDragging;
349 Kragenwar-3044
end
350 Kragenwar-3044
 
351 Kragenwar-3044
function DragBar:ToggleDraggable( )
352 Kragenwar-3044
        self:SetDraggable( not self:IsDraggable() );
353 Kragenwar-3044
end
354 Kragenwar-3044
 
355 Kragenwar-3044
function DragBar:ToggleHUDVisible( )
356 Kragenwar-3044
        self:SetHUDVisible( not self:IsHUDVisible() );
357 Kragenwar-3044
end
358 Kragenwar-3044
 
359 Kragenwar-3044
function DragBar:CreateHoverBox( )
360 Kragenwar-3044
        if self.hoverBox == nil then
361 Kragenwar-3044
                self.hoverBox = Turbine.UI.Window();
362 Kragenwar-3044
                self.hoverBox:SetSize( self.wndTarget:GetSize() );
363 Kragenwar-3044
                self.hoverBox:SetPosition( self.wndTarget:GetPosition() );
364 Kragenwar-3044
                self.hoverBox:SetMouseVisible( false );
365 Kragenwar-3044
                self.hoverBox:SetBackColor( Turbine.UI.Color( 0, 0, 0, 0 ) );
366 Kragenwar-3044
                self.hoverBox:SetVisible( true );
367 Kragenwar-3044
                self.hoverBox:SetOpacity( 1 );
368 Kragenwar-3044
 
369 Kragenwar-3044
                self.hoverTL = Turbine.UI.Control();
370 Kragenwar-3044
                self.hoverTL:SetParent( self.hoverBox );
371 Kragenwar-3044
                self.hoverTL:SetSize( 8, 8 );
372 Kragenwar-3044
                self.hoverTL:SetPosition( 0, 0 );
373 Kragenwar-3044
                self.hoverTL:SetMouseVisible( false );
374 Kragenwar-3044
                self.hoverTL:SetBackground( self.resource.Hover.TopLeft );
375 Kragenwar-3044
                self.hoverTL:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
376 Kragenwar-3044
                self.hoverTL:SetVisible( true );
377 Kragenwar-3044
                self.hoverTL:SetOpacity( 1 );
378 Kragenwar-3044
 
379 Kragenwar-3044
                self.hoverTR = Turbine.UI.Control();
380 Kragenwar-3044
                self.hoverTR:SetParent( self.hoverBox );
381 Kragenwar-3044
                self.hoverTR:SetSize( 8, 8 );
382 Kragenwar-3044
                self.hoverTR:SetPosition( self.hoverBox:GetWidth() - 8, 0 );
383 Kragenwar-3044
                self.hoverTR:SetMouseVisible( false );
384 Kragenwar-3044
                self.hoverTR:SetBackground( self.resource.Hover.TopRight );
385 Kragenwar-3044
                self.hoverTR:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
386 Kragenwar-3044
                self.hoverTR:SetVisible( true );
387 Kragenwar-3044
                self.hoverTR:SetOpacity( 1 );
388 Kragenwar-3044
 
389 Kragenwar-3044
                self.hoverBL = Turbine.UI.Control();
390 Kragenwar-3044
                self.hoverBL:SetParent( self.hoverBox );
391 Kragenwar-3044
                self.hoverBL:SetSize( 8, 8 );
392 Kragenwar-3044
                self.hoverBL:SetPosition( 0, self.hoverBox:GetHeight() - 8 );
393 Kragenwar-3044
                self.hoverBL:SetMouseVisible( false );
394 Kragenwar-3044
                self.hoverBL:SetBackground( self.resource.Hover.BottomLeft );
395 Kragenwar-3044
                self.hoverBL:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
396 Kragenwar-3044
                self.hoverBL:SetVisible( true );
397 Kragenwar-3044
                self.hoverBL:SetOpacity( 1 );
398 Kragenwar-3044
 
399 Kragenwar-3044
                self.hoverBR = Turbine.UI.Control();
400 Kragenwar-3044
                self.hoverBR:SetParent( self.hoverBox );
401 Kragenwar-3044
                self.hoverBR:SetSize( 8, 8 );
402 Kragenwar-3044
                self.hoverBR:SetPosition( self.hoverBox:GetWidth() - 8, self.hoverBox:GetHeight() - 8 );
403 Kragenwar-3044
                self.hoverBR:SetMouseVisible( false );
404 Kragenwar-3044
                self.hoverBR:SetBackground( self.resource.Hover.BottomRight );
405 Kragenwar-3044
                self.hoverBR:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
406 Kragenwar-3044
                self.hoverBR:SetVisible( true );
407 Kragenwar-3044
                self.hoverBR:SetOpacity( 1 );
408 Kragenwar-3044
 
409 Kragenwar-3044
                self.hoverT = Turbine.UI.Control();
410 Kragenwar-3044
                self.hoverT:SetParent( self.hoverBox );
411 Kragenwar-3044
                self.hoverT:SetSize( self.hoverBox:GetWidth() - 16, 8 );
412 Kragenwar-3044
                self.hoverT:SetPosition( 8, 0 );
413 Kragenwar-3044
                self.hoverT:SetMouseVisible( false );
414 Kragenwar-3044
                self.hoverT:SetBackground( self.resource.Hover.Top );
415 Kragenwar-3044
                self.hoverT:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
416 Kragenwar-3044
                self.hoverT:SetVisible( true );
417 Kragenwar-3044
                self.hoverT:SetOpacity( 1 );
418 Kragenwar-3044
 
419 Kragenwar-3044
                self.hoverL = Turbine.UI.Control();
420 Kragenwar-3044
                self.hoverL:SetParent( self.hoverBox );
421 Kragenwar-3044
                self.hoverL:SetSize( 8, self.hoverBox:GetHeight() - 16 );
422 Kragenwar-3044
                self.hoverL:SetPosition( 0, 8 );
423 Kragenwar-3044
                self.hoverL:SetMouseVisible( false );
424 Kragenwar-3044
                self.hoverL:SetBackground( self.resource.Hover.Left );
425 Kragenwar-3044
                self.hoverL:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
426 Kragenwar-3044
                self.hoverL:SetVisible( true );
427 Kragenwar-3044
                self.hoverL:SetOpacity( 1 );
428 Kragenwar-3044
 
429 Kragenwar-3044
                self.hoverB = Turbine.UI.Control();
430 Kragenwar-3044
                self.hoverB:SetParent( self.hoverBox );
431 Kragenwar-3044
                self.hoverB:SetSize( self.hoverBox:GetWidth() - 16, 8 );
432 Kragenwar-3044
                self.hoverB:SetPosition( 8, self.hoverBox:GetHeight() - 8 );
433 Kragenwar-3044
                self.hoverB:SetMouseVisible( false );
434 Kragenwar-3044
                self.hoverB:SetBackground( self.resource.Hover.Bottom );
435 Kragenwar-3044
                self.hoverB:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
436 Kragenwar-3044
                self.hoverB:SetVisible( true );
437 Kragenwar-3044
                self.hoverB:SetOpacity( 1 );
438 Kragenwar-3044
 
439 Kragenwar-3044
                self.hoverR = Turbine.UI.Control();
440 Kragenwar-3044
                self.hoverR:SetParent( self.hoverBox );
441 Kragenwar-3044
                self.hoverR:SetSize( 8, self.hoverBox:GetHeight() - 16 );
442 Kragenwar-3044
                self.hoverR:SetPosition( self.hoverBox:GetWidth() - 8, 8 );
443 Kragenwar-3044
                self.hoverR:SetMouseVisible( false );
444 Kragenwar-3044
                self.hoverR:SetBackground( self.resource.Hover.Right );
445 Kragenwar-3044
                self.hoverR:SetBlendMode( Turbine.UI.BlendMode.AlphaBlend );
446 Kragenwar-3044
                self.hoverR:SetVisible( true );
447 Kragenwar-3044
                self.hoverR:SetOpacity( 1 );
448 Kragenwar-3044
        end
449 Kragenwar-3044
end
450 Kragenwar-3044
 
451 Kragenwar-3044
function DragBar:DestroyHoverBox( )
452 Kragenwar-3044
        if self.hoverBox ~= nil then
453 Kragenwar-3044
                self.hoverBox:SetVisible( false );
454 Kragenwar-3044
                self.hoverBox = nil;
455 Kragenwar-3044
                self.hoverTL = nil;
456 Kragenwar-3044
                self.hoverTR = nil;
457 Kragenwar-3044
                self.hoverBL = nil;
458 Kragenwar-3044
                self.hoverBR = nil;
459 Kragenwar-3044
                self.hoverT = nil;
460 Kragenwar-3044
                self.hoverL = nil;
461 Kragenwar-3044
                self.hoverB = nil;
462 Kragenwar-3044
                self.hoverR = nil;
463 Kragenwar-3044
        end
464 Kragenwar-3044
end
465 Kragenwar-3044
 
466 Kragenwar-3044
function DragBar:IsBarOnTop( )
467 Kragenwar-3044
        return self.bOnTop;
468 Kragenwar-3044
end
469 Kragenwar-3044
 
470 Kragenwar-3044
function DragBar:SetBarOnTop( bValue )
471 Kragenwar-3044
        self.bOnTop = bValue;
472 Kragenwar-3044
 
473 Kragenwar-3044
        self:RecalculatePosition();
474 Kragenwar-3044
end
475 Kragenwar-3044
 
476 Kragenwar-3044
function DragBar:RecalculatePosition( )
477 Kragenwar-3044
        local X, Y;
478 Kragenwar-3044
 
479 Kragenwar-3044
        if self.hoverBox ~= nil then
480 Kragenwar-3044
                self.hoverBox:SetPosition( self.wndTarget:GetPosition() );
481 Kragenwar-3044
        end
482 Kragenwar-3044
 
483 Kragenwar-3044
        if self.bOnTop then
484 Kragenwar-3044
                X = self.wndTarget:GetLeft();
485 Kragenwar-3044
                Y = math.max( self.wndTarget:GetTop() - 19, 0 );
486 Kragenwar-3044
        else
487 Kragenwar-3044
                X = self.wndTarget:GetLeft();
488 Kragenwar-3044
                Y = math.min( self.wndTarget:GetTop() + self.wndTarget:GetHeight(), Turbine.UI.Display:GetHeight() - 19 );
489 Kragenwar-3044
        end
490 Kragenwar-3044
 
491 Kragenwar-3044
        self:SetPosition( X, Y );
492 Kragenwar-3044
end
493 Kragenwar-3044
 
494 Kragenwar-3044
function DragBar:RecalculateSize()
495 Kragenwar-3044
        self:SetSize( self.wndTarget:GetWidth(), 19 );
496 Kragenwar-3044
        self.Bar:SetSize( self:GetWidth() - 19, 19 );
497 Kragenwar-3044
        self.Label:SetSize( self:GetWidth(), 18 );
498 Kragenwar-3044
 
499 Kragenwar-3044
        if self.hoverBox ~= nil then
500 Kragenwar-3044
                self.hoverBox:SetSize( self.wndTarget:GetSize() );
501 Kragenwar-3044
                self.hoverTR:SetPosition( self.hoverBox:GetWidth() - 8, 0 );
502 Kragenwar-3044
                self.hoverBL:SetPosition( 0, self.hoverBox:GetHeight() - 8 );
503 Kragenwar-3044
                self.hoverBR:SetPosition( self.hoverBox:GetWidth() - 8, self.hoverBox:GetHeight() - 8 );
504 Kragenwar-3044
                self.hoverT:SetSize( self.hoverBox:GetWidth() - 16, 8 );
505 Kragenwar-3044
                self.hoverL:SetSize( 8, self.hoverBox:GetHeight() - 16 );
506 Kragenwar-3044
                self.hoverB:SetSize( self.hoverBox:GetWidth() - 16, 8 );
507 Kragenwar-3044
                self.hoverB:SetPosition( 8, self.hoverBox:GetHeight() - 8 );
508 Kragenwar-3044
                self.hoverR:SetSize( 8, self.hoverBox:GetHeight() - 16 );
509 Kragenwar-3044
                self.hoverR:SetPosition( self.hoverBox:GetWidth() - 8, 8 );
510 Kragenwar-3044
        end
511 Kragenwar-3044
end
512 Kragenwar-3044
 
513 Kragenwar-3044
function DragBar:Refresh( )
514 Kragenwar-3044
        self:RecalculateSize();
515 Kragenwar-3044
        self:RecalculatePosition();
516 Kragenwar-3044
end

All times are GMT -5. The time now is 10:46 AM.


Our Network
EQInterface | EQ2Interface | Minion | WoWInterface | ESOUI | LoTROInterface | MMOUI | Swtorui