annotate ObjectiveTracker/ObjectiveUI.lua @ 25:4b3da1b221de v1.0-beta

- distinction between all possible types of values for the 'isComplete' field - style polish applied to title headers - clickable regions altered to somewhat match those of the blizzard objectives tracker, for more world frame space and quicker user familiarity
author Nenue
date Wed, 13 Apr 2016 11:20:09 -0400
parents e837384ac363
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@25 27
Nenue@14 28 print(self.handler.name, self.mainStyle, self.subStyle)
Nenue@9 29 if button == 'LeftButton' then
Nenue@9 30 if IsModifiedClick("CHATLINK") and ChatEdit_GetActiveWindow() then
Nenue@7 31 self:Link()
Nenue@9 32 elseif IsModifiedClick("QUESTWATCHTOGGLE") then
Nenue@1 33 self:Remove()
Nenue@7 34 else
Nenue@7 35 self:Select()
Nenue@1 36 end
Nenue@0 37 elseif button == 'RightButton' then
Nenue@0 38 self:Open()
Nenue@0 39 end
Nenue@1 40 self.initialButton = nil
Nenue@7 41 self.modChatLink = nil
Nenue@7 42 self.modQuestWatch = nil
Nenue@21 43 mod:Update(self.handler.updateReasonModule)
Nenue@8 44 print('|cFFFF8800'..tostring(self:GetName())..':MouseUp()|r')
Nenue@0 45 end
Nenue@0 46
Nenue@21 47 Default.OnMouseDown = function(self, button)
Nenue@25 48
Nenue@8 49 print(IsModifiedClick("CHATLINK"), IsModifiedClick("QUESTWATCHTOGGLE"))
Nenue@0 50 print(self.info.title)
Nenue@0 51 end
Nenue@0 52
Nenue@25 53 AutoQuest.Select = function(self)
Nenue@19 54
Nenue@16 55 if self.info.popupType == 'OFFER' then
Nenue@16 56 ShowQuestOffer(self.info.questIndex)
Nenue@16 57 else
Nenue@16 58 ShowQuestComplete(self.info.questIndex)
Nenue@16 59 end
Nenue@16 60 RemoveAutoQuestPopUp(self.info.questID)
Nenue@16 61 end
Nenue@16 62
Nenue@19 63 Quest.Select = function(self)
Nenue@25 64
Nenue@19 65 if self.info.isAutoComplete and self.info.isComplete then
Nenue@19 66 ShowQuestComplete(self.info.questLogIndex)
Nenue@16 67 else
Nenue@16 68 SetSuperTrackedQuestID(self.info.questID)
Nenue@16 69 end
Nenue@7 70 end
Nenue@16 71
Nenue@7 72 Quest.Link = function(self)
Nenue@25 73
Nenue@25 74 local questLink = GetQuestLink(self.info.questLogIndex);
Nenue@7 75 if ( questLink ) then
Nenue@7 76 ChatEdit_InsertLink(questLink);
Nenue@7 77 end
Nenue@0 78 end
Nenue@25 79
Nenue@25 80 AutoQuest.Link = Quest.Link
Nenue@25 81
Nenue@0 82 Quest.Open = function(self)
Nenue@25 83
Nenue@1 84 QuestMapFrame_OpenToQuestDetails(self.info.questID)
Nenue@1 85 end
Nenue@1 86
Nenue@1 87 Quest.Remove = function(self)
Nenue@25 88
Nenue@5 89 print('removing', self.info.questLogIndex, 'from watcher')
Nenue@5 90 RemoveQuestWatch(self.info.questLogIndex)
Nenue@0 91 end
Nenue@0 92
Nenue@0 93
Nenue@0 94 -----------------------------
Nenue@0 95 --- CHEEVS
Nenue@0 96 Cheevs.Select = function(self)
Nenue@21 97 --mod:Update(OBJECTIVE_TRACKER_UPDATE_MODULE_ACHIEVEMENT)
Nenue@0 98 end
Nenue@8 99 Cheevs.Remove = function(self)
Nenue@25 100
Nenue@8 101 RemoveTrackedAchievement(self.info.cheevID)
Nenue@8 102 end
Nenue@9 103 Cheevs.OnMouseUp = function(self, button)
Nenue@25 104
Nenue@21 105 Default.OnMouseUp(self, button)
Nenue@8 106 end
Nenue@7 107 Cheevs.Link = function(self)
Nenue@25 108
Nenue@8 109 local achievementLink = GetAchievementLink(self.info.cheevID);
Nenue@8 110 if ( achievementLink ) then
Nenue@8 111 ChatEdit_InsertLink(achievementLink);
Nenue@8 112 end
Nenue@7 113 end
Nenue@0 114
Nenue@0 115 Cheevs.Open = function(self)
Nenue@25 116
Nenue@3 117 if ( not AchievementFrame ) then
Nenue@3 118 AchievementFrame_LoadUI();
Nenue@3 119 end
Nenue@3 120 if ( not AchievementFrame:IsShown() ) then
Nenue@3 121 AchievementFrame_ToggleAchievementFrame();
Nenue@3 122 end
Nenue@3 123 AchievementFrame_SelectAchievement(self.info.cheevID);
Nenue@0 124 end
Nenue@0 125
Nenue@21 126 local Bonus = mod.Bonus
Nenue@25 127 Bonus.Select = function(self)
Nenue@25 128
Nenue@25 129 Bonus:OnTurnIn(self.info.questID)
Nenue@22 130 end
Nenue@25 131 Bonus.Remove = function(self)
Nenue@25 132
Nenue@21 133 end