Garry's Mod Wiki

Revision Difference

DFileBrowser#513141

<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>&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;</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 )⤶ 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></output>⤶ ⤶ </example>⤶ ⤶