Mercurial > wow > buffalo2
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ObjectiveTracker/ObjectiveUI.lua Sun Apr 10 04:35:32 2016 -0400 @@ -0,0 +1,118 @@ +--- ${PACKAGE_NAME} +-- @file-author@ +-- @project-revision@ @project-hash@ +-- @file-revision@ @file-hash@ +-- Created: 3/29/2016 7:07 PM +local B = select(2,...).frame +local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') +local print = B.print('Objectives') +local Default, AutoQuest, Quest, Cheevs = mod.DefaultHandler, mod.AutoQuest, mod.Quest, mod.Cheevs +local itemButtonSize, itemButtonSpacing = 36, 1 +local tremove, tremovebyval = table.remove, table.removebyval + +-------------------------------------------------------------------- +--- Functions responsible for: +--- - UI interactions that propagate to the BlizzardUI (sending RemoveQuestWatch() on remove quest action) +--- - +-------------------------------------------------------------------- + +Default.Select = function(self) end +Default.Open = function(self) end +Default.Remove = function(self) end +Default.Report = function(self) + print('Stats:', self.numWatched,'items tracked,', self.numBlocks,'blocks assigned.') +end + +Default.OnMouseUp = function(self, button) + print(self.handler.name, self.mainStyle, self.subStyle) + if button == 'LeftButton' then + if IsModifiedClick("CHATLINK") and ChatEdit_GetActiveWindow() then + self:Link() + elseif IsModifiedClick("QUESTWATCHTOGGLE") then + self:Remove() + else + self:Select() + end + elseif button == 'RightButton' then + self:Open() + end + self.initialButton = nil + self.modChatLink = nil + self.modQuestWatch = nil + mod:Update(self.handler.updateReasonModule) + print('|cFFFF8800'..tostring(self:GetName())..':MouseUp()|r') +end + +Default.OnMouseDown = function(self, button) + print(IsModifiedClick("CHATLINK"), IsModifiedClick("QUESTWATCHTOGGLE")) + print(self.info.title) +end + + +AutoQuest.Select = function(self) + if self.info.popupType == 'OFFER' then + ShowQuestOffer(self.info.questIndex) + else + ShowQuestComplete(self.info.questIndex) + end + RemoveAutoQuestPopUp(self.info.questID) +end + +Quest.Select = function(self) + if self.info.isAutoComplete and self.info.isComplete then + ShowQuestComplete(self.info.questLogIndex) + else + SetSuperTrackedQuestID(self.info.questID) + end +end + +Quest.Link = function(self) + local questLink = GetQuestLink(block.questLogIndex); + if ( questLink ) then + ChatEdit_InsertLink(questLink); + end +end +Quest.Open = function(self) + QuestMapFrame_OpenToQuestDetails(self.info.questID) +end + +Quest.Remove = function(self) + print('removing', self.info.questLogIndex, 'from watcher') + RemoveQuestWatch(self.info.questLogIndex) +end + + +----------------------------- +--- CHEEVS +Cheevs.Select = function(self) + --mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT) +end +Cheevs.Remove = function(self) + RemoveTrackedAchievement(self.info.cheevID) +end +Cheevs.OnMouseUp = function(self, button) + Default.OnMouseUp(self, button) +end +Cheevs.Link = function(self) + local achievementLink = GetAchievementLink(self.info.cheevID); + if ( achievementLink ) then + ChatEdit_InsertLink(achievementLink); + end +end + +Cheevs.Open = function(self) + if ( not AchievementFrame ) then + AchievementFrame_LoadUI(); + end + if ( not AchievementFrame:IsShown() ) then + AchievementFrame_ToggleAchievementFrame(); + end + AchievementFrame_SelectAchievement(self.info.cheevID); +end + +local Bonus = mod.Bonus +Bonus.Select = function(self, questID) + Bonus:OnTurnIn(self.info.questID, 0, 30800) +end +Bonus.Remove = function(self, questID) +end \ No newline at end of file