日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2010年1月5日火曜日

その他のコントロール(6): メニュー

ウインドウのタイトルバー直下にあるメニュー・バー
ここには文字でかかれたメニューが並んでおり、クリックするとそのメニューカテゴリに含まれる選択項目の一覧が表示される。

これは正確にはプルダウン・メニューとかドロップダウン・メニューと呼ばれる。
IT用語辞典e-Words
デジタル用語辞典

メニューは「ボタン」「ラジオボタン」「チェックボックス」のかわりに使う事ができますが、メリットとデメリットがあります。
メリット: 限られたスペース内で多くの情報が表示できる。表示領域を節約できる。
デメリット: クリックしてみないとその内容が分からない

以下の場合には役に立ちます
●あらかじめ選択したい項目がわかっている。
●あまり頻繁には使わない(普段は隠れていて良い)項目
●スペースを節約したい。

特に、頻繁には使わない物は隠しておけば、見た目をすっきりとさせることができ、ユーザーの混乱も避けることが出来ます。

反面、なんでもメニューに入れてしまうと、使いにくい物になってしまうのでバランスを考える必要があります。


「ボタン」「ラジオボタン」「チェックボックス」を使えば、同じ機能を果たしてくれるので、あえて現時点で使う必要は、ないかもしれませんが、必要なときに困らないようとりあえず調べておくことにしました。


----------------------------------------
(1)menuコマンド
このコマンドはメニューを作るだけで、その内部の項目までは作りません。
-label :メニューとして表示される名称です。
-tearOff:メニューをティアオフできるように指定します。

まずMenuコマンドを上記のフラグと共に使ってみます。
{
window name;
columnLayout;

menu -label "test" -tearOff true;

button;
showWindow;
}

しかしながら以下のエラーになります。
// Error: No MenuBar found for the menu. //
エラー:メニューに必要なメニューバーが見つかりません。

これはMenuコマンドを使用するためには、「MenuBar」を設定する必要があるからです。
MenuBarの設定方法は二つあります。
1)windowの -menuBarフラグをtrueにする。
2)menuBarLayoutコマンドを使用する。

ここでは簡単に-menuBarフラグを使用してみます。
{
window -menuBar true name;
columnLayout;

menu -label "test" -tearOff true;

button;
showWindow;
}

これでちゃんと表示されました。


----------------------------------------
(2)menuItem
これは上記「menu」で作成したメニューに選択項目を追加するために「menu」と一緒に使われます。
また「ラジオボタン」「チェックボックス」「フラグボックス」の機能もこのコマンドで設定します。
-label:選択項目の名前
-divider:選択項目を区切る横線
-command:選択されたときに実行するコマンド

{
window -menuBar true name;
columnLayout;

menu -label "test" -tearOff true;
menuItem -label "sphere" -command sphere;
menuItem -divider true;
menuItem -label "cone" -command cone;

button;
showWindow;
}



----------------------------------------
(3)複数のメニューを使う。
menuコマンドが実行された後、次のmenuコマンドが使われる前までの間にあるmenuItemは最初のmenuコマンドの中身となります。

ここからは第一メニュー
menu
menuItem
menuItem
menuItem
ここまでが第一メニューとその内容
-----------------------
ここからは第二メニュー
menu
menuItem
menuItem
ここまでが第二メニューの内容

これを実際にスクリプトにすると以下のようになります。
{
window -menuBar true name;
columnLayout;

menu -label "test" -tearOff true;
menuItem -label "sphere" -command sphere;
menuItem -divider true;
menuItem -label "cone" -command cone;

menu -label "test2" -tearOff true;
menuItem -label "sphere2" -command sphere;
menuItem -divider true;
menuItem -label "cone2" -command cone;

button;
showWindow;
}

  

0 件のコメント:

コメントを投稿