(57)【要約】【課題】汎用的なポインティングデバイスを用いて効率的な操作指示入力が可能なアプリケーションプログラムを提供する。【解決手段】複数のポインティングデバイスの少なくとも一つからの操作指示に基づいて動作内容を決定する動作内容決定工程と、動作内容に対応するポインティングデバイスの情報を記憶するデバイス記憶工程と、記憶するポインティングデバイスを設定するための登録ウィンドウを表示する登録ウィンドウ表示工程を情報処理装置に実行させ、登録ウィンドウ表示工程は、動作内容ごとに登録ウィンドウを表示し、デバイス検出工程は、登録ウィンドウに対する操作指示が行われたポインティングデバイスの情報を検出し、デバイス記憶工程は、デバイス検出工程で検出されたポインティングデバイスの情報を記憶するアプリケーションプログラムを用いる。【選択図】図９
2015166994.tif 000002
【特許請求の範囲】
【請求項１】
複数のポインティングデバイスを使用した操作指示を入力する操作指示入力工程と、
前記操作指示に基づいて、使用されたポインティングデバイスの情報を検出するデバイス検出工程と、
前記複数のポインティングデバイスの少なくとも一つからの操作指示に基づいて動作内容を決定する動作内容決定工程と、
前記動作内容に対応するポインティングデバイスの情報を記憶するデバイス記憶工程と、
前記デバイス記憶工程において記憶するポインティングデバイスを設定するための登録ウィンドウを表示する登録ウィンドウ表示工程と、
を情報処理装置に実行させるアプリケーションプログラムにおいて、
前記登録ウィンドウ表示工程は、前記ポインティングデバイスの情報を記憶する前記動作内容ごとに前記登録ウィンドウを表示し、
前記デバイス検出工程は、前記登録ウィンドウに対する操作指示が行われたポインティングデバイスの情報を検出し、
前記デバイス記憶工程は、前記デバイス検出工程で検出されたポインティングデバイスの情報を記憶する
ことを特徴とするアプリケーションプログラム。
【請求項２】
前記アプリケーションプログラムは、
画像を入力する画像入力工程と、
前記画像の少なくとも一部を表示する表示工程と、
をさらに前記情報処理装置に実施させるものであり、
前記動作内容決定工程が決定する前記動作内容は、少なくとも画像表示に関する動作内容を含む
ことを特徴とする請求項１に記載のアプリケーションプログラム。
【請求項３】
前記アプリケーションプログラムは、前記画像の表示位置を変更するスクロール工程をさらに前記情報処理装置に実行させるものであり、
前記動作内容決定工程が決定する前記動作内容は、スクロールである
ことを特徴とする請求項２記載のアプリケーションプログラム。
【請求項４】
前記登録ウィンドウに対する操作指示は、カーソルの移動に関する操作指示である
ことを特徴とする請求項１ないし３のいずれか１項に記載のアプリケーションプログラム。
【請求項５】
前記登録ウィンドウに対する操作指示は、前記登録ウィンドウに含まれる位置に対するクリック操作である
ことを特徴とする請求項１ないし３のいずれか１項に記載のアプリケーションプログラム。
【請求項６】
前記登録ウィンドウに対する操作指示は、前記登録ウィンドウに含まれるボタンに対するクリック操作である
ことを特徴とする請求項１ないし３のいずれか１項に記載のアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムに関する。特に、大きな画像を表示したり、画像を拡大し、部分画像をスクロールしながら表示したりするアプリケーションプログラムにおける操作指示受付手段の登録方法に関する。
【背景技術】
【０００２】
従来、大きな画像を表示したり、画像を拡大し、部分画像をスクロールしながら表示したりする方法として、スクロールや変倍等の操作指示を効率的に行うための操作指示方法が開示されている。
例えば特許文献１では、右手用マウスと左手用マウスを用いてスクロール操作を効率的に行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２６５５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
マウスに代表されるポインティングデバイスは様々なメーカーにより提供されているが、一般的にはオペレーティングシステム（以下、ＯＳとも呼ぶ）に適合したドライバを必要とする。そして、ポインティングデバイスからの操作指示はドライバを経由して、ＯＳが提供する汎用的な通知の方法（例えばメッセージ）を用いてアプリケーションプログラムに通知される。そのため、アプリケーションプログラムではＯＳが提供する汎用的な通知の仕組みのみを意識すればよく、デバイスメーカーの都合に依存することなくアプリケーションプログラム開発を行うことが可能となる。また、ユーザーが使用するデバイスを変更した際にも、アプリケーションプログラムを作り替えることなく使用可能となっている。
【０００５】
近年、ポインティングデバイスはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を使用してＰＣに接続される場合が多く、複数のポインティングデバイスを１台のＰＣに接続することが可能である。しかし、上述のようにアプリケーションプログラムではポインティングデバイスを識別していないため、どのポインティングデバイスを使用しても、カーソルの移動やクリック、ダブルクリックなどの汎用的な操作指示入力が可能である。しかし、一般的なポインティングデバイスの使い方では個々のデバイスを区別しないため、ポインティングデバイスの種類ごとに使いやすいアプリケーションプログラムの機能を使用することは困難である。
【０００６】
特に、複数のポインティングデバイスの各々に対して機能を割り当てようとする際には、各ポインティングデバイスを識別した上で機能を設定する必要がある。一般的に、ＰＣに接続されているデバイスの識別はドライバの情報として識別可能である。しかし、上述のＵＳＢを使用して接続する場合、同一のデバイスを複数接続することも可能であり、デバイス自体の情報に加え、ＵＳＢのポートを示す情報まで含めて識別する必要がある。ここで、ポインティングデバイス本体には、必ずしも識別に必要な情報が記載されていない場合がある。また、ＰＣに複数設けられているＵＳＢのポートを識別する情報をユーザーが入手することは容易ではない。そのため、複数のポインティングデバイスの各々に対して、アプリケーション上でユーザーが好みに合わせて機能を割り当てることは、困難であった。
【０００７】
ここで、特許文献１には、ドライバの設定において機能を割り当てる方法が開示されている。このような方法を用いる場合、機能の割り当てが可能なドライバがデバイスメーカーから提供されている必要があり、ユーザーが好みのデバイスに対して機能を割り振ることができない場合があった。
【０００８】
本発明は上記課題に鑑みてなされたものであり、その目的は、汎用的なポインティングデバイスを用いて効率的な操作指示入力が可能なアプリケーションプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、以下の構成を採用する。すなわち、
前記複数のポインティングデバイスの少なくとも一つからの操作指示に基づいて動作内容を決定する動作内容決定工程と、
前記動作内容に対応するポインティングデバイスの情報を記憶するデバイス記憶工程と、
前記デバイス記憶工程において記憶するポインティングデバイスを設定するための登録ウィンドウを表示する登録ウィンドウ表示工程と、
を情報処理装置に実行させるアプリケーションプログラムにおいて、
前記登録ウィンドウ表示工程は、前記ポインティングデバイスの情報を記憶する前記動作内容ごとに前記登録ウィンドウを表示し、
前記デバイス検出工程は、前記登録ウィンドウに対する操作指示が行われたポインティングデバイスの情報を検出し、
前記デバイス記憶工程は、前記デバイス検出工程で検出されたポインティングデバイスの情報を記憶する
ことを特徴とするアプリケーションプログラムである。
【発明の効果】
【００１０】
本発明によれば、汎用的なポインティングデバイスを用いて効率的な操作指示入力が可能なアプリケーションプログラムを提供できる。
【図面の簡単な説明】
【００１１】
【図１】本発明における装置構成図
【図２】本発明におけるコンピュータの構成図
【図３】本発明における画像表示アプリケーションの画面例
【図４】本発明における操作指示伝達経路を示す図
【図５】本発明の実施例１における機能ブロック図
【図６】本発明の実施例１におけるフローチャート
【図７】本発明におけるスクロール移動量の決定方法の例を示す図
【図８】本発明におけるポインティングデバイスの他の例を示す図
【図９】本発明の実施例２における機能ブロック図
【図１０】本発明の実施例２におけるフローチャート
【図１１】本発明のデバイス登録画面の例を示す図
【図１２】本発明のデバイス登録画面の他の例を示す図
【図１３】本発明のデバイス登録画面の他の例を示す図
【発明を実施するための形態】
【００１２】
以下に図面を参照しつつ、本発明の好適な実施の形態について説明する。ただし、以下に記載されている構成部品の寸法、材質、形状およびそれらの相対配置などは、発明が適用される装置の構成や各種条件により適宜変更されるべきものであり、この発明の範囲を
以下の記載に限定する趣旨のものではない。
【００１３】
＜実施例１＞
以下、図面を用いて本発明の要旨を説明する。
図１は本発明における装置構成を示している。図１中、符号１００はコンピュータを示しており、本発明の対象となるアプリケーションのプログラムを実行する。符号１０１はディスプレイであり、アプリケーションのウィンドウを表示する。
【００１４】
符号１０２はマウスを示しており、本発明におけるユーザーからの操作指示を入力するためのポインティングデバイスの一つである。符号１０３はマウス１０２に取り付けられている左ボタンであり、ディスプレイ１０１上に表示される不図示のマウスカーソルが指し示す位置にある対象を選択する際等に使用される。符号１０４は回転可能なホイールであり、回転量に応じた操作指示を与える際に有効である。ホイール１０４の活用例としては、例えば画像表示を行うアプリケーションにおいて、上下方向のスクロール、あるいは、表示倍率の変更を行う際に使うなどが挙げられる。符号１０５はマウス１０２に取り付けられている右ボタンであり、前述のカーソルが指し示す位置において使用可能なメニューを表示する際などに使用される。
【００１５】
符号１０６はトラックボールであり、ボール１０７を回転させることにより、マウス１０２を移動させた時と同様にマウスカーソルの位置を移動させることが可能なポインティングデバイスの一つである。符号１０８はトラックボール１０６に取り付けられている左ボタンであり、前述の左ボタン１０３と同様の機能を有する。符号１０９は右ボタンであり、前述の右ボタン１０５と同様の機能を有する。符号１１０はキーボードであり、文字入力を行う際に使用される。なお、マウスおよびトラックボールのボタンの左右とは、マウスを把持するユーザーからみた向きを表す。
【００１６】
図２は、本発明のアプリケーションプログラムを実行するコンピュータ１００の内部構成、および、各種デバイスとの関係を示している。符号２００はＣＰＵであり、処理に必要な演算を行う。符号２０１はＲＯＭであり、記憶されているプログラムやデータを読み出すことが可能である。符号２０２はＲＡＭであり、プログラムや処理に必要なデータの書き込み、あるいは、読み出しが可能である。符号２０３はプログラムや画像データなどの書き込み、あるいは、読み出しが可能なストレージであり、ＨＤＤやＳＳＤなどから構成される。符号２０４〜２０７はインターフェースであり、それぞれディスプレイ１０１、マウス１０２、トラックボール１０６、キーボード１１０に接続されている。ＣＰＵ２００、またはＣＰＵ２００が動作するのに必要な要素の組み合わせ、あるいはコンピュータ１００全体は、本発明のアプリケーションプログラムを実行する情報処理装置として機能する。
【００１７】
次に、図３を用いて本発明におけるアプリケーションプログラムの適用例を示す。図３（ａ）は医療用画像を表示するアプリケーションプログラムの例であり、ディスプレイ１０１上にアプリケーションウィンドウ３００が表示されている。そして、アプリケーションウィンドウ３００中には医療用画像３０１が表示されている。医療用画像の例としては、レントゲン、ＣＴ、ＭＲＩなどが挙げられるが、さらに好適な例としてはプレパラートを高倍率のレンズを用いて拡大して撮像する病理診断用画像が挙げられる。
【００１８】
病理診断用画像のように被写体であるプレパラート全体の観察とともに拡大して細部を観察する必要のある画像の場合、観察時には画像のスクロールや表示倍率の変更が必要となる。表示倍率が低すぎると細部が観察できないため、良好な診断のためには少なくとも所定の値以上の表示倍率が必要になる。その所定の表示倍率における画像の大きさがアプリケーションウィンドウより大きい場合、ウィンドウ中には全体画像の一部である部分画
像が表示され、スクロールを行って画像中の表示位置（切り取られる部分画像）を変更する。
【００１９】
さらに、注目箇所に対してマークやコメントを付加する等の操作が行われる場合もある。符号３０２はカーソルであり、ディスプレイ１０１上の位置を指定する際に使用される。カーソル３０２は、マウス１０２の移動、あるいは、トラックボール１０６のボール１０７の回転など、ポインティングデバイスを用いた移動指示を与えることにより移動させる。
【００２０】
図３（ｂ）は、地図を表示するアプリケーションプログラムの例であり、ディスプレイ１０１上にアプリケーションウィンドウ３０３が表示されている。そして、アプリケーションウィンドウ３０３中には道路や建物を含む地図画像３０４が表示されている。地図を見る際には、例えば所定の場所から目的地への経路を調べる等が行われるが、２点間の距離が離れている場合には、画像をスクロールさせながら見る必要がある。また、縮小表示をしながら大まかな経路を検索するとともに、必要に応じて一部を拡大表示しながら細かい道を調べるなどの表示倍率の変更が行われる場合がある。また、近年では経路の自動検索機能が付いた地図アプリケーションプログラムもあり、経路の開始地点と目的地を指定することなども行われる。
【００２１】
図３（ａ）、（ｂ）に示したように、１つの画面内に収まらない表示を行う場合には、スクロールや表示倍率の変更、そして、画像内の位置の指定などの操作が行われる場合がある。一般的なコンピュータには操作指示入力手段としてマウス１０２とキーボード１１０が使用される。特に、マークの付加や地図上の場所を指定するといったような画像中の所定位置を指定する場合には、マウス１０２を用いると操作性が良い。また、表示倍率変更のように一次元の尺度を切り替える場合では、一次元の動きに限定されているホイール１０４を用いると操作性が良い。しかし、一般的に、大きな画像のスクロール等は、マウス１０２よりも二次元方向に自由に移動可能なトラックボール１０６の方が操作性が良いことが知られている。
【００２２】
ここで、マウス１０２やトラックボール１０６は様々なメーカーから様々な形状の製品が発売されていて、ユーザーごとに好みの製品は異なる。しかし、特許文献１のように特殊なデバイスやドライバが必要な場合、デバイスやドライバが対応していなければ、上述のように機能ごとに使い分けることが困難となる。
本発明は、特殊なデバイスやドライバを用いることなく、アプリケーションプログラムの機能ごとに最適な操作指示デバイスを使用することを可能にするものである。
【００２３】
図４は、本実施例における操作指示伝達経路を示す図である。符号４００はアプリケーションプログラムであり、オペレーティングシステム（ＯＳ）４０１の管理下で動作するソフトウェアである。符号４０２はマウス１０２からの入力を受け付け、ＯＳ４０１に操作指示内容を伝達するドライバである。符号４０３はトラックボール１０６からの入力を受け付け、ＯＳ４０１に操作指示内容を伝達するドライバである。ドライバ４０２、４０３からの操作指示入力は、ＯＳ４０１を経由してアプリケーションプログラム４００に伝達される。
【００２４】
ここで、ポインティングデバイスを使用したマウスカーソル３０２に対する標準的な操作指示命令は、ＯＳ４０１によって一般化された操作指示命令として定義されている。そのため、ＯＳ４０１からアプリケーションプログラム４００に伝達される情報は、操作入力デバイスであるマウス１０２やトラックボール１０３、あるいは、ドライバ４０２、４０３を区別することなく、一般化された操作指示命令４０４として伝達される。一般化された操作指示命令４０４として代表的なものはメッセージであり、例えば、マウス１０２
を移動させたことを通知するメッセージや、左ボタン１０３が押下されたことを通知するメッセージなどが挙げられる。
【００２５】
また、通常アプリケーションプログラム４００は操作指示を入力したデバイスを意識しないようにすることで、ポインティングデバイスに依存しないように作成される。しかし、本発明のアプリケーションプログラムにおいては、ＯＳ４０１を介してデバイスを特定する。これにより、アプリケーションプログラム４００において操作指示命令４０４、および、操作指示命令４０４に対応する操作指示を入力したデバイスの情報を考慮してアプリケーションプログラム４００の動作を決定することが可能となる。その結果、汎用的な複数のポインティングデバイスを用いて、アプリケーションプログラム４００の機能ごとに最適なデバイスを割り当てることが可能となる。
【００２６】
図５は本実施例におけるアプリケーションプログラム４００の機能ブロック図である。符号５００はＯＳ４０１から送信される操作指示命令を示すメッセージを入力する入力端子である。なお入力端子５００から入力されるメッセージは、前述のポインティングデバイスの操作指示に限らない。例えば、アプリケーションのメニューを選択したことを示すメッセージ等、アプリケーションプログラム４００に通知する必要のあるあらゆるメッセージを含む。
【００２７】
符号５０１はメッセージ受信部であり、受信したメッセージを蓄積するメッセージキューや、メッセージが届いたか否かを判定する判定手段などを具備する。符号５０２はデバイス検出部であり、受信したメッセージに対応するデバイスの識別情報を検出する。符号５０３はデバイス記憶部であり、アプリケーションプログラム４００の機能ごとに、対応するデバイスの識別情報を記憶する。なお、デバイス記憶部５０３には、予め設定された識別情報を記憶するようにする。また、デバイス記憶部５０３は全ての機能に対して識別情報を記憶する必要はなく、特定のデバイスによる操作に対応させたい機能についてのみ情報を記憶するようにしても良い。
【００２８】
符号５０４は動作内容決定部であり、受信したメッセージ、および、デバイス検出部５０２で検出した識別情報、および、デバイス記憶部５０３に記憶された識別情報に基づいてアプリケーションプログラム４００の動作内容を決定する。符号５０５はスクロール制御部であり、動作内容決定部５０４において表示画像のスクロール指示がなされたと判定された場合にスクロール動作を実行する。符号５０６は表示倍率制御部であり、動作内容決定部５０４において表示倍率の変更指示がなされたと判定された場合に表示倍率の変更を実行する。
【００２９】
符号５０７は画像読み込み部であり、動作内容決定部５０４において新たな画像を表示する指示がなされたと判定された場合に、指定された画像を読み込んで表示する。符号５０８は終了処理部であり、動作内容決定部５０４においてアプリケーションプログラム４００を終了させる指示がなされたと判定された場合に、アプリケーションプログラム４００を終了させる。符号５０９はカーソル表示状態制御部であり、動作内容決定部５０４の決定内容に応じて、カーソル表示制御を行う。
【００３０】
図６は本実施例におけるアプリケーションプログラム４００の動作フローを示すフローチャートである。処理が開始されるとまず、ステップ６００においてアプリケーションプログラムの初期化処理が行われ、アプリケーションウィンドウの表示が行われる。ステップ６０１では、操作指示命令を示すメッセージを受信したか否かを判定する。メッセージを受信していないと判定されると再度ステップ６０１を実行し、メッセージの受信を待つ。ステップ６０１においてメッセージを受信したと判定されるとステップ６０２に移行し、受信したメッセージをメッセージキューから取得する。ステップ６０３では、メッセー
ジに対応するデバイスの識別情報を検出する。
【００３１】
ステップ６０４ではメッセージの内容を判定し、カーソルの移動を示す内容であった場合にはステップ６０５に進む。ステップ６０５では使用されたデバイスの識別情報がスクロール用のデバイスの識別情報と一致するか否かを判定する。ステップ６０５において一致すると判定された場合には、ステップ６０６においてスクロール量の決定を行った後に、ステップ６０７でスクロールを実行する。そして、ステップ６０８においてカーソルを非表示状態にした後に、再びステップ６０１においてメッセージ受信待ちを行う。
ステップ６０５において識別情報がスクロール用のデバイスの識別情報と一致しないと判定された場合には、通常のマウスカーソルの移動指示であったと判定する。そして、ステップ６０９においてカーソルを表示状態にした後に、再びステップ６０１においてメッセージ受信待ちを行う。
【００３２】
一方、ステップ６０４においてメッセージの内容がカーソルの移動を示す内容ではなかった場合、処理はステップ６１０に移行し、メッセージの内容がホイールの回転を示す内容であるか否かを判定する。ステップ６１０において、メッセージの内容がホイールの回転を示す内容であった場合処理はステップ６１１に移行し、ホイールの回転量、および、回転方向に基づいて表示倍率の決定を行う。そして、ステップ６１２で表示倍率の変更を行った後、再びステップ６０１においてメッセージ受信待ちを行う。
【００３３】
ステップ６１０においてメッセージの内容がホイールの回転を示す内容ではなかった場合、処理はステップ６１３に移行し、メッセージの内容がファイルを開く内容であるか否かを判定する。ステップ６１３において、メッセージの内容がファイルを開く内容であった場合、処理はステップ６１４に移行し、指定された画像ファイルの読み込み、すなわち画像入力を行う。そして、ステップ６１５において読み込んだ画像の表示を行った後、再びステップ６０１においてメッセージ受信待ちを行う。
【００３４】
ステップ６１３においてメッセージの内容がファイルを開く内容ではなかった場合、処理はステップ６１６に移行し、メッセージの内容がアプリケーションプログラムの終了を示す内容であるか否かを判定する。ステップ６１６において、メッセージの内容がアプリケーションプログラムの終了を示す内容であった場合には、アプリケーションプログラムを終了させる。一方、メッセージの内容がアプリケーションプログラムの終了を示す内容でなかった場合には、再びステップ６０１においてメッセージ受信待ちを行う。
【００３５】
なお、図６に示したフローにおいて、ステップ６０３のデバイスの検出処理は、メッセージ内容の判定処理であるステップ６０４、６０５、６１０、６１３等の後に必要な場合のみ行うようにしても良い。
また、図６のフローにおいては、ステップ６１０でメッセージの内容がホイールの回転を示す内容であった場合、あるいはステップ６１３でメッセージの内容がファイルを開く内容であった場合にはカーソル状態の変更を行っていない。これは現在のカーソル表示状態を維持することを意味しているが、現在の状態を維持することも、カーソル表示状態制御部５０９が行うカーソル表示制御の内容に含まれる。なお、本発明は図６のフローに限定されるものではなく、動作内容とカーソル表示状態の制御の処理順が入れ替わっても構わない。また、ステップ６１０でメッセージの内容がホイールの回転を示す内容であった場合、あるいはメッセージの内容がファイルを開く内容であった場合にカーソルの表示状態を特定の状態にするようにしても良い。
【００３６】
図７はステップ６０６のスクロール方法、および、スクロール移動量の決定方法の例を示す図である。
図７（ａ）において、符号７００はアプリケーションウィンドウを示している。７０１
はアプリケーションウィンドウ７００内の所定位置（例えばウィンドウ中心などのカーソルの移動が全方向に可能な位置）を指すように移動されたカーソルであり、スクロール移動量を決定する際の基準位置を示している。符号７０２はスクロール用のデバイスからのマウス移動指示によって移動したカーソルである。そして、マウス移動指示を示すメッセージを受信すると、カーソル位置７０１と７０２、および、方向の比較により移動量（Ｘ、Ｙ方向）を決定する。さらに、移動量決定後にカーソル７０２を強制的に７０１のカーソル位置に移動させることにより、カーソルが画面端部に移動して、それ以上同じ方向に移動できなくなることを防止する。
【００３７】
なお、スクロール用デバイスではないマウス移動指示からスクロール用デバイスのマウス移動指示に切れ変わった際に、カーソル位置を記憶しておき、カーソルを非表示にする。逆に、スクロール用デバイスのマウス移動指示からスクロール用デバイスではないマウス移動指示に切れ変わった際に、記憶していたカーソル位置にカーソルを移動させ、且つ、カーソルを表示状態にすると良い。このようにすることで、画面上に無意味な移動を繰り返すカーソルが表示されなくなるため、画像の閲覧を妨げることなく画面表示が可能となる。
【００３８】
図７（ｂ）は、ステップ６０６のスクロール量の決定方法の他の例を示す図である。図７（ｂ）においては、画像表示領域７０３以外に、スクロール制御用領域７０４を有している。符号７０５は基準位置であり、カーソル位置７０６との位置、および、方向の相対的な関係により、移動量（Ｘ、Ｙ方向）を決定する。ここで、スクロール用デバイスではないマウス移動指示に切れ変わった場合には、カーソル位置を記憶した後に、カーソル位置を画像表示領域７０３中のカーソル位置７０７に強制的に移動させる。一方、スクロール用デバイスのマウス移動指示に切れ変わった際には、カーソル位置を記憶した後に、カーソル位置を強制的に７０６に移動させる。
【００３９】
なお、スクロール用デバイスではないマウス移動指示に切れ変わった場合には、スクロール操作が停止したとみなしてカーソル位置７０６を７０５の位置に移動させても良い。また、スクロール制御領域には７０５を中心とする不感領域７０８を設けておくのも良い。そして、領域７０８中にカーソルが存在する場合には移動させないようにすることで、スクロールの停止を行いやすくなる。
【００４０】
なお、移動量は基準位置とカーソル位置の相対的な距離に比例するようにしても良いが、細かい手の動きによってカーソルが意図しない変動をする可能性がある。このような場合、単純に距離に比例する移動量とすると、移動速度や移動方向にムラが発生してしまい、観察が行いにくくなる恐れがある。
【００４１】
そのため、予め定められた固定的な移動量を設定するようにしても良い。例えば、移動速度が一つの固定値で、移動方向が縦横のみに限定するなどが挙げられる。また、固定値を複数持たせておき、基準位置とカーソル位置の相対的な距離が所定の閾値を超えた場合に切り替えて適用するなどを行っても良い。例えば、相対的なカーソル位置が所定以上離れていた場合には、高速な手の動きによりスクロールの動きにムラが発生しやすくなるため、固定的な速度で縦横斜めの８方向に限定する。逆に、相対的なカーソル位置が所定以上離れていなかった場合には、低速な手の動きにより細かい操作を感覚的に行わせるために、移動量は基準位置とカーソル位置の相対的な距離に比例するようにする等が挙げられる。
【００４２】
上述の実施例においては、スクロール動作を行うにあたりカーソルの移動を示すメッセージを判定するようにしたが、これに限るものではない。例えば、トラックボールを使用する場合にはボールの回転量を検出する必要がある。そこで、周期タイマーを使用して所
定時間間隔でカーソルの位置を取得し、前回周期において取得した位置との差分を移動量と判定する。そして、該移動量に基づいてスクロール方向とスクロール量を決定するようにするなどの方法でも良い。
【００４３】
この場合には、図７（ａ）で説明したように、ディスプレイ端部においてスクロールできなくなるのを防止するために、移動量の検出後には強制的に７０１のカーソル位置に移動させると良い。また、上述のようにカーソルを強制的に７０１に移動させる場合にはカーソルが７０１の近傍で激しく移動を繰り返し、表示内容を観察する際に邪魔になる可能性がある。そこで、このような場合にはカーソルを非表示にすると良い。
【００４４】
このように本発明は、カーソルの移動を示すメッセージに限らず、カーソルの移動を検出することが可能な他のトリガに基づいてカーソル位置取得（検出）を行い、スクロールに反映させるようにする構成であっても構わない。
【００４５】
なお、本発明は上述の実施例に限定されるものではなく、デバイスの判定はメッセージがカーソルの移動であった場合以外に行っても構わない。例えば、２つのポインティングデバイスが両方とも一般的なホイール操作に対応していた場合において、メッセージがホイールの回転であった場合にデバイスを判定するようにしても良い。この場合の好適な例としては、前述の病理診断用画像において奥行き方向に複数枚撮像を行ったＺスタック画像を表示する例が挙げられる。この場合、一方のポインティングデバイスでは表示倍率の変更を行い、他方のポインティングデバイスでは奥行き方向の位置を切り替えるようにすると良い。
【００４６】
また、本発明はファイルを開く等のメニュー操作に対して行うようにしても良い。例えば、前述の病理診断用画像においては、複数の画像を並列に表示して比較しながら観察する場合と、一枚だけを表示する場合が挙げられる。既に一枚の画像が表示された状態にあるときにファイルを開く操作を行った場合の動作として、一方のポインティングデバイスが用いられた場合には表示済みの画像を閉じて、新たに指定された画像を一枚だけ表示するようにする。そして、他方のポインティングデバイスが用いられた場合には表示領域を分割して、表示済みの画像と新たに指定された画像を並列に表示するようにする等が、好適な例として挙げられる。
【００４７】
なお、本発明の適用対象としてはメニュー操作に限らず、ボタンやリスト表示などアプリケーション４００に固有の様々な対象に対して適用可能である。例えば、使用したポインティングデバイスごとにボタンに対応する動作内容を切り替える、あるいは、使用したポインティングデバイスごとにコンボボックスで選択可能な項目のリストを切り替える、等が好適な例として挙げられる。このように、メニュー操作やボタン等のようなアプリケーション固有の対象に対する操作指示をポインティングデバイスごとに切り替えることは、ＯＳ４０１やドライバ４０２では実行することが困難である。また、アプリケーション４００とＯＳ４０１の間に変換ソフトウェアを入れるようなことを行った場合も同様に、アプリケーション固有の対象に対する操作指示をポインティングデバイスごとに切り替えることは困難である。つまり、本発明はアプリケーション固有の対象に対する操作指示をポインティングデバイスごとに切り替えることを可能にするものである。
【００４８】
さらに、特殊な動作はトラックボール１０６の場合に限る物ではなく、例えば使用されたデバイスがマウス１０２の場合にのみ画像中へのマークやコメントの付加を行う等でも良い。この場合、マウス１０２を移動させることによりマウスカーソル３０２を画面内で移動させ、マークやコメントを挿入したい位置に移動させる。そして、左ボタン１０３、あるいは、右ボタン１０５、あるいは、キーボード１１０を使用してコメントや文字列を挿入する等を行う等、機能に応じて適したデバイスを割り当てるようにすると良い。
【００４９】
また、上述の説明では、ポインティングデバイスとしてマウスとトラックボールを挙げたが、これに限るものではない。図８は、本発明が適用可能な他のポインティングデバイスの一例を示している。８００はノート型のＰＣを示している。８０１はタッチパッドであり、持ち運びを想定したノートＰＣにおいてマウスのような外部デバイスが無くてもカーソル移動やクリック指示を行えるようにするためのポインティングデバイスであり、本発明の適用対象である。
【００５０】
また、ノートＰＣ８００のディスプレイにはタッチパネル８０２が搭載されており、指などで画面上に触れることにより直接的に画面上の位置を指定することが可能である。タッチパネル８０２もマウスなどと同様に位置を指定することが可能であり、指定した画面上の位置を現在のカーソル位置とみなせることから本発明の適用対象であるポインティングデバイスの一つである。
【００５１】
そして、上述の説明と同様に、例えばトラックボール１０６をスクロール用、タッチパッド８０１、あるいは、タッチパネル８０２を他の作業用に割り振る等を行う例が考えられる。なお、図８においてはノートＰＣを想定したが、本発明はこれに限定されるものでは無く、デスクトップＰＣ用のディスプレイ１０１に搭載されたタッチパネルであっても構わない。また、キーボードが無く画面上のタッチパネルで通常の操作を行うタブレット型の端末が近年普及している。このようなタブレット型の端末にポインティングデバイスを接続し、該ポインティングデバイスとタブレット型端末に搭載されているタッチパネルの組み合わせに対して本発明を適用しても良い。
【００５２】
図７（ａ）を用いた上述の例においては、スクロールか否かに応じてカーソルの表示状態を、非表示、あるいは表示に切り換える例を示した。このような制御はスクロールに限るものではなく、選択された機能におけるカーソル表示の必要性を考慮して決定すると良い。例えば、上述の例においては、表示画像をスクロールさせる際にはカーソルが表示されている必要はなく、むしろ表示させたカーソルが画像の観察の邪魔になる。このような機能の場合には、カーソルを非表示状態にすると良い。また、画像中へのコメントやマークの付加などのように位置を指し示す必要がある機能の場合にはカーソルが表示されている必要があるため、カーソルを表示状態にすると良い。また、カーソルが不要な場合には、完全に非表示にする以外にも半透明にする、大きさを小さくする、あるいは色を変更して背景色に近づける等により見えにくくするようにしても良い。
【００５３】
また、図７（ａ）において、カーソルが不要な場合には７０１をウィンドウの中心位置近傍以外の位置に設定してカーソル表示を行うようにするなど、画像の観察の邪魔になりにくいようにしても良い。図７（ａ）、（ｂ）に示すように、本発明におけるカーソル表示状態とは、カーソルの色、透明度、大きさ、位置など様々な表示状態を含むものである。つまり、表示画像上でのカーソルの視認性が変更可能なものであればいかなるものであっても良い。
【００５４】
本発明の好適な例としては汎用的なポインティングデバイスやドライバのみを使用する例を挙げた。しかし、特殊なポインティングデバイスやドライバと、汎用的なポインティングデバイスを組み合わせて使用する場合において、特定の汎用ポインティングデバイスに対して上述した方法を適用するようにしても良い。組み合わせる特殊なデバイスの例としては、ゲームコントローラのように数多くのボタンを有しておりドライバ設定で対応する操作指示内容を割り振るようなデバイスが挙げられる。
【００５５】
使用されたデバイスごとに切り替える処理は上述した内容に限定されるものではなく、他の様々な操作指示入力に対して行うようにしても良い。また、実行する動作内容も同様
に上述の内容に限定されるものではない。また、複数のデバイスを接続する方法は、上述したＵＳＢでの接続やコンピュータに備え付ける以外にも任意の方式を採用でき、有線または無線の別を問わない。
【００５６】
以上説明したように本実施例によると、汎用的な複数のポインティングデバイスを用いて、アプリケーションプログラムの機能ごとに最適なデバイスを割り当てることが可能となる。例えば、カーソルの長距離移動が必要な広範囲のスクロール処理と、正確なポインティングを行う処理を両立させるような、広い範囲の画面表示を簡易に実現できる。また、本発明はアプリケーションプログラムの機能と一般的なメッセージにより実現可能であるため、オペレーティングシステム、ドライバまたはミドルウェア等の制約を低減させ、任意のデバイスを使用可能となる。
【００５７】
＜実施例２＞
上述の実施例１においては、複数のポインティングデバイスを用いてアプリケーションの異なる機能を操作する方法について述べた。本実施例においては、上述の機能を複数のポインティングデバイスに対して登録する方法について述べる。
【００５８】
図９は本実施例におけるアプリケーションプログラム４００の機能ブロック図の一部であり、使用するポインティングデバイスを登録する登録部の構成を示している。なお、前述の図５と同様の項目には同じ符号を付し、説明は省略する。
【００５９】
符号９００は登録動作制御部であり、デバイスの登録を行う機能の決定、および、デバイス検出部５０２から入力されたデバイスの識別情報を該機能と関連付けてデバイス記憶部５０３に記憶させる動作を行う。符号９０１は画面表示内容決定部であり、登録動作制御部９００から入力された今回の画面で登録を行う機能の情報に基づいて、画面表示内容を決定する。符号９０２はウィンドウ表示部であり、画面表示内容決定部９０１において決定された画面表示内容に基づいてウィンドウを表示させる。
【００６０】
図１０は本実施例におけるアプリケーションプログラム４００の動作フローを示すフローチャートであり、使用するポインティングデバイスを登録する処理のフローを示している。登録処理は、アプリケーションプログラムの初回動作時に自動的に開始させても良く、任意の時点で開始指示を受け付ける機能を設けても良い。その他、新しいポインティングデバイスが接続されたときなど、必要に応じて随時処理を開始すれば良い。
【００６１】
処理が開始されるとまず、ステップ１０００において登録処理の初期化が行われる。次いでステップ１００１において、デバイス登録を開始する指示が与えられるまで待つ。そしてステップ１００１においてデバイス登録を開始する指示が与えられると、ステップ１００２において、これから登録を開始することを通知するための開始ウィンドウの表示を行う。ステップ１００３では、前記開始ウィンドウ中の次の画面を表示するための操作指示として後述のボタンが押下されるのを待ち、該ボタンが押下されると処理をステップ１００４に移行させる。
【００６２】
ステップ１００４では次の画面で登録する機能の決定を行い、次いでステップ１００５において決定された該機能を示す情報に基づいて登録用画面の表示を行う。ステップ１００６では、該登録用画面内でポインティングデバイスの操作指示が入力されるのを待ち、該操作指示が入力された場合にはステップ１００７に移行する。ステップ１００７では、該登録用画面内で操作指示を入力した際に使用されたポインティングデバイスの識別情報の取得を行い、ステップ１００８において該デバイスの識別情報を前述の機能に関連づけて記憶する。ステップ１００９では、登録する全ての機能に対して登録が完了しているか否かの判定が行われ、未登録の機能が存在する場合には、処理をステップ１００４に戻し
て次の機能の登録処理を行う。一方、ステップ１００９において、全ての機能の登録が完了していると判定された場合には、処理はステップ１０１０に移行する。
【００６３】
ステップ１０１０では登録処理が完了したことを通知する終了ウィンドウの表示を行う。そして、ステップ１０１１において該終了ウィンドウを閉じるボタンが押下されるのを待ち、該ボタンが押下されると処理を終了させる。
【００６４】
次に、図１１を用いて本実施例の表示画面例、及び登録方法の例を示す。図１１（ａ）において、符号１１００はデバイスの登録開始ウィンドウであり、登録の方法や操作手順等をユーザーに通知するための表示を行う。符号１１０１はカーソルを示している。ユーザーが汎用的なポインティングデバイスを操作することにより、カーソル位置の移動やカーソル位置のクリック等の操作指示入力が行われる。符号１１０２は開始ウィンドウの表示を終了させ次の表示に移行させるためのボタンである。
【００６５】
カーソル１１０１を用いてボタン１１０２が押下されると、図１１（ｂ）に示すように、登録ウィンドウ表示が行われる。図１１（ｂ）の例では、符号１１０３は、スクロール操作を行う際に使用するデバイスを登録するウィンドウである。そして、スクロール操作を行う際に使用するポインティングデバイスを用いて当該ウィンドウ１１０３上のカーソル１１０４および１１０５を移動させることにより、ＯＳを介してアプリケーションプログラム４００に対して操作指示命令が送信される。アプリケーションプログラム４００は、操作指示命令を受信すると使用されたデバイス情報の取得を行い、前述の図１０のフローに従ってスクロール操作に対応させてデバイスを記憶する。
【００６６】
図１１（ｂ）の登録ウィンドウにおいて対応するデバイスが登録されると、図１１（ｃ）の表示が行われる。図１１（ｃ）の例では、符号１１０６は文字や記号の挿入など位置を指し示すことが必要な場合に使用されるポインティング操作に使用するデバイスを登録するウィンドウである。図１１（ｃ）においても、ポインティング操作を行う際に使用するポインティングデバイスを用いて当該ウィンドウ１１０６上のカーソル１１０７および１１０８を移動させることにより、ポインティング操作に対応させてデバイスを記憶する。
【００６７】
図１１（ｃ）の登録ウィンドウにおいて対応するデバイスが登録されると、図１１（ｄ）の終了ウィンドウ１１０９の表示が行われる。終了ウィンドウ１１０９では、登録が正常に終了したか否かと、登録された内容として機能とデバイスが対応付けられた形で表示される。そして、ボタン１１１０が押下されると、終了ウィンドウ１１０９を閉じて処理を終了させる。
なお、登録開始ウィンドウ１１００および終了ウィンドウ１３００の表示は必須ではなく、必要に応じて表示する、あるいは登録ウィンドウ１１０３、１１０６中に表示するなどでも良い。
【００６８】
図１１に示すウィンドウ１１００、１１０３、１１０６、１１０９は同一のウィンドウ内の表示内容を切り替えても良い。あるいは、各々のウィンドウを個別に作成し、次の画面を表示させる際にウィンドウを閉じるようにしても良い。
【００６９】
ここで、図１１（ｂ）、（ｃ）で説明した登録ウィンドウにおいてはカーソルの移動指示に応じてデバイスの登録を行う例を示したが、これに限るものではない。例えば、図１２は登録ウィンドウの他の例を示している。登録ウィンドウ１２００には手順を遷移させる入力指示を受け付けるためのボタン１２０２が設けられている。そして、カーソル１２０１を用いてボタン１２０２を押下することにより、アプリケーションプログラム４００に送信されるボタン押下の通知に応じて登録を行う。もちろん、図１２においてボタン１
２０２を設ける代わりに、登録ウィンドウ１２００内の任意の場所でクリック操作が行われたことを検出するようにしても良い。
【００７０】
さらに、図１１（ｂ）、（ｃ）および図１２で説明した登録ウィンドウにおいては、一つの登録ウィンドウ内で登録対象となる機能に対しては、一つの操作指示デバイスを記憶するようにした。しかし本発明はこれに限るものではない。
【００７１】
図１３は、一つの機能に対して複数の操作指示デバイスを登録可能な登録ウィンドウの例である。登録ウィンドウ１３００中には、複数の登録済みデバイス名が表示可能な登録デバイス名表示領域１３０２、および、手順を遷移させる入力指示を受け付けるためのボタン１３０３が設けられている。そして、マウスカーソル１３０１を登録ウィンドウ１３００内で移動させたり、登録ウィンドウ１３００内でクリック操作を行わせたりすることにより、操作指示を行ったデバイスを全て登録し、さらに登録デバイス名表示領域１３０２にデバイス名を表示する。登録する全てのデバイスによる操作が行われた後で、ボタン１３０３が押下されると、登録ウィンドウ１３０３を閉じて対象となる機能に対する登録処理を終了させて、次の画面に遷移する。
【００７２】
本実施例で説明した方法により機能に関連づけてデバイスを登録する場合、登録内容によっては操作の実行に不具合が生じる可能性がある。例えば、一つのデバイスを複数の機能に登録した結果、スクロール操作とポインティング操作の両方に一つのデバイスが割り振られる場合が挙げられる。このような登録を許可してしまうと、登録したデバイスを動かしたときに、スクロールしながらカーソルが移動することになってしまい、所望の位置に対してカーソル操作をさせることが困難になる恐れがある。そこで、同一のデバイスを登録できない機能の組み合わせを予め排他機能として記憶しておくことが好ましい。そして、この排他機能に対する同一デバイスの登録が行われようとした場合には、警告表示を出す、あるいは該デバイスの登録処理は実行しない、などの処理を行う。これにより行うべきでない登録を抑制できる。
【００７３】
なお、本実施例において説明したデバイス登録の方法は、実施例１で説明したアプリケーションプログラム４００の中で実行されるものとして説明したが、本発明はこれに限るものではない。例えば、アプリケーションプログラム４００が使用するデバイスを記憶するファイルやレジストリなどへ登録を行う別のアプリケーションプログラムとしても良い。アプリケーションの実行形式として異なる実行ファイルであっても、実質的に組み合わせて使用される場合には、本発明の適用範囲に含まれる。
【００７４】
以上説明したように本実施例によると、汎用的な複数のポインティングデバイスを用いて、アプリケーションプログラムの機能ごとに最適なデバイスを割り当てることが可能となる。
【符号の説明】
【００７５】
１００：コンピュータ，１０１：ディスプレイ，１０２：マウス，１０６：トラックボール，２００：ＣＰＵ
【図１】
2015166994.tif 000003
【図２】
2015166994.tif 000004
【図３】
2015166994.tif 000005
【図４】
2015166994.tif 000006
【図５】
2015166994.tif 000007
【図６】
2015166994.tif 000008
【図７】
2015166994.tif 000009
【図８】
2015166994.tif 000010
【図９】
2015166994.tif 000011
【図１０】
2015166994.tif 000012
【図１１】
2015166994.tif 000013
【図１２】
2015166994.tif 000014
【図１３】
2015166994.tif 000015