# HG changeset patch
# User Nenue
# Date 1460560809 14400
# Node ID 4b3da1b221dec4ef3b9a758ed8abdee2156eb34c
# Parent 66b927b467767e83bdaad1e1b3edb541838a9cb7
- 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
diff -r 66b927b46776 -r 4b3da1b221de ObjectiveTracker/ObjectiveCore.lua
--- a/ObjectiveTracker/ObjectiveCore.lua Mon Apr 11 09:07:40 2016 -0400
+++ b/ObjectiveTracker/ObjectiveCore.lua Wed Apr 13 11:20:09 2016 -0400
@@ -192,6 +192,7 @@
self:Update(reason)
end
local Handler_Initialize = function (self, name, index)
+ local c = T.Conf.Wrapper
print('Initializing |cFF00FFFF'..name..'|r module...')
local handler = setmetatable(T[name] or {}, {
@@ -232,7 +233,7 @@
local handler = T[name]
local frame = CreateFrame('Frame', trackerName, _G.VeneerObjectiveScroll, 'VeneerTrackerTemplate')
frame.title:SetText(handler.displayName)
- T.SetBlockStyle(frame, 'Tracker', 'Normal')
+ frame:SetWidth(c.Width)
handler.frame = frame
handler.trackerName = trackerName
handler.lines = {}
@@ -374,7 +375,8 @@
end
end
T.animateReasons = 0
-T.SetAnimate = function(animate, reason)
+T.SetAnimate = function(reason)
+ print('comparing', T.animateReasons, reason)
if animate then
if band(T.animateReasons, reason) == 0 then
T.animateReasons = T.animateReasons + reason
diff -r 66b927b46776 -r 4b3da1b221de ObjectiveTracker/ObjectiveFrame.lua
--- a/ObjectiveTracker/ObjectiveFrame.lua Mon Apr 11 09:07:40 2016 -0400
+++ b/ObjectiveTracker/ObjectiveFrame.lua Wed Apr 13 11:20:09 2016 -0400
@@ -34,19 +34,28 @@
local currentBlock
--- todo: source these from config
local itemButtonSize, itemButtonSpacing = 36, 1
-local titleFont, textFont = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Regular.ttf]]
-local titleSize, textSize = 16, 16
-local titlebg, textbg = {'HORIZONTAL', 1, 0, .7, .25, 1, 0, .7, .125}, {'HORIZONTAL', 0, 0, 0, 0.4, 0, 0, 0, 0 }
-local titlebg_daily, textbg_daily = {'HORIZONTAL', 0, .7, 1, .25, 0, 1, .7, .125}, {'HORIZONTAL', 0, .7, 1, .1, 0, 1, .7, .075 }
-local textbg_account,titlebg_account = {'HORIZONTAL', 0, .45, 1, .25, 0, .45, 1, .125}, {'HORIZONTAL', 0, .45, 1, 0.4, 0, .41, 1, .085 }
+
+local headerHeight, headerColor, headerSpacing = 16, {1,1,1,1}, 2
+local headerbg = {'VERTICAL', 1, 1, 0.5, 0.5, 1, 1, 0.5, 0}
+local headerFont, headerSize, headerOutline = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 14, 'OUTLINE'
+
+local titlebg = {'HORIZONTAL', 1, 0, .7, .25, 1, 0, .7, .125}
+local titlebg_daily = {'HORIZONTAL', 0, .7, 1, .25, 0, 1, .7, .125 }
+local titlebg_account = {'HORIZONTAL', 0, .45, 1, .25, 0, .45, 1, .125}
+local titleFont, titleSize, titleOutline = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 16, 'OUTLINE'
+
+local textbg = {'HORIZONTAL', 0, 0, 0, 0.4, 0, 0, 0, 0 }
+local textbg_daily = {'HORIZONTAL', 0, .7, 1, .1, 0, 1, .7, .075 }
+local textbg_account = {'HORIZONTAL', 0, .45, 1, 0.4, 0, .41, 1, .085 }
+local textFont, textSize, textOutline = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Regular.ttf]], 16, 'OUTLINE'
+
+
local selectionbg = {'HORIZONTAL', 1, 1, 1, 0, 1, 1, 1, 0.225}
-local titleOutline, textOutline = "OUTLINE", "OUTLINE"
local titleSpacing, textSpacing, blockSpacing = 3, 3, 1
local titleIndent, textIndent,selectionIndent = 2, 5, 50
+
local wrapperMaxWidth, wrapperMaxHeight = 270, 490 -- these are the hard bounds, actual *Height variables are changed
local wrapperHeadFont, wrapperHeadSize, wrapperHeadOutline = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 16, 'NONE'
-local headerFont, headerSize, headerHeight = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 18, 24
-local headerOutline, headerColor, headerSpacing = 'OUTLINE', {1,1,1,1}, 2
local wrapperPosition = {'RIGHT', UIParent, 'RIGHT', -84, 0 }
local rewardSize = 32
local oprint = B.print('Objectives')
@@ -177,8 +186,8 @@
block.Open = handler.Open
block.Remove = handler.Remove
block.Link = handler.Link
- block:SetScript('OnMouseUp', handler.OnMouseUp)
- block:SetScript('OnMouseDown', handler.OnMouseDown)
+ block.clickZone:SetScript('OnMouseUp', function(self, ...) handler.OnMouseUp(block, ...) end)
+ block.clickZone:SetScript('OnMouseDown', function(self, ...) handler.OnMouseDown(block, ...) end)
block.attachmentHeight = 0
block:ClearAllPoints()
@@ -230,11 +239,6 @@
local completionScore, completionMax = 0, 0
local displayObjectiveHeader = false
- if info.description and #info.description >= 1 then
- print(' |cFF00FFFF header line:|r', info.description)
- block.status:SetText(info.description)
- displayObjectiveHeader = true
- end
--- The first line is going to be used no matter what, so it is hard-pulled.
-- It also ensures that we're in the right position for cleaning up the leftover lines.
@@ -243,13 +247,27 @@
block.numLines = 0
block.attachmentHeight = 0
- if info.isComplete then
- print(' overriding line #1 for a completed block')
+
+ if info.description and #info.description >= 1 then
+ print(' |cFF00FFFF header line:|r', info.description)
+ line.status:SetText(info.description)
+ line.height = floor(line.status:GetStringHeight()+.5) + textSpacing
if line.widget then
line.widget:Hide()
end
+ T.AddLine(block, line)
+
+ lineIndex = lineIndex + 1
+ line = T.GetLine(handler, block, lineIndex)
+ end
+
+ if (info.isComplete == true or info.isComplete == nil) and info.completionText then
+ print(' overriding line #1 for completion text:', info.completionText)
line.status:SetText(info.completionText)
- line.height = floor(line.status:GetHeight()+.5) + textSpacing
+ line.height = floor(line.status:GetStringHeight()+.5) + textSpacing
+ if line.widget then
+ line.widget:Hide()
+ end
T.AddLine(block, line)
else
if info.objectives then
@@ -498,7 +516,12 @@
local print = tprint
local tracker = self.frame
local blockIndex = 0
- local trackerHeight = floor(tracker.titlebg:GetHeight()+.5)
+ local trackerHeight = headerHeight
+
+ tracker.title:SetFont(headerFont, headerSize, headerOutline)
+ tracker.titlebg:SetHeight(headerHeight)
+ tracker.title:SetTextColor(unpack(headerColor))
+ --tracker.titlebg:SetGradientAlpha(unpack(headerbg))
self.currentAnchor = tracker.titlebg
local numWatched = self:GetNumWatched()
@@ -543,13 +566,15 @@
tracker.previousHeight = tracker.height
if numBlocks >= 1 then
previousBlock = nil
-
+ if tracker.isEmpty then
+ tracker.headerFade:Play()
+ tracker.isEmpty = nil
+ end
tracker.height = trackerHeight
tracker:SetHeight(tracker.height)
tracker:Show()
-
-
else
+ tracker.isEmpty = true
tracker.height = 0
tracker:Hide()
end
diff -r 66b927b46776 -r 4b3da1b221de ObjectiveTracker/ObjectiveInfo.lua
--- a/ObjectiveTracker/ObjectiveInfo.lua Mon Apr 11 09:07:40 2016 -0400
+++ b/ObjectiveTracker/ObjectiveInfo.lua Wed Apr 13 11:20:09 2016 -0400
@@ -89,7 +89,7 @@
local questID, type = GetAutoQuestPopUp(popupIndex)
local questLogIndex = GetQuestLogIndexByID(questID)
- local title, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questID, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex)
+ local title, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questID, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questLogIndex)
self.Info[questID] = self.Info[questID] or {}
local popup = self.Info[questID]
@@ -265,12 +265,29 @@
--- info cleanup done when turn-ins are detected
Bonus.OnTurnIn = function(self, questID, xp, money)
+
+ if #self.info.rewardInfo >= 1 then
+ for i, reward in ipairs(self.info.rewardInfo) do
+ --[[
+ type = 'item',
+ index = i ,
+ name = name,
+ texture = texture,
+ count = count,
+ quality = quality,
+ isUsable = isUsable
+ ]]
+ print(' reward ', i, ' ', reward.type, reward.name, reward.count)
+
+ end
+ end
+
print('|cFFFF8800'..self.name..':OnTurnIn call', questID, xp, money)
local savedTasks = B.Conf.TasksLog
self.Info[questID].completedTime = GetTime()
self.Info[questID].animate = true
- T.SetAnimate(self.watchReason)
+ T.SetAnimate(self.watchReasonModule)
savedTasks[questID] = self.Info[questID]
end
diff -r 66b927b46776 -r 4b3da1b221de ObjectiveTracker/ObjectiveTracker.xml
--- a/ObjectiveTracker/ObjectiveTracker.xml Mon Apr 11 09:07:40 2016 -0400
+++ b/ObjectiveTracker/ObjectiveTracker.xml Wed Apr 13 11:20:09 2016 -0400
@@ -190,7 +190,7 @@
-
+
@@ -224,16 +224,15 @@
+
+
+
+
+
-
-
-
-
-
-
-
+
@@ -397,6 +396,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 66b927b46776 -r 4b3da1b221de ObjectiveTracker/ObjectiveUI.lua
--- a/ObjectiveTracker/ObjectiveUI.lua Mon Apr 11 09:07:40 2016 -0400
+++ b/ObjectiveTracker/ObjectiveUI.lua Wed Apr 13 11:20:09 2016 -0400
@@ -24,6 +24,7 @@
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
@@ -44,12 +45,13 @@
end
Default.OnMouseDown = function(self, button)
+
print(IsModifiedClick("CHATLINK"), IsModifiedClick("QUESTWATCHTOGGLE"))
print(self.info.title)
end
+AutoQuest.Select = function(self)
-AutoQuest.Select = function(self)
if self.info.popupType == 'OFFER' then
ShowQuestOffer(self.info.questIndex)
else
@@ -59,6 +61,7 @@
end
Quest.Select = function(self)
+
if self.info.isAutoComplete and self.info.isComplete then
ShowQuestComplete(self.info.questLogIndex)
else
@@ -67,16 +70,22 @@
end
Quest.Link = function(self)
- local questLink = GetQuestLink(block.questLogIndex);
+
+ local questLink = GetQuestLink(self.info.questLogIndex);
if ( questLink ) then
ChatEdit_InsertLink(questLink);
end
end
+
+AutoQuest.Link = Quest.Link
+
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
@@ -88,12 +97,15 @@
--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);
@@ -101,6 +113,7 @@
end
Cheevs.Open = function(self)
+
if ( not AchievementFrame ) then
AchievementFrame_LoadUI();
end
@@ -111,8 +124,10 @@
end
local Bonus = mod.Bonus
-Bonus.Select = function(self, questID)
- Bonus:OnTurnIn(self.info.questID, 0, 30800)
+Bonus.Select = function(self)
+
+ Bonus:OnTurnIn(self.info.questID)
end
-Bonus.Remove = function(self, questID)
+Bonus.Remove = function(self)
+
end
\ No newline at end of file
diff -r 66b927b46776 -r 4b3da1b221de ObjectiveTracker/QuestTracker.lua
--- a/ObjectiveTracker/QuestTracker.lua Mon Apr 11 09:07:40 2016 -0400
+++ b/ObjectiveTracker/QuestTracker.lua Wed Apr 13 11:20:09 2016 -0400
@@ -46,16 +46,17 @@
block.statusbg:SetGradientAlpha(unpack(textbg))
local completionText
- if info.isAutoComplete then
- local questID, popupType = GetAutoQuestPopUp(info.questLogIndex)
- if popupType == 'COMPLETE' then
- print(' :: auto-complete quest :: set the message')
- info.completionText = T.strings.CLICK_TO_COMPLETE
- end
- end
if info.isComplete then
- if not completionText or info.completionText then
- info.completionText = GetQuestLogCompletionText(info.questLogIndex)
+ if info.isAutoComplete then
+ local questID, popupType = GetAutoQuestPopUp(info.questLogIndex)
+ if popupType == 'COMPLETE' then
+ print(' :: auto-complete quest :: set the message')
+ info.completionText = T.strings.CLICK_TO_COMPLETE
+ end
+ else
+ if not completionText or info.completionText then
+ info.completionText = GetQuestLogCompletionText(info.questLogIndex)
+ end
end
print(' :: complete quest :: show instruction: "'.. tostring(info.completionText) .. '"')
end
@@ -113,6 +114,7 @@
return
end
+
local _, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, _, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex)
@@ -194,9 +196,6 @@
q.tagID = questTagID
q.tagName = tagName
-
-
-
--q.isBreadCrumb = isBreadCrumb
q.completionText= GetQuestLogCompletionText(questIndex)
q.numObjectives = GetNumQuestLeaderBoards(questIndex)
@@ -290,6 +289,9 @@
self.WatchInfo[watchIndex] = q
self.LogInfo[questIndex] = q
print('- logIndex =', questIndex, 'title =', title)
+ for k,v in pairs(q) do
+ print('|cFFFFFF00'..k..'|r:', v)
+ end
return q
end