lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [branches/] [3.10/] [UI/] [Button.lua] - Blame information for rev 19

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 Kragenwar-3044
import "Turbine.UI";
2 Kragenwar-3044
 
3 Kragenwar-3044
Button = class(Turbine.UI.Control);
4 Kragenwar-3044
 
5 Kragenwar-3044
-- colors
6 Kragenwar-3044
Button.ItemColor = Turbine.UI.Color(180/255, 150/255, 0/255);
7 Kragenwar-3044
Button.DisabledColor = Turbine.UI.Color(162/255, 162/255, 162/255);
8 Kragenwar-3044
Button.HighlightColor = Turbine.UI.Color(255/255, 255/255, 0/255);
9 Kragenwar-3044
 
10 Kragenwar-3044
function Button:Constructor()
11 Kragenwar-3044
    Turbine.UI.Control.Constructor(self);
12 Kragenwar-3044
 
13 Kragenwar-3044
    -- state
14 Kragenwar-3044
    self.selected = false;
15 Kragenwar-3044
    self.pressed = false;
16 Kragenwar-3044
    self.mouse = false;
17 Kragenwar-3044
 
18 Kragenwar-3044
    -- text label
19 Kragenwar-3044
    self.label = Turbine.UI.Label();
20 Kragenwar-3044
    self.label:SetParent(self);
21 Kragenwar-3044
    self.label:SetPosition(0, 0);
22 Kragenwar-3044
    self.label:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
23 Kragenwar-3044
    self.label:SetForeColor(Button.ItemColor);
24 Kragenwar-3044
    self.label:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
25 Kragenwar-3044
    self.label:SetMouseVisible(false);
26 Kragenwar-3044
    self.label:SetZOrder(5);
27 Kragenwar-3044
 
28 Kragenwar-3044
    -- left
29 Kragenwar-3044
    self.left = Turbine.UI.Control();
30 Kragenwar-3044
    self.left:SetParent(self);
31 Kragenwar-3044
    self.left:SetSize(20, 20);
32 Kragenwar-3044
    self.left:SetMouseVisible(false);
33 Kragenwar-3044
    self.left:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend);
34 Kragenwar-3044
    self.left:SetBackground("KragenPlugs/UI/Resources/textbutton_left_normal.tga");
35 Kragenwar-3044
 
36 Kragenwar-3044
    -- mid
37 Kragenwar-3044
    self.mid = Turbine.UI.Control();
38 Kragenwar-3044
    self.mid:SetParent(self);
39 Kragenwar-3044
    self.mid:SetSize(20, 20);
40 Kragenwar-3044
    self.mid:SetMouseVisible(false);
41 Kragenwar-3044
    self.mid:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend);
42 Kragenwar-3044
    self.mid:SetBackground("KragenPlugs/UI/Resources/textbutton_mid_normal.tga");
43 Kragenwar-3044
 
44 Kragenwar-3044
    -- right
45 Kragenwar-3044
    self.right = Turbine.UI.Control();
46 Kragenwar-3044
    self.right:SetParent(self);
47 Kragenwar-3044
    self.right:SetSize(20, 20);
48 Kragenwar-3044
    self.right:SetMouseVisible(false);
49 Kragenwar-3044
    self.right:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend);
50 Kragenwar-3044
    self.right:SetBackground("KragenPlugs/UI/Resources/textbutton_right_normal.tga");
51 Kragenwar-3044
end
52 Kragenwar-3044
 
53 Kragenwar-3044
function Button:MouseClick(args)
54 Kragenwar-3044
    if (not self:IsEnabled()) then
55 Kragenwar-3044
        return;
56 Kragenwar-3044
    end
57 Kragenwar-3044
 
58 Kragenwar-3044
    if (args.Button == Turbine.UI.MouseButton.Left) then
59 Kragenwar-3044
        if (type(self.Click) == "function") then
60 Kragenwar-3044
            self:Click({});
61 Kragenwar-3044
        end
62 Kragenwar-3044
    end
63 Kragenwar-3044
end
64 Kragenwar-3044
 
65 Kragenwar-3044
function Button:MouseEnter(args)
66 Kragenwar-3044
    self.mouse = true;
67 Kragenwar-3044
    self:UpdateState();
68 Kragenwar-3044
end
69 Kragenwar-3044
 
70 Kragenwar-3044
function Button:MouseLeave(args)
71 Kragenwar-3044
    self.mouse = false;
72 Kragenwar-3044
    self:UpdateState();
73 Kragenwar-3044
end
74 Kragenwar-3044
 
75 Kragenwar-3044
function Button:MouseDown(args)
76 Kragenwar-3044
    self.pressed = true;
77 Kragenwar-3044
    self:UpdateState();
78 Kragenwar-3044
end
79 Kragenwar-3044
 
80 Kragenwar-3044
function Button:MouseUp(args)
81 Kragenwar-3044
    self.pressed = false;
82 Kragenwar-3044
    self:UpdateState();
83 Kragenwar-3044
end
84 Kragenwar-3044
 
85 Kragenwar-3044
function Button:IsSelected()
86 Kragenwar-3044
    return self.selected;
87 Kragenwar-3044
end
88 Kragenwar-3044
 
89 Kragenwar-3044
function Button:SetSelected(selected)
90 Kragenwar-3044
    self.selected = selected;
91 Kragenwar-3044
    self:UpdateState();
92 Kragenwar-3044
end
93 Kragenwar-3044
 
94 Kragenwar-3044
function Button:SetEnabled(enabled)
95 Kragenwar-3044
    Turbine.UI.Control.SetEnabled(self, enabled);
96 Kragenwar-3044
    self:UpdateState();
97 Kragenwar-3044
end
98 Kragenwar-3044
 
99 Kragenwar-3044
function Button:SetText(text)
100 Kragenwar-3044
    self.label:SetText(text);
101 Kragenwar-3044
end
102 Kragenwar-3044
 
103 Kragenwar-3044
function Button:SetSize(width, height)
104 Kragenwar-3044
    Turbine.UI.Control.SetSize(self, width, height);
105 Kragenwar-3044
    self:Layout();
106 Kragenwar-3044
end
107 Kragenwar-3044
 
108 Kragenwar-3044
function Button:Layout()
109 Kragenwar-3044
    local width = self:GetWidth();
110 Kragenwar-3044
    if (width < 40) then
111 Kragenwar-3044
        width = 40;
112 Kragenwar-3044
    end
113 Kragenwar-3044
 
114 Kragenwar-3044
    self.label:SetPosition(5, 0);
115 Kragenwar-3044
    self.left:SetPosition(0, 0);
116 Kragenwar-3044
    self.mid:SetPosition(20, 0);
117 Kragenwar-3044
    self.right:SetPosition(width-20, 0);
118 Kragenwar-3044
 
119 Kragenwar-3044
    self.label:SetSize(width - 10, 20);
120 Kragenwar-3044
    self.left:SetSize(20, 20);
121 Kragenwar-3044
    self.mid:SetSize(width - 40, 20);
122 Kragenwar-3044
    self.right:SetSize(20, 20);
123 Kragenwar-3044
end
124 Kragenwar-3044
 
125 Kragenwar-3044
function Button:UpdateState()
126 Kragenwar-3044
    local enabled = self:IsEnabled();
127 Kragenwar-3044
    local state = self.selected and "highlighted_" or "";
128 Kragenwar-3044
    local color = self.selected and Button.HighlightColor or Button.ItemColor;
129 Kragenwar-3044
    if (not enabled) then
130 Kragenwar-3044
        state = "ghosted";
131 Kragenwar-3044
        color = Button.DisabledColor;
132 Kragenwar-3044
    elseif (self.pressed) then
133 Kragenwar-3044
        state = state .. "pressed";
134 Kragenwar-3044
        color = Button.DisabledColor;
135 Kragenwar-3044
    elseif (self.mouse) then
136 Kragenwar-3044
        state = state .. "mouseover";
137 Kragenwar-3044
        color = Button.HighlightColor;
138 Kragenwar-3044
    else
139 Kragenwar-3044
        state = state .. "normal";
140 Kragenwar-3044
    end
141 Kragenwar-3044
 
142 Kragenwar-3044
    self.label:SetForeColor(color);
143 Kragenwar-3044
    self.left:SetBackground("KragenPlugs/UI/Resources/textbutton_left_"..state..".tga");
144 Kragenwar-3044
    self.mid:SetBackground("KragenPlugs/UI/Resources/textbutton_mid_"..state..".tga");
145 Kragenwar-3044
    self.right:SetBackground("KragenPlugs/UI/Resources/textbutton_right_"..state..".tga");
146 Kragenwar-3044
end

All times are GMT -5. The time now is 11:42 PM.


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