changeset 18:d1812fb10ae6

ObjectiveStyle - move tag/template logic into the corresponding GetInfo
author Nenue
date Tue, 05 Apr 2016 02:38:01 -0400
parents c33497b116d6
children 605e8f0e46db
files ObjectiveFrame.lua ObjectiveInfo.lua ObjectiveStyle.lua ObjectiveTracker.xml
diffstat 4 files changed, 209 insertions(+), 133 deletions(-) [+]
line wrap: on
line diff
--- a/ObjectiveFrame.lua	Tue Apr 05 00:44:25 2016 -0400
+++ b/ObjectiveFrame.lua	Tue Apr 05 02:38:01 2016 -0400
@@ -41,7 +41,6 @@
 local headerOutline, headerColor, headerSpacing = 'OUTLINE', {1,1,1,1}, 2
 local wrapperPosition = {'RIGHT', UIParent, 'RIGHT', -84, 0}
 
-
 mod.InitializeWrapper = function()
 
   mod.SetBlockStyle(Scroller, 'Scroller', 'Normal')
@@ -159,7 +158,7 @@
   local tracker = handler.Tracker
   print('|cFFFF4400'..tracker:GetName().. '|r:Update()')
   local blockIndex = 0
-  local trackerHeight = headerHeight
+  local trackerHeight = tracker.titleHeight
 
 
   previousBlock = tracker.title
@@ -226,8 +225,8 @@
   local t = handler:GetBlock(blockIndex)
   t.handler = handler
   t.info = info
-  t.mainStyle = 'Normal'
-  t.subStyle = nil
+  t.mainStyle = info.mainStyle or 'Normal'
+  t.subStyle = info.subStyle
 
   info.blockIndex = blockIndex
   if info.questID then handler.QuestBlock[info.questID] = t end
@@ -237,16 +236,23 @@
 
 
   t.attachmentHeight = 0
-  --if info.isComplete then
-    --t.status:Show()
-    --t.status:SetText(info.completionText)
-  --end
 
-  if info.numObjectives >= 1 then
+
+
+
+
+  if info.isComplete == 1 then
+    if info.popupInfo then
+      t.status:SetText('(Click to Complete)')
+    else
+      t.status:SetText('Ready to turn in')
+    end
+  elseif info.completed then
+    t.status:SetText(nil)
+  elseif info.numObjectives >= 1 then
     t.attachmentHeight = 0
     t.status:Show()
     print('    lines to build:', info.numObjectives)
-
     local text = ''
 
     mod.UpdateObjectives(t, info, text)
@@ -266,8 +272,6 @@
     --info.itemButton = nil
   end
 
-  handler.SetBlockTags(t, info)
-
   if previousBlock then
     t:SetPoint('TOPLEFT', previousBlock, 'BOTTOMLEFT', 0, 0)
     t:SetPoint('RIGHT', tracker,'RIGHT', 0, 0)
@@ -281,23 +285,56 @@
 
   print('  |cFF00FFFF)|r -> ', t, t:GetHeight())
 
+  local tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t, 'TOPRIGHT'
   if info.rewardInfo then
     print('has immediate reward')
     if info.rewardInfo[1].type == 'currency' or info.rewardInfo[1].type == 'item' then
       t.icon:Show()
       t.iconLabel:SetText(info.rewardInfo[1].count)
       t.icon:SetSize(t.height, t.height)
+      t.icon:SetPoint(tagPoint, tagAnchor, tagRelative, 0, 0)
+      tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t.icon, 'TOPLEFT'
       t.icon:SetTexture(info.rewardInfo[1].texture)
     end
-
   else
     t.icon:Hide()
   end
 
-  if Devian and Devian.InWorkspace() then
+  if info.selected then
+    t.SelectionOverlay:Show()
+  else
+    t.SelectionOverlay:Hide()
+  end
+
+  if info.frequencyTag then
+    t.FrequencyTag:SetTexCoord(unpack(info.frequencyTag))
+    t.FrequencyTag:Show()
+    t.FrequencyTag:SetPoint(tagPoint, tagAnchor, tagRelative, 0, 0)
+    tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t.FrequencyTag, 'TOPLEFT'
+  else
+    t.FrequencyTag:Hide()
+  end
+  if info.typeTag then
+    t.TypeTag:SetTexCoord(unpack(info.typeTag))
+    t.TypeTag:Show()
+    t.TypeTag:SetPoint(tagPoint, tagAnchor, tagRelative, 0, 0)
+    tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t.TypeTag, 'TOPLEFT'
+  else
+    t.TypeTag:Hide()
+  end
+  if info.completionTag then
+    t.CompletionTag:SetTexCoord(unpack(info.completionTag))
+    t.CompletionTag:Show()
+    t.CompletionTag:SetPoint(tagPoint, tagAnchor, tagRelative, 0, 0)
+    tagPoint, tagAnchor, tagRelative = 'TOPRIGHT', t.CompletionTag, 'TOPLEFT'
+  else
+    t.CompletionTag:Hide()
+  end
+
+  --[[if Devian and Devian.InWorkspace() then
     t.debugText:Show()
     t.debugText:SetText(tostring(blockIndex) .. '\n' .. tostring(info.itemButton and info.itemButton:GetName()) .. "\n" .. (tostring(t.mainStyle) .. '/' .. tostring(t.subStyle)))
-  end
+  end]]
   return t
 end
 
@@ -306,7 +343,7 @@
   print('   |cFF00FF00objective updates for', block:GetName())
 
   local attachmentHeight = block.attachmentHeight
-  if info.description then
+  if info.description and not(info.earnedBy or info.isComplete) then
     print('  -- has description text:', select('#', info.description), info.description)
     text = info.description
   end
@@ -321,12 +358,10 @@
       line.title = nil
     end
 
-
     if line.widget then
       if attachmentHeight == 0 then
         attachmentHeight = block.status.spacing
       end
-
       line.widget:Show()
       line.widget:SetParent(block)
       line.widget:SetPoint('TOPLEFT', block.status, 'BOTTOMLEFT', 0, -attachmentHeight )
@@ -340,14 +375,19 @@
       print('   has text')
       text = text .. ((text == '') and "" or "\n") .. '|cFF'..line.displayColor.. line.displayText .. '|r'
     end
-
   end
 
   block.completionScore = completionScore / completionMax
   block.attachmentHeight = attachmentHeight
 
-  block.status:SetText(text)
-  block.status:SetWordWrap(true)
+  if #text >= 1 then
+    block.status:SetText(text)
+    block.status:SetWordWrap(true)
+  else
+    block.status:SetText(nil)
+    block.status:Hide()
+  end
+
 end
 
 --- Objective parsers
@@ -517,8 +557,8 @@
     '|cFF00FF00'..Wrapper:GetName()..'|r:', Wrapper:GetWidth(), Wrapper:GetHeight(),
     '|cFF0088FFvScrollRange|r:', floor(Scroller:GetVerticalScrollRange()+.5)
   )
+  --]]
   mod.UpdateActionButtons()
-  --]]
 
 end
 
@@ -622,3 +662,7 @@
 mod.UpdateItemButtonCooldown = function(button)
 
 end
+
+local unitLevel = UnitLevel('player')
+
+
--- a/ObjectiveInfo.lua	Tue Apr 05 00:44:25 2016 -0400
+++ b/ObjectiveInfo.lua	Tue Apr 05 02:38:01 2016 -0400
@@ -1,9 +1,23 @@
 local B = select(2,...).frame
-local wipe, pairs, ipairs, min, max, unpack = table.wipe, pairs, ipairs, min, max, unpack
+local wipe, pairs, ipairs, min, max, unpack, format = table.wipe, pairs, ipairs, min, max, unpack, format
+local tinsert, tostring = tinsert, tostring
+local GetQuestTagInfo, GetQuestLogTitle = GetQuestTagInfo, GetQuestLogTitle
+local GetNumQuestLogEntries, GetNumQuestWatches, GetQuestLogCompletionText, IsQuestWatched, IsQuestHardWatched, GetQuestLogSpecialItemInfo, GetQuestLogSpecialItemCooldown = GetNumQuestLogEntries, GetNumQuestWatches, GetQuestLogCompletionText, IsQuestWatched, IsQuestHardWatched, GetQuestLogSpecialItemInfo, GetQuestLogSpecialItemCooldown
+local GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetTasksTable, GetNumQuestLogTasks, GetTaskInfo, GetQuestObjectiveInfo = GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetTasksTable, GetNumQuestLogTasks, GetTaskInfo, GetQuestObjectiveInfo
+local GetNumQuestLogRewardCurrencies, GetQuestLogRewardCurrencyInfo, GetNumQuestLogRewards, GetQuestLogRewardInfo, GetQuestLogRewardMoney, GetMoneyString = GetNumQuestLogRewardCurrencies, GetQuestLogRewardCurrencyInfo, GetNumQuestLogRewards, GetQuestLogRewardInfo, GetQuestLogRewardMoney, GetMoneyString
 local GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo = GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo
 local GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo
+local QuestHasPOIInfo, GetDistanceSqToQuest, GetQuestFactionGroup = QuestHasPOIInfo, GetDistanceSqToQuest, GetQuestFactionGroup
+local GetTrackedAchievements, GetNumTrackedAchievements, GetAchievementInfo = GetTrackedAchievements, GetNumTrackedAchievements, GetAchievementInfo
 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame')
 local print = B.print('TrackerInfo')
+local QUEST_TAG_DUNGEON = QUEST_TAG_DUNGEON
+local QUEST_TAG_GROUP = QUEST_TAG_GROUP
+local QUEST_TAG_ACCOUNT = QUEST_TAG_ACCOUNT
+local QUEST_TAG_TCOORDS = QUEST_TAG_TCOORDS
+local LE_QUEST_FREQUENCY_DAILY = LE_QUEST_FREQUENCY_DAILY
+local LE_QUEST_FREQUENCY_WEEKLY = LE_QUEST_FREQUENCY_WEEKLY
+local FACTION_ALLIANCE, LE_QUEST_FACTION_HORDE, FACTION_HORDE, LE_QUEST_FACTION_HORDE = FACTION_ALLIANCE, LE_QUEST_FACTION_HORDE, FACTION_HORDE, LE_QUEST_FACTION_HORDE
 
 local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.Tracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs
 --------------------------------------------------------------------
@@ -168,6 +182,7 @@
 Quest.QuestBlock = {}
 Quest.LogBlock = {}
 Quest.LogInfo = {}
+
 Quest.GetNumWatched = function()
   Quest.numAll = GetNumQuestLogEntries()
   Quest.numWatched = GetNumQuestWatches()
@@ -179,7 +194,7 @@
   startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex)
 
   local _, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, _, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex)
-  local questTagID, tagName = GetQuestTagInfo(questID);
+
 
   if not questID then
     return
@@ -192,6 +207,8 @@
   q.questID = questID
   q.title = title
   q.level = level
+  q.displayQuestID = displayQuestID
+  q.suggestedGroup = suggestedGroup
   q.questLogIndex = questIndex
   q.numObjectives = numObjectives
   q.requiredMoney = requiredMoney
@@ -205,22 +222,58 @@
   q.isStory = isStory
   q.isOnMap = isOnMap
   q.hasLocalPOI = hasLocalPOI
-
-  q.isDaily = ( frequency == LE_QUEST_FREQUENCY_DAILY and (not isComplete or isComplete == 0) )
-  q.isWeekly = ( frequency == LE_QUEST_FREQUENCY_WEEKLY and (not isComplete or isComplete == 0) )
+  q.frequency = frequency
   q.isComplete = isComplete
   q.isStory = isStory
   q.isTask = isTask
 
-  if isTask then
-    --q.task =  Bonus.GetInfo(questID)
+  --- resolve icon type and template
+  local tagID, tagName = GetQuestTagInfo(questID)
+  if ( tagName ) then
+    local factionGroup = GetQuestFactionGroup(questID);
+    -- Faction-specific account quests have additional info in the tooltip
+    if ( tagID == QUEST_TAG_ACCOUNT and factionGroup ) then
+      local factionString = FACTION_ALLIANCE;
+      if ( factionGroup == LE_QUEST_FACTION_HORDE ) then
+        factionString = FACTION_HORDE;
+      end
+      tagName = format("%s (%s)", tagName, factionString);
+    end
+    if ( QUEST_TAG_TCOORDS[tagID] ) then
+      local questTypeIcon;
+      if ( tagID == QUEST_TAG_ACCOUNT and factionGroup ) then
+        q.typeTag = QUEST_TAG_TCOORDS["ALLIANCE"];
+        if ( factionGroup == LE_QUEST_FACTION_HORDE ) then
+          q.typeTag= QUEST_TAG_TCOORDS["HORDE"];
+        end
+      else
+        q.typeTag = QUEST_TAG_TCOORDS[tagID];
+      end
+    end
   end
 
+  if ( frequency == LE_QUEST_FREQUENCY_DAILY ) then
+    q.frequencyTag = QUEST_TAG_TCOORDS["DAILY"]
+    q.mainStyle = 'Daily'
+  elseif ( frequency == LE_QUEST_FREQUENCY_WEEKLY ) then
+    q.frequencyTag = QUEST_TAG_TCOORDS["WEEKLY"]
+    q.mainStyle = 'Daily'
+  end
+  if ( isComplete and isComplete < 0 ) then
+    q.completionTag = QUEST_TAG_TCOORDS["FAILED"]
+    q.subStyle = 'Failed'
+  elseif isComplete then
+    q.completionTag = QUEST_TAG_TCOORDS["COMPLETED"]
+    q.subStyle = 'Complete'
+  end
+  q.tagID = tagID
+  q.tagName = tagName
+
+
+
   --q.isBreadCrumb = isBreadCrumb
   q.completionText= GetQuestLogCompletionText(questIndex)
   q.numObjectives = GetNumQuestLeaderBoards(questIndex)
-  q.isWatched = IsQuestWatched(questIndex)
-  q.isHardWatched = IsQuestHardWatched(questIndex)
   q.objectives = {}
   for i = 1, q.numObjectives do
     local text, type, finished = GetQuestLogLeaderBoard(i, questIndex)
@@ -253,7 +306,6 @@
     }
   end
 
-
   if QuestHasPOIInfo(questID) then
     local distance, onContinent = GetDistanceSqToQuest(questIndex)
       if distance ~= nil and distance > 0 then
@@ -266,7 +318,8 @@
     end
   end
 
-  q.superTracked =  (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue
+
+  q.selected =  (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue
   self.WatchInfo[watchIndex] = q
   self.LogInfo[questIndex] = q
   print('- logIndex =', questIndex, 'title =', title)
--- a/ObjectiveStyle.lua	Tue Apr 05 00:44:25 2016 -0400
+++ b/ObjectiveStyle.lua	Tue Apr 05 02:38:01 2016 -0400
@@ -8,7 +8,7 @@
 local titleFont, textFont = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Regular.ttf]]
 local titleSize, textSize = 16, 15
 local titleOutline, textOutline = "OUTLINE", "OUTLINE"
-local titleSpacing, textSpacing = 3, 1
+local titleSpacing, textSpacing = 3, 3
 local unpack, type, pairs, tconcat = unpack, type, pairs, table.concat
 local wrapperHeadFont, wrapperHeadSize, wrapperHeadOutline = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 16, 'NONE'
 local headerFont, headerSize = [[Interface\Addons\SharedMedia_MyMedia\font\ArchivoNarrow-Bold.ttf]], 24
@@ -93,10 +93,31 @@
     Normal = {
       titlebg = {
         Indent = 2,
-        Gradient = { 'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .14}},
+        Gradient = { 'HORIZONTAL', MinColor = {0.7, 0, 0.9, 0}, MaxColor = {.7, 0, 0.9, .25}},
       },
       title = {
-        TextColor = {1,1,1,0.5},
+        TextColor = {1,1,1,0.8},
+        Font = {titleFont, titleSize, titleOutline},
+        Spacing = titleSpacing,
+      },
+      status = {
+        TextColor = {1,1,1,0.8},
+        Font = {textFont, textSize, textOutline},
+        Spacing = textSpacing,
+      },
+      statusbg = {
+        Gradient = { 'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .11}},
+      }
+    },
+    Daily = {
+      titlebg = {
+        Gradient = {'HORIZONTAL', MinColor = {0, .4, 1, 0},          MaxColor = {0, 0.4, 1, .35},        },
+      },
+      statusbg = {
+        Gradient = {'HORIZONTAL', MinColor = {0, .4, 1, 0},          MaxColor = {0, 0.35, .90, .31},        },
+      },
+      title = {
+        TextColor = {0.7,1,1,1},
         Font = {titleFont, titleSize, titleOutline},
         Spacing = titleSpacing,
       },
@@ -105,9 +126,6 @@
         Font = {textFont, textSize, textOutline},
         Spacing = textSpacing,
       },
-      statusbg = {
-        Gradient = { 'HORIZONTAL', MinColor = {0.2, .4, 1, 0}, MaxColor = {.7, 0, 0.9, .11}},
-      }
     },
     Super = {
       title = {
@@ -159,14 +177,6 @@
         Gradient = {'HORIZONTAL', MinColor = {0, 1, 0, 0},          MaxColor = {0, 1, 0, .25},        },
       }
     },
-    Daily = {
-      titlebg = {
-        Gradient = {'HORIZONTAL', MinColor = {0, .4, 1, 0.34},          MaxColor = {0, 0.4, 1, .17},        },
-      },
-      statusbg = {
-        Gradient = {'HORIZONTAL', MinColor = {0, .4, 1, 0.25},          MaxColor = {0, 0.4, 1, .12},        },
-      },
-    },
     AutoQuest = {
       Normal = {
         titlebg = {
@@ -363,111 +373,52 @@
 
   --- Hardcoding the sizing vars for sanity
   local normalSettings = mod.defaults.Style.Format
-  frame.titleHeight = frame.title and (frame.title:GetStringHeight() + (frame.title.spacing or 0)*2) or 0
-  frame.statusHeight = frame.status and (frame.status:GetStringHeight() + (frame.status.spacing or 0)*2)  or 0
-  frame.height = frame.titleHeight + frame.statusHeight + (frame.attachmentHeight or 0)
   frame.width = normalSettings.Frame.Width
   frame.statusWidth = frame.width - normalSettings.status.Indent
   frame.titleWidth = frame.width - normalSettings.title.Indent
 
-  print((frame.status and frame.status:GetText()))
-  print((frame.status and frame.status:GetWidth()))
-  print(frame.status and frame.title:GetStringHeight())
-  print(frame.title and (frame.title:GetStringHeight() + (frame.title.spacing or 0)*2) or 0)
-  print(frame.status and frame.status:GetStringHeight())
-  print(frame.status and (frame.status:GetStringHeight() + (frame.status.spacing or 0)*2)  or 0)
-  if frame.status then
-    print('status  ', frame.statusHeight, normalSettings.status.Indent, 0, 'statusbg', frame.statusHeight)
-    frame.status:SetWidth(frame.width)
-    frame.status:SetPoint('LEFT', frame, 'LEFT', normalSettings.status.Indent, 0)
-    frame.status:SetPoint('TOP', frame, 'TOP', 0, -frame.status.spacing)
-    --frame.status:SetHeight(frame.statusHeight)
-    if frame.statusbg then
-
-      frame.statusbg:SetHeight(frame.statusHeight + frame.status.spacing * 2)
-      frame.statusbg:SetWidth(frame.width)
-    end
-  end
   if frame.title then
-    print('title  ',frame.titleHeight, normalSettings.title.Indent, 'titlebg',frame.titleHeight)
+    frame.titleHeight = frame.title and (frame.title:GetStringHeight() + (frame.title.spacing or 0)*2) or 0
+    frame.title.spacing = frame.title.spacing or frame.title:GetSpacing()
     frame.title:SetPoint('LEFT', frame, 'LEFT', normalSettings.title.Indent)
     frame.title:SetPoint('TOP', frame, 'TOP', 0, -frame.title.spacing)
     frame.title:SetWidth(frame.width)
     if frame.titlebg then
-      frame.titlebg:SetHeight(frame.titleHeight + frame.title.spacing * 2)
+      frame.titlebg:SetHeight(frame.titleHeight)
       frame.titlebg:SetWidth(frame.width)
     end
+    print('  title, textHeight', frame.titleHeight, 'indent', normalSettings.title.Indent, 'spacing', frame.title.spacing)
+  else
+    frame.titleHeight = 0
   end
+
+  if frame.status then
+    frame.statusHeight   = frame.status and (frame.status:GetStringHeight() + (frame.status.spacing or 0)*2)  or 0
+    frame.status.spacing = frame.status.spacing or frame.status:GetSpacing()
+    frame.status:SetWidth(frame.width)
+    frame.status:SetPoint('LEFT', frame, 'LEFT', normalSettings.status.Indent, 0)
+    frame.status:SetPoint('TOPLEFT', frame.titlebg, 'BOTTOMLEFT', normalSettings.status.Indent, -frame.status.spacing)
+    --frame.status:SetHeight(frame.statusHeight)
+    if frame.statusbg then
+
+      frame.statusbg:SetHeight(frame.statusHeight)
+      frame.statusbg:SetWidth(frame.width)
+    end
+    print('  status, textHeight', frame.statusHeight, 'indent', normalSettings.status.Indent, 'spacing', frame.status.spacing)
+  else
+    frame.statusHeight = 0
+  end
+
+  frame.height = frame.titleHeight + frame.statusHeight + (frame.attachmentHeight or 0)
   frame:SetSize(frame.width, frame.height)
-  print('sizing frame', frame.width, frame.height)
-    --[[
-      local titleSpacing, titleSpacing2 = c.Title.Spacing, (c.Title.Spacing * 2)
-      local textSpacing, textSpacing2 = c.Text.Spacing, (c.Text.Spacing * 2)
-
-      block.title:SetSpacing(titleSpacing)
-      block.objectives:SetSpacing(textSpacing)
-      block.objectives:SetWordWrap(true)
-
-      local titleHeight, textHeight = block.title:GetStringHeight(), block.objectives:GetStringHeight() + block.attachmentHeight
-      local blockHeight = titleHeight + titleSpacing2 + textHeight + textSpacing2
-      local blockWidth = wrapperMaxWidth
-
-      block.titlebg:SetSize(min(w1, w2), titleHeight + titleSpacing2)
-      block.bg:SetSize(w1, textHeight + textSpacing2)
-      block:SetSize(blockWidth, blockHeight)
-
-      block.title:SetPoint('TOPLEFT', block.titlebg, 'TOPLEFT', 0, -titleSpacing)
-      block.objectives:SetPoint('TOPLEFT', block.titlebg, 'BOTTOMLEFT', textIndent, -textSpacing)
-
-      -- store
-      block.titleHeight = titleHeight
-      block.textHeight = textHeight
-      block.width = blockWidth
-      block.height = blockHeight
-    --]]
-  --print('    |cFF00FFFF'..block:GetName()..'|r:|cFF0088FFSetStyle|r(', blockWidth, 'x', blockHeight, '(textH', textHeight,', titleH', titleHeight, ')')
+  print('    sizing frame', frame.width, frame.height)
 end
-local segments = {'Left', 'Right', 'Tile' }
-local Wrapper = _G.VeneerObjectiveWrapper
 mod.UpdateWrapperStyle = function()
   local  c = mod.Conf.Wrapper
   --Wrapper:ClearAllPoints()
   --Wrapper:SetPoint(c.WrapperPoint, UIParent, c.WrapperPoint, c.WrapperFloatX, c.WrapperFloatY)
 end
 
-mod.Tracker.SetBlockTags = function(block, info)
-  if info.isComplete then
-    block.mainStyle = 'Complete'
-  end
-  if info.superTracked then
-    block.subStyle = 'Super'
-  elseif info.isDaily then
-    block.subStyle = 'Daily'
-  end
-end
-local unitLevel = UnitLevel('player')
-mod.Quest.SetBlockTags = function(block, info)
-
-  mod.Tracker.SetBlockTags(block, info)
-  if info.level then
-    local levelDiff = unitLevel - info.level
-    if  levelDiff > 9 then
-      block.title:SetTextColor(0.7, 0.7, 0.7, 1)
-    elseif levelDiff > 1 then
-      block.title:SetTextColor(0.5, 1, 0.5, 1)
-    elseif levelDiff < -1 then
-      block.title:SetTextColor(1, 0.4, 0.25, 1)
-    elseif levelDiff < -4 then
-      block.title:SetTextColor(1, 0, 0, 1)
-    else
-      block.title:SetTextColor(1,1,1,1)
-    end
-  end
-end
-mod.Cheevs.SetBlockTags = function(block, info)
-  mod.Tracker.SetBlockTags(block, info)
-end
-
 --- Argument containers
 local o -- text flag
 local a1, a2, a3, a4, b1, b2, b3, b4 -- color1, color2
--- a/ObjectiveTracker.xml	Tue Apr 05 00:44:25 2016 -0400
+++ b/ObjectiveTracker.xml	Tue Apr 05 02:38:01 2016 -0400
@@ -253,7 +253,7 @@
             <MaxColor r="0" g="0" b="0" a=".35" />
           </Gradient>
         </Texture>
-        <Texture name="$parentItemTile" parentKey="icon" hidden="true">
+        <Texture name="$parentItemTile" parentKey="icon" alphaMode="ADD" hidden="true">
           <Size x="40" y="40" />
           <TexCoords top="0.12" bottom="0.87" left="0.12" right="0.87" />
           <Anchors>
@@ -261,6 +261,34 @@
 
           </Anchors>
         </Texture>
+        <Texture parentKey="TypeTag" file="Interface\QuestFrame\QuestTypeIcons" alphaMode="ADD" hidden="true">
+          <Size x="18" y="18"/>
+          <Anchors>
+            <Anchor point="TOPRIGHT" relativePoint="TOPLEFT" relativeKey="$parent.FrequencyTag" x="-3" y="-3"/>
+
+          </Anchors>
+        </Texture>
+        <Texture parentKey="FrequencyTag" file="Interface\QuestFrame\QuestTypeIcons" alphaMode="ADD" hidden="true">
+          <Size x="18" y="18"/>
+          <Anchors>
+            <Anchor point="TOPRIGHT" relativePoint="TOPLEFT" relativeKey="$parent.CompletionTag" x="-3" y="-3"/>
+
+          </Anchors>
+        </Texture>
+        <Texture parentKey="CompletionTag" file="Interface\QuestFrame\QuestTypeIcons" alphaMode="ADD" hidden="true">
+          <Size x="18" y="18"/>
+          <Anchors>
+            <Anchor point="TOPRIGHT" relativePoint="TOPLEFT" relativeKey="$parent.icon" x="-3" y="-3"/>
+
+          </Anchors>
+        </Texture>
+        <Texture parentKey="SelectionOverlay" setAllPoints="true" alphaMode="ADD" hidden="true">
+          <Color r="1" g="1" b="1" a="1" />
+          <Gradient orientation="HORIZONTAL">
+            <MaxColor r="1" g="1" b="1" a="0.125" />
+            <MinColor r="1" g="1" b="1" a="0.25" />
+          </Gradient>
+        </Texture>
         <Texture name="$parentMoneyTile" parentKey="money" hidden="true" />
       </Layer>
       <Layer level="HIGHLIGHT">