<div class="meta" robots="noindex">

</div>

Class

# SaveAsDialog

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<div class="warning">

<div class="title">

Warning

</div>

This item was deprecated in version 2019r2. Please use `SaveFileDialog</api/user_interface/desktop/savefiledialog>` as a replacement.

</div>

## Description

Used to create customized Save As dialogs. Non-customizable Save As dialogs are created by the `FolderItem<folderitem.showsavefiledialog>` function.

## Properties

<div class="rst-class">

table-centered_columns_3_and_4

</div>

| Name                                                    | Type                                | Read-Only | Shared |
|---------------------------------------------------------|-------------------------------------|-----------|--------|
| `ActionButtonCaption<saveasdialog.actionbuttoncaption>` | `String</api/data_types/string>`    |           |        |
| `CancelButtonCaption<saveasdialog.cancelbuttoncaption>` | `String</api/data_types/string>`    |           |        |
| `Filter<saveasdialog.filter>`                           | `String</api/data_types/string>`    |           |        |
| `InitialFolder<saveasdialog.initialfolder>`             | `FolderItem</api/files/folderitem>` |           |        |
| `Left<saveasdialog.left>`                               | `Integer</api/data_types/integer>`  |           |        |
| `PromptText<saveasdialog.prompttext>`                   | `String</api/data_types/string>`    |           |        |
| `Result<saveasdialog.result>`                           | `FolderItem</api/files/folderitem>` | ✓         |        |
| `SuggestedFileName<saveasdialog.suggestedfilename>`     | `String</api/data_types/string>`    |           |        |
| `Title<saveasdialog.title>`                             | `String</api/data_types/string>`    |           |        |
| `Top<saveasdialog.top>`                                 | `Integer</api/data_types/integer>`  |           |        |

## Methods

<div class="rst-class">

table-centered_column_4

</div>

| Name                                | Parameters | Returns                             | Shared |
|-------------------------------------|------------|-------------------------------------|--------|
| `ShowModal<saveasdialog.showmodal>` |            | `FolderItem</api/files/folderitem>` |        |

## Property descriptions

<div id="saveasdialog.actionbuttoncaption">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.ActionButtonCaption

**ActionButtonCaption** As `String</api/data_types/string>`

Text of the label for the Action button (e.g., Choose, Save, Open, etc., depending on context). It is not necessarily the default button for the dialog.

This property is not supported on Linux.

This example illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As OpenDialog
Var f As FolderItem
dlg = New OpenDialog
dlg.ActionButtonCaption = "Action Button"
dlg.CancelButtonCaption = "Cancel Button"
dlg.SuggestedFileName = "Suggested Filename"
dlg.Title = "Title bar text"
dlg.PromptText = "Prompt Text"
dlg.Left = 50
dlg.Top = 50

#If Not TargetLinux Then
  dlg.InitialFolder = SpecialFolder.Documents
#Else ' open Home folder on linux
  dlg.InitialFolder = SpecialFolder.home
#EndIf
f = dlg.ShowModal
If f <> Nil Then
  MessageBox("You selected: " + f.NativePath)
Else
  ' User Cancelled
End If
```

<div id="saveasdialog.cancelbuttoncaption">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.CancelButtonCaption

**CancelButtonCaption** As `String</api/data_types/string>`

Text of the label for the Cancel button.

Supported only on Windows.

This property is ignored on macOS and Linux, since changing the caption is not supported on those operating systems.

This example illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As OpenDialog
Var f As FolderItem
dlg = New OpenDialog
dlg.ActionButtonCaption = "Action Button"
dlg.CancelButtonCaption = "Cancel Button"
dlg.SuggestedFileName = "Suggested Filename"
dlg.Title = "Title bar text"
dlg.PromptText = "Prompt Text"
dlg.Left = 50
dlg.Top = 50

#If Not TargetLinux Then
  dlg.InitialFolder = SpecialFolder.Documents
#Else ' open Home Folder on linux
  dlg.InitialFolder = SpecialFolder.home
#EndIf
f = dlg.ShowModal
If f <> Nil Then
  MessageBox("You selected: " + f.NativePath)
Else
  ' User Cancelled
End If
```

<div id="saveasdialog.filter">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.Filter

**Filter** As `String</api/data_types/string>`

One or more File Types, separated by semicolons, previously defined via the `FileType</api/files/filetype>` class or in the File Type Sets Editor in the IDE.

*Filter* controls which files within *InitialDirectory* are visible.

This example illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As New OpenDialog
dlg.Title = "Select an mp4 file"
dlg.Filter = FileTypes1.VideoMp4.Extensions ' defined in the File Types Editor...

Var f As FolderItem = dlg.ShowModal
If f <> Nil Then
  MoviePlayer1.movie = Movie.Open(f)
Else
  ' user cancelled
End If
```

<div id="saveasdialog.initialfolder">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.InitialFolder

**InitialFolder** As `FolderItem</api/files/folderitem>`

Full or relative path to the folder whose contents are displayed when the dialog first appears.

The Filter property controls which files within the folder are visible. On Windows, this defaults to the My Documents directory if no `FolderItem</api/files/folderitem>` is specified.

This example illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As OpenDialog
Var f As FolderItem
dlg = New OpenDialog

#If Not (TargetLinux) then
  dlg.InitialFolder = SpecialFolder.Documents
#Else //open Home directory on linux
  dlg.InitialFolder = SpecialFolder.home
#EndIf
f = dlg.ShowModal
```

<div id="saveasdialog.left">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.Left

**Left** As `Integer</api/data_types/integer>`

Distance (in points) of the left side of the dialog from the left side of the main screen.

This code illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As OpenDialog
Var f As FolderItem
dlg = New OpenDialog
dlg.Left = 50
dlg.Top = 50
f = dlg.ShowModal
If f <> Nil Then
  MessageBox("You selected: " + f.NativePath)
Else
  ' User Cancelled
End If
```

<div id="saveasdialog.prompttext">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.PromptText

**PromptText** As `String</api/data_types/string>`

The Help text that appears within the dialog.

PromptText is displayed on macOS for all dialog types and on Windows for `SelectFolderDialog</api/user_interface/desktop/selectfolderdialog>`.

This example illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As OpenDialog
Var f As FolderItem
dlg = New OpenDialog
dlg.PromptText = "Select a file"
f = dlg.ShowModal
If f <> Nil Then
  MessageBox("You selected: " + f.NativePath)
Else
  ' User Cancelled
End If
```

<div id="saveasdialog.result">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.Result

**Result** As `FolderItem</api/files/folderitem>`

Holds the result of calling ShowModal() or ShowModalWithin.

This property is read-only.

If the user validates the dialog, *Result* contains the `FolderItem</api/files/folderitem>` corresponding to the selection; otherwise, *Result* is `Nil</api/language/nil>`.

This example displays the NativePath to the mp4 file that the user selects using the Result property.

``` xojo
Var dlg As OpenDialog
Var f As FolderItem
dlg = New OpenDialog
dlg.PromptText = "Select a file"
f = dlg.ShowModal
If dlg.Result <> Nil Then
  MessageBox("You selected: " + dlg.Result.NativePath)
Else
  ' User Cancelled
End If
```

<div id="saveasdialog.suggestedfilename">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.SuggestedFileName

**SuggestedFileName** As `String</api/data_types/string>`

The default name of the file; it appears as the default text in the filename enterable area.

`OpenFileDialog</api/user_interface/desktop/openfiledialog>` displays this value on Windows, but not other platforms.

This example illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As New SaveAsDialog
Var f As FolderItem
dlg.SuggestedFileName = "SaveFile.txt"
f = dlg.ShowModal
If f <> Nil Then
  MessageBox("You selected: " + f.NativePath)
Else
  ' User Cancelled
End If
```

<div id="saveasdialog.title">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.Title

**Title** As `String</api/data_types/string>`

The string that appears in the Title bar. This property is ignored on Macintosh.

This example illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As OpenDialog
Var f As FolderItem
dlg = New OpenDialog
dlg.Title = "Choose a File"
f = dlg.ShowModal
If f <> Nil Then
  MessageBox("You selected: " + f.NativePath)
Else
  ' User Cancelled
End If
```

<div id="saveasdialog.top">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.Top

**Top** As `Integer</api/data_types/integer>`

The distance (in points) of the top of the dialog from the top of the main screen.

This code illustrates all the labelling properties of a `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`.

``` xojo
Var dlg As OpenDialog
Var f As FolderItem
dlg = New OpenDialog
dlg.Left = 50
dlg.Top = 50
f = dlg.ShowModal
If f <> Nil Then
  MessageBox("You selected: " + f.NativePath)
Else
  ' User Cancelled
End If
```

## Method descriptions

<div id="saveasdialog.showmodal">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

SaveAsDialog.ShowModal

**ShowModal** As `FolderItem</api/files/folderitem>`

Displays the FolderItemDialog as a Sheet window on macOS within the window specified by *Parent*.

## Notes

Using the properties of the `FolderItemDialog</api/user_interface/desktop/folderitemdialog>` class, you can customize the following aspects of a save-file dialog box:

- Position (Left and Top properties)
- Default directory (Initial Directory property)
- Valid file types to show (Filter property).
- If you specify more than one file type (separate the file type names with semicolons), <span class="title-ref">SaveAsDialog</span> will add a Format pop-up menu to the dialog, allowing the user to specify the desired file type to use. Examine the extension of the file name returned to see which format was chosen.
- Default filename (SuggestedFileName property)
- Text of the Validate and Cancel buttons (ActionButtonCaption and CancelButtonCaption properties)
- Text that appears in the Title bar of the dialog (Title property)
- Text that appears in the body of the dialog (PromptText property)

On macOS 10.11 through 10.15, a Hide Filename Extension checkbox appears in the save-file dialog. The `FolderItem</api/files/folderitem>` returned has its ExtensionVisible property set according to the user's use of this checkbox.

## Sample code

The following code opens a customized save-file dialog box and displays the contents of the "Documents" directory in the browser area. It refers to the 'text/plain' common file type defined in the FileTypes1 file type set.

``` xojo
Var dlg As New SaveAsDialog
Var f As FolderItem
dlg.InitialDirectory = SpecialFolder.Documents
dlg.PromptText = "Prompt Text"
dlg.SuggestedFileName = "Suggested Filename"
dlg.Title = "Title Property"
dlg.Filter = FileTypes1.Text ' defined as a file type in FileTypes1 file type set
f = dlg.ShowModal
If f <> Nil Then
  ' file saved
Else
  ' user canceled
End If
```

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The following code creates a pop-up menu in the Save As dialog that gives the user the option of choosing among four file types.

``` xojo
Var dlg As New SaveAsDialog
Var f As FolderItem

Var txtType As New FileType
txtType.Name = "Text File (*.txt)"
txtType.Extensions = "txt"

Var htmlType As New FileType
htmlType.Name = "HTML File (*.htm, *.html)"
htmlType.Extensions = "htm"

Var csvType As New FileType
csvType.Name = "CSV File (*.csv)"
csvType.Extensions = "csv"

Var xlsType As New FileType
xlsType.Name = "Excel File (*.xls)"
xlsType.Extensions = "xls"

dlg.InitialDirectory = SpecialFolder.Desktop
dlg.promptText = "Prompt Text"
dlg.SuggestedFileName = "Suggested Filename"
dlg.Title = "Title Property"
dlg.Filter = txtType + htmlType + csvType + xlsType
f = dlg.ShowModal
If f <> Nil Then
  If Right(f.Name, 3) = "txt" Then
    MessageBox("1")
  ElseIf Right(f.Name, 3) = "htm" Then
    MessageBox("2")
  ElseIf Right(f.Name, 3) = "csv" Then
    MessageBox("3")
  ElseIf Right(f.Name, 3) = "xls" Then
    MessageBox("4")
  End If
Else
  ' user canceled
End If
```

## Compatibility

All project types on all supported operating systems.

## See also

`FolderItemDialog</api/user_interface/desktop/folderitemdialog>` parent class; `FileType</api/files/filetype>`, `FolderItem</api/files/folderitem>`, `FolderItemDialog</api/user_interface/desktop/folderitemdialog>`, `OpenFileDialog</api/user_interface/desktop/openfiledialog>`, `SelectFolderDialog</api/user_interface/desktop/selectfolderdialog>` classes
