vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 TITAN_ZONE_SPEED_ID = "ZoneSpeed";
2 TITAN_ZONE_SPEED_FREQUENCY = 1;
3  
4 local ZoneSpeed_LastZone = nil;
5  
6 function TitanPanelZoneSpeedButton_OnLoad()
7 this.registry = {
8 id = TITAN_ZONE_SPEED_ID,
9 builtIn = 1,
10 version = TITAN_VERSION,
11 menuText = TITAN_ZONE_SPEED_MENU_TEXT,
12 buttonTextFunction = "TitanPanelZoneSpeedButton_GetButtonText",
13 tooltipTitle = TITAN_ZONE_SPEED_MENU_TEXT,
14 tooltipTextFunction = "TitanPanelZoneSpeedButton_GetTooltipText",
15 frequency = TITAN_ZONE_SPEED_FREQUENCY,
16 icon = TITAN_ARTWORK_PATH.."TitanThrown",
17 iconWidth = 16,
18 savedVariables = {
19 ShowIcon = 1,
20 ShowLabelText = 1,
21 ShowColoredText = 1,
22 ShowLastZone = 1,
23 LastZone = 0
24 }
25 };
26  
27 this:RegisterEvent("VARIABLES_LOADED");
28 end
29  
30 function TitanPanelZoneSpeedButton_GetButtonText(id)
31 local retstr = "";
32  
33 if (TitanGetVar(TITAN_ZONE_SPEED_ID, "ShowLabelText")) then
34 retstr = TITAN_ZONE_SPEED_MENU_TEXT;
35 if TitanGetVar(TITAN_ZONE_SPEED_ID, "ShowLastZone") then
36 retstr = retstr .. ": ";
37 end
38 end
39  
40 if TitanGetVar(TITAN_ZONE_SPEED_ID,"LastZone") == nil then
41 TitanSetVar(TITAN_ZONE_SPEED_ID,"LastZone", "<none>")
42 end
43 if (TitanGetVar(TITAN_ZONE_SPEED_ID, "ShowColoredText")) then
44 retstr = retstr .. TitanUtils_GetGreenText(TitanGetVar(TITAN_ZONE_SPEED_ID,"LastZone"));
45 else
46 retstr = retstr .. TitanUtils_GetNormalText(TitanGetVar(TITAN_ZONE_SPEED_ID,"LastZone"));
47 end
48  
49 return retstr
50 end
51  
52 function TitanPanelZoneSpeedButton_GetTooltipText()
53 local retstr = "";
54 retstr = retstr .. TitanUtils_GetGreenText(TITAN_ZONE_SPEED_LASTZONE .. ": " .. TitanGetVar(TITAN_ZONE_SPEED_ID,"LastZone"));
55 return retstr;
56 end
57  
58 function TitanPanelRightClickMenu_PrepareZoneSpeedMenu()
59 TitanPanelRightClickMenu_AddTitle(TITAN_ZONE_SPEED_MENU_TEXT);
60 TitanPanelRightClickMenu_AddToggleIcon(TITAN_ZONE_SPEED_ID);
61 TitanPanelRightClickMenu_AddToggleLabelText(TITAN_ZONE_SPEED_ID);
62 TitanPanelRightClickMenu_AddToggleColoredText(TITAN_ZONE_SPEED_ID);
63 TitanPanelRightClickMenu_AddToggleColoredText(TITAN_ZONE_SPEED_ID);
64  
65 TitanPanelRightClickMenu_AddSpacer();
66 TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, TITAN_ZONE_SPEED_ID, TITAN_PANEL_MENU_FUNC_HIDE);
67 end
68  
69 function TitanPanelZoneSpeedButton_OnEvent()
70 if(event == "VARIABLES_LOADED") then
71 this:RegisterEvent("PLAYER_ENTERING_WORLD");
72 this:RegisterEvent("PLAYER_LEAVING_WORLD");
73 end
74 if(event == "PLAYER_ENTERING_WORLD") then
75 if(not ZoneSpeed_LastZone) then
76 return;
77 end
78  
79 local ZoneTime = string.format("%.2f", GetTime() - ZoneSpeed_LastZone) .. "s"
80 TitanSetVar(TITAN_ZONE_SPEED_ID, "LastZone", ZoneTime);
81 TitanPanelZoneSpeed_RestoreAllEvents();
82 end
83 if(event == "PLAYER_LEAVING_WORLD") then
84 ZoneSpeed_LastZone = GetTime();
85 TitanPanelZoneSpeed_TurnOffUnwantedEvents();
86 end
87 end
88  
89 function TitanPanelZoneSpeed_TurnOffUnwantedEvents()
90 local f = EnumerateFrames();
91 local OnEvent;
92 while f do
93 OnEvent = f:GetScript("OnEvent");
94 if(OnEvent) then
95 f.ZoneSpeed_OnEvent = OnEvent;
96 f:SetScript("OnEvent", function()
97 if(event == "PLAYER_ENTERING_WORLD" or event == "PLAYER_LOGOUT" or event == "PLAYER_TARGET_CHANGED" or string.sub(event,0,4) == "CHAT") then
98 this.ZoneSpeed_OnEvent();
99 end
100 end
101 );
102 end
103 f = EnumerateFrames(f);
104 end
105 end
106  
107 function TitanPanelZoneSpeed_RestoreAllEvents()
108 local f = EnumerateFrames();
109 while f do
110 if(f.ZoneSpeed_OnEvent) then
111 f:SetScript("OnEvent",f.ZoneSpeed_OnEvent);
112 f.ZoneSpeed_OnEvent = nil;
113 end
114 f = EnumerateFrames(f);
115 end
116 end
117