(57)【特許請求の範囲】
【請求項１】
コンテキストメニューに含まれるメニュー項目を選択する第１の選択部と、
前記第１の選択部によって選択されたメニュー項目について、所定の操作により移動した結果である終了位置を選択する第２の選択部と、
前記第２の選択部によって選択された終了位置に前記メニュー項目が示す命令を実行した結果を表示する表示部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記メニュー項目の移動軌跡に基づいて、前記メニュー項目の選択を継続するか否かを判定する判定部
を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定部は、前記メニュー項目の移動軌跡が移動の開始後移動の開始位置の近傍に戻る軌跡であるか否かを判定し、
前記判定部によって前記メニュー項目の移動軌跡が移動の開始後移動の開始位置の近傍に戻る軌跡であると判定された場合には、前記メニュー項目の選択を中止する中止部
を有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記判定部は、前記メニュー項目の移動軌跡が移動の開始後所定の条件を満たす軌跡であるか否かを判定し、
前記判定部によって前記メニュー項目の移動軌跡が移動の開始後所定の条件を満たす軌跡であると判定された場合には、前記メニュー項目の選択を中止する中止部
を有することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記第１の選択部は、第１のタッチおよび第２のタッチにより前記メニュー項目を選択し、
前記第２の選択部は、前記第１の選択部によって選択された前記第１のタッチによるメニュー項目について、前記所定の操作により移動した結果である終了位置を選択し、
前記判定部は、前記第１の選択部によって選択された前記第２のタッチが継続しているか否かを判定し、
前記第２のタッチが継続していると判定した場合には、前記第２のタッチによるメニュー項目について、前記第２の選択部および前記表示部による処理を継続する継続部
を有することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記判定部は、前記メニュー項目に対する第１の移動軌跡の終了から前記メニューの項目に対する第２の移動軌跡の開始までの時間が一定時間を経過したか否かを判定し、
前記メニュー項目に対する第１の移動軌跡の終了から前記メニューの項目に対する第２の移動軌跡の開始までの時間が一定時間を経過していないと判定した場合には、前記メニュー項目について、前記第２の選択部および前記表示部による処理を継続する継続部
を有することを特徴とする請求項２に記載の情報処理装置。
【請求項７】
コンテキストメニューに含まれるメニュー項目を選択し、
前記選択する処理によって選択されたメニュー項目について、所定の操作により移動した結果である終了位置を選択し、
前記選択する処理によって選択された終了位置に前記メニュー項目が示す命令を実行した結果を表示する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項８】
コンピュータが、
コンテキストメニューに含まれるメニュー項目を選択し、
前記選択する処理によって選択されたメニュー項目について、所定の操作により移動した結果である終了位置を選択し、
前記選択する処理によって選択された終了位置に前記メニュー項目が示す命令を実行した結果を表示する
各処理を実行することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置などに関する。
【背景技術】
【０００２】
画面内をマウスやタッチなどの操作手段でポインティングしたときに、ポインティングした位置の付近に、ポインティングした対象に関する操作メニューを画面上に重畳的に表示する技術が知られている。表示された操作メニューのうち、ユーザが１つのメニュー項目を選択すると、選択されたメニュー項目に基づいて、ポインティングした対象に関する命令が決定され、実行される。このような操作メニューは、一般的に「コンテキストメニュー」と呼ばれている。コンテキストメニューは、一般的なパーソナルコンピュータ（ＰＣ）におけるアプリケーションや、タブレット・スマートフォンなどのタッチ操作におけるアプリケーションのユーザインタフェースとして広く利用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１８４４５８号公報
【特許文献２】特開平８−１８０１３８号公報
【特許文献３】特開平５−０６１５９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、画面に表示されているオブジェクトが密集している場合に、コンテキストメニューを表示するための操作が効率的に行えないという問題がある。また、別の観点では、画面に表示されているオブジェクトが密集している場合に、コンテキストメニューが表示されても、既に表示されているオブジェクトの視認性を低下させる場合があるという問題がある。
【０００５】
例えば、画面に表示されているオブジェクトが密集している場合には、画面にオブジェクトが表示されていない領域が小さく、ユーザはオブジェクトを避けてポインティングすることが難しい。したがって、コンテキストメニューを表示するためのポインティング操作が効率的に行えない。
【０００６】
また、コンテキストメニューが表示されたとしても、コンテキストメニューは画面上に重畳的に表示されるため、コンテキストメニューが既に表示されているオブジェクトを隠してしまうことがある。したがって、コンテキストメニューが表示されても、既に表示されているオブジェクトの視認性を低下させる場合がある。
【０００７】
１つの側面では、コンテキストメニューを表示するための操作効率を向上させることを目的とする。また、１つの側面では、コンテキストメニューが表示されても、既に表示されているオブジェクトの視認性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、情報処理装置は、コンテキストメニューのメニュー項目を選択する第１の選択部と、前記第１の選択部によって選択されたメニュー項目について、所定の操作により移動した結果である終了位置を選択する第２の選択部と、前記第２の選択部によって選択された終了位置に前記メニュー項目が示す内容を表示する表示部と、を有する。
【発明の効果】
【０００９】
１つの態様によれば、コンテキストメニューを表示するための操作効率を向上させることができる。また、コンテキストメニューが表示されても、既に表示されているオブジェクトの視認性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る情報処理装置の構成を示す機能ブロック図である。
【図２】図２は、実施例１に係るメニュー操作処理の一例を示す図である。
【図３】図３は、実施例１に係るメニュー操作処理のフローチャートの一例を示す図である。
【図４】図４は、実施例１に係るメニュー操作処理の別の例を示す図である。
【図５】図５は、実施例１に係るメニュー操作処理のフローチャートの別の例を示す図である。
【図６】図６は、実施例２に係る情報処理装置の構成を示す機能ブロック図である。
【図７】図７は、実施例２に係るメニュー操作処理の一例を示す図である。
【図８】図８は、実施例２に係るメニュー操作処理のフローチャートの一例を示す図である。
【図９】図９は、実施例２に係るメニュー操作処理の別の例を示す図である。
【図１０】図１０は、実施例２に係るメニュー操作処理のフローチャートの別の例を示す図である。
【図１１】図１１は、実施例３に係る情報処理装置の構成を示す機能ブロック図である。
【図１２】図１２は、実施例３に係るメニュー操作処理の一例を示す図である。
【図１３】図１３は、実施例３に係るメニュー操作処理のフローチャートの一例を示す図である。
【図１４】図１４は、実施例３に係るメニュー操作処理の別の例を示す図である。
【図１５】図１５は、実施例３に係るメニュー操作処理のフローチャートの別の例を示す図である。
【図１６】図１６は、実施例４に係るメニュー操作処理の一例を示す図である。
【図１７】図１７は、実施例４に係るメニュー操作処理のフローチャートの一例を示す図である。
【図１８】図１８は、コンテキストメニューにドラッグできるメニュー項目とドラッグできないメニュー項目とが含まれる場合の表示の一例を示す図である。
【図１９】図１９は、コンテキストメニューにドラッグできるメニュー項目とドラッグできないメニュー項目とが含まれる場合の表示の別の例を示す図である。
【図２０】図２０は、情報処理プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する情報処理装置、情報処理プログラムおよび情報処理方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
［実施例１に係る情報処理装置の構成］
図１は、実施例１に係る情報処理装置の構成を示す機能ブロック図である。実施例１に係る情報処理装置１は、コンテキストメニューを表示した後に、コンテキストメニューのうち選択されたメニュー項目の所定の操作によって、メニュー項目が示す命令と当該命令が実行される位置とを同時に選択し、選択した位置に選択した命令を実行する。ここでいう所定の操作とは、例えば、ドラッグ操作やポインティング操作のことをいう。以降、所定の操作をドラッグ操作として説明する。
【００１３】
図１に示すように、情報処理装置１は、表示装置１０および制御部２０を有する。表示装置１０は、例えば、パーソナルコンピュータ（ＰＣ）のモニタ、テレビのモニタ、プロジェクタ、ＨＭＤ（Head  Mounted  Display）、スマートフォンおよびタブレットなどの画面に表示できる装置であれば良い。
【００１４】
制御部２０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部２０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路の電子回路に対応する。または、制御部２０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路に対応する。さらに、制御部２０は、操作取得部２１、ポインティング操作取得部２２、コンテキストメニュー表示部２３、メニュー項目選択操作判定部２４、対象選択操作判定部２５、メニュー項目表示部２６および命令算出部２７を有する。
【００１５】
操作取得部２１は、ユーザの画面への操作を取得する。ユーザは、マウスやタッチパネルを用いた画面への操作を行う。ここでいう操作は、例えば、マウスのクリック、マウスポインタの移動、タッチダウン、タッチアップおよびタッチ位置の移動を含む。
【００１６】
ポインティング操作取得部２２は、操作取得部２１によって取得された操作から画面へのポインティング操作を取得する。例えば、操作取得部２１によって取得された操作がクリックである場合には、ポインティング操作取得部２２は、クリック操作がされた位置を取得し、取得した位置へのポインティング操作として取得する。また、操作取得部２１によって取得された操作がタッチアップである場合には、ポインティング操作取得部２２は、先にタッチダウンした位置を取得し、取得した位置へのポインティング操作として取得する。そして、ポインティング操作取得部２２は、ポインティング操作を取得すると、ポインティング位置にオブジェクトが表示されている場合には、表示されているオブジェクトをポインティングの対象とする。ポインティング操作取得部２２は、ポインティング位置にオブジェクトが表示されていない場合には、画面のキャンバスをポインティングの対象とする。
【００１７】
コンテキストメニュー表示部２３は、ポインティング操作取得部２２によってポインティング操作が取得されたとき、ポインティング位置の付近に、ポインティングの対象に関する操作を選択するためのコンテキストメニューを表示する。コンテキストメニューには、例えば、メニュー項目が縦に一直線に並べられるが、メニュー項目が横に一直線に並べられても良いし、メニュー項目が円形に並べられても良い。また、コンテキストメニュー表示部２３は、ポインティングの対象に基づいてコンテキストメニューに含まれるメニュー項目を決定する。例えば、ポインティングの対象がキャンバスの場合には、コンテキストメニュー表示部２３は、「付箋を追加」および「色を変更」のメニュー項目をコンテキストメニューに含んで表示する。ポインティングの対象が付箋の場合には、コンテキストメニュー表示部２３は、「付箋を削除」および「色を変更」のメニュー項目をコンテキストメニューに含んで表示する。
【００１８】
メニュー項目選択操作判定部２４は、コンテキストメニューのメニュー項目を選択するために用いられる第１の操作を判定する。第１の操作は、例えば、メニュー項目を選択し、ドラッグを開始する操作である。
【００１９】
対象選択操作判定部２５は、メニュー項目を表す命令を実行させる対象を選択するために用いられる第２の操作を判定する。ここでいう対象は、例えば、命令を実行させる位置を示す。第２の操作は、例えば、ドラッグを終了する操作である。
【００２０】
メニュー項目表示部２６は、第１の操作によって選択されたメニュー項目をドラッグ操作に応じて表示する。つまり、メニュー項目表示部２６は、ドラッグ操作に基づいて第１の操作によって選択されたメニュー項目の表示位置を変更する。
【００２１】
命令算出部２７は、第１の操作によって選択されたメニュー項目、第２の操作によって選択された命令を実行させる対象および第２の操作に基づいて、実行する命令を算出する。例えば、画面のキャンバスをポインティングの対象とした場合に表示されるコンテキストメニューに含まれる「付箋を追加」のメニュー項目がドラッグを開始する操作によって選択されるとする。すると、選択された「付箋の追加」のメニュー項目のドラッグが開始され、任意の位置でドラッグが終了すると、命令算出部２７は、ドラッグが終了した位置に付箋を追加するという命令を算出する。なお、第２の操作が行われなかった場合には、命令算出部２７は、ポインティング操作取得部２２で取得したコンテキストメニューを表示するためのポインティングのポインティング位置に付箋を追加するという命令を算出すれば良い。
【００２２】
［メニュー操作処理の一例］
実施例１に係るメニュー操作処理の一例を、図２を参照して説明する。図２は、実施例１に係るメニュー操作処理の一例を示す図である。図２に示すように、符号ａ１の領域は、オブジェクトが密集している領域であるとする。
【００２３】
このような状況の下、タップしやすい符号ａ２の位置でポインティングがされたとする。すると、ポインティング操作取得部２２は、ポインティング位置にオブジェクトが表示されていないので、画面のキャンバスをポインティングの対象とする。そして、コンテキストメニュー表示部２３は、ポインティング操作取得部２２によってポインティング操作が取得されたとき、ポインティング位置の付近にコンテキストメニューを表示する。ここでは、コンテキストメニューには、「付箋を追加」および「画像を追加」のメニュー項目が含まれている。
【００２４】
そして、「付箋を追加」のメニュー項目が選択され、ドラッグａ３が開始されたとする。すると、メニュー項目選択操作判定部２４は、「付箋を追加」のメニュー項目を選択するために用いられる第１の操作を判定する。ここでは、第１の操作は、ドラッグを開始する操作である。メニュー項目表示部２６は、ドラッグ操作に基づいて「付箋を追加」のメニュー項目の表示位置を変更する。
【００２５】
そして、「付箋を追加」のメニュー項目のドラッグａ３が終了したとする。すると、対象選択操作判定部２５は、「付箋を追加」のメニュー項目を表す命令を実行させる位置を選択するために用いられる第２の操作を判定する。ここでは、第２の操作は、ドラッグを終了する操作である。
【００２６】
そして、命令算出部２７は、ドラッグａ３が終了した位置に「付箋を追加」のメニュー項目を表す命令を算出する。ここでは、命令算出部２７は、ドラッグａ３が終了した位置に「付箋を追加」するという命令を算出する。この結果、符号ａ４で示すように、ドラッグａ３が終了した位置に、付箋が追加される。
【００２７】
これにより、情報処理装置１は、コンテキストメニューの表示後に、コンテキストメニューに含まれたメニュー項目のうち選択された「付箋を追加」のメニュー項目を実行させる位置を変更することができる。情報処理装置１は、画面に表示されているオブジェクトが密集している場合であっても、コンテキストメニューを表示するための操作効率を向上させることが可能となる。また、情報処理装置１は、画面に表示されているオブジェクトが密集している場合にコンテキストメニューが表示されても、画面上に表示されているオブジェクトの視認性を向上させることが可能となる。
【００２８】
［メニュー操作処理のフローチャートの一例］
図３は、実施例１に係るメニュー操作処理のフローチャートの一例を示す図である。
【００２９】
図３に示すように、ポインティング操作取得部２２は、画面へのポインティングを検出したか否かを判定する（ステップＳ１１）。画面へのポインティングを検出していないと判定した場合には（ステップＳ１１；Ｎｏ）、ポインティング操作取得部２２は、画面へのポインティングを検出するまで、判定処理を繰り返す。
【００３０】
一方、画面へのポインティングを検出したと判定した場合には（ステップＳ１１；Ｙｅｓ）、コンテキストメニュー表示部２３は、検出した位置の付近に、コンテキストメニューを表示する（ステップＳ１２）。
【００３１】
続いて、メニュー項目選択操作判定部２４は、メニュー項目のドラッグを開始する操作を検出したか否かを検出する（ステップＳ１３）。メニュー項目のドラッグを開始する操作を検出していないと判定した場合には（ステップＳ１３；Ｎｏ）、メニュー項目選択操作判定部２４は、当該操作を検出するまで、判定処理を繰り返す。
【００３２】
一方、メニュー項目のドラッグを開始する操作を検出したと判定した場合には（ステップＳ１３；Ｙｅｓ）、メニュー項目表示部２６は、コンテキストメニューに含まれる他のメニュー項目を非表示にする（ステップＳ１４）。なお、メニュー項目表示部２６は、ドラッグ操作に基づいてドラッグ対象のメニュー項目の表示位置を変更する。
【００３３】
続いて、対象選択操作判定部２５は、メニュー項目のドラッグを終了する操作を検出したか否かを検出する（ステップＳ１５）。メニュー項目のドラッグを終了する操作を検出していないと判定した場合には（ステップＳ１５；Ｎｏ）、対象選択操作判定部２５は、当該操作を検出するまで、判定処理を繰り返す。
【００３４】
一方、メニュー項目のドラッグを終了する操作を検出したと判定した場合には（ステップＳ１５；Ｙｅｓ）、メニュー項目表示部２６は、当該メニュー項目を非表示にする（ステップＳ１６）。
【００３５】
そして、命令算出部２７は、ドラッグが終了した位置に基づいて、メニュー項目が示す命令を実行する（ステップＳ１７）。そして、メニュー操作処理は、終了する。
【００３６】
なお、実施例１では、コンテキストメニューのメニュー項目の移動をドラッグ操作として説明した。しかしながら、実施例１では、これに限定されず、コンテキストメニューのメニュー項目の移動を、ドラッグ操作の代わりにポインティング操作としても良い。そこで、コンテキストメニューのメニュー項目の移動をポインティング操作とした場合のメニュー操作処理を以下に説明する。
【００３７】
［メニュー操作処理の別の例］
実施例１に係るメニュー操作処理の別の例を、図４を参照して説明する。図４は、実施例１に係るメニュー操作処理の別の例を示す図である。図４でも、図２と同様に、符号ａ１の領域は、オブジェクトが密集している領域であるとする。
【００３８】
このような状況の下、タップしやすい符号ａ２の位置でポインティングがされたとする。すると、ポインティング操作取得部２２は、ポインティング位置にオブジェクトが表示されていないので、画面のキャンバスをポインティングの対象とする。そして、コンテキストメニュー表示部２３は、ポインティング操作取得部２２によってポインティング操作が取得されたとき、ポインティング位置の付近にコンテキストメニューを表示する。ここでは、コンテキストメニューには、「付箋を追加」および「画像を追加」のメニュー項目が含まれている。
【００３９】
そして、「付箋を追加」のメニュー項目が符号ａ３´で示すようにポインティングされたとする。すると、メニュー項目選択操作判定部２４は、「付箋を追加」のメニュー項目を選択するために用いられる第１の操作を判定する。ここでは、第１の操作は、メニュー項目をポインティングする操作である。
【００４０】
続いて、「付箋を追加」のメニュー項目が符号ａ４´で示すようにポインティングされたとする。すると、対象選択操作判定部２５は、「付箋を追加」のメニュー項目を表す命令を実行させる位置を選択するために用いられる第２の操作を判定する。ここでは、第２の操作は、メニュー項目をポインティングする操作である。
【００４１】
そして、命令算出部２７は、ポインティングａ４´がされた位置に「付箋を追加」のメニュー項目を表す命令を算出する。この結果、符号ａ５´で示すように、ポインティングａ４´がされた位置に、付箋が追加される。
【００４２】
これにより、情報処理装置１は、コンテキストメニューの表示後に、コンテキストメニューに含まれたメニュー項目のうち選択された「付箋を追加」のメニュー項目を実行させる位置を変更することができる。情報処理装置１は、画面に表示されているオブジェクトが密集している場合であっても、コンテキストメニューを表示するための操作効率を向上させることが可能となる。また、情報処理装置１は、画面に表示されているオブジェクトが密集している場合にコンテキストメニューが表示されても、画面上に表示されているオブジェクトの視認性を向上させることが可能となる。
【００４３】
［メニュー操作処理のフローチャートの別の例］
図５は、実施例１に係るメニュー操作処理のフローチャートの別の例を示す図である。
【００４４】
図５に示すように、ポインティング操作取得部２２は、画面へのポインティングを検出したか否かを判定する（ステップＳ２１）。画面へのポインティングを検出していないと判定した場合には（ステップＳ２１；Ｎｏ）、ポインティング操作取得部２２は、画面へのポインティングを検出するまで、判定処理を繰り返す。
【００４５】
一方、画面へのポインティングを検出したと判定した場合には（ステップＳ２１；Ｙｅｓ）、コンテキストメニュー表示部２３は、検出した位置の付近に、コンテキストメニューを表示する（ステップＳ２２）。
【００４６】
続いて、メニュー項目選択操作判定部２４は、メニュー項目のポインティングを検出したか否かを検出する（ステップＳ２３）。メニュー項目のポインティングを検出していないと判定した場合には（ステップＳ２３；Ｎｏ）、メニュー項目選択操作判定部２４は、当該操作を検出するまで、判定処理を繰り返す。
【００４７】
一方、メニュー項目のポインティングを検出したと判定した場合には（ステップＳ２３；Ｙｅｓ）、メニュー項目表示部２６は、コンテキストメニューに含まれる他のメニュー項目を非表示にする（ステップＳ２４）。
【００４８】
続いて、対象選択操作判定部２５は、画面へのポインティングを検出したか否かを検出する（ステップＳ２５）。画面へのポインティングを検出していないと判定した場合には（ステップＳ２５；Ｎｏ）、対象選択操作判定部２５は、当該操作を検出するまで、判定処理を繰り返す。
【００４９】
一方、画面へのポインティングを検出したと判定した場合には（ステップＳ２５；Ｙｅｓ）、メニュー項目表示部２６は、当該メニュー項目を非表示にする（ステップＳ２６）。
【００５０】
そして、命令算出部２７は、ポインティングを検出した位置に基づいて、メニュー項目が示す命令を実行する（ステップＳ２７）。そして、メニュー操作処理は、終了する。
【００５１】
［実施例１の効果］
このようにして、上記実施例１では、情報処理装置１は、コンテキストメニューのメニュー項目を選択し、選択されたメニュー項目について、所定の操作により移動した結果である終了位置を選択する。情報処理装置１は、選択された終了位置にメニュー項目が示す内容を表示する。かかる構成によれば、情報処理装置１は、コンテキストメニューの表示後に、コンテキストメニューに含まれたメニュー項目のうち選択されたメニュー項目を実行させる位置を変更することができる。また、情報処理装置１は、画面に表示されているオブジェクトが密集している場合であっても、コンテキストメニューを表示するための操作効率を向上させることが可能となる。また、情報処理装置１は、画面に表示されているオブジェクトが密集している場合にコンテキストメニューが表示されても、画面上に表示されているオブジェクトの視認性を向上させることが可能となる。
【実施例２】
【００５２】
ところで、実施例１では、情報処理装置１は、コンテキストメニューを表示した後に、選択したメニュー項目のドラッグ操作により移動した結果である終了位置にメニュー項目が表す内容を表示する。しかしながら、情報処理装置１は、これに限定されず、選択したメニュー項目のドラッグ軌跡に基づいて、メニュー項目の選択をキャンセルする場合であっても良い。
【００５３】
そこで、実施例２では、情報処理装置１は、選択したメニュー項目のドラッグ軌跡に基づいて、メニュー項目の選択をキャンセルする場合について説明する。
【００５４】
［実施例２に係る情報処理装置の構成］
図６は、実施例２に係る情報処理装置の構成を示す機能ブロック図である。なお、図１に示す情報処理装置１と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１と実施例２とが異なるところは、継続操作判定部３１を追加した点にある。
【００５５】
継続操作判定部３１は、メニュー項目の移動軌跡に基づいて、メニュー項目の選択を継続するか否かを判定する。
【００５６】
一例として、継続操作判定部３１は、メニュー項目の移動軌跡が移動の開始後移動の開始位置の近傍に戻る軌跡であれば、メニュー項目の選択を継続しないと判定する。すなわち、継続操作判定部３１は、メニュー項目の選択を中止すると判定する。つまり、メニュー項目のドラッグが開始され、メニュー項目がコンテキストメニューから一定の距離以上移動された後、メニュー項目が開始位置の近傍まで戻るようにドラッグして移動された場合に、メニュー項目の選択を中止する操作が行われたと判定される。開始位置の近傍とは、例えば、開始位置と終了位置との距離が所定の閾値以内であることをいう。
【００５７】
別の例として、継続操作判定部３１は、メニュー項目の移動軌跡が移動の開始後所定の条件を満たす軌跡であれば、メニュー項目の選択を継続しないと判定する。すなわち、継続操作判定部３１は、メニュー項目の選択を中止すると判定する。所定の条件を満たす軌跡とは、一例として、スクラッチジェスチャを示す軌跡である。スクラッチジェスチャとは、ある中心線に対して、短時間で繰り返し往復するジェスチャのことをいう。
【００５８】
［メニュー操作処理の一例］
実施例２に係るメニュー操作処理の一例を、図７を参照して説明する。図７は、実施例２に係るメニュー操作処理の一例を示す図である。
【００５９】
符号ｂ１の位置でポインティングがされたとする。すると、ポインティング操作取得部２２は、ポインティング位置にオブジェクトが表示されていないので、画面のキャンバスをポインティングの対象とする。そして、コンテキストメニュー表示部２３は、ポインティング操作取得部２２によってポインティング操作が取得されたとき、ポインティング位置の付近にコンテキストメニューを表示する。ここでは、コンテキストメニューには、「付箋を追加」および「画像を追加」のメニュー項目が含まれている。
【００６０】
そして、「付箋を追加」のメニュー項目が選択され、ドラッグｂ２が開始されたとする。すると、メニュー項目選択操作判定部２４は、「付箋を追加」のメニュー項目を選択するために用いられる第１の操作を判定する。ここでは、第１の操作は、ドラッグを開始する操作である。メニュー項目表示部２６は、ドラッグ操作に基づいて「付箋を追加」のメニュー項目の表示位置を変更する。
【００６１】
そして、メニュー項目がコンテキストメニューから一定の距離以上移動された後、メニュー項目が開始位置の近傍まで戻るようにドラッグｂ３されたとする。すると、継続操作判定部３１は、「付箋を追加」のメニュー項目の選択を中止する操作が行われたと判定する。そして、メニュー項目表示部２６は、「付箋を追加」のメニュー項目を非表示にする。
【００６２】
これにより、情報処理装置１は、コンテキストメニューのメニュー項目のドラッグ軌跡を用いることで、ドラッグ操作がメニュー項目の選択であるのかメニュー項目の選択の中止であるのかを判別できる。
【００６３】
［メニュー操作処理のフローチャートの一例］
図８は、実施例２に係るメニュー操作処理のフローチャートの一例を示す図である。
【００６４】
図８に示すように、ポインティング操作取得部２２は、画面へのポインティングを検出したか否かを判定する（ステップＳ３１）。画面へのポインティングを検出していないと判定した場合には（ステップＳ３１；Ｎｏ）、ポインティング操作取得部２２は、画面へのポインティングを検出するまで、判定処理を繰り返す。
【００６５】
一方、画面へのポインティングを検出したと判定した場合には（ステップＳ３１；Ｙｅｓ）、コンテキストメニュー表示部２３は、検出した位置の付近に、コンテキストメニューを表示する（ステップＳ３２）。
【００６６】
続いて、メニュー項目選択操作判定部２４は、メニュー項目のドラッグを開始する操作を検出したか否かを検出する（ステップＳ３３）。メニュー項目のドラッグを開始する操作を検出していないと判定した場合には（ステップＳ３３；Ｎｏ）、メニュー項目選択操作判定部２４は、当該操作を検出するまで、判定処理を繰り返す。
【００６７】
一方、メニュー項目のドラッグを開始する操作を検出したと判定した場合には（ステップＳ３３；Ｙｅｓ）、メニュー項目表示部２６は、コンテキストメニューに含まれる他のメニュー項目を非表示にする（ステップＳ３４）。なお、メニュー項目表示部２６は、ドラッグ操作に基づいてドラッグ対象のメニュー項目の表示位置を変更する。
【００６８】
続いて、継続操作判定部３１は、メニュー項目がドラッグの開始位置に十分近づいたことを検出したか否かを判定する（ステップＳ３５）。開始位置に十分近づいたとは、開始位置の近傍を意味し、例えば、開始位置と終了位置との距離が所定の閾値以内であることをいう。
【００６９】
メニュー項目がドラッグの開始位置に十分近づいたことを検出したと判定した場合には（ステップＳ３５；Ｙｅｓ）、メニュー項目表示部２６は、当該メニュー項目を非表示にする（ステップＳ３６）。そして、メニュー操作処理は、終了する。
【００７０】
一方、メニュー項目がドラッグの開始位置に十分近づいたことを検出していないと判定した場合には（ステップＳ３５；Ｎｏ）、対象選択操作判定部２５は、メニュー項目のドラッグを終了する操作を検出したか否かを検出する（ステップＳ３７）。メニュー項目のドラッグを終了する操作を検出していないと判定した場合には（ステップＳ３７；Ｎｏ）、対象選択操作判定部２５は、当該操作を検出するまで、判定処理を繰り返す。
【００７１】
一方、メニュー項目のドラッグを終了する操作を検出したと判定した場合には（ステップＳ３７；Ｙｅｓ）、メニュー項目表示部２６は、当該メニュー項目を非表示にする（ステップＳ３８）。
【００７２】
そして、命令算出部２７は、ドラッグが終了した位置に基づいて、メニュー項目が示す命令を実行する（ステップＳ３９）。そして、メニュー操作処理は、終了する。
【００７３】
［メニュー操作処理の別の例］
実施例２に係るメニュー操作処理の別の例を、図９を参照して説明する。図９は、実施例２に係るメニュー操作処理の別の例を示す図である。
【００７４】
符号ｂ１の位置でポインティングがされたとする。すると、ポインティング操作取得部２２は、ポインティング位置にオブジェクトが表示されていないので、画面のキャンバスをポインティングの対象とする。そして、コンテキストメニュー表示部２３は、ポインティング操作取得部２２によってポインティング操作が取得されたとき、ポインティング位置の付近にコンテキストメニューを表示する。ここでは、コンテキストメニューには、「付箋を追加」および「画像を追加」のメニュー項目が含まれている。
【００７５】
そして、「付箋を追加」のメニュー項目が選択され、ドラッグｂ２が開始されたとする。すると、メニュー項目選択操作判定部２４は、「付箋を追加」のメニュー項目を選択するために用いられる第１の操作を判定する。ここでは、第１の操作は、ドラッグを開始する操作である。メニュー項目表示部２６は、ドラッグ操作に基づいて「付箋を追加」のメニュー項目の表示位置を変更する。
【００７６】
そして、メニュー項目のドラッグ操作の軌跡がスクラッチジェスチャｂ４であるとする。すると、継続操作判定部３１は、「付箋を追加」のメニュー項目の選択を中止する操作が行われたと判定する。そして、メニュー項目表示部２６は、「付箋を追加」のメニュー項目を非表示にする。
【００７７】
これにより、情報処理装置１は、コンテキストメニューのメニュー項目のドラッグ軌跡を用いることで、ドラッグ操作がメニュー項目の選択であるのかメニュー項目の選択の中止であるのかを判別できる。
【００７８】
［メニュー操作処理のフローチャートの別の例］
図１０は、実施例２に係るメニュー操作処理のフローチャートの別の例を示す図である。
【００７９】
図１０に示すように、ポインティング操作取得部２２は、画面へのポインティングを検出したか否かを判定する（ステップＳ４１）。画面へのポインティングを検出していないと判定した場合には（ステップＳ４１；Ｎｏ）、ポインティング操作取得部２２は、画面へのポインティングを検出するまで、判定処理を繰り返す。
【００８０】
一方、画面へのポインティングを検出したと判定した場合には（ステップＳ４１；Ｙｅｓ）、コンテキストメニュー表示部２３は、検出した位置の付近に、コンテキストメニューを表示する（ステップＳ４２）。
【００８１】
続いて、メニュー項目選択操作判定部２４は、メニュー項目のドラッグを開始する操作を検出したか否かを検出する（ステップＳ４３）。メニュー項目のドラッグを開始する操作を検出していないと判定した場合には（ステップＳ４３；Ｎｏ）、メニュー項目選択操作判定部２４は、当該操作を検出するまで、判定処理を繰り返す。
【００８２】
一方、メニュー項目のドラッグを開始する操作を検出したと判定した場合には（ステップＳ４３；Ｙｅｓ）、メニュー項目表示部２６は、コンテキストメニューに含まれる他のメニュー項目を非表示にする（ステップＳ４４）。なお、メニュー項目表示部２６は、ドラッグ操作に基づいてドラッグ対象のメニュー項目の表示位置を変更する。
【００８３】
続いて、継続操作判定部３１は、スクラッチジェスチャを検出したか否かを判定する（ステップＳ４５）。すなわち、継続操作判定部３１は、メニュー項目のドラッグ操作の軌跡がドラッグの開始後スクラッチジェスチャを示す軌跡であるか否かを判定する。スクラッチジェスチャを検出したと判定した場合には（ステップＳ４５；Ｙｅｓ）、メニュー項目表示部２６は、ドラッグ対象のメニュー項目を非表示にする（ステップＳ４６）。そして、メニュー操作処理は、終了する。
【００８４】
一方、スクラッチジェスチャを検出していないと判定した場合には（ステップＳ４５；Ｎｏ）、対象選択操作判定部２５は、メニュー項目のドラッグを終了する操作を検出したか否かを検出する（ステップＳ４７）。メニュー項目のドラッグを終了する操作を検出していないと判定した場合には（ステップＳ４７；Ｎｏ）、対象選択操作判定部２５は、当該操作を検出するまで、判定処理を繰り返す。
【００８５】
一方、メニュー項目のドラッグを終了する操作を検出したと判定した場合には（ステップＳ４７；Ｙｅｓ）、メニュー項目表示部２６は、当該メニュー項目を非表示にする（ステップＳ４８）。
【００８６】
そして、命令算出部２７は、ドラッグが終了した位置に基づいて、メニュー項目が示す命令を実行する（ステップＳ４９）。そして、メニュー操作処理は、終了する。
【００８７】
［実施例２の効果］
このようにして、上記実施例２では、情報処理装置１は、コンテキストメニューの中で選択されたメニュー項目の移動軌跡に基づいて、メニュー項目の選択を継続するか否かを判定する。かかる構成によれば、情報処理装置１は、コンテキストメニューのメニュー項目の移動軌跡を用いることで、移動操作がメニュー項目を移動するのか、メニュー項目の操作を継続するのか、メニュー項目の操作を中止するのかを判別できる。
【００８８】
また、上記実施例２では、情報処理装置１は、メニュー項目の移動軌跡が移動の開始後移動の開始位置の近傍に戻る軌跡であるか否かを判定する。情報処理装置１は、メニュー項目の移動軌跡が移動の開始後移動の開始位置の近傍に戻る軌跡であると判定された場合には、メニュー項目の選択を中止する。かかる構成によれば、情報処理装置１は、コンテキストメニューのメニュー項目の移動軌跡を用いることで、移動操作がメニュー項目を移動するのか、メニュー項目の操作を中止するのかを判別できる。
【００８９】
また、上記実施例２では、情報処理装置１は、メニュー項目の移動軌跡が移動の開始後スクラッチジェスチャを示す軌跡であるか否かを判定する。情報処理装置１は、メニュー項目の移動軌跡が移動の開始後スクラッチジェスチャを示す軌跡であると判定された場合には、メニュー項目の選択を中止する。かかる構成によれば、情報処理装置１は、コンテキストメニューのメニュー項目の移動軌跡を用いることで、移動操作がメニュー項目の操作の中止であることを容易に判別できる。
【実施例３】
【００９０】
ところで、実施例１では、情報処理装置１は、コンテキストメニューを表示した後に、選択したメニュー項目のドラッグ操作により移動した結果である終了位置にメニュー項目が表す内容を表示する。実施例２では、情報処理装置１は、選択したメニュー項目のドラッグ軌跡に基づいて、メニュー項目の選択をキャンセルする。しかしながら、情報処理装置１は、これに限定されず、さらに、選択したメニュー項目のドラッグ軌跡に基づいて、メニュー項目を連続して操作するようにしても良い。
【００９１】
そこで、実施例３では、情報処理装置１は、さらに、選択したメニュー項目のドラッグ軌跡に基づいて、メニュー項目を連続して操作する場合について説明する。
【００９２】
［実施例３に係る情報処理装置の構成］
図１１は、実施例３に係る情報処理装置の機能構成を示す機能ブロック図である。なお、図６に示す情報処理装置１と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例２と実施例３とが異なるところは、メニュー項目選択操作判定部２４をメニュー項目選択操作判定部２４Ａに変更した点にある。また、実施例２と実施例３とが異なるところは、継続操作判定部３１を継続操作判定部３１Ａに変更した点にある。
【００９３】
メニュー項目選択操作判定部２４Ａは、コンテキストメニューのメニュー項目を選択するために用いられる第１の操作を判定する。第１の操作は、例えば、ドラッグを開始する操作である。例えば、メニュー項目選択操作判定部２４Ａは、コンテキストメニューの同一のメニュー項目を複数タッチした場合に、第１の操作がされたと判定する。ここでいうタッチとは、「タッチダウン」を意味する。
【００９４】
継続操作判定部３１Ａは、メニュー項目の移動軌跡に基づいて、メニュー項目の選択を継続するか否かを判定する。
【００９５】
一例として、継続操作判定部３１Ａは、同一のメニュー項目を複数のタッチにより第１の操作がされたと判定された場合に、２個目以降のタッチによるメニュー項目の移動軌跡の移動量がゼロであるか否かを判定する。継続操作判定部３１Ａは、２個目以降のタッチによるメニュー項目の移動軌跡の移動量がゼロである場合には、メニュー項目の選択を継続していると判定する。例えば、あるメニュー項目に対して第１のタッチと第２のタッチとにより第１の操作がされたとする。すると、継続操作判定部３１Ａは、第１のタッチによりメニュー項目がドラッグされた場合であっても、第２のタッチのタッチ位置が移動しない（移動量がゼロである）場合には、メニュー項目の選択の操作が継続していると判定する。
【００９６】
別の例として、継続操作判定部３１Ａは、メニュー項目に対する第１の移動軌跡の終了から当該メニュー項目に対する第２の移動軌跡の開始までの時間が一定時間を経過したか否かを判定する。継続操作判定部３１Ａは、メニュー項目に対する第１の移動軌跡の終了から当該メニュー項目に対する第２の移動軌跡の開始までの時間が一定時間を経過していない場合には、メニュー項目の選択の操作が継続していると判定する。
【００９７】
［メニュー操作処理の一例］
実施例３に係るメニュー操作処理の一例を、図１２を参照して説明する。図１２は、実施例３に係るメニュー操作処理の一例を示す図である。
【００９８】
符号ｃ１の位置でポインティングがされたとする。すると、ポインティング操作取得部２２は、ポインティング位置にオブジェクトが表示されていないので、画面のキャンバスをポインティングの対象とする。そして、コンテキストメニュー表示部２３は、ポインティング操作取得部２２によってポインティング操作が取得されたとき、ポインティング位置の付近にコンテキストメニューを表示する。ここでは、コンテキストメニューには、「付箋を追加」および「画像を追加」のメニュー項目が含まれている。
【００９９】
そして、「付箋を追加」のメニュー項目が第１のタッチｃ２および第２のタッチｃ３により選択されたとする。すると、メニュー項目選択操作判定部２４Ａは、第１の操作がされたと判定する。ここでは、第１の操作は、ドラッグを開始する操作である。
【０１００】
そして、第１のタッチｃ２から「付箋を追加」のメニュー項目のドラッグｃ４が開始されたとする。なお、第２のタッチｃ３のタッチ位置は移動しない。すると、メニュー項目表示部２６は、ドラッグ操作に基づいて「付箋を追加」のメニュー項目の表示位置を変更する。
【０１０１】
そして、「付箋を追加」のメニュー項目のドラッグｃ４が終了する。すると、対象選択操作判定部２５は、「付箋を追加」のメニュー項目を表す命令を実行させる位置を選択するために用いられる第２の操作を判定する。ここでは、第２の操作は、ドラッグを終了する操作である。
【０１０２】
そして、命令算出部２７は、ドラッグｃ４が終了した位置に「付箋を追加」のメニュー項目を表す命令を算出する。ここでは、命令算出部２７は、ドラッグｃ４が終了した位置に「付箋を追加」するという命令を算出する。この結果、符号ｃ５で示すように、ドラッグｃ４が終了した位置に、付箋が追加される。
【０１０３】
続いて、継続操作判定部３１Ａは、第２のタッチｃ３による「付箋を追加」のメニュー項目の移動軌跡の移動量がゼロであるか否かを判定する。継続操作判定部３１Ａは、第２のタッチｃ３による「付箋を追加」のメニュー項目の移動軌跡の移動量がゼロである場合には、メニュー項目の選択の操作が継続していると判定する。ここでは、第２のタッチｃ３のタッチ位置は移動していないので、「付箋を追加」のメニュー項目における選択の操作は、継続していると判定される。
【０１０４】
そして、第２のタッチｃ３から「付箋を追加」のメニュー項目のドラッグｃ６が開始されると、ユーザは、「付箋を追加」のメニュー項目を継続して操作することができる。すなわち、メニュー項目表示部２６は、ドラッグ操作に基づいて「付箋を追加」のメニュー項目の表示位置を変更する。「付箋を追加」のメニュー項目のドラッグｃ６が終了すると、命令算出部２７は、ドラッグｃ６が終了した位置に「付箋を追加」のメニュー項目を表す命令を算出し、付箋が追加される。
【０１０５】
これにより、情報処理装置１は、コンテキストメニューのメニュー項目を連続して操作させることができる。
【０１０６】
［メニュー操作処理のフローチャートの一例］
図１３は、実施例３に係るメニュー操作処理のフローチャートの一例を示す図である。
【０１０７】
図１３に示すように、ポインティング操作取得部２２は、画面へのポインティングを検出したか否かを判定する（ステップＳ５１）。画面へのポインティングを検出していないと判定した場合には（ステップＳ５１；Ｎｏ）、ポインティング操作取得部２２は、画面へのポインティングを検出するまで、判定処理を繰り返す。
【０１０８】
一方、画面へのポインティングを検出したと判定した場合には（ステップＳ５１；Ｙｅｓ）、コンテキストメニュー表示部２３は、検出した位置の付近に、コンテキストメニューを表示する（ステップＳ５２）。
【０１０９】
続いて、メニュー項目選択操作判定部２４Ａは、メニュー項目の２つ以上のタッチを検出したか否かを判定する（ステップＳ５３）。メニュー項目の２つ以上のタッチを検出していないと判定した場合には（ステップＳ５３；Ｎｏ）、メニュー項目選択操作判定部２４Ａは、当該操作を検出するまで、判定処理を繰り返す。
【０１１０】
一方、メニュー項目の２つ以上のタッチを検出したと判定した場合には（ステップＳ５３；Ｙｅｓ）、メニュー項目表示部２６は、コンテキストメニューに含まれる他のメニュー項目を非表示にする（ステップＳ５４）。そして、メニュー項目表示部２６は、タッチが検出されたメニュー項目を各々タッチ位置に複製し、複製した各々のメニュー項目を表示する（ステップＳ５５）。
【０１１１】
メニュー項目表示部２６は、１つ以上のタッチ位置の移動を検出したか否かを判定する（ステップＳ５６）。１つもタッチ位置の移動を検出しなかったと判定した場合には（ステップＳ５６；Ｎｏ）、メニュー項目表示部２６は、ステップＳ５８に移行する。
【０１１２】
一方、１つ以上のタッチ位置の移動を検出したと判定した場合には（ステップＳ５６；Ｙｅｓ）、メニュー項目表示部２６は、メニュー項目の表示位置を各々タッチ位置に変更する（ステップＳ５７）。そして、メニュー項目表示部２６は、ステップＳ５８に移行する。
【０１１３】
ステップＳ５８において、対象選択操作判定部２５は、１つ以上のタッチが離れたことを検出したか否かを判定する（ステップＳ５８）。１つもタッチが離れたことを検出しなかったと判定した場合には（ステップＳ５８；Ｎｏ）、メニュー項目表示部２６は、タッチ位置の移動を検出すべく、ステップＳ５６に移行する。
【０１１４】
一方、１つ以上のタッチが離れたことを検出したと判定した場合には（ステップＳ５８；Ｙｅｓ）、メニュー項目表示部２６は、タッチが離れたメニュー項目を非表示にする（ステップＳ５９）。そして、命令算出部２７は、タッチが離れた位置に基づいて
、タッチが離れたメニュー項目が示す命令を実行する（ステップＳ６０）。
【０１１５】
そして、継続操作判定部３１Ａは、タッチ位置の移動が検出されていないタッチが存在するか否かを判定する（ステップＳ６１）。例えば、継続操作判定部３１Ａは、タッチ位置の移動が検出されていないタッチによるメニュー項目の移動軌跡の移動量がゼロであるか否かを判定する。タッチ位置の移動が検出されていないタッチが存在すると判定した場合には（ステップＳ６１；Ｙｅｓ）、継続操作判定部３１Ａは、タッチ位置の移動を検出すべくステップＳ５６に移行する。継続操作判定部３１Ａは、メニュー項目の連続操作であると判断したものである。
【０１１６】
一方、タッチ位置の移動が検出されていないタッチが存在しないと判定した場合には（ステップＳ６１；Ｎｏ）、メニュー操作処理は終了する。
【０１１７】
［メニュー操作処理の別の例］
実施例３に係るメニュー操作処理の別の例を、図１４を参照して説明する。図１４は、実施例３に係るメニュー操作処理の別の例を示す図である。
【０１１８】
符号ｄ１の位置でポインティングがされたとする。すると、ポインティング操作取得部２２は、ポインティング位置にオブジェクトが表示されていないので、画面のキャンバスをポインティングの対象とする。そして、コンテキストメニュー表示部２３は、ポインティング操作取得部２２によってポインティング操作が取得されたとき、ポインティング位置の付近にコンテキストメニューを表示する。ここでは、コンテキストメニューには、「付箋を追加」および「画像を追加」のメニュー項目が含まれている。
【０１１９】
そして、「付箋を追加」のメニュー項目が選択され、ドラッグｄ２が開始されたとする。すると、メニュー項目選択操作判定部２４Ａは、「付箋を追加」のメニュー項目を選択するために用いられる第１の操作を判定する。ここでは、第１の操作は、ドラッグを開始する操作である。メニュー項目表示部２６は、ドラッグ操作に基づいて「付箋を追加」のメニュー項目の表示位置を変更する。
【０１２０】
そして、「付箋を追加」のメニュー項目のドラッグｄ２が終了したとする。すると、対象選択操作判定部２５は、「付箋を追加」のメニュー項目を表す命令を実行させる位置を選択するために用いられる第２の操作を判定する。ここでは、第２の操作は、ドラッグを終了する操作である。命令算出部２７は、ドラッグｄ２が終了した位置に「付箋を追加」のメニュー項目を表す命令を算出する。ここでは、命令算出部２７は、ドラッグｄ２が終了した位置に「付箋を追加」するという命令を算出する。この結果、符号ｄ３で示すように、ドラッグｄ２が終了した位置に、付箋が追加される。
【０１２１】
続いて、継続操作判定部３１Ａは、「付箋を追加」のメニュー項目の移動軌跡の終了から同一の「付箋を追加」のメニュー項目の次の移動軌跡の開始までの時間が一定時間を経過したか否かを判定する。ここでは、「付箋を追加」のメニュー項目の移動軌跡の終了から同一の「付箋を追加」のメニュー項目の次の移動軌跡の開始までの時間が一定時間を経過していないと判定されたとする。ここで、メニュー項目選択操作判定部２４Ａは、「付箋を追加」のメニュー項目を選択するために用いられる第１の操作を判定したとする。すると、メニュー項目表示部２６は、ドラッグ操作ｄ４に基づいて「付箋を追加」のメニュー項目の表示位置を変更する。
【０１２２】
そして、「付箋を追加」のメニュー項目のドラッグｄ４が終了したとする。すると、対象選択操作判定部２５は、「付箋を追加」のメニュー項目を表す命令を実行させる位置を選択するために用いられる第２の操作を判定する。命令算出部２７は、ドラッグｄ４が終了した位置に「付箋を追加」のメニュー項目を表す命令を算出する。ここでは、命令算出部２７は、ドラッグｄ４が終了した位置に「付箋を追加」するという命令を算出する。この結果、符号ｄ５で示すように、ドラッグｄ４が終了した位置に、付箋が追加される。
【０１２３】
そして、継続操作判定部３１Ａは、「付箋を追加」のメニュー項目の移動軌跡の終了から同一の「付箋を追加」のメニュー項目の次の移動軌跡の開始までの時間が一定時間を経過すると、符号ｄ６に示すように「付箋を追加」のメニュー項目を非表示にする。
【０１２４】
これにより、情報処理装置１は、コンテキストメニューのメニュー項目を連続して操作させることができる。
【０１２５】
［メニュー操作処理のフローチャートの別の例］
図１５は、実施例３に係るメニュー操作処理のフローチャートの別の例を示す図である。
【０１２６】
図１５に示すように、ポインティング操作取得部２２は、画面へのポインティングを検出したか否かを判定する（ステップＳ７１）。画面へのポインティングを検出していないと判定した場合には（ステップＳ７１；Ｎｏ）、ポインティング操作取得部２２は、画面へのポインティングを検出するまで、判定処理を繰り返す。
【０１２７】
一方、画面へのポインティングを検出したと判定した場合には（ステップＳ７１；Ｙｅｓ）、コンテキストメニュー表示部２３は、検出した位置の付近に、コンテキストメニューを表示する（ステップＳ７２）。
【０１２８】
続いて、メニュー項目選択操作判定部２４Ａは、メニュー項目のドラッグを開始する操作を検出したか否かを検出する（ステップＳ７３）。メニュー項目のドラッグを開始する操作を検出していないと判定した場合には（ステップＳ７３；Ｎｏ）、メニュー項目選択操作判定部２４Ａは、当該操作を検出するまで、判定処理を繰り返す。
【０１２９】
一方、メニュー項目のドラッグを開始する操作を検出したと判定した場合には（ステップＳ７３；Ｙｅｓ）、メニュー項目表示部２６は、コンテキストメニューに含まれる他のメニュー項目を非表示にする（ステップＳ７４）。なお、メニュー項目表示部２６は、ドラッグ操作に基づいてドラッグ対象のメニュー項目の表示位置を変更する。
【０１３０】
続いて、対象選択操作判定部２５は、メニュー項目のドラッグを終了する操作を検出したか否かを検出する（ステップＳ７５）。メニュー項目のドラッグを終了する操作を検出していないと判定した場合には（ステップＳ７５；Ｎｏ）、対象選択操作判定部２５は、当該操作を検出するまで、判定処理を繰り返す。
【０１３１】
一方、メニュー項目のドラッグを終了する操作を検出したと判定した場合には（ステップＳ７５；Ｙｅｓ）、命令算出部２７は、ドラッグが終了した位置に基づいて、メニュー項目が示す命令を実行する（ステップＳ７６）。
【０１３２】
そして、メニュー項目選択操作判定部２４Ａは、メニュー項目のドラッグを開始する操作を検出したか否かを検出する（ステップＳ７７）。メニュー項目のドラッグを開始する操作を検出したと判定した場合には（ステップＳ７７；Ｙｅｓ）、対象選択操作判定部２５は、メニュー項目のドラッグ終了を検出すべく、ステップＳ７５に移行する。
【０１３３】
一方、メニュー項目のドラッグを開始する操作を検出していないと判定した場合には（ステップＳ７７；Ｎｏ）、継続操作判定部３１Ａは、直前のドラッグ終了から一定時間が経過したか否かを判定する（ステップＳ７８）。直前のドラッグ終了から一定時間が経過していないと判定した場合には（ステップＳ７８；Ｎｏ）、メニュー項目選択操作判定部２４Ａは、メニュー項目のドラッグ開始を検出すべく、ステップＳ７７に移行する。
【０１３４】
一方、直前のドラッグ終了から一定時間が経過したと判定した場合には（ステップＳ７８；Ｙｅｓ）、メニュー項目表示部２６は、ドラッグ対象のメニュー項目を非表示にする（ステップＳ７９）。そして、メニュー操作処理は、終了する。
【０１３５】
［実施例３の効果］
このようにして、上記実施例３では、情報処理装置１は、第１のタッチおよび第２のタッチによりメニュー項目を選択する。情報処理装置１は、第１のタッチによってメニュー項目を所定の操作で移動させ、移動の終了位置でメニュー項目の示す命令を実行する。情報処理装置１は、第２のタッチによるメニュー項目の移動軌跡の移動量がゼロであるか否かを判定する。情報処理装置１は、第２のタッチによる移動量がゼロであると判定した場合には、メニュー項目の選択を継続する。かかる構成によれば、情報処理装置１は、コンテキストメニューのメニュー項目を連続して操作させることができる。
【０１３６】
また、上記実施例３では、情報処理装置１は、メニュー項目に対する第１の移動軌跡の終了から当該メニュー項目に対する第２の移動軌跡の開始までの時間が一定時間を経過したか否かを判定する。情報処理装置１は、一定時間を経過していないと判定した場合には、当該メニュー項目の選択を継続する。かかる構成によれば、情報処理装置１は、コンテキストメニューのメニュー項目を連続して操作させることができる。
【実施例４】
【０１３７】
ところで、実施例１では、情報処理装置１は、コンテキストメニューを表示した後に、選択したメニュー項目のドラッグ操作により移動した結果である終了位置にメニュー項目が表す内容を表示する。実施例２では、情報処理装置１は、選択したメニュー項目のドラッグ軌跡に基づいて、メニュー項目の選択をキャンセルする。実施例３では、情報処理装置１は、さらに、選択したメニュー項目のドラッグ軌跡に基づいて、メニュー項目を連続して操作する。しかしながら、情報処理装置１は、これに限定されず、さらに、メニュー項目がドラッグされた対象に応じて、メニュー項目の表示を変更しても良い。ここでいう対象とは、オブジェクトであったり、キャンバスであったりする。
【０１３８】
例えば、メニュー項目が「付箋の削除」である場合に、対象選択操作判定部２５が判定する操作では、削除対象のオブジェクトが選択される必要がある。ここでは、削除対象のオブジェクトとは付箋である。つまり、削除対象の付箋の位置へメニュー項目がドラッグされないと、「付箋の削除」が示す命令が実行できない。そこで、実施例４では、情報処理装置１は、さらに、メニュー項目がドラッグされた対象に応じて、メニュー項目の表示を変更する場合について説明する。
【０１３９】
［実施例４に係る情報処理装置の構成］
実施例４に係る情報処理装置１の機能構成は、実施例３と同様であるので、その構成については省略する。なお、実施例３と実施例４とが異なるところは、命令算出部２７に実施例４に係る動作を追加した点にある。
【０１４０】
命令算出部２７は、第１の操作によって選択されたメニュー項目、第２の操作によって選択された命令を実行させる対象および第２の操作に基づいて、実行する命令を算出する。ここでいう対象は、例えば、命令を実行させる位置やその位置にあるオブジェクトまたはキャンバスを示す。また、命令算出部２７は、メニュー項目が示す命令がドラッグされた位置に対して実行できるか否かを判定する。なお、命令算出部２７は、ドラッグされた位置ごとに命令が実行できるか否かを判定しても良いが、第２の操作によって選択された位置に対して判定しても良い。
【０１４１】
［メニュー操作処理の一例］
実施例４に係るメニュー操作処理の一例を、図１６を参照して説明する。図１６は、実施例４に係るメニュー操作処理の一例を示す図である。なお、図１６では、メニュー操作処理がなされる前には、５個のオブジェクトが表示されている。こここでは、これらのオブジェクトは、付箋であるとする。
【０１４２】
符号ｅ１の位置でポインティングがされたとする。すると、ポインティング操作取得部２２は、ポインティング位置にオブジェクトが表示されていないので、画面のキャンバスをポインティングの対象とする。そして、コンテキストメニュー表示部２３は、ポインティング操作取得部２２によってポインティング操作が取得されたとき、ポインティング位置の付近にコンテキストメニューを表示する。ここでは、コンテキストメニューには、「付箋を追加」および「付箋を削除」のメニュー項目が含まれている。
【０１４３】
ここで、メニュー項目が示す命令が実行できる場合について説明する。「付箋を削除」のメニュー項目が選択され、ドラッグｅ２が開始されたとする。すると、メニュー項目選択操作判定部２４Ａは、「付箋を削除」のメニュー項目を選択するために用いられる第１の操作を判定する。ここでは、第１の操作は、ドラッグを開始する操作である。メニュー項目表示部２６は、ドラッグ操作に基づいて「付箋を削除」のメニュー項目の表示位置を変更する。
【０１４４】
そして、「付箋を削除」のメニュー項目のドラッグｅ２が終了したとする。すると、命令算出部２７は、「付箋を削除」のメニュー項目が示す命令がドラッグされた位置に対して実行できるか否かを判定する。ここでは、ドラッグされた位置ｅ３が付箋上であるので、命令算出部２７は、「付箋を削除」のメニュー項目が示す命令がドラッグされた位置に対して実行できると判定する。
【０１４５】
そして、命令算出部２７は、ドラッグｅ２が終了した位置ｅ３に「付箋を削除」のメニュー項目を表す命令を算出する。ここでは、命令算出部２７は、ドラッグｅ２が終了した位置ｅ３に「付箋を削除」するという命令を算出する。この結果、符号ｅ４で示すように、付箋が削除される。
【０１４６】
ここで、メニュー項目が示す命令が実行できない場合について説明する。「付箋を削除」のメニュー項目が選択され、ドラッグｅ５が開始されたとする。すると、メニュー項目選択操作判定部２４Ａは、「付箋を削除」のメニュー項目を選択するために用いられる第１の操作を判定する。ここでは、第１の操作は、ドラッグを開始する操作である。メニュー項目表示部２６は、ドラッグ操作に基づいて「付箋を削除」のメニュー項目の表示位置を変更する。
【０１４７】
そして、「付箋を削除」のメニュー項目のドラッグｅ５が終了したとする。すると、命令算出部２７は、「付箋を削除」のメニュー項目が示す命令がドラッグされた位置に対して実行できるか否かを判定する。ここでは、ドラッグされた位置ｅ６が付箋上にないので、命令算出部２７は、「付箋を削除」のメニュー項目が示す命令がドラッグされた位置に対して実行できないと判定する。命令算出部２７は、命令を実行する付箋を特定できないからである。そこで、メニュー項目表示部２６は、命令を実行できないことを示すためにメニュー項目の表示を変更する。一例として、メニュー項目表示部２６は、該当するメニュー項目を通常の色と異なる色に変更する。メニュー項目表示部２６は、通常の色が黒色であれば、該当するメニュー項目の色を赤色に変更する。
【０１４８】
これにより、情報処理装置１は、メニュー項目に対する操作効率を向上させることができる。
【０１４９】
［メニュー操作処理のフローチャートの一例］
図１７は、実施例４に係るメニュー操作処理のフローチャートの一例を示す図である。
【０１５０】
図１７に示すように、ポインティング操作取得部２２は、画面へのポインティングを検出したか否かを判定する（ステップＳ８１）。画面へのポインティングを検出していないと判定した場合には（ステップＳ８１；Ｎｏ）、ポインティング操作取得部２２は、画面へのポインティングを検出するまで、判定処理を繰り返す。
【０１５１】
一方、画面へのポインティングを検出したと判定した場合には（ステップＳ８１；Ｙｅｓ）、コンテキストメニュー表示部２３は、検出した位置の付近に、コンテキストメニューを表示する（ステップＳ８２）。
【０１５２】
続いて、メニュー項目選択操作判定部２４Ａは、メニュー項目のドラッグを開始する操作を検出したか否かを検出する（ステップＳ８３）。メニュー項目のドラッグを開始する操作を検出していないと判定した場合には（ステップＳ８３；Ｎｏ）、メニュー項目選択操作判定部２４Ａは、当該操作を検出するまで、判定処理を繰り返す。
【０１５３】
一方、メニュー項目のドラッグを開始する操作を検出したと判定した場合には（ステップＳ８３；Ｙｅｓ）、メニュー項目表示部２６は、コンテキストメニューに含まれる他のメニュー項目を非表示にする（ステップＳ８４）。なお、メニュー項目表示部２６は、ドラッグ操作に基づいてドラッグ対象のメニュー項目の表示位置を変更する。
【０１５４】
そして、命令算出部２７は、メニュー項目が示す命令がドラッグされた位置に対して実行できるか否かを判定する（ステップＳ８５）。メニュー項目が示す命令がドラッグされた位置に対して実行できないと判定した場合には（ステップＳ８５；Ｎｏ）、メニュー項目表示部２６は、当該メニュー項目を異常表示にする（ステップＳ８６）。すなわち、命令算出部２７は、メニュー項目が示す命令がドラッグされた位置に対して実行できないので、メニュー項目表示部２６は、当該メニュー項目の表示を、命令を実行できないことを示す表示に変更する。そして、メニュー項目表示部２６は、ステップＳ８８に移行する。
【０１５５】
一方、メニュー項目が示す命令がドラッグされた位置に対して実行できると判定した場合には（ステップＳ８５；Ｙｅｓ）、メニュー項目表示部２６は、当該メニュー項目を通常表示にする（ステップＳ８７）。そして、メニュー項目表示部２６は、ステップＳ８８に移行する。
【０１５６】
続いて、対象選択操作判定部２５は、メニュー項目のドラッグを終了する操作を検出したか否かを検出する（ステップＳ８８）。メニュー項目のドラッグを終了する操作を検出していないと判定した場合には（ステップＳ８８；Ｎｏ）、命令算出部２７は、ドラッグ位置での命令の実行判定をすべく、ステップＳ８５に移行する。
【０１５７】
一方、メニュー項目のドラッグを終了する操作を検出したと判定した場合には（ステップＳ８８；Ｙｅｓ）、メニュー項目表示部２６は、当該メニュー項目を非表示にする（ステップＳ８９）。
【０１５８】
そして、命令算出部２７は、ドラッグが終了した位置に、メニュー項目が示す命令を実行する（ステップＳ９０）。そして、メニュー操作処理は、終了する。
【０１５９】
なお、実施例１〜４では、実施例１では、情報処理装置１は、コンテキストメニューを表示した後に、選択したメニュー項目のドラッグ操作により移動した結果である終了位置にメニュー項目が表す内容を表示すると説明した。しかしながら、情報処理装置１は、これに限定されず、コンテキストメニューにドラッグできるメニュー項目とドラッグできないメニュー項目とが含まれても良く、ドラッグできないメニュー項目をドラッグできないようにする。ドラッグできないメニュー項目とは、メニュー項目の位置を変更することに意味がないメニュー項目のことをいい、例えば画面全体に対する命令が実行されるメニュー項目が挙げられる。
【０１６０】
ここで、コンテキストメニューにドラッグできるメニュー項目とドラッグできないメニュー項目とが含まれる場合の表示の一例を、図１８を参照して説明する。図１８は、コンテキストメニューにドラッグできるメニュー項目とドラッグできないメニュー項目とが含まれる場合の表示の一例を示す図である。図１８に示すように、コンテキストメニューには、ドラッグできるメニュー項目と、ドラッグできないメニュー項目とが含まれている。ドラッグできるメニュー項目として、「付箋を追加」および「画像を追加」が表示されている。そして、ドラッグできるメニュー項目には、ドラッグできることを示すマークが表示されている。ドラッグできないメニュー項目として、「背景色を変更」および「画面のズーム」が表示されている。そして、ドラッグできないメニュー項目には、ドラッグできることを示すマークが表示されていない。すなわち、メニュー項目としての「背景色を変更」および「画面のズーム」では、画面全体の背景色およびズームが変更されるため、メニュー項目の位置がどこにあっても構わない。なお、ドラッグできないメニュー項目がドラッグできないことを示すために、以下の処理が行われても良い。例えば、対象選択操作判定部２５は、ドラッグできないメニュー項目について、ドラッグを無効に設定する処理を行う。
【０１６１】
また、コンテキストメニューにドラッグできるメニュー項目とドラッグできないメニュー項目とが含まれる場合の表示の別の例を、図１９を参照して説明する。図１９は、コンテキストメニューにドラッグできるメニュー項目とドラッグできないメニュー項目とが含まれる場合の表示の別の例を示す図である。図１９に示すように、コンテキストメニューには、ドラッグできるメニュー項目と、ドラッグできないメニュー項目とが含まれている。ドラッグできるメニュー項目として、「付箋を追加」および「画像を追加」が表示されている。ドラッグできないメニュー項目として、「背景色を変更」および「画面のズーム」が表示されている。ドラッグできないメニュー項目がドラッグできないことを示すために、以下の処理が行われる。例えば、メニュー項目表示部２６が、メニュー項目をドラッグに応じてドラッグ位置に表示する。継続操作判定部３１Ａが、ドラッグできないメニュー項目の場合、ドラッグが一定の距離に達したときに、メニュー項目の選択を継続しないと判定する。そして、メニュー項目表示部２６は、ドラッグされる前の位置に戻す。
【０１６２】
これにより、情報処理装置１は、メニュー項目に対する操作効率を向上させることができる。
【０１６３】
［その他］
なお、情報処理装置１は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した表示装置１０および制御部２０などの各機能を搭載することによって実現することができる。
【０１６４】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、操作取得部２１と、ポインティング操作取得部２２とを１個の部として統合しても良い。一方、継続操作判定部３１を、中止操作を判定する判定部と、継続操作を判定する判定部とに分散しても良い。
【０１６５】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した表示装置１と同様の機能を実現する情報処理プログラムを実行するコンピュータの一例を説明する。図２０は、情報処理プログラムを実行するコンピュータの一例を示す図である。
【０１６６】
図２０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読み取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１６７】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。
【０１６８】
ＣＰＵ２０３は、情報処理プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置１の各機能部に対応する。情報処理関連情報２０５ｂは、図示しない記憶部に記憶される情報に対応する。そして、例えばリムーバブルディスク２１１が、情報処理プログラム２０５ａなどの各情報を記憶する。
【０１６９】
なお、情報処理プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらから情報処理プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１７０】
１  情報処理装置
１０  表示装置
２０  制御部
２１  操作取得部
２２  ポインティング操作取得部
２３  コンテキストメニュー表示部
２４，２４Ａ  メニュー項目選択操作判定部
２５  対象選択操作判定部
２６  メニュー項目表示部
２７  命令算出部
３１，３１Ａ  継続操作判定部
【図１】
0006677019.tif 000002
【図２】
0006677019.tif 000003
【図３】
0006677019.tif 000004
【図４】
0006677019.tif 000005
【図５】
0006677019.tif 000006
【図６】
0006677019.tif 000007
【図７】
0006677019.tif 000008
【図８】
0006677019.tif 000009
【図９】
0006677019.tif 000010
【図１０】
0006677019.tif 000011
【図１１】
0006677019.tif 000012
【図１２】
0006677019.tif 000013
【図１３】
0006677019.tif 000014
【図１４】
0006677019.tif 000015
【図１５】
0006677019.tif 000016
【図１６】
0006677019.tif 000017
【図１７】
0006677019.tif 000018
【図１８】
0006677019.tif 000019
【図１９】
0006677019.tif 000020
【図２０】
0006677019.tif 000021