View Single Post
05-22-10, 06:31 PM   #24
Tuller
A Warpwood Thunder Caller
 
Tuller's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2005
Posts: 91
It needs some work, but here's McBag


Commands:
/mb - Toggle window.

1:
Code:
local F,CNS,Mt,C,g=CF('Button','McBag',UIParent),GetContainerNumSlots,setmetatable,ceil,{0,1,2,3,4,5}local B,H=function(i,b)b=F.b[i]b.size=CNS(i)return b end,function(i)for k,v in pairs(g)do if v==i then return k end end end Ij(F,{b=Mt({},{__index=
2:
Code:
function(t,k,f)f=CF('Frame',F:GetName()..'B'..k,F)f:SetID(k)t[k]=f f.i=Mt({},{__index=function(t,i,s)s=CF('Button',f:GetName()..'Item'..i,f,'ContainerFrameItemButtonTemplate')s:SetID(i)t[i]=s return s end})return f end}),lo=function(c,p,i,z,t)i,z=1,36+p
3:
Code:
for _,b in ipairs(g)do for _,v in pairs(B(b).i)do F.H(v)end for s=1,CNS(b)do t=B(b).i[s]t:ClearAllPoints()F.SP(t,'TOPLEFT',F,'TOPLEFT',(i-1)%c*z+8,-(C(i/c)-1)*z-24)F.S(t)i=i+1 end F.up(b)end F:SS(z*min(c,i)-p+16,z*(C(i/c)-1)-p+32)end,up=function(i)if H(i)
4:
Code:
then ContainerFrame_Update(B(i))end end,ul=function(i,s)if H(i)and s then ContainerFrame_UpdateLockedItem(B(i),s)end end})F:SetBackdrop{bgFile=[[Interface\ChatFrame\ChatFrameBackground]],edgeFile=[[Interface\Tooltips\UI-Tooltip-Border]],edgeSize=16,tile=1
5:
Code:
,tileSize=16,insets={left=4,right=4,top=4,bottom=4}}F:SetBackdropColor(0,0,0,.5)F:SSc('OnEvent',function(s,e,...)s[e](...)end)F.RE=function(e,m)F:R(e)F[e]=F[m]end F.RE('BAG_UPDATE','up')F.RE('ITEM_LOCK_CHANGED','ul')F:MM()F.lo(8,2)F:SP('RIGHT',-48,0)F:H()
6:
Code:
SL(function()if F:IsShown()then F:H()else F:S()end end,'/mb')
Original:
Code:
local F,CNS,Mt,C,g=CF('Button','McBag',UIParent),GetContainerNumSlots,setmetatable,ceil,{0,1,2,3,4,5}
local B,H=function(i,b) b=F.b[i] b.size=CNS(i) return b end,function(i)for k,v in pairs(g) do if v == i then return k end end end
Ij(F,{
	b=Mt({},{__index=function(t,k,f)
		f=CF('Frame',F:GetName()..'B'..k,F) f:SetID(k) t[k]=f
		f.i=Mt({},{__index=function(t,i,s)
			s=CF('Button',f:GetName()..'Item'..i,f,'ContainerFrameItemButtonTemplate') s:SetID(i) t[i]=s
			return s
		end})
		return f
	end}),
	lo=function(c,p,i,z,t)
		i,z=1,36+p
		for _,b in ipairs(g) do
			for _,v in pairs(B(b).i) do F.H(v) end
			for s=1,CNS(b) do
				t=B(b).i[s]
				t:ClearAllPoints()
				F.SP(t,'TOPLEFT',F,'TOPLEFT',(i-1)%c*z+8,-(C(i/c)-1)*z-24)
				F.S(t)
				i=i+1
			end
			F.up(b)
		end
		F:SS(z*min(c,i)-p+16,z*(C(i/c)-1)-p+32)
	end,
	up=function(i)
		if H(i) then
			ContainerFrame_Update(B(i))
		end
	end,
	ul=function(i,s)
		if H(i) and s then
			ContainerFrame_UpdateLockedItem(B(i),s)
		end
	end
})

F:SetBackdrop{
	bgFile=[[Interface\ChatFrame\ChatFrameBackground]],
	edgeFile=[[Interface\Tooltips\UI-Tooltip-Border]],
	edgeSize=16,
	tile=1,
	tileSize=16,
	insets={left=4,right=4,top=4,bottom=4}}
F:SetBackdropColor(0,0,0,.5)

F:SSc('OnEvent',function(s,e,...)s[e](...)end)
F.RE = function(e,m) F:R(e) F[e]=F[m] end
F.RE('BAG_UPDATE','up')
F.RE('ITEM_LOCK_CHANGED','ul')
F:MM()

F.lo(8,2)
F:SP('RIGHT',-48,0)
F:H()
SL(function()if F:IsShown() then F:H() else F:S() end end, '/mb')

Last edited by Tuller : 05-22-10 at 07:19 PM.
  Reply With Quote