Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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.