vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 --------------------------------------------------------------------------------------
2 -- Alarm Clock Wrangler for Telo's InfoBar
3 --------------------------------------------------------------------------------------
4  
5 -- DEFAULT VARS
6 ACW_DEFAULT_ON = 1;
7 ACW_DEFAULT_LOCKED = 1;
8 ACW_DEFAULT_OFFSET = 0;
9 ACW_DEFAULT_ALARMON = 0;
10 ACW_DEFAULT_ALARMHOUR = 0;
11 ACW_DEFAULT_ALARMMINUTE = 0;
12 ACW_DEFAULT_SNOOZETIME = 300;
13 ACW_ALARM_DURATION = 3.0;
14 ACW_REALARMTIME = 6.0;
15 ACW_SNOOZETIME = 120;
16  
17 -- ALARM VARS
18 ACW_ALARM1_SNOOZING = 0;
19 ACW_ALARM2_SNOOZING = 0;
20 ACW_ALARM3_SNOOZING = 0;
21  
22 ACW_ALARM1_SNOOZE_HOUR = 0;
23 ACW_ALARM2_SNOOZE_HOUR = 0;
24 ACW_ALARM3_SNOOZE_HOUR = 0;
25  
26 ACW_ALARM1_SNOOZE_MINUTE = 0;
27 ACW_ALARM2_SNOOZE_MINUTE = 0;
28 ACW_ALARM3_SNOOZE_MINUTE = 0;
29  
30 ACW_ALARM1_SNOOZE_TIME = 0;
31 ACW_ALARM2_SNOOZE_TIME = 0;
32 ACW_ALARM3_SNOOZE_TIME = 0;
33  
34 ACW_ALARM1_ALARMED = 0;
35 ACW_ALARM2_ALARMED = 0;
36 ACW_ALARM3_ALARMED = 0;
37  
38 ACW_ALARM1_SNOOZE_ALARMED=0;
39 ACW_ALARM2_SNOOZE_ALARMED=0;
40 ACW_ALARM3_SNOOZE_ALARMED=0;
41  
42 ACW_ELAPSE_CTR1 = 0;
43 ACW_ELAPSE_CTR2 = 0;
44 ACW_ELAPSE_CTR3 = 0;
45  
46 ACW_ACKNOWLEDGE_ALARM1 = 0;
47 ACW_ACKNOWLEDGE_ALARM2 = 0;
48 ACW_ACKNOWLEDGE_ALARM3 = 0;
49  
50 ACW_NIGHT = 0;
51 ACW_DAY = 1;
52 ACW_BLACK = 2;
53 ACW_DAY_NIGHT = ACW_DAY;
54  
55 ACW_REALM_NAME = "";
56 ACW_SAVE_PREFIX = "";
57  
58 TITAN_ACW_FREQUENCY=0.5;
59  
60 TITAN_ACW_TIME_STR = "";
61 TITAN_ACW_OLD_CLOCK_FUNCTION = nil;
62 TITAN_ACW_HIDE_CLOCK = 1;
63  
64 TITAN_ACW_COMPACT_MODE = 0;
65 TITAN_ACW_NORMAL_MODE = 1;
66 ACW_DEFAULT_MODE = TITAN_ACW_NORMAL_MODE;
67  
68  
69 local function dout(msg)
70 if( DEFAULT_CHAT_FRAME) then
71 DEFAULT_CHAT_FRAME:AddMessage(msg,1.0,0,0);
72 end
73 end
74  
75 function TitanPanelACWButton_SetCompactMode()
76 TITAN_ACWOptions.mode = TITAN_ACW_COMPACT_MODE;
77 TITAN_ACW_HIDE_CLOCK = 0;
78  
79 TitanPanelAcknowledgeButton:SetPoint("RIGHT","TitanPanelACWButton","LEFT",12,1);
80 TitanPanelSnoozeButton:SetPoint("LEFT","TitanPanelACWButton","RIGHT",-12,1);
81  
82 TitanPanelACWButtonText:SetWidth(35);
83 TITAN_ACW_CompactIcon:Show();
84 TitanPanelAcknowledgeButton:Show();
85 TitanPanelSnoozeButton:Show();
86 end
87  
88 function TitanPanelACWButton_SetNormalMode()
89 TITAN_ACWOptions.mode = TITAN_ACW_NORMAL_MODE;
90 TITAN_ACW_HIDE_CLOCK = 1;
91  
92 TITAN_ACW_CompactIcon:Hide();
93 TitanPanelACWButtonText:SetWidth(51);
94  
95 TitanPanelAcknowledgeButton:SetPoint("RIGHT","TitanPanelACWButton","LEFT",1,1);
96 TitanPanelSnoozeButton:SetPoint("LEFT","TitanPanelACWButton","RIGHT",1,1);
97 end
98  
99 function TitanPanelACWButton_OnLoad()
100 this.registry={
101 id="ACW",
102 menuText=ACW_ACW,
103 buttonTextFunction="TitanPanelACWButton_GetButtonText",
104 tooltipTitle = ACW_ACW,
105 tooltipTextFunction = "TitanPanelACWButton_GetTooltipText",
106 frequency=TITAN_ACW_FREQUENCY,
107 }
108  
109 -- Register events
110 this:RegisterEvent("VARIABLES_LOADED");
111  
112 TITAN_ACWOptions = { };
113  
114 -- clock stuff
115 TITAN_ACWOptions.on = ACW_DEFAULT_ON;
116 TITAN_ACWOptions.locked = ACW_DEFAULT_LOCKED;
117 TITAN_ACWOptions.timeformat = ACW_DEFAULT_TIMEFORMAT;
118 TITAN_ACWOptions.offset = ACW_DEFAULT_OFFSET;
119 TITAN_ACWOptions.offsetminute = ACW_DEFAULT_OFFSET;
120  
121 -- alarm stuff
122 TITAN_ACWOptions.alarm1on = ACW_DEFAULT_ALARMON;
123 TITAN_ACWOptions.alarm2on = ACW_DEFAULT_ALARMON;
124 TITAN_ACWOptions.alarm3on = ACW_DEFAULT_ALARMON;
125  
126 TITAN_ACWOptions.alarm1text = ACW_DEFAULT_ALARMTEXT;
127 TITAN_ACWOptions.alarm2text = ACW_DEFAULT_ALARMTEXT;
128 TITAN_ACWOptions.alarm3text = ACW_DEFAULT_ALARMTEXT;
129  
130 TITAN_ACWOptions.alarm1hour = ACW_DEFAULT_ALARMHOUR;
131 TITAN_ACWOptions.alarm2hour = ACW_DEFAULT_ALARMHOUR;
132 TITAN_ACWOptions.alarm3hour = ACW_DEFAULT_ALARMHOUR;
133  
134 TITAN_ACWOptions.alarm1minute = ACW_DEFAULT_ALARMMINUTE;
135 TITAN_ACWOptions.alarm2minute = ACW_DEFAULT_ALARMMINUTE;
136 TITAN_ACWOptions.alarm3minute = ACW_DEFAULT_ALARMMINUTE;
137  
138 TITAN_ACWOptions.snoozetime = ACW_DEFAULT_SNOOZETIME;
139  
140 TITAN_ACWOptions.mode = ACW_DEFAULT_MODE;
141 end
142  
143  
144 function TitanPanelACWButton_OnEvent()
145 TitanPanelButton_UpdateButton("ACW");
146 TitanPanelButton_UpdateTooltip();
147  
148 if (event == "VARIABLES_LOADED") then
149 -- per character settings
150 ACW_REALM_NAME = GetCVar("realmName");
151 ACW_SAVE_PREFIX = ACW_REALM_NAME;
152  
153 TITAN_ACWOptions.offset = TITAN_ACWOptions[ACW_SAVE_PREFIX.."offset"];
154 --dout("TITAN_ACWOptions["..ACW_SAVE_PREFIX.."offset] = "..TITAN_ACWOptions[ACW_SAVE_PREFIX.."offset"]);
155 if (TITAN_ACWOptions.offset == nil) then
156 TITAN_ACWOptions.offset = ACW_DEFAULT_OFFSET;
157 end
158  
159 TITAN_ACWOptions.offsetminute = TITAN_ACWOptions[ACW_SAVE_PREFIX.."offsetminute"];
160 if (TITAN_ACWOptions.offsetminute == nil) then
161 TITAN_ACWOptions.offsetminute = ACW_DEFAULT_OFFSET;
162 end
163  
164 if (TitanClockSettings) then
165 TitanClockSettings.OffsetHour = TITAN_ACWOptions.offset;
166 end
167  
168 if (TITAN_ACWOptions.mode == TITAN_ACW_COMPACT_MODE) then
169 TitanPanelACWButton_SetCompactMode();
170 else
171 TitanPanelACWButton_SetNormalMode();
172 end
173 end
174 end
175  
176  
177 function TitanPanelACWButton_Dummy()
178 return;
179 end
180  
181  
182 function TITAN_ACW_Reset()
183 TITAN_ACWOptions.on = ACW_DEFAULT_ON;
184 TITAN_ACWOptions.locked = ACW_DEFAULT_LOCKED;
185 TITAN_ACWOptions.timeformat = ACW_DEFAULT_TIMEFORMAT;
186 TITAN_ACWOptions.offset = ACW_DEFAULT_OFFSET;
187 TITAN_ACWOptions[ACW_SAVE_PREFIX.."offset"] = TITAN_ACWOptions.offset;
188 TITAN_ACWOptions.offsetminute = ACW_DEFAULT_OFFSET;
189 TITAN_ACWOptions[ACW_SAVE_PREFIX.."offsetminute"] = TITAN_ACWOptions.offsetminute;
190  
191 if (TitanClockSettings) then
192 TitanClockSettings.OffsetHour = TITAN_ACWOptions.offset;
193 end
194  
195 TITAN_ACWOptions.alarm1on = ACW_DEFAULT_ALARMON;
196 TITAN_ACWOptions.alarm2on = ACW_DEFAULT_ALARMON;
197 TITAN_ACWOptions.alarm3on = ACW_DEFAULT_ALARMON;
198  
199 TITAN_ACWOptions.alarm1text = ACW_DEFAULT_ALARMTEXT;
200 TITAN_ACWOptions.alarm2text = ACW_DEFAULT_ALARMTEXT;
201 TITAN_ACWOptions.alarm3text = ACW_DEFAULT_ALARMTEXT;
202  
203 TITAN_ACWOptions.alarm1hour = ACW_DEFAULT_ALARMHOUR;
204 TITAN_ACWOptions.alarm2hour = ACW_DEFAULT_ALARMHOUR;
205 TITAN_ACWOptions.alarm3hour = ACW_DEFAULT_ALARMHOUR;
206  
207 TITAN_ACWOptions.alarm1minute = ACW_DEFAULT_ALARMMINUTE;
208 TITAN_ACWOptions.alarm2minute = ACW_DEFAULT_ALARMMINUTE;
209 TITAN_ACWOptions.alarm3minute = ACW_DEFAULT_ALARMMINUTE;
210  
211 TITAN_ACWOptions.snoozetime = ACW_DEFAULT_SNOOZETIME;
212  
213 ACW_ALARM1_SNOOZING = 0;
214 ACW_ALARM2_SNOOZING = 0;
215 ACW_ALARM3_SNOOZING = 0;
216  
217 ACW_ALARM1_SNOOZE_HOUR = 0;
218 ACW_ALARM2_SNOOZE_HOUR = 0;
219 ACW_ALARM3_SNOOZE_HOUR = 0;
220  
221 ACW_ALARM1_SNOOZE_MINUTE = 0;
222 ACW_ALARM2_SNOOZE_MINUTE = 0;
223 ACW_ALARM3_SNOOZE_MINUTE = 0;
224  
225 ACW_ALARM1_SNOOZE_TIME = 0;
226 ACW_ALARM2_SNOOZE_TIME = 0;
227 ACW_ALARM3_SNOOZE_TIME = 0;
228  
229 ACW_ALARM1_ALARMED = 0;
230 ACW_ALARM2_ALARMED = 0;
231 ACW_ALARM3_ALARMED = 0;
232  
233 ACW_ALARM1_SNOOZE_ALARMED=0;
234 ACW_ALARM2_SNOOZE_ALARMED=0;
235 ACW_ALARM3_SNOOZE_ALARMED=0;
236  
237 ACW_ELAPSE_CTR1 = 0;
238 ACW_ELAPSE_CTR2 = 0;
239 ACW_ELAPSE_CTR3 = 0;
240  
241 ACW_ACKNOWLEDGE_ALARMS = 0;
242  
243 TitanPanelACWButton_SetNormalMode();
244  
245 TitanPanelSnoozeButton:Hide();
246 TitanPanelAcknowledgeButton:Hide();
247 end
248  
249  
250 function TITAN_ACW_Alarm(msg)
251 UIErrorsFrame:AddMessage(msg, 1.0, 0.0, 0.0, 1.0, ACW_ALARM_DURATION);
252  
253 TITAN_ACW_BlueButton:SetTexCoord(0.5,0.75,0,1);
254 TITAN_ACW_RedButton:SetTexCoord(0,0.25,0,1);
255 TitanPanelSnoozeButton:Show();
256 TitanPanelAcknowledgeButton:Show();
257 PlaySoundFile("Interface\\AddOns\\TitanAlarmClockWrangler\\bell.wav");
258 end
259  
260  
261 function TITAN_ACW_Snooze()
262 if (ACW_ALARM1_ALARMED == 1) then
263 ACW_ALARM1_SNOOZING = 1;
264 ACW_ALARM1_SNOOZE_HOUR, ACW_ALARM1_SNOOZE_MINUTE = GetGameTime();
265 ACW_ALARM1_SNOOZE_TIME = 0;
266 DEFAULT_CHAT_FRAME:AddMessage(ACW_SNOOZE..ACW_ALARM1.." "..ACW_SNOOZING, 1.0, 0.0, 0.0);
267 ACW_ALARM1_ALARMED=0;
268 ACW_ELAPSE_CTR1 = 0;
269 ACW_ACKNOWLEDGE_ALARM1 = 1;
270 TITAN_ACW_BlueButton:SetTexCoord(0.25,0.5,0,1);
271 end
272  
273 if (ACW_ALARM2_ALARMED == 1) then
274 ACW_ALARM2_SNOOZING = 1;
275 ACW_ALARM2_SNOOZE_HOUR, ACW_ALARM2_SNOOZE_MINUTE = GetGameTime();
276 ACW_ALARM2_SNOOZE_TIME = 0;
277 DEFAULT_CHAT_FRAME:AddMessage(ACW_SNOOZE..ACW_ALARM2.." "..ACW_SNOOZING, 1.0, 0.0, 0.0);
278 ACW_ALARM2_ALARMED=0;
279 ACW_ELAPSE_CTR2 = 0;
280 ACW_ACKNOWLEDGE_ALARM2 = 1;
281 TITAN_ACW_BlueButton:SetTexCoord(0.25,0.5,0,1);
282 end
283  
284 if (ACW_ALARM3_ALARMED == 1) then
285 ACW_ALARM3_SNOOZING = 1;
286 ACW_ALARM3_SNOOZE_HOUR, ACW_ALARM3_SNOOZE_MINUTE = GetGameTime();
287 ACW_ALARM3_SNOOZE_TIME = 0;
288 DEFAULT_CHAT_FRAME:AddMessage(ACW_SNOOZE..ACW_ALARM3.." "..ACW_SNOOZING, 1.0, 0.0, 0.0);
289 ACW_ALARM3_ALARMED=0;
290 ACW_ELAPSE_CTR3 = 0;
291 ACW_ACKNOWLEDGE_ALARM3 = 1;
292 TITAN_ACW_BlueButton:SetTexCoord(0.25,0.5,0,1);
293 end
294 end
295  
296  
297 function TITAN_ACW_AcknowledgeAlarm()
298 if (ACW_ALARM1_ALARMED == 1 or ACW_ALARM1_SNOOZING == 1) then
299 DEFAULT_CHAT_FRAME:AddMessage(ACW_SNOOZE..ACW_ALARM1.." "..ACW_ACKNOWLEDGED, 1.0, 0.0, 0.0);
300 ACW_ALARM1_ALARMED=0;
301 ACW_ALARM1_SNOOZING = 0;
302 ACW_ACKNOWLEDGE_ALARM1 = 1;
303 if (TITAN_ACWOptions.mode == TITAN_ACW_NORMAL_MODE) then
304 TitanPanelSnoozeButton:Hide();
305 TitanPanelAcknowledgeButton:Hide();
306 end
307  
308 TITAN_ACW_BlueButton:SetTexCoord(0.25,0.5,0,1);
309 TITAN_ACW_RedButton:SetTexCoord(0.25,0.5,0,1);
310 end
311  
312 if (ACW_ALARM2_ALARMED == 1 or ACW_ALARM2_SNOOZING == 1) then
313 DEFAULT_CHAT_FRAME:AddMessage(ACW_SNOOZE..ACW_ALARM2.." "..ACW_ACKNOWLEDGED, 1.0, 0.0, 0.0);
314 ACW_ALARM2_ALARMED=0;
315 ACW_ALARM2_SNOOZING = 0;
316 ACW_ACKNOWLEDGE_ALARM2 = 1;
317 if (TITAN_ACWOptions.mode == TITAN_ACW_NORMAL_MODE) then
318 TitanPanelSnoozeButton:Hide();
319 TitanPanelAcknowledgeButton:Hide();
320 end
321  
322 TITAN_ACW_BlueButton:SetTexCoord(0.25,0.5,0,1);
323 TITAN_ACW_RedButton:SetTexCoord(0.25,0.5,0,1);
324 end
325  
326 if (ACW_ALARM3_ALARMED == 1 or ACW_ALARM3_SNOOZING == 1) then
327 DEFAULT_CHAT_FRAME:AddMessage(ACW_SNOOZE..ACW_ALARM3.." "..ACW_ACKNOWLEDGED, 1.0, 0.0, 0.0);
328 ACW_ALARM3_ALARMED=0;
329 ACW_ALARM3_SNOOZING = 0;
330 ACW_ACKNOWLEDGE_ALARM3 = 1;
331 if (TITAN_ACWOptions.mode == TITAN_ACW_NORMAL_MODE) then
332 TitanPanelSnoozeButton:Hide();
333 TitanPanelAcknowledgeButton:Hide();
334 end
335  
336 TITAN_ACW_BlueButton:SetTexCoord(0.25,0.5,0,1);
337 TITAN_ACW_RedButton:SetTexCoord(0.25,0.5,0,1);
338 end
339 end
340  
341 function TITAN_ACW_OnMouseDown(arg1)
342 ShowUIPanel(TITAN_ACW_Options);
343 PlaySound("igMainMenuOpen");
344 end
345  
346  
347 function TitanPanelACWButton_OnUpdate(elapsed)
348 -- Get server time
349 local hour, minute = GetGameTime();
350  
351 -- Apply the offset option
352 hour = hour + TITAN_ACWOptions.offset;
353 if (hour >= 24) then
354 hour = hour - 24;
355 elseif (hour < 0) then
356 hour = hour + 24;
357 end
358  
359 -- Apply the minute offset option
360 minute = minute + TITAN_ACWOptions.offsetminute;
361 if (minute < 0) then
362 minute = minute + 60;
363 hour = hour - 1;
364  
365 if (hour < 0) then
366 hour = 23;
367 end
368 elseif (minute >= 60) then
369 minute = minute - 60;
370 hour = hour + 1;
371  
372 if (hour > 23) then
373 hour = 0;
374 end
375 end
376  
377 -- Check for alarms
378 if (TITAN_ACWOptions.alarm1on == 1) then
379 if (ACW_ALARM1_ALARMED==1 or ACW_ALARM1_SNOOZING == 1) then
380 ACW_ELAPSE_CTR1 = ACW_ELAPSE_CTR1 + elapsed;
381 end
382  
383 if (ACW_ACKNOWLEDGE_ALARM1 == 0) then
384 if ((TITAN_ACWOptions.alarm1hour == hour and TITAN_ACWOptions.alarm1minute == minute and ACW_ALARM1_ALARMED==0)
385 or (ACW_ALARM1_ALARMED==1 and ACW_ELAPSE_CTR1 >= ACW_REALARMTIME)
386 or (ACW_ALARM1_SNOOZING == 1 and ACW_ELAPSE_CTR1 >= TITAN_ACWOptions.snoozetime)) then
387 ACW_ALARM1_ALARMED=1;
388 TITAN_ACW_Alarm(TITAN_ACWOptions.alarm1text);
389 ACW_ELAPSE_CTR1 = 0;
390 ACW_ALARM1_SNOOZING = 0;
391 end
392 end
393  
394 if (ACW_ACKNOWLEDGE_ALARM1 == 1 and TITAN_ACWOptions.alarm1minute ~= minute) then
395 ACW_ACKNOWLEDGE_ALARM1 = 0;
396 end
397 end
398 if (TITAN_ACWOptions.alarm2on == 1) then
399 if (ACW_ALARM2_ALARMED==1 or ACW_ALARM2_SNOOZING == 1) then
400 ACW_ELAPSE_CTR2 = ACW_ELAPSE_CTR2 + elapsed;
401 end
402  
403 if (ACW_ACKNOWLEDGE_ALARM2 == 0) then
404 if ((TITAN_ACWOptions.alarm2hour == hour and TITAN_ACWOptions.alarm2minute == minute and ACW_ALARM2_ALARMED==0)
405 or (ACW_ALARM2_ALARMED==1 and ACW_ELAPSE_CTR2 >= ACW_REALARMTIME)
406 or (ACW_ALARM2_SNOOZING == 1 and ACW_ELAPSE_CTR2 >= TITAN_ACWOptions.snoozetime)) then
407 ACW_ALARM2_ALARMED=1;
408 TITAN_ACW_Alarm(TITAN_ACWOptions.alarm2text);
409 ACW_ELAPSE_CTR2 = 0;
410 ACW_ALARM2_SNOOZING = 0;
411 end
412 end
413  
414 if (ACW_ACKNOWLEDGE_ALARM2 == 1 and TITAN_ACWOptions.alarm2minute ~= minute) then
415 ACW_ACKNOWLEDGE_ALARM2 = 0;
416 end
417 end
418 if (TITAN_ACWOptions.alarm3on == 1) then
419 if (ACW_ALARM3_ALARMED==1 or ACW_ALARM3_SNOOZING == 1) then
420 ACW_ELAPSE_CTR3 = ACW_ELAPSE_CTR3 + elapsed;
421 end
422  
423 if (ACW_ACKNOWLEDGE_ALARM3 == 0) then
424 if ((TITAN_ACWOptions.alarm3hour == hour and TITAN_ACWOptions.alarm3minute == minute and ACW_ALARM3_ALARMED==0)
425 or (ACW_ALARM3_ALARMED==1 and ACW_ELAPSE_CTR3 >= ACW_REALARMTIME)
426 or (ACW_ALARM3_SNOOZING == 1 and ACW_ELAPSE_CTR3 >= TITAN_ACWOptions.snoozetime)) then
427 ACW_ALARM3_ALARMED=1;
428 TITAN_ACW_Alarm(TITAN_ACWOptions.alarm3text);
429 ACW_ELAPSE_CTR3 = 0;
430 ACW_ALARM3_SNOOZING = 0;
431 end
432 end
433  
434 if (ACW_ACKNOWLEDGE_ALARM3 == 1 and TITAN_ACWOptions.alarm3minute ~= minute) then
435 ACW_ACKNOWLEDGE_ALARM3 = 0;
436 end
437 end
438  
439 -- Check the time format option
440 if (TITAN_ACWOptions.timeformat == 24) then
441 TITAN_ACW_TIME_STR = format(TEXT(TIME_TWENTYFOURHOURS), hour, minute);
442 --InfoBarAlarmClockWranglerCenteredText:SetText(format(TEXT(TIME_TWENTYFOURHOURS), hour, minute));
443 else
444 local pm = 0;
445 if (hour >= 12) then
446 pm = 1;
447 end
448 if (hour > 12) then
449 hour = hour - 12;
450 end
451 if (hour == 0) then
452 hour = 12;
453 end
454  
455 if (pm == 0) then
456 TITAN_ACW_TIME_STR = format(TEXT(TIME_TWELVEHOURAM), hour, minute);
457 --InfoBarAlarmClockWranglerCenteredText:SetText(string.gsub(string.sub(format(TEXT(TIME_TWELVEHOURAM), hour, minute),1,5)," ","")..ACW_AM);
458 else
459 TITAN_ACW_TIME_STR = format(TEXT(TIME_TWELVEHOURPM), hour, minute);
460 --InfoBarAlarmClockWranglerCenteredText:SetText(string.gsub(string.sub(format(TEXT(TIME_TWELVEHOURPM), hour, minute),1,5)," ","")..ACW_PM);
461 end
462 end
463 end
464  
465 function TitanPanelACWButton_GetButtonText(id)
466 if (TITAN_ACW_OLD_CLOCK_FUNCTION == nil) then
467 TITAN_ACW_OLD_CLOCK_FUNCTION = TitanPanelClockButton_GetButtonText;
468 end
469  
470 if (TITAN_ACW_HIDE_CLOCK == 1) then
471 TitanPanelClockButton_GetButtonText = TitanPanelACWButton_Dummy;
472 elseif (TITAN_ACW_OLD_CLOCK_FUNCTION ~= nil) then
473 TitanPanelClockButton_GetButtonText = TITAN_ACW_OLD_CLOCK_FUNCTION;
474 end
475  
476 if (TITAN_ACWOptions.mode == TITAN_ACW_COMPACT_MODE) then
477 -- TitanPanelACWButton_SetCompactMode();
478 return "";
479 end
480  
481 --TitanPanelACWButton_SetNormalMode();
482 return TITAN_ACW_TIME_STR;
483 end
484  
485 function TitanPanelACWButton_GetTooltipText()
486 local statusStr1 = ACW_STATUS;
487 local statusStr2 = ACW_CURRENTLY_ALARMING;
488 local statusStr3 = ACW_CURRENTLY_SNOOZING;
489 local statusStr4 = ACW_ALARM_STATUS;
490 local statusStr5 = ACW_ALARM1..": ";
491 local statusStr5a = "";
492 local statusStr6 = ACW_ALARM2..": ";
493 local statusStr6a = "";
494 local statusStr7 = ACW_ALARM3..": ";
495 local statusStr7a = "";
496 local statusStr8 = ACW_SERVER_TIME_STATUS;
497 local statusStr9 = ACW_TIME;
498 local statusStr10 = ACW_TOD;
499  
500 local firstItem = true;
501  
502 if (ACW_ALARM1_ALARMED == 1) then
503 statusStr2 = statusStr2..TitanUtils_GetHighlightText(ACW_ALARM1);
504 firstItem = false;
505 end
506 if (ACW_ALARM2_ALARMED == 1) then
507 if (firstItem == false) then
508 statusStr2 = statusStr2..TitanUtils_GetHighlightText(", ");
509 end
510 statusStr2 = statusStr2..TitanUtils_GetHighlightText(ACW_ALARM2);
511 firstItem = false;
512 end
513 if (ACW_ALARM3_ALARMED == 1) then
514 if (firstItem == false) then
515 statusStr2 = statusStr2..TitanUtils_GetHighlightText(", ");
516 end
517 statusStr2 = statusStr2..TitanUtils_GetHighlightText(ACW_ALARM3);
518 firstItem = false;
519 end
520 if (firstItem == true) then
521 statusStr2 = statusStr2..TitanUtils_GetHighlightText(ACW_NONE);
522 end
523  
524  
525 firstItem = true;
526 if (ACW_ALARM1_SNOOZING == 1) then
527 statusStr3 = statusStr3..TitanUtils_GetHighlightText(ACW_ALARM1);
528 firstItem = false;
529 end
530 if (ACW_ALARM2_SNOOZING == 1) then
531 if (firstItem == false) then
532 statusStr3 = statusStr3..TitanUtils_GetHighlightText(", ");
533 end
534 statusStr3 = statusStr3..TitanUtils_GetHighlightText(ACW_ALARM2);
535 firstItem = false;
536 end
537 if (ACW_ALARM3_SNOOZING == 1) then
538 if (firstItem == false) then
539 statusStr3 = statusStr3..TitanUtils_GetHighlightText(", ");
540 end
541 statusStr3 = statusStr3..TitanUtils_GetHighlightText(ACW_ALARM3);
542 firstItem = false;
543 end
544 if (firstItem == true) then
545 statusStr3 = statusStr3..TitanUtils_GetHighlightText(ACW_NONE);
546 end
547  
548  
549 local meridian1 = "";
550 local meridian2 = "";
551 local meridian3 = "";
552 if (TITAN_ACWOptions.timeformat == 24) then
553 statusStr5a = statusStr5a..TitanUtils_GetHighlightText("("..TITAN_ACWOptions.alarm1hour..":");
554 statusStr6a = statusStr6a..TitanUtils_GetHighlightText("("..TITAN_ACWOptions.alarm2hour..":");
555 statusStr7a = statusStr7a..TitanUtils_GetHighlightText("("..TITAN_ACWOptions.alarm3hour..":");
556 else
557 local hour = TITAN_ACWOptions.alarm1hour;
558  
559 if (hour > 12) then
560 hour = hour -12;
561 meridian1 = ACW_PM;
562 elseif (hour >= 12) then
563 meridian1 = ACW_PM;
564 elseif (hour == 0) then
565 hour = 12;
566 meridian1 = ACW_AM;
567 else
568 meridian1 = ACW_AM;
569 end
570 statusStr5a = statusStr5a..TitanUtils_GetHighlightText("("..hour..":");
571  
572 hour = TITAN_ACWOptions.alarm2hour;
573  
574 if (hour > 12) then
575 hour = hour -12;
576 meridian2 = ACW_PM;
577 elseif (hour >= 12) then
578 meridian2 = ACW_PM;
579 elseif (hour == 0) then
580 hour = 12;
581 meridian2 = ACW_AM;
582 else
583 meridian2 = ACW_AM;
584 end
585 statusStr6a = statusStr6a..TitanUtils_GetHighlightText("("..hour..":");
586  
587 hour = TITAN_ACWOptions.alarm3hour;
588  
589 if (hour > 12) then
590 hour = hour -12;
591 meridian3 = ACW_PM;
592 elseif (hour >= 12) then
593 meridian3 = ACW_PM;
594 elseif (hour == 0) then
595 hour = 12;
596 meridian3 = ACW_AM;
597 else
598 meridian3 = ACW_AM;
599 end
600 statusStr7a = statusStr7a..TitanUtils_GetHighlightText("("..hour..":");
601 end
602  
603 local minuteStr = ""..TITAN_ACWOptions.alarm1minute;
604 if (TITAN_ACWOptions.alarm1minute < 10) then -- pad
605 minuteStr = "0"..minuteStr;
606 end
607  
608 local onStr;
609 if (TITAN_ACWOptions.alarm1on == 1) then
610 onStr = TitanUtils_GetGreenText(ACW_STR_ON);
611 else
612 onStr = TitanUtils_GetRedText(ACW_STR_OFF);
613 end
614  
615 statusStr5 = statusStr5..onStr;
616 statusStr5a = statusStr5a..TitanUtils_GetHighlightText(minuteStr..meridian1..")");
617  
618  
619 minuteStr = ""..TITAN_ACWOptions.alarm2minute;
620 if (TITAN_ACWOptions.alarm2minute < 10) then -- pad
621 minuteStr = "0"..minuteStr;
622 end
623 local onStr;
624 if (TITAN_ACWOptions.alarm2on == 1) then
625 onStr = TitanUtils_GetGreenText(ACW_STR_ON);
626 else
627 onStr = TitanUtils_GetRedText(ACW_STR_OFF);
628 end
629  
630 statusStr6 = statusStr6..onStr;
631 statusStr6a = statusStr6a..TitanUtils_GetHighlightText(minuteStr..meridian2..")");
632  
633  
634 minuteStr = ""..TITAN_ACWOptions.alarm3minute;
635 if (TITAN_ACWOptions.alarm3minute < 10) then -- pad
636 minuteStr = "0"..minuteStr;
637 end
638  
639 local onStr;
640 if (TITAN_ACWOptions.alarm3on == 1) then
641 onStr = TitanUtils_GetGreenText(ACW_STR_ON);
642 else
643 onStr = TitanUtils_GetRedText(ACW_STR_OFF);
644 end
645  
646 statusStr7 = statusStr7..onStr;
647 statusStr7a = statusStr7a..TitanUtils_GetHighlightText(minuteStr..meridian3..")");
648  
649 -- Check the time format option
650 local hour, minute = GetGameTime();
651 local time = (hour * 60) + minute;
652  
653 if(time < GAMETIME_DAWN or time >= GAMETIME_DUSK) then -- night
654 statusStr10 = statusStr10..TitanUtils_GetHighlightText(ACW_STR_NIGHT);
655 else
656 statusStr10 = statusStr10..TitanUtils_GetHighlightText(ACW_STR_DAY);
657 end
658  
659  
660 if (TITAN_ACWOptions.timeformat == 24) then
661 statusStr9 = statusStr9..TitanUtils_GetHighlightText("("..format(TEXT(TIME_TWENTYFOURHOURS), hour, minute)..")");
662 else
663 local pm = 0;
664 if (hour >= 12) then
665 pm = 1;
666 end
667 if (hour > 12) then
668 hour = hour - 12;
669 end
670 if (hour == 0) then
671 hour = 12;
672 end
673 if (pm == 0) then
674 statusStr9 = statusStr9..TitanUtils_GetHighlightText("("..string.gsub(string.sub(format(TEXT(TIME_TWELVEHOURAM), hour, minute),1,5)," ","").." AM"..")");
675 else
676 statusStr9 = statusStr9..TitanUtils_GetHighlightText("("..string.gsub(string.sub(format(TEXT(TIME_TWELVEHOURPM), hour, minute),1,5)," ","").." PM"..")");
677 end
678 end
679  
680 return statusStr2.."\n"..
681 statusStr3.."\n\n"..
682 TitanUtils_GetHighlightText(statusStr4).."\n"..
683 statusStr5.." "..statusStr5a.."\n"..
684 statusStr6.." "..statusStr6a.."\n"..
685 statusStr7.." "..statusStr7a.."\n\n"..
686 TitanUtils_GetHighlightText(statusStr8).."\n"..
687 statusStr9.."\n"..
688 statusStr10;
689 end
690  
691  
692 function TITAN_ACW_ButtonTooltips()
693 GameTooltip:SetOwner(this, "ANCHOR_NONE");
694  
695 local x,y = this:GetCenter();
696 local xPos = 0;
697 local yPos = 0;
698 local anchor,relative,parent,text;
699 if( y < GetScreenHeight() / 2 ) then
700 anchor = "BOTTOM";
701 relative = "TOP";
702 else
703 anchor = "TOP";
704 relative = "BOTTOM";
705 yPos = yPos - 15;
706 end
707  
708 if( x < GetScreenWidth() / 2 ) then
709 anchor = anchor.."LEFT";
710 relative = relative.."LEFT";
711 else
712 anchor = anchor.."RIGHT";
713 relative = relative.."RIGHT";
714 end
715  
716 if (this == TitanPanelSnoozeButton) then
717 parent = "TitanPanelSnoozeButton";
718 text = ACW_SNOOZE_BUTTON;
719 else
720 parent = "TitanPanelAcknowledgeButton";
721 text = ACW_ACKNOWLEDGE_ALARMS_BUTTON;
722 end
723  
724 GameTooltip:SetPoint(anchor, parent, relative, xPos,yPos );
725 GameTooltip:SetText(text);
726  
727 --GameTooltip:Show();
728 end