Revision Difference
DFileBrowser#547066
<panel>
<parent>DPanel</parent>
<description>
A tree and list-based file browser.
It allows filtering by folder (directory) name and file extension, and can display models as <page>SpawnIcon</page>s.
</description>
</panel>
<example>
<description>Creates a DFileBrowser and displays the data/persist folder. Any file clicked is printed to the console.</description>
<code>
local frame = vgui.Create( "DFrame" )
frame:SetSize( 500, 250 )
frame:SetSizable( true )
frame:Center()
frame:MakePopup()
frame:SetTitle( "DFileBrowser Example" )
local browser = vgui.Create( "DFileBrowser", frame )
browser:Dock( FILL )
browser:SetPath( "GAME" ) -- The access path i.e. GAME, LUA, DATA etc.
browser:SetBaseFolder( "data" ) -- The root folder
browser:SetOpen( true ) -- Open the tree to show sub-folders
browser:SetCurrentFolder( "persist" ) -- Show files from persist
function browser:OnSelect( path, pnl ) -- Called when a file is clicked
print( path )
end
</code>
<output><image src="DFileBrowser_example.png"/></output>
</example>
<example>
<description>
Creates a DFileBrowser that can spawn models from `props_` folders.
<note>Uses the same <page>DFrame</page> as above</note>
</description>
<code>
local browser = vgui.Create( "DFileBrowser", frame )
local frame = vgui.Create( "DFrame" )
frame:SetSize( 500, 250 )⤶
frame:SetSizable( true )⤶
frame:Center()⤶
frame:MakePopup()⤶
frame:SetTitle( "DFileBrowser Example" )⤶
⤶
local browser = vgui.Create( "DFileBrowser", frame )⤶
browser:Dock( FILL )
browser:SetPath( "GAME" ) -- The access path i.e. GAME, LUA, DATA etc.
browser:SetBaseFolder( "models" ) -- The root folder
browser:SetName( "Props_ Models" ) -- Name to display in tree
browser:SetSearch( "props_" ) -- Search folders starting with "props_"
browser:SetFileTypes( "*.mdl" ) -- File type filter
browser:SetOpen( true ) -- Opens the tree (same as double clicking)
browser:SetCurrentFolder( "props_badlands" ) -- Set the folder to use
function browser:OnSelect( path, pnl ) -- Called when a file is clicked
RunConsoleCommand( "gm_spawn", path ) -- Spawn the model we clicked
frame:Close()
end
</code>
<output>`See Preview`.</output>
</example>
<example>
<description>Same as above, but enables model viewing. The following line is added to the above code.</description>
<code>browser:SetModels( true ) -- Use SpawnIcons instead of a list</code>
<output><image src="DFileBrowser_models.png"/></output>
</example>