Nenue@0: --- ${PACKAGE_NAME} Nenue@0: -- @file-author@ Nenue@0: -- @project-revision@ @project-hash@ Nenue@0: -- @file-revision@ @file-hash@ Nenue@0: -- Created: 3/29/2016 7:07 PM Nenue@0: local B = select(2,...).frame Nenue@0: local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') Nenue@0: local print = B.print('Objectives') Nenue@0: local Tracker, AutoQuest, Quest, Cheevs = mod.Tracker, mod.AutoQuest, mod.Quest, mod.Cheevs Nenue@6: local itemButtonSize, itemButtonSpacing = 36, 1 Nenue@7: local tremove, tremovebyval = table.remove, table.removebyval Nenue@0: Nenue@0: -------------------------------------------------------------------- Nenue@13: --- Functions responsible for: Nenue@13: --- - UI interactions that propagate to the BlizzardUI (sending RemoveQuestWatch() on remove quest action) Nenue@13: --- - Nenue@0: -------------------------------------------------------------------- Nenue@0: Nenue@0: Tracker.Select = function(self) end Nenue@0: Tracker.Open = function(self) end Nenue@0: Tracker.Remove = function(self) end Nenue@0: Tracker.Report = function(self) Nenue@0: print('Stats:', self.numWatched,'items tracked,', self.numBlocks,'blocks assigned.') Nenue@0: end Nenue@0: Nenue@0: Tracker.OnMouseUp = function(self, button) Nenue@14: print(self.handler.name, self.mainStyle, self.subStyle) Nenue@9: if button == 'LeftButton' then Nenue@9: if IsModifiedClick("CHATLINK") and ChatEdit_GetActiveWindow() then Nenue@7: self:Link() Nenue@9: elseif IsModifiedClick("QUESTWATCHTOGGLE") then Nenue@1: self:Remove() Nenue@7: else Nenue@7: self:Select() Nenue@1: end Nenue@0: elseif button == 'RightButton' then Nenue@0: self:Open() Nenue@0: end Nenue@1: self.initialButton = nil Nenue@7: self.modChatLink = nil Nenue@7: self.modQuestWatch = nil Nenue@14: self:SetStyle('TrackerBlock', self.handler.name, self.mainStyle, self.subStyle) Nenue@8: print('|cFFFF8800'..tostring(self:GetName())..':MouseUp()|r') Nenue@0: end Nenue@0: Nenue@0: Tracker.OnMouseDown = function(self, button) Nenue@14: self:SetStyle('TrackerBlock', self.handler.name, 'MouseDown') Nenue@8: print(IsModifiedClick("CHATLINK"), IsModifiedClick("QUESTWATCHTOGGLE")) Nenue@0: print(self.info.title) Nenue@0: end Nenue@0: Nenue@16: AutoQuest.Select = function(self) Nenue@16: if self.info.popupType == 'OFFER' then Nenue@16: ShowQuestOffer(self.info.questIndex) Nenue@16: else Nenue@16: ShowQuestComplete(self.info.questIndex) Nenue@16: end Nenue@16: RemoveAutoQuestPopUp(self.info.questID) Nenue@16: end Nenue@16: Nenue@16: Quest.Select = function(self) -- remote quests will get listed here as well, so their turn-in data needs to be checked Nenue@16: if AutoQuest.Info[self.info.questID] then Nenue@16: AutoQuest.Select(self) Nenue@16: else Nenue@16: SetSuperTrackedQuestID(self.info.questID) Nenue@16: end Nenue@7: mod.UpdateWrapper() Nenue@7: end Nenue@16: Nenue@7: Quest.Link = function(self) Nenue@7: local questLink = GetQuestLink(block.questLogIndex); Nenue@7: if ( questLink ) then Nenue@7: ChatEdit_InsertLink(questLink); Nenue@7: end Nenue@0: end Nenue@0: Quest.Open = function(self) Nenue@1: QuestMapFrame_OpenToQuestDetails(self.info.questID) Nenue@1: end Nenue@1: Nenue@1: Quest.Remove = function(self) Nenue@5: print('removing', self.info.questLogIndex, 'from watcher') Nenue@5: RemoveQuestWatch(self.info.questLogIndex) Nenue@0: end Nenue@0: Nenue@0: Nenue@0: ----------------------------- Nenue@0: --- CHEEVS Nenue@0: Cheevs.Select = function(self) Nenue@13: self:SetStyle('TrackerBlock', self.info.type, 'Normal') Nenue@0: end Nenue@8: Cheevs.Remove = function(self) Nenue@8: RemoveTrackedAchievement(self.info.cheevID) Nenue@8: end Nenue@9: Cheevs.OnMouseUp = function(self, button) Nenue@9: Tracker.OnMouseUp(self, button) Nenue@8: end Nenue@7: Cheevs.Link = function(self) Nenue@8: local achievementLink = GetAchievementLink(self.info.cheevID); Nenue@8: if ( achievementLink ) then Nenue@8: ChatEdit_InsertLink(achievementLink); Nenue@8: end Nenue@7: end Nenue@0: Nenue@0: Cheevs.Open = function(self) Nenue@3: if ( not AchievementFrame ) then Nenue@3: AchievementFrame_LoadUI(); Nenue@3: end Nenue@3: if ( not AchievementFrame:IsShown() ) then Nenue@3: AchievementFrame_ToggleAchievementFrame(); Nenue@3: end Nenue@3: AchievementFrame_SelectAchievement(self.info.cheevID); Nenue@0: end Nenue@0: