vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 function DAB_ControlBox_Delay(group, delay)
2 for i=1,10 do
3 if (DAB_Settings[DAB_INDEX].ControlBox[i].onmouseover and DAB_Settings[DAB_INDEX].ControlBox[i].group == group) then
4 if (delay) then
5 getglobal("DAB_ControlBox_"..i).toggletimer = DAB_Settings[DAB_INDEX].ControlBox[i].delay;
6 else
7 getglobal("DAB_ControlBox_"..i).toggletimer = nil;
8 end
9 break;
10 end
11 end
12 end
13  
14 function DAB_ControlBox_Hide(box)
15 DAB_Settings[DAB_INDEX].ControlBox[box].hide = 1;
16 getglobal("DAB_ControlBox_"..box):Hide();
17 end
18  
19 function DAB_ControlBox_Initialize(id)
20 local settings = DAB_Settings[DAB_INDEX].ControlBox[id];
21 local boxName = "DAB_ControlBox_"..id;
22 local box = getglobal(boxName);
23  
24 box:SetFrameStrata(settings.frameStrata);
25 box:ClearAllPoints();
26 box:SetPoint(settings.Anchor.point, settings.Anchor.frame, settings.Anchor.to, settings.Anchor.x, settings.Anchor.y);
27 box:SetHeight(settings.height);
28 box:SetWidth(settings.width);
29  
30 local bg = getglobal(boxName.."_Background");
31 bg:SetTexture(settings.bgtexture);
32 bg:SetVertexColor(settings.bgcolor.r, settings.bgcolor.g, settings.bgcolor.b, settings.bgalpha);
33 bg:SetHeight(settings.height);
34 bg:SetWidth(settings.width);
35  
36 local bord;
37 for i=1,4 do
38 bord = getglobal(boxName.."_"..i);
39 bord:SetTexture(settings["b"..i.."texture"]);
40 bord:SetVertexColor(settings.bordcolor.r, settings.bordcolor.g, settings.bordcolor.b, settings.bordalpha);
41 if (i < 3) then
42 bord:SetHeight(settings["b"..i.."width"]);
43 bord:SetWidth(settings.width);
44 else
45 bord:SetWidth(settings["b"..i.."width"]);
46 bord:SetHeight(settings.height + settings.b1width + settings.b2width);
47 bord:ClearAllPoints();
48 end
49 if (settings["b"..i.."hide"]) then
50 bord:Hide();
51 else
52 bord:Show();
53 end
54 end
55 getglobal(boxName.."_3"):SetPoint("TOPRIGHT", box, "TOPLEFT", 0, settings.b1width);
56 getglobal(boxName.."_4"):SetPoint("TOPLEFT", box, "TOPRIGHT", 0, settings.b1width);
57  
58 local text = getglobal(boxName.."_Text");
59 text:ClearAllPoints();
60 text:SetPoint(settings.TextAnchor.point, box, settings.TextAnchor.to, settings.TextAnchor.x, settings.TextAnchor.y);
61 text:SetFont(settings.font, settings.fontsize);
62 text:SetTextColor(settings.color.r, settings.color.g, settings.color.b, settings.alpha);
63 if (settings.displayPage) then
64 text:SetText(DAB_Settings[DAB_INDEX].Bar[settings.changePageBar].page);
65 else
66 text:SetText(settings.text);
67 end
68 text:SetJustifyH(settings.justifyH);
69 text:SetJustifyV(settings.justifyV);
70 text:SetHeight(settings.height);
71 text:SetWidth(settings.width);
72  
73 if (settings.hide) then
74 box:Hide();
75 else
76 box:Show();
77 end
78 end
79  
80 function DAB_ControlBox_KeybindingDown(id)
81 local group = DAB_Settings[DAB_INDEX].ControlBox[id].group;
82 if (DAB_Settings[DAB_INDEX].ControlBox[id].mouseover) then
83 DAB_Show_Group(group);
84 end
85 DAB_ControlBox_OnClick(button, id, DAB_Settings[DAB_INDEX].ControlBox[id].mouseover);
86 end
87  
88 function DAB_ControlBox_KeybindingUp(id)
89 local group = DAB_Settings[DAB_INDEX].ControlBox[id].group;
90 if (DAB_Settings[DAB_INDEX].ControlBox[id].mouseover) then
91 DAB_Hide_Group(group);
92 end
93 DAB_ControlBox_OnClick(button, id, DAB_Settings[DAB_INDEX].ControlBox[id].mouseover);
94 end
95  
96 function DAB_ControlBox_OnClick(button, id, mouseover)
97 if (not id) then
98 id = this:GetID();
99 if (this.moving) then
100 DAB_ControlBox_OnDragStop();
101 end
102 end
103 if (DAB_Settings[DAB_INDEX].ControlBox[id].onrightclick and button == "RightButton") then
104 local group = DAB_Settings[DAB_INDEX].ControlBox[id].rcgroup;
105 DAB_Toggle_Group(group);
106 elseif (DAB_Settings[DAB_INDEX].ControlBox[id].onmiddleclick and button == "MiddleButton") then
107 local group = DAB_Settings[DAB_INDEX].ControlBox[id].mcgroup;
108 DAB_Toggle_Group(group);
109 elseif (DAB_Settings[DAB_INDEX].ControlBox[id].onclick and (not mouseover)) then
110 local group = DAB_Settings[DAB_INDEX].ControlBox[id].group;
111 DAB_Toggle_Group(group);
112 end
113 if (DAB_Settings[DAB_INDEX].ControlBox[id].hidegroups and DAB_Settings[DAB_INDEX].ControlBox[id].hidegroups ~= "") then
114 local num = "";
115 local char;
116 for i=1, string.len(DAB_Settings[DAB_INDEX].ControlBox[id].hidegroups) do
117 char = string.sub(DAB_Settings[DAB_INDEX].ControlBox[id].hidegroups, i, i);
118 if (char == ",") then
119 DAB_Hide_Group(num);
120 if (tonumber(num)) then
121 DAB_Hide_Group(tonumber(num));
122 end
123 num = "";
124 else
125 num = num..char;
126 end
127 end
128 DAB_Hide_Group(num);
129 if (tonumber(num)) then
130 DAB_Hide_Group(tonumber(num));
131 end
132 end
133 if (DAB_Settings[DAB_INDEX].ControlBox[id].changePage) then
134 if (DAB_Settings[DAB_INDEX].ControlBox[id].changePageType == 1) then
135 DAB_Bar_PageUp(DAB_Settings[DAB_INDEX].ControlBox[id].changePageBar);
136 elseif (DAB_Settings[DAB_INDEX].ControlBox[id].changePageType == 2) then
137 DAB_Bar_PageDown(DAB_Settings[DAB_INDEX].ControlBox[id].changePageBar);
138 else
139 DAB_Bar_SetPage(DAB_Settings[DAB_INDEX].ControlBox[id].changePageBar, DAB_Settings[DAB_INDEX].ControlBox[id].changePagePage);
140 end
141 end
142 end
143  
144 function DAB_ControlBox_OnDragStart()
145 if (DAB_DRAGGING_UNLOCKED or DAB_Check_ModifierKey(DAB_Settings[DAB_INDEX].DragLockOverride)) then
146 this:StartMoving();
147 this.moving = true;
148 end
149 end
150  
151 function DAB_ControlBox_OnDragStop()
152 if (not this.moving) then return; end
153 this:StopMovingOrSizing();
154 local settings = DAB_Settings[DAB_INDEX].ControlBox[this:GetID()].Anchor;
155 local x, y = DL_Get_Offsets(this, getglobal(settings.frame), settings.point, settings.to);
156 settings.x = x;
157 settings.y = y;
158 if (DAB_CBoxOptions and DAB_CBoxOptions:IsShown() and DAB_OBJECT_SUBINDEX == this:GetID()) then
159 DL_Init_EditBox(DAB_CBoxOptions_Config_XOffset, x);
160 DL_Init_EditBox(DAB_CBoxOptions_Config_YOffset, y);
161 end
162 this:ClearAllPoints();
163 this:SetPoint(settings.point, settings.frame, settings.to, x, y);
164 end
165  
166 function DAB_ControlBox_OnEnter()
167 if (this.toggletimer) then
168 this.toggletimer = nil;
169 return;
170 end
171 if (this.mouseover) then return; end
172 this.mouseover = true;
173 local id = this:GetID();
174 getglobal("DAB_ControlBox_"..id.."_Background"):SetVertexColor(DAB_Settings[DAB_INDEX].ControlBox[id].mbgcolor.r, DAB_Settings[DAB_INDEX].ControlBox[id].mbgcolor.g, DAB_Settings[DAB_INDEX].ControlBox[id].mbgcolor.b, DAB_Settings[DAB_INDEX].ControlBox[id].mbgalpha);
175 for i=1,4 do
176 getglobal("DAB_ControlBox_"..id.."_"..i):SetVertexColor(DAB_Settings[DAB_INDEX].ControlBox[id].mbordcolor.r, DAB_Settings[DAB_INDEX].ControlBox[id].mbordcolor.g, DAB_Settings[DAB_INDEX].ControlBox[id].mbordcolor.b, DAB_Settings[DAB_INDEX].ControlBox[id].mbordalpha);
177 end
178 getglobal("DAB_ControlBox_"..id.."_Text"):SetTextColor(DAB_Settings[DAB_INDEX].ControlBox[id].mcolor.r, DAB_Settings[DAB_INDEX].ControlBox[id].mcolor.g, DAB_Settings[DAB_INDEX].ControlBox[id].mcolor.b, DAB_Settings[DAB_INDEX].ControlBox[id].malpha);
179  
180 if (DAB_Settings[DAB_INDEX].ControlBox[this:GetID()].onmouseover) then
181 local group = DAB_Settings[DAB_INDEX].ControlBox[this:GetID()].group;
182 DAB_Toggle_Group(group);
183 end
184 end
185  
186 function DAB_ControlBox_OnLeave()
187 this.mouseover = nil;
188 local id = this:GetID();
189 getglobal("DAB_ControlBox_"..id.."_Background"):SetVertexColor(DAB_Settings[DAB_INDEX].ControlBox[id].bgcolor.r, DAB_Settings[DAB_INDEX].ControlBox[id].bgcolor.g, DAB_Settings[DAB_INDEX].ControlBox[id].bgcolor.b, DAB_Settings[DAB_INDEX].ControlBox[id].bgalpha);
190 for i=1,4 do
191 getglobal("DAB_ControlBox_"..id.."_"..i):SetVertexColor(DAB_Settings[DAB_INDEX].ControlBox[id].bordcolor.r, DAB_Settings[DAB_INDEX].ControlBox[id].bordcolor.g, DAB_Settings[DAB_INDEX].ControlBox[id].bordcolor.b, DAB_Settings[DAB_INDEX].ControlBox[id].bordalpha);
192 end
193 getglobal("DAB_ControlBox_"..id.."_Text"):SetTextColor(DAB_Settings[DAB_INDEX].ControlBox[id].color.r, DAB_Settings[DAB_INDEX].ControlBox[id].color.g, DAB_Settings[DAB_INDEX].ControlBox[id].color.b, DAB_Settings[DAB_INDEX].ControlBox[id].alpha);
194  
195 if (DAB_Settings[DAB_INDEX].ControlBox[this:GetID()].onmouseover) then
196 this.toggletimer = DAB_Settings[DAB_INDEX].ControlBox[this:GetID()].delay;
197 end
198 end
199  
200 function DAB_ControlBox_OnUpdate(elapsed)
201 if (not DAB_INITIALIZED) then return; end
202 if (not this.timer) then this.timer = DAB_UPDATE_SPEED; end
203 this.timer = this.timer - elapsed;
204 if (this.timer < 0) then
205 this.timer = DAB_UPDATE_SPEED;
206  
207 if (not this.lasttime) then this.lasttime = GetTime(); end
208 local timeelapsed = GetTime() - this.lasttime;
209 this.lasttime = GetTime();
210 DAB_Run_Script("OnUpdate", "ControlBox", this:GetID(), timeelapsed);
211 end
212 if (not this.toggletimer) then return; end
213 this.toggletimer = this.toggletimer - elapsed;
214 if (this.toggletimer < 0) then
215 this.toggletimer = nil;
216 local group = DAB_Settings[DAB_INDEX].ControlBox[this:GetID()].group;
217 DAB_Toggle_Group(group);
218 end
219 end
220  
221 function DAB_ControlBox_Show(box)
222 DAB_Settings[DAB_INDEX].ControlBox[box].hide = nil;
223 getglobal("DAB_ControlBox_"..box):Show();
224 end
225  
226 function DAB_ControlBox_Text(box, text)
227 if (not box) then return; end
228 if (not text) then return; end
229 if (not tonumber(box)) then return; end
230 if (box < 1 or box > 10) then return; end
231 DAB_Settings[DAB_INDEX].ControlBox[box].text = text;
232 getglobal("DAB_ControlBox_"..box.."_Text"):SetText(text);
233 end
234  
235 function DAB_ControlBox_Toggle(id)
236 if (DAB_Settings[DAB_INDEX].ControlBox[id].hide) then
237 DAB_ControlBox_Show(id);
238 else
239 DAB_ControlBox_Hide(id);
240 end
241 end