From 19f8f15e4322ed09ebb4a95d4aed356b71621fde Mon Sep 17 00:00:00 2001 From: Xruptor Date: Wed, 18 Apr 2012 11:15:10 -0400 Subject: [PATCH] -Updated RestoreLayout and SaveLayout to be more uniform with the rest of my addons. --- XanReputation.lua | 61 +++++++++++++++++++++-------------------------------- XanReputation.toc | 2 +- 2 files changed, 25 insertions(+), 38 deletions(-) diff --git a/XanReputation.lua b/XanReputation.lua index ac97c45..9240931 100644 --- a/XanReputation.lua +++ b/XanReputation.lua @@ -171,62 +171,49 @@ function f:UpdateREP_Frame() end function f:SaveLayout(frame) - + if type(frame) ~= "string" then return end + if not _G[frame] then return end if not XanREP_DB then XanREP_DB = {} end + + local opt = XanREP_DB[frame] or nil - local opt = XanREP_DB[frame] or nil; - - if opt == nil then + if not opt then XanREP_DB[frame] = { ["point"] = "CENTER", ["relativePoint"] = "CENTER", - ["PosX"] = 0, - ["PosY"] = 0, + ["xOfs"] = 0, + ["yOfs"] = 0, } - opt = XanREP_DB[frame]; + opt = XanREP_DB[frame] + return end - local f = getglobal(frame); - local scale = f:GetEffectiveScale(); - opt.PosX = f:GetLeft() * scale; - opt.PosY = f:GetTop() * scale; - + local point, relativeTo, relativePoint, xOfs, yOfs = _G[frame]:GetPoint() + opt.point = point + opt.relativePoint = relativePoint + opt.xOfs = xOfs + opt.yOfs = yOfs end function f:RestoreLayout(frame) + if type(frame) ~= "string" then return end + if not _G[frame] then return end + if not XanREP_DB then XanREP_DB = {} end - if not XanREP_DB then XanREP_DB = {} end - - local f = getglobal(frame); - local opt = XanREP_DB[frame] or nil; + local opt = XanREP_DB[frame] or nil - if opt == nil then + if not opt then XanREP_DB[frame] = { ["point"] = "CENTER", ["relativePoint"] = "CENTER", - ["PosX"] = 0, - ["PosY"] = 0, + ["xOfs"] = 0, + ["yOfs"] = 0, } - opt = XanREP_DB[frame]; + opt = XanREP_DB[frame] end - local x = opt.PosX; - local y = opt.PosY; - local s = f:GetEffectiveScale(); - - if (not x or not y) or (x==0 and y==0) then - f:ClearAllPoints(); - f:SetPoint("CENTER", UIParent, "CENTER", 0, 0); - return - end - - --calculate the scale - x,y = x/s,y/s; - - --set the location - f:ClearAllPoints(); - f:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", x, y); - + _G[frame]:ClearAllPoints() + _G[frame]:SetPoint(opt.point, UIParent, opt.relativePoint, opt.xOfs, opt.yOfs) end function f:BackgroundToggle(switch) diff --git a/XanReputation.toc b/XanReputation.toc index 8d7c4eb..6db0261 100644 --- a/XanReputation.toc +++ b/XanReputation.toc @@ -2,7 +2,7 @@ ## Title: xanReputation ## Notes: A small window display current reputation xp ## Author: Xruptor -## Version: 1.9.1 +## Version: 1.9.2 ## SavedVariablesPerCharacter: XanREP_DB libs\LibStub.lua -- 1.7.9.5