--[[   _                                
    ( )                               
   _| |   __   _ __   ___ ___     _ _ 
 /'_` | /'__`\( '__)/' _ ` _ `\ /'_` )
( (_| |(  ___/| |   | ( ) ( ) |( (_| |
`\__,_)`\____)(_)   (_) (_) (_)`\__,_) 


--]]
local PANEL = {}

--[[---------------------------------------------------------
   Name: Init
-----------------------------------------------------------]]
function PANEL:Init()

	self:SetDropPos( "82" )

end

function PANEL:OnModified()

	-- Override me

end

function PANEL:OnChildRemoved()

	self:InvalidateLayout()
	
end

function PANEL:PerformLayout()

	self:SizeToChildren( false, true )
	
end

function PANEL:OnChildAdded( child )
	
	child:Dock( TOP )
	
	local dn = self:GetDnD()
	if ( dn ) then
		child:Droppable( self:GetDnD() );			
	end
	
	if ( self:IsSelectionCanvas() ) then
		child:SetSelectable( true )
	end
	
end

--[[---------------------------------------------------------
   Name: GenerateExample
-----------------------------------------------------------]]
function PANEL:GenerateExample( ClassName, PropertySheet, Width, Height )

	local pnl = vgui.Create( ClassName )
	pnl:MakeDroppable( "ExampleDraggable", false )
	pnl:SetSize( 200, 200 )
	
	for i=1, 5 do
		
		local btn = pnl:Add( "DButton" )
		btn:SetText( "Button " .. i )
		
	end
	
	for i=1, 5 do
		
		local btn = pnl:Add( "DLabel" )
		btn:SetText( "Label " .. i )
		btn:SetMouseInputEnabled( true )
		
	end
		
	PropertySheet:AddSheet( ClassName, pnl, nil, true, true )

end

derma.DefineControl( "DListLayout", "", PANEL, "DDragBase" )
