vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 --The Options Page variables and functions
2  
3 --Event and Damage option values
4 local SCTOptionsFrameEventFrames = { };
5 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT1.name] = { index = 1, tooltipText = SCT_OPTION_EVENT1.tooltipText, SCTVar = "SHOWHIT"};
6 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT2.name] = { index = 2, tooltipText = SCT_OPTION_EVENT2.tooltipText, SCTVar = "SHOWMISS"};
7 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT3.name] = { index = 3, tooltipText = SCT_OPTION_EVENT3.tooltipText, SCTVar = "SHOWDODGE"};
8 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT4.name] = { index = 4, tooltipText = SCT_OPTION_EVENT4.tooltipText, SCTVar = "SHOWPARRY"};
9 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT5.name] = { index = 5, tooltipText = SCT_OPTION_EVENT5.tooltipText, SCTVar = "SHOWBLOCK"};
10 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT6.name] = { index = 6, tooltipText = SCT_OPTION_EVENT6.tooltipText, SCTVar = "SHOWSPELL"};
11 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT7.name] = { index = 7, tooltipText = SCT_OPTION_EVENT7.tooltipText, SCTVar = "SHOWHEAL"};
12 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT8.name] = { index = 8, tooltipText = SCT_OPTION_EVENT8.tooltipText, SCTVar = "SHOWRESIST"};
13 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT9.name] = { index = 9, tooltipText = SCT_OPTION_EVENT9.tooltipText, SCTVar = "SHOWDEBUFF"};
14 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT10.name] = { index = 10, tooltipText = SCT_OPTION_EVENT10.tooltipText, SCTVar = "SHOWABSORB"};
15 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT11.name] = { index = 11, tooltipText = SCT_OPTION_EVENT11.tooltipText, SCTVar = "SHOWLOWHP"};
16 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT12.name] = { index = 12, tooltipText = SCT_OPTION_EVENT12.tooltipText, SCTVar = "SHOWLOWMANA"};
17 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT13.name] = { index = 13, tooltipText = SCT_OPTION_EVENT13.tooltipText, SCTVar = "SHOWPOWER"};
18 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT14.name] = { index = 14, tooltipText = SCT_OPTION_EVENT14.tooltipText, SCTVar = "SHOWCOMBAT"};
19 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT15.name] = { index = 15, tooltipText = SCT_OPTION_EVENT15.tooltipText, SCTVar = "SHOWCOMBOPOINTS"};
20 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT16.name] = { index = 16, tooltipText = SCT_OPTION_EVENT16.tooltipText, SCTVar = "SHOWHONOR"};
21 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT17.name] = { index = 17, tooltipText = SCT_OPTION_EVENT17.tooltipText, SCTVar = "SHOWBUFF"};
22 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT18.name] = { index = 18, tooltipText = SCT_OPTION_EVENT18.tooltipText, SCTVar = "SHOWFADE"};
23 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT19.name] = { index = 19, tooltipText = SCT_OPTION_EVENT19.tooltipText, SCTVar = "SHOWEXECUTE"};
24 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT20.name] = { index = 20, tooltipText = SCT_OPTION_EVENT20.tooltipText, SCTVar = "SHOWREP"};
25 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT21.name] = { index = 21, tooltipText = SCT_OPTION_EVENT21.tooltipText, SCTVar = "SHOWSELFHEAL"};
26 SCTOptionsFrameEventFrames [SCT_OPTION_EVENT22.name] = { index = 22, tooltipText = SCT_OPTION_EVENT22.tooltipText, SCTVar = "SHOWSKILL"};
27  
28 --Check Button option values
29 local SCTOptionsFrameCheckButtons = { };
30 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK1.name] = { index = 1, tooltipText = SCT_OPTION_CHECK1.tooltipText, SCTVar = "ENABLED"};
31 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK2.name] = { index = 2, tooltipText = SCT_OPTION_CHECK2.tooltipText, SCTVar = "SHOWSELF"};
32 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK3.name] = { index = 3, tooltipText = SCT_OPTION_CHECK3.tooltipText, SCTVar = "SHOWTARGETS"};
33 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK4.name] = { index = 4, tooltipText = SCT_OPTION_CHECK4.tooltipText, SCTVar = "DIRECTION"};
34 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK5.name] = { index = 5, tooltipText = SCT_OPTION_CHECK5.tooltipText, SCTVar = "STICKYCRIT"}
35 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK6.name] = { index = 6, tooltipText = SCT_OPTION_CHECK6.tooltipText, SCTVar = "SPELLTYPE"};
36 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK7.name] = { index = 7, tooltipText = SCT_OPTION_CHECK7.tooltipText, SCTVar = "DMGFONT"};
37 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK8.name] = { index = 8, tooltipText = SCT_OPTION_CHECK8.tooltipText, SCTVar = "SHOWALLPOWER"};
38 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK9.name] = { index = 9, tooltipText = SCT_OPTION_CHECK9.tooltipText, SCTVar = "FPSMODE"};
39 SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK10.name] = { index = 10, tooltipText = SCT_OPTION_CHECK10.tooltipText, SCTVar = "SHOWOVERHEAL"};
40  
41 --Slider options values
42 local SCTOptionsFrameSliders = { };
43 SCTOptionsFrameSliders [SCT_OPTION_SLIDER1.name] = { index = 1, SCTVar = "ANIMATIONSPEED", minValue = .005, maxValue = .025, valueStep = .005, minText=SCT_OPTION_SLIDER1.minText, maxText=SCT_OPTION_SLIDER1.maxText, tooltipText = SCT_OPTION_SLIDER1.tooltipText};
44 SCTOptionsFrameSliders [SCT_OPTION_SLIDER2.name] = { index = 2, SCTVar = "TEXTSIZE", minValue = 12, maxValue = 36, valueStep = 3, minText=SCT_OPTION_SLIDER2.minText, maxText=SCT_OPTION_SLIDER2.maxText, tooltipText = SCT_OPTION_SLIDER2.tooltipText};
45 SCTOptionsFrameSliders [SCT_OPTION_SLIDER3.name] = { index = 3, SCTVar = "LOWHP", minValue = .1, maxValue = .9, valueStep = .1, minText=SCT_OPTION_SLIDER3.minText, maxText=SCT_OPTION_SLIDER3.maxText, tooltipText = SCT_OPTION_SLIDER3.tooltipText};
46 SCTOptionsFrameSliders [SCT_OPTION_SLIDER4.name] = { index = 4, SCTVar = "LOWMANA", minValue = .1, maxValue = .9, valueStep = .1, minText=SCT_OPTION_SLIDER4.minText, maxText=SCT_OPTION_SLIDER4.maxText, tooltipText = SCT_OPTION_SLIDER4.tooltipText};
47 SCTOptionsFrameSliders [SCT_OPTION_SLIDER5.name] = { index = 5, SCTVar = "ALPHA", minValue = .1, maxValue = 1, valueStep = .1, minText=SCT_OPTION_SLIDER5.minText, maxText=SCT_OPTION_SLIDER5.maxText, tooltipText = SCT_OPTION_SLIDER5.tooltipText};
48 SCTOptionsFrameSliders [SCT_OPTION_SLIDER6.name] = { index = 6, SCTVar = "MOVEMENT", minValue = 1, maxValue = 5, valueStep = 1, minText=SCT_OPTION_SLIDER6.minText, maxText=SCT_OPTION_SLIDER6.maxText, tooltipText = SCT_OPTION_SLIDER6.tooltipText};
49 SCTOptionsFrameSliders [SCT_OPTION_SLIDER7.name] = { index = 7, SCTVar = "XOFFSET", minValue = -300, maxValue = 300, valueStep = 10, minText=SCT_OPTION_SLIDER7.minText, maxText=SCT_OPTION_SLIDER7.maxText, tooltipText = SCT_OPTION_SLIDER7.tooltipText};
50 SCTOptionsFrameSliders [SCT_OPTION_SLIDER8.name] = { index = 8, SCTVar = "YOFFSET", minValue = -300, maxValue = 300, valueStep = 10, minText=SCT_OPTION_SLIDER8.minText, maxText=SCT_OPTION_SLIDER8.maxText, tooltipText = SCT_OPTION_SLIDER8.tooltipText};
51 SCTOptionsFrameSliders [SCT_OPTION_SLIDER9.name] = { index = 9, SCTVar = "MSGXOFFSET", minValue = -600, maxValue = 600, valueStep = 10, minText=SCT_OPTION_SLIDER9.minText, maxText=SCT_OPTION_SLIDER9.maxText, tooltipText = SCT_OPTION_SLIDER9.tooltipText};
52 SCTOptionsFrameSliders [SCT_OPTION_SLIDER10.name] = { index = 10, SCTVar = "MSGYOFFSET", minValue = -600, maxValue = 600, valueStep = 10, minText=SCT_OPTION_SLIDER10.minText, maxText=SCT_OPTION_SLIDER10.maxText, tooltipText = SCT_OPTION_SLIDER10.tooltipText};
53 SCTOptionsFrameSliders [SCT_OPTION_SLIDER11.name] = { index = 11, SCTVar = "MSGFADE", minValue = 1, maxValue = 3, valueStep = .5, minText=SCT_OPTION_SLIDER11.minText, maxText=SCT_OPTION_SLIDER11.maxText, tooltipText = SCT_OPTION_SLIDER11.tooltipText};
54 SCTOptionsFrameSliders [SCT_OPTION_SLIDER12.name] = { index = 12, SCTVar = "MSGSIZE", minValue = 12, maxValue = 36, valueStep = 3, minText=SCT_OPTION_SLIDER12.minText, maxText=SCT_OPTION_SLIDER12.maxText, tooltipText = SCT_OPTION_SLIDER12.tooltipText};
55  
56 --Selection Boxes
57 local SCTOptionsFrameSelections = {};
58 SCTOptionsFrameSelections [SCT_OPTION_SELECTION1.name] = { index = 1, SCTVar = "ANITYPE", tooltipText = SCT_OPTION_SELECTION1.tooltipText, table = SCT_OPTION_SELECTION1.table};
59 SCTOptionsFrameSelections [SCT_OPTION_SELECTION2.name] = { index = 2, SCTVar = "ANISIDETYPE", tooltipText = SCT_OPTION_SELECTION2.tooltipText, table = SCT_OPTION_SELECTION2.table};
60 SCTOptionsFrameSelections [SCT_OPTION_SELECTION3.name] = { index = 3, SCTVar = "FONT", tooltipText = SCT_OPTION_SELECTION3.tooltipText, table = SCT_OPTION_SELECTION3.table};
61 SCTOptionsFrameSelections [SCT_OPTION_SELECTION4.name] = { index = 4, SCTVar = "FONTSHADOW", tooltipText = SCT_OPTION_SELECTION4.tooltipText, table = SCT_OPTION_SELECTION4.table};
62 SCTOptionsFrameSelections [SCT_OPTION_SELECTION5.name] = { index = 5, SCTVar = "MSGFONT", tooltipText = SCT_OPTION_SELECTION5.tooltipText, table = SCT_OPTION_SELECTION5.table};
63 SCTOptionsFrameSelections [SCT_OPTION_SELECTION6.name] = { index = 6, SCTVar = "MSGFONTSHADOW", tooltipText = SCT_OPTION_SELECTION6.tooltipText, table = SCT_OPTION_SELECTION6.table};
64  
65 --Other Options
66 local SCTOptionsFrameMisc = {};
67 SCTOptionsFrameMisc [SCT_OPTION_MISC1.name] = {index = 1, tooltipText = SCT_OPTION_MISC1.tooltipText}
68 SCTOptionsFrameMisc [SCT_OPTION_MISC2.name] = {index = 2, tooltipText = SCT_OPTION_MISC2.tooltipText}
69 SCTOptionsFrameMisc [SCT_OPTION_MISC3.name] = {index = 3, tooltipText = SCT_OPTION_MISC3.tooltipText}
70 SCTOptionsFrameMisc [SCT_OPTION_MISC4.name] = {index = 4, tooltipText = SCT_OPTION_MISC4.tooltipText}
71 SCTOptionsFrameMisc [SCT_OPTION_MISC5.name] = {index = 5, tooltipText = SCT_OPTION_MISC5.tooltipText}
72 SCTOptionsFrameMisc [SCT_OPTION_MISC6.name] = {index = 6, tooltipText = SCT_OPTION_MISC6.tooltipText}
73 SCTOptionsFrameMisc [SCT_OPTION_MISC7.name] = {index = 7, tooltipText = SCT_OPTION_MISC7.tooltipText}
74 SCTOptionsFrameMisc [SCT_OPTION_MISC8.name] = {index = 8, tooltipText = SCT_OPTION_MISC8.tooltipText}
75 SCTOptionsFrameMisc [SCT_OPTION_MISC9.name] = {index = 9, tooltipText = SCT_OPTION_MISC9.tooltipText}
76 SCTOptionsFrameMisc [SCT_OPTION_MISC10.name] = {index = 10, tooltipText = SCT_OPTION_MISC10.tooltipText}
77 SCTOptionsFrameMisc [SCT_OPTION_MISC11.name] = {index = 11, tooltipText = SCT_OPTION_MISC11.tooltipText}
78 SCTOptionsFrameMisc [SCT_OPTION_MISC12.name] = {index = 12, tooltipText = SCT_OPTION_MISC12.tooltipText}
79 SCTOptionsFrameMisc [SCT_OPTION_MISC13.name] = {index = 13, tooltipText = SCT_OPTION_MISC13.tooltipText}
80 SCTOptionsFrameMisc [SCT_OPTION_MISC14.name] = {index = 14, tooltipText = SCT_OPTION_MISC14.tooltipText}
81 SCTOptionsFrameMisc [SCT_OPTION_MISC15.name] = {index = 15, tooltipText = SCT_OPTION_MISC15.tooltipText}
82 SCTOptionsFrameMisc [SCT_OPTION_MISC16.name] = {index = 16, tooltipText = SCT_OPTION_MISC16.tooltipText}
83 SCTOptionsFrameMisc [SCT_OPTION_MISC17.name] = {index = 17, tooltipText = SCT_OPTION_MISC17.tooltipText}
84 SCTOptionsFrameMisc [SCT_OPTION_MISC18.name] = {index = 18, tooltipText = SCT_OPTION_MISC18.tooltipText}
85 SCTOptionsFrameMisc [SCT_OPTION_MISC19.name] = {index = 19, tooltipText = SCT_OPTION_MISC19.tooltipText}
86  
87 ----------------------
88 --Called when option page loads
89 function SCTOptionsFrame_OnShow()
90 -- Initial Values
91 local button, button2, button3, string, checked;
92  
93 --Misc Options
94 for key, value in SCTOptionsFrameMisc do
95 string = getglobal("SCTOptionsFrame_Misc"..value.index);
96 string:SetText(key);
97 if (value.tooltipText) then
98 string.tooltipText = value.tooltipText;
99 end
100 end
101  
102 -- Set Options values
103 for key, value in SCTOptionsFrameEventFrames do
104 button = getglobal("SCTOptionsFrame"..value.index.."_CheckButton");
105 button2 = getglobal("SCTOptionsFrame"..value.index.."_CritCheckButton");
106 button3 = getglobal("SCTOptionsFrame"..value.index.."_MsgCheckButton");
107 string = getglobal("SCTOptionsFrame"..value.index.."_CheckButtonText");
108  
109 button:SetChecked(SCT_Get(value.SCTVar));
110 button.tooltipText = value.tooltipText;
111 button2:SetChecked(SCT_GetTable(SCT_CRITS_TABLE, value.SCTVar));
112 button2.tooltipText = SCT_Option_Crit_Tip;
113 button3:SetChecked(SCT_GetTable(SCT_MSGS_TABLE, value.SCTVar));
114 button3.tooltipText = SCT_Option_Msg_Tip;
115 string:SetText(key);
116  
117 --Color Swatch
118 local frame,swatch,sRed,sGreen,sBlue,sColor,sfunc,cfunc,index,key;
119  
120 frame = getglobal("SCTOptionsFrame"..value.index);
121 swatch = getglobal("SCTOptionsFrame"..value.index.."_ColorSwatchNormalTexture");
122  
123 sColor = SCT_GetTable(SCT_COLORS_TABLE, value.SCTVar);
124 sRed = sColor.r;
125 sGreen = sColor.g;
126 sBlue = sColor.b;
127  
128 frame.r = sRed;
129 frame.g = sGreen;
130 frame.b = sBlue;
131  
132 index = value.index;
133 key = value.SCTVar;
134 sfunc = function(x) SCTOptionsFrame_SetColor(index, key) end;
135 cfunc = function(x) SCTOptionsFrame_CancelColor(index, key, x) end;
136 frame.swatchFunc = sfunc;
137 frame.cancelFunc = cfunc;
138 swatch:SetVertexColor(sRed,sGreen,sBlue);
139 end
140  
141 -- Set CheckButton states
142 for key, value in SCTOptionsFrameCheckButtons do
143 button = getglobal("SCTOptionsFrame_CheckButton"..value.index);
144 string = getglobal("SCTOptionsFrame_CheckButton"..value.index.."Text");
145  
146 button:SetChecked(SCT_Get(value.SCTVar));
147 button.tooltipText = value.tooltipText;
148 string:SetText(key);
149  
150 end
151  
152 local slider, string, low, high, getvalue
153  
154 --Set Sliders
155 for key, value in SCTOptionsFrameSliders do
156 slider = getglobal("SCTOptionsFrame_Slider"..value.index);
157 string = getglobal("SCTOptionsFrame_Slider"..value.index.."Text");
158 low = getglobal("SCTOptionsFrame_Slider"..value.index.."Low");
159 high = getglobal("SCTOptionsFrame_Slider"..value.index.."High");
160 getvalue = SCT_Get(value.SCTVar);
161 slider:SetMinMaxValues(value.minValue, value.maxValue);
162 slider:SetValueStep(value.valueStep);
163 slider.tooltipText = value.tooltipText;
164 slider:SetValue(getvalue);
165 string:SetText(key..": "..SCT_Format_Number(getvalue));
166 low:SetText(value.minText);
167 high:SetText(value.maxText);
168 end
169  
170 local label, ddl, selected
171  
172 --Dropdowns
173 for key, value in SCTOptionsFrameSelections do
174 selected = SCT_Get(value.SCTVar);
175 ddl = getglobal("SCTOptionsFrame_Selection"..value.index);
176 UIDropDownMenu_SetSelectedID(ddl, selected);
177 --not sure why I have to do this, but only way to make it show correctly
178 UIDropDownMenu_SetText(value.table[selected], ddl);
179 ddl.tooltipText = value.tooltipText;
180 label = getglobal("SCTOptionsFrame_Selection"..value.index.."Label");
181 label:SetText(key);
182  
183 --show hide text options
184 if (value.index == 1) then
185 SCT_UpdateAnimationOptions(selected);
186 end
187 end
188  
189 --Update Profiles
190 SCT_UpdateProfileList();
191 end
192  
193 ----------------------
194 --Sets the colors of the config from a color swatch
195 function SCTOptionsFrame_SetColor(index,key)
196 local r,g,b = ColorPickerFrame:GetColorRGB();
197 local swatch,frame;
198 local color={};
199 swatch = getglobal("SCTOptionsFrame"..index.."_ColorSwatchNormalTexture");
200 frame = getglobal("SCTOptionsFrame"..index);
201 swatch:SetVertexColor(r,g,b);
202 frame.r = r;
203 frame.g = g;
204 frame.b = b;
205 color.r = r;
206 color.g = g;
207 color.b = b;
208 --update back to config
209 SCT_SetTable(SCT_COLORS_TABLE, key, color);
210 end
211  
212 ----------------------
213 -- Cancels the color selection
214 function SCTOptionsFrame_CancelColor(index, key, prev)
215 local r = prev.r;
216 local g = prev.g;
217 local b = prev.b;
218 local swatch, frame;
219 local color={};
220 swatch = getglobal("SCTOptionsFrame"..index.."_ColorSwatchNormalTexture");
221 frame = getglobal("SCTOptionsFrame"..index);
222 swatch:SetVertexColor(r, g, b);
223 frame.r = r;
224 frame.g = g;
225 frame.b = b;
226 color.r = r;
227 color.g = g;
228 color.b = b;
229 -- Update back to config
230 SCT_SetTable(SCT_COLORS_TABLE, key, color);
231 end
232  
233 ----------------------
234 --Sets the silder values in the config
235 function SCT_OptionsSliderOnValueChanged()
236 local string;
237 --loop thru slider array to find current one, then update its value
238 for key, value in SCTOptionsFrameSliders do
239 if (this:GetName() == "SCTOptionsFrame_Slider"..value.index) then
240 string = getglobal("SCTOptionsFrame_Slider"..value.index.."Text");
241 string:SetText(key..": "..SCT_Format_Number(this:GetValue()));
242 SCT_Set(value.SCTVar,this:GetValue());
243 break;
244 end
245 end
246 --update Example
247 SCT_ShowExample();
248 end
249  
250 ----------------------
251 --Sets the checkbox values in the config
252 function SCT_OptionsCheckButtonOnClick()
253 local button, chkvalue;
254 --loop thru event checkbox array to find current one, then update its value
255 for index, value in SCTOptionsFrameEventFrames do
256 if (this:GetName() == "SCTOptionsFrame"..value.index.."_CheckButton") then
257 button = getglobal("SCTOptionsFrame"..value.index.."_CheckButton");
258 SCT_Set(value.SCTVar,button:GetChecked());
259 break;
260 --is it a crit checkbox
261 elseif (this:GetName() == "SCTOptionsFrame"..value.index.."_CritCheckButton") then
262 button = getglobal("SCTOptionsFrame"..value.index.."_CritCheckButton");
263 SCT_SetTable(SCT_CRITS_TABLE, value.SCTVar,button:GetChecked());
264 break;
265 --is it a msg checkbox
266 elseif (this:GetName() == "SCTOptionsFrame"..value.index.."_MsgCheckButton") then
267 button = getglobal("SCTOptionsFrame"..value.index.."_MsgCheckButton");
268 SCT_SetTable(SCT_MSGS_TABLE, value.SCTVar,button:GetChecked());
269 break;
270 end
271 end
272 --loop thru checkbox array to find current one, then update its value
273 for index, value in SCTOptionsFrameCheckButtons do
274 if (this:GetName() == "SCTOptionsFrame_CheckButton"..value.index) then
275 button = getglobal("SCTOptionsFrame_CheckButton"..value.index);
276 SCT_Set(value.SCTVar,button:GetChecked());
277 break;
278 end
279 end
280 --update Example
281 SCT_ShowExample();
282 end
283  
284 ---------------------
285 --Save current settings, mainly to catch when they load a profile
286 function SCTSaveCurrentSettings()
287 SCT_CONFIG[SCT_PlayerName] = SCT_clone(SCTPlayer);
288 SCTPlayer = SCT_Config_GetPlayer();
289 end
290  
291 ----------------------
292 --Open the color selector using show/hide
293 function SCTSaveList_OnClick()
294 local id = this:GetName();
295 local profile = getglobal(id.."_Name"):GetText();
296 local editbox = getglobal("SCTOptionsProfileEditBox");
297 editbox:SetText(profile);
298 SCTOptions_SaveLoadFrame:Hide();
299 end
300  
301 -----------------------
302 --Load a profile
303 function SCTLoadProfile()
304 local editbox = getglobal("SCTOptionsProfileEditBox");
305 local profile = editbox:GetText();
306 if (SCT_CONFIG[profile]) then
307 SCTPlayer = SCT_clone(SCT_CONFIG[profile]);
308 editbox:SetText("");
309 SCT_hideMenu();
310 SCT_showMenu();
311 SCT_Chat_Message(SCT_PROFILE..profile);
312 end
313 end
314  
315 -----------------------
316 --Delete a profile
317 function SCTDeleteProfile()
318 local editbox = getglobal("SCTOptionsProfileEditBox");
319 local profile = editbox:GetText();
320 if (SCT_CONFIG[profile]) then
321 if (profile == SCT_PlayerName) then
322 SCT_Reset();
323 else
324 SCT_CONFIG[profile] = nil;
325 end
326 editbox:SetText("");
327 SCT_UpdateProfileList()
328 SCT_hideMenu();
329 SCT_showMenu();
330 SCT_Chat_Message(SCT_PROFILE_DELETE..profile);
331 end
332 end
333  
334 -----------------------
335 --Update profile list
336 function SCT_UpdateProfileList()
337 local loadprofile
338 local i, j = 1;
339 --update known profiles
340 for key, value in SCT_CONFIG do
341 if (i > 10) then
342 return;
343 end
344 loadprofile = getglobal("SCTList"..i.."_Name");
345 loadprofile:SetText(key);
346 i = i + 1;
347 end
348 --blank out non-updated list items
349 for j = i, 10 do
350 loadprofile = getglobal("SCTList"..j.."_Name");
351 loadprofile:SetText("");
352 end
353 end
354  
355 ----------------------
356 --Open the color selector using show/hide
357 function SCT_OpenColorPicker(button)
358 CloseMenus();
359 if ( not button ) then
360 button = this;
361 end
362 ColorPickerFrame.func = button.swatchFunc;
363 ColorPickerFrame:SetColorRGB(button.r, button.g, button.b);
364 ColorPickerFrame.previousValues = {r = button.r, g = button.g, b = button.b, opacity = button.opacity};
365 ColorPickerFrame.cancelFunc = button.cancelFunc;
366 ColorPickerFrame:Show();
367 end
368  
369 ---------------------
370 --Init a Dropdown
371 function SCT_DropDown_Initialize()
372 local info = {};
373 for index, value in SCTOptionsFrameSelections do
374 if (this:GetName() == "SCTOptionsFrame_Selection"..value.index.."Button") then
375 for key, name in value.table do
376 info = {};
377 info.text = name;
378 info.func = SCT_DropDown_OnClick;
379 info.arg1 = value.index;
380 UIDropDownMenu_AddButton(info);
381 end
382 end
383 end
384 end
385  
386 ---------------------
387 -- Dropdown Onclick
388 function SCT_DropDown_OnClick(list)
389 local ddl, ddl2, chkbox;
390 for index, value in SCTOptionsFrameSelections do
391 if (list == value.index) then
392 ddl = getglobal("SCTOptionsFrame_Selection"..value.index);
393 UIDropDownMenu_SetSelectedID(ddl, this:GetID());
394 SCT_Set(value.SCTVar, this:GetID());
395 --show hide text options
396 if (value.index == 1) then
397 SCT_UpdateAnimationOptions(this:GetID());
398 end
399 end
400 end
401  
402 --update Example
403 SCT_ShowExample();
404 end
405  
406 ----------------------
407 -- display ddl or chxbox based on type
408 function SCT_UpdateAnimationOptions(id)
409 --get scroll down checkbox
410 chkbox = getglobal("SCTOptionsFrame_CheckButton4");
411 --get animside type dropdown
412 ddl2 = getglobal("SCTOptionsFrame_Selection2");
413 if (id == 1) then
414 chkbox:Show();
415 ddl2:Hide();
416 else
417 chkbox:Hide();
418 ddl2:Show();
419 end
420 end
421  
422 ---------------------
423 --Show SCT Example
424 function SCT_ShowExample()
425 local example;
426 SCT_UpdateGlobalPos();
427  
428 --show example frame
429 SCT_EXAMPLETEXT:Show();
430 --get object
431 example = getglobal("SCTaniExampleData1");
432 --set text size
433 SCT_SetFont(example);
434 --set the color
435 example:SetTextColor(1, 1, 1);
436 --set alpha
437 example:SetAlpha(SCT_Get("ALPHA"));
438 --Position
439 example:SetPoint("CENTER", "UIParent", "CENTER", SCT_Get("XOFFSET"), SCT_Get("YOFFSET"));
440 --Set the text to display
441 example:SetText(SCT_EXAMPLE);
442  
443 --show msg frame
444 SCT_EXAMPLEMSG:Show();
445 --get object
446 example = getglobal("SCTMsgExample1");
447 --set text size
448 SCT_SetMsgFont(example);
449 --set the color
450 example:SetTextColor(1, 1, 1);
451 --set alpha
452 example:SetAlpha(1);
453 --Position
454 example:SetPoint("CENTER", "UIParent", "CENTER", SCT_Get("MSGXOFFSET"), SCT_Get("MSGYOFFSET")-30);
455 --Set the text to display
456 example:SetText(SCT_MSG_EXAMPLE);
457 end
458  
459 ---------------
460 --format numbers
461 function SCT_Format_Number(number)
462 if number > 0 and number < 1 then
463 return format("%d",number * 100);
464 else
465 return number;
466 end;
467 end