//
// FileDialog.cs: File system dialogs for open and save
//
// TODO:
// * Add directory selector
// * Implement subclasses
// * Figure out why message text does not show
// * Remove the extra space when message does not show
// * Use a line separator to show the file listing, so we can use same colors as the rest
// * DirListView: Add mouse support
using Terminal.Gui.Resources;
namespace Terminal.Gui;
/// The provides an interactive dialog box for users to pick a file to save.
///
///
/// To use, create an instance of , and pass it to
/// . This will run the dialog modally, and when this returns,
/// the property will contain the selected file name or null if the user canceled.
///
///
public class SaveDialog : FileDialog
{
/// Initializes a new .
public SaveDialog () { Style.OkButtonText = Strings.btnSave; }
///
/// Gets the name of the file the user selected for saving, or null if the user canceled the
/// .
///
/// The name of the file.
public string FileName => Canceled ? null : Path;
/// Gets the default title for the .
///
protected override string GetDefaultTitle ()
{
List titleParts = [Strings.fdSave]
;
if (MustExist)
{
titleParts.Add (Strings.fdExisting);
}
switch (OpenMode)
{
case OpenMode.File:
titleParts.Add (Strings.fdFile);
break;
case OpenMode.Directory:
titleParts.Add (Strings.fdDirectory);
break;
}
return string.Join (' ', titleParts);
}
}