
local PANEL = {}

/*---------------------------------------------------------
   Name: Init
---------------------------------------------------------*/
function PANEL:Init()

	self.Material = nil
	self.AutoSize = true
	self:SetAlpha( 255 )
	
	self:SetMouseInputEnabled( false )
	self:SetKeyboardInputEnabled( false )
	
end


/*---------------------------------------------------------
   Name: Paint
---------------------------------------------------------*/
function PANEL:Paint()
	
	if (!self.Material) then return true end
	
	surface.SetMaterial( self.Material )
	surface.SetDrawColor( 255, 255, 255, self.Alpha )
	surface.DrawTexturedRect( 0, 0, self:GetWide(), self:GetTall() ) 
	
	return true
	
end


/*---------------------------------------------------------
   Name: SetAlpha
---------------------------------------------------------*/
function PANEL:SetAlpha( _alpha_ )

	self.Alpha = _alpha_
	
end


/*---------------------------------------------------------
   Name: SetMaterial
---------------------------------------------------------*/
function PANEL:SetMaterial( _matname_ )
	
	//self.Material = surface.GetTextureID( _matname_ )
	
	self.Material = Material( _matname_ )
	local Texture = self.Material:GetMaterialTexture( "$basetexture" )
	if ( Texture ) then
		self.Width = Texture:GetActualWidth()
		self.Height = Texture:GetActualHeight()
	else
		self.Width = 32
		self.Height = 32
	end
	
	self:InvalidateLayout()
	
end


/*---------------------------------------------------------
   Name: PerformLayout
---------------------------------------------------------*/
function PANEL:PerformLayout()

	if (!self.Material) then return end
	if (!self.AutoSize) then return end
	
	self:SetSize( self.Width, self.Height )

end


vgui.Register( "Material", PANEL, "Button" )