Mercurial > wow > buffalo2
comparison Veneer.lua @ 89:74e714637d6a
WorldStateProgress fade-in is called for all visibility check falses
author | Nenue |
---|---|
date | Fri, 21 Oct 2016 18:03:35 -0400 |
parents | b107b4df7eb6 |
children | 6e2cb847c3c6 |
comparison
equal
deleted
inserted
replaced
88:b107b4df7eb6 | 89:74e714637d6a |
---|---|
122 end | 122 end |
123 | 123 |
124 function VeneerCore:OnDragStart() | 124 function VeneerCore:OnDragStart() |
125 self:StartMoving() | 125 self:StartMoving() |
126 end | 126 end |
127 | |
128 | 127 |
129 function VeneerCore:OnDragStop() | 128 function VeneerCore:OnDragStop() |
130 self:StopMovingOrSizing() | 129 self:StopMovingOrSizing() |
131 end | 130 end |
132 | 131 |
162 primaryAnchor = 'TOPLEFT' | 161 primaryAnchor = 'TOPLEFT' |
163 end | 162 end |
164 if not insertPosition then | 163 if not insertPosition then |
165 insertPosition = #clusterTable + 1 | 164 insertPosition = #clusterTable + 1 |
166 end | 165 end |
167 | |
168 | |
169 return primaryAnchor, clusterTable, insertPosition | 166 return primaryAnchor, clusterTable, insertPosition |
170 end | 167 end |
171 | 168 |
172 function VeneerCore:AddHandler(handler, ...) | 169 function VeneerCore:AddHandler(handler, ...) |
173 print('*** Adding handler:', handler.moduleName or handler:GetName()) | 170 print('*** Adding handler:', handler.moduleName or handler:GetName()) |
178 frame.clusterIndex = i + 1 | 175 frame.clusterIndex = i + 1 |
179 end | 176 end |
180 end | 177 end |
181 tinsert(clusterTable, clusterIndex, handler) | 178 tinsert(clusterTable, clusterIndex, handler) |
182 print('cluster', anchorGroup, 'table', clusterTable, 'position', clusterIndex) | 179 print('cluster', anchorGroup, 'table', clusterTable, 'position', clusterIndex) |
183 | |
184 | 180 |
185 handler.anchorCluster = clusterTable | 181 handler.anchorCluster = clusterTable |
186 handler.anchorIndex = clusterIndex | 182 handler.anchorIndex = clusterIndex |
187 for k,v in pairs(VeneerHandlerMixin) do | 183 for k,v in pairs(VeneerHandlerMixin) do |
188 if not handler[k] then | 184 if not handler[k] then |
195 if handler.Setup and not handler.initialized then | 191 if handler.Setup and not handler.initialized then |
196 handler:Setup() | 192 handler:Setup() |
197 handler.initialized = true | 193 handler.initialized = true |
198 end | 194 end |
199 self:InternalReanchor(handler) | 195 self:InternalReanchor(handler) |
200 | |
201 end | 196 end |
202 end | 197 end |
203 | 198 |
204 function VeneerCore:Reanchor() | 199 function VeneerCore:Reanchor() |
205 self:ExecuteOnClusters(nil, 'Reanchor') | 200 self:ExecuteOnClusters(nil, 'Reanchor') |
225 local lastFrame | 220 local lastFrame |
226 for index, frame in ipairs(cluster) do | 221 for index, frame in ipairs(cluster) do |
227 print(' |cFF00FF00'..index, frame:GetName(), frame:IsVisible()) | 222 print(' |cFF00FF00'..index, frame:GetName(), frame:IsVisible()) |
228 if frame:IsVisible() then | 223 if frame:IsVisible() then |
229 anchorPoint = frame.anchorPoint | 224 anchorPoint = frame.anchorPoint |
230 | |
231 | |
232 frame:ClearAllPoints() | 225 frame:ClearAllPoints() |
233 if lastFrame then | 226 if lastFrame then |
234 frame:SetPoint(anchorPoint, lastFrame, ANCHOR_OFFSET_POINT[anchorPoint], 0, 0) | 227 frame:SetPoint(anchorPoint, lastFrame, ANCHOR_OFFSET_POINT[anchorPoint], 0, 0) |
235 else | 228 else |
236 frame:SetPoint(anchorPoint, UIParent, anchorPoint, 0, 0) | 229 frame:SetPoint(anchorPoint, UIParent, anchorPoint, 0, 0) |
248 local anchorPoint = handler.anchorPath or handler.anchorPoint | 241 local anchorPoint = handler.anchorPath or handler.anchorPoint |
249 local anchorParent, anchorTo = UIParent, anchorPoint | 242 local anchorParent, anchorTo = UIParent, anchorPoint |
250 local subPoint, subTo | 243 local subPoint, subTo |
251 local nextFrame | 244 local nextFrame |
252 for index, frame in ipairs(handler.anchorCluster) do | 245 for index, frame in ipairs(handler.anchorCluster) do |
253 | |
254 print(' |cFF00FF00'..index, frame:GetName(), frame:IsVisible()) | 246 print(' |cFF00FF00'..index, frame:GetName(), frame:IsVisible()) |
255 if frame:IsVisible() then | 247 if frame:IsVisible() then |
256 if frame ~= handler then | 248 if frame ~= handler then |
257 anchorParent = frame | 249 anchorParent = frame |
258 anchorTo = ANCHOR_OFFSET_POINT[anchorPoint] | 250 anchorTo = ANCHOR_OFFSET_POINT[anchorPoint] |
286 printFunc('|cFF88FF00'..handler:GetName()..':SetPoint(', handler.anchorPoint, anchorParent, anchorTo) | 278 printFunc('|cFF88FF00'..handler:GetName()..':SetPoint(', handler.anchorPoint, anchorParent, anchorTo) |
287 end | 279 end |
288 end | 280 end |
289 | 281 |
290 function VeneerCore:SlideBlock(frame, ...) | 282 function VeneerCore:SlideBlock(frame, ...) |
291 | |
292 local anchorPoint, parent, anchorTo, pX,pY = ... | |
293 print(' |cFF0088FFSlide:|r', frame, 'to', parent, pX,pY) | |
294 local qX, qY = pX, pY | |
295 local bX, bY | |
296 local dX, dY = 0, 0 | |
297 local aX, aY = frame:GetLeft(), frame:GetTop() | 283 local aX, aY = frame:GetLeft(), frame:GetTop() |
298 local str = '' | 284 |
299 if not aX then | 285 frame:SetPoint('TOPLEFT', frame, 'BOTTOMLEFT', aX, aY) |
300 dY = ((anchorPoint == 'TOP') and frame:GetHeight()) or (((anchorPoint == 'BOTTOM') and -frame:GetHeight()) or 0) | 286 frame.animation = frame.animation or {} |
301 dX = ((anchorPoint == 'LEFT') and -frame:GetWidth()) or (((anchorPoint == 'RIGHT') and frame:GetWidth()) or 0) | 287 frame.animation.startX = aX |
302 qX = pX + dX | 288 frame.animation.startY = aY |
303 qY = pY + dY | 289 |
304 aX, aY = qX, qY | 290 local targetPoint, targetParent, targetAnchor, offsetX, offsetY = ... |
305 bX, bY = pX, pY | 291 frame.BlockSlide:SetScript('OnFinished', function() |
306 str = '|cFFFFFF00relative|r' | 292 frame:SetPoint(targetPoint, targetParent, targetAnchor, offsetX, offsetY) |
307 else | 293 VeneerAnimationMixin.OnFinished(frame) |
308 frame:ClearAllPoints() | 294 end) |
309 | 295 |
310 bX, bY = frame:GetLeft(), frame:GetTop() | |
311 dX, dY = (bX-aX), (bY-aY) | |
312 | |
313 str = '|cFFFFFF00existing|r' | |
314 end | |
315 | |
316 if ((dX ~= 0) or (dY ~= 0)) and frame.BlockSlide then | |
317 print(' |cFF00FF88Slide result:|r',str, dX, dY) | |
318 | |
319 frame:ClearAllPoints() | |
320 frame:SetPoint(anchorPoint, parent, anchorTo, qX, qY) | |
321 frame.BlockSlide.dX = dX | |
322 frame.BlockSlide.dY = dY | |
323 frame.BlockSlide.sourcePoint = {anchorPoint, parent, anchorTo, qX, qY} | |
324 frame.BlockSlide.destPoint = {anchorPoint, parent, anchorTo, pX,pY} | |
325 frame.BlockSlide.translation:SetOffset(dX, dY) | |
326 frame.BlockSlide:Play() | |
327 return | |
328 end | |
329 end | 296 end |
330 | 297 |
331 | 298 |
332 function VeneerCore:ExecuteOnClusters(layer, method) | 299 function VeneerCore:ExecuteOnClusters(layer, method) |
333 self.parserDepth = self.parserDepth + 1 | 300 self.parserDepth = self.parserDepth + 1 |
498 | 465 |
499 end | 466 end |
500 | 467 |
501 function VeneerAnimationMixin:OnPlay() | 468 function VeneerAnimationMixin:OnPlay() |
502 PlaySoundKitID(229) | 469 PlaySoundKitID(229) |
470 self.animating = true | |
503 print('|cFF00FF00Anim:OnPlay|r @', unpack(self.sourcePoint)) | 471 print('|cFF00FF00Anim:OnPlay|r @', unpack(self.sourcePoint)) |
504 end | 472 end |
505 function VeneerAnimationMixin:OnStop() | 473 function VeneerAnimationMixin:OnStop() |
506 PlaySoundKitID(229) | 474 PlaySoundKitID(229) |
475 self.animating = nil | |
476 print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint)) | |
507 end | 477 end |
508 function VeneerAnimationMixin:OnFinished() | 478 function VeneerAnimationMixin:OnFinished() |
509 PlaySoundKitID(229) | 479 PlaySoundKitID(229) |
480 self.animating = nil | |
510 print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint)) | 481 print('|cFF00FF00Anim:OnFinish|r @', unpack(self.destPoint)) |
511 self:GetParent():ClearAllPoints() | 482 end |
512 self:GetParent():SetPoint(unpack(self.destPoint)) | |
513 end |