Mercurial > wow > buffalo2
comparison ObjectiveUI.lua @ 9:2698173edd40
ObjectiveUI & ObjectiveEvents
- securehook to API calls for compatibility with addons that work with the objective tracking interface
- let the API hooks invoke ObjectiveUI functions when possible
- ObjectiveUI framescript handlers should use the corresponding API call if possible, so that addon space can be fully aware of our actions
- Sanity check cached data when possible during 'Remove' hooks
ObjectiveInfo
- Add cheevID to criteria info
ObjectiveCore
- Index quest tracker blocks by their watch offset, and use that to verify whether the given block frame should be released into pool
ObjectiveFrame
- Differentiate between visible and non-visible unused buttons, and only release when their quest has been dropped
- Reset 'actualBlocks' count during full updates
- Reset scroll Position when the wrapper size shrinks
author | Nenue |
---|---|
date | Fri, 01 Apr 2016 14:54:01 -0400 |
parents | 7923243ae972 |
children | f03c75f63566 |
comparison
equal
deleted
inserted
replaced
8:7923243ae972 | 9:2698173edd40 |
---|---|
20 Tracker.Report = function(self) | 20 Tracker.Report = function(self) |
21 print('Stats:', self.numWatched,'items tracked,', self.numBlocks,'blocks assigned.') | 21 print('Stats:', self.numWatched,'items tracked,', self.numBlocks,'blocks assigned.') |
22 end | 22 end |
23 | 23 |
24 Tracker.OnMouseUp = function(self, button) | 24 Tracker.OnMouseUp = function(self, button) |
25 if self.initialButton == 'LeftButton' then | 25 if button == 'LeftButton' then |
26 if self.modChatLink and ChatEdit_GetActiveWindow() then | 26 if IsModifiedClick("CHATLINK") and ChatEdit_GetActiveWindow() then |
27 self:Link() | 27 self:Link() |
28 elseif self.modQuestWatch then | 28 elseif IsModifiedClick("QUESTWATCHTOGGLE") then |
29 self:Remove() | 29 self:Remove() |
30 else | 30 else |
31 self:Select() | 31 self:Select() |
32 end | 32 end |
33 elseif button == 'RightButton' then | 33 elseif button == 'RightButton' then |
34 self:Open() | 34 self:Open() |
35 end | 35 end |
36 self.initialButton = nil | 36 self.initialButton = nil |
37 self.modChatLink = nil | 37 self.modChatLink = nil |
38 self.modQuestWatch = nil | 38 self.modQuestWatch = nil |
39 print(IsModifiedClick("CHATLINK"), IsModifiedClick("QUESTWATCHTOGGLE")) | |
40 print('|cFFFF8800'..tostring(self:GetName())..':MouseUp()|r') | 39 print('|cFFFF8800'..tostring(self:GetName())..':MouseUp()|r') |
41 end | 40 end |
42 | 41 |
43 Tracker.OnMouseDown = function(self, button) | 42 Tracker.OnMouseDown = function(self, button) |
44 self.initialButton = button | |
45 self.modChatLink = IsModifiedClick("CHATLINK") | |
46 self.modQuestWatch = IsModifiedClick("QUESTWATCHTOGGLE") | |
47 self:SetStyle('Active') | 43 self:SetStyle('Active') |
48 print(IsModifiedClick("CHATLINK"), IsModifiedClick("QUESTWATCHTOGGLE")) | 44 print(IsModifiedClick("CHATLINK"), IsModifiedClick("QUESTWATCHTOGGLE")) |
49 print(self.info.title) | 45 print(self.info.title) |
50 end | 46 end |
51 | 47 |
82 Cheevs.Select = function(self) | 78 Cheevs.Select = function(self) |
83 end | 79 end |
84 Cheevs.Remove = function(self) | 80 Cheevs.Remove = function(self) |
85 RemoveTrackedAchievement(self.info.cheevID) | 81 RemoveTrackedAchievement(self.info.cheevID) |
86 end | 82 end |
87 Cheevs.OnMouseUp = function(self) | 83 Cheevs.OnMouseUp = function(self, button) |
88 Tracker.OnMouseUp(self) | 84 Tracker.OnMouseUp(self, button) |
89 self:SetStyle('CheevNormal') | 85 self:SetStyle('CheevNormal') |
90 end | 86 end |
91 Cheevs.Link = function(self) | 87 Cheevs.Link = function(self) |
92 local achievementLink = GetAchievementLink(self.info.cheevID); | 88 local achievementLink = GetAchievementLink(self.info.cheevID); |
93 if ( achievementLink ) then | 89 if ( achievementLink ) then |
366 local print = B.print('ObjectiveWidgets') | 362 local print = B.print('ObjectiveWidgets') |
367 local params = mod.WidgetParams[self.widgetType] | 363 local params = mod.WidgetParams[self.widgetType] |
368 self.height = params.height | 364 self.height = params.height |
369 self:SetHeight(20) | 365 self:SetHeight(20) |
370 self.bg:SetHeight(20) | 366 self.bg:SetHeight(20) |
367 self.fg:ClearAllPoints() | |
368 self.fg:SetPoint('BOTTOMLEFT', self, 'BOTTOMLEFT', 2, 2) | |
371 self.fg:SetHeight(16) | 369 self.fg:SetHeight(16) |
372 self.fg:SetPoint('BOTTOMLEFT', self.bg, 'BOTTOMLEFT', 1, 1) | |
373 self.quantityString:SetFontObject(params.quantityString.SetFontObject) | 370 self.quantityString:SetFontObject(params.quantityString.SetFontObject) |
374 self.quantityString:SetText(self.info.quantityString) | 371 self.quantityString:SetText(self.info.quantityString) |
375 end | 372 end |
376 | 373 |
377 mod.UpdateWidget.ProgressBar = function (self) | 374 mod.UpdateWidget.ProgressBar = function (self) |
378 local print = B.print('ObjectiveWidgets') | 375 local print = B.print('ObjectiveWidgets') |
379 local quantity, requiredQuantity = self.info.quantity, self.info.requiredQuantity | 376 local quantity, requiredQuantity = self.info.quantity, self.info.requiredQuantity |
380 | 377 |
381 if self.info.finished then | 378 if self.info.finished then |
382 self.fg:SetWidth(self.bg:GetWidth() - 2) | 379 self.fg:SetWidth(self.bg:GetWidth() - 4) |
383 elseif quantity == 0 then | 380 elseif quantity == 0 then |
384 self.fg:Hide() | 381 self.fg:Hide() |
385 else | 382 else |
386 self.fg:Show() | 383 self.fg:Show() |
387 self.fg:SetWidth((self:GetWidth()-2) * (quantity / requiredQuantity)) | 384 self.fg:SetWidth((self.bg:GetWidth()-4) * (quantity / requiredQuantity)) |
388 end | 385 end |
389 end | 386 end |