vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
local grid
local boxSize = 32

function Grid_Show()
        if not grid then
        Grid_Create()
        elseif grid.boxSize ~= boxSize then
        grid:Hide()
        Grid_Create()
    else
                grid:Show()
        end
end

function Grid_Hide()
        if grid then
                grid:Hide()
        end
end

local isAligning = false
SLASH_TOGGLEGRID1 = "/align"
SlashCmdList["TOGGLEGRID"] = function(arg)
    if isAligning then
        Grid_Hide()
        isAligning = false
    else
        boxSize = (math.ceil((tonumber(arg) or boxSize) / 32) * 32)
    if boxSize > 128 then boxSize = 128 end    
        Grid_Show()
        isAligning = true
    end
end

function Grid_Create() 
        grid = CreateFrame('Frame', nil, UIParent) 
        grid.boxSize = boxSize 
        grid:SetAllPoints(UIParent) 

        local size = 2 
        local width = GetScreenWidth()
        local ratio = width / GetScreenHeight()
        local height = GetScreenHeight() * ratio

        local wStep = width / boxSize
        local hStep = height / boxSize

        for i = 0, boxSize do 
                local tx = grid:CreateTexture(nil, 'BACKGROUND') 
                if i == boxSize / 2 then 
                        tx:SetTexture(1, 0, 0, 0.5) 
                else 
                        tx:SetTexture(0, 0, 0, 0.5) 
                end 
                tx:SetPoint("TOPLEFT", grid, "TOPLEFT", i*wStep - (size/2), 0) 
                tx:SetPoint('BOTTOMRIGHT', grid, 'BOTTOMLEFT', i*wStep + (size/2), 0) 
        end 
        height = GetScreenHeight()
        
        do
                local tx = grid:CreateTexture(nil, 'BACKGROUND') 
                tx:SetTexture(1, 0, 0, 0.5)
                tx:SetPoint("TOPLEFT", grid, "TOPLEFT", 0, -(height/2) + (size/2))
                tx:SetPoint('BOTTOMRIGHT', grid, 'TOPRIGHT', 0, -(height/2 + size/2))
        end
        
        for i = 1, math.floor((height/2)/hStep) do
                local tx = grid:CreateTexture(nil, 'BACKGROUND') 
                tx:SetTexture(0, 0, 0, 0.5)
                
                tx:SetPoint("TOPLEFT", grid, "TOPLEFT", 0, -(height/2+i*hStep) + (size/2))
                tx:SetPoint('BOTTOMRIGHT', grid, 'TOPRIGHT', 0, -(height/2+i*hStep + size/2))
                
                tx = grid:CreateTexture(nil, 'BACKGROUND') 
                tx:SetTexture(0, 0, 0, 0.5)
                
                tx:SetPoint("TOPLEFT", grid, "TOPLEFT", 0, -(height/2-i*hStep) + (size/2))
                tx:SetPoint('BOTTOMRIGHT', grid, 'TOPRIGHT', 0, -(height/2-i*hStep + size/2))
                
        end
        
end

Generated by GNU Enscript 1.6.5.90.