Mercurial > wow > buffalo2
comparison ObjectiveFrame.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 |
|---|---|
| 159 | 159 |
| 160 local Scroller_OnMouseWheel = function(self, delta) | 160 local Scroller_OnMouseWheel = function(self, delta) |
| 161 local r = Scroll:GetHeight() - Scroller:GetHeight() | 161 local r = Scroll:GetHeight() - Scroller:GetHeight() |
| 162 local s = B.Conf.ObjectiveScroll - delta * floor(r/5+.5) | 162 local s = B.Conf.ObjectiveScroll - delta * floor(r/5+.5) |
| 163 local from = self:GetVerticalScroll() | 163 local from = self:GetVerticalScroll() |
| 164 if r == 0 then return end | |
| 165 if s >= r then | 164 if s >= r then |
| 166 s = r | 165 s = r |
| 167 elseif s < 1 then | 166 elseif s < 1 then |
| 168 s = 0 | 167 s = 0 |
| 169 end | 168 end |
| 537 local w = 300 | 536 local w = 300 |
| 538 | 537 |
| 539 previousBlock = handler.Tracker | 538 previousBlock = handler.Tracker |
| 540 local numWatched = handler.GetNumWatched() | 539 local numWatched = handler.GetNumWatched() |
| 541 local numBlocks = handler.numBlocks | 540 local numBlocks = handler.numBlocks |
| 542 local actualBlocks = handler.actualBlocks | 541 local actualBlocks = 0 |
| 543 for watchIndex = 1, 25 do | 542 for watchIndex = 1, 25 do |
| 544 blockIndex = blockIndex + 1 | 543 blockIndex = blockIndex + 1 |
| 545 if watchIndex <= numWatched then | 544 if watchIndex <= numWatched then |
| 546 local info = handler:GetInfo(watchIndex) | 545 local info = handler:GetInfo(watchIndex) |
| 547 if info then | 546 if info then |
| 610 | 609 |
| 611 | 610 |
| 612 -- Update frame dimensions | 611 -- Update frame dimensions |
| 613 if scrollHeight > wrapperMaxHeight then | 612 if scrollHeight > wrapperMaxHeight then |
| 614 print(' is larger than', wrapperMaxHeight) | 613 print(' is larger than', wrapperMaxHeight) |
| 615 --ScrollBar:Show() | |
| 616 --scrollWidth = wrapperMaxWidth - scrollBarWidth | |
| 617 wrapperHeight = wrapperMaxHeight | 614 wrapperHeight = wrapperMaxHeight |
| 618 -- Make ThumbTexture reflect the viewing scale (smaller for longer scroll, bigger for shorter) | 615 else |
| 619 --ScrollBar:GetThumbTexture():SetHeight((wrapperMaxHeight/scrollHeight) * (wrapperMaxHeight)) | |
| 620 --ScrollBar:SetWidth(scrollBarWidth) | |
| 621 --ScrollBar:SetPoint('TOPRIGHT', Scroller, 'TOPRIGHT', 0, 0) | |
| 622 --ScrollBar:SetPoint('BOTTOMLEFT', Scroller, 'BOTTOMRIGHT', -scrollBarWidth, 0) | |
| 623 --ScrollBar:SetMinMaxValues(1, scrollHeight - wrapperMaxHeight) | |
| 624 else | |
| 625 --ScrollBar:Hide() | |
| 626 wrapperHeight = scrollHeight | 616 wrapperHeight = scrollHeight |
| 617 B.Conf.ObjectiveScroll = 0 | |
| 627 end | 618 end |
| 628 scrollWidth = floor(scrollWidth+.5) | 619 scrollWidth = floor(scrollWidth+.5) |
| 629 scrollHeight = floor(scrollHeight+.5) | 620 scrollHeight = floor(scrollHeight+.5) |
| 630 wrapperWidth = floor(wrapperWidth+.5) | 621 wrapperWidth = floor(wrapperWidth+.5) |
| 631 wrapperHeight = floor(wrapperHeight+.5) | 622 wrapperHeight = floor(wrapperHeight+.5) |
