Garry's Mod Wiki

DCollapsibleCategory

Description

The collapsible category allows you to create numerous sections of controls, and have the ability to contract/expand them.

Consider using DCategoryList if you plan on using more than 1 of these.

View source

Parent

Derives methods, etc not listed on this page from Panel.

Implements

Implements or overrides the following hooks/methods. If you want to override these, you probably want to call the original function too.

Events

DCollapsibleCategory:OnToggle( boolean expanded )
Called by DCollapsibleCategory:Toggle. This function does nothing by itself, as you're supposed to overwrite it.

Methods

Panel DCollapsibleCategory:Add( string name )
Adds a new text button to the collapsible category, like the tool menu in Spawnmenu.
DCollapsibleCategory:AnimSlide( table anim, number delta, table data )
This is used internally - although you're able to use it you probably shouldn't. Internal function that handles the open/close animations.
DCollapsibleCategory:DoExpansion( boolean expand )
Forces the category to open or collapse
number DCollapsibleCategory:GetAnimTime()
Returns the expand/collapse animation time set by DCollapsibleCategory:SetAnimTime.
boolean DCollapsibleCategory:GetDrawBackground()
We advise against using this. It may be changed or removed in a future update. You should use DCollapsibleCategory:GetPaintBackground instead. Returns whether or not the panel background is being drawn. Alias of DCollapsibleCategory:GetPaintBackground.
boolean DCollapsibleCategory:GetExpanded()
Returns whether the DCollapsibleCategory is expanded or not.
number DCollapsibleCategory:GetHeaderHeight()
Returns the header height of the DCollapsibleCategory. See also DCollapsibleCategory:SetHeaderHeight.
Panel DCollapsibleCategory:GetList()
If set, the DCategoryList that created this panel. See also DCollapsibleCategory:SetList.
number DCollapsibleCategory:GetPadding()
We advise against using this. It may be changed or removed in a future update. Doesn't actually do anything. Returns the number set by DCollapsibleCategory:SetPadding.
boolean DCollapsibleCategory:GetPaintBackground()
Returns whether or not the background should be painted.
number DCollapsibleCategory:GetStartHeight()
We advise against using this. It may be changed or removed in a future update. Returns whatever was set by DCollapsibleCategory:SetStartHeight
DCollapsibleCategory:SetAnimTime( number time )
Sets the time in seconds it takes to expand the DCollapsibleCategory
DCollapsibleCategory:SetContents( Panel pnl )
Sets the contents of the DCollapsibleCategory.
DCollapsibleCategory:SetDrawBackground( boolean draw )
We advise against using this. It may be changed or removed in a future update. You should use DCollapsibleCategory:SetPaintBackground instead. Sets whether or not to draw the panel background. Alias of DCollapsibleCategory:SetPaintBackground.
DCollapsibleCategory:SetExpanded( boolean expanded = true )
Sets whether the DCollapsibleCategory is expanded or not upon opening the container. You should use DCollapsibleCategory:Toggle or DCollapsibleCategory:DoExpansion instead.
DCollapsibleCategory:SetHeaderHeight( number height )
Sets the header height of the DCollapsibleCategory. See also DCollapsibleCategory:GetHeaderHeight.
DCollapsibleCategory:SetLabel( string label )
Sets the name of the DCollapsibleCategory.
DCollapsibleCategory:SetList( Panel pnl )
Used internally by DCategoryList when it creates a DCollapsibleCategory during DCategoryList:Add. If set, Panel:UnselectAll will be called on the list, instead of calling it on the category panel itself when a category is clicked.
DCollapsibleCategory:SetPadding( number padding )
We advise against using this. It may be changed or removed in a future update. Doesn't actually do anything.
DCollapsibleCategory:SetPaintBackground( boolean paint )
Sets whether or not the background should be painted.
DCollapsibleCategory:SetStartHeight( number height )
We advise against using this. It may be changed or removed in a future update. Does nothing.
DCollapsibleCategory:Toggle()
Toggles the expanded state of the DCollapsibleCategory. See DCollapsibleCategory:GetExpanded for a function to retrieve the expanded state.
DCollapsibleCategory:UpdateAltLines()
This is used internally - although you're able to use it you probably shouldn't. Used internally to update the "AltLine" property on all "child" panels.

Example

Creates a DCollapsibleCategory panel.

local frame = vgui.Create( "DFrame" ) frame:SetSize( 300, 300 ) frame:Center() frame:MakePopup() local DCollapsible = vgui.Create( "DCollapsibleCategory", frame ) -- Create a collapsible category DCollapsible:SetLabel( "Collapsible Category" ) -- Set the name ( label ) DCollapsible:SetPos( 25, 50 ) -- Set position DCollapsible:SetSize( 250, 100 ) -- Set size DCollapsible:SetExpanded( false ) -- Start collapsed local DermaList = vgui.Create( "DPanelList", DermaPanel ) -- Make a list of items to add to our category (collection of controls) DermaList:SetSpacing( 5 ) -- Set the spacing between items DermaList:EnableHorizontal( false ) -- Only vertical items DermaList:EnableVerticalScrollbar( true ) -- Enable the scrollbar if (the contents are too wide) DCollapsible:SetContents( DermaList ) -- Add DPanelList to our Collapsible Category local CategoryContentOne = vgui.Create( "DCheckBoxLabel" ) -- This section creates a checkbox and CategoryContentOne:SetText( "God mode" ) -- sets up its settings CategoryContentOne:SetConVar( "sbox_godmode" ) CategoryContentOne:SetValue( 0 ) CategoryContentOne:SizeToContents() DermaList:AddItem( CategoryContentOne ) -- Add the checkbox to the category local CategoryContentTwo = vgui.Create( "DLabel" ) -- Make some more content CategoryContentTwo:SetText( "Hello" ) DermaList:AddItem( CategoryContentTwo ) -- Add it to the categoryDCollapsible:SetContents( DermaList ) -- Set the contents of the category to the list
Output:

Preview from the derma_controls concmd

DCollapsibleCategory.gif