mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-04-24 00:10:10 -04:00
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
111 lines
2.4 KiB
C#
111 lines
2.4 KiB
C#
using System;
|
|
|
|
namespace Editor
|
|
{
|
|
public class FileDialog : Widget
|
|
{
|
|
internal QFileDialog _filedialog;
|
|
|
|
|
|
public FileDialog( Widget parent ) : base( false )
|
|
{
|
|
var ptr = QFileDialog.Create( parent?._widget ?? default );
|
|
NativeInit( ptr );
|
|
}
|
|
|
|
internal override void NativeInit( IntPtr ptr )
|
|
{
|
|
_filedialog = ptr;
|
|
|
|
base.NativeInit( ptr );
|
|
}
|
|
|
|
internal override void NativeShutdown()
|
|
{
|
|
_filedialog = default;
|
|
|
|
base.NativeShutdown();
|
|
}
|
|
|
|
public bool Execute()
|
|
{
|
|
return _filedialog.exec() != 0;
|
|
}
|
|
|
|
public string Title
|
|
{
|
|
get => _filedialog.windowTitle();
|
|
set
|
|
{
|
|
_filedialog.setWindowTitle( value );
|
|
}
|
|
}
|
|
|
|
public string SelectedFile
|
|
{
|
|
get
|
|
{
|
|
var files = _filedialog.selectedFiles();
|
|
if ( files.size() == 0 ) return null;
|
|
|
|
return _filedialog.selectedFiles().at( 0 );
|
|
}
|
|
}
|
|
|
|
public string Directory
|
|
{
|
|
get => _filedialog.directory();
|
|
set => _filedialog.setDirectory( value );
|
|
}
|
|
|
|
public string DefaultSuffix
|
|
{
|
|
get => _filedialog.defaultSuffix();
|
|
set => _filedialog.setDefaultSuffix( value );
|
|
}
|
|
|
|
public List<string> SelectedFiles => _filedialog.selectedFiles().ToList();
|
|
|
|
public void SetNameFilter( string text )
|
|
{
|
|
_filedialog.setNameFilter( text );
|
|
}
|
|
|
|
public void SetFindDirectory() => _filedialog.setFileMode( FileMode.Directory );
|
|
public void SetFindFile() => _filedialog.setFileMode( FileMode.AnyFile );
|
|
public void SetFindExistingFile() => _filedialog.setFileMode( FileMode.ExistingFile );
|
|
public void SetFindExistingFiles() => _filedialog.setFileMode( FileMode.ExistingFiles );
|
|
|
|
public void SetModeOpen()
|
|
{
|
|
_filedialog.setAcceptMode( AcceptMode.AcceptOpen );
|
|
}
|
|
|
|
public void SetModeSave()
|
|
{
|
|
_filedialog.setAcceptMode( AcceptMode.AcceptSave );
|
|
}
|
|
|
|
public void SelectFile( string file )
|
|
{
|
|
_filedialog.selectFile( file );
|
|
}
|
|
|
|
internal enum ViewMode { Detail, List }
|
|
internal enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles }
|
|
internal enum AcceptMode { AcceptOpen, AcceptSave }
|
|
internal enum DialogLabel { LookIn, FileName, FileType, Accept, Reject }
|
|
internal enum Option
|
|
{
|
|
ShowDirsOnly = 0x00000001,
|
|
DontResolveSymlinks = 0x00000002,
|
|
DontConfirmOverwrite = 0x00000004,
|
|
DontUseNativeDialog = 0x00000010,
|
|
ReadOnly = 0x00000020,
|
|
HideNameFilterDetails = 0x00000040,
|
|
DontUseCustomDirectoryIcons = 0x00000080
|
|
};
|
|
|
|
}
|
|
}
|