これは RuntimeRevolution 1.1.1 のヘルプにある文書を邦訳したものです。この文書の文責はUDIにあり、またUDIはこの文書についての一切の債務を負いません。 間違いがありましたら eudio@chabashira.co.jp までお知らせ下さい。この文書は必要と思われる時に適宜アップデートされます。

Help -> Tutorials -> The Menu Manager


1. Before you start
始める前に

 このチュートリアルを始める前に、最初のチュートリアルである Getting Started で、Revolution によるアプリケーション作成の基本をを済ませておきなさい。各ツールを選び、オブジェクトを作り、スクリプトを編集する方法を知っておかなければならない。

 このチュートリアルを始める前に、最初のチュートリアルで作った "Hello World" を開いておきなさい。

 ティップス: もし知らない単語が出てきたら、そこにマウスポインタを当ててみなさい。単語の色が変われば、それをクリックしてその単語に関する辞書を見ることが出来る。

 各ステップが終わったらこのウィンドウの右下にある右向き矢印をクリックして、次のステップへ進みなさい。


2. About menus
メニューについて

 プルダウンメニューは、ほとんど全てのモダンなアプリケーションで大切な役割を演じている。 Unix と Windows システムでは、メニューグループはアプリケーションウィンドウ最上部のメニューバーにあり、MacOS システムのメニューバーは、ウィンドウではなくスクリーンの最上部にある。

 それぞれのオペレーティングシステムでメニューの扱いが異なるので、全てのプラットホームのメニューについて一度に説明するのは難しい。

 幸いにも Revolution はメニューの扱いが簡単なので、それが出来るのである....


3. Creating menus in Revolution
Revolution におけるメニューの作成

 Revolution ではボタンを使ってメニューを作る。メニューアイテムのリストをボタンに入れ、ボタンメニューのプロパティをセットすれば、それが標準的なメニューになる。

 全てのプラットフォームで機能するメニューバーを作るには、まず各メニューのボタンを作り、それらのボタンをグループにまとめる。(グループとは、他のオブジェクト −ここではボタン− を内包するオブジェクトのことである) そしてスタックの menuBar プロパティにそのグループをセットすれば、各プラットホームに最適化されたメニューバーが作られる。

 しかしもっと簡単に行うことも出来る。 Revolution には、自動的にボタンとグループを作ることの出来る、Menu Manager(メニューマネージャ)という機能がある。次のステップでは Revolution の Menu Manager を使って、あなたのスタックにメニューバーを加える。さあ、始めよう....


4. Introducing the Menu Manager
Menu Manager とは

 Revolution の Menu Manager を使うために、Tools メニューから "Menu Manager" を選択する。すると Menu Manager ダイアログボックスが現れる。

 Menu Manager は3つのセクションに別れている。上部にあるのはメニューバーの名前、左にある "Menus" はメニューバーに含まれるメニュー、そして右にある "Menu Items" は各メニューのメニューアイテムである。

 まずメニューバーを作り、そこに3つのメニューをセットしてみよう。それからメニューアイテムを作り、そこにスクリプトを加える。


5. Creating a new menu bar
メニューバーを作る

 Menu Manager の上部にある "New..." ボタンをクリックすると、"Create a New Menu Bar" ダイアログが現れる。

 "In stack" の横に "Hello World" とセットされていることを確認する。これはメニューバーが "Hello World" スタックに作られることを意味する。 "Menu Bar Name" と書かれたボックスに "MyMenubar" とタイプしなさい。

 ダイアログの下部にはメニューのリストがある。デフォルトでは、最も良く使われる File、Edit、Help の3つのメニューがリストされている。このチュートリアルではこれらのメニューは必要なので、そのまま OK ボタンを押してメニューバーを作り、Menu Manager に戻る。


6. Choosing a Mac OS setting
Mac OS の設定

 Mac OS と OS X システムではスクリーンのトップにメニューバーがあり、スタックウィンドウにメニューは存在しない。そのため Mac OS と OS X システムでは、スタックに作ったメニューバーを、スクリーンのトップに表示させるようにすることが出来る。

 メニューバーは "Hello World" スタックの中にあるので、"Hello World" スタックウィンドウがアクティブになった時は常にこのメニューが表示されている。そして他のウィンドウが最前面になると Revolution のメニューバーが表示される。

 Menu Manager 上部の "Menu Bar" セクションにある "Set as Menu Bar on Mac OS" チェックボックスをチェックしなさい。( Menu Manager 上部にある "Preview in Menu Bar" をチェックすれば、メニューバーを「ライブで」見ることが出来る) ここで2つの事が起こる。メニューバーがスクリーンのトップに現れ、メニューボタンのグループが隠れるように、ウィンドウが縮む。


7. Adding a menu item to a menu
メニューにメニューアイテムを追加する

 Menu Manager のタイトルバーが、今作ったメニューバーの名前を反映しているのに気付いただろう。タイトルは "Menu Manager: MyMenubar (Stack: "Hello World")" となっているはずだ。

 "Menus" セクションには、前回のステップで作られた File、Edit、Help のメニューがある。 "Edit" をクリックすると、Edit メニューの中のアイテムが右側の "Menu Items" セクションに現れる。デフォルトでは Edit メニューには、Cut、Copy、Paste、Clear の4つのメニューアイテムがある。

 "New Item" ボタンをクリックすると、新しいアイテムがリストに現れる。 "New Item" ボタンの下にあるボックスに "Reset" とタイプして Enter キーを押すと、新しいメニューアイテムの名前が "Reset" に変わる。


8. Deleting a menu item
メニューアイテムの削除

 Edit メニューには、"Cu&t/X"、"&Copy/C"、"&Paste/V"、"Clea&r" という4つのメニューアイテムがインストールされている。( "&" と "/V" については後ほど説明する)

 このシンプルなプログラムには copy も paste も必要無いので、これらのメニューアイテムを削除してしまおう。 "Cu&t/X" アイテムを選択して "Delete Item" ボタンをクリックする。 Reset アイテムだけを残して、他の3つも同じように削除する。

 File メニューと Help メニューにもデフォルトのメニューアイテムがある。 File メニューには Quit アイテムがあり、Help メニューには Help と、区切り線で仕切られた About がある。これらのメニューアイテムは残しておく。( MacOS システムでは、Help メニューの最後のアイテムはアップルメニューに表示される)

 次に、Edit メニューに追加した "Reset" メニューアイテムに、キーボードショートカットを割り当てよう....


9. Adding a keyboard shortcut
キーボードショートカットを加える

 Revolution は、メニューアイテムのアクセスキー(Windows)と、ショートカットキー( Commandキー: MacOS、Controlキー: Unix と Windows)をサポートする便利な方法を提供する。

 ショートカットとは、Commandキー(MacOS)や Controlキー(Unix と Windows)と一緒に1文字のキャラクタをキータイプして、メニューアイテムを実行する機能である。

 メニューアイテム "Reset" にショートカットを割り当てるには、"Shortcut" チェックボックスをクリックして、その右側のボックスに "R" を入れる。すると Menu Manager はメニューアイテムの最後に、"/" とショートカットレターを追加する。


10. Adding an Alt-key mnemonic
アクセスキーを加える

 アクセスキーには、メニューアイテム名の1文字、主に頭文字を使う。(もしひとつのメニュー内に同じ頭文字のアイテムが複数存在する場合は、衝突を避けるために他の文字を選んでも良い) ユーザーが Alt キーと共にメニューの頭文字をタイプすると、そのメニューが開かれる。そしてアクセスキーを使って、開かれているメニューからメニューアイテムを選択する。

 アクセスキーを設定するために、リストから "Reset" を選択し、"Mnemonic" (訳注:ニーモニック:メニューアクセスに用いる記号のこと)チェックボックスをチェックして、その横のボックスに "R" と入力する。 Menu Manager はアンパサンド( & )とそのキャラクタをメニューアイテム内に加える。

 これでメニューバーが完成した。しかしこれらのメニューはまだ何のアクションとも関連づけられていないので、メニューを選んでも何も起こらない。次のステップでは、メニューアイテムにスクリプトを追加して、それを使えるものにする....


11. Adding a script to the File menu
File メニューにスクリプトを追加する

 File メニューにスクリプトを追加するために、メニュー名リストから "File" を選び、Menu Manager の下部にある "Edit Script" ボタンをクリックする。

 スクリプトエディタにこのスクリプトを入れなさい:

on menuPick
  close this stack
end menuPick
 これがどんなスクリプトなのか見てみよう....


12. Reviewing the File menu script
File メニューのスクリプトを調べる
on menuPick
  close this stack
end menuPick
 Revolution では全てのスクリプトがメッセージを引き金にして動作することを思い出して欲しい。メニューを選択した時にメニューボタンが受け取るのは、驚いたことに menuPick メッセージである。

 このメニューにはメニューアイテムが "Quit" しか無いので、このハンドラで必要なのはプログラムを終了する命令だけである。そしてそれは一番上のスタックを閉じる、closes 命令で達成できる。(この場合、一番上にあるのはあなたの "Hello World" スタックである)

 スクリプトエディタを閉じて、次は Edit メニューに取りかかろう....


13. Adding a script to the Edit menu
Edit メニューにスクリプトを加える

 Menu Manager 上のリストから "Edit" メニューを選択し、"Edit Script" ボタンをクリックする。そして開いたスクリプトエディタに下のスクリプトを入力する:
on menuPick
  send "preOpenCard" to this card
end menuPick
 File と同じように、このスクリプトは menuPick メッセージをトラップする。これは以前作った Reset ボタンのスクリプトと同じように、カードに preOpenCard メッセージを送る。(最初のチュートリアルで Reset ボタンにスクリプトを書いたのを覚えてる? このスクリプトは同じ効果を得るために、同じメッセージを送っている)

 ひとつ片づいたところで、次は Help メニューにスクリプトを加えてみよう。


14. Adding a script to the Help menu
Help メニューにスクリプトを加える

 このメニューは複数のメニューアイテムを持っているので、どのアイテムが選択されたのかを menuPick ハンドラ内で調べる必要がある。

 リストから "Help" メニューを選択し、"Auto Script" ボタンをクリックする。( "Auto Script" ボタンは、そのメニューのための基本スクリプトを、メニューボタンスクリプトの中に書いてくれる) Auto Script によってこのようなスクリプトが入れられる:
on menuPick pWhich
  switch pWhich
  case "Help"
    break
  case "About"
    break
  end switch
end menuPick
 OK をクリックして、"Edit Script" ボタンでスクリプトを見てみよう....


15. About message parameters
メッセージのパラメータについて
on menuPick pWhich
  ....
 最初の行に、見たことのないものが追加されていることに気が付くだろう。 "pWhich" はパラメータと呼ばれるもので、Revolution がメッセージを送る時に、その追加情報を収める入れ物である。

 この場合は、menuPick メッセージに、選択されたメニューアイテム名の情報が追加されている。例えばユーザーが "Help" メニューの "About" を選択してこのハンドラが実行される時、"pWhich" パラメータには "About" という語が入っている。


16. About the switch control structure
switch 制御構造について
on menuPick pWhich
  switch pWhich
  case "Help"
    break
  case "About"
    break
  end switch
end menuPick
 このハンドラの心臓部である switch 制御構造は、"switch" で始まり "end switch" で終わる。 switch 制御構造は、値をチェックして、その値によって違う処理をするものである。この場合は、switch 制御構造は "pWhich" パラメータ(ユーザーの選択したメニューアイテム)をチェックして、メニューアイテムごとに違う処理をしている。

 switch 制御構造の各パートを見てみよう....


17. The switch structure, line by line
switch 制御構造を調べる
switch pWhich
case "Help"
  break
case "About"
  break
end switch
 最初の行は switch 制御構造の始まりである。 switch 制御構造がチェックすべき値をここで指定する。

 このハンドラでは、switch 制御構造は、Revolution が menuPick メッセージと共に送ってきた "pWhich" をチェックしている。


18. The switch structure, line by line
switch 制御構造を調べる
switch pWhich
case "Help"
  break
case "About"
  break
end switch

 2番目の行は case 文である。 switch 制御構造の中の各 case 文は、チェックしているものが特定の値の時に、それぞれ実行される。

 このハンドラでは case 文は各メニューアイテムに対応している。 Help メニューは "Help" と "About" の2つのメニューアイテムを持っているので、それぞれに対応する2つの case 文がある。


19. The switch structure, line by line
switch 制御構造を調べる
switch pWhich
case "Help"
  break
case "About"
  break
end switch
 case 文の後ろにはコマンドを置くことが出来る。今 "Help" メニューアイテムに対応する case セクションには、break コマンドだけがある。( break コマンドは Revolution に、case 文のコマンドがここで終わっていることを教えている)

 つまり今 "Help" を選択しても、何も実行されないと言うことである。これを変えてみよう....


20. Adding a dialog box
ダイアログボックスを加える

 ユーザーに何らかの情報を示す手段のひとつに、ダイアログボックスがある。 Revolution のダイアログボックスは様々なデザインが可能な柔軟なものであるが、最も簡単な使用法は answer コマンドを使うことである。ユーザーが "Help" メニューアイテムを選択した時のスクリプトを加えてみよう。

 スクリプトエディタの case "Help" 行の直後にこれを追加する:
answer "You really need help with this?"
 "About" メニューアイテムのところにも answer コマンドを追加しよう。スクリプトエディタの case "About" 行の直後にこれを追加する:
answer "Hello World, written by me!"

21. The Help menu script
Help メニューのスクリプト

 2つの新しい行を追加したスクリプトはこのようになった:
on menuPick pWhich
  switch pWhich
  case "Help"
    answer "You really need help with this?"
    break
  case "About"
    answer "Hello World, written by me!"
    break
  end switch
end menuPick
 "Apply" ボタンをクリックしてスクリプトをセットして、スクリプトエディタパレットを閉じなさい。


22. Testing the menus
メニューをテストする

 メニューバーとメニューアイテムを作り、そのスクリプトも書いた。ここでこれらをテストしてみよう。

 まず Menu Manager を閉じて、スタックの変更を保存する。それから Browse ツールを選択して、メニューバーを見てみよう。(訳注:スタックウィンドウをクリックするとスタックのメニューバーがアクティブになります。他のウィンドウやパレットをクリックすると Revolution のメニューに戻ります)

 最初に Help メニューにある2つのメニューアイテムを選択して、それぞれがこのチュートリアルでやった通りの動作をするかを確かめる。(訳注: MacOS では "Aout" アイテムは、アップルメニューの一番上にあります)

 そして Edit メニューの "Reset" アイテムをテストする。

 File メニューの "Quit" アイテムのテストは、スタックを閉じてしまうから最後に。


23. What's next?
さて次は?

 おめでとう! あなたは今、メニューバーをスタックに加える方法、メニューアイテムを追加し、削除する方法、キーボードショートカットをメニューアイテムに加える方法、そしてメニューの各メニューアイテム用にスクリプトを書く方法を修得した。

 Revolution でメニューとメニューアイテムを作る方法を知った今、次のチュートリアルではアニメーションを加えたダイナミックなアプリケーションをデザインする。

 このウィンドウの下部にある "Tutorials" ボタンをクリックして、チュートリアルのリストに戻りなさい。


邦訳/文責:UDI
2002.11.18
2003.01.11

inserted by FC2 system