vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        Paging.lua
                Scripts for the Paging panel of the Bongos Options menu
--]]

local list;

local function sortList(bar1, bar2)
        if tonumber(bar1.id) and tonumber(bar2.id) then
                return bar1.id < bar2.id;
        elseif not(tonumber(bar1.id) or tonumber(bar2.id)) then
                return bar1.id < bar2.id;
        elseif tonumber(bar1.id) then
                return false;
        end
        return true;
end

function BOptionsPaging_OnMousewheel(scrollframe, direction)
        local scrollbar = getglobal(scrollframe:GetName() .. "ScrollBar");
        scrollbar:SetValue(scrollbar:GetValue() - direction * (scrollbar:GetHeight() / 2));
        BOptionsPagingScrollBar_Update()
end

function BOptionsPaging_OnLoad()
        local name = this:GetName()
        
        local allButton = CreateFrame("CheckButton", name .. "All", this, "BOptionsPagingButton");
        allButton:SetPoint("TOPLEFT", this, "TOPLEFT", 4, 4);
        allButton:SetText("all");
        allButton:SetScript("OnClick", function()
                for i = 1, BActionBar.GetNumber() do
                        BActionBar.SetPaging(i, this:GetChecked())
                end
                BOptionsPagingScrollBar_Update();
        end)
        
        local firstOfRow;       
        local name = this:GetName();
        for i = 1, 6 do
                local button = CreateFrame("CheckButton", name .. (i-1)*3 + 1, this, "BOptionsPagingButton");
                if not firstOfRow then
                        button:SetPoint("TOPLEFT", allButton, "BOTTOMLEFT");
                else
                        button:SetPoint("TOPLEFT", firstOfRow, "BOTTOMLEFT");
                end
                firstOfRow = button;
                for j = 2, 3 do
                        local button = CreateFrame("CheckButton", name .. (i-1)*3 + j, this, "BOptionsPagingButton");
                        button:SetPoint("LEFT", name .. (i-1)*3 + j-1, "RIGHT", 34, 0);
                end
        end
end

function BOptionsPaging_OnShow()
        this.onShow = 1
        getglobal(this:GetName() .. "Skip"):SetMinMaxValues(0, BActionBar.GetNumber() - 1);
        getglobal(this:GetName() .. "SkipHigh"):SetText(BActionBar.GetNumber() - 1);
        getglobal(this:GetName() .. "Skip"):SetValue(BActionSets.g.skip or 0);
        BOptionsPagingScrollBar_Update();
        this.onShow = nil
end

function BOptionsPagingScrollBar_Update()
        local size = BActionBar.GetNumber();
        local offset = BOptionsPanelPagingScrollFrame.offset;
        FauxScrollFrame_Update(BOptionsPanelPagingScrollFrame, size - 1, 18, 18);
        
        for index = 1, 18 do
                local rIndex = index + offset;
                local button = getglobal("BOptionsPanelPaging".. index);
                
                if rIndex <= size then
                        button:SetText(rIndex);
                        button:SetChecked(BActionBar.CanPage(rIndex));
                        button:Show();
                else
                        button:Hide();
                end
        end
end

Generated by GNU Enscript 1.6.5.90.