local inv = {} --the gui elements local elements = {} local questlist = nil local questlog = nil local function add_quest(panel,quest) end inv.DrawOnDPanel = function(self,panel) local spanel = vgui.Create("DPanel", panel) spanel:Dock(FILL) local halfs = vgui.Create("DVerticalDivider",spanel) questlist = vgui.Create("DListLayout", spanel) questlog = vgui.Create("DLabel",spanel) halfs:SetBottom(questlist) halfs:SetTop(questlog) questlist:Dock(FILL) questlog:Dock(FILL) for k,v in pairs(self.track) do local questbutton = vgui.Create("DButton",questlist) questbutton:SetText(v.QuestName) questbutton.DoClick = function() questlog:SetText(v:GetText()) end for i,j in pairs(v) do local ipanel = vgui.Create("DListLayout",layout) local label = vgui.Create("DLabel",ipanel) label:Dock(TOP) label:SetDark(true) local bar = vgui.Create("DProgress",ipanel) bar:Dock(TOP) elements[j] = { ["label"] = label, ["bar" ] = bar, } set_xp_of(j,self.skills[j] or 0) ipanel:Add(label) ipanel:Add(bar) ipanel:InvalidateLayout() ipanel:SizeToChildren(true,true) layout:Add(ipanel) end layout:Dock(FILL) sheet:AddSheet(k, spanel, "icon16/cross.png") end local prox = {} prox.Put = function(s,position,item) --Observer might be called before our put() end prox.Remove = function(s,position) -- end return prox end return inv