これは 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これがどんなスクリプトなのか見てみよう....
on menuPick close this stack end menuPickRevolution では全てのスクリプトがメッセージを引き金にして動作することを思い出して欲しい。メニューを選択した時にメニューボタンが受け取るのは、驚いたことに menuPick メッセージである。
on menuPick send "preOpenCard" to this card end menuPickFile と同じように、このスクリプトは menuPick メッセージをトラップする。これは以前作った Reset ボタンのスクリプトと同じように、カードに preOpenCard メッセージを送る。(最初のチュートリアルで Reset ボタンにスクリプトを書いたのを覚えてる? このスクリプトは同じ効果を得るために、同じメッセージを送っている)
on menuPick pWhich switch pWhich case "Help" break case "About" break end switch end menuPickOK をクリックして、"Edit Script" ボタンでスクリプトを見てみよう....
on menuPick pWhich ....最初の行に、見たことのないものが追加されていることに気が付くだろう。 "pWhich" はパラメータと呼ばれるもので、Revolution がメッセージを送る時に、その追加情報を収める入れ物である。
on menuPick pWhich switch pWhich case "Help" break case "About" break end switch end menuPickこのハンドラの心臓部である switch 制御構造は、"switch" で始まり "end switch" で終わる。 switch 制御構造は、値をチェックして、その値によって違う処理をするものである。この場合は、switch 制御構造は "pWhich" パラメータ(ユーザーの選択したメニューアイテム)をチェックして、メニューアイテムごとに違う処理をしている。
switch pWhich case "Help" break case "About" break end switch最初の行は switch 制御構造の始まりである。 switch 制御構造がチェックすべき値をここで指定する。
switch pWhich case "Help" break case "About" break end switch
switch pWhich case "Help" break case "About" break end switchcase 文の後ろにはコマンドを置くことが出来る。今 "Help" メニューアイテムに対応する case セクションには、break コマンドだけがある。( break コマンドは Revolution に、case 文のコマンドがここで終わっていることを教えている)
answer "You really need help with this?""About" メニューアイテムのところにも answer コマンドを追加しよう。スクリプトエディタの case "About" 行の直後にこれを追加する:
answer "Hello World, written by me!"
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" ボタンをクリックしてスクリプトをセットして、スクリプトエディタパレットを閉じなさい。