comparison FilterBar.lua @ 41:79e5e96e5f18 v1.0-rc10

- Clear Garrison minimap button pulse when shown
author Nenue
date Sun, 25 Dec 2016 15:17:35 -0500
parents 589c444d4837
children 77c2ffb5c7f5
comparison
equal deleted inserted replaced
40:589c444d4837 41:79e5e96e5f18
62 { filterKey= 'worldQuestType', filterValue = LE_QUEST_TAG_TYPE_PROFESSION, label = 'Profession', texture = "Interface\\ICONS\\70_professions_scroll_02", }, 62 { filterKey= 'worldQuestType', filterValue = LE_QUEST_TAG_TYPE_PROFESSION, label = 'Profession', texture = "Interface\\ICONS\\70_professions_scroll_02", },
63 } 63 }
64 local defaults = {} 64 local defaults = {}
65 65
66 WorldPlanSummaryMixin = WorldPlanSummaryMixin or {} 66 WorldPlanSummaryMixin = WorldPlanSummaryMixin or {}
67 WorldPlanSummaryMixin.selectedBountyIndex = {} 67 local Module = WorldPlanSummaryMixin
68 WorldPlanSummaryMixin.bounties = {} 68 Module.selectedBountyIndex = {}
69 WorldPlanSummaryMixin.filterList = {} 69 Module.bounties = {}
70 WorldPlanSummaryMixin.buttons = {} 70 Module.filterList = {}
71 WorldPlanSummaryMixin.cvarFiltersDirty = false 71 Module.buttons = {}
72 Module.cvarFiltersDirty = false
72 WorldPlanFilterPinMixin = {} 73 WorldPlanFilterPinMixin = {}
73 74 local Pin = WorldPlanFilterPinMixin
74 function WorldPlanSummaryMixin:OnLoad() 75
76 function Module:OnLoad()
75 self:SetParent(WorldMapFrame) 77 self:SetParent(WorldMapFrame)
76 WorldPlan:AddHandler(self) 78 WorldPlan:AddHandler(self)
77 for index, info in ipairs(db.DefaultFilters) do 79 for index, info in ipairs(db.DefaultFilters) do
78 info.zone = db.DefaultFilterType 80 info.zone = db.DefaultFilterType
79 info.continent = db.DefaultFilterType 81 info.continent = db.DefaultFilterType
82 end 84 end
83 85
84 end 86 end
85 87
86 88
87 function WorldPlanSummaryMixin:OnEvent(event) 89 function Module:OnEvent(event)
88 print('|cFF00FF88'..self:GetName()..':OnEvent()', event) 90 print('|cFF00FF88'..self:GetName()..':OnEvent()', event)
89 self.isStale = true 91 self.isStale = true
90 end 92 end
91 93
92 local bountyIndex 94 local bountyIndex
93 local debug_headers = {} 95 local debug_headers = {}
94 96
95 function WorldPlanSummaryMixin:Setup() 97 function Module:Setup()
96 print('|cFF00FF88'..self:GetName()..':Setup()') 98 print('|cFF00FF88'..self:GetName()..':Setup()')
97 end 99 end
98 100
99 101
100 function WorldPlanSummaryMixin:OnUpdate() 102 function Module:OnUpdate()
101 if self.isStale then 103 if self.isStale then
102 wprint('|cFF00FF00pushing update') 104 wprint('|cFF00FF00pushing update')
103 self:Refresh() 105 self:Refresh()
104 end 106 end
105 end 107 end
106 108
107 function WorldPlanSummaryMixin:OnShow() 109 function Module:OnMapInfo(isBrokenIsle, mapAreaID)
110 if not isBrokenIsle then
111 self:SetShown(false)
112 else
113 self:SetShown(true)
114 self:Refresh()
115 end
116 end
117
118 function Module:OnShow()
108 print('|cFF00FF88'..self:GetName()..':OnShow()') 119 print('|cFF00FF88'..self:GetName()..':OnShow()')
109 if self.isStale then 120 if self.isStale then
110 self:Refresh() 121 self:Refresh()
111 end 122 end
112 end 123 end
113 124
114 function WorldPlanSummaryMixin:GetFilters() 125 local tinsert, GetQuestBountyInfoForMapID, GetQuestLogTitle, GetQuestLogIndexByID = tinsert, GetQuestBountyInfoForMapID, GetQuestLogTitle, GetQuestLogIndexByID
126 function Module:GetFilters()
115 127
116 print('|cFF00FFFF'..self:GetName()..':GetFilters()') 128 print('|cFF00FFFF'..self:GetName()..':GetFilters()')
117 129
118 wipe(self.filterList) 130 wipe(self.filterList)
119 131
140 tinsert(self.filterList, info) 152 tinsert(self.filterList, info)
141 --{ filterKey= 'worldQuestType', filterValue = LE_QUEST_TAG_TYPE_PROFESSION, label = 'Profession', texture = "Interface\\LFGFRAME\\UI-LFR-PORTRAIT", }, 153 --{ filterKey= 'worldQuestType', filterValue = LE_QUEST_TAG_TYPE_PROFESSION, label = 'Profession', texture = "Interface\\LFGFRAME\\UI-LFR-PORTRAIT", },
142 end 154 end
143 end 155 end
144 156
145 function WorldPlanSummaryMixin:Reset() 157 function Module:Reset()
146 self.pinLayout = self:GetTypeInfo(255) 158 self.pinLayout = self:GetTypeInfo(255)
147 self:GetFilters() 159 self:GetFilters()
148 end 160 end
149 161
150 function WorldPlanSummaryMixin:Refresh() 162 function Module:Refresh()
151 self:GetFilters() 163 self:GetFilters()
152 self:Update() 164 self:Update()
153 end 165 end
154 166
155 local filterFill = "Interface\\BUTTONS\\YELLOWORANGE64" 167 local filterFill = "Interface\\BUTTONS\\YELLOWORANGE64"
156 local filterMask = "Interface\\Minimap\\UI-Minimap-Background" 168 local filterMask = "Interface\\Minimap\\UI-Minimap-Background"
157 169
158 local questResults = {{}} 170 local questResults = {{}}
159 function WorldPlanSummaryMixin:Update() 171 function Module:Update()
160 local blocks = self.buttons 172 local blocks = self.buttons
161 173
162 local relativeFrame = WorldMapFrame.UIElementsFrame.TrackingOptionsButton 174 local relativeFrame = WorldMapFrame.UIElementsFrame.TrackingOptionsButton
163 if FlightMapFrame and FlightMapFrame:IsVisible() then 175 if FlightMapFrame and FlightMapFrame:IsVisible() then
164 relativeFrame = FlightMapFrame 176 relativeFrame = FlightMapFrame
248 wipe(questResults[i]) 260 wipe(questResults[i])
249 end 261 end
250 end 262 end
251 263
252 264
253 if firstCvar and lastCvar then
254 self.CVarsHighlight:ClearAllPoints()
255 self.CVarsHighlight:SetPoint('TOPLEFT', firstCvar, 'TOPLEFT', -1, 1)
256 self.CVarsHighlight:SetPoint('BOTTOMRIGHT', lastCvar, 'BOTTOMRIGHT', 1, -1)
257 end
258 self.CVarsHighlight:SetShown(self.cvarFiltersDirty or false)
259
260 265
261 self.isStale = nil 266 self.isStale = nil
262 end 267 end
263 268
264 function WorldPlanSummaryMixin:Cleanup() 269 function Module:Cleanup()
265 -- hide trailing buttons 270 -- hide trailing buttons
266 end 271 end
267 272
268 local rgbWhite = {r = 1, g= 1, b= 1, hex = '|cFFFFFFFF'} 273 local rgbWhite = {r = 1, g= 1, b= 1, hex = '|cFFFFFFFF'}
269 function WorldPlanFilterPinMixin:OnEnter() 274 function Pin:OnEnter()
270 if #self.questList >= 1 then 275 if #self.questList >= 1 then
271 GameTooltip:SetOwner(self, 'ANCHOR_LEFT') 276 GameTooltip:SetOwner(self, 'ANCHOR_LEFT')
272 GameTooltip:AddLine(self.info.label) 277 GameTooltip:AddLine(self.info.label)
273 for index, pin in ipairs(self.questList) do 278 for index, pin in ipairs(self.questList) do
274 local colorInfo = (pin.quality and ITEM_QUALITY_COLORS[pin.quality]) or rgbWhite 279 local colorInfo = (pin.quality and ITEM_QUALITY_COLORS[pin.quality]) or rgbWhite
277 GameTooltip:AddLine(self.numQuestsTotal .. ' total') 282 GameTooltip:AddLine(self.numQuestsTotal .. ' total')
278 GameTooltip:Show() 283 GameTooltip:Show()
279 end 284 end
280 end 285 end
281 286
282 function WorldPlanFilterPinMixin:OnLeave() 287 function Pin:OnLeave()
283 if GameTooltip:IsOwned(self) then 288 if GameTooltip:IsOwned(self) then
284 GameTooltip:Hide() 289 GameTooltip:Hide()
285 end 290 end
286 end 291 end
287 292
288 function WorldPlanFilterPinMixin:Refresh() 293 function Pin:Refresh()
289 local info = self.info 294 local info = self.info
290 self.filterKey = info.filterKey 295 self.filterKey = info.filterKey
291 self.filterValue = info.filterValue 296 self.filterValue = info.filterValue
292 self.tagID = info.tagID 297 self.tagID = info.tagID
293 298
315 local desaturated = false 320 local desaturated = false
316 if (self.numQuestsHere > 0) then 321 if (self.numQuestsHere > 0) then
317 if self.cVar then 322 if self.cVar then
318 if GetCVarBool(self.cVar) then 323 if GetCVarBool(self.cVar) then
319 self.count:SetTextColor(1,1,1) 324 self.count:SetTextColor(1,1,1)
320 r,g,b = 0, 1, 0 325 r,g,b,a = 0, 0, 0, 1
321 else 326 else
322 self:GetParent().cvarFiltersDirty = true 327 self:GetParent().cvarFiltersDirty = true
323 self.count:SetTextColor(1,0,0) 328 self.count:SetTextColor(1,0,0)
324 self.icon:SetDesaturated(true) 329 self.icon:SetDesaturated(true)
325 r,g,b = 1, 0, 0 330 r,g,b,a = 1, 0, 0, 0.5
326 end 331 end
327 else 332 else
328 if db.UsedFilters[self.filterKey] then 333 if db.UsedFilters[self.filterKey] then
329 if db.UsedFilters[self.filterKey] == self.filterValue then 334 if db.UsedFilters[self.filterKey] == self.filterValue then
330 self.count:SetTextColor(0,1,0) 335 self.count:SetTextColor(0,1,0)
331 r,g,b = 0, 1, 0 336 r, g, b = 0, 1, 0
332 else 337 else
333 self.count:SetTextColor(1,0,0) 338 self.count:SetTextColor(1,0,0)
334 r, g, b = 1, 0, 0 339 r, g, b = 1, 0, 0
335 end 340 end
336 else 341 else
342 r, g, b = 1, 1, 0 347 r, g, b = 1, 1, 0
343 end 348 end
344 end 349 end
345 end 350 end
346 end 351 end
347 self.RewardBorder:SetColorTexture(r, g, b, a) 352 self.RewardBorder:SetColorTexture(r, g, b)
353 self:SetAlpha(a)
348 354
349 --self:UpdateSize() 355 --self:UpdateSize()
350 end 356 end
351 357
352 function WorldPlanFilterPinMixin:OnLoad() 358 function Pin:OnLoad()
353 self:RegisterForClicks('AnyUp') 359 self:RegisterForClicks('AnyUp')
354 self:SetFrameStrata('HIGH') 360 self:SetFrameStrata('HIGH')
355 self:SetFrameLevel(151) 361 self:SetFrameLevel(151)
356 self:SetScript('OnUpdate', nil) 362 self:SetScript('OnUpdate', nil)
357 self.questList = {} 363 self.questList = {}
358 end 364 -- WORLD_MAP_UPDATE and PLAYER_ENTERING_WORLD are passed down from a higher level
359 365 end
360 function WorldPlanFilterPinMixin:OnUpdate () 366
367 function Pin:OnUpdate ()
361 end 368 end
362 369
363 -- shift-click: reset filter 370 -- shift-click: reset filter
364 -- click: rotate through include(1), exclude(-1), ignore(nil) 371 -- click: rotate through include(1), exclude(-1), ignore(nil)
365 local filtered_report = {} 372 local filtered_report = {}
366 local RESET_FILTER = "|cFFFFFFFF+%s|r" 373 local RESET_FILTER = "|cFFFFFFFF+%s|r"
367 local FILTER_EXCLUDE_TYPE = '|cFFFF0000-%s|r' 374 local FILTER_EXCLUDE_TYPE = '|cFFFF0000-%s|r'
368 local FILTER_INCLUDE_TYPE = '|cFF00FF00+%s|r' 375 local FILTER_INCLUDE_TYPE = '|cFF00FF00+%s|r'
369 function WorldPlanFilterPinMixin:OnClick (button) 376 function Pin:OnClick (button)
370 377
371 local filterKey = self.filterKey 378 local filterKey = self.filterKey
372 local filterValue = self.filterValue 379 local filterValue = self.filterValue
373 local cVar = self.cVar 380 local cVar = self.cVar
374 local parent = self:GetParent() 381 local parent = self:GetParent()