(57)【要約】【課題】一つのメニューディスプレイ部（７０）に角度マーキングメニュー（６２）と直線メニュー部（６４）を組み合わせたシステムを提供する。【解決手段】直線メニュー部（６４）ではポインティング装置を使用して位置を選択（７２）することにより，アイテム選択が行われる。角度マーキングメニュー部（７４）では，ポインティング装置によってストローク（８２，８４）のパターンを作成して，アイテム選択を判別する。このシステムでは，ストローク（８０，８２）が直線メニューのアイテム（６４）を完全に横切るとそのアイテムを無視する。【選択図】図７
2008016056.tif 000002
【特許請求の範囲】
【請求項１】
角度マーキングメニュー部及び直線メニュー部を有するメニューを表示するディスプレイと， ストロークを生成するか及び位置を指定するかの一方によって選択の種類を示すポインティング装置及び， 該ディスプレイ及び該ポインティング装置に接続し，前記選択のタイプを判別し，前記ストローク又は位置の一方からメニューアイテムの選択を判別するコンピュータを有するメニュー選択システム。
【請求項２】
請求項１において， メニューには，少なくとも９つの選択可能なメニューアイテムが含まれるメニュー選択システム。
【請求項３】
請求項１において， メニューには，位置をひとつだけ指定することによって選択されるメニューアイテムが少なくとも一つ含まれるメニュー選択システム。
【請求項４】
角度マーキングメニュー部及び直線位置メニュー部を有するメニューを表示し， ポインティング装置によるストロークの最終地点が，直線位置選択領域内にあって，該直線ロケーション選択領域に対応する直線位置メニューのアイテムの選択を示しているかどうかを判別し， 前記ストロークの最終地点が直線ロケーション選択領域内になく，パターン選択領域に対応する角度マーキングメニューのアイテムの選択を示している時に，当該対応するパターン選択領域を判別する画面表示方法。
【請求項５】
請求項４において， メニューには，少なくとも一つの選択可能な直線位置メニューのアイテムが含まれる画面表示方法。
【請求項６】
メニューが表示されているかどうかを判別し， メニューが表示されていない場合にストロークの方向に応じてメニュー選択を判別し， メニューが表示されている時に，メニューアイテムラベル内にストロークの最終地点が有って，該メニューアイテムラベルに対応するメニューアイテムの選択を示しているかどうかを判断し， メニューが表示され，ストロークの最終地点がメニューアイテムラベル内になく，パターン選択領域に対応する角度マーキングメニューアイテムの選択を示している時に，当該対応するパターン選択領域を決定する画面表示方法。
【請求項７】
ディスプレイと， 最終地点を有するストロークを生成するポインティング装置及び， 該ディスプレイと該ポインティング装置に接続され，メニューが前記ディスプレイ上に表示されているか否か及び前記ストロークの最終地点がメニューラベル内にある場合の当該ストロークの最終地点に応じて，メニューアイテム選択を判別するメニュー選択システム。
【請求項８】
ポインティング装置で作成されたストロークのパターンが選択されたメニューのアイテムを表示する領域を有する，メニューパターン選択部及び， 前記パターン選択部と空間的に関連し，同時に表示され，ポインティグ装置で指定された位置が選択されたメニューのアイテムを表示するメニューロケーション選択部を有するディスプレイ。
【請求項９】
請求項８において， ロケーション選択領域を完全に横切るストロークのパターンは前記ストロークのパターンで選択されたメニューアイテムのみを選択するディスプレイ。
【請求項１０】
請求項８において， 該パターン選択部は，前記領域の放射線状の空間的配置を有し，該位置選択部は，前記領域の直線状の空間的配置を有するディスプレイ。
【請求項１１】
請求項８において， 該メニューパターン選択部は，８つのメニューアイテムを含み，該メニューロケーション選択部は，少なくとも一つのメニューアイテムを含むディスプレイ。
【発明の詳細な説明】
【技術分野】
【０００１】
メニューの作成，制御，表示のための方法及び装置 本発明の背景 技術の分野 本発明は，角度マーキングメニュー及び直線メニューを組み合わせたメニューを作成，制御，表示するための方法及び装置に関するものである。特に，パターン選択可能なメニューと位置選択可能なメニューを一つの画面で組み合わせるシステムに関するものである。
【背景技術】
【０００２】
近年のユーザインタフェースにおいて，メニュー選択は，基本的な頻度の高い操作のひとつである。一般的に，メニューからの選択するために要する時間は短い(秒単位または 0.1 秒単位)。しかし，どのタイプのアプリケーションにおいても，メニュー選択は頻度の高い操作である。そのため，メニューから選択を行うための時間を短縮することは，比較的大きな仕事を完成するために要する大切な時間を節約することにつながる。これは，「ホットキー」のようなメニュー選択の高速度化技術及びマーキングメニューが一般的だということから明らかである。
【０００３】
各高速度化技術には，各々に長所と短所がある。例えば，ホットキーは，多数のメニューアイテムから選ぶことができる。例えば，キーボードのすべてのキーをホットキーとして使用することができる。しかし，ユーザにとって，メニューアイテムとキーの関係を覚えておくことは非常に大変なことである。キーボードが別装備されているシステムで，ユーザが作業を行う場合，又はインタフェースを操作している間，ユーザがキーボードと他の装置の間を移動しなければならない場合には，ホットキーは有効ではない。例えば，ユーザは，マウスからキーボードへ，またはキーボードからマウスへ，同じ手を移動させなければならない。
【０００４】
マーキングメニューとは，ポップアップメニューの手法の一つである。標準のメニュー（直線メニュー）において，メニューアイテムを直線状に（例えば，上から下へ）表示するのに対して，マーキングメニューでは，カーソルを囲んだ一つの円の中にメニューアイテムを表示する。この違いにより，直線メニューで行うよりもマーキングメニューで行う方が，より早くアイテム選択することができる。例えば，ユーザは，必要なメニューアイテムの方向に「フリック(動かす)」，又はカーソルのストロークを生成することによって，マーキングメニューから選択を行うことができる。このように，ユーザは必要なメニューアイテムを選択するために，メニューが表示されるのを待つ必要がない。しかし，マーキングメニューではアイテム数が増えるにつれて，メニューをポップアップせずにすばやくメニューアイテムを選択することは難しくなる。これは，メニューアイテム同士の角度差が小さくなり，ユーザがこれを調整することが難しくなるからである。
【０００５】
この問題を解決するために，一般的にマーキングメニューに含まれるアイテムの数は，８つ以下に限られている。
【０００６】
ここで，同一画面でマーキングメニューと直線メニューを組み合わたものが必要になる。例えば，これは，位置決め方法を使用した直線メニューのアイテム選択を使用して，マーキング又はストロークパターンを利用するマーキングメニューからすばやくアイテムの選択を行うことが可能であると共に，メニューのアイテム数を８アイテム以上にすることができるようなメニューである。
【特許文献１】特開平３−２４６６１４号公報
【特許文献２】特開平５−１２７８１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は，同一画面で角度マーキングメニューと直線メニューを組み合わせることにある。
【０００８】
本発明の他の目的は，角度マーキングメニュー選択技術と位置選択技術を組み合わせることにある。
【０００９】
本発明の更なる目的は，複数のアイテムの選択の高速化を行うメニューディスプレイを提供することにある。
【００１０】
本発明の更なる他の目的は，直線(又は位置)を基にしたメニュー選択方法とパターンを基にしたメニュー選択方法を区別するプロセスを提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的は，カーソルマークでメニューアイテムをマークすることによってアイテム選択を行う角度マーキングメニューと，特定の位置で選択することによってアイテム選択を行う直線メニューを組み合わせるシステムによって達成する。このシステムは，直線メニューが位置するディスプレイの部分と，角度マーキングメニューが位置するディスプレイの部分とを区別する。
【００１２】
次に明らかになる本発明の更なる他の目的及び効果は，以下の詳細な説明及びクレームによりその構成及び操作が明らかになる。以下の説明において，同一のもの又は類似の部分には同一の記号または番号を付して説明する。
【発明を実施するための最良の形態】
【００１３】
本発明は，図１に示されるように，一般的にハードウエア構成を有する。この構成には，ディスプレイ２２でメニューを生成し，表示するコンピュータ２０が含まれる。ユーザは，キーボード２４等のインタフェース装置及び，マウス等のポインティング装置２６を使用して，コンピュータシステム２０を通してディスプレイ２２と相互作用する。コンピュータ２０は，動作検知装置及びボタン押下検知回路等のポインティング装置２６と相互作用するために必要な従来のハードウエア，及び以下に説明するプロセスを記憶するためのハードウエア及びフロッピー（登録商標）ディスク等の適切な記憶媒体とを有する。コンピュータ２０には，パーソナル又はポータブルコンピュータから，ワークステーションタイプのコンピュータになる一般的なコンピュータを有する中央処理装置型のコンピュータ，例えば，ユーザが行う操作の中で，メニュー選択が重要な部分を占める，ＣＡＤ／ＣＡＭ及び動画処理操作等の量産業務で使用されるコンピュータまで，どのタイプのコンピュータを使用してもよい。ディスプレイ２２は，例えば，ＣＲＴ画面や，液晶画面など，メニューを表示できるものであればどのタイプのものでもよい。ポインティング装置２６は，ペン，マウス，トラックボール，トラックポイント又はジョイスティック等を含む，どのタイプのポインティング装置でもよく，また，キーボード２４とは別装備でも一体型でもよい。例えば，接触感知式パネル(タッチセンシティブパネル)等のように，一つの装置にディスプレイ２２とポインティング装置２６を組み合わせることもできる。
【００１４】
本発明において，角度マーキングメニューと直線メニューを一つの画面で組み合わせ，この組み合わせたメニューにおいて，角度マーク部及び直線部を互いに関連させ，同時に表示する。本発明では，この二つのタイプのメニューのパターン選択技術及び位置選択技術を使用して，メニューを選択することができる。この組み合わせたメニューについて説明する前に，直線メニュー及び角度マーキングメニューの選択及び画面配列を説明する。
【００１５】
図２に示すように，直線メニュー３０は，一般的に直線の配列でメニューアイテムを配列する。図２において１４のメニューアイテム（１〜１４）が示されるが，図示される配列は一次元配列である。もちろん，アイテム数は１４以下または以上でもよく，アイテムは二次元以上の配列，又は仮の配列で並べることもできる。直線メニューの主な特徴は，所望のアイテムを選択するために使用される方法にある。典型的に，図示される矢印のようなポインター（又はカーソル）３２を，ポインティング装置２６を操作して選択するメニューアイテムで定義された位置及び領域に移動させ，通常はポインティング装置２６と関連するが，キーボード２４等の別のインタフェース装置内にあるボタンを押下する(又は開放する)ことによってメニュー選択を行う。ボタンを押下した（または開放した）時に，コンピュータ２０は，ポインター３２の位置を判別する。ポインターがあるメニューアイテムで定義された領域内にある場合は，そのアイテムが選択される。ポインターが，メニューアイテムで定義されたどの領域内にもない場合は，何も選択されない。つまり，直線メニューでは，ポインター３２の位置を使用して，選択されるアイテムを判別する。図２に示されるように，ポインター３２がメニューアイテム１上にある時に，ユーザが選択ボタンを押下する(開放する)と，メニューアイテム１が選択される。直線メニューを使用すると，ユーザは，選択されるアイテムで定義されるディスプレイの領域内にポインター３２を置かなければならない。これは，ユーザにとって相当な時間がかかり，そして正確な位置決めが必要となる。アイテムが最小化可能なアイコンである場合，正確な位置決めはより重大な問題である。
【００１６】
角度マーキングメニューには，パイ型メニューと角度マーキングメニューの二種類がある。一般的に，上記した直線メニューの位置選択原理を使用してアイテム選択を行う場合に，パイ型メニューを使用する。アイテム選択の基本である，カーソル又はポインターの移動方向による選択原理を使用してアイテム選択を行う場合に，角度マーキングメニューを使用する。マーキングとは，以下のように操作してメニュー選択を行う作業である。ユーザは，例えば，ペンで画面を押下する，又はマウスのボタンを押下したまま，ポインティング装置２６の選択インディケータを活性化させ，しばらくの間（約１／３秒間）待つ。この時，図３に示すような，角度マーキングメニュー４０が，ペン５２の先端に直接現れる(「ポップアップ」する)。そして，ユーザはペンを押下したまま，目指すアイテムの方向にストローク４２を生成することによって，そのアイテムを高輝度化させる。
【００１７】
メニュー４０の中央部４４とポインターの現在位置の間に絶えず直線を書き直すことによって，コンピュータはストローク４２を作る（つまり，ストローク４２はメニューの中央部とポインターを結ぶ「ゴムバンド線」のような役割をする。）そのメニューアイテムのある一定角度内(例えば，図３に示すメニューアイテム１のある角度範囲４６内)にポインターが動くと，コンピュータ２０は特定のアイテムを高輝度化する。そのアイテムにサブメニューがない場合は，ペンを持ち上げることによって，高輝度化されたアイテムを選択することができる。そのアイテムにサブメニューがあり，ユーザがポインターを動かすのをやめると，ペン５２の下に新しいメニューの中央部４８が位置するように，サブメニューが表示される(図４参照)。この時に，新しいメニューの中央部４８からペン５２で他のストローク５０を描くことによって，ユーザは新しく表示されるサブメニューを選択し続けることができる。ペン５２を持ち上げることによって，現在選択されている一連の高輝度化されたアイテムを選択することができる。図４の例において，メインメニュー５４の“Ｇｒｏｃｅｒｉｅｓ(八百屋)”アイテムと，サブメニュー５６の“Ｆｒｕｉｔ＆Ｖｅｇ(果物と野菜)”アイテムを選択している。この時，メニューは表示画面から取り除かれる。ユーザがペンを持ち上げる前にサブメニューの中央部４８にペンを戻すことによって，いつでもサブメニューの「選択なし」という表示をすることができる。又，ペンを持ち上げる前にペンを移動して他のアイテムを高輝度化させることによって，選択を変更することができる。つまり，ユーザはその中央部４４をポイントすることによって前のメニューに「バックアップ」することができる。
【００１８】
図５に示すように，マーク５８を引くことによって，メニューをポップアップしないでより速く選択を行うもう一つの方法がある。ペンを下に押し，すばやく移動することによって，マークを引くことができる。マーク５８の方向はメニューから選択される特定のアイテムを示す。本発明において，後で詳細に説明するように，マークを引き，メニューがポップアップしないようにした場合，システムは本発明にしたがう直線部が存在しないとしてそのマークを解釈する。後で詳細に説明する角度マーキングメニューと直線メニューを組み合わせたメニューを表示する場合，これを「メニュ」モードに対して，「マーキング」モードと呼ぶ。
【００１９】
このように角度マーキングメニューでは，アイテムを二つの異なる方法で選択することができる。図４の方法を使用すると，角度マーキングメニューを次々表示することができ，選択を行う。図５の方法では，同じ選択を行うためにメニュー表示をしないで，マーキングを使用して選択を行う。最初の方法は，ユーザがメニューをよく知らない場合に適している。二番目の方法は，ユーザがメニューをよく知っていて，メニュー表示を待ちたくない場合に適している。
【００２０】
角度マーキングメニューで，ホットキーのいくつかの問題点を解決することができる。ユーザはキーとメニューアイテムの関係を覚える必要がない。ユーザはメニューアイテムの空間的なレイアウトを覚えればよいだけである。一般的に，ユーザは，メニューアイテムの空間的なレイアウト，特によく使うコマンドの位置については，簡単に覚えることができる。角度マーキングメニューでは更に操作のためにキーボードを使う必要がない。しかし，角度を正確に描く人間の能力には限度があるので，角度マーキングメニューのアイテム数は，一般的に８つに制限されている。
【００２１】
多くの場合，近年のユーザインターフェースは，８以上のアイテムを有するメニューを使用している。例えば，ＡＬＩＡＳ Ｖ６パッケージのポップアップメニューのアイテム数は，８〜１５であり，ポップアップメニュー毎に，平均１２．７５アイテム有する。メニューの階層を作ることによって，角度マーキングメニューで数多くのアイテムを使用することができる。この場合，高速なメニュー選択を行うには，簡単なストロークよりもむしろ区切りのあるジグザク線が必要になる。例えば，６４のアイテムメニューは，各アイテムがもう８個のアイテムのサブメニューを導く８つのアイテムメニューで作ることができる。このように，ユーザインタフェースの設計者が直線メニューを使用するアプリケーションを角度マーキングメニューを使用するアプリケーションに変換したい場合，設計者は８以上のアイテムを有するメニューはすべて階層メニューに変換しなければならない。この変換プロセスを行うには，もうひと作業必要になり，直線メニューアイテムを階層的なカテゴリに自然に分解することはできないかもしれない。
【００２２】
図６に示すように，本発明において，角度マーキングメニューと直線メニューを一のメニューに組み合わせる。例えば，直線メニューを角度マーキングメニューに変換すると，メニューアイテムを複数のカテゴリに分解する必要はなくなる。本発明では，頻繁に選択される一般的な直線メニューの最初の８アイテムまでを直接角度マーキングメニュー部６２にマップする。他の（「オーバフロー」）アイテムは，角度マーキングメニュー部６２が表示されると同時に表示される直線メニュー部６４にマップされる。図では，直線メニュー部６４は角度マーキングメニュー部６２の下に示されるが，同じ画面で同時にメニューを表示すれば，直線メニュー部の位置は必要に応じて変更することができる。
【００２３】
図６に示すように，本発明には次の長所がある。一つは，前述したように，直線メニューからこのフォーマットへの変換が簡単だということである。階層的なカテゴリへ分ける必要はなく，各メニューに８以上のアイテムを使用することができる。二番目に，最初の８つのアイテムで高速な選択を行うことができ，従来の直線メニューより時間の節約ができる。三番目に，メニュー６０にある複数のアイテムを上下ではなく左右に並べるので，メニュー６０の高さを低くすることができる。つまり，このタイプのメニュー６０は，従来の直線メニューとほぼ同じ画面空間をとる。このため，この新しいメニュー６０は従来の直線メニューと同じ位置で表示することができる(例えば，メニューをポップアップ又はポップダウンすることができる等)。
【００２４】
本発明には，従来の直線メニューとは異なるいくつかの性質がある。一つは，ユーザはメニューの直線部６４から一つのアイテムを選択する前に，メニューの表示をするために停止しなければならない。これは，これらのアイテムは，定義によれば頻度の高くないコマンドであり，重大な短所ではない。表示画面の端のぎりぎりの所でメニューがポップアップすると，フリックを使用してメニューの角度マーキングメニュー部６２から複数のアイテムを選択する空間が十分に確保できない。例えば，仮にユーザが表示画面の左上部角でマウスボタンを押下したときにメニュー６０がポップアップしたとする。この部分では，カーソルを上にまたは左に「フリック」し，複数のメニューアイテムを選択する場所がない。表示画面のちょうど端でメニューをポップアップするときにたまに起こる状態なので，実際にはこれは重大な問題ではない。更にフリックするのに要する空間の大きさを非常に小さくすることができる。つまり，メニュー６０の角度マーキングメニュー６２は，メニュー選択の頻度に応じてメニューをグループ化して表わす。直線メニューでは，通常，機能を基にしてアイテムをグループ化する。このため，新しいメニューへの変換時に，システムはメニューのアイテムを再配列しなければならない。幸いにも，一度ユーザがそのメニューのレイアウトに慣れると，メニューアイテムの特定のグループ化はほとんど値がない。そのため，長い目で見ると，これは重大な問題ではない。
【００２５】
このような（直線メニューと角度マーキングメニュー）を組み合わせたメニューを作るには，図７に示すように，表示されるメニュー７０を異なる領域に分ける必要がある。個々のメニューアイテムの領域ごとに定義される直線領域で，「表示ボタン」または選択領域７２を定義する。表示ボタン７２及び７３以外のすべての画面表示を指す角度マーキング領域において，選択領域を角度範囲７４で定義する。操作中，ストローク７６等のストローク又はマークが直線選択領域７２またはラベル７３内に最終地点７８を有する場合(及びペンがその地点で持ち上がった場合)，その最終地点７８のアイテムが選択される(この例では，アイテム５)。ストローク８０が角度マーキングメニュー部の領域内にある場合，対応する範囲内またはそのＶ字型の範囲内にあるアイテム，図に示す例でいうとアイテム４，が選択される。一つ以上の直線領域を横切った後に，ストロークが角度マーキング領域７４で終わる場合，対応するＶ字型の範囲内又は角度マーキング領域にあるアイテム，図に示す例でいうとアイテム３，が選択される。つまり，ストロークの最終地点が直線領域７２（またはラベル７３）内にない場合，合致する又は対応する角度マーキング領域のアイテムを選択する。角度マーキングメニューのラベルはそのラベルと対応する角度範囲外に出すことはできるが，メニューアイテムへのポインティングはその角度範囲の選択に優先する。例えば，図６に示すメニューアイテム２の一部（アイテム２のラベル領域）は，各アイテムの角度範囲がどのように定義されるかによって，位置づけすることができる。しかし，メニューアイテム２のラベルに直接ポインティングすると，ポインターがメニューアイテム３の角度範囲にあっても，そのアイテムを輝度することができる。図７に示す７２のような直線メニューアイテムには「角度範囲」の特徴がなく，ユーザは選択されるアイテムのラベルを直接ポインティングしなければならない。
【００２６】
本発明は，ユーザがメニューを表示せずにマークを描くときに上記の説明とは異なる役割をする。この場合，直線メニューアイテムが存在しないかのようにマークを解釈される。例えば，７６のようなマークが描かれた場合，これは直線メニューのアイテム５ではなく，角度マーキングメニューのアイテム３を選択したことになる。この機能には，ユーザは間違って直線メニューのアイテムを選択することなく，クイックマークで（フリックで）角度マーキングメニューのアイテムを短時間で選択することができるという長所がある。
【００２７】
本発明において，同じ画面で角度マーキングメニューと直線メニューを組み合わせることを目的としている。本発明が，従来の技術におけるメニュー選択の一般的な規則にしたがっているものだとしたら，（メニューを表示することによって，またはマークを描くことによって行われる）すべてのメニュー選択がストロークの先のカーソル位置を基にしたものであることを意味する。これはユーザが本発明のメニューからすばやくメニュー選択をしようとするときに，選択間違いを起こす原因となる。このように，本発明の効果または相違点は明らかである。
【００２８】
選択を判別するプロセス動作を，図８から図１１のフローチャートに示す。一般的にこのようなプロセスは，割込みタイマー又は，例えば，マウスボタンを押下する／開放する，又はマウスの移動の検知などのイベントを基に起こる割込みで割込みを行う。図８〜図１１の図面から明らかなように，待機状態１２０から抜け出ることによって，このプロセスの動作は始まり，この状態１２０に戻る。
【００２９】
待機状態から抜け出ることはイベントによって発生する。これは，後で詳細に示すように，イベントのタイプの判別するためにイベントをチェックするためのものである。各操作は，一般的に，図８に示すペン置き，図９に示すペンドラッグ，図１１に示すペン静止及び図１１に示すペン引き上げで行うことができる。
【００３０】
図８に示すペン置き操作では，まずマウスボタンの押下イベントが発生したかどうかを判別する第一のチェックを行う(１２２)。マウスボタンの押下イベントが発生していない場合，システムは待機状態１２０に戻る。マウスボタンの押下イベントが発生している場合，モードを角度マーキングメニューモードに設定し(１２４)，メニュー選択を起動メニューまたは最上階層のメニューに設定する(１２６)。この時，システムがペン又はマウスがもう動かないか又は静止しているかを検出するために，システムタイマーを設定する(１２８)。そして，現在のカーソル位置及び時刻を記録する(１３０)。
【００３１】
ペンドラッグ操作において，行われる最初のチェックは，図９に示すように，ボタンが押下されている時にマウス移動のイベントが発生したかどうかを判別することである(１４０)。マウス移動のイベントが発生していない場合は，システムは再び待機状態１２０に戻る。イベントが発生している場合は，移動のしきい値に対してカーソルまたはポインターの移動距離を調べる(１４２)。しきい値を超えると，タイマーをリセットする(１４４)。どちらの場合でも，次にモードに関する判定を行う(１４６)。現在のモードが，角度マーキングメニューモードではない場合，カーソルまたはポインターの特定の位置にあるアイテムを高輝度化し(１４８)，そのアイテムを現在選択されているものとして記録する(１５０)。
【００３２】
現在のモードが角度マーキングメニューモードである場合，現在のカーソル位置と時刻を記録する(１５２)。
【００３３】
ペン静止操作(図１０参照)において，タイマー満了イベントが発生しているかどうかを判別する第一のチェック（１６０）が行われ，タイマー満了イベントが発生していない場合，システムは待機状態１２０に入る。この操作において，システムは更にモードのチェック（１６２）を行う。角度マーキングメニューモードにおいて，現在のモードをメニューモードに設定し(１６４)，前述したように，そのマークを適切なメニューに置き換える(１６６)。この時，タイマーを設定し(１６８)，システムは待機状態１２０に入る。角度マーキングメニューモードではない場合，システムはタイマーを設定し(１７０)，カーソルが親メニューの中央部あるかどうかを判別する(１７２)。カーソルが親メニューの中央部にある場合，子メニューをディスプレイから削除する(１７４)。カーソルが親メニューの中央部にない場合，カーソル位置がラベルメニューのアイテム上にあるかどうかの判別を行う(１７６)。カーソル位置がラベルメニュー上にない場合，カーソルが角度マーキングメニューの端を超えているかどうかを判別する(１７８)。カーソルがその端を超えている場合，そのアイテムにサブメニューがあるかどうかを判別する(１８０)。そのアイテムにサブメニューが有る場合，サブメニューを表示して(１８２)，そのサブメニューを現在のメニューにする(１８４)。
【００３４】
図１１に示すペン上げ操作において，アイテム選択の判別を行う。システムはマウスボタンの解放イベントが発生しているかどうかを判別し(１９０)，マウスボタンが解放されている場合，タイマーを停止する(１９２)。現在のモードが角度マーキングメニューモードではないことを判別すると(１９４)，メニューはすべて消去され(１９６)，記録されたメニュー選択を基に選択が行われる(１９８)。現在のモードが，角度マーキングメニューモードである場合，現在のカーソル位置と時刻を記録する(２００)。そして，前のカーソル位置から現在のカーソル位置に線を引く(２０２)。この時，マークが消され(２０４)，保存された位置と時刻を使って，そのマークからメニューの選択を判別し(２０６)，その選択を実行する(１９８)。
【００３５】
本発明が典型的に使用されるウインドウズ型のオペレーティングシステムのある特性をインプリメンテーションにおいて考慮に入れることは，そのようなオペレーティングシステムがアプリケーションとどのように関係しているかを考慮に入れることと同様に重要なことである。ポインティング装置で移動するカーソルまたはポインターが動きを止め，その速度がゼロになったときに，多くのオペレーティングシステムがイベントを発生しないことが一つの問題である。もう一つの問題は，割込みが発生していないければ制御を止めないシステムがあるということである。そのため，上記に説明したさまざまな過程を正確に作動させるために，ポインティング装置（カーソル）の位置を定期的にサンプリングするための機能，例えばタイマーの割込みを組み入れることによって行われる機能がインプリメンテーションに含まれなければならない。本発明におけるメニューのようなメニューを「ポップアップ」する画面の一部を保存する機能のないオペレーティングシステムもある。そのようなシステムでは，インプリメンテーションは，ユーザによって特定の選択が行われる時または行われた後に，ポップアップメニューで書き直された画面の一部を保存し復元するための機能を備える必要がある。
【００３６】
この問題により，本発明はシリコングラフィックス．インクから提供されるＸＷＩＮＤＯＷＳ（登録商標）システムに実現（インプリメンテーション）されることが望ましい。
【００３７】
図８乃至図１１に示される方法の好ましいインプリメンテーションについての詳細は，末尾に記載する擬似コードで説明する。ここで説明した方法は，Ｃ言語などで実現することが望ましい。しかし，ポインティング装置でユーザのインタフェース画面を生成及び処理できる言語であれば，どの言語を使ってもよい。
【００３８】
本発明は，テキストラベルを有するメニューを示す例について説明してきたが，多くの場合，ディスプレイの好ましいモードは，アイコンを使うことである。
【００３９】
３列の配列で並べられる直線メニューのアイテムと角度マーキングメニューのアイテムを有するアイコンメニューの例を図１２に示す。この例において，８つのアイコン２１０〜２２４は，ポインターが位置する中央部２２６の周囲に並べられた角度マーキングメニュー部６２に図示される。直線または位置選択部６４には６つのアイコン２２８〜２３８がある。ユーザはアイコンの意味を理解することを要求されるが，前述したように，テキストラベルメニューと同じ方法でこのメニューを選択する。図１２に示すように直線メニューは二次元配列で並べることができ，直線メニューは，角度マーキングメニューが実際にポップアップする場所によって必要となる角度マーキングメニューの周囲であればどの位置においてもよい。一般的にはメニューの元のデザインによって決定される。
【００４０】
図１３は，ツールボックス２６６のアイコンセット２５０〜２６４，及び，選択された一つのツールセット２５２の拡大されたツールパレット２６８を示す。
【００４１】
拡大された時にパレットの中央部にポインターが位置することで，パレット中央部から続けてマーキング又は位置による選択が可能である。この図において，パレットは小さく一般的に解読困難なアイコン表示画像から拡大される。アイコンがポップアップしていなくても，又は，フルサイズに拡大していなくても，従ってそれらのアイコンが判別できなくても，ユーザがどのアイコンがどの選択を示すかを覚えていれば，マーキング選択処理を使用して，この図の左側に示すアイコンの縮小画像からアイコンを選択することができる。
【００４２】
本明細書で表示し説明したメニューアイテムは，テキストラベル及びアイコンを有するが，画像や記号や音声等の他の種類のメニューアイテムを代わりに使うこともできる。更に，ツールパケット，プルダウンメニュー及びオブジェクトホットスポット等のいかなるタイプのメニューで本発明を使用することができる。
【００４３】
ストローク，「インクテール」，又は「ゴムバンド線」を表示する必要もない。メニューの各部分のアイテム数は，変更することができ，アイテムをいかなる望ましい配列で並べてもよい。
【００４４】
本発明の多数の特徴または効果は，詳細な説明により明らかになる。そのため，本発明の真の精神及び範囲内に存在するすべての特徴及び効果は，すべて特許請求の範囲に含まれるものである。更に，本発明において多数の変形及び変更が容易に実施できるため，図示及び説明された構成及び操作そのものに本発明を限定するものではない。したがって，特許請求の範囲の均等範囲に属する変形，変更はすべて本発明の範囲内のものである。
【００４５】
追記
オーバフローアイテムを有するマークメニューの翻訳コードのアルゴリズムシステム構成を仮定：
イベントを基にした入力システムがあると仮定する。アプリケーションには，３種類のイベントが報告される：
１） マウスボタンの押下。
２） マウスボタン押下時に変化するマウスボタンの位置。
３） マウスボタンの解放。
少なくとも１／１０秒の頻度で，タイマー割込みをスケジュールすることができるシステムがあると仮定する。
【００４６】
１)，２)，３)のタイプのイベントが発生する時，手順ＭＭpendown，ＭＭpendrag，ＭＭpenup が呼び出される。マウスの現在のＸ及びＹ軸の位置が各手順に渡される。タイマー割込みが発生すると，ＭＭpenstill と呼ばれる手順が呼び出される。
【００４７】
擬似コードの変換についての注意：サブルーチンが多数回使用される場合，擬似コード内でのサブルーチンの最初の登場は，括弧内の手順名が続く英語表記からなる。次にそのサブルーチンを使用する時はその名前を使用する。
【００４８】
一部の擬似コード行には高度な記述をするより複雑なサブルーチンがある場合もある。これらの擬似コード行は，括弧内のルーチンの名前が続くかもしれない。
ルーチンの擬似コードの表記についての詳細は後で記載する。
【００４９】
変数についての注意：ＰＡＵＳＥＴＩＭＥ は，メニュー画面を獲得するまでユーザがマウスを静止した状態にしておかなければならない時間の長さを示す。ＰＡＵＳＥＴＩＭＥ は，実際は，約１／３秒である。ＪＩＴＴＥＲＯＴＥＲＡＮＣＥ は，このアルゴリズムでマウスがもう静止していないと確認する前にピクセル単位でマウスを動かすことができる範囲を示す。ＪＩＴＴＥＲＯＴＨＲＡＮＣＥは，実際は，約５ピクセルである。
【００５０】
［ ］内に説明用のコメントを記載する。
ＭＭpendown(x,y) 
現在のモードをＭＡＲＫＩＮＧ(角度マーキングメニューモード)に設定する 。
現在のメニューを原点又は始動メニューに設定する。
ＰＡＵＳＥＴＩＭＥにタイマー割込みをスケジュールする(Ｓtarttimer)。
マークの開始位置のＸ及びＹ位置と，その位置づけをした時刻を記録する。
ＭＭpendrag(x,y) 
（Ｉｆ）Ｘ及びＹの位置が前の位置から「所定量」移動する (Ｃursor Ｍoved?)。
タイマー割込みをスケジュールしない(Ｓtoptimer) Ｓtarttimer 
（Ｉｆ）現在のモードがＭＡＲＫＩＮＧ(角度マーキングメニューモード)の 場合， Ｘ，Ｙの位置とこの位置づけが発生した時刻を保存する。
前のＸ，Ｙ位置から現在のＸ，Ｙ位置へ線分を引く。
（ｅｌｓｅ）
Ｘ，Ｙ位置にあるメニューアイテムを輝度する(ＭenuＣhoice)。
このメニューアイテムを現在のメニューで選択されたものとして記録する。
ＭＭpenstill 
（Ｉｆ）現在のモードがＭＡＲＫＩＮＧ（角度マーキングメニューモード）
の場合，
Ｓtoptimer 現在のモードをＭＥＮＵＩＮＧ（メニューモード）に設定する。
マークをメニューに置き換える(ＲeplaceＭark)。
Ｓtarttimer 
（ｅｌｓｅ）
Ｓtoptimer 
Ｓtarttimer 
（Ｉｆ）現在の位置が親メニューの中央部にある場合， その中央部が指す親メニューに到達するまでサブメニュー を表示しない。
（ｅｌｓｅ）(ｉｆ)現在のＸ，Ｙの位置がメニューのラベルを超え ている場合又は，現在のメニュー領域の端を超えていて，現在選択 されたメニューアイテムにサブメニューがある場合， 
現在選択されたメニューアイテムのサブメニューを表示する。
サブメニューを現在のメニューにする。
ＭＭpenup(x，y) 
Ｓtoptimer 
（Ｉｆ）現在のモードがＭＡＲＫＩＮＧ（角度マーキングメニューモード）
である場合， 
Ｘ，Ｙ位置を保存する。
前のＸ，Ｙ位置から現在のＸ，Ｙ位置へ線分を引く。
引かれたすべての線分を表示画面から取り除く。
保存されたＸ，Ｙ位置を使用して，マークに対応するメニューを選択 する。
（ｅｌｓｅ）
表示画面から表示されているメニューをすべて取り除く。
メニュー選択を実行する。
ＭenuＣhoice 
（Ｉｆ）カーソルを一つのメニューアイテムのラベル上に直接置く場合[メ ニューの角度部やオーバフロー部をチェックする]， [この過程はこのアルゴリズムにおいて重要である。メニューが表示され ている時に選択を行うと，マークを引くことによって行われる選択とは 異なる。マークによる選択がどのように判別されるかについては，下記の コメント***を参照する]。
（ｔｈｅｎ）そのメニューアイテムがこのメニューで選択されたものであ る。
（ｅｌｓｅ）(ｉｆ)カーソルが角度マーキングメニューの中央部にある場 合， （ｔｈｅｎ）メニューの選択はないことを示す。
（ｅｌｓｅ）カーソルがあるＶ字型の範囲にある対応するメニューアイテ ムであることを示す。
ＳelectionＦromＭark 
（Ｉｆ）マークが非常に小さい場合(長さ＜中央の図形のサイズ)， 
（ｔｈｅｎ）選択は行われない。
（Ｉｆ）メニューの構成が，一階層しかない場合， 
（ｔｈｅｎ）マークの開始位置と終了位置を使用して，どのＶ字型の角度 範囲に終了地点があるかを判別する。そのＶ字型の範囲に対応するアイテ ムが選択されたアイテムである。
（ｅｌｓｅ）メニューの構成が，複数階層である場合， 
メニュー選択からサブメニュー選択への移行の可能性に対応するマー ク折点と休止点を判別する(ＧetＡrticulationＰoints)。
この一連の位置からＶ字型の角度範囲のみを基にして，一連のメニュ ーアイテムの選択を判別する。[***これは，このアルゴリズムの鍵と なる。オーバフローアイテムがこのメニューにないように，マークは 分析される。]
ＧetＡrticulationＰoints 
マークが生成されたときに記録された位置と時刻のリストを使用して，ユ ーザが少なくとも１／２秒間静止した位置を見つける。
（Ｉｆ）静止した位置の数がメニュー構造の最大深さよりも多い場合，メ ニュー構成はマークを無効とみなし，どの接点も返さない。
（Ｉｆ）静止した位置の数がメニューの最大深さ＋１よりも少ない場合， ２２．５度よりも大きいマークでの角度変化を見つける(２２．５ 度は４ ５度の１／２で，これは各Ｖ字ゾーンの角度差を示す。そのため，行方向 に少なくとも２２．５度変化すると，ユーザがサブメニューの異なるＶ字 型範囲から選択することを示す)。
この最初のメニューの最大深さ−１を接続点として使用する。
ＲeplaceＭark 
ＧetＡrticulationＰoints 
各接点に対してＶ字型の角度範囲だけを基に一連のメニューアイテ ムの選択を判別する。
対応する接点を中心にこれらのメニューをそれぞれ表示する。
ＣursorＭoved? 
ＡＢＳ（前のＸの位置現在のＸの位置）＋ＡＢＳ（前 のｙの位置現在のｙの位置）＞ＪＩＴＴＥＲＴＯＬＥＲＡＮＣＥ の場合，ＴＲＵＥ(真)を返す。
【図面の簡単な説明】
【００５１】
【図１】本発明の一般的なハードウエア（の構成）を示す。
【図２】直線メニューまたは位置選択のメニューを示す。
【図３】角度マーキングメニューを示す。
【図４】角度マーキングメニューを使用するサブメニューの選択方法を示す。
【図５】画面を作成せずに角度のマークパターンを使用して行う選択方法を示す。
【図６】本発明に従う角度マーキングメニューと直線メニューを組み合わせたメニューを示す。
【図７】本発明の選択操作について示す。
【図８】本発明の操作過程のフローチャートを示す。
【図９】本発明の操作過程のフローチャートを示す。
【図１０】本発明の操作過程のフローチャートを示す。
【図１１】本発明の操作過程のフローチャートを示す。
【図１２】アイコンメニュー及びツールパレットから拡大されたアイコンメニューを示す。
【図１３】アイコンメニュー及びツールパレットから拡大されたアイコンメニューを示す。
【符号の説明】
【００５２】
６２：角度マーキングメニュー
６４：直線メニュー部
７０：メニューディスプレイ部
【図１】
2008016056.tif 000003
【図２】
2008016056.tif 000004
【図３】
2008016056.tif 000005
【図４】
2008016056.tif 000006
【図５】
2008016056.tif 000007
【図６】
2008016056.tif 000008
【図７】
2008016056.tif 000009
【図８】
2008016056.tif 000010
【図９】
2008016056.tif 000011
【図１０】
2008016056.tif 000012
【図１１】
2008016056.tif 000013
【図１２】
2008016056.tif 000014
【図１３】
2008016056.tif 000015
【手続補正書】
【提出日】平成19年9月7日(2007.9.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ポインティング装置が画面上の位置を指し示した後に，複数の角度選択領域を有する角度マーキングメニュー部及び複数の直線位置選択領域を有する直線位置メニュー部を同時に且つ互いに空間的に関連して有するメニューを表示し， 
前記ポインティング装置によりストロークが形成された時に，前記メニューが表示されていたか否かを判定し，
前記メニューが表示されていない場合は，前記ポインティング装置によるストロークの方向の前記角度選択領域に対応する角度マーキングメニューアイテムの選択を決定し，
前記メニューが表示されている場合であって，ポインティング装置によるストロークの最終地点が，前記直線位置選択領域内にある場合は，前記最終地点が位置する該直線位置選択領域に対応する直線位置メニューアイテムの選択を決定し， 
前記メニューが表示されている場合であって，前記ストロークの最終地点が直線位置選択領域内にない場合は，前記ポインティング装置によるストロークの方向の前記角度選択領域に対応する角度マーキングメニューアイテムの選択を決定する画面表示上でのメニュー選択方法。
【請求項２】
ディスプレイと，
最終位置を有するストロークを形成するポインティング装置と，
前記ディスプレイとポインティング装置とに接続されたコンピュータと，
前記コンピュータは，
前記ポインティング装置が前記ディスプレイの画面上の位置を指し示した後に，前記ディスプレイに，複数の角度選択領域を有する角度マーキングメニュー部及び複数の直線選択領域を有する直線メニュー部を同時に且つ互いに空間的に関連して有するメニューを表示し，
前記ポインティング装置によりストロークが形成された時に，前記メニューが表示されていたか否かを判定し，
前記メニューが表示されていない場合は，前記ポインティング装置によるストロークの方向の前記角度選択領域に対応する角度マーキングメニューアイテムの選択を決定し，
前記メニューが表示されている場合であって，ポインティング装置によるストロークの最終地点が，前記直線位置選択領域内にある場合は，前記最終地点が位置する該直線位置選択領域に対応する直線位置メニューアイテムの選択を決定し， 
前記メニューが表示されている場合であって，前記ストロークの最終地点が直線位置選択領域内にない場合は，前記ポインティング装置によるストロークの方向の前記角度選択領域に対応する角度マーキングメニューアイテムの選択を決定するメニュー選択システム。
【請求項３】
ポインティング装置が画面上の位置を指し示した後に，複数の角度選択領域を有する角度マーキングメニュー部及び複数の直線位置選択領域を有する直線位置メニュー部を同時に且つ互いに空間的に関連して有するメニューを表示する手段を有し， 
前記ポインティング装置によりストロークが形成された時に，前記メニューが表示されていたか否かが判定され，
前記メニューが表示されていない場合は，前記ポインティング装置によるストロークの方向の前記角度選択領域に対応する角度マーキングメニューアイテムの選択が決定され，
前記メニューが表示されている場合であって，ポインティング装置によるストロークの最終地点が，前記直線位置選択領域内にある場合は，前記最終地点が位置する該直線位置選択領域に対応する直線位置メニューアイテムの選択が決定され， 
前記メニューが表示されている場合であって，前記ストロークの最終地点が直線位置選択領域内にない場合は，前記ポインティング装置によるストロークの方向の前記角度選択領域に対応する角度マーキングメニューアイテムの選択が決定されるディスプレイ。