Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

200 lines (157 sloc) 4.218 kB
--[[
bagBar.lua
Defines the Dominos bagBar object
--]]
local NT_RATIO = 64/37
local _G = getfenv(0)
local LBF = LibStub('LibButtonFacade', true)
--load up the bag set...
local bags = {}
do
local function ResizeItemButton(b, size)
b:SetWidth(size)
b:SetHeight(size)
b:GetNormalTexture():SetWidth(size * NT_RATIO)
b:GetNormalTexture():SetHeight(size * NT_RATIO)
local count = _G[b:GetName() .. 'Count']
count:SetFontObject('NumberFontNormalSmall')
count:SetPoint('BOTTOMRIGHT', 0, 2)
_G[b:GetName() .. 'Stock']:SetFontObject('NumberFontNormalSmall')
_G[b:GetName() .. 'Stock']:SetVertexColor(1, 1, 0)
end
local function CreateKeyRing(name)
local b = CreateFrame('CheckButton', name, UIParent, 'ItemButtonTemplate')
b:RegisterForClicks('anyUp')
b:Hide()
b:SetScript('OnClick', function()
if CursorHasItem() then
PutKeyInKeyRing()
else
ToggleKeyRing()
end
end)
b:SetScript('OnReceiveDrag', function()
if CursorHasItem() then
PutKeyInKeyRing()
end
end)
b:SetScript('OnEnter', function(self)
GameTooltip:SetOwner(self, 'ANCHOR_LEFT')
local color = HIGHLIGHT_FONT_COLOR
GameTooltip:SetText(KEYRING, color.r, color.g, color.b)
GameTooltip:AddLine()
end)
b:SetScript('OnLeave', function()
GameTooltip:Hide()
end)
_G[b:GetName() .. 'IconTexture']:SetTexture('Interface\\ContainerFrame\\KeyRing-Bag-Icon')
_G[b:GetName() .. 'IconTexture']:SetTexCoord(0, 0.9, 0.1, 1)
ResizeItemButton(b, 30)
end
CreateKeyRing('DominosKeyringButton')
ResizeItemButton(_G['MainMenuBarBackpackButton'], 30)
end
--[[ Bag Bar ]]--
local BagBar = Dominos:CreateClass('Frame', Dominos.Frame)
Dominos.BagBar = BagBar
function BagBar:New()
local f = self.super.New(self, 'bags')
f:Reload()
return f
end
function BagBar:SkinButton(b)
if b.skinned then return end
if LBF then
LBF:Group('Dominos', 'Bag Bar'):AddButton(b, {Icon = _G[b:GetName() .. 'IconTexture']})
end
b.skinned = true
end
function BagBar:GetDefaults()
return {
point = 'BOTTOMRIGHT',
spacing = 2,
}
end
function BagBar:SetSetOneBag(enable)
self.sets.oneBag = enable or nil
self:Reload()
end
function BagBar:SetShowKeyring(enable)
if enable then
self.sets.hideKeyring = nil
else
self.sets.hideKeyring = true
end
self:Reload()
end
function BagBar:Reload()
if not self.bags then
self.bags = {}
else
for i = 1, #self.bags do
self.bags[i] = nil
end
end
if not self.sets.hideKeyring then
table.insert(self.bags, _G['DominosKeyringButton'])
end
if not self.sets.oneBag then
table.insert(self.bags, _G['CharacterBag3Slot'])
table.insert(self.bags, _G['CharacterBag2Slot'])
table.insert(self.bags, _G['CharacterBag1Slot'])
table.insert(self.bags, _G['CharacterBag0Slot'])
end
table.insert(self.bags, _G['MainMenuBarBackpackButton'])
self:SetNumButtons(#self.bags)
end
--[[ Frame Overrides ]]--
function BagBar:AddButton(i)
local b = self.bags[i]
b:SetParent(self.header)
b:Show()
self:SkinButton(b)
self.buttons[i] = b
end
function BagBar:RemoveButton(i)
local b = self.buttons[i]
if b then
b:SetParent(nil)
b:Hide()
self.buttons[i] = nil
end
end
function BagBar:UpdateButtonCount(numButtons)
for i = 1, #self.buttons do
self:RemoveButton(i)
end
for i = 1, numButtons do
self:AddButton(i)
end
end
function BagBar:NumButtons()
return #self.bags
end
function BagBar:CreateMenu()
local menu = Dominos:NewMenu(self.id)
local panel = menu:AddLayoutPanel()
local L = LibStub('AceLocale-3.0'):GetLocale('Dominos-Config')
--add onebag and showkeyring options
local oneBag = panel:NewCheckButton(L.OneBag)
oneBag:SetScript('OnShow', function()
oneBag:SetChecked(self.sets.oneBag)
end)
oneBag:SetScript('OnClick', function()
self:SetSetOneBag(oneBag:GetChecked())
_G[panel:GetName() .. L.Columns]:OnShow()
end)
local showKeyring = panel:NewCheckButton(L.ShowKeyring)
showKeyring:SetScript('OnShow', function()
showKeyring:SetChecked(not self.sets.hideKeyring)
end)
showKeyring:SetScript('OnClick', function()
self:SetShowKeyring(showKeyring:GetChecked())
_G[panel:GetName() .. L.Columns]:OnShow()
end)
menu:AddAdvancedPanel()
self.menu = menu
end
Jump to Line
Something went wrong with that request. Please try again.