comparison ObjectiveTracker/ObjectiveUI.lua @ 23:e837384ac363

Separating objective tracker module
author Nenue
date Sun, 10 Apr 2016 04:35:32 -0400
parents ObjectiveUI.lua@9b3fa734abff
children 4b3da1b221de
comparison
equal deleted inserted replaced
22:9b3fa734abff 23:e837384ac363
1 --- ${PACKAGE_NAME}
2 -- @file-author@
3 -- @project-revision@ @project-hash@
4 -- @file-revision@ @file-hash@
5 -- Created: 3/29/2016 7:07 PM
6 local B = select(2,...).frame
7 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
8 local print = B.print('Objectives')
9 local Default, AutoQuest, Quest, Cheevs = mod.DefaultHandler, mod.AutoQuest, mod.Quest, mod.Cheevs
10 local itemButtonSize, itemButtonSpacing = 36, 1
11 local tremove, tremovebyval = table.remove, table.removebyval
12
13 --------------------------------------------------------------------
14 --- Functions responsible for:
15 --- - UI interactions that propagate to the BlizzardUI (sending RemoveQuestWatch() on remove quest action)
16 --- -
17 --------------------------------------------------------------------
18
19 Default.Select = function(self) end
20 Default.Open = function(self) end
21 Default.Remove = function(self) end
22 Default.Report = function(self)
23 print('Stats:', self.numWatched,'items tracked,', self.numBlocks,'blocks assigned.')
24 end
25
26 Default.OnMouseUp = function(self, button)
27 print(self.handler.name, self.mainStyle, self.subStyle)
28 if button == 'LeftButton' then
29 if IsModifiedClick("CHATLINK") and ChatEdit_GetActiveWindow() then
30 self:Link()
31 elseif IsModifiedClick("QUESTWATCHTOGGLE") then
32 self:Remove()
33 else
34 self:Select()
35 end
36 elseif button == 'RightButton' then
37 self:Open()
38 end
39 self.initialButton = nil
40 self.modChatLink = nil
41 self.modQuestWatch = nil
42 mod:Update(self.handler.updateReasonModule)
43 print('|cFFFF8800'..tostring(self:GetName())..':MouseUp()|r')
44 end
45
46 Default.OnMouseDown = function(self, button)
47 print(IsModifiedClick("CHATLINK"), IsModifiedClick("QUESTWATCHTOGGLE"))
48 print(self.info.title)
49 end
50
51
52 AutoQuest.Select = function(self)
53 if self.info.popupType == 'OFFER' then
54 ShowQuestOffer(self.info.questIndex)
55 else
56 ShowQuestComplete(self.info.questIndex)
57 end
58 RemoveAutoQuestPopUp(self.info.questID)
59 end
60
61 Quest.Select = function(self)
62 if self.info.isAutoComplete and self.info.isComplete then
63 ShowQuestComplete(self.info.questLogIndex)
64 else
65 SetSuperTrackedQuestID(self.info.questID)
66 end
67 end
68
69 Quest.Link = function(self)
70 local questLink = GetQuestLink(block.questLogIndex);
71 if ( questLink ) then
72 ChatEdit_InsertLink(questLink);
73 end
74 end
75 Quest.Open = function(self)
76 QuestMapFrame_OpenToQuestDetails(self.info.questID)
77 end
78
79 Quest.Remove = function(self)
80 print('removing', self.info.questLogIndex, 'from watcher')
81 RemoveQuestWatch(self.info.questLogIndex)
82 end
83
84
85 -----------------------------
86 --- CHEEVS
87 Cheevs.Select = function(self)
88 --mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT)
89 end
90 Cheevs.Remove = function(self)
91 RemoveTrackedAchievement(self.info.cheevID)
92 end
93 Cheevs.OnMouseUp = function(self, button)
94 Default.OnMouseUp(self, button)
95 end
96 Cheevs.Link = function(self)
97 local achievementLink = GetAchievementLink(self.info.cheevID);
98 if ( achievementLink ) then
99 ChatEdit_InsertLink(achievementLink);
100 end
101 end
102
103 Cheevs.Open = function(self)
104 if ( not AchievementFrame ) then
105 AchievementFrame_LoadUI();
106 end
107 if ( not AchievementFrame:IsShown() ) then
108 AchievementFrame_ToggleAchievementFrame();
109 end
110 AchievementFrame_SelectAchievement(self.info.cheevID);
111 end
112
113 local Bonus = mod.Bonus
114 Bonus.Select = function(self, questID)
115 Bonus:OnTurnIn(self.info.questID, 0, 30800)
116 end
117 Bonus.Remove = function(self, questID)
118 end