(57)【特許請求の範囲】
【請求項１】
タッチスクリーンディスプレイと、
複数のキーを含む仮想キーボードに対応する画像の前記タッチスクリーンディスプレイへの表示を制御する表示制御手段と、
前記タッチスクリーンディスプレイ上の、前記仮想キーボードに含まれる複数のキーのうちの第１キーの表示領域への接触が検出される期間が閾値未満である場合に、前記第１キーに対応するコードを入力する処理を実行する処理手段とを具備し、
前記処理手段は、
前記第１キーの表示領域への接触が検出される期間が閾値以上である場合に、前記第１キーに対応するコードを入力する処理を実行しないことを特徴とする電子機器。
【請求項２】
前記処理手段は、
前記第１キーの表示領域への接触を検出し、前記第１キーの表示領域への接触が維持されている間における前記タッチスクリーンディスプレイ上の、前記仮想キーボードに含まれる前記第１キーとは異なる第２キーの表示領域への接触を検出し、
前記第１キーまたは前記第２キーの一方のキーの表示領域への接触が解除された場合、前記一方のキーの表示領域への接触が検出される期間が閾値未満である場合に前記一方のキーに対応するコードを入力する処理を実行し、前記一方のキーの表示領域への接触が検出される期間が閾値以上である場合に前記一方のキーに対応するコードを入力する処理を実行しない請求項１記載の電子機器。
【請求項３】
前記複数のキーはホームキーポジションの識別に使用される２つの特定のキーを含み、前記第１キーが前記２つの特定のキーの一つである場合、前記ホームキーポジションに対応する位置が接触されたこと示す通知を発生する第１のフィードバック制御手段をさらに具備する請求項１記載の電子機器。
【請求項４】
前記第１キーの表示領域への接触が検出される期間が閾値未満である場合、前記入力する処理が実行されたことを示す通知を発生する第２のフィードバック制御手段をさらに具備する請求項１または３記載の電子機器。
【請求項５】
前記第２のフィードバック制御手段は、前記第１キーの表示領域への接触が検出される期間が閾値以上である場合、前記入力する処理を実行しないことを示す通知を発生する請求項４記載の電子機器。
【請求項６】
前記電子機器に加わる衝撃度を検知するセンサをさらに具備し、
前記処理手段は、前記センサによって検知された衝撃度が第１閾値よりも大きいか否かをさらに判定し、前記衝撃度が前記第１閾値よりも大きくない場合、前記入力する処理を実行しない請求項１記載の電子機器。
【請求項７】
前記処理手段は、前記第１キーの表示領域の接触圧力が第２閾値よりも大きくない場合、前記入力する処理を実行しない請求項１または６記載の電子機器。
【請求項８】
外部機器と通信するための通信手段と、
前記第１キーに対応するコードを前記通信手段を介して前記外部機器に送信する送信手段とをさらに具備する請求項１記載の電子機器。
【請求項９】
前記タッチスクリーンディスプレイ上の２つの位置が接触されたことに応答して、前記２つの位置間の距離が閾距離よりも短いか否かを判定し、前記２つの位置間の距離が前記閾距離よりも短い場合、前記処理手段の動作モードを、前記仮想キーボードに対するユーザ操作に応じてコードを入力するモードから、前記タッチスクリーンディスプレイ上の接触位置の移動に応じて、前記接触位置の移動の方向および距離を示す相対座標データを入力するマウスモードに切り替えるモード切り替え手段をさらに具備することを特徴とする請求項１または８記載の電子機器。
【請求項１０】
タッチスクリーンディスプレイと接続可能な電子機器に適用される入力方法であって、
複数のキーを含む仮想キーボードに対応する画像の前記タッチスクリーンディスプレイへの表示を制御し、
前記タッチスクリーンディスプレイ上の、前記仮想キーボードに含まれる複数のキーのうちの第１キーの表示領域への接触が検出される期間が閾値未満である場合に、前記第１キーに対応するコードを入力する処理を実行し、
前記第１キーの表示領域への接触が検出される期間が閾値以上である場合に、前記第１キーに対応するコードを入力する処理を実行しない、入力方法。
【請求項１１】
タッチスクリーンディスプレイと接続可能なコンピュータに、
複数のキーを含む仮想キーボードに対応する画像の前記タッチスクリーンディスプレイへの表示を制御する手順と、
前記タッチスクリーンディスプレイ上の、前記仮想キーボードに含まれる複数のキーのうちの第１キーの表示領域への接触が検出される期間が閾値未満である場合に、前記第１キーに対応するコードを入力する処理を実行する手順とを実行させ、前記第１キーの表示領域への接触が検出される期間が閾値以上である場合に、前記第１キーに対応するコードを入力する処理を実行しない、プログラム。
【請求項１２】
前記入力する処理を実行する手順は、
前記第１キーの表示領域への接触を検出し、前記第１キーの表示領域への接触が維持されている間における前記タッチスクリーンディスプレイ上の、前記仮想キーボードに含まれる前記第１キーとは異なる第２キーの表示領域への接触を検出する手順と、
前記第１キーまたは前記第２キーの一方のキーの表示領域への接触が解除された場合、前記一方のキーの表示領域への接触が検出される期間が閾値未満である場合に前記一方のキーに対応するコードを入力する処理を実行する手順とを前記コンピュータに実行させ、前記一方のキーの表示領域への接触が検出される期間が閾値以上である場合に前記一方のキーに対応するコードを入力する処理を実行しない請求項１１記載のプログラム。
【請求項１３】
前記複数のキーはホームキーポジションの識別に使用される２つの特定のキーを含み、前記第１キーが前記２つの特定のキーの一つである場合、前記ホームキーポジションに対応する位置が接触されたこと示す通知を発生する手順をさらに前記コンピュータに実行させる請求項１１記載のプログラム。
【請求項１４】
前記第１キーの表示領域への接触が検出される期間が閾値未満である場合、前記入力する処理が実行されたことを示す通知を発生する手順をさらに前記コンピュータに実行させる請求項１１または１３記載のプログラム。
【請求項１５】
前記第１キーの表示領域への接触が検出される期間が閾値以上である場合、前記入力する処理を実行しないことを示す通知を発生する手順をさらに前記コンピュータに実行させる請求項１４記載のプログラム。
【請求項１６】
前記入力する処理を実行する手順は、
センサによって検知される前記電子機器に加わる衝撃度が第１閾値よりも大きいか否かを判定する手順をさらに前記コンピュータに実行させ、前記衝撃度が前記第１閾値よりも大きくない場合、前記入力する処理を実行しない請求項１１記載のプログラム。
【請求項１７】
前記入力する処理を実行する手順は、
前記第１キーの表示領域の接触圧力が第２閾値よりも大きくない場合、前記入力する処理を実行しない請求項１１または１６記載のプログラム。
【請求項１８】
前記第１キーに対応するコードを通信手段を介して外部機器に送信する手順をさらに前記コンピュータに実行させる請求項１１記載のプログラム。
【請求項１９】
前記タッチスクリーンディスプレイ上の２つの位置が接触されたことに応答して、前記２つの位置間の距離が閾距離よりも短いか否かを判定する手順と、
前記２つの位置間の距離が前記閾距離よりも短い場合、前記処理手段の動作モードを、前記仮想キーボードに対するユーザ操作に応じてコードを入力するモードから、前記タッチスクリーンディスプレイ上の接触位置の移動に応じて、前記接触位置の移動の方向および距離を示す相対座標データを入力するマウスモードに切り替える手順とをさらに前記コンピュータに実行させる請求項１１または１８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、タッチパネルディスプレイを備えた電子機器および同電子機器に適用される入力方法に関する。
【背景技術】
【０００２】
近年、ノートブック型等の様々な携帯型パーソナルコンピュータが開発されている。この種の携帯型パーソナルコンピュータの多くは、入力デバイスとして機能するキーボードを備えている。また、最近では、ユーザによるキー入力を支援するために、タッチスクリーンディスプレイに表示される仮想キーボード（ソフトウェアキーボード）を用いるシステムも開発されている。
【０００３】
ユーザは、仮想キーボード上の任意のキーを指又はペンでタッチすることにより、このキーに対応するキーコードを入力することができる。
【０００４】
また、タッチスクリーンディスプレイまたはタッチパッドを備えた電子機器の中には、接触フィードバック機能を有するものもある。接触フィードバック機能は、タッチスクリーンディスプレイまたはタッチパッド上にユーザの指などが接触された時に、ユーザに対してハードウェアボタンを操作した時の同様の感触を与えるための機能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３１７０４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、最近では、ボタン、メニュー、ドキュメント、画像といった様々なグラフィックコンテンツを視認しやすくするために、比較的大きなサイズのタッチスクリーンディスプレイを備えた電子機器も開発されている。このような電子機器においては、仮想キーボードを両手で操作できるような大きなサイズでタッチスクリーンディスプレイ上に表示することができる。
【０００７】
ハードウェアキーボードを使用する場合においては、ユーザは、両手の指をホームキーポジションに対応する幾つかのキー上に置いた状態で、タイプ入力操作を行うことができる。例えば、ホームキーポジションに対応する幾つかのキー上に指を触れておくことにより、いわゆるタッチタイプ操作（キーボードを見ずにタイプ入力する操作）を行うことができる。
【０００８】
しかし、通常の仮想キーボードにおいては、ユーザの指がタッチスクリーンディスプレイ上のある位置に触れた時点で、その触れた位置に対応するキーのキーコードが入力される。したがって、ユーザは、ハードウェアキーボードの場合とは異なり、何本かの指を幾つかのキー上に置いて手を休ませたり、あるいはタッチタイプ操作を行うことはできない。ユーザは、両手の指をタッチスクリーンディスプレイの上方に浮かせておき、その状態で、目的のキーを指でタッチすることが必要となる。このため、ユーザの手にかかる負担が大きくなる場合がある。
【０００９】
あるキーから指が離れたことをトリガに、そのキーのキーコードを入力する仮想キーボードもある。しかし、この種の仮想キーボードにおいても、１以上の指をキー上に置いて休ませることは難しい。ユーザが、目的のキーをタッチするために、あるキー上に置いてある指をこのキーから離した瞬間に、指が離されたキーのキーコードが入力されてしまう可能性があるからである。
【００１０】
本発明は、タッチスクリーンディスプレイを用いて容易にキー入力を行うことができる電子機器および入力方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
実施形態によれば、電子機器は、タッチスクリーンディスプレイと、表示制御手段と、処理手段とを具備する。前記表示制御手段は、複数のキーを含む仮想キーボードに対応する画像の前記タッチスクリーンディスプレイへの表示を制御する。前記処理手段は、前記タッチスクリーンディスプレイ上の、前記仮想キーボードに含まれる複数のキーのうちの第１キーの表示領域への接触が検出される期間が閾値未満である場合に、前記第１キーに対応するコードを入力する処理を実行する。前記処理手段は、前記第１キーの表示領域への接触が検出される期間が閾値以上である場合に、前記第１キーに対応するコードを入力する処理を実行しない。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る電子機器の外観を示す斜視図。
【図２】同実施形態の電子機器のタッチスクリーンディスプレイに表示される仮想キーボードを示す図。
【図３】同実施形態の電子機器のシステム構成を示すブロック図。
【図４】同実施形態の電子機器によって実行される入力制御プログラムの構成を示すブロック図。
【図５】同実施形態の電子機器によって実行される、仮想キーボードを制御するためのキーボード処理の手順を説明するフローチャート。
【図６】図５のキーボード処理において実行される入力判定処理の手順を説明するフローチャート。
【図７】同実施形態の電子機器によって実行される、キーボードモードとマウスモードとを切り替えるモード切替処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、タブレット型パーソナルコンピュータ（ＰＣ）、スマートフォン、またはＰＤＡ等として実現され得る。以下では、この電子機器がタブレット型パーソナルコンピュータ１０として実現されている場合を想定する。タブレット型パーソナルコンピュータ１０は、図１に示すように、コンピュータ本体１１とタッチスクリーンディスプレイ１７とから構成される。
【００１４】
コンピュータ本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、液晶表示装置（ＬＣＤ）及びタッチパネルが組み込まれている。タッチパネルは、ＬＣＤの画面を覆うように設けられる。タッチスクリーンディスプレイ１７は、コンピュータ本体１１の上面に重ね合わせるように取り付けられている。このタッチスクリーンディスプレイ１７は、外部オブジェクト（ペン又は手の指）と接触された表示画面上の位置（タッチ位置、または接触位置とも云う）を検知することができる。このタッチスクリーンディスプレイ１７は同時に複数の接触位置を検知可能なマルチタッチ機能をサポートしている。
【００１５】
コンピュータ本体１１の上面上には、カメラ１９およびマイクロフォン２０が配置されている。また、コンピュータ本体１１の長手方向に伸びた側面には２つのスピーカ１８Ａ，１８Ｂが配置されている。
【００１６】
本コンピュータ１０においては、タッチスクリーンディスプレイ１７は、各種アプリケーションプログラムの画面を表示するためのメインディスプレイとして使用される。さらに、タッチスクリーンディスプレイ１７は、図２に示されているように、仮想キーボード（ソフトウェアキーボードとも云う）１７１の表示にも用いられる。
【００１７】
タッチスクリーンディスプレイ１７の表示画面の向きは縦向き（ポートレート）と横向き（ランドスケープ）との間で切り替えることができる。図２は、ランドスケープ時における仮想キーボード１７１のレイアウトを示している。
【００１８】
仮想キーボード１７１は、複数のキーコードをそれぞれ入力するための複数のキー（複数の数字キー、複数のアルファベットキー、複数の矢印キー等）を含む。より詳しくは、仮想キーボード１５１は、複数のキーそれぞれに対応する複数のボタン（ソフトウェアボタン）を含む。タッチスクリーンディスプレイ１７の表示画面上には、仮想キーボード１７１と一緒に、仮想キーボード１７１の操作によって入力されたキーコードに対応する文字を表示するための文字入力エリア（テキストボックス）１７２を表示してもよい。
【００１９】
本実施形態では、ユーザが１以上の指を仮想キーボード１７１上のキーに置いたままの状態で、つまり１以上の指がタッチスクリーンディスプレイ１７に接触している状態で、タイプ入力操作を実行できるようするためのキー入力制御機能を有している。このキー入力制御機能においては、キーが入力操作されたか否かの判定は、キーが指などでタッチされた瞬間では無く、キーから指が離された瞬間に実行される。ユーザが何本かの指を幾つかのキー上にそれぞれ触れた状態では、それら個々のキーを検出する処理のみが実行される。キーから指が離されない限り、キーコードの入力処理は実行されない。
【００２０】
すなわち、キー入力制御機能は、タッチスクリーンディスプレイ１７上のある第１位置が指などによって触られると、その第１位置に対応するキー（第１キー）を検出する。さらに、第１位置が指などによって触られている状態でタッチスクリーンディスプレイ１７上の別の位置（第２位置）が指などによって触られると、キー入力制御機能は、その第２位置に対応するキー（第２キー）も検出する。さらに、第１位置、第２位置がそれぞれ指などによって触られている状態でタッチスクリーンディスプレイ１７上の別の位置（第３位置）が指などによって触られると、キー入力制御機能は、その第３位置に対応するキー（第３キー）も検出する。これら第１キー、第２キー、第３キー上にそれぞれ３つの指が接触されている状態では、キー入力処理等は実行されない。
【００２１】
第１位置、第２位置または第３位置のいずれかと指との接触が解除された時、キー入力制御機能は、この接触の解除の操作（リリース操作）が入力操作であるか否かを判定するための判定処理を実行する。
【００２２】
判定処理は、例えば、接触時間、タッチ衝撃度、接触圧力、接触回数、接触位置の内の少なくともひとつの情報に基づいて実行される。接触時間は、あるキーに指が接触されてからこのキーと指との接触が解除されるまでの時間長である。本実施形態の判定処理では、主としてこの接触時間が用いられる。接触時間は、タッチ・アンド・リリース操作（タップ操作）に用いられた時間に相当する。タッチ・アンド・リリース操作（タップ操作）は、あるキーを指でタッチし、その後、指をこのキーから離すという操作である。
【００２３】
判定処理では、接触時間が閾時間よりも短いか否かが判定される。接触時間が閾時間よりも短い場合、指との接触が解除されたキーに関連づけられたキーコード、つまりタッチ・アンド・リリース操作されたキーに関連づけられたキーコード、を入力するための入力処理が実行される。一方、接触時間が閾時間よりも短くない場合、入力処理の実行はスキップされ、タッチ・アンド・リリース操作されたキーに関連づけられたキーコードは入力されない。
【００２４】
よって、たとえユーザが、目的のキーをタップするために、あるキーの上に置いて休めておいた指をこのキーから離しても、この離されたキーのキーコードは入力されない。多くの場合、この離されたキーの接触時間は閾時間よりも長いからである。また、あるキーの上に指をおいたまま、別の指で別のキーをタッチ・アンド・リリース操作（タップ操作）することにより、この別のキーに関連づけられたキーコードを正常に入力することができる。
【００２５】
さらに、複数の指をホームキーポジションに置いておくことができるので、上述のタッチタイピング操作も可能となる。
【００２６】
タッチ衝撃度は、タッチ・アンド・リリース操作（タップ操作）によってコンピュータ１０に加わる衝撃度を示す。本実施形態では、接触時間のみならず、タッチ衝撃度も入力判定のために使用することができる。タッチ衝撃度が閾値よりも大きいことを条件に入力操作が行われたと判定される。これにより、たとえ誤ってユーザの指があるキーに一時的に触れた場合であっても、そのキーのキーコードが入力されることを防止することができる。
【００２７】
接触圧力は、あるキーと指との接触の圧力である。キーに指が接触されている面積が大きいほど、接触圧力は大きくなる。したがって、接触圧力を入力判定に使用することも、誤入力を防ぐことを可能にする。
【００２８】
接触回数は、同一キーが連続してタップ操作された回数を示す。指の挙動によっては、ある短時間の間に同一キーが連続してタップ操作されたと誤って判定される可能性もある。接触回数を入力判定に使用した場合には、このような連続タップ操作は一つのタップ操作として取り扱われる。
【００２９】
接触位置はタップ操作された位置を示す。接触位置を入力判定に使用することにより、タップ操作されたタッチスクリーンディスプレイ１７上の位置が、キーが配置された位置であるか否かを判定することができる。よって、接触位置を入力判定に使用することにより、たとえタッチスクリーンディスプレイ１７上のキー配置位置以外の位置がタップ操作されても、誤入力が発生することを防ぐことができる。
【００３０】
さらに、本実施形態のキー入力制御機能は、仮想キーボード１７１に対する入力操作状況をユーザにフィードバックするためのフィードバック制御処理も実行する。このフィードバック制御処理では、画像、動画（アニメーション）、音、振動の少なくとも一つを用いて現在の入力操作状況を示す通知を発生する。
【００３１】
例えば、仮想キーボード１７１上のあるキーが指などでタッチされると、そのタッチされているキーの色は特定の色（色１）に変化される（図２では、色が色１に変化されたキーはハッチングによって示されている）。これにより、タッチされたキーそれぞれが検知されていることを、ユーザに知らせることができる。
【００３２】
触れられたキーがホームキーポジションの識別に使用される２つの特定のキー（“Ｆ”キー、“Ｊ”キー）のいずれかである時には、特定の音を出力するというフィードバックが行われる。例えば、“Ｆ”キーが指などでタッチされると、ある音（音１）が出力される。“Ｊ”キーが指などでタッチされると、別の音（音２）が出力される。あるいは、“Ｆ”キーが指などでタッチされたならば、左側のスピーカ１８Ａから音（音１）を出力し、“Ｊ”キーが指などでタッチされたならば、右側のスピーカ１８Ｂから音（音２）を出力してもよい。この場合、音１と音２は同じ音であってもよい。また、これら音を出力する代わりに、振動を発生するようにしてもよい。
【００３３】
タッチ・アンド・リリース操作によってあるキーのキーコードが入力された時（接触時間が閾時間よりも短い場合）には、そのキーの色は特定の色（色２）に変化される（図２では、色が色２に変化されたキーはダブルハッチングによって示されている）。なお、キーコードが入力される度に、キーがタッチされた時に発生される音とは異なる別の音を発生してもよく、またはキーがタッチされた時に発生される振動とは異なる別の振動を発生するようにしてもよい。
【００３４】
このようなフィードバック制御処理により、ユーザは、タッチスクリーンディスプレイ１７を見なくても、キーをタッチしているか、さらに、指がホームキーポジションの対応するキー上に置かれているか否かが分かる。よって、ユーザによる仮想キーボード１７１を用いたタッチタイプ操作を支援することができる。
【００３５】
図３は、本コンピュータ１０のシステム構成を示す図である。  
本コンピュータ１０は、図３に示されるように、ＣＰＵ１０１、ノースブリッジ１０２、主メモリ１０３、サウスブリッジ１０４、グラフィクスコントローラ１０５、サウンドコントローラ１０６、ＢＩＯＳ−ＲＯＭ１０７、ＬＡＮコントローラ１０８、不揮発性メモリ１０９、バイブレータ１１０、加速度センサ１１１、無線ＬＡＮコントローラ１１２、エンベデッドコントローラ（ＥＣ）１１３、ＥＥＰＲＯＭ１１４、ＨＤＭＩ制御回路３等を備える。
【００３６】
ＣＰＵ１０１は、コンピュータ１０内の各部の動作を制御するプロセッサである。ＣＰＵ１０１は、不揮発性メモリ１０９から主メモリ１０３にロードされる、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムを実行する。アプリケーションプログラムには、入力制御プログラム２０２が含まれている。この入力制御プログラムは、上述の仮想キーボード１７１を用いてキー入力処理を実行するためのソフトウェアであり、オペレーティングシステム（ＯＳ）２０１上で実行される。
【００３７】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０７に格納されたＢＩＯＳも実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３８】
ノースブリッジ１０２は、ＣＰＵ１０１のローカルバスとサウスブリッジ１０４との間を接続するブリッジデバイスである。ノースブリッジ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０５との通信を実行する機能も有している。
【００３９】
グラフィクスコントローラ１０５は、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０５によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて映像を表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うためのポインティングデバイスである。ユーザは、タッチパネル１７Ｂを用いて、ＬＣＤ１７Ａの画面に表示されたグラフィカルユーザインタフェース（ＧＵＩ）等を操作することができる。例えば、ユーザは、画面に表示されたボタンをタッチすることによって、当該ボタンに対応する機能の実行を指示することができる。
【００４０】
ＨＤＭＩ端子２は、外部ディスプレイ接続端子である。ＨＤＭＩ端子２は、非圧縮のデジタル映像信号とデジタルオーディオ信号とを１本のケーブルで外部ディスプレイ装置１に送出することができる。ＨＤＭＩ制御回路３は、ＨＤＭＩモニタと称される外部ディスプレイ装置１にデジタル映像信号をＨＤＭＩ端子２を介して送出するためのインタフェースである。つまり、コンピュータ１０は、ＨＤＭＩ端子２等を介して、外部ディスプレイ装置１に接続可能である。
【００４１】
サウスブリッジ１０４は、ＰＣＩ（Peripheral Component Interconnect）バス上の各デバイス及びＬＰＣ（Low Pin Count）バス上の各デバイスを制御する。また、サウスブリッジ１０４は、不揮発性メモリ１０９を制御するためのＡＴＡコントローラを内蔵している。
【００４２】
サウスブリッジ１０４は、各種ＵＳＢデバイスを制御するためのＵＳＢコントローラを内蔵している。さらに、サウスブリッジ１０４は、サウンドコントローラ１０６との通信を実行する機能も有している。サウンドコントローラ１０６は音源デバイスであり、再生対象のオーディオデータをスピーカ１８Ａ，１８Ｂに出力する。ＬＡＮコントローラ１０８は、例えばＩＥＥＥ  ８０２．３規格の有線通信を実行する有線通信デバイスである。無線ＬＡＮコントローラ１１２は、例えばＩＥＥＥ  ８０２．１１規格の無線通信を実行する無線通信デバイスである。
【００４３】
ＥＣ１１３は、電力管理のためのエンベデッドコントローラを含む１チップマイクロコンピュータである。ＥＣ１１３は、ユーザによるパワーボタンの操作に応じて本コンピュータ１０を電源オン／電源オフする機能を有している。
【００４４】
次に、図４を参照して、キー入力制御プログラム２０１の構成を説明する。キー入力制御プログラム２０１は、タッチ情報受信部３０１、制御部３０２、フィードバック処理部３０３、仮想キーボード表示処理部３０４を備える。
【００４５】
タッチ情報受信部３０１は、タッチイベントが発生する度に、ＯＳ２０１内のタッチパネルドライバ２０１Ａからその発生したタッチイベントに関する情報を受信することができる。ここで、タッチイベントとは、以下のイベントを示す。
【００４６】
イベント１：  タッチ数が増えた（タッチスクリーンディスプレイ１７が指でタッチされた）
イベント２：  タッチ数が減った（タッチスクリーンディスプレイ１７から指が離された）
イベント３：  タッチ状態が変化した（指の位置が移動した）
より詳しくは、タッチイベントには、タッチ開始イベント（イベント１）、リリースイベント（イベント２）、および移動イベント（イベント３）等がある。タッチ開始イベントは、タッチスクリーンディスプレイ１７上に外部オブジェクトが接触された時に発生される。すなわち、外部オブジェクトが接触されるタッチスクリーンディスプレイ１７上の位置（タッチ位置）の数が増えた時（タッチスクリーンディスプレイ１７が指でタッチされた時）にタッチ開始イベントが発生される。タッチ開始イベントの情報は、タッチスクリーンディスプレイ１７上のタッチ位置の座標情報（ｘ，ｙ）を含む。
【００４７】
リリースイベントは、タッチスクリーンディスプレイ１７と外部オブジェクトとの間の接触が解除された時に発生される。すなわち、外部オブジェクトが接触されるタッチスクリーンディスプレイ１７上の位置（タッチ位置）の数が減少した時（タッチスクリーンディスプレイ１７から指が離された時）にリリースイベントが発生される。リリースイベントの情報は、指が離されたタッチ位置の座標情報（ｘ，ｙ）を含む。
【００４８】
移動イベントは、タッチスクリーンディスプレイ１７のタッチ位置の座標が変化したとき、例えば、指がタッチスクリーンディスプレイ１７に触れたまま移動した時に発生される。移動イベントの情報は、タッチ位置の移動先位置の座標情報（ｘ，ｙ）を含む。
【００４９】
制御部３０２は、２つの動作モード、つまり、キーボードモードとマウスモードとを有している。キーボードモードは、仮想キーボード１７１に対するユーザ操作に応じてキーコードを入力する動作モードである。マウスモードは、タッチスクリーンディスプレイ１７上の接触位置の移動に応じて、その接触位置の移動の方向および距離を示す相対座標データを出力する動作モードである。
【００５０】
制御部３０２は、キーボードモードを実行するための機能モジュールとして、検出部３１１、入力制御部３１２、キーコード送信部３１３等を備える。
【００５１】
検出部３１１は、タッチ開始イベント（タッチ数の増加）および移動イベント（タッチ状態の変化）に応じて、現在タッチされているキーそれぞれを検出する。より詳しくは、検出部３１１は、タッチスクリーンディスプレイ１７の複数の第１位置と外部オブジェクト（複数の指）それぞれとの接触に応答して、これら複数の第１位置にそれぞれ対応する仮想キーボード１７１上の複数のキー（複数の第１キー）を検出する。
【００５２】
入力制御部３１２は、リリースイベント等に応じて、上述の入力判定処理を実行する。より詳しくは、入力制御部３１２は、上述の複数の第１の位置の内のいずれか一つの第１位置の接触状態の解除に応答して、いずれか一つの第１位置に外部オブジェクトが接触されてから、上述のいずれか一つの第１位置の接触状態が解除されるまでの接触時間が閾時間よりも短いか否かを判定する。
【００５３】
接触時間が閾時間よりも短い場合、入力制御部３１２は、上述のいずれか一つの第１位置に対応する、上述の複数の第１キー内の一つの第１キーに関連づけられたキーコードを入力するための入力処理を実行する。この場合、このキーコードは本コンピュータ１０によって実行されるアプリケーションプログラム４０１などに入力される。接触時間が閾時間よりも短くない場合、入力制御部３１２は、この入力処理の実行をスキップする。
【００５４】
入力判定処理においては、上述のように、接触時間のみならず、タッチ衝撃度等を用いてもよい。タッチ衝撃度は、加速度センサ１１１によって検知することができる。また、マイクロフォン２０によって入力される音の大きさを用いてタッチ衝撃度を検出するようにしてもよい。入力制御部３１２は、第１および第２の位置のいずれか一方の位置と外部オブジェクトとの接触の解除に応答して、加速度センサ１１１等のセンサによって検知されたタッチ衝撃度が閾値よりも大きいか否かを判定する。タッチ衝撃度が閾値よりも大きくない場合、入力制御部３１２は、入力処理の実行をスキップする。
【００５５】
キーコード送信部３１３は、入力されたキーコードを外部機器４０２に送信する。この場合、入力されたキーコードは、外部機器４０２との通信を実行する通信部（例えば、無線ＬＡＮコントローラ１１２等の無線通信デバイス）を介して外部機器４０２に無線送信される。外部機器４０２はＴＶのような電子機器である。このキーコード送信部３１３により、本コンピュータ１０を、外部機器４０２にデータ（キーコード）を入力するための入力デバイスとして機能させることができる。キーコードを外部機器４０２に送信する機能は、ＴＶ上に表示された検索窓などへのテキスト入力時に効果を発揮する。
【００５６】
さらに、制御部３０２は、モード切替部３１４を備える。このモード切替部３１４は、制御部３０２の動作モードを上述のキーボードモードとマウスモードとの間で切り替える。モード切替部３１４は、タッチスクリーンディスプレイ１７上の２つの位置が外部オブジェクトと接触されたことに応答して、これら２つの位置間の距離が閾距離よりも短いか否かを判定する。閾距離は隣接する２つのキー間の距離（キーピッチ）よりも短い値に設定してもよい。
【００５７】
２つの位置間の距離が閾距離よりも短い場合、モード切替部３１４は、制御部３０２の動作モードを、キーボードモードからマウスモードに切り替える。ユーザは、例えば、２本の指でタッチスクリーンディスプレイ１７上の隣接する２点をタッチすることにより、動作モードを、キーボードモードからマウスモードに切り替えることができる。ユーザは、タッチスクリーンディスプレイ１７上の２本の指のタッチ位置を移動することにより、画面上のマウスカーソル等を移動させることができる。
【００５８】
マウスモードにおいては、２本の指の内の一方の指（例えば左側の指）でタップ操作が行われると、制御部３０２は、左クリックを示すイベントをアプリケケーションプログラム４０１に入力するか、もしくは、左クリックを示すイベントを外部機器４０２に送信する。また、マウスモードにおいて、２本の指の内の他方の指（例えば右側の指）でタップ操作が行われると、制御部３０２は、右クリックを示すイベントをアプリケケーションプログラム４０１に入力するか、もしくは、右クリックを示すイベントを外部機器４０２に送信する。
【００５９】
マウスモードにおいて、タッチスクリーンディスプレイ１７上に接触されている指の数がゼロになると、このモード切替部３１４は、マウスモードを終了させる。この場合、モード切替部３１４は、制御部３０２の動作モードを上述のキーボードモードに戻してもよい。
【００６０】
フィードバック処理部３０３は、サウンドコントローラ１０６、バイブレータ１１０、ＯＳ２０１内の表示ドライバ２０１Ｂ等を使用して、上述のフィードバック制御処理を実行する。仮想キーボード表示処理部３０４は、仮想キーボード１７１をタッチスクリーンディスプレイ１７上に表示する。
【００６１】
次に、図５のフローチャートを参照して、入力制御プログラム２０２によって実行されるキーボード処理の手順の例を説明する。
【００６２】
図５のキーボード処理の手順は、例えば、タッチイベント（タッチ開始イベント、リリースイベント、移動イベント）が発生する度に実行される。図５のフローチャートにおいて、最大タッチ数Ｎは、現在のタッチ数を示す。タッチ開始イベントの発生時には、最大タッチ数Ｎは、タッチ開始イベントの発生直後のタッチ数である。リリースイベントの発生時には、最大タッチ数Ｎは、リリースイベントの発生直前のタッチ数である。
【００６３】
タッチイベントが発生した時、つまりタッチ開始イベント、リリースイベント、または移動イベントのいずれかが発生した時、入力制御プログラム２０２は、現在タッチされているキー（ボタン）それぞれについて、以下の処理を実行する。
【００６４】
入力制御プログラム２０２は、まず、タッチスクリーンディスプレイ１７上のタッチ位置それぞれの座標に基づき、タッチされているキー（ボタン）をそれぞれ検出する。これら検出されたキー（ボタン）には異なる識別子Ｂｔｎ（ｎ＝１〜Ｎ）が付与される。そして、検出された個々のキーに対して以下の処理が実行される。
【００６５】
入力制御プログラム２０２は、まず、処理対象のボタン（Ｂｔｎ）を取得し（ステップＳ１１）、その処理対象のボタン（Ｂｔｎ）が新たにタッチされたボタンであるか否かを判定する（ステップＳ１２）。タッチ開始イベントが発生し、且つこのタッチ開始イベントによって示されるタッチ位置の座標が、処理対象のボタン（Ｂｔｎ）の座標に一致する場合、処理対象のボタン（Ｂｔｎ）は、新たにタッチされたボタンであると判定することができる。ボタン（Ｂｔｎ）が新たにタッチされたボタンであるならば（ステップＳ１２のＹＥＳ）、入力制御プログラム２０２は、ボタン（Ｂｔｎ）のキーコードまたはキー識別番号をボタン（Ｂｔｎ）に対応する変数Ｂｔｎ０に格納すると共に、現在時間をボタン（Ｂｔｎ）に対応する変数Ｔｎ０にタッチ開始時間として格納する（ステップＳ１３）。そして、入力制御プログラム２０２は、新たにタッチされたボタンを特定の色で表示するといったフィードバック処理を実行する（ステップＳ１４）。そして、入力制御プログラム２０２は、次の処理対象のボタンの処理に移る。
【００６６】
処理対象のボタン（Ｂｔｎ）が新たにタッチされたボタンではないならば（ステップＳ１２のＮＯ）、入力制御プログラム２０２は、処理対象のボタン（Ｂｔｎ）がタッチが継続している状態のボタンであるか、あるいはリリースされたボタンであるかを判定する（ステップＳ１５）。タッチが継続している状態は、指がタッチ位置上に止まっている状態、または指がタッチスクリーンディスプレイ１７上に接触したまま他のキーに対応する位置に移動した状態に対応する。リリースされたボタンは、指が離された位置に対応するボタンである。リリースイベントが発生し、且つこのリリースイベントによって示されるタッチ位置の座標が、処理対象のボタン（Ｂｔｎ）の座標に一致する場合、処理対象のボタン（Ｂｔｎ）は、リリースされたボタンであると判定することができる。
【００６７】
処理対象のボタン（Ｂｔｎ）がタッチが継続している状態のボタンであるならば（ステップＳ１５のＹＥＳ）、入力制御プログラム２０２は、処理対象のボタン（Ｂｔｎ）がすでにタッチされており且つ現在もタッチされているボタン、つまり指が止まっているタッチ位置に対応するボタン、であるか否かを判定する（ステップＳ１６）。ステップＳ１６では、入力制御プログラム２０２は、処理対象のボタン（Ｂｔｎ）のキーコードが、処理対象のボタン（Ｂｔｎ）に対応する変数Ｂｔｎ０にすでに格納されているキーコードと一致するか否かを判定する。これらキーコードが一致するならば、処理対象のボタン（Ｂｔｎ）は、指が止まっているタッチ位置に対応するボタンであると判定される（ステップＳ１６のＹＥＳ）。この場合、入力制御プログラム２０２は、次の処理対象のボタンの処理に移る。
【００６８】
一方、これらキーコードが一致しないならば、処理対象のボタン（Ｂｔｎ）は、指が移動された先のタッチ位置に対応するボタンであると判定される（ステップＳ１６のＮＯ）。この場合、入力制御プログラム２０２は、処理対象のボタン（Ｂｔｎ）、つまり移動先のボタンの色を変えるなどのフィードバック処理を実行すると共に、処理対象のボタン（Ｂｔｎ）に対応する変数Ｂｔｎ０を、移動先のボタンのキーコードに変更する（ステップＳ１７）。処理対象のボタン（Ｂｔｎ）に対応する変数Ｔｎ０の値は更新する必要はない。指の移動に起因してキー入力が実行されてしまうことを防止できるようにするためである。そして、入力制御プログラム２０２は、次の処理対象のボタンの処理に移る。
【００６９】
処理対象のボタン（Ｂｔｎ）がリリースされたボタンであるならば（ステップＳ１５のＮＯ）、入力制御プログラム２０２は、処理対象のボタン（Ｂｔｎ）の接触時間等に基づき、処理対象のボタン（Ｂｔｎ）に対するリリース操作が入力操作であるか否かを判定するための入力判定処理を実行する（ステップＳ１８）。この入力判定処理の手順は図６のフローチャートを参照して後述する。
【００７０】
処理対象のボタン（Ｂｔｎ）に対するリリース操作が入力操作であると判定されたならば（ステップＳ１９のＹＥＳ）、入力制御プログラム２０２は、入力操作が行われたことを示す通知をキー色の変化、音または振動等を用いて発生すると共に（ステップＳ２０）、処理対象のボタン（Ｂｔｎ）に対応する変数Ｂｔｎ０に格納されているキーコードを入力する（ステップＳ２１）。ステップＳ２１では、処理対象のボタン（Ｂｔｎ）に関連づけられたキーコードに対応する文字がテキストボックス１７２に表示される。あるいは、処理対象のボタン（Ｂｔｎ）に関連づけられたキーコードが外部機器４０２に送信され、外部機器４０２の画面上に、処理対象のボタン（Ｂｔｎ）に関連づけられたキーコードに対応する文字が表示される。そして、入力制御プログラム２０２は、次の処理対象のボタンの処理に移る。
【００７１】
処理対象のボタン（Ｂｔｎ）に対するリリース操作が入力操作であると判定されなかったならば（ステップＳ１９のＹＥＳ）、入力制御プログラム２０２は、ステップＳ２０、Ｓ２１の処理の実行をスキップし、次の処理対象のボタンの処理に移る。なお、リリース操作が入力操作であると判定されなかった場合、入力制御プログラム２０２は、入力操作が行われなかったこと（入力処理のスキップ）を示す通知を、キー色の変化、音または振動等を用いて発生してもよい。
【００７２】
いま、第１のユースケースとして、ユーザがあるキー（例えば“Ｊ”キー）上に指（人差し指）を置いたまま、別の指（中指）で例えば“Ｋ”キーをタップする場合を想定する。この場合、まず、“Ｊ”キーと人差し指との接触に応答してタッチ開始イベントが発生し、ステップＳ１２、Ｓ１３の処理によって、“Ｊ”キーが検出される。そして、“Ｊ”キーと人差し指とが接触されている状態で“Ｋ”キーと中指が接触されると、タッチ開始イベントが再び発生し、ステップＳ１２、Ｓ１３の処理によって、“Ｋ”キーがさらに検出される。
【００７３】
右手の中指が“Ｋ”キーから離された時、リリースイベントが発生される。この場合、ステップＳ１８、Ｓ１９の処理によって、指が離された“Ｋ”キーの接触時間が閾時間よりも短いか否かが判定される。“Ｋ”キーの接触時間が閾時間よりも短いならば、“Ｋ”キーの入力処理が実行される。
【００７４】
ここで、ユーザが目的のキー、例えば“Ｕ”キーをタップするために、右手の人差し指を“Ｊ”キーから離した場合を想定する。この場合、リリースイベントが発生され、指が離された“Ｊ”キーの接触時間が閾時間よりも短いか否かが判定される。このケースでは、通常、“Ｊ”キーの接触時間は閾時間を超えている。したがって、“Ｊ”キーの入力処理は実行されない。
【００７５】
このように、本実施形態では、あるキーの上に指をおいたまま、別の指で別のキーをタップすることにより、この別のキーに関連づけられたキーコードを正常に入力することができる。また、たとえユーザが、目的のキーをタップするために、あるキーの上に置いて休めておいた指をこのキーから離しても、この離されたキーのキーコードは入力されない。
【００７６】
次に、第２のユースケースとして、ユーザの両手の指がホームキーポジションに置かれた場合、つまり、“Ａ”キー、“Ｓ”キー、“Ｄ”キー、“Ｆ”キー上に左手の小指、薬指、中指、人差し指が置かれ、“Ｊ”キー、“Ｋ”キー、“Ｌ”キー、“；”キー上に右手の人差し指、中指、薬指、小指が置かれた場合を想定する。この場合、何回か（最大８回）のタッチ開始イベントが発生し、タッチスクリーンディスプレイ１７上の８つの接触位置それぞれに対応する８つのキー（“Ａ”キー、“Ｓ”キー、“Ｄ”キー、“Ｆ”キー、“Ｊ”キー、“Ｋ”キー、“Ｌ”キー、“；”キー）がそれぞれ検出される。また、各キー毎に、そのキーがタッチされた瞬間の時間が検出される。
【００７７】
ここで、ユーザが目的のキー、例えば“Ｕ”キーをタップするために、右手の人差し指を“Ｊ”キーから離した場合を想定する。この場合、リリースイベントが発生され、指が離された“Ｊ”キーの接触時間（“Ｊ”キーがタッチされたからリリーされるまでの時間）が閾時間よりも短いか否かが判定される。通常、“Ｊ”キーの接触時間は閾時間を超えている。このため、“Ｊ”キーの入力処理は実行されない。
【００７８】
この後、“Ｕ”キーと右手の人差し指との接触に応答して接触開始イベントが発生され、“Ｕ”キーが検出される。さらに、“Ｕ”キーがタッチされた時間が検出される。この直後に、“Ｕ”キーと右手の人差し指との接触が解除される。この場合、リリースイベントが発生され、指が離された“Ｕ”キーの接触時間が閾時間よりも短いか否かが判定される。“Ｕ”キーの接触時間は閾時間よりも短いならば、“Ｕ”キーの入力処理が実行される。
【００７９】
このように、本実施形態では、複数の指をホームキーポジションに置いた状態でタイプ入力操作を行うことができる。
【００８０】
次に、図６のフローチャートを参照して、入力判定処理の手順の例を説明する。
【００８１】
入力制御プログラム２０２は、リリースされたボタンの接触時間が閾時間よりも短いか否かを判定する（ステップＳ４１）。ステップＳ４１では、入力制御プログラム２０２は、現在時間から、リリースされたボタンに対応する変数Ｔｎ０に格納されている時間（タッチされた時間）を減算して、接触時間（Ｎｏｗ−Ｔ０）を算出する。そして、接触時間（Ｎｏｗ−Ｔ０）が閾時間Ｔｔｈよりも短いか否かを判定する。
【００８２】
接触時間が閾時間よりも短いならば（ステップＳ４１のＹＥＳ）、入力制御プログラム２０２は、リリースされたボタン（Ｂｔｎ）のキーコードが、このボタン（Ｂｔｎ）に対応する変数Ｂｔｎ０にすでに格納されているキーコードと一致するか否かを判定する（ステップＳ４２）。これは、リリースされたボタン（Ｂｔｎ）が、タッチ・アンド・リリースされたボタンであることを再確認するためである。
【００８３】
リリースされたボタン（Ｂｔｎ）のキーコードが、このボタン（Ｂｔｎ）に対応する変数Ｂｔｎ０にすでに格納されているキーコードと一致するならば（ステップＳ４２のＹＥＳ）、入力制御プログラム２０２は、リリースされたボタン（Ｂｔｎ）に対応する接触圧力（タッチ圧力）が閾値Ｐｔｈよりも大きいか否かを判定する（ステップＳ４３）。
【００８４】
リリースされたボタン（Ｂｔｎ）に対応する接触圧力（タッチ圧力）が閾値Ｐｔｈよりも大きいならば（ステップＳ４３のＹＥＳ）、入力制御プログラム２０２は、タッチ衝撃度（例えば、リリースイベントが発生した直前の期間に対応するタッチ衝撃度）が閾値Ｉｔｈよりも大きいか否かを判定する（ステップＳ４４）。タッチ衝撃度は、タッチスクリーンティスプレイ１７を指で弾くようにタッチ（タップ操作）したかどうかを判定するために使用される。誤って指がタッチスクリーンティスプレイ１７に触れた場合は、タッチ衝撃度は低い値になるので、タッチ衝撃度を入力判定に使用することにより、誤入力を低減することができる。
【００８５】
タッチ衝撃度の算出には、加速度センサ１１１を用いることができる。タッチスクリーンティスプレイ１７を指でタップすると、Ｘ、Ｙ、Ｚの３軸の加速度の変化量ΔＸ、ΔＹ、ΔＺが瞬間的に増加する。ΔＸ、ΔＹ、ΔＺぞれぞれの二乗値の和のルートの値をタッチ衝撃度の値として算出することができる。
【００８６】
タッチ衝撃度を検知するためのセンサとして、内蔵マイク２０を使用してもよい。タッチスクリーンティスプレイ１７を指でタップすると、内蔵マイク２０によって収音される音はパルス的な音になる。このパルス的な音の周波数特性は、低域周波数から高域周波数までのパワーが瞬間的に上昇し、そして瞬間的に下がるという特性を有する。したがって、内蔵マイク２０によって収音される音の信号を解析することにより、タッチ衝撃度を算出することができる。
【００８７】
また、加速度センサ１１１と内蔵マイク２０の双方を用いてタッチ衝撃度を算出してもよい。この場合、タッチ衝撃度の値は、加速度センサ１１１によって得られる値と音の信号を解析することによって得られる値との線形和によって求めることができる。環境ノイズが大きい場合には、タッチ衝撃度の算出では、音に対する線形和重みを小さくしてもよい。
【００８８】
タッチ衝撃度が閾値Ｉｔｈよりも大きいならば（ステップＳ４４のＹＥＳ）、入力制御プログラム２０２は、処理対象のボタン（Ｂｔｎ）に対するリリース操作が入力操作であると判定する（ステップＳ４５）。一方、ステップＳ４１〜Ｓ４４に対応する４つの条件のいずれかが満たされなかったならば、入力制御プログラム２０２は、処理対象のボタン（Ｂｔｎ）に対するリリース操作が入力操作ではないと判定する（ステップＳ４６）。
【００８９】
接触時間に加え、タッチ圧力とタッチ衝撃度の双方を入力判定に使用することにより、誤入力を効率よく防止することができる。なお、接触時間のみを用いて入力判定してもよいし、接触時間とタッチ衝撃度とを用いて入力判定してもよいし、接触時間とタッチ圧力とを用いて入力判定してもよい。
【００９０】
次に、図７のフローチャートを参照して、入力制御プログラム２０２によって実行されるモード判定処理とマウス処理の手順の例について説明する。モード判定処理はキーボードモードとマウスモードを切り替えるための処理である。
【００９１】
モード判定処理は、例えば、タッチイベント（タッチ開始イベント、リリースイベント、移動イベント）が発生する度に実行される。
【００９２】
タッチイベントが発生した時、つまりタッチ開始イベント、リリースイベント、または移動イベントのいずれかが発生した時、入力制御プログラム２０２は、現在のタッチ数、つまり現在タッチされているキーの数を検出し、現在のタッチ数がゼロであるか否かを判定する。
【００９３】
現在のタッチ数がゼロであるならば（ステップＳ５１のＹＥＳ）、入力制御プログラム２０２は、その動作モードをキーボードモードに設定する（ステップＳ５２）。現在のタッチ数がゼロではないならば（ステップＳ５１のＮＯ）、ステップＳ５２の処理はスキップされる。
【００９４】
次いで、入力制御プログラム２０２は、現在の動作モードがキーボードモードであるか否かを判定する（ステップＳ５３）。キーボードモードであるならば（ステップＳ５３のＹＥＳ）、入力制御プログラム２０２は、現在のタッチ数が２で且つこれら２つのタッチ位置間の距離が閾距離Ｄｔｈよりも短いという条件が成立するか否かを判定する（ステップＳ５４）。
【００９５】
現在のタッチ数が２で且つこれら２つのタッチ位置間の距離が閾距離Ｄｔｈよりも短いという条件が成立していないならば（ステップＳ５４のＮＯ）、入力制御プログラム２０２は、変数Ｔｃｎｔをゼロに初期化し（ステップＳ５７）、そして図５で説明したキーボード処理を実行する。
【００９６】
一方、現在のタッチ数が２で且つこれら２つのタッチ位置間の距離が閾距離Ｄｔｈよりも短いという条件が成立しているならば（ステップＳ５４のＹＥＳ）、入力制御プログラム２０２は、これら２つのタッチ位置がほぼ同時にタッチされたか否かを判定する（ステップＳ５５、Ｓ５６）。ステップＳ５５では、入力制御プログラム２０２は、これら２つのタッチ位置それぞれがタッチされた時間（タッチ開始時間）の差（ΔＴ）を算出し、差（ΔＴ）と現在の変数Ｔｃｎｔの和を、変数Ｔｃｎｔに代入する。現在の変数Ｔｃｎｔはゼロに設定されている。したがって、変数Ｔｃｎｔは差（ΔＴ）を示す。ステップＳ５６では、入力制御プログラム２０２は、変数Ｔｃｎｔが閾値時間Ｔｍｔｈよりも短いか否かを判定する。
【００９７】
変数Ｔｃｎｔが閾値時間Ｔｍｔｈよりも短くないならば（ステップＳ５６のＮＯ）、入力制御プログラム２０２は、図５で説明したキーボード処理を実行する。変数Ｔｃｎｔが閾値時間Ｔｍｔｈよりも短いならば（ステップＳ５６のＹＥＳ）、入力制御プログラム２０２は、その動作モードをマウスモードに設定する（ステップＳ６１）。この場合、現在の動作モードがマウスモードであることをユーザに提示するために、画像を表示したり、音を出したり、あるいは振動を発生させてもよい。
【００９８】
マウスモードでは、入力制御プログラム２０２は、２つのタッチ値の代表位置（ｘ１，ｙ１）を算出する。代表位置（ｘ１，ｙ１）は２つのタッチ値間の中間位置であってもよい。入力制御プログラム２０２は、タッチスクリーンディスプレイ１７上の代表位置（ｘ１，ｙ１）の移動に応じて、代表位置（ｘ１，ｙ１）の移動の距離および方向を示す相対座標データを出力する（ステップＳ６３、Ｓ６４）。ステップＳ６３では、入力制御プログラム２０２は、タッチスクリーンディスプレイ１７上の代表位置（ｘ１，ｙ１）が移動されたか否かを判定する。代表位置（ｘ１，ｙ１）が移動されたならば（ステップＳ６３のＹＥＳ）、入力制御プログラム２０２は、ステップＳ６４に進む。そして、入力制御プログラム２０２は、画面上のマウスカーソルの位置を動かすために、Ｘ方向およびＹ方向それぞれの移動距離を示す相対座標データを入力する。ステップＳ６４では、入力された相対座標データに応じてマウスカーソルを移動する処理が行われる。なお、制御対象が外部機器４０２である場合には、相対座標データが外部機器４０２に送信され、外部機器４０２の画面上のマウスカーソルが移動される。
【００９９】
次に、入力制御プログラム２０２は、左クリックに対応する操作または右クリックに対応する操作が実行されたか否かを判定する（ステップＳ６４〜Ｓ６８）。本実施形態では、タッチスクリーンディスプレイ１７上をタッチしている二本の指のいずれか一方の指でタッチスクリーンディスプレイ１７が再タッチされたか否かが判定され、その再タッチ操作が、左クリックに対応する操作または右クリックに対応する操作として検出される。
【０１００】
タッチスクリーンディスプレイ１７上をタッチしている二本の指のいずれか一方の指でタッチスクリーンディスプレイ１７を再タッチする操作を行う場合、タッチ数が２から１に一時的に変化し、その直後に、タッチ数が１から２に変化する。本実施形態では、タッチ数の１から２への変化が左クリックまたは右クリックに対応する操作として検出される。
【０１０１】
すなわち、入力制御プログラム２０２は、タッチ数が１から２に変化したか否かを判定する（ステップＳ６５）。タッチ数が１から２に変化したならば（ステップＳ６５のＹＥＳ）、入力制御プログラム２０２は、追加のタッチ位置（新たなタッチ位置）が既存のタッチ位置の左側または右側のいずれの側に位置するかを判定する（ステップＳ６６）。追加のタッチ位置が既存のタッチ位置の左側の位置であるならば（ステップＳ６６のＹＥＳ）、入力制御プログラム２０２は、左クリックを示すイベントを入力する処理を実行する（ステップＳ６７）。なお、制御対象が外部機器４０２である場合には、左クリックを示すイベントが外部機器４０２に送信される。
【０１０２】
追加のタッチ位置が既存のタッチ位置の右側の位置であるならば（ステップＳ６６のＮＯ）、入力制御プログラム２０２は、右クリックを示すイベントを入力する処理を実行する（ステップＳ６８）。なお、制御対象が外部機器４０２である場合には、右クリックを示すイベントが外部機器４０２に送信される。
【０１０３】
タッチ数がゼロになるまで、マウスモードは継続される。したがって、マウスモードに一旦遷移された後は、タッチ位置が１に変化しても、その一つのタッチ位置の移動に応じてマウスカーソルを移動させることができる。この場合、その一つのタッチ位置を上述の代表位置として使用すればよい。
【０１０４】
以上説明したように、本実施形態によれば、タッチスクリーンディスプレイ１７上の複数の第１位置と外部オブジェクトそれぞれとの接触に応答して、タッチスクリーンディスプレイ上１７の複数の第１位置に対応する仮想キーボード１７１内の複数の第１キーが検出される。そして、複数の第１位置のいずれか一つの第１位置の接触状態の解除に応答して、いずれか一つの第１位置に外部オブジェクトが接触されてから、いずれか一つの第１位置の接触状態が解除されるまでの接触時間が閾時間よりも短いか否かが判定される。接触時間が閾時間よりも短い場合、いずれか一つの第１位置に対応する、複数の第１キー内の一つの第１キーに関連づけられたキーコードを入力するための入力処理が実行される。
【０１０５】
したがって、ユーザがある１以上の第１のキー上に指を置いたまま、別の指等で別の第１のキーをタッチ・アンド・リリース操作（タップ操作）した場合には、この別の第１キーに関連づけられたキーコードを正常に入力することができる。さらに、たとえユーザが、別の第１キーをタッチ・アンド・リリース操作した後に、ある目的のキーをタップするために、ある第１キーの上に置いて休めておいた指をこの第１キーから離しても、この離された第１キーのキーコードは入力されない。
【０１０６】
よって、複数の指をタッチスクリーンディスプレイ１７上に触れた状態で、タイプ入力操作を行うことができる。よって、タッチスクリーンディスプレイ１７を用いて容易にキー入力を行うことができる。また、ＴＶなどの他の機器を操作するための入力デバイスとして、タブレットコンピュータ１０を利用することが可能となる。
【０１０７】
なお、本実施形態の処理手順は全てソフトウェアによって実行することができるので、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムをタッチスクリーンディスプレイを備える通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１０８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０９】
１０…コンピュータ、１７…タッチスクリーンディスプレイ、１７１…仮想キーボード、２０２…入力制御プログラム、３０１…タッチ情報受信部、３０２…制御部、３０３…フィードバック処理部、３０４…仮想キーボード表示処理部、３１１…検出部、３１２…入力制御部。
【図１】
0005204286.tif 000002
【図２】
0005204286.tif 000003
【図３】
0005204286.tif 000004
【図４】
0005204286.tif 000005
【図５】
0005204286.tif 000006
【図６】
0005204286.tif 000007
【図７】
0005204286.tif 000008