mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
87 lines
1.8 KiB
Lua
87 lines
1.8 KiB
Lua
--[[
|
|
| 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 = {}
|
|
|
|
local matGrid = Material( "gui/alpha_grid.png", "nocull" )
|
|
|
|
AccessorFunc( PANEL, "m_bBorder", "DrawBorder", FORCE_BOOL )
|
|
AccessorFunc( PANEL, "m_bSelected", "Selected", FORCE_BOOL )
|
|
|
|
AccessorFunc( PANEL, "m_Color", "Color" )
|
|
AccessorFunc( PANEL, "m_PanelID", "ID" )
|
|
|
|
function PANEL:Init()
|
|
|
|
self:SetSize( 10, 10 )
|
|
self:SetMouseInputEnabled( true )
|
|
self:SetText( "" )
|
|
self:SetCursor( "hand" )
|
|
self:SetZPos( 0 )
|
|
|
|
self:SetColor( Color( 255, 0, 255 ) )
|
|
|
|
end
|
|
|
|
function PANEL:IsDown()
|
|
|
|
return self.Depressed
|
|
|
|
end
|
|
|
|
function PANEL:SetColor( color, hideTooltip )
|
|
|
|
if ( !hideTooltip ) then
|
|
|
|
local colorStr = "R: " .. color.r .. "\nG: " .. color.g .. "\nB: " .. color.b .. "\nA: " .. color.a
|
|
self:SetTooltip( colorStr )
|
|
|
|
end
|
|
|
|
self.m_Color = color
|
|
|
|
end
|
|
|
|
function PANEL:Paint( w, h )
|
|
|
|
if ( self:GetColor().a < 255 ) then -- Grid for Alpha
|
|
|
|
surface.SetDrawColor( 255, 255, 255, 255 )
|
|
surface.SetMaterial( matGrid )
|
|
|
|
local size = math.max( 128, math.max( w, h ) )
|
|
local x, y = w / 2 - size / 2, h / 2 - size / 2
|
|
surface.DrawTexturedRect( x, y , size, size )
|
|
|
|
end
|
|
|
|
surface.SetDrawColor( self:GetColor() )
|
|
self:DrawFilledRect()
|
|
|
|
surface.SetDrawColor( 0, 0, 0, 200 )
|
|
surface.DrawRect( 0, 0, w, 1 )
|
|
surface.DrawRect( 0, 0, 1, h )
|
|
|
|
return false
|
|
end
|
|
|
|
function PANEL:GenerateExample( ClassName, PropertySheet, Width, Height )
|
|
|
|
local ctrl = vgui.Create( ClassName )
|
|
ctrl:SetSize( 64, 64 )
|
|
ctrl:SetColor( Color( 255, 0, 0, 128 ) )
|
|
|
|
PropertySheet:AddSheet( ClassName, ctrl, nil, true, true )
|
|
|
|
end
|
|
|
|
derma.DefineControl( "DColorButton", "A Color Button", PANEL, "DLabel" )
|