--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| 	Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]


local PANEL = {}

function PANEL:Init()

	self.Material = nil
	self.AutoSize = true
	self:SetAlpha( 255 )

	self:SetMouseInputEnabled( false )
	self:SetKeyboardInputEnabled( false )

end

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:GetSize() )

	return true

end

function PANEL:SetAlpha( _alpha_ )

	self.Alpha = _alpha_

end

function PANEL:SetMaterial( _matname_ )

	--self.Material = surface.GetTextureID( _matname_ )

	self.Material = Material( _matname_ )
	local Texture = self.Material:GetTexture( "$basetexture" )
	if ( Texture ) then
		self.Width = Texture:Width()
		self.Height = Texture:Height()
	else
		self.Width = 32
		self.Height = 32
	end

	self:InvalidateLayout()

end

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" )
