diff ObjectiveUI.lua @ 3:3397aae1f44d

- use the correct key value when searching for action buttons - handle pre-built frames from XML
author Nenue
date Thu, 31 Mar 2016 07:32:05 -0400
parents a2396b03ce63
children e9b61fd5f607
line wrap: on
line diff
--- a/ObjectiveUI.lua	Thu Mar 31 01:38:47 2016 -0400
+++ b/ObjectiveUI.lua	Thu Mar 31 07:32:05 2016 -0400
@@ -9,7 +9,7 @@
 local Tracker, AutoQuest, Quest, Cheevs = mod.Tracker, mod.AutoQuest, mod.Quest, mod.Cheevs
 
 --------------------------------------------------------------------
---- Tracker-specific widget functions
+--- Tracker-specific widgets and their handlers
 --------------------------------------------------------------------
 
 Tracker.Select = function(self) end
@@ -71,6 +71,13 @@
 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
 
 ----------------------------------------------------------------------------------------
@@ -192,4 +199,36 @@
       SetItemButtonTextureVertexColor(itemButton, 1, 1, 1)
     end
   end
+end
+
+-----------------------------------------
+-- Progress slider for achievements, and area objecitves
+-- Stored by criteria ID to account for multiple bars in one cheev
+Tracker.SetProgress = function(criteria, info)
+end
+
+mod.WidgetRegistry = {}
+local wr = mod.WidgetRegistry
+mod.SetWidget = function(criteria, info)
+  local widget
+  if not wr[criteria.type] then
+    print('|cFFFF4400[[WidgetTemplate]]|r', criteria.type)
+    wr[criteria.type] = { free = {}, used = {}, }
+  end
+  if #wr[criteria.type].free == 0 then
+
+    local frameID = #wr[criteria.type].free + #wr[criteria.type].used
+    widget = CreateFrame('Frame', 'VeneerCriteria' .. criteria.type .. frameID, VeneerObjectiveWrapper, 'VeneerObjectiveCriteria' .. criteria.type)
+  end
+end
+mod.RegisterWidget = function(frame)
+  tinsert(wr[frame.widgetType].free, frame)
+end
+mod.InitializeWidget = function(frame)
+
+end
+mod.ReleaseWidget = function(frame)
+
+  if tContains(wr[frame.widgetType], frame) then
+  end
 end
\ No newline at end of file