annotate ObjectiveUI.lua @ 22:9b3fa734abff

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