// Made by Bouletmarc. local StartBrowserPanel = nil local function CreateSoundBrowser() StartBrowserPanel = vgui.Create("DFrame") // The main frame. StartBrowserPanel:SetSize(350, 450) --Set Center StartBrowserPanel:SetPos((ScrW()/2)-(StartBrowserPanel:GetWide()/2),(ScrH()/2)-(StartBrowserPanel:GetTall()/2)) StartBrowserPanel:SetMinWidth(350) StartBrowserPanel:SetMinHeight(450) StartBrowserPanel:SetSizable(false) StartBrowserPanel:SetDeleteOnClose( true ) StartBrowserPanel:SetTitle("Changelog Checker V8.1") StartBrowserPanel:SetVisible(false) StartBrowserPanel:SetCookieName( "wire_sound_browser" ) StartBrowserPanel:GetParent():SetWorldClicker(true) // Allow the use of the toolgun while in menu. local ButtonsSidePanel = StartBrowserPanel:Add("DPanel") ButtonsSidePanel:DockMargin(4, 4, 4, 4) ButtonsSidePanel:Dock(TOP) ButtonsSidePanel:SetSize(330, 430) ButtonsSidePanel:SetDrawBackground(false) --############################################################# --loading local Redcolor = 0 local Greencolor = 0 local Bluecolor = 0 if file.Exists("acf/menucolor.txt", "DATA") then local MenuColor = file.Read("acf/menucolor.txt") local MenuColorTable = {} for w in string.gmatch(MenuColor, "([^,]+)") do table.insert(MenuColorTable, w) end Redcolor = tonumber(MenuColorTable[1]) Greencolor = tonumber(MenuColorTable[2]) Bluecolor = tonumber(MenuColorTable[3]) else Redcolor = 0 Greencolor = 0 Bluecolor = 200 RunConsoleCommand( "acfmenu_red", Redcolor ) RunConsoleCommand( "acfmenu_green", Greencolor ) RunConsoleCommand( "acfmenu_blue", Bluecolor ) SaveFunc() end --########################################### CurrentText = ButtonsSidePanel:Add("DLabel") CurrentText:SetPos(100,20) CurrentText:SetFont( "DefaultBold" ) CurrentText:SetText("ACF Original Changelog") CurrentText:SetTextColor(Color(Redcolor,Greencolor,Bluecolor,255)) CurrentText:SizeToContents() Close = ButtonsSidePanel:Add("DButton") Close:SetText("Close") Close:SetTextColor(Color(Redcolor,Greencolor,Bluecolor,255)) Close:SetPos( 20,350 ) Close:SetWide(80) Close:SetTall( 50 ) Close.DoClick = function() StartBrowserPanel:Close() end VersionT = ButtonsSidePanel:Add("DLabel") VersionT:SetText("Original SVN Version : "..ACF.CurrentVersion) VersionT:SetTextColor(Color(Redcolor,Greencolor,Bluecolor,255)) VersionT:SetFont( "DefaultBold" ) VersionT:SizeToContents() VersionT:SetPos( 120,350 ) VersionT2 = ButtonsSidePanel:Add("DLabel") VersionT2:SetText("Custom SVN Run On Version : "..ACF.Version) VersionT2:SetFont( "DefaultBold" ) VersionT2:SizeToContents() VersionT2:SetPos( 120,370 ) if ACF.Version >= ACF.CurrentVersion then VersionT2:SetTextColor(Color(0,200,0,255)) else VersionT2:SetTextColor(Color(200,0,0,255)) end --################# CustomDisplay = ButtonsSidePanel:Add("DPanelList") CustomDisplay:SetSpacing( 10 ) CustomDisplay:EnableHorizontal( false ) CustomDisplay:EnableVerticalScrollbar( true ) CustomDisplay:SetSize( 300, 250 ) CustomDisplay:SetPos( 20, 50 ) ButtonsSidePanel:PerformLayout() if ChangelogOriginal then Changelist = vgui.Create( "DTree" ) for Rev,Changes in pairs(ChangelogOriginal) do local Node = Changelist:AddNode( "Rev "..Rev ) Node.mytable = {} Node.mytable["rev"] = Rev function Node:DoClick() -- On Click UpdateSoundBrowserOriginal( Node.mytable ) CustomDisplay:PerformLayout() end Node.Icon:SetImage( "icon16/newspaper.png" ) end Changelist:SetSize( 60, 100 ) CustomDisplay:AddItem( Changelist ) CustomDisplay:PerformLayout() UpdateSoundBrowserOriginal( {rev = table.maxn(ChangelogOriginal)} ) end --############### StartBrowserPanel.OnClose = function() end StartBrowserPanel:InvalidateLayout(false) end --########### function UpdateSoundBrowserOriginal( Table ) --####### --loading local Redcolor = 0 local Greencolor = 0 local Bluecolor = 0 if file.Exists("acf/menucolor.txt", "DATA") then local MenuColor = file.Read("acf/menucolor.txt") local MenuColorTable = {} for w in string.gmatch(MenuColor, "([^,]+)") do table.insert(MenuColorTable, w) end Redcolor = tonumber(MenuColorTable[1]) Greencolor = tonumber(MenuColorTable[2]) Bluecolor = tonumber(MenuColorTable[3]) else Redcolor = 0 Greencolor = 0 Bluecolor = 200 end --Clear if TextLog1 then TextLog1:Remove() end if TextLog2 then TextLog2:Remove() end --Set Changelog text and End TextLog1 = vgui.Create( "DLabel" ) TextLog1:SetText( "Original Changlog :") TextLog1:SetTextColor(Color(Redcolor,Greencolor,Bluecolor,255)) TextLog1:SetFont( "DefaultBold" ) TextLog1:SizeToContents() CustomDisplay:AddItem( TextLog1 ) TextLog2 = vgui.Create( "DLabel" ) TextLog2:SetText( ChangelogOriginal[Table["rev"]]) TextLog2:SetTextColor(Color(Redcolor,Greencolor,Bluecolor,255)) TextLog2:SetFont( "DefaultBold" ) TextLog2:SetWrap(true) TextLog2:SetAutoStretchVertical(true) CustomDisplay:AddItem( TextLog2 ) CustomDisplay:PerformLayout() end --########### local function ACFChangelogOriginalHTTPCallBack(contents , size) local Temp = string.Explode( "*", contents ) ChangelogOriginal = {} for Key,String in pairs(Temp) do ChangelogOriginal[tonumber(string.sub(String,2,4))] = string.Trim(string.sub(String, 5)) end table.SortByKey(ChangelogOriginal,true) end http.Fetch("https://raw.github.com/nrlulz/ACF/master/changelog.txt", ACFChangelogOriginalHTTPCallBack, function() end) --########## local function OpenSartBrowser(pl, cmd, args) if (!IsValid(StartBrowserPanel)) then CreateSoundBrowser() end StartBrowserPanel:SetVisible(true) StartBrowserPanel:MakePopup() StartBrowserPanel:InvalidateLayout(true) WireLib.Timedcall(function(StartBrowserPanel) if (!IsValid(StartBrowserPanel)) then return end StartBrowserPanel:InvalidateLayout(true) end, StartBrowserPanel) end concommand.Add("acf_changelog_browser_open", OpenSartBrowser)