mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
82 lines
1.5 KiB
Lua
82 lines
1.5 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 = {}
|
|
|
|
function PANEL:Init()
|
|
|
|
self.pnlCanvas:DockPadding( 2, 2, 2, 2 )
|
|
|
|
end
|
|
|
|
function PANEL:AddItem( item )
|
|
|
|
item:Dock( TOP )
|
|
DScrollPanel.AddItem( self, item )
|
|
self:InvalidateLayout()
|
|
|
|
end
|
|
|
|
function PANEL:Add( name )
|
|
|
|
local Category = vgui.Create( "DCollapsibleCategory", self )
|
|
Category:SetLabel( name )
|
|
Category:SetList( self )
|
|
|
|
self:AddItem( Category )
|
|
|
|
return Category
|
|
|
|
end
|
|
|
|
function PANEL:Paint( w, h )
|
|
|
|
derma.SkinHook( "Paint", "CategoryList", self, w, h )
|
|
return false
|
|
|
|
end
|
|
|
|
function PANEL:UnselectAll()
|
|
|
|
for k, v in ipairs( self:GetChildren() ) do
|
|
|
|
if ( v.UnselectAll ) then
|
|
v:UnselectAll()
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
function PANEL:GenerateExample( ClassName, PropertySheet, Width, Height )
|
|
|
|
local ctrl = vgui.Create( ClassName )
|
|
ctrl:SetSize( 300, 300 )
|
|
|
|
local Cat = ctrl:Add( "Test category with text contents" )
|
|
Cat:Add( "Item 1" )
|
|
Cat:Add( "Item 2" )
|
|
|
|
-- The contents can be any panel, even a DPanelList
|
|
local Cat2 = ctrl:Add( "Test category with panel contents" )
|
|
Cat2:SetTall( 100 )
|
|
local Contents = vgui.Create( "DButton" )
|
|
Contents:SetText( "This is the content of the category" )
|
|
Cat2:SetContents( Contents )
|
|
|
|
ctrl:InvalidateLayout( true )
|
|
|
|
PropertySheet:AddSheet( ClassName, ctrl, nil, true, true )
|
|
|
|
end
|
|
|
|
derma.DefineControl( "DCategoryList", "", PANEL, "DScrollPanel" )
|