Skip to content

ATF Custom Dialogs_j

yiwami edited this page Mar 31, 2015 · 33 revisions

== ATF カスタムダイアログ ==

Table of Contents

ATF には、次に示される WinForms アプリケーション用のさまざまな標準ダイアログがあります。WinForms ダイアログは WPF アプリケーションで使用可能です。詳細は Using WinForms Controls in WPF (英語) を参照してください。WPF には、WPF Dialogs in ATF (英語) で説明される独自のダイアログがあります。

ダイアログの使用に関する詳細は、ダイアログの使用を参照してください。

画像をフルサイズで表示するには、画像を右クリックし、[新しいタブで画像を開く] (Chrome) または [画像だけを表示] (Firefox) をクリックします。

WinForms ダイアログ

バージョン情報のダイアログクラス

AboutDialog

[システム情報] ボタンを含む、[ヘルプ] > [バージョン情報] ダイアログ。ATF CircuitEditor サンプルなど、多くのサンプルで使用。

AboutSysInfoDialog

アセンブリのリストが表示されるシステム情報ダイアログ。

エラーのダイアログクラス

ErrorDialog

ユーザーにエラーメッセージを表示するダイアログ。ATF FsmEditor サンプルなど、いくつかのサンプルにインポートされている、ErrorDialogService コンポーネントが使用します。

UnhandledExceptionDialog

ATF DiagramEditor サンプルなど、いくつかのサンプルで使用されている UnhandledExceptionService コンポーネントが使用する未処理例外のダイアログ。

ファイル処理のダイアログクラス

CustomFileDialog

CustomSaveFileDialog および CustomOpenFileDialog の派生元である、カスタムファイルダイアログの抽象基底クラス。System.Windows.Forms.OpenFileDialog を使用。

CustomOpenFileDialog

CustomFileDialog から派生する、カスタムのファイルを開くダイアログ。System.Windows.Forms.OpenFileDialog クラスと同様の振る舞いをします。「読み取り専用」チェックボックスの設定が可能です。複数ファイルの選択が可能かどうかを示すことができます。ATF CodeEditor サンプルなどの多くのサンプルで使用されている FileDialogService コンポーネントが使用します。

CustomSaveFileDialog

CustomFileDialog から派生する、カスタムのファイル保存ダイアログ。このクラスは System.Windows.Forms.SaveFileDialog クラスと同様の振る舞いをします。ファイルが存在しない場合と存在する場合に、ユーザーに入力を促すことができます。ATF CodeEditor サンプルなどの多くのサンプルで使用されている FileDialogService コンポーネントが使用します。

FilteredFileDialogBase

OpenFilteredFileDialog を含む、フィルタリングされたファイルのダイアログの基底クラスです。このプロパティは、System.Windows.Forms.FileDialog の同じ名前のプロパティに相当します。System.Windows.Forms.FileDialogSce.Atf.CustomFileDialog とは異なり、Win32 メソッドを使用しない Windows® フォームの実装です。ダイアログのファイルの ListView からファイルを除外するための、CustomFileFilter コールバックがあります。

FindFileDialog

見つからないファイルを探すためのダイアログ。

FindFileWithSuggestionDialog

見つからないファイルを探すために、ユーザーがパスを指定できるダイアログ。

FolderSelectDialog

フォルダー選択のダイアログ。System.Windows.Forms.OpenFileDialog をラッピングし、Vista 形式のダイアログを表示します。

OpenFilteredFileDialog

FilteredFileDialogBase から派生した、フィルター機能のあるファイルを開くダイアログ。このクラスは System.Windows.Forms.OpenFileDialog クラスと同様の振る舞いをしますが、ダイアログのファイルの ListView からファイルを除外するカスタムフィルターを追加することが可能です。アセットのインポートなどに使用します。

Perforce のダイアログクラス

Connections

Perforce サーバーに接続するためのフォーム。PerforceService コンポーネントで使用されます。

LoginDialog

Perforce サーバーにログインするダイアログ。PerforceService コンポーネントで使用されます。

UsersList

Perforce サーバーのユーザーリストのダイアログ。

WorkspaceList

Perforce のワークスペースリストのダイアログ。

進行状況のダイアログクラス

ProgressDialog

タスクの進行状況を表示するダイアログ。

ThreadSafeProgressDialog

タスクの進行状況を表示する、スレッドセーフなダイアログ。System.Windows.Forms.ProgressBar を使用します。

ソース管理のダイアログクラス

CheckInForm

ソース管理のチェックインフォーム。ATF CodeEditor サンプルにインポートされている SourceControlCommands コンポーネントが使用します。

ReconcileForm

ソース管理の調整フォーム。ATF CodeEditor サンプルにインポートされた SourceControlCommands コンポーネントが使用しています。

特殊な用途のダイアログクラス

ColorPicker

Adobe Color Picker Clone から適用したカラーピッカー。

ConfirmationDialog

簡単でカスタム化可能な 「はい/いいえ/キャンセル」のダイアログボックス。ATF CodeEditor サンプルなどの多くのサンプルにインポートされた FileDialogService コンポーネントが使用しています。

CustomizeKeyboardDialog

登録したコマンドにキーボードショートカットを割り当て、編集するダイアログ。ATF CodeEditor サンプルなどの、ほぼすべてのサンプルにインポートされている CommandService コンポーネントが使用します。

FeedbackForm

SourceForge バグトラッカーにバグを送信するフォーム。なお、各プロジェクトには SourceForge プロジェクトへのマッピングに使われる、「com.scea.screamtool」などの一意の識別子があります。この識別子は ProjectMappingAttribute で指定可能です。ソニー社員はバグの送信で詳細情報を参照できます。ATF File Explorer サンプルにインポートされている UserFeedbackService コンポーネントが使用します。

GridControlShowHidePropertiesDialog

プロパティの表示、非表示を設定するチェックボックスのあるグリッドコントロール。

HoverBase

アイテム上にマウスポインタを移動したときに表示される、ツールヒントの基底クラス。ATF CircuitEditor サンプルで使用されています。

HoverLabel

アイテム上にマウスポインタを移動したときに文字列を表示するコントロール。HoverBase から派生します。ATF CircuitEditor サンプルATF FsmEditor サンプル、および ATF StatechartEditor サンプルで使用されています。

NestedCollectionEditorForm

ネストされたコレクションのエディターフォーム。NestedCollectionEditor エディタークラスに使用されます。

OscDialog

デバイスが C# オブジェクトのプロパティを、取得もしくは設定するための Open Sound Control (OSC) のダイアログ。OscService コンポーネントのユーザーにメニューコマンドを提供する OscCommands に使用されます。

RenameCommandDialog

名前の変更をまとめて行うコマンドを定義するコンポーネント RenameCommand が提供する操作を実行するための、名前の変更コマンドダイアログ。

TabbedControlSelectorDialog

TabbedControlSelector コンポーネントが表示するダイアログ。指定した IControlHostService にアクセス可能なコントロール間のフォーカスを、ユーザーが切り替えられるようにします。TabbedControlSelectorATF CircuitEditor サンプルATF CodeEditor サンプル などの、いくつかのサンプルで使用されています。

ターゲット処理のダイアログクラス

TargetDialog

PS4™ コントローラーなどのターゲットデバイスを追加、編集するダイアログ。TargetService コンポーネントで使用されます。

TargetEditDialog

ターゲットデバイスを編集するフォーム。

ウィンドウレイアウトのダイアログクラス

WindowLayoutManageDialog

ウィンドウのレイアウトを管理するダイアログ。ATF CircuitEditor サンプルなどの多くのサンプルにインポートされている WindowLayoutServiceCommands コンポーネントが使用します。

WindowLayoutNewDialog

新しいウィンドウレイアウトのダイアログ。ATF CircuitEditor サンプルなどの多くのサンプルにインポートされている WindowLayoutServiceCommands コンポーネントが使用します。

ダイアログの使用

ダイアログは、コンポーネントを通じて間接的に使用するか、もしくは直接ダイアログクラスを構築して使用する 2 つの方法があります。

コンポーネントのダイアログ

ATF コンポーネントの中には、ダイアログ処理をすべて行うものがあります。たとえば、ユーザーが [ファイル] メニューコマンドを選択すると StandardFileCommands コンポーネントが指示を出し、FileDialogService コンポーネントが CustomOpenFileDialogCustomSaveFileDialog および ConfirmationDialog ダイアログを作成、表示します。同様に、UnhandledExceptionService コンポーネントは UnhandledExceptionDialog を使用して、ユーザーに未処理例外の発生を通知します。アプリケーションでこれらのコンポーネントを活用して、ダイアログを使用してください。

ダイアログ を直接使用する方法

ダイアログコンストラクターおよびそのパラメーターを使用して、ダイアログオブジェクトを、独自に作成しダイアログを管理することも可能です。たとえば、FindFileDialog() は元の (見つからない) ファイルへのパスとして string を取ります。

ダイアログにも、ダイアログに適したプロパティがあります。たとえば、FindFileDialog には FindFileAction 型の Action プロパティがあり、ユーザーがダイアログ内でクリックしたボタンに基づいて、発見したファイル名候補の承諾などの、ユーザー操作を示します。

ダイアログには System.Windows.Forms.DialogResult の値を返す ShowDialog() メソッドがあり、ユーザーのダイアログ操作の結果を知ることができます。

以下に FindFileResolver クラスの例を示します。ファイルパスを使用してダイアログオブジェクトを作成し、返り値および Action プロパティを確認します。これにより、OK ボタンを押した後の、ユーザーのラジオボタン操作による選択を取得します。その結果に基づいて FindFileAction 変数を設定します。

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;
}

このセクションのトピック一覧

Clone this wiki locally