42 lines
810 B
Lua
42 lines
810 B
Lua
|
|
local PANEL = {}
|
|
|
|
AccessorFunc( PANEL, "m_Color", "Color" )
|
|
AccessorFunc( PANEL, "m_BorderColor", "BorderColor" )
|
|
AccessorFunc( PANEL, "m_Type", "Type" )
|
|
|
|
local RenderTypes = {}
|
|
|
|
function RenderTypes.Rect( pnl )
|
|
local pnlColor = pnl:GetColor()
|
|
|
|
surface.SetDrawColor( pnlColor.r, pnlColor.g, pnlColor.b, pnlColor.a )
|
|
surface.DrawRect( 0, 0, pnl:GetSize() )
|
|
end
|
|
|
|
function PANEL:Init()
|
|
|
|
self:SetColor( color_white )
|
|
|
|
self:SetMouseInputEnabled( false )
|
|
self:SetKeyboardInputEnabled( false )
|
|
|
|
end
|
|
|
|
function PANEL:Paint()
|
|
|
|
RenderTypes[ self.m_Type ]( self )
|
|
|
|
end
|
|
|
|
derma.DefineControl( "DShape", "A shape", PANEL, "DPanel" )
|
|
|
|
-- Convenience function
|
|
function VGUIRect( x, y, w, h )
|
|
local shape = vgui.Create( "DShape" )
|
|
shape:SetType( "Rect" )
|
|
shape:SetPos( x, y )
|
|
shape:SetSize( w, h )
|
|
return shape
|
|
end
|