vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 --[[
2 Healers Assist by Kiki of European Cho'gall (Alliance)
3 Configuration module
4  
5 ]]
6  
7  
8 --------------- Saved variables ---------------
9 HA_Config = {};
10 -- -= Global =-
11 -- ButtonPosition : Position of Minimap button
12 -- Auto : Auto open window in group or raid
13 -- GrowUpwards : If true, HA's main window will grow upwards
14 -- UseEstimatedHealth : Use estimated health value, base on WOUNDS/HEALS of raid members (should be more accurate than without it)
15  
16 -- -= Healers =-
17 -- ShowInstants : Show instant spells in the Spell column
18 -- ShowHoT : Show HoTs in the Spell column
19 -- KeepValue : Nombre of seconds to keep showing a successfull spell
20 -- HealersClasses[] : Healing classes to show in Healers window
21 -- AllowSpellRequest[] : Spell you don't automatically deny requests for
22 -- HealersLines : Number of lines you want to see (from 1 to 10)
23 -- HealersCollapsed : True if Healers list is collapsed
24 -- NotifyRegen : True if you want to be informed when a healer goes into regen mode
25  
26 -- -= Emergency =-
27 -- MinEmergencyPercent : Min percent value for showing a raider in Emergency list
28 -- EmergencyGroups[] : Groups to show in emergency window (Raid only)
29 -- EmergencyClasses[] : Classes to show in emergency window
30 -- EmergLines : Number of lines you want to see (from 1 to 6)
31 -- FilterRange : True if range filtering is active (30yards)
32  
33 -- -= Plugins =-
34 -- PluginOrder[] : The order to load and call plugins
35 -- PluginAuto[] : Array of the auto loaded plugins
36  
37 --------------- UI buttons ---------------
38  
39 _HA_CONFIG_SLIDER_MINIMAP_INDEX = 1;
40 _HA_CONFIG_SLIDER_KEEPVALUE_INDEX = 2;
41 _HA_CONFIG_SLIDER_MINHEALTHPERCENT_INDEX = 3;
42 _HA_CONFIG_SLIDER_HEALERLINES_INDEX = 4;
43 _HA_CONFIG_SLIDER_EMERGLINES_INDEX = 5;
44 _HA_CONFIG_SLIDER_SCALE_INDEX = 6;
45 _HA_CONFIG_SLIDER_ALPHA_INDEX = 7;
46 _HA_CONFIG_SLIDER_GUI_REFRESH_INDEX = 8;
47 _HA_CONFIG_SLIDER_BACKDROP_ALPHA_INDEX = 9;
48  
49 HA_Conf_Sliders = {};
50 HA_Conf_Sliders[_HA_CONFIG_SLIDER_MINIMAP_INDEX] = { var="ButtonPosition", text=HA_GUI_MINIMAP_TITLE, low="0", high="360", min=0, max=360 };
51 HA_Conf_Sliders[_HA_CONFIG_SLIDER_KEEPVALUE_INDEX] = { var="KeepValue", text=HA_GUI_HEALOPT_KEEP_SPELL_TITLE, low=HA_GUI_HEALOPT_KEEP_SPELL_SHORT, high=HA_GUI_HEALOPT_KEEP_SPELL_LONG, min=0, max=10 };
52 HA_Conf_Sliders[_HA_CONFIG_SLIDER_MINHEALTHPERCENT_INDEX] = { var="MinEmergencyPercent", text=HA_GUI_EMERGOPT_MIN_HEALTH_TITLE, low=LOW, high=HIGH, min=0, max=100 };
53 HA_Conf_Sliders[_HA_CONFIG_SLIDER_HEALERLINES_INDEX] = { var="HealersLines", text=HA_GUI_HEALOPT_LINES_TITLE, low="1", high="16", min=1, max=16 };
54 HA_Conf_Sliders[_HA_CONFIG_SLIDER_EMERGLINES_INDEX] = { var="EmergLines", text=HA_GUI_EMERGOPT_LINES_TITLE, low="0", high="6", min=0, max=6 };
55 HA_Conf_Sliders[_HA_CONFIG_SLIDER_SCALE_INDEX] = { var="Scale", text=HA_GUI_SCALE_TITLE, low="30%", high="150%", min=30, max=150 };
56 HA_Conf_Sliders[_HA_CONFIG_SLIDER_ALPHA_INDEX] = { var="Alpha", text=HA_GUI_ALPHA_TITLE, low="0%", high="100%", min=0, max=100 };
57 HA_Conf_Sliders[_HA_CONFIG_SLIDER_GUI_REFRESH_INDEX] = { var="GUIRefresh", text=HA_GUI_GUI_REFRESH_TITLE, low="100 msec", high="1 sec", min=100, max=1000 };
58 HA_Conf_Sliders[_HA_CONFIG_SLIDER_BACKDROP_ALPHA_INDEX] = { var="BackdropAlpha", text=HA_GUI_BACKDROP_ALPHA_TITLE, low="0%", high="100%", min=0, max=100 };
59  
60 HA_Conf_CheckButtons = {};
61 HA_Conf_CheckButtons[1] = { var = "Auto", text = HA_GUI_AUTO_OPEN };
62 HA_Conf_CheckButtons[3] = { var = "UseEstimatedHealth", text = HA_GUI_REALTIME_LIFE_UPDATES };
63  
64 HA_Conf_CheckButtons[21] = { var = "HealersClasses", subvar = HA_ClassesID["DRUID"], text = HA_GUI_HEALOPT_CLASSES_DRUID };
65 HA_Conf_CheckButtons[22] = { var = "HealersClasses", subvar = HA_ClassesID["PRIEST"], text = HA_GUI_HEALOPT_CLASSES_PRIEST };
66 HA_Conf_CheckButtons[23] = { var = "HealersClasses", subvar = HA_ClassesID["PALADIN"], text = HA_GUI_HEALOPT_CLASSES_PALA_SHAM };
67 HA_Conf_CheckButtons[25] = { var = "ShowInstants", text = HA_GUI_HEALOPT_SHOW_INSTANTS };
68 HA_Conf_CheckButtons[26] = { var = "ShowHoT", text = HA_GUI_HEALOPT_SHOW_HOTS };
69 HA_Conf_CheckButtons[27] = { var = "GrowUpwards", text = HA_GUI_HEALOPT_GROW_UPWARDS };
70 HA_Conf_CheckButtons[28] = { var = "NotifyRegen", text = HA_GUI_HEALOPT_NOTIFY_REGEN };
71 HA_Conf_CheckButtons[29] = { var = "FilterRange", text = HA_GUI_EMERGOPT_FILTER_RANGE };
72  
73 HA_Conf_CheckButtons[31] = { var = "AllowSpellRequest", subvar = HA_INNERVATE, text = HA_INNERVATE };
74 HA_Conf_CheckButtons[32] = { var = "AllowSpellRequest", subvar = HA_REBIRTH, text = HA_REBIRTH };
75 HA_Conf_CheckButtons[33] = { var = "AllowSpellRequest", subvar = HA_DIVINE_INTERVENTION, text = HA_DIVINE_INTERVENTION };
76 HA_Conf_CheckButtons[34] = { var = "AllowSpellRequest", subvar = HA_LIGHTWELL, text = HA_LIGHTWELL };
77 HA_Conf_CheckButtons[35] = { var = "AllowSpellRequest", subvar = HA_MANA_TIDE, text = HA_MANA_TIDE };
78 HA_Conf_CheckButtons[36] = { var = "AllowSpellRequest", subvar = HA_POWER_INFUSION, text = HA_POWER_INFUSION };
79 --HA_Conf_CheckButtons[37] = { var = "AllowSpellRequest", subvar = nil, text = nil };
80 HA_Conf_CheckButtons[38] = { var = "AllowSpellRequest", subvar = HA_BLESSING_OF_PROTECTION, text = HA_BLESSING_OF_PROTECTION };
81 --HA_Conf_CheckButtons[39] = { var = "AllowSpellRequest", subvar = nil, text = nil };
82  
83  
84 HA_Conf_CheckButtons[41] = { var = "EmergencyGroups", subvar=1, text = HA_GUI_EMERGOPT_GRPS_G1 };
85 HA_Conf_CheckButtons[42] = { var = "EmergencyGroups", subvar=2, text = HA_GUI_EMERGOPT_GRPS_G2 };
86 HA_Conf_CheckButtons[43] = { var = "EmergencyGroups", subvar=3, text = HA_GUI_EMERGOPT_GRPS_G3 };
87 HA_Conf_CheckButtons[44] = { var = "EmergencyGroups", subvar=4, text = HA_GUI_EMERGOPT_GRPS_G4 };
88 HA_Conf_CheckButtons[45] = { var = "EmergencyGroups", subvar=5, text = HA_GUI_EMERGOPT_GRPS_G5 };
89 HA_Conf_CheckButtons[46] = { var = "EmergencyGroups", subvar=6, text = HA_GUI_EMERGOPT_GRPS_G6 };
90 HA_Conf_CheckButtons[47] = { var = "EmergencyGroups", subvar=7, text = HA_GUI_EMERGOPT_GRPS_G7 };
91 HA_Conf_CheckButtons[48] = { var = "EmergencyGroups", subvar=8, text = HA_GUI_EMERGOPT_GRPS_G8 };
92  
93 HA_Conf_CheckButtons[61] = { var = "EmergencyClasses", subvar = HA_ClassesID["DRUID"], text = HA_GUI_EMERGOPT_CLASSES_DRUID };
94 HA_Conf_CheckButtons[62] = { var = "EmergencyClasses", subvar = HA_ClassesID["HUNTER"], text = HA_GUI_EMERGOPT_CLASSES_HUNTER };
95 HA_Conf_CheckButtons[63] = { var = "EmergencyClasses", subvar = HA_ClassesID["MAGE"], text = HA_GUI_EMERGOPT_CLASSES_MAGE };
96 HA_Conf_CheckButtons[64] = { var = "EmergencyClasses", subvar = HA_ClassesID["PRIEST"], text = HA_GUI_EMERGOPT_CLASSES_PRIEST };
97 HA_Conf_CheckButtons[65] = { var = "EmergencyClasses", subvar = HA_ClassesID["ROGUE"], text = HA_GUI_EMERGOPT_CLASSES_ROGUE };
98 HA_Conf_CheckButtons[66] = { var = "EmergencyClasses", subvar = HA_ClassesID["WARLOCK"], text = HA_GUI_EMERGOPT_CLASSES_WARLOCK };
99 HA_Conf_CheckButtons[67] = { var = "EmergencyClasses", subvar = HA_ClassesID["WARRIOR"], text = HA_GUI_EMERGOPT_CLASSES_WARRIOR };
100 HA_Conf_CheckButtons[68] = { var = "EmergencyClasses", subvar = HA_ClassesID["PALADIN"], text = HA_GUI_EMERGOPT_CLASSES_PALA_SHAM };
101  
102  
103 --------------- Shared variables ---------------
104  
105 --------------- Local variables ---------------
106  
107  
108 --------------- Internal functions ---------------
109  
110 --------------- XML functions ---------------
111  
112 function HA_MoveMinimapButton()
113 HAMinimapButton:SetPoint("TOPLEFT", "Minimap", "TOPLEFT", 48 - (80 * cos(HA_Config.ButtonPosition)), (80 * sin(HA_Config.ButtonPosition)) - 52);
114 end
115  
116 function HA_Toggle()
117 if(HealersAssistMainFrame:IsVisible())
118 then
119 HealersAssistMainFrame:Hide();
120 else
121 HealersAssistMainFrame:Show();
122 end
123 end
124  
125 function HA_ToggleDropDown()
126 if(TitanPanelFrame_OnLoad ~= nil)
127 then
128 HA_DropDown.point = "TOPRIGHT";
129 HA_DropDown.relativePoint = "TOPLEFT";
130 else
131 HA_DropDown.point = "TOPLEFT";
132 HA_DropDown.relativePoint = "TOPLEFT";
133 end
134 HA_DropDown.relativeTo="HAMinimapButton";
135 ToggleDropDownMenu(1, nil, HA_DropDown);
136 end
137  
138 function HA_DropDown_OnLoad()
139 UIDropDownMenu_Initialize(this, HA_DropDown_Initialize, "MENU");
140 end
141  
142 function HA_DropDown_Initialize()
143 local dropdown;
144 if ( UIDROPDOWNMENU_OPEN_MENU ) then
145 dropdown = getglobal(UIDROPDOWNMENU_OPEN_MENU);
146 else
147 dropdown = this;
148 end
149 HA_DropDown_InitButtons();
150 end
151  
152 function HA_DropDown_InitButtons()
153 local info = {};
154  
155 info.text = "HA Options";
156 info.isTitle = 1;
157 info.justifyH = "CENTER";
158 info.notCheckable = 1;
159 UIDropDownMenu_AddButton(info);
160  
161 info = { };
162 info.text = HA_GUI_SUBMENU_OPEN_OPTIONS;
163 info.notCheckable = 1;
164 info.func = HA_ToggleOption;
165 UIDropDownMenu_AddButton(info);
166  
167 info = { };
168 if(HA_Config.Lock)
169 then
170 info.text = HA_GUI_SUBMENU_UNLOCK;
171 else
172 info.text = HA_GUI_SUBMENU_LOCK;
173 end
174 info.notCheckable = 1;
175 info.func = HA_ToggleLock;
176 UIDropDownMenu_AddButton(info);
177 end
178  
179 function HA_ToggleOption()
180 if(HAConfFrame:IsVisible())
181 then
182 HAConfFrame:Hide();
183 else
184 HAConfFrame:Show();
185 end
186 end
187  
188 function HA_ToggleLock()
189 if(HA_Config.Lock)
190 then
191 HA_Config.Lock = nil;
192 else
193 HA_Config.Lock = true;
194 end
195 HA_SetNewLock(false);
196 end
197  
198 function HA_Config_SetNewSliderValue(slider)
199 local id = slider:GetParent():GetID();
200 local value = HA_Conf_Sliders[id];
201 HA_Config[value.var] = slider:GetValue();
202  
203 if(id == _HA_CONFIG_SLIDER_MINIMAP_INDEX) -- Check dependencies
204 then
205 HA_MoveMinimapButton();
206 elseif(id == _HA_CONFIG_SLIDER_KEEPVALUE_INDEX)
207 then
208 getglobal("HAConfFrameSlider".._HA_CONFIG_SLIDER_KEEPVALUE_INDEX.."SliderTitle"):SetText(HA_GUI_HEALOPT_KEEP_SPELL_TITLE..HA_Config[value.var].."sec");
209 elseif(id == _HA_CONFIG_SLIDER_MINHEALTHPERCENT_INDEX)
210 then
211 getglobal("HAConfFrameSlider".._HA_CONFIG_SLIDER_MINHEALTHPERCENT_INDEX.."SliderTitle"):SetText(HA_GUI_EMERGOPT_MIN_HEALTH_TITLE..HA_Config[value.var].."%");
212 elseif(id == _HA_CONFIG_SLIDER_HEALERLINES_INDEX)
213 then
214 getglobal("HAConfFrameSlider".._HA_CONFIG_SLIDER_HEALERLINES_INDEX.."SliderTitle"):SetText(HA_GUI_HEALOPT_LINES_TITLE..HA_Config[value.var]);
215 HA_SetWidgetSizeAndPosition();
216 elseif(id == _HA_CONFIG_SLIDER_EMERGLINES_INDEX)
217 then
218 getglobal("HAConfFrameSlider".._HA_CONFIG_SLIDER_EMERGLINES_INDEX.."SliderTitle"):SetText(HA_GUI_EMERGOPT_LINES_TITLE..HA_Config[value.var]);
219 HA_SetWidgetSizeAndPosition();
220 elseif(id == _HA_CONFIG_SLIDER_SCALE_INDEX)
221 then
222 getglobal("HAConfFrameSlider".._HA_CONFIG_SLIDER_SCALE_INDEX.."SliderTitle"):SetText(HA_GUI_SCALE_TITLE..HA_Config[value.var].."%");
223 HA_SetWidgetSizeAndPosition();
224 elseif(id == _HA_CONFIG_SLIDER_ALPHA_INDEX)
225 then
226 getglobal("HAConfFrameSlider".._HA_CONFIG_SLIDER_ALPHA_INDEX.."SliderTitle"):SetText(HA_GUI_ALPHA_TITLE..HA_Config[value.var].."%");
227 HA_SetWidgetSizeAndPosition();
228 elseif(id == _HA_CONFIG_SLIDER_GUI_REFRESH_INDEX)
229 then
230 getglobal("HAConfFrameSlider".._HA_CONFIG_SLIDER_GUI_REFRESH_INDEX.."SliderTitle"):SetText(HA_GUI_GUI_REFRESH_TITLE..HA_Config[value.var].." msec");
231 HA_SetWidgetSizeAndPosition();
232 elseif(id == _HA_CONFIG_SLIDER_BACKDROP_ALPHA_INDEX)
233 then
234 getglobal("HAConfFrameSlider".._HA_CONFIG_SLIDER_BACKDROP_ALPHA_INDEX.."SliderTitle"):SetText(HA_GUI_BACKDROP_ALPHA_TITLE..HA_Config[value.var].."%");
235 HA_SetWidgetSizeAndPosition();
236 end
237 end
238  
239 function HA_Config_SetNewCheckState(button)
240 local new_state = false;
241 if(button:GetChecked())
242 then
243 new_state = true;
244 end
245 local id = button:GetID();
246 local value = HA_Conf_CheckButtons[id];
247 if(value.subvar)
248 then
249 HA_Config[value.var][value.subvar] = new_state;
250 else
251 HA_Config[value.var] = new_state;
252 end
253 end
254  
255 function HA_Config_OnLoad()
256 end
257  
258 function HA_Config_Menu_OnShow()
259 -- Debug
260 if(HA_Config.Debug)
261 then
262 HA_Conf_Sliders[_HA_CONFIG_SLIDER_MINHEALTHPERCENT_INDEX].max=101;
263 end
264  
265 -- Check buttons
266 local button, string, checked;
267 for index, value in HA_Conf_CheckButtons
268 do
269 button = getglobal("HAConfFrameCheckButton"..index);
270 string = getglobal("HAConfFrameCheckButton"..index.."Text");
271 checked = nil;
272 if(value.subvar)
273 then
274 checked = HA_Config[value.var][value.subvar];
275 else
276 checked = HA_Config[value.var];
277 end
278 button:SetChecked(checked);
279 string:SetText(value.text);
280 end
281 -- Sliders
282 local slider, string, low, high;
283 for index, value in HA_Conf_Sliders
284 do
285 slider = getglobal("HAConfFrameSlider"..index.."Slider");
286 string = getglobal("HAConfFrameSlider"..index.."SliderTitle");
287 low = getglobal("HAConfFrameSlider"..index.."SliderLow");
288 high = getglobal("HAConfFrameSlider"..index.."SliderHigh");
289 slider:SetMinMaxValues(value.min,value.max);
290 slider:SetValueStep(1);
291 slider:SetValue(HA_Config[value.var]);
292 string:SetText(value.text);
293 low:SetText(value.low);
294 high:SetText(value.high);
295 HA_Config_SetNewSliderValue(slider);
296 end
297 end
298  
299 function HA_Config_General_OnShow()
300 HA_Config_Menu_OnShow();
301 end
302  
303 function HA_Config_Healers_OnShow()
304 HA_Config_Menu_OnShow();
305 -- Check if RequestSpells are known
306 for i=31,39
307 do
308 if(HA_Conf_CheckButtons[i] and HA_SpellCooldowns[HA_Conf_CheckButtons[i].subvar] == nil) -- Not available
309 then
310 getglobal("HAConfFrameCheckButton"..i):Disable();
311 getglobal("HAConfFrameCheckButton"..i.."Text"):SetTextColor(0.6,0.6,0.6);
312 end
313 end
314 end
315  
316 function HA_Config_Emergency_OnShow()
317 HA_Config_Menu_OnShow();
318 end
319  
320 function HA_Config_Plugins_OnShow()
321 HA_Config_Menu_OnShow();
322 HA_Config_Plugins_UpdateList();
323 end
324  
325 function HA_Config_OnShow()
326 end
327  
328 -------- HELP ------
329 function HA_Help_SetTooltip()
330 local uiX, uiY = UIParent:GetCenter();
331 local thisX, thisY = this:GetCenter();
332  
333 local anchor = "";
334 if ( thisY > uiY ) then
335 anchor = "BOTTOM";
336 else
337 anchor = "TOP";
338 end
339  
340 if ( thisX < uiX ) then
341 if ( anchor == "TOP" ) then
342 anchor = "TOPLEFT";
343 else
344 anchor = "BOTTOMRIGHT";
345 end
346 else
347 if ( anchor == "TOP" ) then
348 anchor = "TOPRIGHT";
349 else
350 anchor = "BOTTOMLEFT";
351 end
352 end
353 GameTooltip:SetOwner(this, "ANCHOR_" .. anchor);
354 end
355  
356 function HA_Help_LoadText()
357 local texts = {
358 HA_HELP_CHAN_OPT,
359 HA_HELP_HEAL_OPT,
360 HA_HELP_EMERG_OPT,
361 };
362  
363 this.text = texts[this:GetID()];
364 end
365