Files
wnsrc/lua/vgui/dcategorylist.lua
lifestorm 9c918c46e5 Upload
2024-08-04 23:12:27 +03:00

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