local PANEL = {}
/*---------------------------------------------------------
Name: Init
---------------------------------------------------------*/
function PANEL:Init()
self.Items = {}
self.YOffset = 0
self:SetSpacing( 0 )
self:SetPadding( 4 )
self:EnableHorizontal( false )
self.BackgroundColor
= Color( 0,
0,
0,
200 )
end
/*---------------------------------------------------------
Name: EnableHorizontal
---------------------------------------------------------*/
function PANEL:EnableHorizontal( bHoriz )
self.Horizontal = bHoriz
end
/*---------------------------------------------------------
Name: EnableVerticalScrollbar
---------------------------------------------------------*/
function PANEL:EnableVerticalScrollbar()
if (self.VBar) then return end
end
/*---------------------------------------------------------
Name: GetCanvas
---------------------------------------------------------*/
function PANEL:GetCanvas()
return self.pnlCanvas
end
/*---------------------------------------------------------
Name: GetCanvas
---------------------------------------------------------*/
for k, panel
in pairs( self.Items
) do
end
self.Items = {}
end
/*---------------------------------------------------------
Name: AddItem
---------------------------------------------------------*/
function PANEL:AddItem( item )
end
/*---------------------------------------------------------
Name: Rebuild
---------------------------------------------------------*/
function PANEL:Rebuild()
local Offset = 0
if ( self.Horizontal ) then
local x, y = 0, 0;
for k, panel
in pairs( self.Items
) do
x = 0
y = y + h + self.Spacing
end
x = x + w + self.Spacing
Offset = y + h + self.Spacing
end
else
for k, panel
in pairs( self.Items
) do
Offset
= Offset + panel:
GetTall() + self.Spacing
end
end
self:GetCanvas
():
SetSize( self:GetCanvas
():
GetWide(), Offset + self.Padding
* 2 - self.Spacing
)
end
/*---------------------------------------------------------
Name: OnMouseWheeled
---------------------------------------------------------*/
function PANEL:OnMouseWheeled( dlta )
if ( self.VBar ) then
end
end
/*---------------------------------------------------------
Name: Paint
---------------------------------------------------------*/
function PANEL:Paint()
return true
end
/*---------------------------------------------------------
Name: SetSpacing
---------------------------------------------------------*/
function PANEL:SetSpacing( _num_ )
self.Spacing = _num_
end
/*---------------------------------------------------------
Name: SetPadding
---------------------------------------------------------*/
function PANEL:SetPadding( _num_ )
self.Padding = _num_
end
/*---------------------------------------------------------
Name: Think
---------------------------------------------------------*/
function PANEL:Think()
if ( self.VBar && self.VBar:Changed() ) then
self.YOffset = MaxOffset * self.VBar:Value()
end
end
/*---------------------------------------------------------
Name: PerformLayout
---------------------------------------------------------*/
function PANEL:PerformLayout()
if ( self.VBar ) then
if ( self.VBar.Enabled ) then Wide = Wide - 20 end
end
self.pnlCanvas:
SetPos( self.Padding, self.YOffset
* -
1 + self.Padding
)
self.pnlCanvas:
SetSize( Wide - self.Padding
* 2, self.pnlCanvas:
GetTall() )
self:Rebuild()
end
function PANEL:OnMousePressed( mcode )
if ( mcode == MOUSE_RIGHT ) then
if ( self.VBar ) then
self.VBar:Grip()
end
end
end