lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [branches/] [3.10/] [Utils/] [Extensions/] [SimpleWindow.lua] - Blame information for rev 15

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 Kragenwar-3044
 
2 Kragenwar-3044
 
3 Kragenwar-3044
import "Turbine.UI";
4 Kragenwar-3044
import "Turbine.UI.Lotro";
5 Kragenwar-3044
 
6 Kragenwar-3044
SimpleWindow = class( Turbine.UI.Window );
7 Kragenwar-3044
 
8 Kragenwar-3044
function SimpleWindow:Constructor()
9 Kragenwar-3044
        Turbine.UI.Window.Constructor( self );
10 Kragenwar-3044
 
11 Kragenwar-3044
        self:SetFadeSpeed( 0.2 );
12 Kragenwar-3044
        self:SetOpacity( 1 );
13 Kragenwar-3044
end
14 Kragenwar-3044
 
15 Kragenwar-3044
function SimpleWindow:SetFadeSpeed( value )
16 Kragenwar-3044
        self.fadeSpeed = 1 / value;
17 Kragenwar-3044
end
18 Kragenwar-3044
 
19 Kragenwar-3044
function SimpleWindow:SetVisible( value )
20 Kragenwar-3044
        if ( value == true ) then
21 Kragenwar-3044
                Turbine.UI.Window.SetOpacity( self, 0 );
22 Kragenwar-3044
                Turbine.UI.Window.SetVisible( self, true );
23 Kragenwar-3044
                self:SetOpacity( self.realOpacity );
24 Kragenwar-3044
        else
25 Kragenwar-3044
                self.hideOnClose = true;
26 Kragenwar-3044
 
27 Kragenwar-3044
                local savedOpacity = self.realOpacity
28 Kragenwar-3044
                self:SetOpacity( 0 );
29 Kragenwar-3044
                self.realOpacity = savedOpacity
30 Kragenwar-3044
        end
31 Kragenwar-3044
end
32 Kragenwar-3044
 
33 Kragenwar-3044
function SimpleWindow:SetOpacity( value )
34 Kragenwar-3044
        self.realOpacity = value;
35 Kragenwar-3044
        self.currentTime = Turbine.Engine.GetGameTime();
36 Kragenwar-3044
        self.currentOpacity = Turbine.UI.Window.GetOpacity( self );
37 Kragenwar-3044
        self.targetOpacity = value;
38 Kragenwar-3044
 
39 Kragenwar-3044
        if ( self.targetOpacity ~= self.currentOpacity ) then
40 Kragenwar-3044
                self:SetWantsUpdates( true );
41 Kragenwar-3044
        end
42 Kragenwar-3044
end
43 Kragenwar-3044
 
44 Kragenwar-3044
function SimpleWindow:Update( sender, args )
45 Kragenwar-3044
        local newOpacity;
46 Kragenwar-3044
 
47 Kragenwar-3044
        local now = Turbine.Engine.GetGameTime();
48 Kragenwar-3044
        local delta = now - self.currentTime;
49 Kragenwar-3044
        self.currentTime = now;
50 Kragenwar-3044
 
51 Kragenwar-3044
        delta = delta * self.fadeSpeed;
52 Kragenwar-3044
 
53 Kragenwar-3044
        if ( self.currentOpacity < self.targetOpacity ) then
54 Kragenwar-3044
                newOpacity = self.currentOpacity + delta;
55 Kragenwar-3044
 
56 Kragenwar-3044
                if ( newOpacity > self.targetOpacity ) then
57 Kragenwar-3044
                        self:SetWantsUpdates( false )
58 Kragenwar-3044
                        newOpacity = self.targetOpacity
59 Kragenwar-3044
                end
60 Kragenwar-3044
        else
61 Kragenwar-3044
                newOpacity = self.currentOpacity - delta;
62 Kragenwar-3044
 
63 Kragenwar-3044
                if ( newOpacity < self.targetOpacity ) then
64 Kragenwar-3044
                        self:SetWantsUpdates( false )
65 Kragenwar-3044
                        newOpacity = self.targetOpacity
66 Kragenwar-3044
 
67 Kragenwar-3044
                        if ( self.hideOnClose ) then
68 Kragenwar-3044
                                Turbine.UI.Window.SetVisible( self, false );
69 Kragenwar-3044
                                self.hideOnClose = false
70 Kragenwar-3044
                        end
71 Kragenwar-3044
                end
72 Kragenwar-3044
        end
73 Kragenwar-3044
 
74 Kragenwar-3044
        self.currentOpacity = newOpacity;
75 Kragenwar-3044
        Turbine.UI.Window.SetOpacity( self, newOpacity );
76 Kragenwar-3044
end

All times are GMT -5. The time now is 07:47 AM.


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