(57)【要約】      （修正有）【課題】タッチパネルの操作をしやすくするためのプログラム、装置、方法を提供する。【解決手段】制御プログラムは、（Ａ）スクロールモードへの切り替え指示を受け付けると、タッチパネル操作によるイベントの通知先を、表示画面に係るプログラムによる第１のプロセスから、制御プログラムによる第２のプロセスへ、イベントコントローラに切り替えさせ、（Ｂ）イベントコントローラから通知されたイベントがドラッグイベント又はフリックイベントである場合に、第２のプロセスにより、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に、上記画面のイメージを表示し、（Ｃ）イベントコントローラから通知されたイベントがタッチイベントである場合に、第２のプロセスにより、タッチ位置と上記移動ベクトルとに基づき補正したタッチイベントを、第１のプロセスに転送する処理を、コンピュータに実行させる。【選択図】図１０
2014197315.tif 000002
【特許請求の範囲】
【請求項１】
制御プログラムであって、
スクロールモードへの切り替え指示を受け付けると、タッチパネル操作によるイベントの通知先を、タッチパネルに表示されている画面に係るプログラムによる第１のプロセスから、前記制御プログラムによる第２のプロセスへ、イベントコントローラに切り替えさせ、
前記イベントコントローラから通知されたイベントがドラッグイベント又はフリックイベントである場合に、前記第２のプロセスにより、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に、前記画面のイメージを表示し、
前記イベントコントローラから通知されたイベントがタッチイベントである場合に、前記第２のプロセスにより、当該タッチイベントに含まれるタッチ位置を当該タッチ位置と前記移動ベクトルとに基づき補正したタッチイベントを、前記第１のプロセスに転送する
処理を、情報処理装置に実行させるための制御プログラム。
【請求項２】
更に、
イベントコントローラから通知されたイベントがタッチイベントである場合に、前記イベントの通知先を復旧する処理
を含む請求項１記載の制御プログラム。
【請求項３】
前記切り替え指示は、キー操作によるイベントである
請求項１又は２記載の制御プログラム。
【請求項４】
スクロールモードにおいてドラッグイベント又はフリックイベントが通知された場合に、タッチパネルに表示されている画面のイメージを、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に表示する表示部と、
前記スクロールモードにおいてタッチイベントが通知された場合に、当該タッチイベントに含まれるタッチ位置を当該タッチ位置と前記移動ベクトルとに基づき補正したタッチイベントを、前記画面に係るプログラムによるプロセスに処理させる制御部と
を有する情報処理装置。
【請求項５】
スクロールモードにおいてドラッグイベント又はフリックイベントが通知された場合に、タッチパネルに表示されている画面のイメージを、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に表示し、
前記スクロールモードにおいてタッチイベントが通知された場合に、当該タッチイベントに含まれるタッチ位置を当該タッチ位置と前記移動ベクトルとに基づき補正したタッチイベントについて、前記画面に係るプログラムで所定の処理を実行する
処理を情報処理装置が実行する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、タッチパネルのインターフェース技術に関する。
【背景技術】
【０００２】
スマートフォンの画面は大型化する傾向にある。大型の画面を採用するスマートフォンを片手で操作する場合には、指が届きずらい範囲が存在する。
【０００３】
図１に、携帯端末装置の表示例を示す。枠で囲まれた領域は、ディスプレイに表示された表示イメージ１０１を示している。表示イメージ１０１中の上側に位置する矩形は、アイコン等のソフトウェアボタン領域１０３を示している。スマートフォンを片手で持ち、その手の親指でタッチパネルを操作する場合、図１に示すように上の方にあるアイコン等をタッチすることは難しい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０６−００４２０８号公報
【特許文献２】特表２０１０−５１５９７８号公報
【特許文献３】特開２０１０−０３３４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一側面では、タッチパネルを操作しやすくすることを目的とする。
【課題を解決するための手段】
【０００６】
一態様の制御プログラムは、（Ａ）スクロールモードへの切り替え指示を受け付けると、タッチパネル操作によるイベントの通知先を、タッチパネルに表示されている画面に係るプログラムによる第１のプロセスから、制御プログラムによる第２のプロセスへ、イベントコントローラに切り替えさせ、（Ｂ）イベントコントローラから通知されたイベントがドラッグイベント又はフリックイベントである場合に、第２のプロセスにより、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に、上記画面のイメージを表示し、（Ｃ）イベントコントローラから通知されたイベントがタッチイベントである場合に、第２のプロセスにより、当該タッチイベントに含まれるタッチ位置を当該タッチ位置と上記移動ベクトルとに基づき補正したタッチイベントを、第１のプロセスに転送する処理を、コンピュータに実行させるものである。
【発明の効果】
【０００７】
一態様によれば、タッチパネルを操作しやすくなる。
【図面の簡単な説明】
【０００８】
【図１】図１は、携帯端末装置の表示例を示す図である。
【図２】図２は、携帯端末装置の操作例を示す図である。
【図３】図３は、携帯端末装置の操作例を示す図である。
【図４】図４は、携帯端末装置のハードウエア構成例を示す図である。
【図５】図５は、携帯端末装置のモジュール構成例を示す図である。
【図６】図６は、通常モード起動のシーケンス例を示す図である。
【図７】図７は、通常モードにおける描画動作のシーケンス例を示す図である。
【図８】図８は、通常モードにおけるタッチ動作のシーケンス例を示す図である。
【図９】図９は、スクロールコントロールクラスの構成例を示す図である。
【図１０】図１０は、スクロールコントロール処理フローの例を示す図である。
【図１１】図１１は、スクロールモード起動のシーケンス例を示す図である。
【図１２】図１２は、フレームバッファに格納されている画面イメージの例を示す図である。
【図１３】図１３は、イメージバッファに格納されている画面イメージの例を示す図である。
【図１４】図１４は、スクロールモードにおけるスクロール動作のシーケンス例を示す図である。
【図１５】図１５は、イメージの位置補正の概要を示す図である。
【図１６】図１６は、スクロールモードにおける描画動作のシーケンス例を示す図である。
【図１７】図１７は、スクロールモードにおけるタッチ動作のシーケンス例を示す図である。
【図１８】図１８は、タッチ位置補正の概要を示す図である。
【図１９】図１９は、スクロールモード解除のシーケンス例を示す図である。
【発明を実施するための形態】
【０００９】
本実施の形態では、例えば画面イメージを下に引き寄せ、画面イメージの上の方に位置するボタン等をタッチする操作を実現する。
【００１０】
まず、操作仕様例について説明する。図１のように表示イメージ１０１が表示された状態で、所定のキーを押下することにより、スクロールモードに移行させ、ドラッグ又はフリックにより下方向にスクロールさせる。
【００１１】
図２に、携帯端末装置の操作例を示す。表示イメージ１０１中の矢印は、ドラッグ又はフリックに基づく移動ベクトル２０１を示している。このように操作すると、図３に示すように、表示イメージ１０１が表示される。スクロールすることにより、ボタン１０３の位置が下の方に引き寄せられる。この状態で、利用者はボタン１０３にタッチする。表示イメージ１０１中の黒丸は、タッチ位置３０１を示している。ボタン１０３をタッチした場合、あるいは上述の所定のキーを放した場合に、スクロールモードは解除される。以上で、操作仕様例についての説明を終える。
【００１２】
次に、携帯端末装置のハードウエア構成について説明する。図４に、携帯端末装置のハードウエア構成例を示す。携帯端末装置４００は、プロセッサ４０１、記憶部４０３、アンテナ４１１、無線制御部４１３、オーディオ制御部４１５、スピーカ４１７、マイク４１９、ディスプレイ４２１、タッチパッド４２３及びキー群４２５を有している。
【００１３】
プロセッサ４０１は、モデムＣＰＵ（Central Processing Unit）とアプリケーションＣＰＵからなることもある。記憶部４０３は、例えば、ＲＯＭ（Read Only Memory）４０５とＲＡＭ（Random Access Memory）４０７とフラッシュメモリ４０９を有している。ＲＯＭ４０５は、例えば、アプリケーションなどのプログラムを格納している。ＲＡＭ４０７は、例えば、アプリケーションなどのプログラムや画面イメージなどのデータを展開する領域を含んでいる。フラッシュメモリ４０９は、例えば、ユーザデータを格納する。
【００１４】
タッチパッド４２３は、例えば、ディスプレイ４２１の表示面上に配置されたパネル状のセンサであり、ユーザ操作による指示を受け付ける。ディスプレイ４２１は、例えば、アプリケーションが表示させる各種画面を表示する。具体的には、液晶ディスプレイとタッチパッド４２３を一体としたタッチパネルとして用いられる。タッチパッド４２３は、位置入力装置の例である。キー群４２５の各キーは、筐体の一部に設けられている。正面、裏面、側面、上面或いは下面のいずれに設けてもよい。キー群４２５には、本実施の形態でスクロールモードに切り替える指示に用いるキーが含まれる。例えば右手で操作することを想定する場合には、所定キーを薬指あるいは中指で操作できるように左側面に設けるようにしてもよい。
【００１５】
アンテナ４１１は、例えば、セルラー方式、無線ＬＡＮ（Local Area Network）、近距離通信方式などの無線データを受信する。無線制御部４１３は、無線通信の制御を行う。無線通信の制御により、電話の音声通信やメールのデータ通信が行われる。
【００１６】
オーディオ制御部４１５は、音データに関するアナログ／デジタル変換とデジタル／アナログ変換を行う。スピーカ４１７は、アナログデータを音として出力する。マイク４１９は、音をアナログデータに変換する。
【００１７】
次に、携帯端末装置のモジュール構成について説明する。図５に、携帯端末装置のモジュール構成例を示す。携帯端末装置は、アプリケーションソフトウエア５０１、アプリケーション描画クラス５１１、スクロール描画クラス５１３、スクロールコントロールクラス５１５、イメージバッファ５１７、描画実行部５２１、イベントコントローラ５２３、フレームバッファ５３１、ディスプレイドライバ５３３、タッチドライバ５３５及びキードライバ５３７を有している。
【００１８】
アプリケーション描画クラス５１１、スクロール描画クラス５１３、スクロールコントロールクラス５１５及びイメージバッファ５１７は、フレームワークに含まれている。描画実行部５２１とイベントコントローラ５２３は、ライブラリに含まれている。フレームバッファ５３１、ディスプレイドライバ５３３、タッチドライバ５３５及びキードライバ５３７は、カーネルに含まれている。ディスプレイ４２１、タッチパッド４２３及びキー群４２５は、デバイスである。
【００１９】
アプリケーションソフトウエア５０１は、ディスプレイ４２１に表示させる画面イメージを生成するプログラムの例である。アプリケーションソフトウエア５０１は、画面イメージを表示するためにアプリケーション描画クラス５１１を用いる。アプリケーション描画クラス５１１は、アプリケーションソフトウエア５０１に対して画面データ表示のコマンド（描画関数）を提供している。アプリケーション描画クラス５１１は、所定のインターフェースに従って画面イメージデータ（以下、画面イメージという。）を描画実行部５２１に渡す。描画実行部５２１は、画面イメージをフレームバッファ５３１に格納する。ディスプレイドライバ５３３は、フレームバッファ５３１に格納された画面イメージをディスプレイ４２１に表示させる。
【００２０】
イベントコントローラ５２３は、タッチドライバ５３５からタッチパッド４２３に対する操作情報を取得し、タッチパッド操作に関するイベントを発生させる。タッチパッド操作に関するイベントは、例えば、タッチ、ドラッグあるいはフリックなどである。イベントコントローラ５２３は、更に、キードライバ５３７からキー群４２５に対する操作情報を取得し、キー操作に関するイベントを発生させる。キー操作に関するイベントは、例えば、キーダウンあるいはキーアップなどである。イベントコントローラ５２３は、予め設定されている通知先にイベントを通知する。通常モードでは、タッチドライバ５３５からのイベントをアプリケーションソフトウエア５０１に通知し、所定のキー操作に関するイベントをスクロールコントロールクラス５１５に通知するように設定されている。スクロールモードでは、タッチドライバ５３５からのイベントをスクロールコントロールクラス５１５に通知するように切り替える。
【００２１】
太線で示したスクロール描画クラス５１３とスクロールコントロールクラス５１５とイメージバッファ５１７は、本実施の形態におけるスクロールモードのために設けられている。スクロールコントロールクラス５１５は、アプリケーションソフトウエア５０１のプロセスとは別のプロセス内で実現される。
【００２２】
そのため、アプリケーションソフトウエア５０１側において本スクロールモードへの対応を行わなくて済む。
【００２３】
但し、スクロールコントロールクラス５１５は、アプリケーションソフトウエア５０１のプロセスと同じプロセス内で実現するようにしてもよい。
【００２４】
スクロールコントロールクラス５１５は、スクロールモードの動作を制御する。スクロール描画クラス５１３は、スクロールコントロールクラス５１５に対して画面データ表示のコマンド（描画関数）を提供している。スクロール描画クラス５１３は、所定のインターフェースに従って画面イメージを描画実行部５２１に渡す。スクロールコントロールクラス５１５は、一時的に画面イメージを退避させる際にイメージバッファ５１７を用いる。イメージバッファ５１７は、一時的に画面イメージを格納する。
【００２５】
続いて、携帯端末装置４００の動作について説明する。まず、通常モードにおける動作について説明する。図６に、通常モード起動のシーケンス例を示す。アプリケーションソフトウエア５０１は、起動すると（Ｓ６０１）、描画実行部５２１に描画領域を設定する（Ｓ６０３）。描画領域は、描画に利用するメモリ領域である。描画領域は、例えばＲＡＭ４０７に設けられる。設定された描画領域は、アプリケーション描画クラス５１１から描画実行部５２１に画面イメージを渡すためのインターフェースとなる。Ｓ６０３における描画領域の設定によって、描画実行部５２１はアプリケーション描画クラス５１１から画面イメージを取得するように動作するようになる。
【００２６】
アプリケーションソフトウエア５０１は、アプリケーション描画クラス５１１が用意するバッファに画面イメージを書き込み、アプリケーション描画クラス５１１が用意する描画関数をコールする（Ｓ６０５）。通常モード描画動作（Ｓ６０７）では、通常モードにおける描画動作を行なう。
【００２７】
図７に、通常モードにおける描画動作のシーケンス例を示す。描画実行部５２１は、アプリケーション描画クラス５１１が用意する画面取得関数をコールする（Ｓ７０１）。アプリケーション描画クラス５１１は、画面イメージを描画実行部５２１に渡す（Ｓ７０３）。描画実行部５２１は、渡された画面イメージをフレームバッファ５３１に書き込む（Ｓ７０５）。描画実行部５２１がディスプレイドライバ５３３に更新指示すると（Ｓ７０７）、ディスプレイドライバ５３３は、フレームバッファ５３１に格納されている画面イメージをディスプレイ４２１に表示させる（Ｓ７０９）。通常モードにおいては、上述の描画動作を繰り返す。このようにして、アプリケーションソフトウエア５０１により生成された画面イメージがディスプレイ４２１に表示される。
【００２８】
続いて、通常モードにおけるタッチ動作について説明する。図８に、通常モードにおけるタッチ動作のシーケンス例を示す。イベントコントローラ５２３は、タッチドライバ５３５からイベントを取得する動作を行う（Ｓ８０１）。イベントコントローラ５２３が、タッチドライバ５３５からタッチイベントを取得すると（Ｓ８０３）、イベントコントローラ５２３は、アプリケーションソフトウエア５０１に当該イベントを通知する（Ｓ８０５）。アプリケーションソフトウエア５０１は、イベントに応じた処理を行なう。当該処理の中で、画面イメージを更新する場合には、アプリケーションソフトウエア５０１は、画面イメージを生成し、アプリケーション描画クラス５１１が用意するバッファに画面イメージを書き込み、アプリケーション描画クラス５１１が用意する描画関数をコールする（Ｓ８０７）。そして、上述の通常モード描画動作（Ｓ６０７）によって更新された画面イメージが表示される。
【００２９】
以上で通常モードにおける動作の説明を終える。続いて、スクロールモードにおける動作について説明する。
【００３０】
図９に、前述のスクロールコントロールクラス５１５の構成例を示す。スクロールコントロールクラス５１５は、受付部９０１、切替部９０３、表示部９０５、転送部９０７及び復旧部９０９を有している。受付部９０１は、主に、イベントコントローラ５２３からイベントを受け付ける。切替部９０３は、主に、描画領域とイベント通知先を切り替える。表示部９０５は、主に、スクロールによる表示を行なう。転送部９０７は、主に、タッチイベントを補正して、アプリケーションソフトウエア５０１に転送する。復旧部９０９は、主に、描画領域とイベント通知先を復旧させる。
【００３１】
続いて、スクロールコントロールクラス５１５による処理の概要を説明する。図１０に、スクロールコントロール処理フローの例を示す。受付部９０１は、所定のキーについてのキーダウンイベントを待って受け付ける（Ｓ１００１）。所定のキーについてのキーダウンイベントを受け付けると、切替部９０３は、切替処理を行なう（Ｓ１００３）。
【００３２】
Ｓ１００１とＳ１００３の処理について、図１１に示したスクロールモード起動のシーケンス例を用いて説明する。イベントコントローラ５２３は、キードライバ５３７からイベントを取得する動作を行なう（Ｓ１１０１）。イベントコントローラ５２３は、キードライバ５３７から所定のキーについてのキーイベントを取得すると（Ｓ１１０３）、スクロールコントロールクラス５１５に当該キーイベントを通知する（Ｓ１１０５）。イベントコントローラ５２３は、所定のキーについてのキーイベントについて、スクロールコントロールクラス５１５に通知するように予め設定されている。
【００３３】
スクロールコントロールクラス５１５の受付部９０１は、キーイベントを受け付け、キーイベントがキーダウンであると判定した場合に、以下の処理を行なう。この処理は、図１０に示したキーダウン受付待ち（Ｓ１００１）に相当する。
【００３４】
スクロールコントロールクラス５１５は、現在表示している画面イメージを一時退避するように動作する。そのため、スクロールコントロールクラス５１５の切替部９０３は、描画実行部５２１に画面イメージを要求する（Ｓ１１０７）。描画実行部５２１は、フレームバッファ５３１に格納されている画面イメージを読み出し（Ｓ１１０９）、スクロールコントロールクラス５１５に転送する（Ｓ１１１１）。
【００３５】
図１２に、フレームバッファ５３１に格納されている画面イメージ１２０１の例を示す。画面イメージ１２０１は、図１に示した表示イメージ１０１として表示された元のデータである。
【００３６】
図１１に示した処理についての説明に戻って、スクロールコントロールクラス５１５の切替部９０３は、転送された画面イメージをイメージバッファ５１７に格納する（Ｓ１１１３）。
【００３７】
図１３に、イメージバッファ５１７に格納されている画面イメージ１３０１の例を示す。画面イメージ１３０１は、図１２に示した画面イメージ１２０１と同じである。
【００３８】
図１１に示した処理についての説明に戻って、スクロールコントロールクラス５１５の切替部９０３は、描画実行部５２１に対して描画領域の切替を行なう（Ｓ１１１５）。図６のＳ６０３でアプリケーションソフトウエア５０１が設定した描画領域に代えて、スクロールコントロールクラス５１５で新たな描画領域を設定する。これによって、描画実行部５２１はスクロール描画クラス５１３から画面イメージを取得するように動作するようになる。尚、このとき、スクロールコントロールクラス５１５は、元の描画領域を示す情報を描画実行部５２１から取得し、一時的に保持する。但し、他の手段により元の描画領域を特定する場合には、この一時保持の処理を省略してもよい。スクロールコントロールクラス５１５は描画領域に表示する画面イメージの左上座標を表示開始位置座標として保持しており、その値を描画領域の左上座標で初期化する。
【００３９】
スクロールコントロールクラス５１５の切替部９０３は、イベントコントローラ５２３に対してイベント通知先の切替を行なう（Ｓ１１１７）。具体的には、タッチドライバ５３５からのイベントがスクロールコントロールクラス５１５に通知されるように切り替える。尚、このとき、スクロールコントロールクラス５１５は元の通知先をイベントコントローラ５２３から取得し、一時的に保持する。但し、他の手段により元の通知先を特定する場合には、この一時保持の処理を省略してもよい。以上で、スクロールモード起動のシーケンスについての説明を終える。
【００４０】
図１０に示した処理についての説明に戻って、切替処理（Ｓ１００３）を終えると、受付部９０１は、イベントの受付を待つ（Ｓ１００５）。イベントを受け付けると、表示部９０５は、受け付けたイベントがドラッグであるか否かを判定する（Ｓ１００７）。受け付けたイベントがドラッグであると判定した場合には、表示部９０５は、表示処理を行なう（Ｓ１００９）。
【００４１】
Ｓ１００７とＳ１００９の処理について、図１４に示したスクロールモードにおけるスクロール動作のシーケンス例を用いて説明する。イベントコントローラ５２３は、タッチドライバ５３５からイベントを取得する動作を行なう（Ｓ１４０１）。イベントコントローラ５２３は、タッチドライバ５３５からドラッグイベントを取得すると（Ｓ１４０３）、スクロールコントロールクラス５１５に当該イベントを通知する（Ｓ１４０５）。図１１に示したＳ１１１７で通知先が変更されているので、ドラッグイベントはスクロールコントロールクラス５１５に通知される。スクロールコントロールクラス５１５の受付部９０１は、ドラッグイベントを受け付ける。この処理は、図１０に示したイベント受付待ち（Ｓ１００５）に相当する。受付部９０１が受け付けたイベントがドラッグであると判定した場合に、以下の処理を行なう（Ｓ１００７）。スクロールコントロールクラス５１５の表示部９０５は、イメージバッファ５１７から画面イメージを読み出し（Ｓ１４０７）、イメージに対する位置を補正する（Ｓ１４０９）。
【００４２】
図１５を用いて、イメージの位置補正の概要を説明する。表示開始位置の座標（ｓｘ＿２，ｓｙ＿２）に、移動ベクトル（ｄｘ，ｄｙ）を加えて、新しい表示開始位置の座標（ｓｘ＿３，ｓｙ＿３）を求める。つまり、ｓｘ＿３＝ｓｘ＿２＋ｄｘと、ｓｙ＿３＝ｓｙ＿２＋ｄｙとの式に従って表示開始位置の座標を算出する。表示開始位置の座標（ｓｘ＿２，ｓｙ＿２）は、スクロールモードに切り替わる際に左上端の座標（ｓｘ＿１，ｓｙ＿１）に初期化されている。図１５では、矢印で移動ベクトル１５０１を示している。移動ベクトル１５０１は、図２に示した移動ベクトル２０１に相当する。
【００４３】
図１４に示した処理についての説明に戻って、スクロールコントロールクラス５１５の表示部９０５は、画面イメージを生成し、スクロール描画クラス５１３が用意するバッファに画面イメージを書き込み、スクロール描画クラス５１３が用意する描画関数をコールする（Ｓ１４１１）。スクロールモード描画動作（Ｓ１４１３）では、スクロールモードにおける描画動作を行う。
【００４４】
図１６に、スクロールモードにおける描画動作のシーケンス例を示す。描画実行部５２１は、スクロール描画クラス５１３が用意する画面取得関数をコールする（Ｓ１６０１）。スクロール描画クラス５１３は、描画実行部５２１に画面イメージを渡す（Ｓ１６０３）。このとき、スクロール描画クラス５１３は、左上端が表示開始位置となるように全体を移動させた画面イメージを渡す。描画実行部５２１は、図７に示したＳ７０５の処理と同様に画面イメージをフレームバッファ５３１に書き込む（Ｓ１６０５）。描画実行部５２１は、図７に示したＳ７０７の処理と同様にディスプレイドライバ５３３に更新を指示する（Ｓ１６０７）。ディスプレイドライバ５３３は、図７に示したＳ７０９の処理と同様にフレームバッファ５３１に格納されている画面イメージをディスプレイ４２１に表示させる（Ｓ１６０９）。このようにして、図３に示した画面イメージが表示される。スクロールモードにおいては、上述の描画動作を繰り返す。
【００４５】
以上で、スクロールモード起動のシーケンスとスクロールモード描画動作のシーケンスについての説明を終える。
【００４６】
図１０に示した処理についての説明に戻って、表示処理（Ｓ１００９）を終えると、Ｓ１００５の処理に戻る。尚、表示処理が複数回繰り返された場合には、その都度発生した移動ベクトルを合算する。
【００４７】
Ｓ１００７でイベントがドラッグでないと判定した場合には、転送部９０７は、Ｓ１００５で受け付けたイベントがタッチであるか否かを判定する（Ｓ１０１１）。Ｓ１００５で受け付けたイベントがタッチであると判定した場合には、転送部９０７は、転送処理を行なう（Ｓ１０１３）。
【００４８】
Ｓ１０１１とＳ１０１３の処理について、図１７に示したスクロールモードにおけるタッチ動作のシーケンス例を用いて説明する。イベントコントローラ５２３は、タッチドライバ５３５からイベントを取得する動作を行なう（Ｓ１７０１）。イベントコントローラ５２３は、タッチドライバ５３５からタッチイベントを取得すると（Ｓ１７０３）、スクロールコントロールクラス５１５に当該イベントを通知する（Ｓ１７０５）。Ｓ１１１７で通知先が変更されているので、タッチイベントはスクロールコントロールクラス５１５に通知される。スクロールコントロールクラス５１５の受付部９０１は、タッチイベントを受け付ける。この処理は、図１０に示したイベント受付待ち（Ｓ１００５）に相当する。受付部９０１が受け付けたイベントがタッチであると判定した場合に、以下の処理を行なう（Ｓ１０１１）。
【００４９】
スクロールモードから通常モードに切り替えるために、スクロールコントロールクラス５１５の転送部９０７は、描画実行部５２１に対して描画領域の切替を行なう（Ｓ１７０７）。具体的には、元の描画領域に戻す。これによりスクロールモード描画動作は終了し、通常モード描画動作が開始する。
【００５０】
スクロールコントロールクラス５１５の転送部９０７は、イベントコントローラ５２３に対してイベント通知先の切替を行なう（Ｓ１７０９）。具体的には、タッチドライバ５３５からのイベントが元の通知先に通知されるように設定する。
【００５１】
このようにすれば、タッチ操作を行った後にスクロールモードを終了させるための指示が不要となる。自動的にスクロールモードを解除することによって、操作が簡単になる。
【００５２】
スクロールコントロールクラス５１５の転送部９０７は、タッチ位置の補正を行なう（Ｓ１７１１）。
【００５３】
図１８を用いて、タッチ位置１８０１の補正の概要を説明する。タッチイベントに含まれるタッチ位置（ｔｘ＿１，ｔｙ＿１）から移動ベクトル（ｄｘ，ｄｙ）を減じて、元画面に対応するタッチ位置の座標（ｔｘ＿２，ｔｙ＿２）を求める。つまり、ｔｘ＿２＝ｔｘ＿１−ｄｘと、ｔｙ＿２＝ｔｙ＿１−ｄｙとの式に従って、元画面に対応するタッチ位置１８０１の座標を算出する。図１８に示した矢印は、移動ベクトルの逆ベクトル１８０３を示している。移動ベクトルの逆ベクトル１８０３は、図２に示した移動ベクトル２０１と反対方向であり、移動ベクトル２０１と同じ大きさである。この例では、移動ベクトルの逆ベクトル１８０３は、元画面のボタン１０３の位置を指している。
【００５４】
図１７に示した処理についての説明に戻って、スクロールコントロールクラス５１５の転送部９０７は、アプリケーションソフトウエア５０１にタッチ位置を補正したタッチイベントを通知する（Ｓ１７１３）。アプリケーションソフトウエア５０１は、タッチイベントに応じた処理を行なう。当該処理の中で、画面データを更新する場合には、アプリケーションソフトウエア５０１は、新たな画面イメージを生成し、アプリケーション描画クラス５１１が用意するバッファに画面イメージを書き込み、アプリケーション描画クラス５１１が用意する描画関数をコールする（Ｓ１７１５）。そして、前述の通常モード描画動作により新しい画面イメージが表示される（Ｓ６０７）。以上で、スクロールモードにおけるタッチ動作のシーケンスについての説明を終える
【００５５】
図１０に示した処理についての説明に戻って、転送処理（Ｓ１０１３）を終えると、Ｓ１００１の処理に戻る。
【００５６】
Ｓ１０１１でイベントがタッチでないと判定した場合には、復旧部９０９は、Ｓ１００５で受け付けたイベントが所定のキーについてのキーアップであるか否かを判定する（Ｓ１０１５）。所定のキーについてのキーアップであると判定した場合には、復旧部９０９は、復旧処理を行なう（Ｓ１０１７）。
【００５７】
スクロールモードから通常モードに切り替えるために、スクロールコントロールクラス５１５の復旧部９０９は、図１９に示したように、描画実行部５２１に対して描画領域の切替を行なう（Ｓ１９０７）。具体的には、元の描画領域に戻す。
【００５８】
スクロールコントロールクラス５１５の復旧部９０９は、イベントコントローラ５２３に対してイベント通知先の切替を行なう（Ｓ１９０９）。具体的には、タッチドライバ５３５からのイベントが元の通知先に通知されるように設定する。これ以降は、通常モード描画動作が行なわれる（Ｓ６０７）。以上で、スクロールモード解除のシーケンスについての説明を終える。
【００５９】
図１０に示した処理についての説明に戻って、復旧処理（Ｓ１０１７）を終えると、Ｓ１００１の処理に戻る。Ｓ１０１５でイベントが所定のキーについてのキーアップでないと判定した場合には、Ｓ１００５の処理に戻る。この場合は、スクロールモードが継続する。
【００６０】
以上、ドラッグによるスクロールの例を示したが、フリックによるスクロールの場合も同様に適用することができる。その場合には、ドラッグイベントをフリックイベントに置き換えて処理する。また、ドラッグによるスクロールとフリックによるスクロールの両方に対応するようにしてもよい。
【００６１】
上述の例では、所定のキーについてのキーダウンによってスクロールモードを起動し、所定のキーについてのキーアップによってスクロールモードを解除する例を示したが、トグル式のキーイベントを用いてもよい。例えば、一回目のキー押下によりスクロールモードを起動し、二回目のキー押下によりスクロールモードを解除するようにする。
【００６２】
また、画面イメージに含まれる所定のアイコンをタッチした場合に、スクロールモードを起動するようにしてもよい。また、画面イメージに含まれる所定のアイコンをタッチした場合に、スクロールモードを解除するようにしてもよい。
【００６３】
情報処理装置の例として携帯端末装置の例を示したが、本実施の形態は、携帯しない情報処理装置に適用してもよい。
【００６４】
、本実施の形態では、画面のイメージをスクロールさせた後に、画面のタッチ操作をすることができる。従って、タッチしずらい位置に配置されているアイコン等をタッチすることが容易になる。
【００６５】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上述の機能ブロック構成は実際のプログラムモジュール構成に対応しない場合もある。
【００６６】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００６７】
以上述べた実施の形態をまとめると、以下のようになる。
【００６８】
本実施の形態に係る制御プログラムは、（Ａ）スクロールモードへの切り替え指示を受け付けると、タッチパネル操作によるイベントの通知先を、タッチパネルに表示されている画面に係るプログラムによる第１のプロセスから、制御プログラムによる第２のプロセスへ、イベントコントローラに切り替えさせ、（Ｂ）イベントコントローラから通知されたイベントがドラッグイベント又はフリックイベントである場合に、第２のプロセスにより、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に、上記画面のイメージを表示し、（Ｃ）イベントコントローラから通知されたイベントがタッチイベントである場合に、第２のプロセスにより、当該タッチイベントに含まれるタッチ位置を当該タッチ位置と上記移動ベクトルとに基づき補正したタッチイベントを、第１のプロセスに転送する処理を、コンピュータに実行させるものである。
【００６９】
このようにすれば、画面のイメージをスクロールさせた後に、画面のタッチ操作をすることができる。従って、タッチしずらい位置に配置されているアイコン等をタッチすることが容易になる。
【００７０】
また、イベントの通知先をイベントコントローラに切り替えさせ、更に補正したタッチイベントをアプリケーションソフトウエア（タッチパネルに表示されている画面に係るプログラムの例）に転送するので、アプリケーションソフトウエア側において本スクロールモードへの対応を行わなくて済む。
【００７１】
また、イベントコントローラから通知されたイベントがタッチイベントである場合に、イベントの通知先を復旧する処理を含むようにしてもよい。
【００７２】
このようにすれば、タッチ操作を行った後に、スクロールモードを終了させるための指示が不要となる。自動的にスクロールモードを解除することによって、操作が簡単になる。
【００７３】
上記切り替え指示は、キー操作によるイベントであってもよい。
【００７４】
このようにすれば、スクロールモードへの切り替え用のアイコン等を画面内に設けなくて済む。従って、画面レイアウトに関して特別の対応がいらない。
【００７５】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【００７６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７７】
（付記１）
制御プログラムであって、
スクロールモードへの切り替え指示を受け付けると、タッチパネル操作によるイベントの通知先を、タッチパネルに表示されている画面に係るプログラムによる第１のプロセスから、前記制御プログラムによる第２のプロセスへ、イベントコントローラに切り替えさせ、
前記イベントコントローラから通知されたイベントがドラッグイベント又はフリックイベントである場合に、前記第２のプロセスにより、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に、前記画面のイメージを表示し、
前記イベントコントローラから通知されたイベントがタッチイベントである場合に、前記第２のプロセスにより、当該タッチイベントに含まれるタッチ位置を当該タッチ位置と前記移動ベクトルとに基づき補正したタッチイベントを、前記第１のプロセスに転送する
処理を、情報処理装置に実行させるための制御プログラム。
【００７８】
（付記２）
更に、
イベントコントローラから通知されたイベントがタッチイベントである場合に、前記イベントの通知先を復旧する処理
を含む付記１記載の制御プログラム。
【００７９】
（付記３）
前記切り替え指示は、キー操作によるイベントである
付記１又は２記載の制御プログラム。
【００８０】
（付記４）
スクロールモードにおいてドラッグイベント又はフリックイベントが通知された場合に、タッチパネルに表示されている画面のイメージを、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に表示する表示部と、
前記スクロールモードにおいてタッチイベントが通知された場合に、当該タッチイベントに含まれるタッチ位置を当該タッチ位置と前記移動ベクトルとに基づき補正したタッチイベントを、前記画面に係るプログラムによるプロセスに処理させる制御部と
を有する情報処理装置。
【００８１】
（付記５）
スクロールモードにおいてドラッグイベント又はフリックイベントが通知された場合に、タッチパネルに表示されている画面のイメージを、元の表示位置にドラッグ又はフリックに基づく移動ベクトルを加えた位置に表示し、
前記スクロールモードにおいてタッチイベントが通知された場合に、当該タッチイベントに含まれるタッチ位置を当該タッチ位置と前記移動ベクトルとに基づき補正したタッチイベントについて、前記画面に係るプログラムで所定の処理を実行する
処理を情報処理装置が実行する制御方法。
【符号の説明】
【００８２】
１０１  表示イメージ    １０３  ボタン
２０１  移動ベクトル    ３０１  タッチ位置
４００  携帯端末装置    ４０１  プロセッサ
４０３  記憶部    ４０５  ＲＯＭ
４０７  ＲＡＭ    ４０９  フラッシュメモリ
４１１  アンテナ    ４１３  無線制御部
４１５  オーディオ制御部    ４１７  スピーカ
４１９  マイク    ４２１  ディスプレイ
４２３  タッチパッド    ４２５  キー群
５０１  アプリケーションソフトウエア    ５１１  アプリケーション描画クラス
５１３  スクロール描画クラス    ５１５  スクロールコントロールクラス
５１７  イメージバッファ    ５２１  描画実行部
５２３  イベントコントローラ    ５３１  フレームバッファ
５３３  ディスプレイドライバ    ５３５  タッチドライバ
５３７  キードライバ    ９０１  受付部
９０３  切替部    ９０５  表示部
９０７  転送部    ９０９  復旧部
１２０１  画面イメージ    １３０１  画面イメージ
１５０１  移動ベクトル    １８０１  タッチ位置
１８０３  移動ベクトルの逆ベクトル
【図１】
2014197315.tif 000003
【図２】
2014197315.tif 000004
【図３】
2014197315.tif 000005
【図４】
2014197315.tif 000006
【図５】
2014197315.tif 000007
【図６】
2014197315.tif 000008
【図７】
2014197315.tif 000009
【図８】
2014197315.tif 000010
【図９】
2014197315.tif 000011
【図１０】
2014197315.tif 000012
【図１１】
2014197315.tif 000013
【図１２】
2014197315.tif 000014
【図１３】
2014197315.tif 000015
【図１４】
2014197315.tif 000016
【図１５】
2014197315.tif 000017
【図１６】
2014197315.tif 000018
【図１７】
2014197315.tif 000019
【図１８】
2014197315.tif 000020
【図１９】
2014197315.tif 000021