comparison Init.lua @ 38:1f8f9cc3d956

- module integration brought up to speed with current frame management structure
author Nenue
date Thu, 21 Apr 2016 11:36:41 -0400
parents e84d645c8ab8
children 756e8aeb040b
comparison
equal deleted inserted replaced
37:e84d645c8ab8 38:1f8f9cc3d956
285 285
286 if #checkForConfig >= 1 then 286 if #checkForConfig >= 1 then
287 local queuedFrame = tremove(checkForConfig) 287 local queuedFrame = tremove(checkForConfig)
288 while queuedFrame do 288 while queuedFrame do
289 B.SetConfigLayers(queuedFrame) 289 B.SetConfigLayers(queuedFrame)
290 B.InitXMLFrame(queuedFrame) 290 B.UpdateXMLFrame(queuedFrame)
291 queuedFrame = tremove(checkForConfig) 291 queuedFrame = tremove(checkForConfig)
292 end 292 end
293 end 293 end
294 -- remove from existing 294 -- remove from existing
295 end 295 end
419 end 419 end
420 420
421 print('['..func..'] updated', #layers, 'regions,', numAnchors, 'frames') 421 print('['..func..'] updated', #layers, 'regions,', numAnchors, 'frames')
422 end 422 end
423 423
424 local XMLFrame_SetEnabled = function(self, value) 424 local XMLFrame_Enable = function(self, value)
425 local name = self:GetName() 425 local name = self:GetName()
426 426
427 427
428 if not B.Conf[name] then 428 if not B.Conf[name] then
429 B.Conf[name] = { 429 B.Conf[name] = {
467 else 467 else
468 if self.OnDisable then 468 if self.OnDisable then
469 self:OnDisable() 469 self:OnDisable()
470 end 470 end
471 end 471 end
472
473
474 end 472 end
475 --- Generic handlers for keeping track of XML-defined frames 473 --- Generic handlers for keeping track of XML-defined frames
476 B.OnLoad = function(self) 474
477 tinsert(checkForConfig, self) 475 local XMLFrame_OnDragStart = function(self)
478 self.SetEnabled = XMLFrame_SetEnabled
479 end
480
481 B.InitXMLFrame = function(self)
482 local name = self:GetName()
483 print('|cFF00FF00hello from '.. name)
484
485 if self.drag then
486 self:RegisterForDrag('LeftButton')
487 else
488 self:EnableMouse(false)
489 end
490
491 if not B.Conf[name] then
492 B.Conf[name] = {
493 enabled = true,
494 }
495 end
496 local c = B.Conf[name]
497
498 if c.position then
499 print('restoring frame position', unpack(c.position))
500 self:ClearAllPoints()
501 local anchorTo, relativePoint, x, y = unpack(c.position)
502 self:SetPoint(anchorTo, UIParent, relativePoint, x, y)
503 else
504 local a, _, b, c, d = self:GetPoint(1)
505 print('seeding default position', a, b, c, d)
506 c.position = {a, b, c, d}
507 end
508 local state = c.enabled
509 self:SetEnabled(state)
510 end
511
512 B.OnDragStart = function(self)
513 self.xA = self:GetLeft() 476 self.xA = self:GetLeft()
514 self.yA = self:GetBottom() 477 self.yA = self:GetBottom()
515 self.anchorTo, self.relativeTo, self.relativePoint, self.x, self.y = self:GetPoint(1) 478 self.anchorTo, self.relativeTo, self.relativePoint, self.x, self.y = self:GetPoint(1)
516 print('acquire anchor', self:GetPoint(1)) 479 print('acquire anchor', self:GetPoint(1))
517 print(self:GetName(), 'start moving ('..self.x..', '..self.y..')') 480 print(self:GetName(), 'start moving ('..self.x..', '..self.y..')')
518 self:StartMoving() 481 self:StartMoving()
519 end 482 end
520 483
521 B.OnDragStop = function(self) 484 local XMLFrame_OnDragStop = function(self)
522 local name = self:GetName() 485 local name = self:GetName()
523 print(name, 'stop moving ('..self:GetLeft()..', '..self:GetBottom()..')') 486 print(name, 'stop moving ('..self:GetLeft()..', '..self:GetBottom()..')')
524 local xB = self:GetLeft() - self.xA 487 local xB = self:GetLeft() - self.xA
525 local yB = self:GetBottom() - self.yA 488 local yB = self:GetBottom() - self.yA
526 print('storing anchor point', self.anchorTo, self.relativePoint, self.x + xB, self.y + yB) 489 print('storing anchor point', self.anchorTo, self.relativePoint, self.x + xB, self.y + yB)
527 490
528 self:StopMovingOrSizing() 491 self:StopMovingOrSizing()
529 B.Conf[name].position = {self.anchorTo, self.relativePoint, self.x + xB, self.y + yB} 492 B.Conf[name].position = {self.anchorTo, self.relativePoint, self.x + xB, self.y + yB}
530 B.InitXMLFrame(self) 493 B.UpdateXMLFrame(self)
531 end 494 end
495
496 B.RegisterModuleFrame = function(self, moduleName)
497 tinsert(checkForConfig, self)
498 self.Enable = XMLFrame_Enable
499 self.moduleName = moduleName
500 print('|cFF00FF00XML stuff related to '.. tostring(moduleName) .. ':', name)
501 end
502
503 B.UpdateXMLFrame = function(self)
504
505 local name = self:GetName()
506
507
508 if self.drag then
509 self:RegisterForDrag('LeftButton')
510 self:SetScript('OnDragStart', XMLFrame_OnDragStart)
511 if self.OnDragStop then
512 self:SetScript('OnDragStop', function(self, ...)
513 self:OnDragStop(self, ...)
514 XMLFrame_OnDragStop(self, ...)
515 end)
516 else
517 self:SetScript('OnDragStop', XMLFrame_OnDragStop)
518 end
519 else
520 self:EnableMouse(false)
521 end
522
523 if not B.Conf[name] then
524 B.Conf[name] = {
525 enabled = self.enabled,
526 }
527 end
528 local c = B.Conf[name]
529
530 if not c.position then
531 local a, _, b, c, d = self:GetPoint(1)
532 print('seeding default position', a, b, c, d)
533 c.position = {a, b, c, d }
534 else
535
536 print('restoring frame position', unpack(c.position))
537 self:ClearAllPoints()
538 local anchorTo, relativePoint, x, y = unpack(c.position)
539 self:SetPoint(anchorTo, UIParent, relativePoint, x, y)
540 end
541 self:Enable(c.enabled)
542
543
544 end