--[[ | 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/ --]] surface.CreateFont( "ContentHeader", { font = "Helvetica", size = 50, weight = 1000 } ) local PANEL = {} function PANEL:Init() self:SetFont( "ContentHeader" ) self:SetBright( true ) self:SetExpensiveShadow( 2, Color( 0, 0, 0, 130 ) ) self:SetSize( 64, 64 ) self.OwnLine = true self:SetAutoStretch( true ) end function PANEL:PerformLayout() self:SizeToContents() end function PANEL:SizeToContents() local w = self:GetContentSize() -- Don't let the text overflow the parent's width if ( IsValid( self:GetParent() ) ) then w = math.min( w, self:GetParent():GetWide() - 32 ) end -- Add a bit more room so it looks nice as a textbox :) -- And make sure it has at least some width self:SetSize( math.max( w, 64 ) + 16, 64 ) end function PANEL:ToTable( bigtable ) local tab = {} tab.type = "header" tab.text = self:GetText() table.insert( bigtable, tab ) end function PANEL:Copy() local copy = vgui.Create( "ContentHeader", self:GetParent() ) copy:SetText( self:GetText() ) copy:CopyBounds( self ) return copy end function PANEL:PaintOver( w, h ) self:DrawSelections() end function PANEL:OnLabelTextChanged( txt ) hook.Run( "SpawnlistContentChanged" ) return txt end function PANEL:IsEnabled() -- This is a hack! return !IsValid( self:GetParent() ) || !self:GetParent().GetReadOnly || !self:GetParent():GetReadOnly() end function PANEL:DoRightClick() local pCanvas = self:GetSelectionCanvas() if ( IsValid( pCanvas ) && pCanvas:NumSelectedChildren() > 0 && self:IsSelected() ) then return hook.Run( "SpawnlistOpenGenericMenu", pCanvas ) end self:OpenMenu() end function PANEL:UpdateColours( skin ) if ( self:GetHighlight() ) then return self:SetTextStyleColor( skin.Colours.Label.Highlight ) end if ( self:GetBright() ) then return self:SetTextStyleColor( skin.Colours.Label.Bright ) end if ( self:GetDark() ) then return self:SetTextStyleColor( skin.Colours.Label.Dark ) end return self:SetTextStyleColor( skin.Colours.Label.Default ) end function PANEL:OpenMenu() -- Do not allow removal from read only panels if ( IsValid( self:GetParent() ) && self:GetParent().GetReadOnly && self:GetParent():GetReadOnly() ) then return end local menu = DermaMenu() menu:AddOption( "#spawnmenu.menu.delete", function() self:Remove() hook.Run( "SpawnlistContentChanged" ) end ):SetIcon( "icon16/bin_closed.png" ) menu:Open() end vgui.Register( "ContentHeader", PANEL, "DLabelEditable" ) spawnmenu.AddContentType( "header", function( container, obj ) if ( !obj.text || !isstring( obj.text ) ) then return end local label = vgui.Create( "ContentHeader", container ) label:SetText( obj.text ) container:Add( label ) return label end )