--- sidebar_position: 5 --- # Dialog ## Overview This part of the runtime provides access to native dialogs, such as File Selectors and Message boxes.Context :::info Javascript Dialog is currently unsupported in the JS runtime. ::: ### OpenDirectoryDialog Go Signature: `OpenDirectoryDialog(ctx context.Context, dialogOptions OpenDialogOptions) (string, error)` Returns: Selected directory (blank if the user cancelled) or an error Opens a dialog that prompts the user to select a directory. Can be customised using [OpenDialogOptions](#OpenDialogOptions). ### OpenFileDialog Go Signature: `OpenFileDialog(ctx context.Context, dialogOptions OpenDialogOptions) (string, error)` Returns: Selected file (blank if the user cancelled) or an error Opens a dialog that prompts the user to select a file. Can be customised using [OpenDialogOptions](#OpenDialogOptions). ### OpenMultipleFilesDialog Go Signature: `OpenMultipleFilesDialog(ctx context.Context, dialogOptions OpenDialogOptions) ([]string, error)` Returns: Selected files (nil if the user cancelled) or an error Opens a dialog that prompts the user to select multiple files. Can be customised using [OpenDialogOptions](#OpenDialogOptions). ### SaveFileDialog Go Signature: `SaveFileDialog(ctx context.Context, dialogOptions SaveDialogOptions) (string, error)` Returns: The selected file (blank if the user cancelled) or an error Opens a dialog that prompts the user to select a filename for the purposes of saving. Can be customised using [SaveDialogOptions](#SaveDialogOptions). ### MessageDialog Go Signature: `MessageDialog(ctx context.Context, dialogOptions MessageDialogOptions) (string, error)` Returns: The text of the selected button or an error Displays a message using a message dialog. Can be customised using [MessageDialogOptions](#MessageDialogOptions). ## Options ### OpenDialogOptions ```go type OpenDialogOptions struct { DefaultDirectory string DefaultFilename string Title string Filters []FileFilter AllowFiles bool // Mac Only AllowDirectories bool // Mac Only ShowHiddenFiles bool // Mac Only CanCreateDirectories bool // Mac Only ResolvesAliases bool // Mac Only TreatPackagesAsDirectories bool // Mac Only } ``` ### SaveDialogOptions ```go type SaveDialogOptions struct { DefaultDirectory string DefaultFilename string Title string Filters []FileFilter ShowHiddenFiles bool // Mac Only CanCreateDirectories bool // Mac Only TreatPackagesAsDirectories bool // Mac Only } ``` ### MessageDialogOptions ```go type MessageDialogOptions struct { Type DialogType Title string Message string Buttons []string DefaultButton string // Mac Only CancelButton string // Mac Only Icon string // Mac Only } ``` import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; Both "DefaultButton" and "CancelButton" should match a value in "Buttons". Windows has standard dialog types and the buttons are not customisable. The value returned will be one of: "Ok", "Cancel", "Abort", "Retry", "Ignore", "Yes", "No", "Try Again" or "Continue" Coming Soon... #### DialogType ```go const ( InfoDialog DialogType = "info" WarningDialog DialogType = "warning" ErrorDialog DialogType = "error" QuestionDialog DialogType = "question" ) ``` ### FileFilter ```go type FileFilter struct { DisplayName string // Filter information EG: "Image Files (*.jpg, *.png)" Pattern string // semi-colon separated list of extensions, EG: "*.jpg;*.png" } ```