lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [trunk/] [KragenPlugs/] [KragenBars/] [SetupQuickslots.lua] - Blame information for rev 65

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 Kragenwar-3044
import "Turbine.UI";
2 Kragenwar-3044
 
3 Kragenwar-3044
SetupQuickslots = class(Turbine.UI.ListBox);
4 Kragenwar-3044
 
5 Kragenwar-3044
-- helper functions
6 Kragenwar-3044
local tt = function(width, height, control, text)
7 Kragenwar-3044
    local tooltip = KragenPlugs.UI.Tooltip();
8 Kragenwar-3044
    tooltip:SetText(text);
9 Kragenwar-3044
    tooltip:SetControl(control);
10 Kragenwar-3044
    tooltip:SetSize(width, height);
11 Kragenwar-3044
end
12 Kragenwar-3044
 
13 Kragenwar-3044
local holder = function(parent, height)
14 Kragenwar-3044
    local container = Turbine.UI.Control();
15 Kragenwar-3044
    container:SetSize(400, height);
16 Kragenwar-3044
    parent:AddItem(container);
17 Kragenwar-3044
    return container;
18 Kragenwar-3044
end
19 Kragenwar-3044
 
20 Kragenwar-3044
 
21 Kragenwar-3044
function SetupQuickslots:Constructor()
22 Kragenwar-3044
    Turbine.UI.ListBox.Constructor(self);
23 Kragenwar-3044
 
24 Kragenwar-3044
    self.current = nil;
25 62 Valdacil-446
        self.titlebars = { };
26 Valdacil-446
        self.quickslots = { };
27 6 Kragenwar-3044
 
28 Kragenwar-3044
    self:SetOrientation(Turbine.UI.Orientation.Horizontal);
29 Kragenwar-3044
    self:SetMaxItemsPerLine(1);
30 Kragenwar-3044
 
31 62 Valdacil-446
        self:AddTitleBar("Quickslots");
32 6 Kragenwar-3044
        line = holder(self, 20);
33 Kragenwar-3044
    self.labelclear = KragenPlugs.UI.Label();
34 Kragenwar-3044
    self.labelclear:SetParent(line);
35 Kragenwar-3044
    self.labelclear:SetSize(400, 20);
36 Kragenwar-3044
    self.labelclear:SetPosition(0,0);
37 Kragenwar-3044
    self.labelclear:SetText("Alt+Rt. Click to Clear Quickslot");
38 Kragenwar-3044
    self.labelclear:SetVisible(true);
39 62 Valdacil-446
 
40 Valdacil-446
        for i = 1,4 do  self:AddQuickslotRow(self.quickslots) end -- Adds 2 quickslots each row therefore #quickslots = for-end x 2
41 Valdacil-446
 
42 Valdacil-446
end
43 Valdacil-446
 
44 Valdacil-446
 
45 Valdacil-446
function SetupQuickslots:AddTitleBar(text)
46 Valdacil-446
    local index = #self.titlebars + 1;
47 6 Kragenwar-3044
 
48 62 Valdacil-446
        local line = holder(self, 35);
49 Valdacil-446
    self.titlebars[index] = KragenPlugs.UI.PanelDivider();
50 Valdacil-446
    self.titlebars[index]:SetPosition(0,0);
51 Valdacil-446
    self.titlebars[index]:SetParent(line);
52 Valdacil-446
    self.titlebars[index]:SetText(text);
53 Valdacil-446
    self.titlebars[index]:SetSize(400, 30);
54 Valdacil-446
 
55 Valdacil-446
end
56 Valdacil-446
 
57 Valdacil-446
function SetupQuickslots:AddCheckboxRow(option)
58 Valdacil-446
    local index = #option + 1;
59 Valdacil-446
        local line = holder(self, 20);
60 6 Kragenwar-3044
 
61 62 Valdacil-446
        for i = 1,2 do
62 Valdacil-446
                option[index] = KragenPlugs.UI.CheckBox();
63 Valdacil-446
                option[index]:SetParent(line);
64 Valdacil-446
                option[index]:SetSize(180, 20);
65 Valdacil-446
                if math.mod(index, 2) == 0 then
66 Valdacil-446
                        option[index]:SetPosition(220,0);
67 Valdacil-446
                        option[index]:AlignLeft(true);
68 Valdacil-446
                else
69 Valdacil-446
                        option[index]:SetPosition(0,0);
70 6 Kragenwar-3044
                end
71 62 Valdacil-446
                option[index]:SetText("Checkbox");
72 Valdacil-446
                option[index]:SetVisible(false);
73 Valdacil-446
                index = #option + 1;
74 Valdacil-446
        end
75 Valdacil-446
 
76 Valdacil-446
end
77 Valdacil-446
 
78 Valdacil-446
function SetupQuickslots:AddSlider(option, mini, maxi, step, text)
79 Valdacil-446
        local index = #option + 1;
80 6 Kragenwar-3044
 
81 62 Valdacil-446
        local line = holder(self, 50);
82 Valdacil-446
    option[index] = KragenPlugs.UI.Slider();
83 Valdacil-446
    option[index]:SetParent(line);
84 Valdacil-446
    option[index]:SetText(text);
85 Valdacil-446
    option[index]:SetPosition(49, 0);
86 Valdacil-446
    option[index]:SetSize(350, 40);
87 Valdacil-446
    option[index]:SetStep(step);
88 Valdacil-446
    option[index]:SetMin(mini);
89 Valdacil-446
    option[index]:SetMax(maxi);
90 Valdacil-446
 
91 Valdacil-446
end
92 Valdacil-446
 
93 Valdacil-446
function SetupQuickslots:AddComboBox(option)
94 Valdacil-446
        local index = #option + 1;
95 6 Kragenwar-3044
 
96 62 Valdacil-446
    local line = holder(self, 30);
97 Valdacil-446
        option[index] = { };
98 Valdacil-446
        option[index].label = KragenPlugs.UI.Label();
99 Valdacil-446
    option[index].label:SetParent(line);
100 Valdacil-446
    option[index].label:SetSize(190, 20);
101 Valdacil-446
    option[index].label:SetPosition(20, 0);
102 Valdacil-446
    option[index].label:SetText("Label");
103 Valdacil-446
    option[index].label:SetVisible(false);
104 Valdacil-446
 
105 Valdacil-446
    option[index].combobox = KragenPlugs.UI.ComboBox();
106 Valdacil-446
    option[index].combobox:SetParent(line);
107 Valdacil-446
    option[index].combobox:SetSize(190, 20);
108 Valdacil-446
    option[index].combobox:SetPosition(210, 0);
109 Valdacil-446
    option[index].combobox:SetVisible(false);
110 Valdacil-446
 
111 Valdacil-446
end
112 Valdacil-446
 
113 Valdacil-446
function SetupQuickslots:AddQuickslotRow(option)
114 Valdacil-446
        local index = #option + 1;
115 Valdacil-446
    local line = holder(self, 40);
116 Valdacil-446
 
117 Valdacil-446
        for i = 1,2 do
118 Valdacil-446
                option[index] = { };
119 Valdacil-446
                option[index].quickslot = Turbine.UI.Lotro.Quickslot();
120 Valdacil-446
                option[index].quickslot:SetParent(line);
121 Valdacil-446
                option[index].quickslot:SetSize(36, 36);
122 Valdacil-446
                if math.mod(index, 2) == 0 then
123 Valdacil-446
                        option[index].quickslot:SetPosition(245, 0);
124 Valdacil-446
                else
125 Valdacil-446
                        option[index].quickslot:SetPosition(120, 0);
126 6 Kragenwar-3044
                end
127 62 Valdacil-446
                option[index].quickslot:SetVisible(false);
128 Valdacil-446
                option[index].quickslot:SetUseOnRightClick(false);
129 Valdacil-446
                index = #option + 1;
130 Valdacil-446
        end
131 6 Kragenwar-3044
 
132 Kragenwar-3044
    line = holder(self, 20);
133 62 Valdacil-446
    index = #option - 1;
134 6 Kragenwar-3044
 
135 62 Valdacil-446
        for i = 1,2 do
136 Valdacil-446
                option[index].checkbox = KragenPlugs.UI.CheckBox();
137 Valdacil-446
                option[index].checkbox:SetParent(line);
138 Valdacil-446
                option[index].checkbox:SetSize(180, 20);
139 Valdacil-446
                if math.mod(index, 2) == 0 then
140 Valdacil-446
                        option[index].checkbox:SetPosition(220,0);
141 Valdacil-446
                        option[index].checkbox:AlignLeft(true);
142 Valdacil-446
                else
143 Valdacil-446
                        option[index].checkbox:SetPosition(0,0);
144 6 Kragenwar-3044
                end
145 62 Valdacil-446
                option[index].checkbox:SetText("Checkbox");
146 Valdacil-446
                option[index].checkbox:SetVisible(false);
147 Valdacil-446
                index = index + 1;
148 Valdacil-446
        end
149 Valdacil-446
 
150 6 Kragenwar-3044
end
151 Kragenwar-3044
 
152 62 Valdacil-446
function SetupQuickslots:ActivateQuickslot(option, name, active, qstype, qsdata)
153 Valdacil-446
        pcall(function() option.quickslot:SetShortcut(Turbine.UI.Lotro.Shortcut( qstype, qsdata ) ); end);
154 Valdacil-446
        option.quickslot:SetVisible(true);
155 65 Valdacil-446
        option.quickslot.MouseClick = function(sender, args)
156 Valdacil-446
                if(args.Button == Turbine.UI.MouseButton.Right and option.quickslot:IsAltKeyDown()) then
157 Valdacil-446
                        option.quickslot:SetShortcut(Turbine.UI.Lotro.Shortcut( Turbine.UI.Lotro.ShortcutType.Undefined, "" ) );
158 Valdacil-446
                end
159 Valdacil-446
        end
160 62 Valdacil-446
        option.checkbox:SetText(name);
161 Valdacil-446
        option.checkbox:SetChecked(active);
162 Valdacil-446
        option.checkbox:SetVisible(true);
163 6 Kragenwar-3044
 
164 65 Valdacil-446
 
165 Valdacil-446
 
166 6 Kragenwar-3044
end
167 Kragenwar-3044
 
168 Kragenwar-3044
function SetupQuickslots:Destroy()
169 Kragenwar-3044
    -- cleanup the quickslots so the client doesn't crash
170 Kragenwar-3044
 
171 Kragenwar-3044
end

All times are GMT -5. The time now is 07:57 PM.


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