• DarkRP Derma - DCollapsibleCategory help
    0 replies, posted
I've added categories to my F4 menu but I can't seem to get the whole collapsible part to work. I first created the jobs menu as a dpanel but now i've tried switching to DCollapsibleCategory and the Collapse button just creates itself under my category button? See photo below of what I mea. Any help/advice is greatly appreciated. https://files.facepunch.com/forum/upload/310033/8b58fafe-8416-4034-9717-892f596d0675/help.png local jobsback = vgui.Create("DPanel", pages) jobsback:Dock( FILL ) jobsback.Paint = function(self, w, h) end         pages:AddSheet("Jobs", jobsback, "icon16/user.png") local jobs = vgui.Create("DScrollPanel", jobsback) jobs:Dock( FILL ) jobs.Paint = function(self, w, h) surface.SetDrawColor(Color(80, 80, 80, 255)) surface.DrawRect( 0, 0, w, h ) end local jobinfo = vgui.Create("DPanel", jobsback) jobinfo:Dock( RIGHT ) jobinfo:SetSize(400, 100) jobinfo:DockMargin(2, 0, 0, 0) jobinfo.Paint = function(self, w, h) surface.SetDrawColor(Color(80, 80, 80, 255)) surface.DrawRect( 0, 0, w, h ) end for k, v in pairs(RPExtraTeams) do local category = v.category if not IsValid( jobs[category]) then jobs[category] = vgui.Create("DCollapsibleCategory", jobs) jobs[category]:Dock( TOP ) jobs[category]:SetPos(0,0) jobs[category]:SetExpanded(1) jobs[category]:SetLabel(v.name) jobs[category]:SetSize(0, 30) jobs[category]:DockMargin(0, 0, 0, 1) jobs[category]:DockPadding(0, 30, 0, 0) jobs[category].PaintOver = function(self, w, h) local bgColor = self.color or Color(90, 90, 90, 255) surface.SetDrawColor(v.color) surface.DrawRect( 0, 0, w, 30 ) surface.SetFont("Trebuchet24") surface.SetTextColor(Color(255,255,255)) surface.SetTextPos(0,0) surface.DrawText(category) end jobs[category].jobCount = 0 end local Tcategories = DarkRP.getCategories().jobs for k, v in pairs( Tcategories ) do if(category == v.name) then jobs[category].color = v.color end end jobs[category].jobCount = jobs[category].jobCount + 1 jobs[category]:SetSize( 0, (jobs[category].jobCount * 32) + 30) local jobtile = vgui.Create("DPanel", jobs[category]) jobtile:Dock( TOP ) jobtile:SetSize(0, 30) jobtile:DockMargin(0, 1, 0, 1) jobtile.Paint = function(self, w, h) surface.SetDrawColor( v.color ) surface.DrawRect( 0, 0, w, h ) end local jobicon = vgui.Create("DPanel", jobtile) jobicon:Dock( LEFT ) jobicon:SetSize(30, 30) jobicon:DockMargin(2, 2, 2, 2) jobicon.Paint = function(self, w, h) --surface.SetDrawColor( Color(255, 0, 0) ) --surface.DrawRect( 0, 0, w, h ) end local jobmodel = vgui.Create("SpawnIcon", jobicon) jobmodel:Dock(TOP) jobmodel:SetSize(30, 30) jobmodel:DockMargin(0,0,0,0) jobmodel:SetModel( v.model[1] ) local IconModel = v.model if type(v.model) == "table" then IconModel = v.model[math.random(#v.model)] end jobmodel:SetModel(IconModel) local jobname = vgui.Create("DLabel", jobtile) jobname:SetText(v.name) jobname:Dock(TOP) jobname:DockMargin(5, 5, 5, 5) jobname:SetFont("Trebuchet24") jobname:SetTextColor( Color(255, 255, 255, 255) ) surface.SetFont("Trebuchet24") local slotX, slotY = surface.GetTextSize( team.NumPlayers( v.team ).."/"..v.max ) local slots = vgui.Create("DLabel", jobtile) -- Job Slots eg 1/10 slots:SetText(team.NumPlayers( v.team ).."/"..v.max) slots:DockMargin(5, 5, 5, 5) slots:SetPos(360, 15 - slotY/2) slots:SetFont("Trebuchet24") slots:SetTextColor( Color(255, 255, 255, 255) ) local jobbutton = vgui.Create("DButton", jobtile) -- Become Job jobbutton:SetText("") jobbutton:SetSize(600, 40) jobbutton:SetMouseInputEnabled(true) jobbutton.Paint = function(self, w, h) end
Sorry, you need to Log In to post a reply to this thread.