lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [branches/] [3.21/] [UI/] [CheckBox.lua] - Blame information for rev 72

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 72 Kragenwar-3044
import "Turbine.UI";
2 Kragenwar-3044
import "KragenPlugs.Utils";
3 Kragenwar-3044
 
4 Kragenwar-3044
CheckBox = class(Turbine.UI.Control);
5 Kragenwar-3044
 
6 Kragenwar-3044
-- colors
7 Kragenwar-3044
CheckBox.ItemColor = Turbine.UI.Color(245/255, 222/255, 147/255);
8 Kragenwar-3044
CheckBox.DisabledColor = Turbine.UI.Color(162/255, 162/255, 162/255);
9 Kragenwar-3044
 
10 Kragenwar-3044
function CheckBox:Constructor()
11 Kragenwar-3044
    Turbine.UI.Control.Constructor(self);
12 Kragenwar-3044
 
13 Kragenwar-3044
    -- state
14 Kragenwar-3044
    self.checked = false;
15 Kragenwar-3044
 
16 Kragenwar-3044
    -- text label
17 Kragenwar-3044
    self.label = Turbine.UI.Label();
18 Kragenwar-3044
    self.label:SetParent(self);
19 Kragenwar-3044
    self.label:SetPosition(0, 0);
20 Kragenwar-3044
    self.label:SetFont(Turbine.UI.Lotro.Font.TrajanPro14);
21 Kragenwar-3044
    self.label:SetForeColor(CheckBox.ItemColor);
22 Kragenwar-3044
    self.label:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleRight);
23 Kragenwar-3044
    self.label:SetMouseVisible(false);
24 Kragenwar-3044
 
25 Kragenwar-3044
    -- check
26 Kragenwar-3044
    self.check = Turbine.UI.Control();
27 Kragenwar-3044
    self.check:SetParent(self);
28 Kragenwar-3044
    self.check:SetSize(16, 16);
29 Kragenwar-3044
    self.check:SetBlendMode(Turbine.UI.BlendMode.AlphaBlend);
30 Kragenwar-3044
    self.check:SetBackground("KragenPlugs/UI/Resources/checkbox_02_empty.tga");
31 Kragenwar-3044
 
32 Kragenwar-3044
    -- listeners
33 Kragenwar-3044
    self.check.MouseClick = function(sender, args)
34 Kragenwar-3044
        if (not self:IsEnabled()) then
35 Kragenwar-3044
            return;
36 Kragenwar-3044
        end
37 Kragenwar-3044
 
38 Kragenwar-3044
        if (args.Button == Turbine.UI.MouseButton.Left) then
39 Kragenwar-3044
            self:SetChecked(not self.checked);
40 Kragenwar-3044
        end
41 Kragenwar-3044
    end
42 Kragenwar-3044
end
43 Kragenwar-3044
 
44 Kragenwar-3044
function CheckBox:IsChecked()
45 Kragenwar-3044
    return self.checked;
46 Kragenwar-3044
end
47 Kragenwar-3044
 
48 Kragenwar-3044
function CheckBox:SetChecked(checked)
49 Kragenwar-3044
    self.checked = checked;
50 Kragenwar-3044
    self:UpdateState();
51 Kragenwar-3044
    if (type(self.CheckedChanged) == "function") then
52 Kragenwar-3044
        self:CheckedChanged({});
53 Kragenwar-3044
    end
54 Kragenwar-3044
end
55 Kragenwar-3044
 
56 Kragenwar-3044
function CheckBox:SetEnabled(enabled)
57 Kragenwar-3044
    Turbine.UI.Control.SetEnabled(self, enabled);
58 Kragenwar-3044
    self:UpdateState();
59 Kragenwar-3044
end
60 Kragenwar-3044
 
61 Kragenwar-3044
function CheckBox:SetText(text)
62 Kragenwar-3044
    self.label:SetText(text);
63 Kragenwar-3044
end
64 Kragenwar-3044
 
65 Kragenwar-3044
function CheckBox:AlignLeft(bol)
66 Kragenwar-3044
    local width, height = self:GetSize();
67 Kragenwar-3044
 
68 Kragenwar-3044
        if (bol) then
69 Kragenwar-3044
                self.label:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleLeft);
70 Kragenwar-3044
                self.label:SetSize(width - 22, height);
71 Kragenwar-3044
                self.label:SetPosition(22, 0);
72 Kragenwar-3044
                self.check:SetPosition(0, ((height - 16) / 2));
73 Kragenwar-3044
        else
74 Kragenwar-3044
                self.label:SetSize(width - 22, height);
75 Kragenwar-3044
                self.check:SetPosition(width - 16, ((height - 16) / 2));
76 Kragenwar-3044
        end
77 Kragenwar-3044
 
78 Kragenwar-3044
end
79 Kragenwar-3044
 
80 Kragenwar-3044
function CheckBox:SetSize(width, height)
81 Kragenwar-3044
    self.base.SetSize(self, width, height);
82 Kragenwar-3044
    self:AlignLeft(false);
83 Kragenwar-3044
end
84 Kragenwar-3044
 
85 Kragenwar-3044
function CheckBox:Layout()
86 Kragenwar-3044
    local width, height = self:GetSize();
87 Kragenwar-3044
        self.label:SetSize(width - 22, height);
88 Kragenwar-3044
        self.check:SetPosition(width - 16, ((height - 16) / 2));
89 Kragenwar-3044
 
90 Kragenwar-3044
end
91 Kragenwar-3044
 
92 Kragenwar-3044
function CheckBox:UpdateState()
93 Kragenwar-3044
    local enabled = self:IsEnabled();
94 Kragenwar-3044
    self.label:SetForeColor(enabled and CheckBox.ItemColor or CheckBox.DisabledColor);
95 Kragenwar-3044
    if (self.checked) then
96 Kragenwar-3044
        self.check:SetBackground("KragenPlugs/UI/Resources/checkbox_02"..(enabled and "" or "_ghosted")..".tga");
97 Kragenwar-3044
    else
98 Kragenwar-3044
        self.check:SetBackground("KragenPlugs/UI/Resources/checkbox_02_empty"..(enabled and "" or "_ghosted")..".tga");
99 Kragenwar-3044
    end
100 Kragenwar-3044
end

All times are GMT -5. The time now is 01:50 AM.


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