# 7 `EasyDialogs` -- 基本的な Macintosh ダイアログ

Macintoshプラットフォームで利用できます。

`EasyDialogs`モジュールには、 Macintosh で単純なダイアログ操作 を行うためのルーチンが入っています。 全てのルーチンは、オプションとしてリソース ID パラメタidをとり ます。デフォルトの`DLOG` のリソース (タイプとアイテムナンバの 両方) が一致するようなダイアログがあれば、id を使ってダイアログ 操作に使われるダイアログオブジェクト情報を上書きできます。詳細は ソースコードを参照してください。

`EasyDialogs` モジュールでは以下の関数を定義しています。

`Message`( | str[, id[, ok]])

  メッセージテキストstr付きのモーダルダイアログを表示します。テキス トの長さは最大255文字です。 ボタンのテキストはデフォルトでは``OK''ですが、文字列の引数ok を 指定して変更できます。 ユーザが``OK''ボタンをクリックすると処理を戻します。

`AskString`( | prompt[, default[, id[, ok[, cancel]]]])

  ユーザに文字列値の入力を促すモーダルダイアログを表示します。 promptはプロンプトメッセージで、オプションのdefault 引数は 入力文字列の初期値です（指定しなければ`""` を使います)。 ``OK''と``Cancel''ボタンの文字列はokとcancelの引数で 変更できます。文字列の長さは全て最大255文字です。 入力された文字列か、ユーザがキャンセルした場合には`None` を返します。

`AskPassword`( | prompt[, default[, id[, ok[, cancel]]]])

  ユーザに文字列値の入力を促すモーダルダイアログを表示します。 `AskString()`に似ていますが、ユーザの入力したテキストは点で 表示されます。引数は`AskString()`のものと同じ意味です。

`AskYesNoCancel`( | question[, default[, yes[, no[, cancel[, id]]]]])

  プロンプトquestionと``Yes''、``No''、``Cancel''というラベルの3つ ボタンが付いたダイアログを表示します。 ユーザが ``Yes''を押した場合には`1` を、``No'' ならば`0` を、 ``Cancel'' ならば`-1` を返します。 `RETURN`キーを押した場合はdefaultの値（default を指定 しない場合は`0`)を返します。 ボタンのテキストはそれぞれ引数 yes、no、cancel で変更できます。ボタンを表示したくなければ引数に`""`を指定します。

`ProgressBar`( | [title[, maxval[, label[, id]]]])

  プログレスバー付きのモードレスダイアログを表示します。 これは後で述べる`ProgressBar` クラスのコンストラクタです。 titleはダイアログに表示するテキスト文字列 (デフォルトの値は ``Working...'') で、 maxval は処理が完了する ときの値です (デフォルトは`0`で、残りの作業量が不確定であることを 示します) 。labelはプログレスバー自体の上に表示するテキストです。

`GetArgv`( | [optionlist[ commandlist[, addoldfile[, addnewfile[, addfolder[, id]]]]]])

  コマンドライン引数リストの作成を補助するためのダイアログを表示します。 得られた引数リストを `sys.argv` の形式にします。これは `getopt.getopt()` の引数として渡すのに適した形式です。 addoldfile、addnewfile、addfolder はブール型の引数 です。 これらの引数が真の場合、それぞれ実在のファイル、まだ (おそらく) 存在 しないファイル、フォルダへのパスをコマンドラインのパスとして設定できます。 (注意: `getopt.getopt()` がファイルやフォルダ引数を認識できる ようにするためには、オブションの引数がそれらより前に現れるように しなければなりません。) 空白を含む引数は、空白をシングルクォートあるいはダブルクォートで囲んで 指定できます。

  ユーザが``Cancel''ボタンを押した場合、`SystemExit`例外を 送出します。

  optionlist には、ポップアップメニューで選べる選択肢を定義した リストを指定します。ポップアップメニューの要素には、次の2つの形式、 optstr または`(optstr, descr)` があります。 descr に短い説明文字列を指定すると、該当の選択肢をポップアップ メニューで選択しいる間その文字列をダイアログに表示します。 optstrとコマンドライン引数の対応を以下に示します:

  optstr format | Command-line format
  --- | ---
  `x` | -x (短いオプション)
  `x:`あるいは`x=` | -x (値を持つ短いオプション)
  `xyz` | --xyz (長いオプション)
  `xyz:`あるいは`xyz=` | --xyz (値を持つ長いオプション)

  commandlistはcmdstrあるいは`(cmdstr, descr)`の形のアイテムからなるリストです。 descrは上と同じです。 cmdstrはポップアップメニューに表示されます。メニューを選択すると cmdstr はコマンドラインに追加されますが、それに続く"`:`" や"`=`" は (存在していれば) 取り除かれます。

  バージョン 2.0 で 新たに追加 された仕様です。

`AskFileForOpen`( | [message] [, typeList] [, defaultLocation] [, defaultOptionFlags] [, location] [, clientName] [, windowTitle] [, actionButtonLabel] [, cancelButtonLabel] [, preferenceKey] [, popupExtension] [, eventProc] [, previewProc] [, filterProc] [, wanted] )

  どのファイルを開くかをユーザに尋ねるダイアログを表示し、ユーザが選択した ファイルを返します。ユーザがダイアログをキャンセルした場合には`None`を 返します。 message はダイアログに表示するテキストメッセージです。 typeList は選択できるファイルタイプを表す 4 文字の文字列からなる リスト、defaultLocationは最初に表示すルフォルダで、パス名、 `FSSpec` あるいは`FSRef` で指定します。 location はダイアログを表示するスクリーン上の位置`(x, y)`です。 actionButtonLabelはOKボタンの位置に``Open''の代わり に表示する文字列、cancelButtonLabelは``Cancel''ボタンの位置 に``Cancel''の代わりに表示する文字列です。 wantedは返したい値のタイプで、`str`、`unicode`、 A`FSSpec`、`FSRef` およびそれらのサブタイプを指定できます。

  その他の引数の説明についてはApple Navigation Servicesのドキュメントと `EasyDialogs`のソースコードを参照してください。

`AskFileForSave`( | [message] [, savedFileName] [, defaultLocation] [, defaultOptionFlags] [, location] [, clientName] [, windowTitle] [, actionButtonLabel] [, cancelButtonLabel] [, preferenceKey] [, popupExtension] [, fileType] [, fileCreator] [, eventProc] [, wanted] )

  保存先のファイルをユーザに尋ねるダイアログを表示して、ユーザが選択した ファイルを返します。ユーザがダイアログをキャンセルした場合には`None`を 返します。 savedFileName は保存先のファイル名 (戻り値) のデフォルト値です。 その他の引数の説明については`AskFileForOpen()`を参照してくださ い。

`AskFolder`( | [message] [, defaultLocation] [, defaultOptionFlags] [, location] [, clientName] [, windowTitle] [, actionButtonLabel] [, cancelButtonLabel] [, preferenceKey] [, popupExtension] [, eventProc] [, filterProc] [, wanted] )

  フォルダの選択をユーザに促すダイアログを表示して、ユーザが選択したフォルダ を返します。ユーザがダイアログをキャンセルした場合には`None`を 返します。 引数についての説明は`AskFileForOpen()`を参照してください。

参考:

Navigation Services Reference
  Programmer's reference documentation の Carbon framework の Navigation Services の項。