WoWInterface SVN FuBar_ItemRackFu

[/] [trunk/] [ItemRackFu.lua] - Rev 2

Go to most recent revision | Compare with Previous | Blame | View Log

ItemRackFu = AceLibrary("AceAddon-2.0"):new("FuBarPlugin-2.0")
local dewdrop = AceLibrary("Dewdrop-2.0")
local IR_UCS, helm, cloak, minimap, events = ItemRack.UpdateCurrentSet, ShowingHelm(), ShowingCloak()

ItemRackFu.version = GetAddOnMetadata("Fubar_ItemRackFu", "Version") .. " r" .. ("$Revision: 77659 $"):match("(%d+)")
ItemRackFu.hasIcon = true
ItemRackFu.hasNoColor = true
ItemRackFu.blizzardTooltip = true
ItemRackFu.cannotAttachToMinimap = true
ItemRackFu.cannotDetachTooltip = true

local function posthook(...)
        ItemRackFu:UpdateText()
        return ...
end

local function IRFU_UCS(...)
        return posthook(IR_UCS(...))
end

function ItemRackFu:OnEnable()
        if ItemRackSettings.ShowMinimap == "ON" then minimap = true end
        if ItemRackUser.EnableEvents == "ON" then events = true end
        ItemRack.UpdateCurrentSet = IRFU_UCS
        self:Update()
end

function ItemRackFu:OnMenuRequest()
        dewdrop:AddLine(
                "text", "Show helm",
                "func", function() helm = not helm ShowHelm(helm) end,
                "checked", helm
        )
        dewdrop:AddLine(
                "text", "Show cloak",
                "func", function() cloak = not cloak ShowCloak(cloak) end,
                "checked", cloak
        )
        dewdrop:AddLine()
        dewdrop:AddLine(
                "text", "Show minimap button",
                "func", "ToggleMinimap",
                "arg1", self,
                "checked", minimap
        )
        dewdrop:AddLine(
                "text", "Enable events",
                "func", function() events = not events if events then ItemRack.ToggleEvents() else ItemRackUser.EnableEvents = "OFF" ItemRack.RegisterEvents() end end,
                "checked", events
        )
        dewdrop:AddLine(
                "text", "Edit sets",
                "func", function() ItemRack.ToggleOptions(2) end
        )
        dewdrop:AddLine()
end

function ItemRackFu:ToggleMinimap()
        if ItemRackSettings.ShowMinimap == "ON" then
                minimap = not minimap
                ItemRackSettings.ShowMinimap = "OFF"
                ItemRackMinimapFrame:Hide()
        else
                minimap = not minimap
                ItemRackSettings.ShowMinimap = "ON"
                ItemRackMinimapFrame:Show()
        end
end

function ItemRackFu:OnTooltipUpdate()
        GameTooltip:AddLine("ItemRack")
        GameTooltip:AddLine(" ")
        GameTooltip:AddLine("|cffeda55fLeft-Click|r|cff33ff33: Select a set|r")
        GameTooltip:AddLine("|cffeda55fAlt-Click|r|cff33ff33: Show hidden sets|r")
        GameTooltip:AddLine("|cffeda55fShift-Click|r|cff33ff33: Unequip current set|r")
        GameTooltip:AddLine("|cffeda55fRight-Click|r|cff33ff33: Show menu|r")
end

function ItemRackFu:OnTextUpdate()
        local setname, texture = ItemRackUser.CurrentSet
        if setname then
                self:SetText(setname)
                texture = ItemRackUser.Sets[ItemRackUser.CurrentSet].icon
        else
                self:SetText("ItemRack")
        end
        if texture then
                self:SetIcon(texture)
        else
                self:SetIcon()
        end
end

function ItemRackFu:OnClick()
        if IsShiftKeyDown() then
                if ItemRackUser.CurrentSet and ItemRackUser.Sets[ItemRackUser.CurrentSet] then
                        ItemRack.UnequipSet(ItemRackUser.CurrentSet)
                        return
                end
        end
        if ItemRackMenuFrame:IsVisible() then
                ItemRackMenuFrame:Hide()
        else
                local xpos,ypos = GetCursorPosition()
                if ypos>400 then
                        ItemRack.DockWindows("TOPRIGHT",this,"BOTTOMRIGHT","VERTICAL")
                else
                        ItemRack.DockWindows("BOTTOMRIGHT",this,"TOPRIGHT","VERTICAL")
                end
                ItemRack.BuildMenu(20)
        end
end

Go to most recent revision | Compare with Previous | Blame