Skip to content

ATF Custom Dialogs

HarukaK edited this page Mar 20, 2015 · 4 revisions

Table of Contents

ATF offers a variety of standard dialogs for WinForms applications, described in the following table. You can use WinForms dialogs in WPF applications; for more information, see Using WinForms Controls in WPF. WPF has dialogs of its own, described in WPF Dialogs in ATF.

For details on using dialogs, see Using Dialogs below.

To see the full size image, right click on an image and choose "Open image in new tab" (in Chrome) or "View image" (in Firefox).

WinForms Dialogs

Category Dialog Class Appearance Description
About AboutDialog A "Help About..." dialog, with ATF Logo and System Info button.
Used in numerous samples, such as ATF Circuit Editor Sample.
AboutSysInfoDialog A system information dialog, with assembly list.
Errors ErrorDialog Dialog to display error messages to a user. It is used by the
ErrorDialogService component, which is imported by several
samples, such as ATF Fsm Editor Sample.
UnhandledExceptionDialog Unhandled exception dialog, which is used by the
UnhandledExceptionService component employed in several
samples, such as ATF Diagram Editor Sample.
File Handling CustomFileDialog None Abstract base class for a custom file dialog, which
CustomSaveFileDialog and CustomOpenFileDialog derive
from. Uses System.Windows.Forms.OpenFileDialog.
CustomOpenFileDialog Custom open file dialog derived from CustomFileDialog. This
class behaves the same as the
System.Windows.Forms.OpenFileDialog class. Allows
setting "Read Only" check box. Can indicate whether supports
multiple file name selections. Used by FileDialogService
component, which
is used by numerous samples like ATF Code Editor Sample.
CustomSaveFileDialog Custom save file dialog derived from CustomFileDialog. This
class behaves the same as the
System.Windows.Forms.SaveFileDialog class. Allows
prompting user when file does not exist and when file already exists.
Used by theFileDialogService component, which is imported
by numerous samples like ATF Code Editor Sample.
FilteredFileDialogBase Base class for filtered file dialogs, including
OpenFilteredFileDialog. Its properties are equivalent to those
with the same names in System.Windows.Forms.FileDialog.
Unlike System.Windows.Forms.FileDialog or
Sce.Atf.CustomFileDialog, this is a Windows® Forms
implementation that does not use Win32 methods. It has a
CustomFileFilter callback, which can be used to exclude
files in the dialog's ListView of files.
FindFileDialog Dialog to assist the user in finding a missing file.
FindFileWithSuggestionDialog Dialog for finding missing files that allows the user to suggest a path.
FolderSelectDialog None Folder selection dialog that wraps
System.Windows.Forms.OpenFileDialog to make it present a
Vista-style dialog.
OpenFilteredFileDialog Open file dialog with a filter, derived from
FilteredFileDialogBase. This class behaves the same as the System.Windows.Forms.OpenFileDialog class, but allows a
custom file filter to be added to exclude files in the dialog's
ListView of files. Use it for importing assets, for example.
Perforce Connections Form for connecting to a Perforce server. Used in the
PerforceService component.
LoginDialog Login dialog to a Perforce server. Used in the
PerforceService component.
UsersList Perforce server users list dialog.
WorkspaceList Perforce workspace list dialog.
Progress ProgressDialog Dialog to show progress of a task.
ThreadSafeProgressDialog None Thread-safe dialog to show task progress. Uses
System.Windows.Forms.ProgressBar.
Source Control CheckInForm Source control check-in form. Used in the
SourceControlCommands component, which is imported in
the ATF Code Editor Sample.
ReconcileForm Source control reconcile form. Used in the
SourceControlCommands component, which is imported in
the ATF Code Editor Sample.
Special Purpose ColorPicker Color picker adapted from the Adobe Color Picker Clone.
ConfirmationDialog Simple customizable "Yes/No/Cancel" dialog box. Used by the
FileDialogService component, which is imported by
numerous samples like ATF Code Editor Sample.
CustomizeKeyboardDialog Dialog to edit and assign keyboard shortcuts to registered
commands. Used in CommandService component, that
is imported by nearly all the samples, such as
ATF Circuit Editor Sample.
FeedbackForm Form for submitting bugs to the SourceForge bug tracker.
Note that each project has a unique identifier used to map to
the SourceForge project (for example, "com.scea.screamtool").
This identifier can be specified with the
ProjectMappingAttribute. Sony employees can find more information at
Bug Submittal. Used in the UserFeedbackService
component, which is imported by the ATF File Explorer Sample.
GridControlShowHidePropertiesDialog Grid control with check boxes to show or hide properties.
HoverBase Base class for tool tips that appear when the mouse hovers
over an item. Used in ATF Circuit Editor Sample.
HoverLabel Control to display a string when the mouse hovers over an item.
Derives from HoverBase. Used in ATF Circuit Editor Sample,
ATF Fsm Editor Sample, and ATF State Chart Editor Sample.
NestedCollectionEditorForm Nested collections editor form. Used by the
NestedCollectionEditor editor class.
OscDialog Dialog for Open Sound Control (OSC), which allows devices
to get or set properties on C# objects. It is used by
OscCommands, a component that provides menu commands
for users of the OscService component.
RenameCommandDialog Rename command dialog used to perform the action provided
by the RenameCommand component that defines a mass
rename command.
TabbedControlSelectorDialog Dialog displayed by the TabbedControlSelector component,
which enables a user to switch focus between controls
accessible to a specified
IControlHostService. TabbedControlSelector is used
in several samples, such as ATF Circuit Editor Sample and
ATF Code Editor Sample
Target Handling TargetDialog Dialog to add or edit a target device, such as a PS4™ controller.
Used in the TargetService component.
TargetEditDialog Form for editing target devices.
Window Layout WindowLayoutManageDialog Dialog to manage window layouts. Used by the
WindowLayoutServiceCommands component, which is imported
by numerous samples, such as the ATF Circuit Editor Sample.
WindowLayoutNewDialog New window layout dialog. Used by the
WindowLayoutServiceCommands component, which is
imported by numerous samples, such as the
ATF Circuit Editor Sample.

Using Dialogs

You can use dialogs in two ways: indirectly through a component or directly by constructing the dialog class.

Component Dialogs

Some ATF components do all the dialog handling for you. For instance, the FileDialogService component creates and displays the CustomOpenFileDialog, CustomSaveFileDialog, and ConfirmationDialog dialogs, as directed by the StandardFileCommands component in response to a user selecting File menu commands. Similarly, UnhandledExceptionDialog is used by the UnhandledExceptionService component to inform the user when an unhandled exception occurs. Simply use these components in your application to employ the dialogs.

Directly Using Dialogs

You can also manage dialogs by creating dialog objects yourself with dialog constructors and their parameters. For example, FindFileDialog() takes a string for the path to the original (missing) file.

Dialogs also have properties appropriate for the dialog. For instance, FindFileDialog has an Action property of type FindFileAction indicating the action the user took, such as accepting the suggested file name found, based on which button the user pressed on the dialog.

Dialogs have a ShowDialog() method, which returns a System.Windows.Forms.DialogResult value, so you can determine the result of the user's interaction with the dialog.

This example is from the class FindFileResolver. It creates dialog objects using a file path and checks their return value and Action property, which gets the user's choice of action from the radio buttons after the OK button was pressed. It sets the FindFileAction variable accordingly.

FindFileAction userAction;
...
// Ask the user what we should do. There are two possible dialog boxes to use.
if (suggestedUri == null)
{
    // There are a two fewer options and slightly reorganized dialog box if there
    //  is no suggested replacement for the missing file.
    FindFileDialog dialog = new FindFileDialog(uri.LocalPath);
    if (dialog.ShowDialog() == DialogResult.Cancel)
        userAction = FindFileAction.Ignore;
    else
        userAction = dialog.Action;
}
else
{
    // We have a suggested replacement already, so allow the user to accept the
    //  suggestion.
    FindFileWithSuggestionDialog dialog =
        new FindFileWithSuggestionDialog(uri.LocalPath, suggestedUri.LocalPath);
    if (dialog.ShowDialog() == DialogResult.Cancel)
        userAction = FindFileAction.Ignore;
    else
        userAction = dialog.Action;
}

Topics in this section

Clone this wiki locally