MoveIt.Modules.Reposition = {} function MoveIt.Modules.Reposition:Apply(frameName) local modSettings = MoveIt:GetFrameSettings(frameName, "Reposition") local handle = MoveIt:GetFrameHandle(frameName) handle:ClearAllPoints() handle:SetPoint( modSettings.AnchorPointFrom, MoveIt:GetFrameHandle(modSettings.AnchorTargetFrame), modSettings.AnchorPointTo, modSettings.OffsetX, modSettings.OffsetY ) end function MoveIt.Modules.Reposition:Revert(frameName) local originalSettings = MoveIt.originalSettings[frameName].Reposition MoveIt:SetFrameSettings(frameName, "Reposition", { OffsetX = originalSettings.OffsetX, OffsetY = originalSettings.OffsetY, AnchorPointFrom = originalSettings.AnchorPointFrom, AnchorPointTo = originalSettings.AnchorPointTo, AnchorTargetFrame = originalSettings.AnchorTargetFrame, Enabled = false }) self:Apply(frameName) end function MoveIt.Modules.Reposition:GetOriginalSettings(frameName) local handle = MoveIt:GetFrameHandle(frameName) local point, relativeTo, relativePoint, xOfs, yOfs = handle:GetPoint() local offsetX, offsetY = 0, 0 local anchorPointFrom = "CENTER" local anchorPointTo = "CENTER" local anchorTarget = "UIParent" if xOfs ~= nil then offsetX = xOfs end if yOfs ~= nil then offsetY = yOfs end if point ~= nil then anchorPointFrom = point end if relativePoint ~= nil then anchorPointTo = relativePoint end if relativeTo ~= nil then anchorTarget = MoveIt:GetFrameName(relativeTo) elseif handle:GetParent() ~= nil then anchorTarget = MoveIt:GetFrameName(handle:GetParent()) end return { OffsetX = offsetX, OffsetY = offsetY, AnchorPointFrom = anchorPointFrom, AnchorPointTo = anchorPointTo, AnchorTargetFrame = anchorTarget } end