[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ]

# 2 メニューとメニュー項目の設計

本章では，メニューの設計について説明します。本章は『OSF/Motifスタイル・ ガイド』の内容を補うものであり， 次の内容について説明します。

- メニュー名とメニュー項目名の命名

- メニューとメニュー項目の編成

- メニュー項目における反復記号の使用

- 使用できないメニュー項目の表示

- ポップアップ・メニューの設計

- ティア・オフ・メニューの設計

本章ではOSF/Motifの「ファイル」，「選択」，「編集」，「表示」， 「オプション」，「ヘルプ」等のメニュー，およびメニューへ追加するのが望ましいメニュー項目についても説明します。 さらに，「ウィンドウ」メニューとそれぞれの使用アプリケーション固有のメニューを含めることも可能です。

# 2.1 メニュー名とメニュー項目名の命名

「ファイル」，「選択」，「編集」，「オプション」のような共通のメニューには， 標準の用語を使用してください。左から右への言語環境の場合， 「ファイル」を一番左に，続いて，「選択」，「編集」のガイドラインに従った順序でメニューを配置してください。 アプリケーション固有のメニューは「編集」の後にきます。 「表示」，「オプション」， 「ヘルプ」メニューはアプリケーション固有のメニューの右側に配置します。 「オプション」と「ヘルプ」メニューは一番右に配置してください。 「ウィンドウ」メニューを含める場合は，「オプション」と「ヘルプ」メニューの間に配置してください。 例として図 2-1を参照してください。

プログラミングのヒント

  「ヘルプ」メニューをメニュー・ バーの一番右に配置するには， XmNmenuHelpWidgetを「ヘルプ」カスケード・ボタン名に設定します。

### 図 2-1 メニュー・バー内のメニューの順序

追加のメニュー・バー項目は，「編集」の後，「ヘルプ」の前に配置してください。 「表示」メニュー・バーの項目がある場合は,追加項目の大部分を「編集」と「表示」の間に配置してください。 このようにすると,左側に現われる「ファイル」， 「選択」，「編集」メニュー，右側に現われる「表示」， 「オプション」，「ヘルプ」のメニューに慣れるようになります。 図 2-2にアプリケーション固有のメニュー・ バー項目２つを示します。

### 図 2-2 アプリケーション固有の項目をもつメニュー・バーの例

メニューとメニュー項目を作成する場合，メニュー項目と同じ名前をメニュー名に使用することは避けてください。 たとえば，「貼付け」は「編集」メニュー内のメニュー項目名なので， メニュー・バーの中に「貼付け」メニューを作成してはいけません。

テキストの表現方法(大文字の使用と句読点など）については，第1.6節のガイドラインに従ってください。

メニュー名およびメニュー項目名にはユーザがよく知っている用語を使用してください。 たとえば，簡単な作図ツールを設計する場合には chamber や bevel といった用語は避けてください。ただし， グラフィック・アーティスト用の作図ツールを設計する場合には， これらの用語を使用しても構いません。どの用語を使用する場合も，各メニュー名およびメニュー項目名は， それぞれ区別できるものを使用します。 選択したメニュー名とメニュー項目名を実際に使用するユーザに検討してもらい， それらが明瞭ではっきり区別できるものであることを確認してください。

それぞれのメニューとメニュー項目にはニーモニックを与えてください。 また，よく使用されるメニュー項目にはアクセレレータを与えてください。

プログラミングのヒント

  ニーモニックとアクセレレータを作成する際には， 次のコード例を使用してください。

               object copy_button : XmPushButton
                   {
                       arguments
                           {
                               XmNlabelString      = "Copy";
                               XmNaccelerator      = "Ctrl<Key>Insert";
                               XmNacceleratorText  = "Ctrl+Ins";
                               XmNmnemonic         = keysym("C");
                           };
                   };

# 2.2 メニューとメニュー項目の編成

メニューとメニュー項目の編成方法は，アプリケーションによって異なります。 次のガイドラインを参考に編成を行ってください。

- メニューとメニュー項目を論理的にグループ化する

  メニュー項目はテキスト，グラフィックのいずれからでも構成することができます。 また，メニュー項目は複数行にわたってもかまいません。1 つのメニュー内では，水平セパレータ(線)を使用してメニュー項目をグループ化します。 たとえば，文書を編集するためのメニューでは， グラフィックスに関するメニュー項目のグループと，テキストに関するメニュー項目のグループをセパレータで区分します。

  つまり，関連する複数の項目を1つのグループにまとめて，水平セパレータで各グループを区分します。 グループの構成を決める際には，実際に使用するユーザの意見を参考にしてください。

- メニュー内のメニュー項目は使用頻度の高い順序で配置する

  一般に，最も頻繁に使用するコマンドをメニューの最初に配置し，使用する頻度の最も少ないものを最後に配置します。 設計およびテストの際には実際に使用するユーザも交えて， どのメニュー項目の使用頻度が高いかを調査してください。

  また，メニュー項目のグループ化を行った後，それぞれのグループ内のメニュー項目を使用頻度に応じて配置してください。 ただし例外として， ウィンドウ・メニューの「クローズ」の位置と合わせるために， 使用頻度の高い「終了」と「クローズ」をメニューの一番下に配置することもあります。

- 見やすい順序でメニュー項目を編成する

  たとえば，メニュー項目をアルファベット順に並べたり，数値のメニュー項目を最小値から最大値の順に並べたりします。

- 同一メニュー内に関連する逆の機能を行うメニュー項目を入れる

  たとえば，同一メニュー内に「表示する」と「閉じる」，「取消」と「再実行」を入れます。 また，状況によってメニュー項目を変化させます。 たとえば，「取消」メニュー項目は，ユーザが「取消」操作を終了すると「再実行」に変わるように設定します。

- 使用頻度の高いメニュー項目の隣には「消去」や「復帰」などの破壊的なコマンドを配置しない

  メニューに関してユーザが最もよく起こすトラブルの1つにoff-by-one エラーがあります。このエラーは，ユーザが選択しようとしたメニュー項目の隣のメニュー項目を誤って選択することです。 ユーザが意図したものの上または下のメニュー項目を選択した場合にどのような結果になるか注意してください。 使用頻度の高いメニュー項目の隣りに破壊的な機能を実行するメニュー項目を配置する場合は， 破壊的なメニュー項目を選択した際にユーザがその破壊的機能を取り消すことができるように設定するか， 質問ダイアログ・ボックスを設定して，破壊的な機能を本当に実行するかどうか再確認するように設定してください。

- メニューの階層は３段階以下に抑える

オンラインまたはハードコピーの形でメニュー・マップを提供するのもよいでしょう。 製品のなかにはすべてのメニューとメニュー項目を1 つのマップとして提供するものや，各メニューとそれに関連するサブメニューごとに個別の図を提供するものがあります。 図 2-3は1つのメニューとそれに関連するサブメニューのマップの例です。

### 図 2-3 メニュー・マップ

# 2.3 メニュー項目における反復記号

水平反復記号(...)を付け、ボタンを押すとユーザ側である操作を行う必要があるダイアログ・ ボックスまたはウィンドウを起動できることを示します。 たとえば、印刷を行う際に，まずメニュー項目を選択してダイアログ・ ボックスを起動し，次にプリンタ情報を入力してファイルを印刷する場合は, 「印刷...」メニュー項目を使用します。

「ヘルプ」では操作が要求されませんので，「ヘルプ」プッシュ・ボタンまたは「ヘルプ」メニュー項目には反復記号は使用しないでください。 オンライン・ ヘルプの設計についての詳しい説明は，第5章を参照してください。

カスケード・ボタンで反復記号を設定する場合，常にカスケード・メニュー項目で反復記号を使用します。 図 2-4にカスケード・ ボタンに反復記号を使用した適切な方法を示します。

### 図 2-4 カスケード・ボタンに使用した反復記号

# 2.4 使用できないメニュー項目の表示

一定の間，あるメニュー項目をユーザが使用できないように設定することができます。 つまり，メニュー項目を無効にすることができます。ユーザは使用できないように設定したメニュー項目を選択することはできません。 図 2-5は使用できないメニュー項目の例です。

### 図 2-5 使用できないメニュー項目をもつメニュー

プログラミングのヒント

  メニュー項目を使用できないように設定するには，XtSetSensitive をウィジェットID で呼び出してください。

アプリケーションに含まれる機能をユーザが見ることができるように，すべての項目が使用できなくても， メニューまたはサブメニューはすべて表示するように設定してください。 ただし，このガイドラインは，ポップアップ・ メニューに対しては必ずしも適用されません。ポップアップ・メニューについてのガイドラインは， 第2.5節を参照してください。

アプリケーションが標準メニュー項目をサポートしない場合，そのメニュー項目は表示しないでください。 たとえば，あるアプリケーションで「すべて選択」メニュー項目をサポートしない場合は， メニューの中に「すべて選択」を入れてはいけません。

メニュー項目を使用できないように設定するかどうかについては，次のガイドラインを参考にしてください。

- 選択するとエラーを発生したり，選択しても動作しないメニュー項目は使用できないように設定します。

  たとえば，ユーザが切抜きの対象を選択していない場合は,「編集」メニューの中の「切抜き」メニュー項目を使用できないように設定します。 また，ユーザが最後の操作を取り消すことができない場合は,「取消」メニュー項目を使用できないように設定します。

- ユーザが実行できるメニュー項目は，たとえそれを実行してもなにも変更されない場合であっても， 使用できないようには設定しません。

  たとえば，ユーザがすべての項目をすでに選択している場合でも， 「すべて選択」メニュー項目を使用できないように設定してはいけません。 「すべて選択」を使用できないように設定することは，ユーザを混乱させる結果となる可能性があるため最善の方法とは言えません。

メニュー項目の中にはダイアログ・ボックスを起動するものがあります。 このようなメニュー項目を使用できないように設定するかどうかは，起動されるダイアログ・ ボックスがモード付きであるかモードなしであるかによって決定します。

- メニュー項目が，電子メール・フォルダの選択等，あるコンテキストを要求するモード付きダイアログ・ ボックスを起動する場合は， 次のいずれかを選んでください。

  - その項目を選択したときにエラーが発生したり，意味のないコンテキストと一緒にダイアログ・ ボックスを表示するようなメニュー項目は使用できないように設定します。

  - たとえば，電子メールのフォルダ名を入力して，ユーザがダイアログ・ ボックス内に意味のあるコンテキストを表示できる場合， そのメニュー項目を使用できるように設定します。この場合も， 「了解」および「適用」プッシュ・ボタンは，ダイアログ・ボックスでなにかコンテキストが得られるまでは使用できないように設定します。

- モードなしダイアログ・ボックスを起動するメニュー項目は使用できるように設定し， ユーザがそのメニュー項目をクリックした場合にはダイアログ・ ボックスを表示させます。

  ただし，ダイアログ・ボックス上の「了解」および「適用」プッシュ・ ボタンは使用できないように設定します。ダイアログ・ボックスがモードなしの場合， 操作を行うことが意味のないダイアログ・ボックスに対して， 意味があるようにユーザが変更することが可能です。 その時点で，ダイアログ・ボックス上の「了解」および「適用」プッシュ・ ボタンを使用できるように設定してください。

  たとえば，グラフィック・エディタに「行揃え」というメニュー項目があり， その項目はモードなしダイアログ・ボックスを起動するとします。 この場合，ユーザが行揃えする対象のオブジェクトを作成あるいは選択していない場合も， 「行揃え」をクリックした際には関連するダイアログ・ ボックスを表示するように設定しなくてはなりません。 ユーザが行揃えするオブジェクトを作成あるいは選択していない場合は， ダイアログ・ボックス内の行揃えを実行するプッシュ・ボタンを使用できないように設定します。 しかし，ユーザがオブジェクトを作成したり選択した場合には， その時点でプッシュ・ボタンを使用できない状態から使用できるように変更してください。

# 2.5 ポップアップ・メニューの設計

ポップアップ・メニューは，プルダウン・メニュー項目へアクセスするためのショートカットを提供します。

MB3を押すとポップアップ・メニューが現在のポインタ位置に表示されます。 このため，ユーザはマウスを遠くまで動かす必要がありません。ポップアップ・ メニューを使用することによって，処理中の作業を中断せずにメニューを選択することができます。 プルダウン・メニューやダイアログ・ ボックスを使用するにはマウスを頻繁に移動させる必要があり，生産性が低下します。

## 2.5.1 ポップアップ・メニューに設定する機能

ポップアップ・メニューが次の機能をもつように設計してください。

- ポップアップ・メニューに含める各メニュー項目は，プルダウン・ メニューやダイアログ・ボックスでも選択できるようにしてください。

  ポップアップ・メニューはメニュー項目を簡単に選択するための方法であって， そのメニュー項目を選択する唯一の方法であってはいけません。

- ポップアップ・メニューには必要に応じてタイトルを付けてください。

  たとえば，省略時のMotifルート・ウィンドウ・メニュー用のポップアップ・ メニューには「ルート・ウィンドウ」というタイトルが付いています。 図 2-6はタイトルのないポップアップ・ メニューの例です。

### 図 2-6 ポップアップ・メニュー

ポップアップ・メニュー内の項目は，次のいずれかの方法で並べてください。

- ポップ・アップ・メニューの内容がプルダウン・メニューに同じ場合は， プルダウン・メニューで使用する一般的な順序を守ってください。 ここで，ポップアップ・メニューの順はプルダウン・メニューと一致するはずです。 たとえば，ポップアップ・メニューが「ファイル」や「編集」メニューからの項目をもっている場合は， 「ファイル」メニューからの項目を最初に， 「編集」メニューからの項目を二番目に， ２つのグループの間にセパレータを入れて配置してください。

- 使用アプリケーションのポップアップ・メニューがプルダウン・ メニューと大きく異なっている場合は，以下のガイドラインに従ってください。

  - 選択される可能性の最も高いメニュー項目から使用頻度の少ない項目へと降順に配置する。

    どの項目が最もよく使用されるかを決定する際には，ユーザを交え， 実際にユーザが選択したコマンドの記録からアプリケーションを分析してください。 ポップアップ・メニューにもセパレータを使用するとよいでしょう。

  - メニュー項目をアルファベット順に並べる(英文表示の場合) 。

  - メニュー項目を論理的な順序で並べる。

    図 2-6に示すポップアップ・メニューは論理的な順序で並べた例です。

アプリケーションのうち最もよく使うメニュー項目をポップアップ・メニューに入れてください。 ポップアップ・メニューには異質の機能のグループが含まれていても構いません。 ポップアップ・メニューは操作を素早く行うためのものなので， プルダウン・メニューほど厳密な編成は必要ありません。

ポップアップ・メニューは次のどちらかの形態にしてください。

- 適当と思われる項目すべてを表示した包括的なもの

  この場合，ユーザがメニューを選択する時の状況に応じて，不適切な項目を使用できないように設定してください。

- 状況別に使用するもの

  たとえば，グラフィック・エディタのユーザが図形オブジェクトを選択した場合に表示するポップアップ・ メニュー，テキストを選択した場合に表示するポップアップ・ メニューなど，状況に応じたいくつかのポップアップ・ メニューを作成します。状況に応じたポップアップ・ メニューを作成しても，一部のメニュー項目を使用できないように設定する必要が発生することも考えられます。

## 2.5.2 ポップアップ・メニューの動作

オブジェクトが選択されている場合は次のガイドラインに従ってください。

- ポップアップ・メニューを表示している間は，選択されているオブジェクトが変更されないようにしてください。

- ユーザがポップアップ・メニューを使用した後も，選択されているオブジェクトはそのままにし， ユーザがさらに処理を続けられるようにしてください。

  ただし，選択されていたオブジェクトをユーザが消去した場合は，そのオブジェクトは以前の状態とは異なったものとなります。

- 複数のオブジェクトに対する処理が一貫性をもって行われない場合は， ポップアップ・メニューから複数のオブジェクトを選択できるようにしてはいけません。

  たとえば，ユーザが2つのオブジェクトを選択しオープンできるようにするなら， 必ずそれらを別々のウィンドウにオープンするようにください。 ユーザが2つのオブジェクトを消去したい場合，必ず両方とも消去するようにしてください。

オブジェクトが選択されていない場合は，次のいずれかの方法をとってください。

- ポップアップ・メニューが表示されている間は，そのメニュー機能が作用するオブジェクトを強調表示してください。

- オブジェクトが選択されていない場合にふさわしいメニュー項目をもつ一般的なポップアップ・ メニューを表示してください。たとえば， グラフィック・エディタの場合であれば，ポップアップ・メニューにオブジェクトを作成するためのメニュー項目を入れてもよいでしょう。

## 2.5.3 ポップアップ・メニューとコントロール・ パネル

ポップアップ・メニューを使用することによってユーザはアプリケーションの機能に速く， 簡単にアクセスすることができます。また，モードなしダイアログ・ ボックスやプッシュ・ボタンをもつコントロール・パネルも同様の役割をはたします。 コントロール・パネルと作業領域の間でマウスを移動することが望ましくない場合は， ポップアップ・メニューを使用してください。 制御ボタン類を常に表示しておくのが望ましい場合は，コントロール・ パネルまたはモードなしのダイアログ・ボックスを使用してください。 また，ティア・オフ・メニューを使用して，ユーザに制御ボタン類を常に表示状態にしておく選択の余地を与えることも可能です。 ティア・ オフ・メニューについては第2.6節を参照してください。

## 2.5.4 サブメニューを含むポップアップ・メニューの設計

ポップアップ・メニューにサブメニューを組み合わせる場合は，次のガイドラインに従ってください。

- サブメニューのメニュー項目を論理的なグループに分類してください。

- 広範囲な階層をもつサブメニューは使用しないでください。マウスの移動量が多すぎてポップアップ・ メニューの目的を阻害してしまいます。

- ポップアップ・メニューの階層は3つ以下に抑えてください。

図 2-7はサブメニューを含むポップアップ・ メニューの例です。

### 図 2-7 サブメニューを含むポップアップ・メニュー

# 2.6 ティア・オフ・メニューの設計

ティア・オフ・メニューは，切り取って2次ウィンドウにできるものです。 メニューがティア・オフされた後に，ダイアログ・ボックスと同じようにユーザはそれを動かし， 使用することができます。

メニューがティア・オフされた場合,直接アクセスが可能な別々のウィンドウに表示されます。 ティア・オフ・メニューは，メニューの構成要素が何回も連続して起動できる場合に使用します。 プルダウン，オプション， カスケード，ポップアップのすべてのメニューがティア・オフ・メニューになりえます。

たとえば，「オープン」と「クローズ」の項目や，異なる表示を含められる「表示」プルダウン・ メニューは，ティア・オフ・メニューに適している例と言えます。 それほど頻繁には使用されない「オプション」プルダウン・ メニューの大部分はこのティア・オフ・メニューには向かないでしょう。 ただし，デスクトップ・パブリッシング・アプリケーション用のフォント・ ファミリとサイズを設定する「オプション」メニューは，ティア・ オフ・メニューの使用に適する例です。

コンテキスト依存で，ポインタの位置によって変わる項目が含まれているポップアップ・ メニューからティア・オフ・メニューを作成することは避けてください。

プログラミングのヒント

  メニューのティア・ オフ属性を設定するために,プルダウン・メニューに対するXmNtearoffModel リソースを設定してください。

               XmPulldownMenu
                   {
                       arguments
                           {
                               XmNtearoffModel = XmTEAR_OFF_ENABLED;
                           };
                   };

# 2.7 「ファイル」メニューの項目

「ファイル」メニューはファイルを管理するコマンドを提供します。「ファイル」メニューはメニュー・ バーの一番左に配置し，(F)というニーモニックをつけてください。 このニーモニックの使用により，ユーザはキーボードでキー1 文字を押してメニュー項目を選択することが可能になります。 ニーモニックには下線をつけてください。

Motifでは「ファイル」メニューに次のメニュー項目を使用することを推奨します。

- 新規(N)

- オープン(O)...

- 保管(S)

- 別名保管(A)...

- 印刷(P)

- クローズ(C)

- 終了(x)

次の項目を加えると「ファイル」メニューがさらに使いやすくなります。

- 取込み(I)...

- インポート(m）...

- 復帰(R)

- エクスポート(E）...

- 印刷(t)...

図 2-8は，DECの提供する追加メニューを加え， 推奨する順序でメニュー項目を並べた「ファイル」メニューの例です。

### 図 2-8 「ファイル」メニューとメニュー項目

次の操作内容に従ってメニュー項目をグループ化してください。

- 初期化のための操作

- 保管のための操作

- 印刷のための操作

- 終了のための操作

各「ファイル」メニュー項目の機能は次のとおりです。

新規(N)
  「新規」メニュー項目は現在表示中のウィンドウに新しいファイルをオープンする場合に使用します。 この際クライアント・エリアから既存のデータを消去し， 現在のファイル名を更新しなければなりません。ユーザが新しいファイル名を指定した場合は， そのファイル名をタイトル領域またはパス名全体が付いた状態領域に表示できるようにすることが可能です。 ユーザがファイル名を指定しない場合は，タイトル領域に「タイトルなし」と表示してください。 「新規」メニュー項目のアクセレレータにはCtrl+N を使用してください。

  「新規」メニュー項目を選択するときにすでにファイルをオープンしている場合は， 質問メッセージ・ボックスを表示して，すでにオープンしているファイルを保管するかどうか質問してください。 図 2-9はこのような質問メッセージ・ ボックスの例です。

オープン(O)...
  「オープン...」メニュー項目は既存のファイルをオープンする場合に使用します。 ユーザがこの項目をクリックするとダイアログ・ボックスが表示され， ユーザにファイル名を入力するよう促します。「オープン」のアクセレレータにはCtrl+O を使用します。

  「オープン...」メニュー項目を選択した際にすでに他のファイルをオープンしている場合には次の2 つの処理のいずれかを行うことができます。

  - すでにオープンしているファイルをクローズする前に質問メッセージ・ ボックスを表示して，そのファイルを保管するかどうか質問します。 図 2-9はファイルを保管するかどうかを質問するメッセージ・ ボックスの例です。

    ### 図 2-9 ファイル保管についての質問メッセージ・ボックス

  - チェック・ボタンのある「オープン・ファイル」ダイアログ・ ボックスを表示して，新しくオープンするファイルを新しいウィンドウにオープンするかどうか質問します。 図 2-10はこのようなダイアログ・ ボックスの例です。

  ### 図 2-10 ファイル選択ダイアログ・ボックスのチェック・ボタン

取込み(I)...
  「取込み...」メニュー項目を使用して，現在オープンしているファイルに特定のファイルの内容を追加できるようにしてください。 ユーザが「取込み... 」を選択すると，ファイル選択のダイアログ・ボックスを表示させ， 取り込んだ内容を現在の挿入点に追加します。

インポート(m)...
  「インポート」メニュー項目は，指定したファイルのフォーマットをアプリケーション固有のフォーマットへ変換する点を除くと， 「オープン」と同じです。 ユーザはインポートするファイルの名前とそのファイルの現在フォーマットの両方を指定する必要があります。

保管(S)
  「保管」メニュー項目は，現在オープンしているファイルをクライアント・ エリアから消去せずに保管する場合に使用します。現在オープンしているファイルにまだ命名していない場合は， 「別名保管...」ダイアログ・ ボックスを表示して，ユーザにファイル名の入力を促します。 「保管」のアクセレレータにはCtrl+Sを使用してください。

別名保管(A)...
  「別名保管...」メニュー項目は，現在オープンしているファイルをクライアント・ エリアから消去せずに，新しい名前で保管する場合に使用します。 さらにタイトル・バーまたは状態領域のファイル名も更新しなければなりません。 「別名保管.. .」を選択した場合はファイル名の入力を促すダイアログ・ ボックスを必ず表示させます。図 2-11 は「別名保管...」ダイアログ・ボックスの例です。この例では「選択」フィールドに直接名前をタイプしてファイルを保管できるだけでなく， 別のフォーマットでファイルを保管することもできます。

  複数のバージョンのファイルを保管しないオペレーティング・システム( たとえば，UNIXやWindows NTオペレーション・システム)でアプリケーションを実行する場合は， 指定した名前でファイルを保管すると常に既存ファイルが上書きされてしまうことを警告するメッセージ・ ボックスを表示することができます。 アプリケーションを様々なプラットフォームで実行する場合は， この警告メッセージの表示の有無を設定できます。

  ユーザは「別名保管...」を選択すると,通常現在のファイルと同じディレクトリに新規に名前を付けたファイルの保存を希望します。 「別名保管... 」操作でファイル選択ボックスを使用する場合は，初めにディレクトリを設定してオープンしたファイルのディレクトリに一致させてください。 ユーザが「別名保管...」操作を前に実行している場合は，ディレクトリはその前の状態のままにしてください。

  ### 図 2-11 異なるファイル・フォーマットで保管できる「別名保管...」ダイアログ・ボックス

復帰(R)
  「復帰」メニュー項目を使用して，現在オープンしているファイルと同じファイル名を持つ， 最新のバージョンのファイルを表示させてください。 このメニュー項目の場合，ファイルを最後に保管した後にユーザが行った作業はすべて無効になります。OpenVMS オペレーティング・システムのように複数バージョンをサポートする場合は， ユーザが複数のバージョンに対する復帰操作を実行できるようにしてください。 アプリケーションに復帰するものがなにもない場合は， この「復帰」メニュー項目は使用できないようにしてください。

  図 2-12は，復帰メニュー項目を起動して表示したダイアログ・ ボックスの例です。

  ### 図 2-12 「復帰」ダイアログ・ボックス

エクスポート(E)
  「エクスポート」メニュー項目の機能は，「別名保管...」と同じですが， ファイルのフォーマットがアプリケーション固有のフォーマットから別なものへ変換されます。 ユーザはエクスポートするファイルの名前とファイルを変換する新しいフォーマットの両方を指定する必要があります。

印刷(P)
  「印刷」メニュー項目は，「印刷」ダイアログ・ボックスの現在の設定値を使用して現在オープンしているファイルを印刷する場合に使用します。 ダイアログ・ボックスは表示されません。
印刷(t)...
  「印刷...」メニュー項目を使用して，「印刷...」ダイアログ・ボックスが生成できるようにしてください。 「印刷...」ダイアログ・ボックスについての詳しい説明は， 第6.1節を参照してください。 「印刷...」のアクセレレータにはCtrl+Pを使用してください。

クローズ(C)
  「クローズ」メニュー項目は，現在の1次ウィンドウとその2次ウィンドウ， つまりウィンドウ・ファミリだけをクローズする場合に使用します。1 次ウィンドウが2つ以上あるアプリケーションにはこのメニュー項目を使用するのがよいでしょう。 このメニュー項目を使用することによって， 枠上のウィンドウ・メニューやMotifウィンドウ・マネージャを使用せずに， ウィンドウを削除することができます。この「クローズ」メニュー項目はウィンドウ・ メニューの「クローズ」メニュー項目と同じ処理ができるように設定してください。 「クローズ」のアクセレレータにはCtrl+C を使用してください。

  最後に残った1次ウィンドウをクローズすることは，アプリケーションを終了することと同じです。 最後の1次ウィンドウの設定については次のガイドラインを参考にしてください。

  - アプリケーションの複数の1次ウィンドウの機能が同じように重要である場合は， 最後のウィンドウをクローズした時点でアプリケーションが終了するように設計してください。 たとえば，テキスト・ エディタで1次ウィンドウが複製される場合などは，ユーザが最後のウィンドウをクローズした時に終了するようにしてください。

  - 機能の異なる複数の１次ウィンドウを持つアプリケーションの場合は， メイン・ウィンドウを作成し，そこから他のウィンドウが生成されるようにアプリケーションを設計してください。 この場合，メイン・ ウィンドウがクローズすればアプリケーションが終了します。1 次ウィンドウの1つをクローズした場合は，そのウィンドウのみがルート・ ウィンドウから消去されるように設計してください。

  ユーザが最後のウィンドウをクローズするとデータを消失するおそれがある場合は， 変更を保管するように促すメッセージ・ボックスを表示してください。

終了(x)
  「終了」メニュー項目は，現在のセッションを終了させ，そのアプリケーションに関連するすべてのウィンドウを消去する場合に使用します。 「終了」メニュー項目は，アプリケーションの最後の1次ウィンドウをクローズすることと同じです。 現在のファイルの内容を保管していない場合は， 変更の保管を促すメッセージ・ボックスを表示します。

# 2.8 「選択」メニューの項目

「選択」メニューはオプションです。これにはウィンドウで選択したオブジェクトを参照する項目が含まれます。 たとえば，電子メールのアプリケーションでは， 選択済みのオブジェクトには，ドロア，フォルダ，あるいはメッセージを含めることができます。 ユーザは一連の電子メールのフォルダを選択してから， 「選択」メニューを表示することになります。このメニュー項目は選択済みのフォルダに適用されます。

図 2-13に７つのメニュー項目をもつ「選択」メニューを含んだ標準メニュー・ バーの例を示します。使用アプリケーションに適切な異なるメニュー項目を使用することができます。

### 図 2-13 「選択」メニューとメニュー項目

「ファイル」メニューは，「選択」メニューと異なっている点に注意してください。 「ファイル」メニューでは，これと似たような操作と同様，アプリケーション全体に適用されます。 一方，「選択」メニュー項目は，ユーザが単に選択したオブジェトだけに適用されます。

いくつかの表示の中の１つでオブジェクトがオープンできる場合は，「選択」メニュー項目にカスケード・ メニューを使用するとよいでしょう。たとえば， ユーザがアイコンまたは階層構造表示のいずれかでディレクトリをオープンできる方がよいと考える場合は， 一般的な「オープン」メニュー項目の代わりに， カスケード・メニューを使用してください。

        Open-> Icon View
               Tree View

# 2.9 「編集」メニューの項目

「編集」メニューは，ユーザがファイル内，または複数のファイル間でテキストやグラフィックを操作できるコマンドを提供するメニューです。 「編集」メニューは「ファイル」メニュー，または設定されている場合は， 「選択」メニューのの右に配置して，(E)というニーモニックをつけてください。

Motifでは「編集」メニューに次のメニュー項目を使用することを推奨します。

- 取消(U) Alt+Delete

- 切抜き(t) Remove

- 複写(C) Shift+Remove

- 貼付け(P) Insert Here

- 消去(e)

- 削除(D)

次の項目を加えるとさらに使いやすくなります。

- 検索...（F)

- すべて選択(A)

図 2-14は追加メニュー項目をつけた「編集」メニューの例です。

### 図 2-14 「編集」メニューとメニュー項目

次のようにメニュー項目をグループ化してください。

- 「取消」および「再実行」操作

- システム全体で共通なクリップボード操作

- その他の操作

「編集」メニュー項目の機能は，次のとおりです。

取消(U) Alt+Delete，再実行(R)
  「取消」メニュー項目は，前の操作を無効にする場合に，「再実行」メニュー項目は， 「取消」操作を無効にする場合に使用します。

  「取消」メニュー項目にはシングル・レベルとマルチレベルの2つの形があります。

  - アプリケーションがシングル・レベルの「取消」メニュー項目しかサポートしない場合は， 「取消」メニュー項目は最初メニューに表示します。 ユーザが「取消」メニュー項目を選択したら，「取消」メニュー項目を再び使用できるようにする別の操作を行うまで「取消」メニュー項目を「再実行」メニュー項目に変更してください。

  - アプリケーションがマルチレベルの「取消」メニュー項目をサポートする場合は， 「取消」メニュー項目と「再実行」メニュー項目の両方をメニューに含めてください。 つまり，ユーザが「取消」メニュー項目を選択した後も， 「取消」メニュー項目と「再実行」メニュー項目の両方を選択することができるように設計してください。

  「取消」処理を実行できないような状況の場合には，「取消」メニュー項目を使用できないように設定します。 たとえば，ユーザがファイルをオープンした場合， ユーザがそのファイルに対して変更を行うまで「取消」メニュー項目を使用できないように設定しておきます。 また，アプリケーションが「取消」機能をサポートしない場合は， 「編集」メニューは「取消」メニュー項目を表示しないでください。

  「取消」メニュー項目の機能が変わるたびに次のようなラベルを使用すると， よりその場の状況にあったラベルにすることができます。たとえば， メニュー項目のラベルを必要に応じて以下のいずれかに変更してください。

  - 切抜きを取消(U)

  - 貼付けを取消(U)

  - 回転を取消(U)

  - 文字入力を取消(U)

  - 埋込みを取消(U)

  - フォントを取消(U)

  ユーザが操作を取り消した場合に，その操作を再実行できるようにサポートしてください。 たとえば，メニュー項目のラベルを必要に応じて以下のいずれかに変更してください。

  - 切抜きを再実行(R)

  - 貼付けを再実行(R)

  - 回転を再実行(R)

  - 文字入力を再実行(R)

  - 埋込みを再実行(R)

  - フォントを再実行(R)

切抜き(t) Remove
  「切抜き」メニュー項目は，選択したデータをクリップボードに転送し， そのデータをアプリケーションから削除する場合に使用します。削除したデータが占めていた領域を空白のまま残すか， あるいは残りのデータでその領域を埋めるかを決めてください。 通常，グラフィック・アプリケーションでは領域を空白のまま残し， テキスト・アプリケーションでは領域を残りのテキストで埋めます。

複写(C) Shift+Remove
  「複写」メニュー項目は，クライアント・エリアから元のデータを削除せずに選択したデータをクリップボードに転送する場合に使用します。 この操作によってデータが変更されてはいけません。

貼付け(P) Insert Here
  「貼付け」メニュー項目は，クリップボードからアプリケーションにデータを複写する場合に使用します。 貼付け先が2つ以上の可能性がある場合には， 次のガイドラインに従ってください。

  - フォーカスが明確な場合は，キーボード・フォーカスのある場所にデータを貼り付けてください。

  - ポインタによってフォーカスが不明確な場合は，移動先のカーソルがある場所にデータを貼り付けてください。 このガイドラインはテキスト・ ウィジェットのみに該当します。

  - MB2を使用して貼付け対象のデータを表示するアウトラインを画面上にドラッグした後，MB2 を離して選択したデータを希望する場所に貼り付けてください。

  貼り付けたデータがクライアント・エリアに収まるように再フォーマットするかどうか決めてください。 通常，テキスト・アプリケーションでは， テキスト・フィールドのマージンに適合するように貼り付けたデータを再フォーマットしますが， グラフィック・アプリケーションでは行いません。

  「貼付け」によってクリップボードの内容が変わってはいけません。

  「編集」メニュー項目に追加して，Motifのドラッグおよびドロップ機能も加えるようにしてください。

消去(e)
  「消去」メニュー項目は，選択をクリップボードに複写せずに削除する場合に使用します。 「消去」メニュー項目は残りのデータを圧縮したり、 消去したデータが占めていた領域を埋めたりすることはありません。 ユーザは消去操作を取り消すこともできます。

削除(D)
  「削除」メニュー項目は，現在の選択をクリップボードに複写せずに削除する場合に使用します。 また，残りのデータは圧縮され，消去したデータが占めていた領域を埋めてしまいます。 ユーザは削除操作を取り消すこともできます。

検索(F)
  「検索」メニュー項目を使用すると，ユーザが指定したオブジェクトの検索ができます。 「検索」メニュー項目が選択されると，検索ダイアログ・ ボックスが表示されるようにしてください。

すべて選択(A)
  「すべて選択」メニュー項目を使用して，現在選択しているているデータだけでなく， ファイル内のすべてのデータを選択できるようにしてください。

# 2.10 「表示」メニューの項目

「表示」メニューはオプションです。これには，ユーザの表示は変更するが， 実際のデータは変更しない項目が含まれます。

たとえば，図 2-15のように， 最初のグループは階層構造の表示または外枠のみの表示を表示することにより全体の表示を変更しますが， 二番目のグループは表示の項目を開くか閉じるだけです。

「開く」メニュー項目は現在選択済みの項目を一段低いレベルまで開きます。 「完全に開く」は選択済みの項目を一番下のレベルまで開きます。 「すべて開く」はすべての項目を一番下のレベルまで開きます。

「閉じる」は選択済みの項目を縮小して閉じます。「すべて閉じる」はすべての項目を縮小して閉じます。

### 図 2-15 「表示」メニューとメニュー項目

# 2.11 「オプション」メニューの項目

「オプション」メニューには，アプリケーションをカスタマイズするためのコマンドを提供してください。 「オプション」メニューのメニュー項目はアプリケーションによって異なります。 「オプション」メニューのニーモニックは(O) を使用してください。「オプション」メニューの詳しい説明と例については， 第3.1節と図 3-1 を参照してください。

# 2.12 「ヘルプ」メニューの項目

「ヘルプ」プルダウン・メニューには，図 2-16 にあるどの項目でも入れることができます。

しかし，アプリケーションの「ヘルプ」メニューにこれらの項目のいずれかを入れなければならないわけではありません。 ただし，アプリケーションにこれらの項目のいずれかを入れる場合は，OSF/Motif の仕様に一致していなければなりません。

「ヘルプ」メニューにはアプリケーションがサポートしている「ヘルプ」メニュー項目だけを入れてください。

### 図 2-16 「ヘルプ」メニューとメニュー項目

次のリストはメニュー項目とユーザが選択したときの結果を示します。

状況依存ヘルプ(C)
  このメニュー項目を選択するとポインタの形が疑問符に変わります。 ヘルプを必要とする領域または項目にポインタを移動させてMB1を押すことによって， 必要なヘルプ情報が表示されます。選択が終了するとポインタは前の形に戻ります。

概要(O)
  現在のウィンドウに関する簡単な説明が提供します。この説明にはウィンドウの機能とユーザがそのウィンドウを使用して実行できるタスクについての情報が含まれます。

索引(I)
  アプリケーションのあらゆるヘルプ情報の索引となります。

キーボード(K)
  使用アプリケーションによって割り当てた機能，とくにファンクション・ キーについての表示を行います。「キーボード」メニュー項目の代わりにショートカット・ メニュー(Shortcuts)を使用して， キーとボタンの割り当ての両方の機能を表示することもできます。

学習(T)
  アプリケーションに関するオンライン学習ヘルプにアクセスします。

用語(G)
  オンライン・ヘルプで使用される用語をアルファベット順に表示します。

ヘルプの使用(H)
  ヘルプ機能の使用方法に関する情報を提供します。

製品情報(P)
  使用アプリケーションのバージョンに関する情報を提供します。名前， バージョン，日付，著作権のデータが表示されます。

追加のメニュー項目は「索引」と「ヘルプの使用」の間に配置してください。

オンライン・ヘルプの設計と作成についての詳しい説明は，第5章を参照してください。

# 2.13 「ウィンドウ」メニューの項目

「ウィンドウ」メニューはオプションです。アプリケーションで複数のメイン・ ウィンドウを使用している場合は，現在使用中の１次ウィンドウのタイトルを「ウィンドウ」メニューに入れてください。 ユーザがタイトルを「ウィンドウ」メニューから選択したときに， そのウィンドウが表示されます。 「ウィンドウ」メニューを使用すると，画面上のウィンドウすべてを前後に移動させる必要がなく， ユーザに使用中のどの１次ウィンドウにも直接のアクセスを提供することができます。 ２，３の例では，「ウィンドウ」メニューに現在使用中の２次ウィンドウの名前を入れることを希望する場合もあります。

図 2-17に「ウィンドウ」メニューの例を示します。

### 図 2-17 「ウィンドウ」メニュー

[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ]