説明

タッチイベントモデル

【課題】マルチタッチ対応デバイスにおいて実行するアプリケーションに関する単一の及び複数のタッチイベントの認識を単純化する。
【解決手段】特定のウィンドウ内の個々のビューをマルチタッチビュー又はシングルタッチビューのいずれかとして構成することができる。さらに、個々のビューを排他的ビュー又は非排他的ビューのいずれかとして構成することができる。ビューの構成に応じて、対象のビュー及びその他のビュー内のタッチイベントを無視するか、或いは認識するかのいずれかを行うことができる。無視されたタッチをアプリケーションへ送信する必要はない。選択的にタッチを無視することにより、さらに複雑なソフトウェア要素のように同じデバイス及び時点において実行される高度なマルチタッチ機能を利用しない、より単純なソフトウェア要素を実現できるようになる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にマルチポイント及びマルチタッチ対応デバイスに関し、より具体的に
は、マルチポイント及びマルチタッチ対応デバイスにおいて単一の及び複数のポイント及
びタッチイベントを認識することに関する。
【背景技術】
【0002】
マルチタッチ対応デバイスは当業で公知である。マルチタッチ対応デバイスとは、同時
に複数のタッチを感知できるデバイスのことである。従って、マルチタッチ対応デバイス
は、例えば、パネル上に押し下げられる2本の指により、マルチタッチパネル上の2つの
異なる位置において行われる2つのタッチイベントを感知することができる。マルチタッ
チ対応デバイスの例については、2007年1月3日に出願された「近接センサ及びマル
チタッチセンサの検出及び復調」という名称の米国特許出願第11/649,998号に
おいて解説されており、該特許は全体が引用により本明細書に組み入れられる。マルチタ
ッチ対応デバイスのみならず、米国特許出願第11/649,998号において解説され
るマルチ近接センサデバイスのような同様のデバイスを含むさらに多くの一般的なデバイ
スの組がマルチポイント対応デバイスとして定められる。
【0003】
マルチタッチ対応インタフェースの利点は知られているが、これらのデバイスは、いく
つかのインタフェースの設計課題を示すことができる。既存のインタフェースの設計規定
は、一度に1つの位置の特定しか行わないシングルポインティング式のユーザ入力デバイ
スを想定したものである。例として、マウス又はタッチパッドが挙げられる。
【0004】
さらに詳細には、多くの既存のグラフィックユーザインタフェース(GUI)システム
が提供するユーザインタフェースにおいては、ディスプレイの様々な部分が別個のソフト
ウェア要素に関連付けられる。従って、例えば、ディスプレイの部分をウィンドウに関連
付け、ウィンドウを特定のソフトウェアアプリケーション及び/又は処理に関連付けるこ
とができる。マウスを使用してウィンドウとやりとりを行い、アプリケーション又は処理
をウィンドウに関連付けることができる。このとき、マウスカーソルを別のウィンドウへ
移動させて、別のアプリケーション又は処理とやりとりを行うことができる。シングルポ
インティングデバイスのみを使用するため、一度に1つのウィンドウ及びアプリケーショ
ン又は処理とのやりとりしか行うことができない。
【0005】
任意の一時点におけるウィンドウとの1回のやりとりを想定することにより、ユーザイ
ンタフェースの設計を大幅に単純化することができる。ウィンドウ内で実行するアプリケ
ーション及び/又は処理は、この特定のウィンドウとの検出されたやりとりが、受け取る
唯一の入力であるという想定の下で動作することができる。従って、アプリケーション及
び/又は処理は、ウィンドウ外のディスプレイの他の部分で別のユーザインタラクション
が行われる可能性に関心を持つ必要はない。さらに、追加的にウィンドウを様々な要素に
分割して、個々の要素をウィンドウの特定の部分に関連付けることもできる。(ソフトウ
ェアオブジェクトなどの)別個のソフトウェア要素が、個々の要素を実行することができ
る。この場合も、個々のソフトウェアオブジェクトは、どこか別の場所で同時に行われる
可能性のあるやりとりとは無関係に、関連する領域で行われるやりとりを処理することが
できる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許出願第11/649,998号
【特許文献2】米国特許出願第10/903,964号
【発明の概要】
【発明が解決しようとする課題】
【0007】
一方、マルチタッチインタフェースを使用する場合、ディスプレイの異なる部分におい
て2又はそれ以上のタッチイベントを同時に行うことができる。このことにより、ディス
プレイを異なる部分に分割し、個々の部分に関連付けられたやりとりを異なる独立したソ
フトウェア要素に処理させることが困難になる可能性がある。さらに、ディスプレイを異
なる部分に分割したとしても、マルチタッチイベントが1つの部分で行われる可能性があ
る。従って、1つのアプリケーション、処理、又は別のソフトウェア要素が、複数の同時
に行われるタッチイベントを処理する必要が生じる場合がある。しかしながら、個々のア
プリケーション、処理、又はその他のソフトウェア要素が複数のタッチインタラクション
を考慮する必要がある場合、全体のコスト及びマルチタッチ対応デバイスにおいて実行す
るソフトウェアの複雑性は、望まずとも高くなってしまう。さらに詳細には、個々のアプ
リケーションが、入力される大量のタッチデータを処理する必要が生じる可能性がある。
これにより、表面上単純な機能のアプリケーションにおいて高度の複雑性が要求され、マ
ルチタッチ対応デバイスのためのプログラミングが一般に困難かつ高価なものになる場合
がある。また、シングルポインティングデバイスを想定した既存のソフトウェアは、マル
チポイント又はマルチタッチ対応デバイス上で動作できるバージョンへ転用又は移植する
のが非常に困難であると考えられる。
【課題を解決するための手段】
【0008】
本発明の実施形態は、アプリケーションレベルのソフトウェアに関するタッチイベント
を定めるための方法、ソフトウェア、デバイス及びAPIに関する。さらに、実施形態の
なかには、マルチタッチ対応デバイスにおいて実行するアプリケーションに関する単一の
及び複数のタッチイベントの認識を単純化することに関するものもある。単一の及び複数
のタッチイベントの認識を単純化するために、特定のウィンドウ内の個々のビューをマル
チタッチビュー又はシングルタッチビューのいずれかとして構成することができる。さら
に、個々のビューを排他的ビュー又は非排他的ビューのいずれかとして構成することがで
きる。ビューの構成に応じて、対象のビュー及びその他のビュー内のタッチイベントを無
視するか、或いは認識するかのいずれかを行うことができる。無視されたタッチをアプリ
ケーションへ送信する必要はない。選択的にタッチを無視することにより、さらに複雑な
アプリケーション又はソフトウェア要素のように同じデバイスにおいて(及びさらに同時
に)実行される高度なマルチタッチ機能を利用しない、より単純なアプリケーション又は
ソフトウェア要素を実現できるようになる。
【図面の簡単な説明】
【0009】
【図1】本発明の1つの実施形態による例示的なマルチタッチ対応デバイスの入/出力処理スタックを示す図である。
【図2A】本発明の1つの実施形態による例示的なマルチタッチ対応デバイスを示す図である。
【図2B】本発明の1つの実施形態による別の例示的なマルチタッチ対応デバイスを示す図である。
【図3】本発明の1つの実施形態による例示的なマルチタッチディスプレイを示す図である。
【図4】本発明の1つの実施形態による例示的なマルチタッチフラグの動作方法を示すフロー図である。
【図5A】本発明の1つの実施形態による例示的な排他的タッチフラグの動作方法を示すフロー図である。
【図5B】本発明の1つの実施形態による例示的な排他的タッチフラグの動作方法を示すフロー図である。
【発明を実施するための形態】
【0010】
以下の好ましい実施形態についての説明では、本明細書の一部を形成する添付図面を参
照し、該図面において、本発明を実施することができる特定の実施形態を例示として示す
。本発明の好ましい実施形態の範囲から逸脱することなく、別の実施形態を利用すること
もでき、構造的な変更を行うこともできる。
【0011】
本発明は、マルチポイント及びマルチタッチ対応デバイスにおいて実行するユーザイン
タフェースアプリケーションに関する単一の及び複数のタッチイベントの認識を単純化す
るタッチイベントモデルに関する。単一の及び複数のタッチイベントの認識を単純化する
ために、特定のウィンドウ内の個々のビューをマルチタッチビュー又はシングルタッチビ
ューのいずれかとして構成することができる。さらに、個々のビューを排他的ビュー又は
非排他的ビューのいずれかとして構成することができる。ビューの構成に応じて、対象の
ビュー及び別のビュー内のタッチイベントを無視するか、或いは認識するかのいずれかを
行うことができる。
【0012】
本明細書では本発明の実施形態について特定のマルチタッチ対応デバイスに関連して説
明し、例示するが、本発明の実施形態はこのようなデバイスに限定されるものではなく、
一般にいずれのマルチタッチ対応デバイスに対しても適用することができる。さらに、本
発明の実施形態はマルチタッチデバイスに限定されるわけではなく、上述の米国特許出願
第11/649,998号において解説されているようなマルチ近接センサデバイスなど
のマルチポイントデバイスも含む。
【0013】
実施形態のなかにはAPIに関連するものもある。一般に、APIとは、サービスに対
する要求をソフトウェアの動作からサポートするためにコンピュータシステムが提供する
ソースコードインタフェースのことである。APIは、データをメモリ内にレイアウトす
る方法をマシン語で明確に記述したものではなく、システムが構築される際に翻訳又はコ
ンパイルできるプログラム言語を用いて仕様化される。APIの機能を提供するソフトウ
ェアのことを、APIの実装という。コンピュータシステム、電子デバイス、ポータブル
デバイス及びハンドヘルドデバイスなどの様々なデバイスは、ソフトウェアアプリケーシ
ョンを有する。これらのデバイスは、ソフトウェアアプリケーションとユーザインタフェ
ースソフトウェアとの間でインタフェース接続を行って、デバイスのユーザに特定の機能
及び動作を提供する。
【0014】
本発明の少なくともいくつかの実施形態は、ソフトウェアアプリケーションとやりとり
するユーザインタフェースソフトウェアを含む環境に1又はそれ以上のAPIを含めるこ
とができる。様々な関数呼出し又はメッセージが、ユーザインタフェースソフトウェアと
ソフトウェアアプリケーションとの間でAPIを介して転送される。この関数呼出し又は
メッセージの転送は、関数呼出し又はメッセージの発行、開始、呼び出し、又は受信を含
むことができる。APIの例は、タッチイベント情報の送信を含むことができる。API
はまた、パラメータ、変数又はポインタを含む関数を実行することもできる。APIは、
開示された形で、又は別のパラメータの組み合わせの形でパラメータを受信することがで
きる。開示されたAPIに加え、別のAPIを個々に、或いは組み合わせて、開示された
APIと同様の機能を実行することができる。
【0015】
図1は、本発明のいくつかの実施形態による例示的なマルチタッチ対応デバイスの入/
出力処理スタックを示す図である。マルチタッチ対応デバイスの基礎レベルにハードウェ
ア100を備えることができる。ハードウェア100は、マルチタッチ対応パネル101
及び/又は加速度計102などの様々なハードウェアインタフェースコンポーネントを含
むことができる。マルチタッチパネルは、同時に複数のタッチを感知するディスプレイ及
びパネルを含むことができる。このようなパネルの例については、上述した第11/64
9,998号の出願においてより詳細に解説されている。加速度計は、マルチタッチ対応
デバイスの加速度を感知するハードウェアデバイスであってもよい。加速度計を使用して
、デバイスが動いた場合、どのように動いたか、落下したのかどうか等を感知することが
できる。ジャイロスコープ、スピーカ、ボタン、赤外線(IR)センサ等(図示せず)の
他のハードウェアインタフェースデバイスを含むこともできる。
【0016】
ドライバ又はドライバの組103は、ハードウェア100と通信することができる。ド
ライバは、ハードウェアから入力データを受信し、受信した入力データを処理することが
できる。コアオペレーティングシステム(OS)104は、(単複の)ドライバと通信す
ることができる。コアOSは、(単複の)ドライバから受信した未加工の入力データを処
理することができる。いくつかの実施形態では、ドライバをコアOSの一部と見なすこと
ができる。
【0017】
アプリケーションプログラミングインタフェース(API)の組105は、コアOSと
通信することができる。これらのAPIは、通常、(例えば、Linux又はUNIX
APIなどの)オペレーティングシステムに付属しているAPIの組であってもよい。ユ
ーザインタフェースAPI106(UI API)は、デバイス上で実行するアプリケー
ションが使用するように設計されたAPIの組を含むことができる。UI APIはOS
APIを利用することができる。デバイス上で実行するアプリケーション107は、ユ
ーザと通信するためにUI APIのAPIを利用することができる。そして、UI A
PIが下位レベル要素と通信して、最終的にマルチタッチパネル101及び様々な他のユ
ーザインタフェースハードウェアと通信する。個々の層は下部層を利用できるが、必ずし
もそれが必要なわけではない。例えばいくつかの実施形態では、アプリケーション107
は、場合によってはOS API105と通信することができる。API105及び10
6は、アプリケーションプログラミングインタフェースのそれぞれの組と同時にこれらA
PIのそれぞれの実装を含むことができる。例えば、UI API106はまた、UI
APIを実装するためのユーザインタフェース(UI)ソフトウェアを含むこともできる

【0018】
図2A及び図2Bは、本発明のいくつかの実施形態による2種類の例示的なマルチタッ
チ対応デバイスを示す図である。図2Aは例示的なデバイス200を示す図である。デバ
イス200は、バス204を介して接続されたCPU201及びメモリ202を含むこと
ができる。バスは、マルチタッチディスプレイ203と接続することもできる。マルチタ
ッチディスプレイは、マルチタッチパネル及びディスプレイを含むことができる。マルチ
タッチパネルとディスプレイとを組み合わせて、マルチタッチディスプレイ203を形成
することができる。マルチタッチディスプレイは、図1のハードウェア層100内のマル
チタッチパネル101に対応することができる。CPUを使用して、メモリに記憶された
ソフトウェアを実行することができる。CPUにより実行されるソフトウェアは、図1の
層103〜109を含むことができる。従って、ソフトウェアは、ドライバ、OS、様々
なAPI及びアプリケーションを含むことができる。
【0019】
図2Bは別のデバイス210を示す図である。デバイス210はデバイス200と同様
のものであってもよい。しかしながら、デバイス210は、デバイス200の単一ユニッ
トではなく別個のマルチタッチパネル(212)及びディスプレイ(211)を含むこと
ができる。従って、デバイス210では、マルチタッチパネルとやりとりするためにディ
スプレイにタッチする必要はない。デバイス210は、例えば、マルチタッチトラックパ
ッドを装備したラップトップ型コンピュータ(トラックパッドとして機能するマルチタッ
チパネル)であってもよい。
【0020】
図2A及び図2Bのマルチタッチパネル及び/又はディスプレイはまた、上述の米国出
願第11/649,998号において解説されている近接感知などの別の感知技術を利用
することもできる。一般に、図2A及び図2Bのデバイスにマルチポイントパネル及び/
又はディスプレイを使用することができる。マルチポイントパネル及び/又はディスプレ
イは、様々な種類のセンサ技術を特徴として有することができる。例えば、これらは、マ
ルチタッチ技術のみ(従って、マルチタッチパネル及び/又はディスプレイということに
なる)、マルチ近接感知技術、これら両方の組み合わせ、又は別の種類のマルチポイント
技術を特徴として有することができる。
【0021】
図2A及び図2Bのデバイスは、様々な異なる種類のマルチタッチ対応デバイスを含む
ことができる。例えば、これらは、移動電話機、ポータブルビデオゲーム機、電子音楽プ
レイヤ、電子ブック、PDA、電子手帳、電子メールデバイス、ラップトップ型又は別の
パーソナルコンピュータ、キオスクコンピュータ、自動販売機等を含むことができる。
【0022】
図3は、例示的なマルチタッチディスプレイ300を示す図である。このマルチタッチ
ディスプレイは、図2Aのディスプレイ203又は図2Bのディスプレイ211であって
もよい。このディスプレイは、(図2Aのデバイス200又は図2Bのデバイス210な
どの)ディスプレイと一体化されたデバイスにおいて実行するソフトウェアにより生成さ
れた(グラフィクスなどの)様々なユーザインタフェース要素を表示することができる。
ユーザは、ソフトウェアとやりとりするために、様々なユーザインタフェース要素とやり
とりすることができる。図2Aのデバイスを使用する場合、ユーザは、ディスプレイを直
接タッチすることによりユーザインタフェース要素とやりとりすることができる。図2B
のデバイスを使用する場合、ユーザは、ソフトウェアとのやりとりに使用する、ディスプ
レイ211上の1又はそれ以上のカーソルを移動及び制御するために、別個のマルチタッ
チパネル212にタッチすることができる。
【0023】
ディスプレイ300に表示されるユーザインタフェース要素は、1又はそれ以上のビュ
ーを含むことができる。個々のビューは、別個のソフトウェア要素が対応するグラフィッ
クユーザインタフェース要素を表すことができる。別個のソフトウェア要素は、異なるア
プリケーション、(同じアプリケーション内のものであったとしても)異なる処理又はス
レッド、異なるルーチン又はサブルーチン、異なるオブジェクト等を含むことができる。
いくつかの実施形態では、個々の別個のソフトウェア要素は、ディスプレイのそれぞれの
部分に対応するユーザインタフェース要素を作成すると同時に、ディスプレイの該当する
部分に対して行われるタッチ入力を受信し、これに対応することができる。図1に関連し
て解説した様々な層により、タッチ入力を処理することができ、その後これらの層は、処
理済みの入力データをソフトウェア要素(これはアプリケーション109の一部であって
もよい)へ送信することができる。処理済みのタッチ入力データを(単複の)タッチイベ
ントと呼ぶことができ、これらをマルチタッチパネルにより生成された未加工のタッチデ
ータよりも対応が簡単なフォーマットにすることができる。例えば、個々のタッチイベン
トは、現在タッチが行われている座標の組を含むことができる。いくつかの実施形態では
、この座標の組はタッチの重心に対応するものであってもよい。説明を簡潔かつ単純にす
るために、以下の解説は、単純にビュー自体を参照することにより、ビューに関連付けら
れたソフトウェア要素に言及できるものとする。
【0024】
ビューはネスティングすることができる。換言すれば、ビューは他のビューを含むこと
ができる。従って、第1のビューに関連付けられたソフトウェア要素は、第1のビュー内
のビューに関連付けられた1又はそれ以上のソフトウェア要素を含み、或いはこれにリン
クすることができる。アプリケーションに関連付けできるビューもあれば、グラフィック
ユーザインタフェース、ウィンドウマネージャなどの高レベルなOS要素に関連付けでき
るビューもある。
【0025】
図3の例示的なディスプレイは、音楽閲覧用アプリケーションを示す。このディスプレ
イは、デバイス全体の状態を示すステータスバービュー301を含むことができる。ステ
ータスバービューはOSの一部であってもよい。タイトルビュー302を含むこともでき
る。タイトルビューは、それ自体がセンタータイトルビュー310、バックボタン312
及びフォワードボタン311などの複数の他のビューを含むことができる。テーブルビュ
ー303を含むこともできる。テーブルビュー303は、テーブル要素ビュー304など
の1又はそれ以上のテーブル要素ビューを含むことができる。図示のように、1つの実施
形態では、テーブル要素ビューは曲名であってもよい。ボタンバービュー305を含むこ
ともできる。ボタンバービューはボタン306〜309を含むことができる。
【0026】
個々のビュー及びその関連するソフトウェア要素は、これらの特定のビューにおいて行
われるタッチイベントを受信し、処理し、これに対応することができる。従って、例えば
、ユーザが曲名ビュー304にタッチした場合、このビューに関連付けられたソフトウェ
ア要素は、ビューがタッチされたことを示すタッチイベントを受信し、これを処理し、適
宜対応することができる。例えば、ソフトウェア要素は、ビューのグラフィック表示を変
更し(すなわちビューを強調表示し)、及び/又はタッチされたビューに関連付けられた
曲を演奏するなどの別のアクションを引き起こすことができる。
【0027】
いくつかの実施形態では、タッチイベントはビュー階層の最下位レベルにおいて処理さ
れる。従って、例えば、ユーザがタイトルバービュー302にタッチした場合、タイトル
バービューに関連付けられたソフトウェア要素がこのタッチイベントを直接処理する必要
はなく、代わりに、タッチが行われたタイトルバービュー内に含まれるビューに関連付け
られたソフトウェア要素(すなわち、ビュー310、311及び312のうちの1つに関
連付けられたソフトウェア要素)がこれを処理することができる。いくつかの実施形態で
は、より高レベルのビューのなかにはタッチイベントに対応できるものもある。また、タ
ッチされたビューに関連付けられていない様々なソフトウェア要素が、関連付けられてい
ないにもかかわらず、ビューがタッチされた旨の通知を受けたり、或いはこのことを発見
することができる。
【0028】
ディスプレイ300はマルチタッチディスプレイであるため、同時に複数のタッチを行
うことができる。同じビューにおいて、或いは2又はそれ以上の異なるビューにおいて複
数のタッチを行うことができる。さらに、ユーザは、(例えば、1又はそれ以上の指を押
し下げ、それらを動かすことにより)予め定めた意味を含むことができるジェスチャを行
うことができる。マルチタッチジェスチャについては、2004年7月30日に出願され
た「タッチセンシティブ入力デバイスに対するジェスチャ」という名称の米国特許出願第
10/903,964号においてより詳細に解説されており、該特許は全体が引用により
本明細書に組み入れられる。
【0029】
ビューは、ビュー内で開始するタッチイベントを受信することができる。ユーザが指を
ディスプレイに押し付けて保持した場合、ビューは、連続タッチを示す複数のタッチイベ
ントを受信することができる。ユーザが押し付けた指を動かした場合、ビューは、タッチ
の動きを示す複数のタッチイベントを受信することができる。ユーザが押し付けた指をビ
ューの外へ動かした場合、ビューは、この動きに関連付けられたタッチイベントをそのま
ま受信することができる(指を動かした先のビューは、このようなタッチイベントを受信
する必要はない)。このように、ビューは、ビューの場所から開始されたジェスチャ又は
動きがビューの外へ続けられた場合であっても、これらに関連付けられたイベントを受信
することができる。
【0030】
タッチとは、指又は体の他の一部或いは物体をマルチタッチパネル(又はマルチタッチ
ディスプレイ)の表面に押し付けたことから始まり、指又は物体がディスプレイから除去
されたときに終了する行為のことを意味する。従って、タッチは、指又は物体を動かすこ
と、或いは指又は物体を一定の時間同じ場所で保持することを含むことができる。
【0031】
1又はそれ以上のAPI(及びこれらのそれぞれの実装)によって、タッチイベントを
ビュー(又はビューを実行するソフトウェア要素)へ送信することができる。タッチイベ
ントに対応するためのAPIの例については、以下に別紙Aで提供する。別紙AのAPI
によれば、APIは、1又はそれ以上のシングルタッチデータ構造(又はタッチデータ構
造)を含むタッチイベントデータ構造を個々のビューへ送信することができる。個々のタ
ッチイベントデータ構造は、ある特定の時点にビューにおいて行われるすべてのタッチの
現在の状態を定めることができる。タッチイベントデータ構造内のそれぞれのタッチデー
タ構造は、ある特定の時点における1又はそれ以上のそれぞれのシングルタッチの現在の
状態を定めることができる。従って、ある特定の時点に特定のビューにおいて行われる3
つのタッチが存在する場合、5つのタッチの状態を定める3つのタッチデータ構造を含む
タッチイベントデータ構造をビューへ送信できることになる。いくつかの実施形態では、
タッチデータ構造と関連するタッチがもはや行われていない場合でも、タッチが終了した
ことをビューに通知するために、タッチデータ構造を送信することができる。
【0032】
上述したように、タッチは、瞬間的に行う必要のない行為を含むことができる。例えば
、タッチは、一定の時間ディスプレイに対して指を動かし、或いは保持する行為を含むこ
とができる。しかしながら、タッチデータ構造は、ある特定の時点におけるタッチの状態
を定める。従って、複数のタッチデータ構造を単一のタッチに関連付けることにより、異
なる時点における単一のタッチを定めることができる。
【0033】
個々のタッチデータ構造は様々なフィールドを含むことができる。「ビューに対する最
初のタッチ」フィールドは、タッチデータ構造がある特定のビューに対する最初のタッチ
を定めるかどうかを示すことができる(というのは、ビューを実行するソフトウェア要素
のインスタンスが作成されるからである)。「タイムスタンプ」フィールドは、タッチデ
ータ構造が関連する特定の時点を示すことができる。
【0034】
「info」フィールドを使用して、タッチが基本的なジェスチャであるかどうかを示
すことができる。例えば、「info」フィールドは、タッチがスワイプであるかどうか
、また、もしそうであれば、このスワイプがどの方向に向けられたものであるかを示すこ
とができる。スワイプとは、1又はそれ以上の指を真っ直ぐな方向に素早くドラッグする
ことである。APIの実装は、タッチがスワイプであるかどうかを判断し、「info」
フィールドを介してその情報をアプリケーションへ受け渡すことができ、このようにして
、タッチがスワイプであった場合に必要となる何らかのデータ処理を行うアプリケーショ
ンを軽減させる。
【0035】
「タップカウント」フィールドは、タッチが発生した位置においてタップが何回連続し
て行われたかを示すことができる。タップとは、ある特定の位置においてパネルに対して
指を素早く押し、持ち上げることであると定義することができる。パネルの同じ位置にお
いて立て続けに指を押して離せば、複数の連続したタップを行うことができる。従って、
APIの実装は、様々なアプリケーションに対してタップをカウントし、「タップカウン
ト」フィールドを介してこの情報を中継することができる。同じ位置における複数のタッ
プは、タッチ対応インタフェースが命令を記憶するのに非常に有用かつ簡単なものである
と考えられることがある。従って、タップをカウントすることにより、APIは、この場
合もアプリケーションから何らかのデータ処理を軽減させることができる。
【0036】
「フェーズ」フィールドは、現在タッチが属する特定の局面を示すことができる。フェ
ーズフィールドは、タッチデータ構造が、前回のタッチデータ構造により参照されなかっ
た新規のタッチを定めることを示すことができる「タッチフェーズ開始」などの様々な値
を有することができる。「タッチフェーズ移動」値は、定められたタッチが、前回のタッ
チデータ構造において定められた位置から動かされたことを示すことができる。「タッチ
フェーズ静止」値は、タッチが、このタッチに対応する最後のタッチデータ構造が生成さ
れてからずっと同じ位置に留まったままであることを示すことができる。「タッチフェー
ズ終了」値は、タッチが終了した(例えば、ユーザがマルチタッチディスプレイの表面か
ら自分の指を持ち上げた)ことを示すことができる。「タッチフェーズキャンセル」値は
、タッチがデバイスによってキャンセルされたことを示すことができる。キャンセルされ
たタッチとは、必ずしもユーザが終了させたタッチであるとは限らず、デバイスが無視す
ると決定できるタッチのことであってもよい。例えば、デバイスは、タッチが意図せずに
生成されたものである(すなわち、ポータブルマルチタッチ対応デバイスをポケットに入
れた結果)と判断し、この理由でタッチを無視することができる。個々の「フェーズフィ
ールド」の値は整数であってもよい。
【0037】
このようにして、個々のタッチデータ構造は、(タッチが静止したものであるか、動い
ているかなどの)ある特定の時点におけるタッチに何が起きているかと同時に、(位置な
どの)タッチに関連する他の情報を定めることができる。従って、個々のタッチデータ構
造は、ある特定の時点における特定のタッチの状態を定めることができる。特定のビュー
がある時点において受信しているすべてのタッチの状態を定めることができるタッチイベ
ントデータ構造に、同じ時点を参照する1又はそれ以上のタッチデータ構造を追加するこ
とができる(上述したように、タッチデータ構造のなかには、終了した、及びもはや受信
していないタッチを参照できるものもある)。ビューにおいて行われているタッチについ
て記述する連続した情報をソフトウェアに提供するために、ビューを実行するソフトウェ
アへ複数のタッチイベントデータ構造を時間の経過とともに送信することができる。ハー
ドウェア100、ドライバ103、コアOS104、OS API105及びUI AP
Iなどの、デバイスの1又はそれ以上の要素が、マルチタッチパネル101におけるタッ
チを検出し、これらのタッチを定める様々なタッチイベントデータ構造を生成することが
できる。
【0038】
複数のタッチ及びマルチタッチジェスチャに対応する能力により、様々なソフトウェア
要素に複雑さが加わる可能性がある。場合によっては、高度で望ましいインタフェース機
能を実現するためにこのような追加の複雑さが必要なこともある。例えば、ゲームは、多
くの場合複数のボタンを同時に押すことが必要とされるため、ゲームには、異なるビュー
において行われる複数の同時に起こるタッチに対応する能力が必要となる場合がある。し
かしながら、より単純なアプリケーション及び/又はビュー(及びこれらの関連するソフ
トウェア要素)のなかには、高度なインタフェース機能を必要としないものもある。例え
ば、(ボタン306のような)単純なボタンは単一のタッチで良好に動作することができ
、マルチタッチ機能を求める必要はない。これらの場合、基礎を成すOSが、(マルチタ
ッチデータなどの)不要な又は過度のタッチデータを、(ボタンなどの)単一のタッチの
みで動作できることを意図されたビューに関連付けられたソフトウェア要素へ送信するこ
とができる。ソフトウェア要素は、このデータの処理を必要とする可能性があるため、こ
のソフトウェア要素は、単一のタッチのみが関連するビューに関連付けられている場合で
も、複数のタッチに対応するソフトウェア要素のすべての複雑さを特徴として備えること
が必要となる可能性がある。従来、マウスインタフェース環境(すなわち様々なボタン等
)においてプログラムが非常に簡単であったソフトウェア要素は、マルチタッチ環境では
さらにいっそう複雑になり得るため、上記によりデバイス用のソフトウェアの開発コスト
が上がる可能性がある。
【0039】
本発明の実施形態は、予め定めた設定に基づいて様々なソフトウェア要素にタッチデー
タを選択的に提供することにより上述の問題点に対処する。この結果、選択したソフトウ
ェア要素に対してより単純なインタフェースを提供できる一方で、その他のソフトウェア
要素は、より複雑なマルチタッチ入力を利用できるようになる。
【0040】
本発明の実施形態は、1又はそれ以上のビューに関連付けられた1又はそれ以上のフラ
グに依拠することができ、個々のフラグ又はこれらの組み合わせは、特定のビューに処理
を行うタッチイベントを示す。例えば、 マルチタッチフラグ及び/又は排他的タッチフ
ラグを使用することができる。マルチタッチフラグは、ある特定のビューが複数の同時に
起こるタッチを受信できるかどうかを示すことができる。排他的タッチフラグは、ある特
定のビューがタッチイベントを受信している間に、他のビューがタッチイベントを受信で
きるようにすべきかどうかを示すことができる。
【0041】
図4は、本発明の1つの実施形態によるマルチタッチフラグの動作を示すフローチャー
トである。ステップ400において、ユーザは、ビュー内の第1の位置においてビューに
タッチすることができる。ステップ400のタッチを受信した場合、マルチタッチディス
プレイ上にその他のタッチは存在しないと想定することができる。ステップ402におい
て、OSは、受信したタッチを定めるタッチイベントを、タッチが行われた位置に関連付
けられたソフトウェア要素へ送信することができる。
【0042】
ステップ404において、ユーザは、第1のタッチを離さないうちに(すなわち、指を
第1の位置で押し下げたままで)第2の位置においてビューにタッチすることができる。
従って、例えば、ユーザは、ステップ400においてテーブル要素ビュー304の右部分
にタッチし、ステップ404において右部分から自分の指を離さずにテーブル要素ビュー
304の左部分にタッチすることができる。従って、(このようにして、ディスプレイ3
00のマルチタッチ機能を利用して)第2のタッチが第1のタッチと同時に起こることに
なる。
【0043】
ステップ406において、OSは、タッチされたビューに関するマルチタッチフラグが
設定されているかどうかを判断する。マルチタッチフラグが設定されていれば、このビュ
ーを、複数の同時に起こるタッチに対応できるビューとすることができる。従って、ステ
ップ408において、第2のタッチに対応する第2のタッチイベントを、このビューに関
連付けられたソフトウェア要素へ送信することができる。なお、第1のタッチイベントが
依然として行われていることを示す、第1のタッチイベントの新たなインスタンスを送信
することもできる(すなわち、第1の位置における指は持ち上げられていない)。この第
1のタッチイベントの新たなインスタンスは、第1の位置における指が持ち上げられるこ
となくこの位置から取り除かれた場合(すなわち、ディスプレイの表面上を「ドラッグ」
された場合)、異なる位置を指定することができる。
【0044】
一方、マルチタッチフラグが設定されていなければ、OSは、第2のタッチを無視する
か、又は妨げることができる。第2のタッチを無視することにより、第2のタッチに関連
付けられたいずれのタッチイベントも、タッチされたビューに関連付けられたソフトウェ
ア要素へ送信しないという結果をもたらすことができる。いくつかの実施形態では、必要
であれば、OSは第2のタッチのその他のソフトウェア要素に通知を行うことができる。
【0045】
このようにして、本発明の実施形態により、一度に1つのタッチのみに対応するように
プログラムされた比較的単純なソフトウェア要素が、これらのソフトウェア要素のマルチ
タッチフラグをアサートされないままで保持できるようになり、ひいては、複数の同時に
起こるタッチの一部であるタッチイベントがこれらのソフトウェア要素へ送信されなくな
ることを確実にする。一方、複数の同時に起こるタッチに対応することができるより複雑
なソフトウェア要素は、これらのソフトウェア要素のマルチタッチフラグをアサートし、
これらのソフトウェア要素の関連するビューにおいて行われるすべてのタッチに関するタ
ッチイベントを受信することができる。この結果、より複雑な要素に高度なマルチタッチ
機能を提供する一方で、単純なソフトウェア要素のための開発コストを下げることができ
るようになる。
【0046】
図5A及び図5Bは、本発明の1つの実施形態による排他的タッチフラグの例示的な動
作方法を示すフローチャートである。ステップ500において、ユーザは第1のビューに
タッチすることができる。ステップ502において、OSは、第1のビューに関連付けら
れた第1のソフトウェア要素へタッチイベントを送信することができる。ステップ504
において、ユーザは、第1のタッチを離さずに第2のビューにタッチすることができる。
【0047】
ステップ506において、OSは、第1のビューに関する排他的タッチフラグがアサー
トされているかどうかをチェックすることができる。設定されていれば(アサートされて
いれば)、第1のビューは排他的にタッチを受信する必要があることを意味し、別のタッ
チが別のビューへ送信されることはない。従って、排他的タッチフラグが設定されている
場合、OSは、第2のタッチを無視する(又は妨げる)ことができ、いずれのソフトウェ
ア要素へもこのタッチを送信することはない。排他的ビューフラグが設定されていなけれ
ば、処理は図5Bのステップ510へと継続することができる。
【0048】
ステップ510において、OSは、第2のビューに関する排他的ビューフラグが設定さ
れているかどうかを判断することができる。このフラグが設定されていれば、第2のビュ
ーは排他的タッチイベントのみを受信することができる。従って、別のビュー(すなわち
第1のビュー)によりすでに受信された別のタッチイベントが存在する場合、第2のビュ
ーはタッチイベントを受信することはできず、OSは第2のタッチを無視することができ
る(ステップ512)。しかしながら、第2のタッチに関する排他的タッチフラグが設定
されていなければ(アサートされていなければ)、OSは、第2のタッチに関連付けられ
たタッチイベントを第2のビューへ送信することができる。さらに詳細には、OSは、第
2のタッチに関連付けられたタッチイベントを、第2のビューに関連付けられたソフトウ
ェア要素へ送信することができる(ステップ514)。
【0049】
このようにして、排他的タッチフラグは、排他的なものとしてフラグを立てられたビュ
ーが、ディスプレイ上でタッチイベントを受信する唯一のビューである場合にのみタッチ
イベントを受信することを確実にすることができる。排他的フラグは、マルチタッチ対応
デバイスにおいて実行するアプリケーションのソフトウェアを単純化する際に非常に有用
なものになり得る。或る状況では、複数のビューが同時にタッチを受信できるようにする
ことにより、複雑な競合及びエラーが生じる可能性がある。例えば、曲を削除するための
ボタンと曲を演奏するためのボタンとが同時に押された場合、エラーが生じる可能性があ
る。このような競合を避けるには、複雑かつコストのかかるソフトウェアが必要となる。
しかしながら、本発明の実施形態は、排他的タッチフラグを設定されたビューが、タッチ
イベントを受信している唯一のビューである場合にのみタッチイベントを受信することを
確実にすることができる排他的タッチフラグを提供することにより、このようなソフトウ
ェアの必要性を低減させることができる。或いは、1又はそれ以上のビューが、これらの
ビューの排他的タッチフラグをアサートされないようにすることにより、これらのビュー
の2又はそれ以上における複数の同時に起こるタッチを許可することもできる。
【0050】
いくつかの実施形態では、排他的フラグは、ディスプレイ全体に関する排他性を示すこ
とができる。従って、排他的フラグを設定されたビューがタッチイベントを受信している
場合、ディスプレイ内の他のすべてのビューが任意のタッチイベントを受信するのを妨げ
ることができる。代替の実施形態では、排他的フラグは、単一のアプリケーション又は単
一のウィンドウのようなより小さな領域における排他性を示すことができる。例えば、排
他的フラグを設定された第1のビューは、第1のビューがタッチイベントを受信している
間、同じウィンドウ内にあるその他のビューが任意のタッチイベントを受信するのを妨げ
ることができるが、別のウィンドウ内のビューを妨げることはない。
【0051】
排他的タッチフラグとマルチタッチフラグとを組み合わせることもできる。従って、表
示されている1又はそれ以上のビューは、各々、マルチタッチフラグと排他的タッチフラ
グとの2つのフラグを含むことができることになる。いくつかの実施形態では、すべての
表示されているビューがこれら2つのフラグを含むことができる。一方のフラグの値が他
方の値に依存する必要はない。1つの例では、排他的フラグとマルチタッチフラグとの両
方を設定されたビューは、ビュー内の複数のタッチを許可することはできるが、タッチを
排他的にのみ受信する(すなわち、このビューがタッチを受信している場合、その他のビ
ューへのタッチを妨げることができる)。両方のフラグがアサートされていない状態のビ
ューは、ビュー内の複数のタッチを妨げることができるが、別のビューにおいてタッチが
同時に行われた場合でもビュー内の単一のタッチを許可する。マルチタッチフラグがアサ
ートされておらず、排他的タッチフラグがアサートされている状態のビューは、他のいず
れのビューにおいても別のタッチが行われていない場合にビュー内の単一のタッチのみを
許可することができる。マルチタッチフラグがアサートされており、排他的タッチフラグ
がアサートされていない状態のビューは、このビューに関して受信したすべてのタッチを
許可することができる。両方のフラグがアサートされた状態のビューは、別のビューに対
して別のタッチが行われていない間、ビュー内の複数のタッチを許可することができる。
【0052】
代替の実施形態は、これらのフラグの一方(及び関連する機能)のみを特徴として有す
ることができる。従って、実施形態によっては、マルチタッチフラグのみ又は排他的タッ
チフラグのみしか使用できないものもある。いくつかの実施形態では、異なるビューが異
なるフラグの組み合わせを使用することができる。
【0053】
図4、図5A及び図5BのOSが行う様々な機能を、様々なユーティリティソフトウェ
アなどの別のソフトウェアが代わりに行うことができる。図1の層103から108まで
の中の任意の1つの層において、これらの機能をソフトウェアが行うことができる。代替
の実施形態では、これらの機能性をハードウェア100が行うことさえもできる。
【0054】
以下に示すのは、本発明のいくつかの実施形態によるビューに関連付けられた例示的な
ソフトウェア要素の方法を示す例示的なコードの組である。当業者であれば、他のコード
を使用して上述の機能を実行できることを認識するであろう。
【0055】
上記の解説はマルチタッチディスプレイ及びパネルを中心に行っているが、本発明はマ
ルチタッチデバイスのみに限定されるものではなく、上述のように(例えば、マルチ近接
センサデバイスを含む)様々なマルチポイントデバイスを含むことができる。マルチポイ
ントデバイスでは、マルチポイントフラグ及び排他的ポイントフラグを使用することがで
きる。これらのフラグは、上述のマルチタッチフラグ及び排他的タッチフラグと同様に動
作することができる。
【0056】
本発明について、本発明の実施形態に関連して添付図面を参照しながら十分に説明した
が、当業者には様々な変更及び修正が明らかになるであろう。添付の特許請求の範囲に定
められるように、このような変更及び修正も本発明の範囲内に含まれると理解すべきであ
る。
【0057】
〔別紙A〕例示的UI APIコード




【特許請求の範囲】
【請求項1】
マルチタッチデバイスにおけるタッチイベントを処理する方法であって、
1又はそれ以上のビューを表示するステップと、
各々が特定のビューに関連付けられた1又はそれ以上のソフトウェア要素を実行するス
テップと、
マルチタッチフラグ又は排他的タッチフラグを個々のビューに関連付けるステップと、
前記1又はそれ以上のビューにおいて1又はそれ以上のタッチを受信するステップと、
前記マルチタッチフラグ及び前記排他的タッチフラグの値に基づいて、各々が受信したタッチについて記述する1又はそれ以上のタッチイベントを、タッチを受信した前記1又はそれ以上のビューに関連付けられた1又はそれ以上の前記ソフトウェア要素へ選択的に送信するステップと、
を含むことを特徴とする方法。
【請求項2】
マルチタッチフラグが特定のビューに関連付けられている場合、前記特定のビューにお
いて受信したタッチイベントと同時に起こる別のタッチイベントを、別のビューに関連付
けられたソフトウェア要素へ送信できるようにするステップをさらに含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
マルチタッチフラグが特定のビューに関連付けられている場合、前記マルチタッチフラ
グは、前記特定のビューに関連付けられた前記ソフトウェア要素が、前記ビューにおいて
行われる複数の同時に起こるタッチを処理できるかどうかを示す、
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記排他的タッチフラグは、アサートされた排他的タッチフラグを有する前記ビューに
おいてタッチを受信している間、前記アサートされた排他的タッチフラグを有するビュー
以外のビューに関連付けられたソフトウェア要素へタッチイベントが送信されないように
する、
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記マルチタッチデバイスは移動電話機である、
ことを特徴とする請求項1に記載の方法。
【請求項6】
前記マルチタッチデバイスはデジタルメディアプレイヤである、
ことを特徴とする請求項1に記載の方法。
【請求項7】
マルチタッチフラグを第1のビューに関連付けるステップと、
前記1又はそれ以上のビューのうちの1つである前記第1のビューにおいて第1のタッ
チを受信するステップと、
前記第1のタッチについて記述するタッチイベントを、前記1又はそれ以上のソフトウ
ェア要素のうちの1つであるとともに前記第1のビューに関連付けられた第1のソフトウ
ェア要素へ送信するステップと、
前記第1のビューに関連付けられた前記マルチタッチフラグが、前記第1のビューがマ
ルチタッチビューであることを示すかどうかを判定するステップと、
前記第1のビューがマルチタッチビューでない場合、前記第1のタッチがもはや受信さ
れなくなるまで前記第1のビューにおいて行われる他の任意のタッチについて記述するす
べてのタッチイベントを妨げるステップと、
を含むことを特徴とする請求項1に記載の方法。
【請求項8】
排他的タッチフラグを前記1又はそれ以上のビューの各々に関連付けるステップと、
前記第1のビューに関連付けられた前記排他的タッチフラグが、前記第1のビューが排
他的タッチビューであることを示すかどうかを判定するステップと、
前記第1のビューが排他的タッチビューである場合、前記第1のタッチがもはや受信さ
れなくなるまで前記第1のビュー以外の任意のビューにおいて行われる他の任意のタッチ
について記述するすべてのタッチイベントを妨げるステップと、
を含むことを特徴とする請求項7に記載の方法。
【請求項9】
前記第1のビューは排他的タッチビューではなく、
前記方法は、
第2のビューにおいて行われるとともに第2のソフトウェア要素に関連付けられた、マ
ルチタッチパネルにおける第2のタッチを受信するステップと、
前記第2のビューに関連付けられた前記排他的タッチフラグが、前記第2のビューが排
他的タッチビューであることを示すかどうかを判定するステップと、
前記第2のビューが排他的タッチビューである場合、前記第1のタッチがもはや受信さ
れなくなるまで、前記第2のタッチに関連付けられたタッチイベントが前記第2のソフト
ウェア要素へ送信されないようにするステップと、
を含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記第2のビューが排他的タッチビューでない場合、前記第2のタッチについて記述す
るタッチイベントを前記第2のソフトウェア要素へ送信するステップをさらに含む、
ことを特徴とする請求項9に記載の方法。
【請求項11】
マルチタッチデバイスにおける1又はそれ以上のタッチイベントを認識する方法であっ
て、
1又はそれ以上のビューを定めるステップと、
排他的タッチフラグ又はマルチタッチフラグを個々のビューに割り当てるステップと、
個々のビューに関する前記排他的タッチフラグ又は前記マルチタッチフラグに基づいて、個々のビューにおいて検出された1又はそれ以上のタッチイベントを受け入れるステップと、
を含むことを特徴とする方法。
【請求項12】
マルチタッチデバイスにおいて実行するように構成された複数の命令を含むコンピュー
タ可読媒体であって、前記命令は、前記マルチタッチデバイスに、
1又はそれ以上のビューを表示させ、
各々が特定のビューに関連付けられた1又はそれ以上のソフトウェア要素を実行させ、
マルチタッチフラグ又は排他的タッチフラグを個々のビューに関連付けさせ、
前記1又はそれ以上のビューにおいて1又はそれ以上のタッチを受信させ、
前記マルチタッチフラグ及び前記排他的タッチフラグの値に基づいて、各々が受信したタッチについて記述する1又はそれ以上のタッチイベントを、タッチを受信した前記1又はそれ以上のビューに関連付けられた1又はそれ以上の前記ソフトウェア要素へ選択的に送信させる、
ように構成されたことを特徴とするコンピュータ可読媒体。
【請求項13】
前記命令は、前記マルチタッチデバイスに、マルチタッチフラグが特定のビューに関連
付けられている場合、前記特定のビューにおいて受信したタッチイベントと同時に起こる
別のタッチイベントを、別のビューに関連付けられたソフトウェア要素へ送信できるよう
にさせるようにさらに構成された、
ことを特徴とする請求項12に記載のコンピュータ可読媒体。
【請求項14】
マルチタッチフラグが特定のビューに関連付けられている場合、前記マルチタッチフラ
グは、前記特定のビューに関連付けられた前記ソフトウェア要素が、前記ビューにおいて
行われる複数の同時に起こるタッチを処理できるかどうかを示す、
ことを特徴とする請求項12に記載のコンピュータ可読媒体。
【請求項15】
前記排他的タッチフラグは、アサートされた排他的タッチフラグを有する前記ビューに
おいてタッチを受信している間、前記アサートされた排他的タッチフラグを有するビュー
以外のビューに関連付けられたソフトウェア要素へタッチイベントが送信されないように
する、
ことを特徴とする請求項12に記載のコンピュータ可読媒体。
【請求項16】
前記マルチタッチデバイスは移動電話機である、
ことを特徴とする請求項12に記載のコンピュータ可読媒体。
【請求項17】
前記マルチタッチデバイスはデジタルメディアプレイヤである、
ことを特徴とする請求項12に記載のコンピュータ可読媒体。
【請求項18】
前記命令は、前記マルチタッチデバイスに、
マルチタッチフラグを第1のビューに関連付けさせ、
前記1又はそれ以上のビューのうちの1つである前記第1のビューにおいて第1のタッ
チを受信させ、
前記第1のタッチについて記述するタッチイベントを、前記1又はそれ以上のソフトウ
ェア要素のうちの1つであるとともに前記第1のビューに関連付けられた第1のソフトウ
ェア要素へ送信させ、
前記第1のビューに関連付けられた前記マルチタッチフラグが、前記第1のビューがマ
ルチタッチビューであることを示すかどうかを判定させ、
前記第1のビューがマルチタッチビューでない場合、前記第1のタッチがもはや受信さ
れなくなるまで前記第1のビューにおいて行われる他の任意のタッチについて記述するす
べてのタッチイベントを妨げさせる、
ようにさらに構成されたことを特徴とする請求項12に記載のコンピュータ可読媒体。
【請求項19】
前記命令は、前記マルチタッチデバイスに、
排他的タッチフラグを前記1又はそれ以上のビューの各々に関連付けさせ、
前記第1のビューに関連付けられた前記排他的タッチフラグが、前記第1のビューが排
他的タッチビューであることを示すかどうかを判定させ、
前記第1のビューが排他的タッチビューである場合、前記第1のタッチがもはや受信さ
れなくなるまで前記第1のビュー以外の任意のビューにおいて行われる他の任意のタッチ
について記述するすべてのタッチイベントを妨げさせる、
ようにさらに構成されたことを特徴とする請求項18に記載のコンピュータ可読媒体。
【請求項20】
前記第1のビューは排他的タッチビューではなく、前記命令は、前記マルチタッチデバ
イスに、
第2のビューにおいて行われるとともに第2のソフトウェア要素に関連付けられた、マ
ルチタッチパネルにおける第2のタッチを受信させ、
前記第2のビューに関連付けられた前記排他的タッチフラグが、前記第2のビューが排
他的タッチビューであることを示すかどうかを判定させ、
前記第2のビューが排他的タッチビューである場合、前記第1のタッチがもはや受信さ
れなくなるまで、前記第2のタッチに関連付けられたタッチイベントが前記第2のソフト
ウェア要素へ送信されないようにさせる、
ようにさらに構成されたことを特徴とする請求項19に記載のコンピュータ可読媒体。
【請求項21】
前記命令は、前記マルチタッチデバイスに、前記第2のビューが排他的タッチビューで
ない場合、前記第2のタッチについて記述するタッチイベントを前記第2のソフトウェア
要素へ送信させるようにさらに構成された、
ことを特徴とする請求項20に記載のコンピュータ可読媒体。
【請求項22】
マルチタッチデバイスにおいて実行するように構成された複数の命令を含むコンピュー
タ可読媒体であって、前記命令は、前記マルチタッチデバイスに、
1又はそれ以上のビューを定めさせ、
排他的タッチフラグ又はマルチタッチフラグを個々のビューに割り当てさせ、
個々のビューに関する前記排他的タッチフラグ又は前記マルチタッチフラグに基づいて、個々のビューにおいて検出された1又はそれ以上のタッチイベントを受け入れさせる、
ように構成されたことを特徴とするコンピュータ可読媒体。
【請求項23】
マルチポイントデバイスにおけるポイントイベントを認識する方法であって、
1又はそれ以上のビューを表示するステップと、
各々が特定のビューに関連付けられた1又はそれ以上のソフトウェア要素を実行するス
テップと、
マルチポイントフラグ又は排他的ポイントフラグを個々のビューに関連付けるステップ
と、
前記1又はそれ以上のビューにおいて1又はそれ以上のポイント入力を受信するステッ
プと、
前記マルチポイントフラグ及び排他的ポイントフラグの値に基づいて、各々が受信した
ポイント入力について記述する1又はそれ以上のポイントイベントを、ポイント入力を受
信した前記1又はそれ以上のビューに関連付けられた1又はそれ以上の前記ソフトウェア
要素へ選択的に送信するステップと、
を含むことを特徴とする方法。
【請求項24】
マルチポイントデバイスにおける1又はそれ以上のポイントイベントを認識する方法で
あって、
1又はそれ以上のビューを定めるステップと、
排他的ポイントフラグ又はマルチポイントフラグを個々のビューに割り当てるステップ
と、
個々のビューに関する前記排他的ポイントフラグ又はマルチポイントフラグに基づいて
、個々のビューにおいて検出された1又はそれ以上のポイントイベントを受け入れるステ
ップと、
を含むことを特徴とする方法。
【請求項25】
マルチポイントデバイスにおいて実行するように構成された複数の命令を含むコンピュ
ータ可読媒体であって、前記命令は、前記マルチポイントデバイスに、
1又はそれ以上のビューを表示させ、
各々が特定のビューに関連付けられた1又はそれ以上のソフトウェア要素を実行させ、
マルチポイントフラグ又は排他的ポイントフラグを個々のビューに関連付けさせ、
前記1又はそれ以上のビューにおいて1又はそれ以上のポイント入力を受信させ、
前記マルチポイントフラグ及び前記排他的ポイントフラグの値に基づいて、各々が受信したポイント入力について記述する1又はそれ以上のポイントイベントを、ポイント入力を受信した前記1又はそれ以上のビューに関連付けられた1又はそれ以上の前記ソフトウェア要素へ選択的に送信させる、
ように構成されたことを特徴とするコンピュータ可読媒体。
【請求項26】
マルチポイントデバイスにおいて実行するように構成された複数の命令を含むコンピュ
ータ可読媒体であって、前記命令は、前記マルチポイントデバイスに、
1又はそれ以上のビューを定めさせ、
排他的ポイントフラグ又はマルチポイントフラグを個々のビューに割り当てさせ、
個々のビューに関する前記排他的ポイントフラグ又はマルチポイントフラグに基づいて
、個々のビューにおいて検出された1又はそれ以上のポイントイベントを受け入れさせる

ように構成されたことを特徴とするコンピュータ可読媒体。
【請求項27】
移動電話機において実行するように構成された複数の命令を含むコンピュータ可読媒体
を含むマルチタッチ対応移動電話機であって、前記命令は、前記移動電話機に、
1又はそれ以上のビューを表示させ、
各々が特定のビューに関連付けられた1又はそれ以上のソフトウェア要素を実行させ、
マルチタッチフラグ又は排他的タッチフラグを個々のビューに関連付けさせ、
前記1又はそれ以上のビューにおいて1又はそれ以上のタッチを受信させ、
前記マルチタッチフラグ及び排他的タッチフラグの値に基づいて、各々が受信したタッ
チについて記述する1又はそれ以上のタッチイベントを、タッチを受信した前記1又はそ
れ以上のビューに関連付けられた1又はそれ以上の前記ソフトウェア要素へ選択的に送信
させる、
ように構成されたことを特徴とするマルチタッチ対応移動電話機。
【請求項28】
デジタルメディアプレイヤにおいて実行するように構成された複数の命令を含むコンピ
ュータ可読媒体を含むマルチタッチ対応デジタルメディアプレイヤであって、前記命令は
、前記デジタルメディアプレイヤに、
1又はそれ以上のビューを表示させ、
各々が特定のビューに関連付けられた1又はそれ以上のソフトウェア要素を実行させ、
マルチタッチフラグ又は排他的タッチフラグを個々のビューに関連付けさせ、
前記1又はそれ以上のビューにおいて1又はそれ以上のタッチを受信させ、
前記マルチタッチフラグ及び排他的タッチフラグの値に基づいて、各々が受信したタッ
チについて記述する1又はそれ以上のタッチイベントを、タッチを受信した前記1又はそ
れ以上のビューに関連付けられた1又はそれ以上の前記ソフトウェア要素へ選択的に送信
させる、
ように構成されたことを特徴とするマルチタッチ対応デジタルメディアプレイヤ。
【請求項29】
特定の時点における、マルチタッチパネルにおいて受信した、或いは受信している単一
のタッチの状態を定めるタッチデータ構造を含むコンピュータ可読媒体であって、該タッ
チデータ構造は、
前記特定の時点における前記タッチの局面を定めるフェーズフィールドと、
前記タッチを受信した、或いは受信しているビューを示すビューフィールドと、
前記タッチを現在受信している位置を示すロケーションフィールドと、
を含むことを特徴とするコンピュータ可読媒体。
【請求項30】
特定の時点における、マルチタッチパネルにおいて受信した、或いは受信している2又
はそれ以上のタッチの前記状態を示すタッチイベントデータ構造をさらに含み、該タッチ
イベントデータ構造は、請求項29に記載の複数の前記タッチデータ構造を含み、個々の
データ構造は前記2又はそれ以上のタッチのうちの1つに関連付けられる、
ことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項31】
前記タッチデータ構造は、
特定の時点を示すタイムフィールドと、
前記タッチを受信した、或いは受信しているウィンドウを示すウィンドウフィールドと

前記タッチを前回受信した位置を示す前回のロケーションフィールドと、
前記タッチが、前記タッチを受信した、或いは受信しているビューに対する最初のタッ
チであるかどうかを示すビューに対する最初のタッチフィールドと、
をさらに含むことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項32】
前記タッチデータ構造は、現在のタッチがスワイプの動きを含むかどうか、及び前記現
在のタッチが前記スワイプの動きを含む場合、前記動きが揃えられる一般的な方向を示す
infoフィールドをさらに含む、
ことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項33】
前記フェーズフィールドは、前記タッチが前記特定の時点において開始された新たなタ
ッチであることを示す値を保持する、
ことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項34】
前記フェーズフィールドは、前記タッチが前回の位置から新しい位置へ動かされたこと
を示す値を保持する、
ことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項35】
前記フェーズフィールドは、前記タッチが、該タッチに関する前回のデータ構造が発行
されてからずっと静止したままであることを示す値を保持する、
ことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項36】
前記タッチの位置において連続して行われた短いタップの回数を示すタップカウントフ
ィールドをさらに含む、
ことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項37】
前記フェーズフィールドは、前記タッチが終了したことを示す値を保持する、
ことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項38】
前記フェーズフィールドは、マルチタッチパネル、又はマルチタッチパネルを備えるデ
バイスのその他の要素により、前記タッチがキャンセルされたことを示す値を保持する、
ことを特徴とする請求項29に記載のコンピュータ可読媒体。
【請求項39】
マルチタッチパネルと、特定の時点における、前記マルチタッチパネルにおいて受信し
た、或いは受信している単一のタッチの状態を定めるタッチデータ構造を含むコンピュー
タ可読媒体とを備えたデバイスであって、前記タッチデータ構造は、
前記特定の時点における前記タッチの局面を定めるフェーズフィールドと、
前記タッチを受信した、或いは受信しているビューを示すビューフィールドと、
前記タッチを現在受信している位置を示すロケーションフィールドと、
を含むことを特徴とするコンピュータ可読媒体。
【請求項40】
マルチタッチ対応デバイスを動作させる方法であって、
ビューの視覚表示をディスプレイに表示する、前記ビューを表すソフトウェア要素を実
行するステップと、
マルチタッチパネルにおけるタッチを検出するステップと、
特定の時点におけるタッチの状態を定めるためのデータ構造を生成するステップと、
を含み、前記データ構造は、
前記特定の時点における前記タッチの局面を定めるフェーズフィールドと、
前記タッチを受信した、或いは受信しているビューを示すビューフィールドと、
前記タッチを現在受信している位置を示すロケーションフィールドと、
を含むことを特徴とする方法。
【請求項41】
ディスプレイと、マルチタッチパネルと、ユーザインタフェースソフトウェアとやりと
りを行うアプリケーションソフトウェアとを有するデバイスを含む環境において、アプリ
ケーションプログラミングインタフェース(API)を通じて動作する方法であって、
マルチタッチパネルにおけるタッチを検出するステップと、
特定の時点におけるタッチの状態を定めるためのデータ構造を生成するステップと、
を含み、前記データ構造は、
前記特定の時点における前記タッチの局面を定めるフェーズフィールドと、
前記タッチを受信した、或いは受信しているビューを示すビューフィールドと、
前記タッチを現在受信している位置を示すロケーションフィールドと、
を含み、
前記ユーザインタフェースソフトウェアにより、前記データ構造を前記アプリケーショ
ンソフトウェアへ送信するステップをさらに含む、
ことを特徴とする方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate


【公開番号】特開2013−16188(P2013−16188A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−186775(P2012−186775)
【出願日】平成24年8月27日(2012.8.27)
【分割の表示】特願2009−80377(P2009−80377)の分割
【原出願日】平成21年3月4日(2009.3.4)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.UNIX
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】