メモ取りアプリケーション、スケッチアプリケーション、スクラップブッキングアプリケーションなどのフリーハンドのスケッチ機能を提供するアプリケーションでは、様々な色及びテクスチャーの線及びオブジェクトを描くための描画ツールがユーザに提供されている。フリーハンドのスケッチに加えて、手書き及びキーボードによるテキスト入力もこのようなアプリケーションの望ましい機能である。本開示は、効率的でユーザフレンドリーなやり方で同一の文書編集環境でのスケッチ、手書きによるテキスト入力、及びキーボードによるテキスト入力を可能にする様々なサポート機能を提供するデバイス、方法及びユーザインタフェースを記載する。
以下の図1A〜図1B、図2及び図3は、例示的なデバイスの説明を提供する。図4A〜図4B及び図5A〜図5ARは、文書編集環境で手書きサポートを提供する例示的なユーザインタフェース及びデバイス構成を図示している。図6A〜図6G、図7A、図7B、図8A〜図8C及び図9A〜図9Bは、様々な実施形態に係る、コンテンツページに手書きコンテンツを表示する方法のフローチャートを図示している。図5A〜図5ARのユーザインタフェースを使用して、図6A〜図6G、図7A〜7B、図8A〜図8C及び図9A〜図9Bのプロセスを図示している。図10〜図13は、図5A〜図5ARのユーザインタフェース及び図6A〜図6G、図7A〜図7B、図8A〜図8C、及び図9A〜図9Bのプロセスを実装する例示的な電子デバイスを図示している。
例示的なデバイス
ここで、添付図面に実施例が示される実施形態を、詳細に参照する。以下の詳細な説明では、説明されている様々な実施形態を完全に理解できるように数多くの具体的な詳細が記載されている。しかしながら、説明されている様々な実施形態は、これらの具体的な詳細を伴わずとも実践し得ることが、当業者には明らかであろう。他の例においては、周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭なものとしないよう、詳細には説明されていない。
本明細書では、第1、第2などの用語は、一部の実施例で、様々な要素を説明するために使用されるが、これらの要素は、それらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱せずに、第1の接触を第2の接触と称することができ、同様に、第2の接触を第1の接触と称することができる。第1の接触及び第2の接触は両方接触であるが、文脈がそうではないことを明確に示さない限り、それらは同じ接触ではない。
本明細書で説明される様々な実施形態の説明で使用される用語法は、特定の実施形態を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施形態の説明及び添付の特許請求の範囲で使用されるとき、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用されるときに、用語「及び/又は」が、関連する列挙された項目のうちの1つ以上のすべての可能な任意の組み合わせを指し、かつこれを含むことをもまた理解されたい。用語「includes(含む)」、「including(含む)」、「comprises(含む、備える)」及び/又は「comprising(含む、備える)」は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群、の存在又は追加を除外しないことが更に理解されるであろう。
本明細書で使用される時、用語「if(〜の場合には)」は任意選択的に、文脈に応じて「when(〜の時)」、「upon(〜すると)」、「in response to determining(〜という判定に応じて)」、又は「in response to detecting(〜の検出に応じて)」を意味するものと解釈される。同様に、語句「if it is determined(〜と判定される場合には)」又は「if(a stated condition or event)is detected((記述される条件又はイベント)が検出される場合には)」は任意選択的に、文脈に応じて「upon determining(〜と判定されると)」、又は「in response to determining(〜との判定に応じて)」、又は「upon detecting(the stated condition or event)((記述される条件又はイベント)が検出されると)」、又は「in response to detecting(the stated condition or event)((記述される条件又はイベント)の検出に応じて)」を意味するものと解釈される。
電子デバイス、このようなデバイス用のユーザインタフェース、及びこのようなデバイスを使用するための関連処理、の実施形態を説明する。一部の実施形態では、本デバイスは、PDA機能及び/又は音楽再生機能などの、他の機能も含む、モバイル電話機などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態としては、California州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスが挙げられるが、これらに限定されない。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたラップトップ又はタブレットコンピュータなどの他のポータブル電子デバイスも任意選択的に使用される。また、一部の実施形態では、このデバイスはポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えるデスクトップコンピュータであることを理解されたい。
以下の検討では、ディスプレイ及びタッチ感知面を備えた電子デバイスについて説明する。しかし、この電子デバイスは、物理キーボード、マウス、及び/又はジョイスティックなどの1つ以上の他の物理ユーザインタフェースデバイスを任意選択的に含むことを理解されたい。
このデバイスは、一般的に、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上などの様々なアプリケーションをサポートする。
本デバイス上で実行される様々なアプリケーションは任意選択的に、タッチ感知面などの少なくとも1つの共通の物理ユーザインタフェースデバイスを使用する。タッチ感知面の1つ以上の機能並びにデバイス上に表示される対応する情報は任意選択的に、アプリケーションごとに、及び/又は対応するアプリケーション内で調節かつ/又は変更される。このように、デバイスの共通の(タッチ感知面などの)物理アーキテクチャは、ユーザにとって直観的かつ透過的なユーザインタフェースを有する様々なアプリケーションを、任意選択的にサポートする。
次に、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図1Aは、一部の実施形態に係る、タッチ感知ディスプレイシステム112を備えたポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイシステム112は、便宜上「タッチスクリーン」と呼ばれる場合があり、単にタッチ感知ディスプレイと呼ばれる場合もある。デバイス100は、メモリ102(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インタフェース118、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、入出力(input/output)(I/O)サブシステム106、その他の入力又は制御デバイス116、及び外部ポート124を含む。デバイス100は、1つ以上の光センサ164を任意選択的に含む。デバイス100は、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)への接触の強度を検出するための、1つ以上の強度センサ165を任意選択的に含む。デバイス100は、デバイス100上に触知出力を生成する(例えば、デバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などのタッチ感知面上に触知出力を生成する)ための1つ以上の触知出力生成器167を、任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン103を介して任意選択的に通信する。
本明細書及び特許請求の範囲で使用されるとき、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、デバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じるであろう。別の実施例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるものではあるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」、「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
デバイス100は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス100は、示されているものよりも多くの構成要素又は少ない構成要素を任意選択的に有し、2つ以上の構成要素を任意選択的に組み合わせるか、又は、それらの構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実装される。
メモリ102は、任意選択的に高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリも含む。CPU(単数又は複数)120及び周辺機器インタフェース118などのデバイス100の他の構成要素によるメモリ102へのアクセスは、メモリコントローラ122により任意選択的に制御される。
周辺機器インタフェース118を使用して、このデバイスの入力及び出力周辺機器を、CPU(単数又は複数)120及びメモリ102に結合することができる。1つ以上のプロセッサ120は、デバイス100のための様々な機能を実行するため並びにデータを処理するために、メモリ102に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる、又は実行する。
一部の実施形態では、周辺機器インタフェース118、CPU(単数又は複数)120、及びメモリコントローラ122は任意選択的に、チップ104などの単一チップ上に実装される。いくつかの他の実施形態において、これらは、個別のチップ上に、任意選択的に実装される。
RF(radio frequency)(無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリなどを含むが、これらに限定されない、これらの機能を実行するための周知の回路を、任意選択的に含んでいる。RF回路108は、ワールドワイドウェブ(WWW)とも呼ばれるインターネット、イントラネット、及び/又は、セルラ電話ネットワーク、無線ローカルエリアネットワーク(LAN)などの無線ネットワーク、及び/又は、メトロポリタンエリアネットワーク(MAN)などのネットワーク、及び他のデバイス、と無線通信によって、任意選択的に通信する。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用し、それらの通信規格、通信プロトコル、及び通信技術としては、移動通信用のグローバルシステム(Global System for Mobile Communications)(GSM)、拡張データGSM環境(Enhanced Data GSM Environment)(EDGE)、高速ダウンリンクパケット接続(high-speed downlink packet access)(HSDPA)、高速アップリンクパケット接続(high-speed uplink packet access)(HSUPA)、Evolution,Data−Only(EV−DO)、HSPA、HSPA+、2重セルHSPA(Dual-Cell HSPA)(DC−HSPDA)、ロングタームエボリューション(long term evolution)(LTE)、近距離無線通信(near field communication)(NFC)、広帯域符号分割多元接続(wideband code division multiple access)(W−CDMA)、符号分割多元接続(code division multiple access)(CDMA)、時分割多元接続(time division multiple access)(TDMA)、Bluetooth(登録商標)、Wireless Fidelity(Wi−Fi)(登録商標)(例えば、IEEE 802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE 802.11g、及び/又はIEEE 802.11n)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol)(VoIP)、Wi−MAX、電子メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol)(IMAP)及び/又はポストオフィスプロトコル(post office protocol)(POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol)(XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions)(SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service)(IMPS))、及び/又はショートメッセージサービス(Short Message Service)(SMS)、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコルが挙げられるが、これらに限定されない。
オーディオ回路110、スピーカ111、及びマイクロフォン113は、ユーザとデバイス100との間のオーディオインタフェースを提供する。オーディオ回路110は、周辺機器インタフェース118からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間の可聴音波に変換する。オーディオ回路110は、マイクロフォン113により音波から変換された電気信号もまた受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インタフェース118に送信する。オーディオデータは、周辺機器インタフェース118によって任意選択的に、メモリ102及び/若しくはRF回路108から取り込まれ、並びに/又はメモリ102及び/若しくはRF回路108へ送信される。一部の実施形態では、オーディオ回路110は、更にヘッドセットジャック(例えば、図2の212)を備える。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の双方を有するヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器と、の間のインタフェースを提供する。
I/Oサブシステム106は、タッチ感知ディスプレイシステム112及び他の入力又は制御デバイス116などの、デバイス100上の入出力周辺機器を周辺機器インタフェース118に連結する。I/Oサブシステム106は任意選択的に、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、その他の入力又は制御デバイス116から電気信号を受信し、それらへ電気信号を送信する。その他の入力又は制御デバイス116は任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的実施形態では、入力コントローラ(単数又は複数)160は、キーボード、赤外線ポート、USBポート、スタイラス、及び/又はマウスなどのポインタデバイスのうちのいずれかに、任意選択的に連結される(又は、いずれにも連結されない)。1つ以上のボタン(例えば、図2の208)は、スピーカ111及び/又はマイクロフォン113の音量調節のためのアップ/ダウンボタンを、任意選択的に含む。1つ以上のボタンは、プッシュボタン(例えば、図2の206)を、任意選択的に含む。
タッチ感知ディスプレイシステム112は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチ感知ディスプレイシステム112から電気信号を受信し、及び/又はそれへ電気信号を送信する。タッチ感知ディスプレイシステム112は、ユーザに視覚出力を表示する。視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びこれらの任意の組み合わせ(総称して「グラフィック」と称する)を、任意選択的に含む。一部の実施形態では、視覚出力の一部又はすべては、ユーザインタフェースオブジェクトに対応する。
タッチ感知ディスプレイシステム112は、触覚/触知の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有する。タッチ感知ディスプレイシステム112及びディスプレイコントローラ156(メモリ102内の任意の関連モジュール及び/又は命令セットとともに)は、タッチ感知ディスプレイシステム112上で接触(及び任意の移動又は接触の中断)を検出し、検出された接触をタッチ感知ディスプレイシステム112上に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との双方向作用に変換する。ある例示的な実施形態では、タッチ感知ディスプレイシステム112とユーザとの間の接触点は、ユーザの指又はスタイラスに対応する。
タッチ感知ディスプレイシステム112は任意選択的に、LCD(liquid crystal display)(液晶ディスプレイ)技術、LPD(light emitting polymer display)(発光ポリマーディスプレイ)技術、又はLED(light emitting diode)(発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術が使用される。タッチ感知ディスプレイシステム112及びディスプレイコントローラ156は、静電容量技術、抵抗性技術、赤外線技術、及び表面音響波技術、並びに、タッチ感知ディスプレイシステム112との1つ以上の接触点を判定するための他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在既知の若しくは後日に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及び任意の移動又はその中断を、任意選択的に検出する。ある例示的な実施形態では、California州CupertinoのAppleInc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)などにおいて見られるような、投影された相互キャパシタンス検知技術が使用されている。
タッチ感知ディスプレイシステム112は任意選択的に、100dpiを超える映像解像度を有する。一部の実施形態では、タッチスクリーンの映像解像度は、400dpiを超える(例えば、500dpi、800dpi、又はより高い)。ユーザは、スタイラス、指などの任意の好適な物体又は付属物を使用して、タッチ感知ディスプレイシステム112と、任意選択的に接触する。一部の実施形態では、ユーザインタフェースは、指に基づく接触及びジェスチャで機能するように設計され、タッチスクリーン上の指の接触面積が広いことにより、スタイラスに基づく入力よりも精度が低いことがある。一部の実施形態では、デバイスは、指に基づく粗い入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
一部の実施形態では、タッチスクリーンに加えて、デバイス100は、特定の機能をアクティブ化又は非アクティブ化させるためのタッチパッド(図示せず)を任意選択的に含む。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知領域である。タッチパッドは任意選択的に、タッチ感知ディスプレイシステム112とは別個のタッチ感知面、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
デバイス100はまた、様々な構成要素に電力を供給するための電力システム162をも含む。電力システム162は任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態標識(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
デバイス100はまた、1つ以上の光センサ164を任意選択的に含む。図1Aは、I/Oサブシステム106内の光センサコントローラ158に連結された光センサを示す。光センサ(単数又は複数)164は、電荷結合デバイス(charge-coupled device)(CCD)又は相補的金属酸化物半導体(complementary metal-oxide semiconductor)(CMOS)フォトトランジスタを、任意選択的に含む。光センサ(単数又は複数)164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール143(カメラモジュールとも称する)と連動して、光センサ(単数又は複数)164は、静止画像及び/又はビデオを、任意選択的にキャプチャする。一部の実施形態では、タッチスクリーンが静止画像及び/又は映像取得のためのビューファインダとして使用するために有効化されるように、光センサは、デバイスの前面のタッチ感知ディスプレイシステム112の反対側である、デバイス100の背面に配置される。一部の実施形態では、(例えば、自撮りのため、ユーザがタッチスクリーン上で他のビデオ会議参加者を見ている間に、ビデオ会議のためなど)ユーザの画像を得るように、別の光センサがデバイスの前面に配置される。
デバイス100はまた、1つ以上の接触強度センサ165も任意選択的に含む。図1Aは、I/Oサブシステム106内の強度センサコントローラ159に連結された接触強度センサを示す。接触強度センサ(単数又は複数)165は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は圧力)を測定するために使用するセンサ)を、任意選択的に含む。接触強度センサ(単数又は複数)165は、環境から接触強度情報(例えば、圧力情報又は圧力情報のプロキシ)を受信する。一部の実施形態では、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に配置されているか、又は、それに近接している。一部の実施形態では、少なくとも1つの接触強度センサが、デバイス100の前面に配置されたタッチスクリーンディスプレイシステム112の反対側である、デバイス100の背面に配置されている。
デバイス100は、1つ以上の近接センサ166をも任意選択的に含む。図1Aは、周辺機器インタフェース118と連結された近接センサ166を示す。あるいは、近接センサ166は、I/Oサブシステム106内の入力コントローラ160に連結される。一部の実施形態では、多機能デバイスがユーザの耳の近くに配置されている場合(例えば、ユーザが電話通話を行っている場合)、近接センサが、タッチ感知ディスプレイシステム112をオフにして無効にする。
デバイス100はまた、任意選択的に1つ以上の触知出力生成器167を含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161に連結された触知出力生成器を示す。触知出力生成器(単数又は複数)167は任意選択的に、スピーカ又は他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、電気信号をデバイス上での触知出力に変換する構成要素)などの、エネルギを直線運動に変換する電気機械デバイスを含む。触知出力生成器(単数又は複数)167は、触覚フィードバックモジュール133から触知フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上に生成する。一部の実施形態において、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は水平方向(例えば、デバイス100の表面と同じ平面内の前後)に動かすことによって、触知出力を生成する。一部の実施形態では、少なくとも1つの触知出力生成器センサは、デバイス100の前面に配置されたタッチ感知ディスプレイシステム112の反対側である、デバイス100の背面に配置されている。
デバイス100はまた、任意選択的に1つ以上の加速度計168を含む。図1Aは、周辺機器インタフェース118に連結された加速度計168を示す。あるいは、加速度計168は、I/Oサブシステム106内の入力コントローラ160に、任意選択的に連結される。一部の実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、ポートレートビュー又はランドスケープビューでタッチスクリーンディスプレイ上に表示される。デバイス100は、加速度計(単数又は複数)168に加えて、磁気計(図示せず)並びにデバイス100の位置及び向き(例えば、縦長又は横長)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信部(図示せず)を任意選択的に含む。
一部の実施形態では、メモリ102に記憶されたソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は命令セット)128、接触/動きモジュール(又は命令セット)130、グラフィックモジュール(又は命令セット)132、触覚フィードバックモジュール(又は命令セット)133、テキスト入力モジュール(又は命令セット)134、全地球測位システム(Global Positioning System)(GPS)モジュール(又は命令セット)135、及びアプリケーション(又は命令セット)136を含む。更に、一部の実施形態では、図1A及び図3に示すように、メモリ102はデバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、以下の1つ以上を含む。現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチ感知ディスプレイシステム112の様々な領域を占領しているかを示す、表示状態、デバイスの様々なセンサ及びその他の入力又は制御デバイス116から得られる情報を含む、センサ状態、並びに、デバイスの位置及び/若しくは姿勢に関する位置並びに/又は姿勢情報。
オペレーティングシステム126(例えば、iOS、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート124(例えば、ユニバーサルシリアルバス(Universal Serial Bus)(USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を通して間接的に、他のデバイスに接続するように適応している。一部の実施形態では、外部ポートは、カリフォルニア州CupertinoのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスの一部内で使用される30ピンコネクタと同一の、又はこれに類似した及び/若しくは互換性のあるマルチピン(例えば、30ピン)コネクタである。一部の実施形態では、外部ポートは、カリフォルニア州CupertinoのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスの一部内で使用されるLightning(登録商標)コネクタと同一の、又はこれに類似した及び/若しくは互換性のあるLightningコネクタである。
接触/動きモジュール130は任意選択的に、(ディスプレイコントローラ156と連動して)タッチ感知ディスプレイシステム112との接触、及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール130は、接触が発生したかどうかの判定(例えば、フィンガダウンイベントの検出)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代用)の判定、接触の移動及びタッチ感知面にわたる移動の追跡(例えば、1つ以上のフィンガドラッグイベントの検出)があるかどうかの判定、及び接触が中止したかどうか(例えば、フィンガアップイベント又は接触の中断の検出)の判定などの、(例えば、指又はスタイラスによる)接触の検出に関係する様々な動作を実行するためのソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データにより表現される接触点の移動を判定することは、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを任意選択的に含む。これらの動作は任意選択的に、単一の接触(例えば、1本の指の接触又はスタイラスの接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。一部の実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッドへの接触を検出する。
接触/動きモジュール130は任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン(例えば、異なる動き、タイミング、及び/又は検出される接触の強度)を有する。したがって、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、フィンガタップジェスチャを検出することは、フィンガダウンイベントを検出し、続いて(例えば、アイコンの位置での)そのフィンガダウンイベントと同じ位置(又は、実質的に同じ位置)でフィンガアップ(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面でのフィンガスワイプジェスチャの検出は、フィンガダウンイベントを検出し、続いて1つ以上のフィンガドラッグイベントを検出し、その後、フィンガアップ(リフトオフ)イベントを検出することを含む。同様に、タップ、スワイプ、ドラッグ、及び他のジェスチャは、スタイラスに対して、スタイラスに対する特定の接触パターンを検出することにより、任意選択的に検出される。
グラフィックモジュール132は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含めた、タッチ感知ディスプレイシステム112又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書で使用するとき、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、それらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
一部の実施形態では、グラフィックモジュール132は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、対応するコードが、任意選択的に割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データとともに、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力する画面の画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザ相互作用に応じて、デバイス100上の1つ以上の位置で触知出力を生成するために、触知出力生成器(単数又は複数)167によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は任意選択的に、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
GPSモジュール135は、デバイスの位置を判断し、この情報を様々なアプリケーションで使用するために提供する(例えば、ロケーションベースダイヤル発呼で使用するための電話138へ、ピクチャ/ビデオのメタデータとしてカメラ143へ、並びに気象ウィジェット、地方のイエローページウィジェット、及び地図/ナビゲーションウィジェットなどのロケーションベースのサービスを提供するアプリケーションへ)。
アプリケーション136は、任意選択的に以下のモジュール(又は、命令のセット)、又はそれらのサブセット若しくはスーパーセットを含む。
●連絡先モジュール137(アドレス帳又は連絡先リストと称されることもある)、
●電話モジュール138、
●テレビ会議モジュール139、
●電子メールクライアントモジュール140、
●インスタントメッセージング(IM)モジュール141、
●トレーニングサポートモジュール142、
●静止画像及び/又はビデオ画像用のカメラモジュール143、
●画像管理モジュール144、
●ブラウザモジュール147、
●カレンダーモジュール148、
●天気ウィジェット149−1、株式ウィジェット149−2、計算機ウィジェット149−3、アラーム時計ウィジェット149−4、辞書ウィジェット149−5、及びユーザが取得した他のウィジェット、並びにユーザ作成ウィジェット149−6のうちの1つ以上を任意選択的に含むウィジェットモジュール149、
●ユーザ作成ウィジェット149−6を作成するためのウィジェット作成モジュール150、
●検索モジュール151、
●任意選択的にビデオ再生モジュール及び音楽再生モジュールから構成されている、ビデオ及び音楽再生モジュール152、
●メモモジュール153、
●地図モジュール154、及び/又は
●オンラインビデオモジュール155。
任意選択的にメモリ102内に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶される)アドレス帳又は連絡先リストを管理する実行可能命令を含み、それには、アドレス帳に名前(単数又は複数)を加えること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して並べ替えること、電話番号又は電子メールアドレスを提供して、電話138、ビデオ会議139、電子メール140、若しくはIM141による通信を開始する、かつ/又は容易にすることなどが含まれる。
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、電話モジュール138は、電話番号に対応する一連の文字を入力し、アドレス帳137内の1つ以上の電話番号にアクセスし、入力されている電話番号を修正し、それぞれの電話番号をダイヤルし、会話を実行し、会話が完了した際に接続を切るか又は電話を切るための実行可能命令を含む。上述のように、無線通信は、複数の通信規格、プロトコル、及び技術のうちのいずれかを任意選択的に使用する。
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先リスト137、及び電話モジュール138と併せて、ビデオ会議モジュール139は、ユーザの指示に従って、ユーザと1人以上の他の参加者との間のビデオ会議を開始し、行い、終了するための実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理するための実行可能命令を含む。画像管理モジュール144と連携して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又はビデオ画像を有する電子メールを作成及び送信することを非常に容易にする。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、インスタントメッセージモジュール141は、インスタントメッセージと対応する文字列を入力し、入力済みの文字を修正し、それぞれのインスタントメッセージを送信し(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service)(MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、Apple Push Notification Service(APNs)、若しくはIMPSを使用して)、インスタントメッセージを受信してその受信したインスタントメッセージを見る、実行可能命令を含む。一部の実施形態では、送信及び/又は受信されたインスタントメッセージは任意選択的に、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service)(EMS)でサポートされるように、グラフィック、写真、オーディオファイル、映像ファイル、及び/又は他の添付を含む。本明細書で使用するとき、「インスタントメッセージ」とは、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されたメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、APNs、又はIMPSを使用して送信されたメッセージ)の両方を意味する。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154、及び音楽プレーヤモジュール146と併せて、トレーニングサポートモジュール142は、(例えば、時間、距離、及び/又はカロリー消費目標を有する)トレーニングを作成する、(スポーツデバイス及びスマートウォッチ内の)トレーニングセンサと通信する、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニングのための音楽を選択して再生し、並びに、トレーニングデータを表示し、記憶し、送信するための実行可能命令を含んでいる。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、及び画像管理モジュール144と併せて、カメラモジュール143は、静止画像又はビデオ(ビデオストリームを含む)をキャプチャしてメモリ102にそれらを記憶する、静止画像又はビデオの特性を修正する、及び/又はメモリ102から静止画像若しくはビデオを削除するための実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィクモジュール132、テキスト入力モジュール134、及びカメラモジュール143と併せて、画像管理モジュール144は、静止画像及び/又はビデオを配置し、修正し(例えば、編集し)又は別の方法で操作し、ラベルをつけ、削除し、提示し(例えば、デジタルスライドショー又はアルバム内で)、並びに記憶する実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、ブラウザモジュール147は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付け、受信し、表示することを含むユーザの指示に従い、インターネットをブラウズする実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と併せて、カレンダーモジュール148は、ユーザの指示に従い、カレンダー及びカレンダーに関連付けられたデータ(例えば、カレンダー項目、ToDoリストなど)を作成、表示、変更、並びに記憶する実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と併せて、ウィジェットモジュール149は任意選択的に、ユーザによってダウンロードされ、使用されるミニアプリケーション(例えば、気象ウィジェット149−1、株式ウィジェット149−2、計算機ウィジェット149−3、アラーム時計ウィジェット149−4、及び辞書ウィジェット149−5)、又はユーザによって作成されるミニアプリケーション(例えば、ユーザ作成ウィジェット149−6)である。一部の実施形態において、ウィジェットは、HTML(Hypertext Markup Language)(ハイパーテキストマークアップ言語)ファイル、CSS(Cascading Style Sheets)(カスケーディングスタイルシート)ファイル、及びJavaScript(登録商標)ファイルを含む。一部の実施形態において、ウィジェットは、XML(拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!(登録商標)ウィジェット)を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と併せて、ウィジェット作成モジュール150は、ウィジェットを作成する(例えば、ウェブページのユーザ指定部分をウィジェットに変える)実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィクモジュール132、及びテキスト入力モジュール134と併せて、検索モジュール151は、ユーザの指示に従い、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ102内のテキスト、音楽、音、画像、ビデオ、及び/又は他のファイルを検索する実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィクモジュール132、オーディオ回路110、スピーカ111、RF回路108、及びブラウザモジュール147と併せて、ビデオ及び音楽プレーヤモジュール152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能命令、並びにビデオを(例えば、タッチ感知ディスプレイシステム112上又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生する実行可能命令を含む。一部の実施形態では、デバイス100は任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を備える。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、メモモジュール153は、ユーザの指示に従って、メモ、ToDoリストなどを作成及び管理するための実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と併せて、地図モジュール154は、ユーザの指示に従って、地図及び地図に関連付けられたデータ(例えば、運転方向、特定の場所若しくはその付近の店舗及び関心対象の他の地点についてのデータ、並びに場所に基づく他のデータ)を受信し、表示し、修正し、記憶するための実行可能命令を含んでいる。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と併せて、オンラインビデオモジュール155は、ユーザがH.264などの1つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、受信し(例えば、ストリーミング及び/又はダウンロードにより)、再生し(例えば、タッチスクリーン112上で又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上で)、特定のオンラインビデオへのリンクを含む電子メールを送信し、別の方法で管理できるようにする実行可能命令を含む。一部の実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール140ではなく、インスタントメッセージングモジュール141が使用される。
上記で識別されたモジュール及びアプリケーションのそれぞれは、1つ以上の上記の機能を実行するための実行可能命令セット及び本出願に記載の方法(例えば、コンピュータにより実行される方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において、任意選択的に組み合わされるか、又は別の方法で再配置される。一部の実施形態では、メモリ102は、上述の識別されたモジュール及びデータ構造のサブセットを、任意選択的に記憶する。更に、メモリ102は、上述されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
一部の実施形態では、デバイス100は、デバイス上の機能の既定のセットの動作が排他的にタッチスクリーン及び/又はタッチパッドを介して実行されるデバイスである。デバイス100の動作のための主要入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、デバイス100上の物理的な入力制御デバイス(プッシュボタン、ダイヤル、など)の数を、任意選択的に低減する。
排他的にタッチスクリーン及び/又はタッチパッドを介して実行される、既定の機能のセットは任意選択的に、ユーザインタフェース間のナビゲーションを含む。一部の実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス100をナビゲートする。かかる実施形態では、「メニューボタン」はタッチパッドを用いて実装される。一部の他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理プッシュボタン又は他の物理入力制御デバイスである。
図1Bは、一部の実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。一部の実施形態では、メモリ102(図1A内)又は370(図3)は、イベントソート部170(例えば、オペレーティングシステム126内)及び対応するアプリケーション136−1(例えば、上述のアプリケーション136、137〜155、及び380〜390のいずれか)を含む。
イベントソート部170は、イベント情報を受信し、イベント情報が配信されるアプリケーション136−1及びアプリケーション136−1のアプリケーションビュー191を判定する。イベントソート部170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。一部の実施形態では、アプリケーション136−1は、アプリケーションがアクティブ又は実行中のとき、タッチ感知ディスプレイシステム112上に表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態192を含む。一部の実施形態では、デバイス/グローバル内部状態157は、いずれのアプリケーション(単数又は複数)が現在アクティブであるかを判定するために、イベントソート部170によって使用され、アプリケーション内部状態192は、イベント情報が配信されるアプリケーションビュー191を判定するために、イベントソート部170によって使用される。
一部の実施形態では、アプリケーション内部状態192は、アプリケーション136−1が実行を再開する際に使用される再開情報、アプリケーション136−1によって情報が表示されているか又は表示の準備が整っていることを示すユーザインタフェース状態情報、ユーザがアプリケーション136−1の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ/アンドゥ待ち行列のうちの1つ以上などの追加情報を含む。
イベントモニタ171は、周辺機器インタフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイシステム112上でのユーザのタッチ)についての情報を含む。周辺機器インタフェース118は、I/Oサブシステム106、又は近接センサ166、加速度計(単数又は複数)168、及び/若しくは(オーディオ回路110を介する)マイクロフォン113などのセンサから受信する情報を送信する。周辺機器インタフェース118がI/Oサブシステム106から受信する情報は、タッチ感知ディスプレイシステム112又はタッチ感知面からの情報を含む。
一部の実施形態では、イベントモニタ171は、所定の間隔で周辺機器インタフェース118に要求を送信する。これに応じて、周辺機器インタフェース118はイベント情報を送信する。他の実施形態では、周辺機器インタフェース118は、重要なイベント(例えば、所定のノイズ閾値を上回り、かつ/又は所定の持続時間を超えた入力を受信すること)が存在する場合にのみ、イベント情報を送信する。
一部の実施形態では、イベントソート部170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベント認識部判定モジュール173も含む。
ヒットビュー判定モジュール172は、タッチ感知ディスプレイシステム112が1つより多くのビューを表示した際に、1つ以上のビュー内のどこにおいてサブイベントが発生したかを判定するためのソフトウェア手続きを提供する。ビューは、制御部及びユーザがディスプレイ上で見ることが可能な他の要素で構成されている。
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書では、アプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合があるビューのセットであり、それらの中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに任意選択的に、対応する。例えば、タッチが検出される最低レベルのビューは任意選択的に、ヒットビューと呼ばれ、適切な入力として認識されるイベントのセットは、少なくとも部分的に、タッチベースのジェスチャを開始する最初のタッチのヒットビューに基づいて任意選択的に、判定される。
ヒットビュー判定モジュール172は、タッチベースのジェスチャのサブイベントと関連付けられた情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール172は、そのサブイベントを処理すべき階層内の最下位のビューとしての、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、起因となるサブイベント(即ち、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最低レベルのビューである。ヒットビューがヒットビュー判定モジュールによって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連するすべてのサブイベントを受信する。
アクティブイベント認識部判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。一部の実施形態では、アクティブイベント認識部判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール173は、サブイベントの物理位置を含むすべてのビューはアクティブに関わっているビューであると判定し、したがって、すべてのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えば、イベント認識部180)に送信する。アクティブイベント認識部判定モジュール173を含む実施形態において、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配信する。一部の実施形態では、イベントディスパッチャモジュール174は、それぞれのイベント受信部モジュール182により取得されるイベント情報をイベント待ち行列内に記憶する。
一部の実施形態では、オペレーティングシステム126は、イベントソート部170を含む。あるいは、アプリケーション136−1はイベントソート部170を含む。更に他の実施形態では、イベントソート部170は、独立型のモジュール、又は接触/動きモジュール130などの、メモリ102に記憶された別のモジュールの一部である。
一部の実施形態では、アプリケーション136−1は、それぞれがアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチイベントを処理する命令を含む、複数のイベント処理部190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136−1の各アプリケーションビュー191は、1つ以上のイベント認識部180を含む。通常、それぞれのアプリケーションビュー191は、複数のイベント認識部180を含む。他の実施形態では、イベント認識部180のうちの1つ以上は、ユーザインタフェースキット(図示せず)又はアプリケーション136−1が方法及び他の特性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。一部の実施形態では、各イベント処理部190は、データ更新部176、オブジェクト更新部177、GUI更新部178、及び/又はイベントソート部170から受信したイベントデータ179のうちの1つ以上を含む。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176、オブジェクト更新部177、又はGUI更新部178を任意選択的に、利用若しくは呼び出す。あるいは、アプリケーションビュー191のうちの1つ以上は、1つ以上の対応するイベント処理部190を含んでいる。また、一部の実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178のうちの1つ以上は、対応するアプリケーションビュー191に含まれる。
対応するイベント認識部180は、イベントソート部170からイベント情報(例えば、イベントデータ179)を受信して、そのイベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。一部の実施形態では、イベント認識部180はまた、メタデータ183及び(サブイベント配信命令を任意選択的に含む)イベント配信命令188の、少なくともサブセットも含む。
イベント受信部182は、イベントソート部170からイベント情報を受信する。このイベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントによっては、イベント情報はまた、サブイベントの場所などの追加情報も含む。サブイベントが、タッチの動きに関わるとき、イベント情報は、サブイベントの速さ及び方向を任意選択的に、更に含む。一部の実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへの、又はその逆の)デバイスの回転を含み、そのイベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
イベント比較部184は、イベント情報を既定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定する、あるいはイベント又はサブイベントの状態を判定若しくは更新する。一部の実施形態において、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えば、イベント1(187−1)、イベント2(187−2)などの、イベントの定義(例えば、サブイベントの既定のシーケンス)を含む。一部の実施形態において、イベント187内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例では、イベント1(187−1)の定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、表示されたオブジェクト上の所定の段階についての第1のタッチ(タッチ開始)、所定の段階についての第1のリフトオフ(タッチ終了)、表示されたオブジェクト上の所定の段階についての第2のタッチ(タッチ開始)、及び所定の段階についての第2のリフトオフ(タッチ終了)を含む。別の実施例では、イベント2(187−2)の定義は、表示されたオブジェクト上のドラッグ操作である。ドラッグは、例えば、表示されたオブジェクト上の所定の段階についてのタッチ(又は接触)、タッチ感知ディスプレイシステム112にわたるタッチの移動、及びタッチのリフトオフ(タッチ終了)を含む。一部の実施形態では、イベントはまた、1つ以上の関連付けられたイベント処理部190に関する情報も含む。
一部の実施形態では、イベント定義187は、それぞれのユーザインタフェースオブジェクトに関するイベントの定義を含む。一部の実施形態では、イベント比較部184は、サブイベントに関連付けられたユーザインタフェースオブジェクトを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイシステム112上に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイシステム112上でタッチが検出されると、イベント比較部184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判定するためのヒットテストを行う。表示された各オブジェクトが、対応するイベント処理部190と関連付けられている場合、イベント比較部は、ヒットテストの結果を使用して、どのイベント処理部190をアクティブ化すべきかを判定する。例えば、イベント比較部184は、サブイベント及びヒットテストのトリガーとなるオブジェクトと関連付けられたイベント処理部を選択する。
一部の実施形態では、各イベント187に関する定義はまた、サブイベントのシーケンスがイベント認識部のイベントタイプに対応するか否かが判定されるまで、イベント情報の送付を遅延させる、遅延作用も含む。
それぞれのイベント認識部180が一連のサブイベントがイベント定義186のイベントのいずれとも一致しないと判定した場合、それぞれのイベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチに基づくジェスチャの次のサブイベントを無視する。この状況では、ヒットビューに関してアクティブのまま維持される他のイベント認識部があれば、進行中のタッチに基づくジェスチャのサブイベントを、引き続き追跡及び処理する。
一部の実施形態において、それぞれのイベント認識部180は、構成変更可能なプロパティと、フラグと、及び/又はイベント配信システムがアクティブに関わっているイベント認識部にどのようにサブイベント配信を実行するかについて示すリストと、を有するメタデータ183を含む。一部の実施形態において、メタデータ183は、構成可能なプロパティ、フラグ、及び/又はイベント認識部が互いにどのように相互作用するか、若しくは相互作用し得るかについて示すリストを含む。一部の実施形態では、メタデータ183は、構成変更可能なプロパティと、フラグと、及び/又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるか否かを示すリストと、を含む。
一部の実施形態では、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識されたときに、イベントに関連付けられたイベント処理部190をアクティブ化する。一部の実施形態では、それぞれのイベント認識部180は、イベントに関連付けられたイベント情報をイベント処理部190に配信する。イベント処理部190をアクティブ化することは、対応するヒットビューにサブイベントを送信(及び送信を延期する)することとは異なる。一部の実施形態では、イベント認識部180は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベント処理部190は、フラグをキャッチし、既定の処理を実行する。
一部の実施形態では、イベント配信命令188は、イベント処理部をアクティブ化することなくサブイベントに関するイベント情報を配信するサブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部又はアクティブに関わっているビューに、イベント情報を配信する。一連のサブイベント又はアクティブに関わっているビューと関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
一部の実施形態では、データ更新部176は、アプリケーション136−1で使用されるデータを作成及び更新する。例えば、データ更新部176は、連絡先モジュール137で使用される電話番号を更新、又はビデオプレーヤモジュール145で使用されるビデオファイルを記憶する。一部の実施形態では、オブジェクト更新部177は、アプリケーション136−1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部177は、新たなユーザインタフェースオブジェクトを作成するか、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するため、表示情報をグラフィックモジュール132に送信する。
一部の実施形態において、イベント処理部(単数又は複数)190は、データ更新部176、オブジェクト更新部177、及びGUI更新部178を含むか、若しくはそれらにアクセスすることができる。一部の実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、それぞれのアプリケーション136−1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
タッチ感知ディスプレイ上でのユーザのタッチのイベント処理に関する前述の説明はまた、入力デバイスを用いて多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、そのすべてがタッチスクリーン上で開始されるわけではないことを理解されたい。例えば、単一又は複数のキーボードの押下又は保持に任意選択的に合わせたマウスの移動及びマウスボタンの押下、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示検出された眼球運動、バイオメトリック入力、及び/又はこれらの任意の組み合わせが、認識対象のイベントを定義するサブイベントに対応する入力として任意選択的に利用される。
図2は、一部の実施形態に係る、タッチスクリーン(例えば、図1Aのタッチ感知ディスプレイシステム112)を備えたポータブル多機能デバイス100を示す。タッチスクリーンは、ユーザインタフェース(user interface)(UI)200内に1つ以上のグラフィックを、任意選択的に表示する。本実施形態、並びに後述する実施形態において、ユーザは、例えば、1本以上の指202(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス203(図には、正確な縮尺率では描かれていない)を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することができる。一部の実施形態では、ユーザが1つ以上のグラフィックとの接触を断った際に、その1つ以上のグラフィックの選択が生じる。一部の実施形態では、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上方向へ及び/又は下方向へ)、並びに/又は、デバイス100と接触した指のローリング(右から左へ、左から右へ、上方向へ及び/若しくは下方向へ)を、任意選択的に含む。一部の実装又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、対応するアプリケーションを任意選択的に選択しない。
デバイス100はまた、「ホーム」又はメニューボタン204などの、1つ以上の物理ボタンも任意選択的に含む。前述のように、メニューボタン204は、デバイス100上で任意選択的に実行する、アプリケーションのセット内の任意のアプリケーション136へのナビゲーションに、任意選択的に使用される。あるいは、一部の実施形態では、メニューボタンは、タッチスクリーンディスプレイに表示されたGUIにおけるソフトキーとして実装されている。
一部の実施形態では、デバイス100は、タッチスクリーンディスプレイ、メニューボタン204、デバイスへの電源をオン/オフし、デバイスをロックするためのプッシュボタン206、音量調整ボタン(単数又は複数)208、加入者識別モジュール(SIM)カードスロット210、ヘッドセットジャック212、及びドッキング/充電用外部ポート124を含む。プッシュボタン206は、ボタンを押し下げて、既定の時間にわたってボタンを押し下げた状態で保持することによってデバイス上の電源をオン/オフし、ボタンを押し下げて、既定時間が経過する前にボタンを解放することによってデバイスをロックし、及び/又は、デバイスのロックを解除する、若しくは、ロック解除処理を開始するように、任意選択的に用いられる。一部の実施形態では、デバイス100はまた、マイクロフォン113を通して、一部の機能をアクティブ化し、又はディアクティブ化するための口頭入力を受け付ける。デバイス100はまた、タッチ感知ディスプレイシステム112上の接触の強度を検出するための1つ以上の接触強度センサ165、及び/又は、デバイス100のユーザに対する触知出力を生成するための1つ以上の触知出力生成器167も、任意選択的に含む。
図3は、一部の実施形態に係る、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。デバイス300は、ポータブル型である必要はない。一部の実施形態において、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディア再生デバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワーク又は他の通信インタフェース360と、メモリ370と、これらの構成要素を相互接続するための1つ以上の通信バス320と、を含んでいる。通信バス320は、システム構成要素間の通信を相互接続及び制御する回路(チップセットと呼ばれることがある)を任意選択的に含む。デバイス300は、典型的にはタッチスクリーンディスプレイであるディスプレイ340を備える入出力(I/O)インタフェース330を含む。I/Oインタフェース330はまた、キーボード及び/又はマウス(又は他のポインティングデバイス)350並びにタッチパッド355、デバイス300上に触知出力を生成するための(例えば、図1Aを参照して上述された触知出力生成器167と同様の)触知出力生成器357、センサ359(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び/又は図1Aを参照して上述された接触強度センサ165と同様の接触強度センサ)も、任意選択的に含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの、不揮発性メモリを含む。メモリ370は、CPU(単数又は複数)310から離れて位置する1つ以上の記憶デバイスを任意選択的に含む。一部の実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102に記憶されたプログラム、モジュール、及びデータ構造に類似するプログラム、モジュール、データ構造、又はそれらのサブセットを記憶する。更に、メモリ370は、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、及びデータ構造を、任意選択的に記憶する。例えば、デバイス300のメモリ370は、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を、任意選択的に記憶するが、ポータブル多機能デバイス100(図1A)のメモリ102は任意選択的に、これらのモジュールを記憶しない。
上記で特定された図3の要素のそれぞれは任意選択的に、上述のメモリデバイスのうちの1つ以上に記憶される。上記で識別されたモジュールうちのそれぞれは、上述した機能を実行するための命令セットに対応する。上述の識別されたモジュール又はプログラム(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実施される必要はなく、したがって、様々な実施形態において、これらのモジュールの様々なサブセットを任意選択的に、組み合わされるか、又は別の方法で再配置される。一部の実施形態において、メモリ370は、上述の識別されたモジュール及びデータ構造のサブセットを、任意選択的に記憶する。更に、メモリ370は、上述されていない追加のモジュール及びデータ構造を、任意選択的に記憶する。
ここで、ポータブル多機能デバイス100上に任意選択的に実装されるユーザインタフェース(「UI」)の実施形態に注意を向ける。
図4Aは、一部の実施形態に係る、ポータブル多機能デバイス100上のアプリケーションのメニューに関する例示的なユーザインタフェースを示す。同様のユーザインタフェースがデバイス300上に、任意選択的に実装される。一部の実施形態では、ユーザインタフェース400は、以下の要素、又はそれらの部分集合若しくは上位集合を含む。
●セルラ及びWi−Fi信号などの無線通信(単数又は複数)のための信号強度インジケータ(単数又は複数)402、
●時刻404、
●Bluetoothインジケータ405、
●バッテリ状態インジケータ406、
●下記などの、頻繁に利用されるアプリケーション用のアイコンを含むトレー408、
○不在着信又は音声メールメッセージの数の標識414を任意選択的に含む、「電話」とラベル付けされる、電話モジュール138用のアイコン416、
○未読電子メールの数の標識410を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール140用のアイコン418、
○「ブラウザ」とラベル付けされる、ブラウザモジュール147用のアイコン420、及び
○「iPod」とラベル付けされる、iPod(Apple Inc.の商標)モジュール152とも称されるビデオ及び音楽再生モジュール152用のアイコン422、及び
●下記などの、その他のアプリケーション用のアイコン、
○「テキスト」とラベル付けされる、IMモジュール141用のアイコン424、
○「カレンダー」とラベル付けされる、カレンダーモジュール148用のアイコン426、
○「写真」とラベル付けされる、画像管理モジュール144用のアイコン428、
○「カメラ」とラベル付けされる、カメラモジュール143用のアイコン430、
○「オンラインビデオ」とラベル付けされる、オンラインビデオモジュール155用のアイコン432、
○「株式」とラベル付けされる、株式ウィジェット149−2用のアイコン434、
○「地図」とラベル付けされる、地図モジュール154用のアイコン436、
○「天気」とラベル付けされる、天気ウィジェット149−1用のアイコン438、
○「時計」とラベル付けされる、アラーム時計ウィジェット149−4用のアイコン440、
○「トレーニングサポート」とラベル付けされる、トレーニングサポートモジュール142用のアイコン442、
○「メモ」とラベル付けされる、メモモジュール153用のアイコン444、及び
○デバイス100及びその様々なアプリケーション136に関する設定へのアクセスを提供する、設定アプリケーション若しくはモジュール用のアイコン446。
図4Aに図示されているアイコンのラベルは単なる例示に過ぎないことに留意されたい。例えば、一部の実施形態では、ビデオ及び音楽プレーヤモジュール152用のアイコン422は、「音楽」又は「音楽プレーヤ」とラベル付けされる。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。一部の実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図4Bは、ディスプレイ450とは別個のタッチ感知面451(例えば、図3のタブレット又はタッチパッド355)を備えたデバイス(例えば、図3のデバイス300)上の例示的なユーザインタフェースを示す。デバイス300はまた、タッチ感知面451上の接触の強度を検出するための1つ以上の接触強度センサ(例えば、センサ357のうちの1つ以上)、及び/又はデバイス300のユーザに対する触知出力を生成するための1つ以上の触知出力生成器359を任意選択的に含む。
図4Bは、ディスプレイ450とは別個のタッチ感知面451(例えば、図3のタブレット又はタッチパッド355)を備えたデバイス(例えば、図3のデバイス300)上の例示的なユーザインタフェースを示す。以下の実施例のうちの多くはタッチスクリーンディスプレイ112上での入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、一部の実施形態では、デバイスは、図4Bに示すように、ディスプレイとは別個のタッチ感知面上での入力を検出する。一部の実施形態において、タッチ感知面(例えば、図4Bの451)は、ディスプレイ(例えば、450)上の主軸(例えば、図4Bの453)に対応する主軸(例えば、図4Bの452)を有する。これらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの位置に対応する位置(例えば、図4Bにおいて、460は468と対応し、462は470と対応する)でのタッチ感知面451との接触(例えば、図4Bの460及び462)を検出する。このように、タッチ感知面がディスプレイとは別個のものであるとき、タッチ感知面(例えば、図4Bの451)上でデバイスによって検出されたユーザ入力(例えば、接触460及び462、及びそれらの動き)は、多機能デバイスのディスプレイ(例えば、図4Bの450)上のユーザインタフェースを操作するためにデバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
これに加えて、以下の説明は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャなど)を参照して説明されるが、一部の実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力又はスタイラス入力)で置き換えられることを理解されたい。例えば、スワイプジェスチャは任意選択的に、(例えば、接触の代わりに)マウスクリックと置換され、その後、(例えば、接触の移動の代わりに)スワイプの経路に沿ってカーソルの移動が行われる。別の例として、タップジェスチャは、(例えば、接触の検出、それに続いて接触の検出を停止する代わりに)カーソルがタップジェスチャの位置上に配置されている間、任意選択的にマウスクリックで置換される。同様に、複数のユーザ入力が同時に検出される時、複数のコンピュータマウスが同時に、任意選択的に用いられているか、又はマウスと指接触が任意選択的に同時に用いられていることが理解されよう。
本明細書にて使用されるとき、用語「フォーカスセレクタ」とは、ユーザが相互作用しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他のロケーションマーカを含む実装において、カーソルは、タッチ感知面(例えば、図3のタッチパッド355、又は図4Bのタッチ感知面451)上で入力(例えば、押下げ入力)が検出された時に、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある時、「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な相互作用を可能にする、タッチスクリーンディスプレイ(例えば、図1Aのタッチ感知ディスプレイシステム112、又は図4Aのタッチスクリーン)を含む一部の実装では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」の役割を果たすため、入力(例えば、接触による押圧入力)が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の場所で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。一部の実装では、(例えば、タブキー又は矢印キーを使ってフォーカスを1つのボタンから別のボタンに移動させることにより)タッチスクリーンディスプレイ上で対応するカーソルを移動せずに、又は接触を移動せずに、フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動される。これらの実装において、フォーカスセレクタは、ユーザインタフェースの異なる領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが採用する具体的な形態とは関わりなく、フォーカスセレクタは、全般的に、ユーザが意図するユーザインタフェースとの相互作用を(例えば、ユーザが相互作用することを意図しているユーザインタフェースの要素をデバイスに示すことによって)通信するために、ユーザによって制御されるユーザインタフェース要素(又は、タッチスクリーンディスプレイ上での接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出される間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の場所は、(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)その対応のボタンをアクティブ化することをユーザが意図していることを示すものである。
本明細書及び特許請求の範囲で使用されるとき、タッチ感知面への接触の「強度」という用語は、タッチ感知面への接触(例えば、指の接触又はスタイラスの接触)の力若しくは圧力(単位面積当りの力)、又はタッチ感知面への接触の力若しくは圧力の代用物(プロキシ)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、何百もの異なる値(例えば、少なくとも256)を含む、値の範囲を有する。接触の強度は、様々な方法及び様々なセンサ、又はセンサの組み合わせを用いて、任意選択的に判定(又は、測定)される。例えば、タッチ感知面の下に又は隣接して配置された1つ以上の力センサは、タッチ感知面上の様々な点における力を測定するために、任意選択的に使用される。一部の実施形態では、複数の力センサの力測定値を組み合わせて(例えば、加重平均又は合計)、接触の推定力を判定する。同様に、スタイラスの感圧性先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を判定する。あるいは、タッチ感知面上で検出される接触領域のサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化が、タッチ感知面への接触の力又は圧力の代替物として、任意選択的に用いられる。一部の実装では、接触の力又は圧力の代替的測定値は、強度閾値を超えているか否かを判定するために直接に用いられる(例えば、強度閾値は、代替的測定値に対応する単位で記述される)。一部の実装では、接触の力又は圧力の代替的測定値は、推定力又は推定圧力に変換され、この推定力又は推定圧力を用いて、強度閾値を超えているか否かを判定する(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。接触の強度をユーザ入力の属性として使用することは、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するため、及び/又はユーザ入力を(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的/機械的制御を介して)受信するための面積が制限された、低減されたサイズのデバイスにおいて、ユーザによるアクセスが他の場合に容易には不可能であり得る、追加のデバイス機能へのユーザのアクセスを可能にする。
ユーザインタフェース及び関連プロセス
ここで、ディスプレイ、タッチ感知面及びタッチ感知面を用いて接触の強度を検出する1つ以上のセンサを備えるポータブル多機能デバイス100又はデバイス300などの電子デバイスに実施され得るユーザインタフェース(「UI」)及び関連プロセスに注意を向ける。
図5A〜図5AOは、一部の実施形態に係る、文書編集環境でのスケッチ及び手書きサポートを提供するための例示的なユーザインタフェースを図示している。図5AP〜図5ARは、一部の実施形態に係る、文書編集環境でのスケッチ及び手書きサポートを提供するための例示的なユーザインタフェース及びそれに対応するデバイスの回転状態を図示している。これらの図の例示的なユーザインタフェースを使用して、図6A〜図6G、図7A〜図7B、図8A〜図8C及び図9A〜図9Bのプロセスを含む以下に説明するプロセスを図示している。以下の実施例のうちのいくつかは、(タッチ感知面とディスプレイとを組合せた)タッチスクリーンディスプレイ上での入力を参照して説明されるが、一部の実施形態では、デバイスは、図4Bに示すように、ディスプレイ450とは別個のタッチ感知面451上で入力を検出する。
図5Aは、ポータブル電子デバイス(例えば、デバイス100、図1A)用のスケッチ及び手書き入力機能を提供するアプリケーション(例えば、メモアプリケーション、スケッチアプリケーション、ワードプロセッシングアプリケーション、スクラップブッキングアプリケーションなど)のユーザインタフェース500を図示している。一部の実施形態では、スケッチ及び手書き入力機能が、キーボード入力機能(例えば、仮想キーボード若しくはハードウェアキーボード又はその両方を介した文字入力)とともに提供される。
図5Aに示すように、一部の実施形態では、ユーザインタフェース500は、アプリケーションで編集されている文書の少なくとも一部を表示する文書領域(例えば、メモページ502)を含んでいる。文書領域はコンテンツ提示エリアとも称される。一部の実施形態では、文書領域(例えば、メモページ502)内に表示される文書の一部を、マルチページビュー、フルページビュー、全幅ビュー、ズームビュー、アウトラインビュー、及びウェブページビューなどのいくつかの適当なビューのうちの1つの中に示す。図5Aでは、文書は全幅ビューで提示されている。一部の実施形態では、文書に関連付けられたメタデータ(例えば、タイトル、作成日、作者など)が、ユーザインタフェース内の文書(例えば、文書領域の上の)とともに任意選択的に表示される。
一部の実施形態では、アプリケーションは、タイプされた入力を受信するように構成されており、受信したタイプされた入力を、文書領域(例えば、メモページ502)内に表示された文書の部分内に表示する。図5Aに示すように、仮想キーボード504がユーザインタフェース500内に表示される(例えば、メモページ502の下部上に重ね合わされる)。タッチ入力(例えば、タップジェスチャ)が仮想キーボード504の1つ以上のキー上で検出されると、タッチされたキーに対応する文字が文書内の所定の場所(例えば、挿入カーソル506によって示された場所)に挿入される。
一部の実施形態では、ガイドライン508(例えば、均一に離間配置された水平線)は、文書内のテキスト入力の行間隔及び書き方向を視覚的に示すために文書領域内(例えば、メモページ502上)に任意選択的に表示される。
一部の実施形態では、挿入カーソル506は、ディスプレイ上のフォーカスセレクタの現在の場所に従って(例えば、タッチスクリーン112上のタップ入力の接触場所に従って)、かつ/又はフォーカスセレクタの移動に従って(例えば、文書領域内のある場所から別の場所まで挿入カーソル506をつかんでドラッグするドラッグジェスチャに従って)文書領域内に再配置される。一部の実施形態では、挿入カーソル506は、挿入カーソル506が文書領域内を移動すると、ガイドライン508によって予め定められた既定の許可された挿入位置及び既定の文字間隔までスナップされる。一部の実施形態では、挿入カーソル506は任意選択的に、ディスプレイ上のフォーカスセレクタの現在の場所に従って(例えば、タッチスクリーン112上のタップジェスチャの接触場所に従って)、かつ/又はフォーカスセレクタの移動に従って(例えば、文書領域内のある場所から別の場所まで挿入カーソル506をつかんでドラッグするドラッグジェスチャに従って)文書領域内のどこの位置にも(例えば、ガイドラインをわたって)配置される。
一部の実施形態では、デフォルトのガイドライン(例えば、ガイドライン508)が文書領域内に提供されておらず、文書領域内の新規の行の垂直位置は、挿入カーソル506が、例えば、タップジェスチャ又はドラッグアンドドロップジェスチャのいずれかによって文書領域内の新規の垂直位置に移動すると、挿入カーソル506の位置に基づいて任意選択的に規定される。一部の実施形態では、新規の行の垂直位置が挿入カーソル506の位置に基づいて規定された後、次の行の垂直位置は、新規の行の垂直位置及び文書に使用される通常の行間隔に基づいて規定される。新規の行の文字(例えば、キャリッジリターン)が仮想キーボード504を介して受信されると、挿入カーソル506は規定されたとおり、次の行に移動する。
図5Aは、いくつかのタイプされたテキスト(例えば、連続した4行のタイプされた文字)が仮想キーボード504を介して文書領域内に入力されており、挿入カーソル506が現在テキスト入力の末端に位置していることを図示している。
図5Bは、一部の実施形態において、文書領域内での直接的なスケッチ及び手書きがサポートされていることを図示している。図5Bに示すように、一部の実施形態では、スケッチ入力は、文書ページのフォーカスセレクタの移動によって文書ページの表示された部分上に直接描かれた(例えば、フォーカスセレクタの移動がタッチパッド又はタッチスクリーン112との接触の移動によって生じる)1つ以上のストロークを含む。一部の実施形態では、スケッチ及び手書き入力が文書ページの任意の場所に受け付けられ、予め定められた許可された挿入場所(例えば、ガイドライン508の間)にスナップされる必要はない。例えば、図5Bでは、手書き文字510(例えば、「The End」)は、それぞれのガイドラインにわたって書かれている。一部の実施形態では、スケッチ及び手書き入力は、(例えば、スケッチ512及び下線514によって図示するように)前にもってタイプされた1つ以上の文字によって現在占有された場所に受け付けられる。一部の実施形態では、スケッチ(例えば、スケッチ512及び下線514)は文書領域内において1つ以上のタイプされた文字(例えば、タイプされた文字「cursive(筆記体の)」)に対して十分に近くにある場合、このスケッチはタイプされた文字(例えば、タイプされた文字「cursive」)と、ユニットとして操作され得る(例えば、ドラッグされる、リフローされる(re-flown)、削除されるなど)オブジェクトにグループ化される。
図5Cは、一部の実施形態において、挿入カーソル506が接触(例えば、タッチスクリーン112又はタッチパッドへのスタイラス又は指の接触)によって、メモページ502内の第1の場所(例えば、場所516a)から第2の場所(例えば、場所516b)までドラッグされることを図示している。一部の実施形態では、挿入カーソル506は、タッチスクリーン112への接触のリフトオフ場所(例えば、場所516b)に最も近い許可された挿入場所に(又は、ディスプレイに連結されたタッチ感知面への接触のリフトオフ場所の対応するスクリーン上の場所に)スナップされる。
図5D〜図5Eは、一部の実施形態において、ユーザインタフェース500上に表示された対応するアフォーダンスを呼び出すことによって(例えば、スケッチ/手書き入力モード用のボタン517を選択することによって)、スケッチ/手書き入力モードが任意選択的に選択されることを図示している。一部の実施形態では、スケッチ/手書き入力エリア(例えば、スケッチ/手書き入力エリア518)が(例えば、仮想キーボード504を置き換えて)ユーザインタフェース500内に表示される。一部の実施形態では,スケッチ/手書き入力エリア518は、スケッチ及び手書きストローク(例えば、スケッチ/手書き入力エリア518内での1つ以上の接触の移動によって規定されるストローク)を受け付けて、それらをスケッチ/手書き入力エリア518内に表示されるように構成されている。一部の実施形態では、挿入位置インジケータ(例えば、挿入位置インジケータ520)は、表示された文書ページ(例えば、メモページ502)上に重ね合わされる。挿入位置インジケータは、スケッチ/手書き入力エリア518内で受け付けられたスケッチ/手書き入力が表示された文書ページ内に挿入されることになる場所を示す。例えば、一部の実施形態では、スケッチ/手書き入力エリア518内に示されるスペースは、挿入位置インジケータ520内に囲まれたスペースのズームされたバージョンである。
図5E〜図5Fは、一部の実施形態において、挿入位置インジケータ520が(例えば、挿入位置インジケータ520上のタッチスクリーン112へのスタイラス又は指の接触によって)、表示された文書ページ内のある場所(例えば、タイプされたテキスト「Second example:」の隣の場所522a)から別の場所(例えば、タイプされたテキスト「First example:」の隣の場所522b)にドラッグされることを図示している。一部の実施形態では、挿入位置インジケータ520は、ドラッグジェスチャの接触の移動に従って文書ページ内のどこの位置にも配置することができ、2本の隣接するガイドライン(例えば、ガイドライン508)の間に配置される必要はない。
図5G〜図5Hは、一部の実施形態において、スケッチ/手書き入力エリア518に向けられたピンチジェスチャ(例えば、スケッチ/手書き入力エリア518内で互いに向かって移動する2つの接触524及び526)の検出に応じて、挿入位置インジケータ520は表示された文書ページのより大きな部分を囲うように拡大される。図5Hに示すように、ピンチジェスチャに応じて、挿入位置インジケータ520は、表示された文書ページ(例えば、メモページ502)上で3行を囲うように拡大され(例えば、3倍に拡大され)、それに応じて、挿入位置インジケータ520内に囲まれたスペースのズームされたバージョンがスケッチ/手書き入力エリア518内に表示される。
図5I〜図5Jは、一部の実施形態において、スケッチ/手書き入力エリア518に向けられた逆ピンチジェスチャ(例えば、スケッチ/手書き入力エリア518内で互いから離れて移動する2つの接触528及び530)の検出に応じて、挿入位置インジケータ520は表示された文書ページ(例えば、メモページ502)のより小さな部分を囲うように縮小される。図5Jに示すように、逆ピンチジェスチャに応じて、挿入位置インジケータ520は、表示された文書ページ上で大まかに1行を囲うように縮小され(例えば、所定の係数、例えば、3で縮小され)、それに応じて、挿入位置インジケータ520内に囲まれたスペースのズームされたバージョンがスケッチ/手書き入力エリア518内に表示される。
一部の実施形態では、スケッチ/手書き入力エリア518内のジェスチャの場所は、文書ページ内で挿入位置インジケータ520が拡大した後又は縮小した後の、挿入位置インジケータ520の中心位置を決定するのに使用される。図5I〜図5Jにも示すように、スケッチ/手書き入力エリア518内における逆ピンチジェスチャの場所は、表示された文書ページ(例えば、メモページ502)上の挿入位置インジケータ520を再配置するのに使用される。
図5K〜図5Lは、一部の実施形態において、スケッチ/手書き入力エリア518のデフォルトの高さは文書内の1つの完全な行の高さ(one full line height)に対応する。したがって、スケッチ/手書き入力エリア518の高さ内に収まるあらゆる手書きは、文書ページ内の単一行の垂直間隔内に収まる。一部の実施形態では、手書きのテキスト入力をスケッチ入力と区別するヒューリスティックは、手書き入力のストロークのすべてが文書ページ内の単一行の高さに収まるかに基づくものである。したがって、手書きストロークが(例えば、メモページ502内のスタイラス又は指の接触によって)文書ページ内に直接提供されるか、あるいは手書き/スケッチ入力エリア518の使用を介して(例えば、手書き/スケッチ入力エリア518内でのスタイラス又は指の接触によって)間接的に提供されるかどうかにかかわらず、コンテンツオブジェクトを構成する一連のストロークのすべてが文書ページ内の単一行又は手書き/スケッチ入力エリア518の単一行の高さの中に閉じ込められている場合、一連のストロークは、スケッチ内のストロークではなく、一連の1つ以上の手書きの単語内のストロークであると判定される。換言すると、一部の実施形態では、一連の手書きストロークが1つ以上の手書きの単語を形成するかを判定するために、手書き認識を実行する必要はない。更に、一部の実施形態では、手書き単語ブロックが手書きストロークに基づいて生成され、文書ページ内に提示される場合、コーパス内で単語ブロックをタイプされたテキスト又は単語に変換するために、手書き認識を実行する必要はない。
図5K〜図5Lは更に、手書きストロークがスケッチ/手書き入力エリア518内で受け付けられると、スケッチ/手書き入力エリア518内に囲まれたコンテンツ及びスペースが自動的に、コンテンツ提示エリアと関連付けられたデフォルトの書き方向とは反対方向にスクロールされる(例えば、デフォルトの書き方向が左から右に水平に行くと、コンテンツ及びスペースが右から左に水平に移動する)ことを図示している。一部の実施形態では、スケッチ/手書き入力エリア518内の自動スクロールは、手書き入力中に時間的なブレイク(例えば、少なくとも閾値時間、例えば、30msの接触の休止又はリフトオフ)が検出された時に発生する。一部の実施形態では、スケッチ/手書き入力エリア518内の自動スクロールは、現在の手書き入力の境界(例えば、時間的又は空間的なブレイクまでの入力)がスクロール閾値マーク(例えば、スクロール境界インジケータ532)を横切った(又はその閾値距離内にある)時に発生する。一部の実施形態では、スケッチ/手書き入力エリア518内の自動スクロールは、時間的なブレイクとスクロール閾値マーク(例えば、スクロール境界インジケータ532)の横切りの両方が検出された時に発生する。一部の実施形態では、スクロール境界インジケータ532はスケッチ/手書き入力エリア518の中心に配置される。一部の実施形態では、挿入位置インジケータ520の右縁部が文書ページの右縁部に達する場合、自動スクロールは、手書き入力がスケッチ/手書き入力エリア518の右側部分をいっぱいにするまで一時的に中断される。その後、全スケッチ/手書き入力エリア518は、次の行の始まりを示すようにリフレッシュされ、それに応じて、挿入位置インジケータ520も文書ページ内の次の行の始まりまで移動する。
図5Lに示すように、一部の実施形態においては、スケッチ/手書き入力エリア518内のコンテンツ及びスペースは、スケッチ/手書き入力エリア518内に検出された継続した文書作成に応じて自動的にスクロールされるとき、挿入位置インジケータ520は、スケッチ/手書き入力エリア518内で発生しているスクロールに従って文書ページ内で書き方向(例えば、左から右に)に前進する。
図5Lに示すように、一部の実施形態では、スケッチ/手書き入力エリア518内に受信された手書きストロークは、例えば、互いの時間的近接性及び/又は空間的近接性に従って1つ以上の単語ブロックにグループ化される。一部の実施形態では、識別された単語ブロックのサイズ、間隔、向き及び/又は位置調整は、それらが文書ページ内で提示される前に調整される。例えば、図5Lに示すように、スケッチ/手書き入力エリア518内において、単語ブロック「cake(ケーキ)」は横書き方向に対して上向きに傾斜しているが、単語ブロック「ever!(これまでで!)」は、横書き方向に対してわずかに下向きに傾斜している。手書き単語ブロック「cake」及び「ever!」が文書ページ(例えば、メモページ502)内に提示されるとき、それらの向きはわずかに調整され、両方の単語ブロックが横書き方向に(例えば、水平に)整列されるようになる。
それに加えて、図5Lに示すように、「cake」及び「ever!」の単語ブロック間の間隔も調整され、手書き単語ブロック間の間隔は、文書ページ内のタイプされた単語間の通常の単語間隔に一致する(例えば、等しくなる)ようになる。
図5Lに示すように、手書き単語ブロック(例えば、「cake」及び「ever!」)のサイズは、隣接のタイプされたテキストのフォントサイズに従って任意選択的に調整されて(例えば、拡大又は縮小されて)、手書き単語ブロック及びタイプされたテキストが文書ページ内の同一行内に提示されるようになり、それらは概ね同一サイズになるようになる。
更に、図5Lに示すように、単語ブロックが文書ページ内に提示されるとき、手書き単語ブロックの縦揃えが任意選択的に調整されて、手書き単語ブロックは、同一行内のタイプされたテキストと同一の位置調整設定に従うことになる。本例では、手書きの単語がスケッチ/手書き入力エリア518内で概ね中心に縦揃えしていても、手書き単語ブロックが文書ページ内に提示されるときには、手書き単語ブロックの縦揃えが下揃えに変更されるのは、同一行内のタイプされたテキストが文書ページ内で下揃えされているからである。
図5M〜図5Nは、一部の実施形態において、スケッチ/手書き入力エリア518内での継続した文書作成に応じた自動スクロールに加えて、スケッチ/手書き入力エリア518内のスペース及び/又はコンテンツが様々な所定のスクロール入力に応じて書き方向に沿って手動でスクロール可能であることも図示している。
一部の実施形態では、スクロールバーが任意選択的に、スケッチ/手書き入力エリア518内に提示され(図5Mでは図示せず)、スケッチ/手書き入力エリア518内のスペース及び/又はコンテンツは、スクロールバー内の位置インジケータの手動移動に応じて書き方向に沿って前後にスクロールされる。
一部の実施形態では、図5Mに示すように、スクロールバーはスケッチ/手書き入力エリア518を提示されず、所定のスクロール入力は、少なくとも部分的にスケッチ/手書き入力エリア518内で検出されたスワイプジェスチャ(例えば、スケッチ/手書き入力エリア518内で書き方向に実質的に沿って前方又は後方に同時に移動する1つ以上の接触に基づいて検出されたスワイプジェスチャ)である。
一部の実施形態では、スクロールのスワイプジェスチャ(例えば、スケッチ/手書き入力エリア518内でコンテンツをドラッグする接触の移動)と手書き入力のスワイプジェスチャ(例えば、水平ストロークを描く接触の移動)とを区別するために、2つの同時接触が同期して移動するスワイプジェスチャがスクロールのために使用され、単一の接触を有するスワイプジェスチャが手書きストロークを描くために使用される。一部の実施形態では、スクロール入力と手書き入力とを区別する別の方法が使用される。例えば、移動する接触がタッチスクリーン112上の別の静止した接触を伴う場合、接触の移動はスクロール入力と解釈され、さもなければ、接触の移動はストロークを描くための手書き入力と解釈される。
一部の実施形態では、接触の移動がユーザインタフェース500内の所定の領域から開始(又はそこで終了)する(例えば、スクロール境界インジケータ534の右側から開始(又はそこで終了する))場合、接触の移動はスクロール入力と解釈され、さもなければ、接触の移動はストロークを描くための手書き入力と解釈される。図5Mに示すように、スケッチ/手書き入力エリア518内の単一の接触によるスワイプジェスチャ(例えば、スワイプジェスチャ536)は、スクロール境界インジケータ534の右側の場所から開始し、右から左に移動する(例えば、コンテンツ提示エリアに関連付けられた書き方向の反対方向である逆書き方向のスワイプ)。スワイプジェスチャ536の検出に応じて、スケッチ/手書き入力エリア518内のコンテンツ及びスペースは、逆書き方向にスクロールされる(例えば、右から左にスクロールされる)。スケッチ/手書き入力エリア518内のコンテンツ及びスペースのスクロールに従って、挿入位置インジケータ520は、スケッチ/手書き入力エリア518内に発生しているスクロールと同期して書き方向に移動する。
図5N〜図5Oは、一部の実施形態において、(例えば、図5Nに示すように、スワイプジェスチャ538に応じた)スケッチ/手書き入力エリア518内における逆書き方向のコンテンツの継続したスクロールにより、挿入位置インジケータ520は文書ページ内の現在の行の末端に到達し(例えば、図5Nに示すように、文書ページの右縁部540がスケッチ/手書き入力エリア518内のスクロール境界インジケータ534を通過している)、(図5Oに示すように)自動的に次の行の始まりに移動することを図示している。
図5Nに示すように、スワイプジェスチャ538(例えば、逆書き方向のスワイプジェスチャ)に応じて、スケッチ/手書き入力エリア518内のコンテンツ及びスペースは、逆書き方向にスクロールされる(例えば、右から左にスクロールされる)。スケッチ/手書き入力エリア518内のコンテンツ及びスペースのスクロールに従って、挿入位置インジケータ520は、スケッチ/手書き入力エリア518内に発生しているスクロールと同期して書き方向に移動する。
図5Pに示すように、スクロール境界インジケータ534の右側から開始する逆書き方向の別のスワイプジェスチャ(例えば、スワイプジェスチャ542)により、スケッチ/手書き入力エリア518内のスペース及びコンテンツは更に逆書き方向にスクロールする。それに応じて、挿入位置インジケータ520は、スケッチ/手書き入力エリア518内に発生しているスクロールと同期して書き方向に移動する。
一部の実施形態では、スクロール境界インジケータ534の右側で終了する書き方向のスワイプジェスチャにより、スケッチ/手書き入力エリア518内のスペース及びコンテンツは書き方向に移動することになる。それに応じて、挿入位置インジケータ520は、スケッチ/手書き入力エリア518内に発生しているスクロールと同期して逆書き方向に移動する。例えば、書き方向のスワイプジェスチャが、図5Oに示すスケッチ/手書き入力エリア518内で受信され、そのスワイプジェスチャがスクロール境界インジケータ534の右側で終了した場合、スケッチ/手書き入力エリア518内のコンテンツは、右にスクロールされ、挿入位置インジケータ520は文書ページの現在の行の始まりまで左に移動し、その後、現在の行の上の行の末端まで移動する。スクロール境界インジケータ534の右側で終了する書き方向の別のスワイプジェスチャにより、スケッチ/手書き入力エリア518内のスペース及びコンテンツが更に書き方向にスクロールすることになる。それに応じて、挿入位置インジケータ520は、スケッチ/手書き入力エリア518内に発生しているスクロールと同期して逆書き方向に移動するであろう。
一部の実施形態では、(例えば、スケッチ/手書き入力エリア518の右縁部の近くに位置付けられた)スクロール境界インジケータ534の右側で終了するスワイプジェスチャを、挿入位置インジケータを逆書き方向に移動させるスクロール入力として解釈する代わりに、あるいはそうすることに加えて、ミラースクロール境界インジケータが、スケッチ/手書き入力エリア518の左縁部の近くに配置されてもよく、ミラースクロール境界インジケータの左側で終了するスワイプジェスチャは、挿入位置インジケータを書き方向(例えば、左から右に、また文書ページの下に)に移動させるスクロール入力として解釈されることになる。それに応じて、ミラースクロール境界インジケータの左側で開始するスワイプジェスチャは、挿入位置インジケータを逆書き方向(例えば、右から左に、また文書ページの上に)に移動させるスクロール入力として解釈されることになる。
図5Qは、挿入位置インジケータ520が次の行で、占有されていないスペースを有する位置まで移動した後、ユーザはスケッチ/手書き入力エリア518内により多くの手書き入力(例えば、手書きの単語「Best Care Ever!」)を提供でき、手書き単語ブロック(「Best」「cake」及び/又は「Ever!」)を文書ページ内(例えば、タイプされたテキスト「Second example:」の後に)に提示し、それに応じて、挿入位置インジケータ520を書き方向に移動させることができる。
図5R〜図5Sは、(例えば、図5Rのテキスト入力ボタン544の選択に応じて)デバイスがキーボード入力モードに入っていることを図示している。デバイスがキーボード入力モードに入っている場合、図5Sに示すように、挿入カーソル506が表示され、最後の入力の末端(例えば、手書き単語ブロック「ever!」の後)に位置付けられる。
図5S〜図5Tは、ユーザは(例えば、所望の選択場所で選択ルーペを起動させる長押しを介して、それに続いて選択を拡張するための接触の移動を介して)タイプされたテキスト546(例えば、「Third example:」)を選択し、選択中のタイプされたテキスト546を、文書ページ(例えば、メモページ502)上のある場所から別の場所まで(例えば、その選択の上の別の押し入力を介して、それに続いてドラッグするように接触の移動を介して)ドラッグすることができることを図示している。一部の実施形態では、図5Tに示すように、選択されたテキストは、数行にわたって下方に(例えば、縦書き方向に)ドラッグされる。一部の実施形態では、選択されたオブジェクト(例えば、タイプされたテキスト、手書き単語ブロック(単数又は複数)、又はスケッチ)を第1の場所から第2の場所へドラッグすることにより、第2の場所で選択されたオブジェクトを収容するための第2の場所と他のオブジェクト又はテキストとの間に占有されていないスペースが十分にある限り、第2の場所の下方に他のオブジェクト又はテキストを押し動かすことはない。例えば、図5Tに示すように、手書きのテキスト510は、タイプされたテキスト546の移動により、押し動かされたり、リフローされたりしない。一部の実施形態では、選択されたオブジェクトを垂直方向(例えば、横書き方向に垂直な方向)にドラッグすることにより、選択されたオブジェクトの動きのみトリガーとされ、テキストのリフローはトリガーされないことをデバイスに信号で伝える。一部の実施形態では、ドラッグ入力の初期部分が垂直移動成分を含む限り、コンテンツ移動基準は満たされ、コンテンツのリフローはドラッグ入力に対して無効にされる。
図5Uは、ユーザが(例えば、所望の選択場所で選択ルーペを起動させる長押しを介して、それに続いて、その選択を拡張するための接触の移動を介して)タイプされたテキスト548(例えば、「Second example:」)を選択していることを図示している。
図5V〜図5Zは、ユーザが選択中のタイプされたテキスト548を書き方向に水平にドラッグしており、選択中のタイプされたテキスト548並びに、選択中のタイプされたテキスト548に続く手書き単語ブロックを書き方向に水平に押し動かし、次の行にリフローしているプロセスを図示している。
図5Vに示すように、選択中のタイプされたテキスト548は(その「選択」状態を示すように)強調表示されている間、ドラッグジェスチャ(例えば、ドラッグジェスチャ552)が(例えば、選択中のタイプされたテキスト548上の接触を介して、それに続いて接触の書き方向に水平な移動を介して)選択中のタイプされたテキスト548上に検出される。書き方向へのドラッグジェスチャに応じて、選択中のタイプされたテキスト548はドラッグジェスチャ552の接触の移動に従って書き方向に移動する。図5Vは、選択中のタイプされたテキスト548と、選択中のタイプされたテキスト548に続く手書き単語ブロック550との間の占有されていないスペースが、選択中のタイプされたテキスト548の移動により、縮小されることを示す。
図5Wでは、選択中のタイプされたテキスト548が更に書き方向に沿ってドラッグされると、手書き単語ブロック550も、更に書き方向に沿って押し動かされる(また、選択中のタイプされたテキスト548と手書き単語ブロック550との間に占有されていないスペースはもうない)。
図5Xでは、選択中のタイプされたテキスト548が更に書き方向に沿ってドラッグされ、現在の行内の残りのスペースが手書き単語ブロック550の全体をもう収容できなくなると、手書き単語ブロック550は、部分(例えば、「cake」及び「ever!」)が次の行内に押し動かされた状態で折り返される。
図5Yでは、選択中のタイプされたテキスト548が更に書き方向に沿ってドラッグされ、現在の行内の残りのスペースが選択中のタイプされたテキスト548の全体をもう収容できなくなると、選択中のタイプされたテキスト548は、部分(例えば、「econd example」)が次の行内に押し動かされた状態で折り返され、手書き単語ブロック550はもはや完全に次の行内に押し動かされている。
図5Zは、ドラッグジェスチャ552全体の間、接触が上の行内に残っていたとしても(例えば、接触の垂直移動は実質的になく)、ドラッグジェスチャ552の最後には、選択中のタイプされたテキスト548及び手書き単語ブロック550の両方が次の行に配置されていることを示す。それに加えて、ドラッグジェスチャ中、及びドラッグジェスチャの最後では、タイプされたテキスト548及び手書き単語ブロックの相対的な順序が維持されている。一部の実施形態では、手書き単語ブロック550の後に配置された挿入カーソル506もドラッグジェスチャ中に手書き単語ブロック550とともに押し動かされる。
一部の実施形態では、ドラッグジェスチャが継続するが、移動方向を逆転させる(例えば、接触が選択中のタイプされたテキスト548上に維持されたまま、接触が右から左に水平に移動する)場合、タイプされたテキスト548及び手書き単語ブロックの移動及びリフローは、ドラッグジェスチャが終わるまでに方向が逆転する。
図5AAは、ユーザが(例えば、所望の選択場所で選択ルーペを起動させる長押しを介して)手書き単語ブロック554(例えば、「Best」)を選択していることを図示している。図5AB〜図5ACはユーザが選択中の手書き単語ブロック554(例えば、「Best」)を書き方向に水平に(例えば、ドラッグジェスチャ555を用いて)ドラッグしており、選択中の単語ブロック554(例えば、「Best」)に続く手書き単語ブロック(例えば、「cake ever!」)が書き方向に水平に押し動かされ、次の行内にリフローされているプロセスを図示している。図5ACでは、手書き単語ブロック554(例えば、「Best」)が継続して書き方向に水平にドラッグされ、手書き単語ブロック(例えば、選択された単語ブロック554(例えば、「Best」)に続く「cake ever!」)を更に書き方向に沿って押し動かす。
図5ADは、ドラッグジェスチャ(例えば、ドラッグジェスチャ555)がその方向を逆転し、手書き単語ブロック554(例えば、「Best」)を逆書き方向に水平にドラッグするとき、手書き単語ブロック(「cake ever!」)も選択された手書き単語ブロック554に続き、逆書き方向に移動する。一部の実施形態では、手書き単語ブロック550(例えば、「Best cake ever!」)は、特性時刻での(例えば、手書き単語ブロックを作成する手書き入力の時刻での、かつ/又はドラッグ入力の時刻での)互いに対するそれらの時間的近接性及び/又は空間的近接性に基づいて、手書き単語ブロック550の任意の部分上でのドラッグジェスチャ中(例えば、手書き単語ブロック554「Best」上でのドラッグジェスチャ中)にグループとして扱われるので、グループとしてドラッグジェスチャとともに水平に移動する。
一部の実施形態(図5ADには図示せず)では、ドラッグジェスチャは、手書き単語ブロック550を逆手書き方向に水平に現在の行の始まりの隣の位置まで移動するとき、手書き単語ブロック550は部分が前の行の末端まで押し動かされた状態で折り返される。ドラッグジェスチャの接触は現在の行の始まりに到達すると、手書き単語ブロック550は完全に前の行の末端まで押し動かされる。一部の実施形態では、手書き単語ブロック550の隣に位置付けられたコンテンツ(例えば、他の手書き単語ブロック、又はタイプされた文字)が左にある場合で、手書き単語ブロック550が逆手書き方向に水平にドラッグされると、手書き単語ブロック550は任意選択的に、手書き単語ブロックに隣接して位置付けられたコンテンツも逆手書き方向に押し動かす。
図5AE〜図5AFは、選択された手書き単語ブロック554がユニットとして削除され、手書き単語ブロック554の削除により、手書き単語ブロック550内の残りの単語ブロックが逆手書き方向にシフトすることを図示している。本例では、手書き単語ブロック550はグループとして扱われ、グループの開始位置は、削除部分の前の手書き単語ブロック554(例えば、「Best」)を収容するのに使用され、今のところ、残りの手書き単語ブロック(例えば、「cake」及び「ever!」)をグループ内に収容している。
図5AF〜図5AGはメモアプリケーションの全体像モードからスケッチモードへの遷移を図示している。一部の実施形態では、全体像モードはズームされていない/拡大されていない状態(例えば、図5AFに示すような全幅ビュー)で提示され、スケッチモードは、ズームされた/拡大された(例えば、図5AGに示すように、より大きなサイズで文書ページの一部(例えば、ズームされた部分556)を示すようにズームされた)状態で提示される。
一部の実施形態では、デバイスは、所定の入力に応じて全体像モードとスケッチモードとを切り替える。例えば、全体像モードにある間に、ユーザは、表示された文書ページ上での逆ピンチジェスチャ(例えば、互いから離れて行く2つの接触)を使用して、デバイスにスケッチモードに入らせ、逆ピンチジェスチャの下の文書ページの部分をズームさせることができる。スケッチモードにある間に、ユーザは、文書ページの表示された部分上でのピンチジェスチャ(例えば、互いに向かって移動する2つの接触)を使用して、デバイスに全体像モードに入らせ、ズームされていない状態の文書ページの表示に復元させることができる。
図5AG〜図5AIは、スケッチモードにおいて、ユーザが文書ページの表示された部分に直接書き込むことによって手書きのテキストを入力することができることを図示している。例えば、図5AHに示すように、3つの新規の単語ブロック558(例えば、「I」、「had」及び「the」)は、既存の単語ブロック「cake」「ever!」(例えば、図5AGに示すように、単語ブロック550)の前に書かれている。一部の実施形態では、新規の手書きのテキストが既存の手書きのテキストのすぐ前(例えば、その閾値距離内にある)に挿入されると、既存の手書きのテキストは、新たに入力された手書きのテキストを収容する場所を作るように更に書き方向に沿って押し動かされる。図5AH〜図5AIに示すように、より多くの手書きの単語が既存の手書き単語ブロック(例えば、単語ブロック550)の前に書かれるにつれて、既存の手書き単語ブロック(例えば、単語ブロック500「cake」「ever!」)は継続して右に移動する。
一部の実施形態では、新たに入力された手書き単語ブロック(例えば、例えば、単語ブロック558「I had the best」)と既存の手書き単語ブロック(例えば、単語ブロック550「cake ever!」)の空間的近接性に基づいて、新たに入力された手書き単語ブロックと既存の手書き単語ブロックが同一のグループ(例えば、単語ブロック560「I had the best cake ever!(私はこれまでで一番美味しいケーキを食べた!)」)に接合され、その結果、それらを後に一体で操作することができる(例えば、移動のみのジェスチャ(例えば、垂直移動成分が文書ページの上に、若しくは下に行くドラッグジェスチャ、又は移動及びリフロージェスチャ(例えば、横書き方向若しくは逆横書き方向のドラッグジェスチャ))に応じて文書ページ上で移動し、又はリフローする)。
図5AI〜図5AJは、新規の手書き単語ブロック(例えば、単語ブロック558)の入力が完了した後、新たに入力された手書き単語ブロックと既存の単語ブロックとの間の余分の空白が(例えば、図5AJに示すように)文書ページから除去され、新たに入力された手書き単語ブロックと既存の手書き単語ブロックのグループ化が完了することを図示している。一部の実施形態では、手書きのテキスト入力が(スケッチ/手書き入力エリア518からではなく)文書ページから直接入力された場合、手書きのテキスト入力の行間隔、文字間隔、向き、縦揃え及び横揃えは任意選択的に、スケッチ/手書き入力エリア518を介して入力された手書きのテキスト入力に関して記載したものと同様の方法で元の位置に調整される。
図5AJはスケッチを文書ページ上に直接描くことができることを更に図示している。一部の実施形態では、手書きのテキスト入力とスケッチとを区別するために、手書きストロークによって占有されたスペースに基づいたヒューリスティックが使用される。例えば、互いに近い、かつ/又は連続した時間的近接性及び空間的近接性に基づいて一体にグループ化された手書きストロークのすべてが、文書ページの隣接する2本のガイドラインに収まる場合、手書きストロークのグループは手書きのテキスト入力として扱われる。手書きストロークのグループが手書きのテキスト入力であると判定されると、グループ内の単語ブロックの更なる分割が任意選択的に、入力プロセス中に存在したか、又は発生した時間的ブレイク及び/又は空間的ブレイクに基づいて実行される。それに対して、互いに近い、かつ/又は連続した時間的近接性及び空間的近接性に基づいて一体にグループ化された手書きストロークのすべてが、文書ページの2本の隣接するガイドラインを越えてまたがっている場合、手書きストロークのグループはスケッチとして扱われる。文書ページ上に描かれたストロークのグループ(例えば、その上にろうそくを有するケーキの描画を形成するストローク)は、スケッチ(例えば、スケッチ562)として扱われるのは、ストロークのグループが、文書ページ上に隣接する2本のガイドラインを越えてまたがっているからである。一部の実施形態では、ユーザは具体的に、例えば、ラッソ(lasso)ジェスチャを用いることによって複数のストロークをスケッチにグループ化することができる。
図5AJ〜図5AKは、(例えば、文書ページの表示された部分上でのピンチジェスチャ(例えば、互いに向かって移動する2つの接触)に応じた)メモアプリケーションのスケッチモードから全体像モードへの遷移を図示している。
図5AK〜図5ALは、タイプされたテキスト入力(例えば、新規の行の3つの文字)が、仮想キーボード504上のキャリッジリターンボタン(例えば、キャリッジリターン564)を介して文書ページ内に(例えば、タイプされたテキスト566「Third example:」の前に)入力されていることを図示している。一部の実施形態では、新規の行の文字の挿入によりタイプされたテキスト入力が垂直方向へ移動しても、移動しているタイプされたテキストを収容するための、移動しているタイプされたテキストとその下の他のコンテンツとの間に占有されていないスペースが存在している限り、他のコンテンツ(例えば、手書きのテキスト及びスケッチ510)をタイプされたテキストの下に押し動かさない。
図5AMは、文書ページ(例えば、コンテンツページ502)内のコンテンツ568(例えば、タイプされたテキスト、手書きのテキスト、スケッチ、又はそれらの2つ以上の組み合わせ)の選択を図示している。選択されたコンテンツは、図5AMに示すように、その「選択された」状態を示すように強調表示されている。一部の実施形態では、コンテンツ568の選択は選択入力(例えば、文書ページ上の所望の場所で選択ルーペを起動させる長押し、及び文書ページ上の追加の所望のコンテンツ項目を含めるための選択ルーペの境界の手動の拡張)に応じて行われる。コンテンツ(例えば、コンテンツ568)が文書ページ上で選択される間、別の入力(例えば、選択されたコンテンツへの第2の長押し、又はそれぞれの深押し閾値を超える特性強度での強い押し)を受信して、選択されたコンテンツに関連付けられたメニュー(例えば、メニュー570)を起動させる。一部の実施形態では、メニューは、切り取り、コピー、...へのリンクを作成する、などのメニューオプションを含んでいる。
一部の実施形態では、図5ANに示すように、「...へのリンクを作成する」のメニューオプションがメニュー570から選択されると、リンクの宛先アドレスを入力するためのウィンドウ(例えば、ウィンドウ572)が提示される。一部の実施形態では、宛先アドレスはウェブアドレス、ファイルシステムディレクトリ内のファイル、及び/又は文書、添付、若しくはメモアプリケーションに関連付けられた文書ページのうちの1つのアドレスである。一部の実施形態では、ユーザは、ウィンドウ572内の「ブラウザ」ボタンを選択することによって、可能性のある宛先文書、添付、又はメモアプリケーション若しくはデバイスファイルシステムに関連付けられた文書ページのリストを閲覧することができる。
一部の実施形態では、リンクの宛先アドレスがウィンドウ572内で特定されると、リンクが(そのアンカーコンテンツが選択されたコンテンツ568であるとして)作成される。リンクが文書ページから(例えば、ユーザが文書ページ内のコンテンツ568の任意の部分をタップすることによって)選択されると、デバイスは、ユーザインタフェース内の宛先アドレスに配置されるコンテンツ(例えば、ウェブページ、文書、添付、又は文書ページ)を提示する。一部の実施形態では、宛先アドレスに配置されるコンテンツのプレビューは任意追加的に、コンテンツ568への接触強度の初期増加に応じて提示され(ここでは、それはリンクでもあり、任意追加的に、リンクへのアンカーコンテンツとしてその状態を示すように強調表示される)、既定閾値強度を超える接触強度が引き続き増加すると、ユーザインタフェースは宛先アドレスに位置するコンテンツを提示する(例えば、当該ユーザインタフェースを、宛先アドレスに配置されたコンテンツをメインコンテンツとして示すユーザインタフェースに遷移する)。
一部の実施形態では、図5AOに示すように、「コピー」のメニューオプションがメニュー570から選択されると、選択された/コピーされたコンテンツを含むクリップボード(例えば、ウィンドウ574)が提示される。一部の実施形態では、クリップボードにより、ユーザは、コンテンツを文書ページに貼り付ける前にクリップボード内のコピーされたコンテンツを操作することができる。例えば、一部の実施形態では、ユーザは、コンテンツを文書ページに貼り付ける前に、クリップボード内のコンテンツを複数回複製したり、異なる視覚効果(例えば、x又はy次元のスケッチ、ズーム、色又はフォントの変更など)をそのコンテンツに適用したり、又はそのコンテンツを回転したりなどすることができる。
図5AP〜図5ARは、一部の実施形態に係る、デバイスの回転状態(例えば、デバイスの閾値向きの第1の側に、及びデバイスの閾値向きの第2の側に)に基づいたユーザインタフェースモード(例えば、拡大スケッチモード及び拡大されていない全体像モード)の切り替えを図示している。デバイスの向きは、ディスプレイの面(例えば、タッチスクリーン112の面)と基準面(例えば、水平面)との間の角度で測定される。
図5APは、デバイスの向き(「デバイスの傾き状態」とも称される)の変更に応じた図5AFに示す全体像モードから図5AQに示すスケッチモードへの遷移を図示している。デバイスが全体像モードにある間、デバイス(例えば、ポータブル多機能デバイス100)はディスプレイ(例えば、タッチスクリーン112)の面がデバイスの閾値向きの第1の側にある(例えば、デバイスの閾値向き576を越えて反時計回りに回転する)ように向けられ、デバイスがディスプレイ(例えば、タッチスクリーン112)の面がデバイスの閾値向きの第2の側にある(例えば、デバイスの閾値向き576を下回って時計回りに回転する)ように向きを変えられると、デバイスはスケッチモードに遷移する。
一部の実施形態では、デバイスの閾値向きがデバイスの初期の向きに基づいて動的に選択される。例えば、メモアプリケーションが最初に開始されると、メモアプリケーションはデフォルトで全体像モードとなり、デバイスの閾値向きは、デバイスの初期の向きと水平方向との(例えば、その中央にある)間になるように選択される。より具体的な例では、デバイスの初期の向きは、水平面から反時計回り方向に60度離れている場合、デバイスの閾値向きは、水平面から反時計回り方向に30度離れるように選択される。デバイスが時計回り方向に水平面から30度未満離れる向きまで回転すると(例えば、デバイスが水平面上に平坦に置かれると)、デバイスは、それに応じて拡大スケッチモードに切り替える。一部の実施形態では、ユーザが、別の方法を用いて(例えば、逆ピンチジェスチャを用いて)スケッチモードに入れ、閾値向きは逆ピンチジェスチャが検出される時のデバイスの向きに基づいて動的に選択される(例えば、閾値向きはデバイスの向きを超えるか、又はそれを下回る所定の角度になるように選択される)。
図5AQ及び図5ARの上部は、ディスプレイ(例えば、タッチスクリーン112)の面はデバイスの閾値向きの第2の側にある(例えば、デバイスの閾値向き576を下回って時計回りに回転している)間、デバイスは、スケッチモードのままであり、タッチスクリーン上に表示された文書ページのズームされた部分上でスケッチ又は手書きのテキスト入力を直接受け付ける。
図5ARは、デバイスの向きの変更に応じた図5AJに示すスケッチモードから図5AKに示す全体像モードへの遷移を図示している。デバイスがスケッチモードにある間、デバイス(例えば、ポータブル多機能デバイス100)は、ディスプレイ(例えば、タッチスクリーン112)の面がデバイスの閾値向きの第2の側になるように向けられ(例えば、デバイスの閾値向き576を下回って時計回りに回転し)、デバイスは、ディスプレイ(例えば、タッチスクリーン112)の面がデバイスの閾値向きの第1の側になるように向きが変えられる(例えば、デバイスの閾値向き576を越えて反時計回りに回転する)と、デバイスは全体像モードに遷移する。例えば、ユーザがいくつかの手書き入力をスケッチモードで入力した後、ユーザは、文書ページ全体を全体像モードで見えるようにデバイスを持ち上げることができ、コンテンツのレイアウトが満足いくものかを判定することができる。
一部の実施形態では、全体像モードに関連付けられた第1の傾き状態とスケッチモードに関連付けられた第2の傾き状態とを分離するための閾値として単一の閾値向きを使用する代わりに、2つの閾値向きを使用して、スケッチモードに関連付けられた角度範囲を規定することができ、その角度範囲内のデバイスの傾き状態はスケッチモードに関連付けられ、デバイスをその角度範囲外に回転すると、全体像モードに入る。
図6A〜図6Iは、一部の実施形態に係る、コンテンツページ内に手書きコンテンツを表示する方法600を図示するフローチャートである。方法600は、ディスプレイと、タッチ感知面とを有する電子デバイス(例えば、図3のデバイス300、又は、図1Aのポータブル多機能デバイス100)にて実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面はディスプレイ上、又はそれに統合されている。一部の実施形態では、ディスプレイはタッチ感知面から物理的に分離している。方法600のいくつかの動作は任意選択的に組み合わされ、かつ/又はいくつかの動作の順序は任意選択的に変更される。
タイプされたテキスト、手書きのテキスト、及び手で描かれたスケッチは、メモページ上の異なる3つのタイプのコンテンツである。一部の実施形態では、手書きストロークを手書き単語ブロック又は手で描かれたスケッチにグループ化することによって、手書きコンテンツを2つの異なる方法で扱うことができる。一部の実施形態では、手書き単語ブロックは、よりタイプされた文字のように振る舞い、タイプされた文字と同じように挿入、移動、削除、テキストの折り返し、新規の行などのテキスト編集コマンドに応答する。それに対して、手で描かれたスケッチは、キャンバス上に配置されたオブジェクトのようにより振る舞い、インライン、テキスト内に収められた、又はアンカーされた、などの異なる方法でテキストと配列することができる。手書き入力は認識される必要はなく(例えば、手書き認識は実行される必要はなく)、また、コンテンツページ内に提示される場合、タイプされた単語又は文字に変換される必要はない。
一部の実施形態では、デバイスは、入力エリア(例えば、入力エリアはメモページ(例えば、メモページ502)の直接上のエリア、又はメモページとは別個のスケッチ/手書き入力エリア(例えば、図5Eのスケッチ/手書き入力エリア518)、又はメモページ上の領域のズームビュー(例えば、図5AGのズームビュー556)とすることができる)で複数の手書きストロークを受信する(602)。
複数の手書きストロークの受信に応じて、デバイスは、手書きのテキスト入力とスケッチ入力とを区別する所定の基準に従って複数の手書きストロークがテキスト入力か、それともスケッチかを判定する(604)。例えば、一部の実施形態では、手書きのテキスト入力とスケッチ入力とを区別する基準は、複数のストロークが隣接する2本の文書作成ガイドラインに収まるかに基づくものである。手書き認識を、その入力がテキストであることを判定するのに実行する必要はない。一部の実施形態では、ストロークの時間的かつ空間的関係(例えば、時間的かつ空間的近接性及び間隙)が、入力ストロークがテキストか、それともスケッチかを判定するのに使用される。一部の実施形態では、ユーザは、第1のストロークを書く前に手書きのテキスト入力モード対スケッチ入力モードのトリガーとなる特別な何かをする必要はない。テキスト入力及びスケッチのストロークは任意選択的に、同一の入力エリア(例えば、メモページ502、スケッチ/手書き入力エリア518又はズームビューo556)に与えられる。
複数の手書きストロークがテキスト入力であるとの判定に従って、デバイスは、複数の手書きストロークに基づいて1つ以上の手書き単語ブロック(例えば、図5Lの単語ブロック「Best」、「cake」及び「ever!」)を生成し、第1の所定のレイアウト基準に従ってこの1つ以上の手書き単語ブロックをコンテンツ提示エリア(例えば、図5Lのメモページ502)内に位置付ける(606)。例えば、第1の所定のレイアウト基準は、手書きのテキストをメモページ上にレイアウトするための(例えば、手書き単語ブロック間の特定の単語間隔を設定する、ガイドライン間に等しく収めるように単語ブロックを整理する、既に適用された自動インデント又は箇条書きリストを追加する等のための)基準を含む。一部の実施形態では、手書き単語ブロックは、メモページ上の文字のように扱われ、タイプされた文字に課せられた同一の間隔要件及び位置調整要件を遵守する。
複数の手書きストロークはスケッチであるとの判定に従って、デバイスは、複数の手書きストロークに基づいて、スケッチコンテンツオブジェクト(例えば、図5Bのスケッチ512、又は図5AJのスケッチ562)を生成し、第1の所定のレイアウト基準とは異なる第2の所定のレイアウト基準に従って、そのスケッチコンテンツオブジェクトをコンテンツ提示エリア内に位置付ける(608)。例えば、第2のレイアウト基準としては、スケッチ完成後に、スケッチをクロップかつ/若しくはサイズ変更する、スケッチをコンテンツページ上の近くのコンテンツに近づける、スケッチを作成された場所に保つ、かつ/又は、手書きのテキストとタイプされたテキストとの間の重なり合いを許可せずに、スケッチとタイプされたテキストとの間の重なり合いを可能にするための基準などが挙げられる。
一部の実施形態では、1つ以上の手書き単語ブロックをコンテンツ提示エリア内に位置付けた後、デバイスは、1つ以上のタイプされた文字をコンテンツ提示エリア内に挿入するためのタイプされた入力を受信する(810)。タイプされた入力の受信に応じて、デバイスは、コンテンツ提示エリア内の1つ以上のタイプされた文字によって占有される第1の領域(例えば、第1の領域は、カーソル、例えば、カーソル506の場所に基づいて判定され得る)、及び1つ以上の手書き単語ブロックによって現在占有されている第2の領域が、第1のレイアウト更新基準を満たすかを判定する。例えば、一部の実施形態では、第1のレイアウト更新基準は、1つ以上のタイプされた文字が1つ以上の手書き単語ブロックの前の隣接する(例えば、1つ以上の手書き単語ブロックによって占有され、かつそれから閾値距離内にある同一行(単数又は複数)内の)位置に挿入されるときに満たされ、通常のテキストレイアウト基準及び手書きのテキスト入力用の第1の所定のレイアウト基準が遵守されるとき、挿入カーソルの場所と1つ以上の手書き単語ブロックの始まりとの間の占有されていないスペースがタイプされた文字のすべてを収容できるほど十分な大きさではない通常のテキストレイアウト基準及び手書きのテキスト入力用の第1の所定のレイアウト基準が遵守されるとき、挿入カーソルの場所と1つ以上の手書き単語ブロックの始まりとの間の占有されていないスペースがタイプされた文字のすべてを収容できるほど十分な大きさではないという基準を含む。第1の領域及び第2の領域が第1のレイアウト更新基準を満たすとの判定に従って、デバイスは、1つ以上のタイプされた文字を収容するために、1つ以上の手書き単語ブロックを、コンテンツ提示エリアに関連付けられた書き方向にシフトする(例えば、第1の所定のレイアウト基準を遵守しつつ、1つ以上の手書き単語ブロックを、1つ以上の単語ブロックによって占有されている現在の行に沿って書き方向に(例えば、左から右に)シフトする)。
一部の実施形態では、1つ以上の手書き単語ブロックを、コンテンツ提示エリアに関連付けられた書き方向にそれぞれの量だけシフトした後(例えば、単語ブロックを現在の行内を左から右にシフトした後、手書き単語ブロックがもはや完全には現在の行で収容できないとき)、デバイスは、1つ以上の手書き単語ブロックのうち少なくとも1つをコンテンツ提示エリア内の1つ以上の手書き単語ブロックによって占有された現在の行の下の次の行までシフトする(612)(例えば、手書き単語ブロックは、現在の行の末端で折り返され、単語ブロックの一部は、より多くのタイプされた文字が1つ以上の単語ブロックの前に挿入されるにつれて、次の行内にオーバーフローする)。
一部の実施形態では、1つ以上の手書き単語ブロックをコンテンツ提示エリア内に位置付けた後、デバイスは、1つ以上の追加の手書き単語ブロックをコンテンツ提示エリア内に挿入するための手書き入力を受信する(614)(例えば、1つ以上の手書き単語ブロックを形成する追加の複数の手書きストロークを受信する)。手書き入力の受信に応じて、デバイスは、コンテンツ提示エリア内の1つ以上の追加の手書き単語ブロックによって占有される第3の領域(例えば、第3の領域は、カーソルの場所又は追加のストロークの場所に基づいて判定され得る)、及び1つ以上の手書き単語ブロックによって現在占有されている第2の領域が、第1のレイアウト更新基準を満たすかを判定する。例えば、一部の実施形態では、第1のレイアウト更新基準は、1つ以上の追加の手書き単語ブロックが1つ以上の既存の手書き単語ブロックの前の隣接する(例えば、1つ以上の手書き単語ブロックによって占有され、かつそれから閾値距離内にある同一行(単数又は複数)内の)位置に挿入されるときに満たされ、手書きのテキスト入力用の第1の所定のレイアウト基準が遵守されるとき、挿入カーソルの場所と1つ以上の既存の手書き単語ブロックの始まりとの間の占有されていないスペースが追加の手書き単語ブロックのすべてを収容できるほど十分な大きさではないという基準を含む。第3の領域及び第2の領域が第1のレイアウト更新基準を満たすとの判定に従って、デバイスは、1つ以上の追加の手書き単語ブロックを収容するために、1つ以上の手書き単語ブロックを、コンテンツ提示エリアに関連付けられた書き方向にシフトする(例えば、図5AH〜図5AIの追加の単語ブロック558及び既存の単語ブロック550が示すように、第1の所定のレイアウト基準を遵守しつつ、1つ以上の手書き単語ブロックを、1つ以上の単語ブロックによって占有されている現在の行に沿って書き方向に(例えば、左から右に)シフトする)。
一部の実施形態では、1つ以上の手書き単語ブロックを、コンテンツ提示エリアに関連付けられた書き方向にそれぞれの量だけシフトした後(例えば、既存の単語ブロックを現在の行内を左から右にシフトした後、手書き単語ブロックがもはや完全には現在の行で収容できないとき)、デバイスは、1つ以上の手書き単語ブロックのうち少なくとも1つをコンテンツ提示エリア内の1つ以上の手書き単語ブロックによって占有された現在の行の下の次の行までシフトする(616)(例えば、既存の手書き単語ブロックは、現在の行の末端で折り返され、単語ブロックの一部は、より多くの手書き単語ブロックが1つ以上の既存の単語ブロックの前に挿入されるにつれて、次の行内にオーバーフローする)。
一部の実施形態では、デバイスは、1つ以上の追加の手書き単語ブロック及び1つ以上の手書き単語ブロックをユニットとして操作される(例えば、ドラッグ入力に応じてグループとして一体で移動される)グループにグループ化する(618)。
一部の実施形態では、コンテンツ提示エリアは、複数の手書きストロークを受信する前の既存のタイプされたテキストを含む(620)。第1の所定のレイアウト基準に従って1つ以上の手書き単語ブロックをコンテンツ提示エリア内に位置付けることは、コンテンツ提示エリア内の1つ以上の手書き単語ブロックによって占有される第2の領域、及びコンテンツ提示エリア内の既存のタイプされたテキストによって現在占有されている第4の領域が、第1のレイアウト更新基準を満たすことを判定することと、第2の領域及び第4の領域が第1のレイアウト更新基準を満たすとの判定に従って、1つ以上の手書き単語ブロックを収容するために、タイプされたテキストをコンテンツ提示エリアに関連付けられた書き方向にシフトすること(例えば、既存のタイプされたテキストを、既存のタイプされたテキストによって占有されている現在の行に沿って書き方向に(例えば、左から右に)シフトすること)と、1つ以上の単語ブロックを、コンテンツ提示エリア内の既存のタイプされたテキストの前に挿入することと、を含む。一部の実施形態では、第1のレイアウト更新基準は、1つ以上の手書き単語ブロックがタイプされたテキストの前の隣接する(例えば、タイプされたテキストによって占有され、かつそれから閾値距離内にある同一行(単数又は複数)内の)位置に挿入されるときに満たされ、手書きのテキスト入力用の第1の所定のレイアウト基準が遵守されるとき、挿入カーソルの場所と既存のタイプされたテキストの始まりとの間の占有されていないスペースが手書き単語ブロックのすべてを収容できるほど十分な大きさではないという基準を含む。
一部の実施形態では、既存のタイプされたテキストをコンテンツ提示エリアに関連付けられた書き方向にそれぞれの量だけシフトした後、デバイスは、既存のタイプされたテキストの少なくとも一部を、コンテンツ提示エリア内の既存のタイプされたテキストによって占有されている現在の行の下の次の行までシフトする(622)。
一部の実施形態では、スケッチコンテンツオブジェクトをコンテンツ提示エリア内に位置付けた後、デバイスは、1つ以上のタイプされた文字をコンテンツ提示エリア内に挿入するためのタイプされた入力を受信する(624)。タイプされた入力の受信に応じて、デバイスは、コンテンツ提示エリア内の1つ以上のタイプされた文字によって占有される第4の領域(例えば、第4の領域は、カーソル、例えば、カーソル506の場所に基づいて判定され得る)、及びスケッチコンテンツオブジェクトによって現在占有されている第5の領域が、第2のレイアウト更新基準を満たすかを判定する。一部の実施形態では、第2のレイアウト更新基準は、1つ以上のタイプされた文字がスケッチコンテンツオブジェクトの近くの(例えば、スケッチコンテンツオブジェクトから閾値距離内の)位置に挿入されるときに満たされ、通常のテキストレイアウト基準及びスケッチコンテンツオブジェクト用の第2の所定のレイアウト基準が遵守されるとき、挿入カーソルの場所とスケッチコンテンツオブジェクトとの間の占有されていないスペースがタイプされた文字のすべてを収容できるほど十分な大きさではないという基準を含む。第4の領域及び第5の領域が第2のレイアウト更新基準を満たすとの判定に従って、デバイスは、所定の第2のレイアウト基準に従って1つ以上のタイプされた文字及びスケッチコンテンツオブジェクトをコンテンツ提示エリア内に配列する(例えば、スケッチコンテンツオブジェクト及びタイプされたテキストがスケッチオブジェクトの周りのテキストの折り返しの設定(例えば、タイト、四角、インラインなど)を遵守するようにスケッチコンテンツオブジェクト及びタイプされたテキストをコンテンツ提示エリアの周りに移動する)。
一部の実施形態では、スケッチコンテンツオブジェクトをコンテンツ提示エリア内に位置付けた後、デバイスは、1つ以上の追加の手書き単語ブロックをコンテンツ提示エリア内に挿入するための手書き入力を受信する(626)(例えば、1つ以上の手書き単語ブロックを形成する追加の複数の手書きストロークを受信する)。手書き入力の受信に応じて、デバイスは、コンテンツ提示エリア内の1つ以上の追加の手書き単語ブロックによって占有される第6の領域、及びスケッチコンテンツオブジェクトによって現在占有されている第5の領域が、第2のレイアウト更新基準を満たすかを判定する。一部の実施形態では、第2のレイアウト更新基準は、1つ以上の追加の手書き単語ブロックがスケッチコンテンツオブジェクトの近くの(例えば、スケッチコンテンツオブジェクトから閾値距離内の)位置に挿入されるときに満たされ、スケッチコンテンツオブジェクト用の第2の所定のレイアウト基準が遵守されるとき、挿入カーソルの場所とスケッチコンテンツオブジェクトとの間の占有されていないスペースが追加の手書き単語ブロックのすべてを収容できるほど十分な大きさではないという基準を含む。第6の領域及び第5の領域が第2のレイアウト更新基準を満たすとの判定に従って、デバイスは、所定の第2のレイアウト基準に従って1つ以上の追加の手書き単語ブロック及びスケッチコンテンツオブジェクトをコンテンツ提示エリア内に配列する(例えば、スケッチコンテンツオブジェクト及び1つ以上の追加の手書き単語ブロックがスケッチオブジェクトの周りのテキストの折り返しの設定(例えば、タイト、四角、インラインなど)を遵守するようにスケッチコンテンツオブジェクト及び追加の手書き単語ブロックをコンテンツ提示エリアの周りに移動する)。
一部の実施形態では、コンテンツ提示エリアは、複数の手書きストロークを受信する前の既存のタイプされたテキストを含む(628)。第2の所定のレイアウト基準に従ってスケッチコンテンツオブジェクトをコンテンツ提示エリア内に位置付けることは、スケッチコンテンツオブジェクトの少なくとも一部をコンテンツ提示エリア内の既存のタイプされたテキスト上に重ね合わせることを含む(例えば、図5Bに示すようにタイプされたテキスト「cursive」上に重ね合わされたスケッチ512)。
一部の実施形態では、デバイスは、スケッチコンテンツオブジェクトと、既存のタイプされたテキストの少なくとも部分とを、ユニットとして操作される(例えば、ドラッグ入力に応じてグループとして一緒に移動する、削除入力に応じて一緒に削除される)グループにグループ化する(630)。
一部の実施形態では、1つ以上の手書き単語ブロックをコンテンツ提示エリア内に位置付けることは、1つ以上の手書き単語ブロックをコンテンツ提示エリア内のそれぞれの行内に位置付けることを含む(632)。デバイスは、1つ以上の手書き単語ブロックのうち少なくとも1つの選択(例えば、図5AAの単語ブロック554の選択)を検出する。1つ以上の手書き単語ブロックのうち少なくとも1つが選択されている間、デバイスは、1つ以上の手書き単語ブロックのうち選択された少なくとも1つ(例えば、図5ABの選択された単語ブロック554)に向けられたドラッグ入力(例えば、図5ABのドラッグ入力555)を受信する。ドラッグ入力が、コンテンツ提示エリア内の1つ以上の手書き単語ブロックによって現在占有されているそれぞれの行に沿ったフォーカスセレクタの移動(例えば、書き方向に水平なフォーカスセレクタの移動、又は逆書き方向に水平なフォーカスセレクタの移動)を含む(例えば、ドラッグ入力555は、図5ABの(例えば、選択された単語ブロック554を含む)単語ブロックによって占有された現在の行に沿って水平に移動する(フォーカスセレクタに対応する)接触を含む)ときに満たされる基準を含むコンテンツリフロー基準を、ドラッグ入力が満たすとの判定に従って、デバイスは、(例えば、図5AA〜図5ABに示すように)ドラッグ入力に従って1つ以上の手書き単語ブロックをそれぞれの行に沿って(例えば、書き方向に又は逆書き方向に)シフトする。
一部の実施形態では、1つ以上の手書き単語ブロックはドラッグ入力に従って書き方向にシフトされる(634)。1つ以上の手書き単語ブロックを、コンテンツ提示エリアに関連付けられた書き方向にそれぞれの行に沿ってそれぞれの量だけシフトした後、デバイスは、(例えば、図5AA〜図5ABに示すように)1つ以上の手書き単語ブロックのうち少なくとも1つを、コンテンツ提示エリア内のそれぞれの行の下の次の行までシフトする。
一部の実施形態では、デバイスは、1つ以上の手書き単語ブロックのシフト中、それぞれの行内の1つ以上の手書き単語ブロックによって以前に占有されたスペースを空白として維持する(例えば、空白は、図5AA〜図5ABに示すように手書き単語ブロック「Best cake ever!」のリフロー中、手書き単語ブロック554の前に作成される)(636)。
一部の実施形態では、1つ以上の手書き単語ブロックはそれぞれの行に沿って逆書き方向にシフトされる(638)。1つ以上の手書き単語ブロックを、コンテンツ提示エリアに関連付けられた逆書き方向にそれぞれの行に沿ってそれぞれの量だけシフトした後、デバイスは、1つ以上の手書き単語ブロックのうち少なくとも1つを、コンテンツ提示エリア内のそれぞれの行の上の前の行までシフトする。
一部の実施形態では、デバイスは、1つ以上の手書き単語ブロックのシフト中、逆書き方向に、1つ以上の手書き単語ブロックの後に位置付けられたコンテンツを、それぞれの行内の1つ以上の手書き単語ブロックによって前に占有されたスペース内にシフトする(640)。
一部の実施形態では、ドラッグ入力が、1つ以上の手書き単語ブロックによって現在占有されているそれぞれの行からそれぞれの行の外の場所までのフォーカスセレクタの移動(例えば、書き方向に実質的に垂直な方向へのフォーカスセレクタの移動)を含むときに満たされる基準を含むコンテンツ移動基準を、ドラッグ入力が満たすとの判定に従って、デバイスは、ドラッグ入力に従って1つ以上の手書き単語ブロックのうち選択された少なくとも1つを、コンテンツ提示エリア内の第1の場所から第2の場所まで移動させる(642)(例えば、第1の行内のある場所から、第1の行の上又は下に、ある程度の距離にある第2の行内の場所(それらの場所は、縦揃えされている必要はない)まで移動する)。一部の実施形態では、ドラッグジェスチャは、ドラッグ入力の初期部分が垂直移動成分を含み、ドラッグ入力の後続部分が水平移動成分及び/又は垂直移動成分の両方を含み得る限り、コンテンツ移動基準を満たすであろう。換言すると、ドラッグジェスチャの初期部分の垂直移動成分は、リフローを無効にし、選択された手書きテキストコンテンツの移動を可能にする。
一部の実施形態では、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを移動させることは、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを、コンテンツ提示エリア内の第1の既存のタイプされたテキストの後のある場所まで移動させる(例えば、その移動は、グループ全体ではなく、選択された単語ブロックのみに適用される)ことと、1つ以上の手書き単語ブロックのうち選択された少なくとも1つの移動によって作成されたスペースを埋めるために、1つ以上の手書き単語ブロックのうち選択された少なくとも1つと第1の既存のタイプされたテキストとの間のコンテンツをコンテンツ提示エリア内を逆書き方向にシフトすることと、を含む(644)。
一部の実施形態では、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを移動させることは、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを、第2の既存のタイプされたテキストの前のある場所まで移動させる(例えば、その移動は、グループ全体ではなく、選択された単語ブロックのみに適用される)ことと、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを収容するためのスペースを作成するよう、第2の既存のタイプされたテキストをコンテンツ提示エリア内を書き方向にシフトすることと、を含む(646)。
一部の実施形態では、手書きのテキスト入力とスケッチ入力とを区別するための所定の基準に従って複数の手書きストロークがテキスト入力か、それともスケッチかを判定することは、複数の手書きストロークがコンテンツ入力エリア内に表現される単一の行の高さ(例えば、図5Aのメモページ502内の2本の隣接するガイドライン508の間の高さ、又は図5Eのスケッチ/手書き入力エリア518内に表現される2本の隣接するガイドライン)に収まるときは、複数の手書きストロークがテキスト入力であると判定することを含む(648)。
一部の実施形態では、複数の手書きストロークに基づいて1つ以上の手書き単語ブロックを生成することは、複数の手書きストローク間の時間的かつ空間的関係に基づいて1つ以上の手書き単語ブロックを生成することを含む(例えば、一部の実施形態では、一連のストローク間の空間的かつ時間的近接性は任意選択的に、ストロークを同一の単語ブロックにグループ化するのに使用されるが、一連のストローク間の空間的かつ時間的間隙は任意選択的に、ストロークを隣接単語ブロックにセグメント化するのに使用される)(650)。
一部の実施形態では、複数の手書きストロークがテキスト入力か、それともスケッチかを判定することは、手書き認識に基づくものではない(652)(例えば、手書き認識が実行される必要はなく、単語ブロックは、辞書内でタイプされたテキスト又は単語に変換される必要はない)。
一部の実施形態では、1つ以上の手書き単語ブロックを複数の手書きストロークに基づいて生成することは、手書き認識に基づくものではない(654)(例えば、一部の実施形態では、手書き認識は実行されず、単語ブロックは辞書内でタイプされたテキスト又は単語に変換されない)。
図6A〜図6Gにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。それに加えて、本明細書に記載の他の方法(例えば、方法700、800、及び900)に関して本明細書で記載されている他のプロセスの詳細はまた、図6A〜図6Gに関連して上述されている方法600に類似の方法で適用可能であることも留意されたい。例えば、方法600に関連して上述されている接触、ジェスチャ、及びユーザインタフェースオブジェクトは任意選択的に、本明細書で説明されている他の方法に関連して本明細書で説明されている接触、ジェスチャ、及びユーザインタフェースオブジェクト(例えば、方法700、800及び900)の特性のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図7A〜図7Bは、一部の実施形態に係る、コンテンツページ内に手書きコンテンツを表示する方法700を図示するフローチャートである。方法700は、ディスプレイと、タッチ感知面とを有する電子デバイス(例えば、図3のデバイス300、又は、図1Aのポータブル多機能デバイス100)にて実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上、又はそれに統合されている。一部の実施形態では、ディスプレイはタッチ感知面から物理的に分離している。方法700の一部の動作が任意選択的に組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
一部の実施形態では、ズームされたスケッチ入力エリアの継続した水平スクロールにより、そのスクロールがメモページの縁部に到達するとき、入力位置インジケータが次の行に自動的に垂直配置される。一部の実施形態では、ズームされたスケッチ入力エリアのスクロールは、手書き入力をスケッチ/手書き入力エリア内に入力することによって生じるのではなく、スケッチ/手書き入力エリア内のスペース及びコンテンツを水平方向にドラッグすることによって生じる。
一部の実施形態では、デバイスは同時に、コンテンツページ(例えば、コンテンツページ502)とは別個の手書き入力エリア(例えば、図5Kのスケッチ/手書き入力エリア518)と、コンテンツページ上に重ね合わされた入力位置インジケータ(例えば、入力位置インジケータ520)を表示し、その場合、その入力位置インジケータは、(例えば、図5Kに図示するように)手書き入力エリアに示されたコンテンツページのエリアを囲む(702)。デバイスは、第1の方向への手書き入力エリア内のコンテンツのスクロール(例えば、右から左へのコンテンツのスクロール、又は左から右へのコンテンツのスクロール)を生じさせる1つ以上の入力(例えば、手書き入力又はスクロール入力)を受信する(704)。第1の方向への手書き入力エリア内のコンテンツのスクロールが所定の閾値条件を満たすこと(例えば、図5Nに示すようにコンテンツページの縁部がスクロール境界インジケータ540に十分に近い)の検出に応じて、デバイスは、入力位置インジケータを、入力位置インジケータの前の位置(例えば、図5Nに示す入力位置インジケータ520の前の位置)から、第1の方向(例えば、右から左への方向、又は左から右への方向)とは異なる第2の方向(例えば、上から下への方向、又は下から上への方向)にずらした、コンテンツページ上の第1の新規の位置(例えば、図5Oに示す入力位置インジケータ520の新規の位置)まで移動させる(706)。
一部の実施形態では、第1の方向は、コンテンツページに関連付けられた所定の書き方向に沿った方向(例えば、横書き方向か、又は逆横書き方向のいずれか)であり、第2の方向は、コンテンツページに関連付けられた所定の書き方向と垂直な方向(例えば、垂直上向き方向か、又は垂直下向き方向のいずれか)である(708)。
一部の実施形態では、第1の方向への手書き入力エリア内のコンテンツのスクロールを生じさせる1つ以上の入力を受信することは、手書き入力エリア内で複数の手書きストロークを受信することであって、その手書きストロークは第1の方向とは反対方向に手書き入力エリアを埋める(例えば、手書きストロークが手書き入力エリアを左から右に埋める)とともに、第1の方向への手書き入力エリア内のコンテンツのスクロールを生じさせる(例えば、図5K〜図5Lに示すように手書き入力エリア内の元のコンテンツは、右から左にスクロールする)、ことを含む(710)。
一部の実施形態では、手書き入力エリア内への複数の手書きストロークの受信に応じて、デバイスは、(例えば、図5Lに示すように)コンテンツページ内に複数の手書きストロークに従って生成された1つ以上の手書き単語ブロックを表示し、前の位置から第2の方向にずらした第1の新規の位置まで入力位置インジケータを移動させる前に、手書き入力エリアのスクロールに従って、コンテンツページ上で第1の方向とは反対の方向(例えば、入力位置インジケータを左から右に移動させる)に入力位置インジケータ(例えば、図5Lの入力位置インジケータ520)を移動させる(例えば、現在の行内の入力位置インジケータをコンテンツページの右縁部まで移動させ、その後、入力位置インジケータを次の行の始まりまで移動させる)(712)。
一部の実施形態では、第1の方向への手書き入力エリア内のコンテンツのスクロールを生じさせる1つ以上の入力を受信することは、手書き入力エリア(例えば、スケッチ/手書き入力エリア518)内に示されたコンテンツページのエリアを第1の方向(例えば、図5M及び図5Nに示すように右から左に)にドラッグする1つ以上の入力(例えば、図5Mのドラッグ入力536、図5Nのドラッグ入力534)を受信することを更に含む(714)。
一部の実施形態では、手書き入力エリア内に示されたコンテンツページのエリアを第1の方向にドラッグする1つ以上の入力を受信することは、逆書き方向(例えば、右から左に)へのフォーカスセレクタの移動(例えば、ドラッグジェスチャ536及び534の接触)を検出することであって、その移動は、(例えば、図5M及び図5Nに示すように)手書き入力エリア内に提示されたスクロール境界インジケータ(例えば、スクロール境界インジケータ534)を通過する、ことを含む(716)。
一部の実施形態では、所定の閾値条件は、1つ以上の入力により、入力位置インジケータは、コンテンツページの縁部から第1の方向に閾値距離内に到達する(例えば、図5Nに示すように、ドラッグ入力により、コンテンツページ502の右縁部540の表現はスクロール境界インジケータ534内の閾値距離に到達する)ときに満たされる条件を含む(718)。
一部の実施形態では、第1の新規の位置は、(例えば、図5Oに示すように)コンテンツページ上の新規の行の始まりにある(720)。
一部の実施形態では、デバイスは、(例えば、図5Oに示すように)前の位置から第2の方向にずらした第1の新規の位置まで入力位置インジケータを移動させる前に、コンテンツページの縁部の表現(例えば、図5Nのコンテンツページ502の右縁部540の表現)と、手書き入力エリア(例えば、スケッチ/手書き入力エリア518)内のスクロール境界インジケータ(例えば、図5Nのスクロール境界インジケータ534)を提示する(722)。
一部の実施形態では、第1の方向は、コンテンツページに関連付けられた水平方向であり、第2の方向は、コンテンツページに関連付けられた垂直方向である(724)。
一部の実施形態では、第1の方向は右から左であり、第2の方向はコンテンツページの上から下である(726)。(例えば、前方への水平スクロールにより、入力位置インジケータは次の行まで移動する)。
一部の実施形態では、第1の方向は左から右であり、第2の方向はコンテンツページの下から上である(728)。(例えば、後方への水平スクロールにより、入力位置インジケータは前の行まで移動する)。
図7A〜図7Bにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。それに加えて、本明細書に記載の他の方法(例えば、方法600、800、及び900)に関して本明細書で記載されている他のプロセスの詳細はまた、図7A〜図7Bに関連して上述されている方法700に類似の方法で適用可能であることも留意されたい。例えば、方法700に関連して上述されている接触、ジェスチャ、及びユーザインタフェースオブジェクトは任意選択的に、本明細書で説明されている他の方法に関連して本明細書で説明されている接触、ジェスチャ、及びユーザインタフェースオブジェクト(例えば、方法600、800及び900)の特性のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図8A〜図8Cは、一部の実施形態に係る、コンテンツページ内に手書きコンテンツを表示する方法800を図示するフローチャートである。方法800は、ディスプレイと、タッチ感知面とを有する電子デバイス(例えば、図3のデバイス300、又は、図1Aのポータブル多機能デバイス100)にて実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上、又はそれに統合されている。一部の実施形態では、ディスプレイはタッチ感知面から物理的に分離している。方法800のいくつかの動作は任意選択的に組み合わされ、かつ/又はいくつかの動作の順序は任意選択的に変更される。
一部の実施形態では、手書き入力が手書きのテキスト入力として認識され、1つ以上の手書き単語ブロックに変換されると、手書き単語ブロックを水平にドラッグし、ドラッグされた手書き単語ブロックに続く(例えば、手書きの又はタイプされた)テキストを更に書き方向に沿って押し動かしながら、手書き単語ブロックの前により多くの空白を作成することができる。ドラッグされた手書きのテキスト及び押し動かされたテキストは、(例えば、空白がいくつかのスペース文字によって通常のタイプされたテキストの前に挿入されるとき)通常のタイプされたテキストのように文書ページ上で移動し折り返す。ドラッグ及びリフロープロセス中、手書き単語ブロックは、それらの手書きの外観を維持し、タイプされたテキストには変換されない。コンテンツオブジェクト(例えば、手書き単語ブロック及びタイプされたテキスト)のシーケンシャルな順序は、コンテンツオブジェクトのドラッグ及びリフロー中、維持される。コンテンツオブジェクトのドラッグ及びリフローは、コンテンツオブジェクトを移動させるためのドラッグとは異なる。
一部の実施形態では、デバイスは、入力エリア(例えば、入力エリアはメモページ(例えば、メモページ502)の直接上のエリア、又はメモページとは別個のスケッチ/手書き入力エリア(例えば、図5Eのスケッチ/手書き入力エリア518)、又はメモページ上の領域のズームビュー(例えば、図5AGのズームビュー556)とすることができる)で複数の手書きストロークを受信する(802)。デバイスは、1つ以上の手書き単語ブロックをコンテンツ提示エリア(例えば、図5AAのメモページ502)内に、コンテンツ提示エリア(例えば、コンテンツ提示エリア及び入力エリアは、一部の実施形態では、任意選択的に同一のエリアである)に関連付けられた書き方向(例えば、左から右に)に沿って更に位置付ける。デバイスは、1つ以上の手書き単語ブロックの第1の手書き単語ブロック(例えば、図5ABの単語ブロック554「Best」)を書き方向に水平にドラッグする第1のドラッグ入力(例えば、ドラッグジェスチャ555)を受信する(806)(例えば、ドラッグジェスチャ555は単語ブロック554を、図5ABのコンテンツページ502内を左から右にドラッグする)。第1のドラッグ入力に応じて、デバイスは、(例えば、図5AA〜図5ABに示すように)第1の手書き単語ブロックが書き方向にドラッグされた距離に従って書き方向に沿って第1の手書き単語ブロックの前に空白の量を挿入する(808)。
一部の実施形態では、第1のドラッグ入力が受信されるとき、コンテンツ提示エリアは、書き方向に沿って第1の手書き単語ブロック(例えば、図5AAの単語ブロック554「Best」)の後に位置付けられた1つ以上のコンテンツオブジェクト(例えば、図5AAの単語ブロック「cake」及び「ever!」、又は他のコンテンツオブジェクト(例えば、十分な量の占有されていないスペースによって第1の単語ブロックと分離された他のタイプされたテキスト又は手書き単語ブロック))を含む(810)。第1のドラッグ入力に応じて、デバイスは、第1の手書き単語ブロック及び第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトのシーケンシャルな順序が、(例えば、図5AA〜図5ABに図示するように)第1の手書き単語ブロックのドラッグ中で、1つ以上のコンテンツオブジェクトのコンテンツ提示エリア内への再配置中、保存されるように、第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトをコンテンツ提示エリア内に再配置する。
一部の実施形態では、第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトは、手書き単語ブロック及びタイプされた文字のうちの1つ以上を含む(812)。
一部の実施形態では、第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトをコンテンツ提示エリア内に再配置することは、(例えば、図5ABに示すように)1つ以上のコンテンツオブジェクトのうち少なくとも1つが、第1の手書き単語ブロックによって現在占有されているそれぞれの行の下の新規の行の中に再配置されるように、1つ以上のコンテンツオブジェクトをコンテンツ提示エリア内でリフローすることを含む(814)。
一部の実施形態では、第1の手書き単語ブロックが書き方向にドラッグされた距離に従って書き方向に沿って第1の手書き単語ブロックの前に空白の量を挿入した後、デバイスは、第1の手書き単語ブロックを、コンテンツ提示エリアに関連付けられた逆書き方向(例えば、右から左に)に水平にドラッグする第2のドラッグ入力(例えば、第1のドラッグ入力以外の新規のドラッグジェスチャ(例えば、図5AB〜図5ACのドラッグジェスチャ555))、又は、図5AC〜図5ADに示すように移動方向に反転するドラッグジェスチャ555の一部)を検出する(816)。第2のドラッグ入力に応じて、デバイスは、第1の手書き単語ブロック(及び、一部の実施形態では、(例えば、図5AC〜図5ADに図示するように)第1のドラッグ入力に応じて再配置された1つ以上のコンテンツオブジェクト)を、第1の手書き単語ブロックが第2のドラッグ入力によって逆書き方向に沿ってドラッグされた距離に従って逆書き方向に沿って更にシフトする。
一部の実施形態では、デバイスは、1つ以上のタイプされた文字を、書き方向における第1の手書き単語ブロックの前の位置に挿入するタイプされた入力を受信する(818)。タイプされた入力の受信に応じて、デバイスは、1つ以上のタイプされた文字を収容できるように、第1の手書きの単語と、第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトを、コンテンツ提示エリア内を書き方向にリフローする。
一部の実施形態では、デバイスは、1つ以上のタイプされた文字(例えば、図5V〜図5Wのタイプされたテキスト548)を、コンテンツ提示エリア内を書き方向に水平に(例えば、左から右に)ドラッグする第3のドラッグ入力(例えば、図5V〜図5Wのドラッグジェスチャ552)を受信する(820)。第3のドラッグ入力(例えば、図5V〜図5Wのドラッグジェスチャ552)に応じて、デバイスは、(例えば、図5U〜図5Wに示すように)1つ以上のタイプされた文字が書き方向にドラッグされた距離に従って書き方向に沿って1つ以上のタイプされた文字の前に空白の量を挿入する。
一部の実施形態では、第3のドラッグ入力(例えば、図5V〜図5Wのドラッグジェスチャ552)に応じて、デバイスは、1つ以上のタイプされた文字と1つ以上のタイプされた文字の後に配置された第1の手書き単語ブロック(及びもしあれば、1つ以上のコンテンツオブジェクト)のシーケンシャルな順序が1つ以上のタイプされた文字のドラッグ中、かつ第1の手書き単語ブロック(及び1つ以上のコンテンツオブジェクト)のコンテンツ提示エリア内への再配置中、(例えば、図5V〜図5Wに図示するように)保存されるように1つ以上のタイプされた文字の後に配置された第1の手書きの単語(及びもしあれば、1つ以上のコンテンツオブジェクト)をコンテンツ提示エリア内に再配置する(822)。
一部の実施形態では、1つ以上のタイプされた文字の後に配置された第1の手書き単語ブロック(及び、もしあれば、1つ以上のコンテンツオブジェクト)をコンテンツ提示エリア内に再配置することは、第1の手書き単語ブロック(及びもしあれば、1つ以上のコンテンツオブジェクト)を、(例えば、図5W〜図5Yに示すように)1つ以上のタイプされた文字及び第1の手書き単語ブロックによって占有されたそれぞれの行の下の新規の行内にシフトすることを含む(824)。
図8A〜図8Cにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。それに加えて、本明細書に記載の他の方法(例えば、方法600、700、及び900)に関して本明細書で記載されている他のプロセスの詳細はまた、図8A〜図8Bに関連して上述されている方法800に類似の方法で適用可能であることも留意されたい。例えば、方法800に関連して上述されている接触、ジェスチャ、及びユーザインタフェースオブジェクトは任意選択的に、本明細書で説明されている他の方法に関連して本明細書で説明されている接触、ジェスチャ、及びユーザインタフェースオブジェクト(例えば、方法600、700及び900)の特性のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図9A〜図9Bは、一部の実施形態に係る、手書きコンテンツをコンテンツページ内に表示する(デバイスの傾きに応じてスケッチモードから全体像モードに切り替える)方法900を図示するフローチャートである。方法800は、ディスプレイと、タッチ感知面とを有する電子デバイス(例えば、図3のデバイス300、又は、図1Aのポータブル多機能デバイス100)にて実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上、又はそれに統合されている。一部の実施形態では、ディスプレイはタッチ感知面から物理的に分離している。方法900における一部の動作が任意選択的に、組み合わされ、かつ/又は一部の動作の順序が任意選択的に変えられる。
一部の実施形態では、デバイスが第1の傾き状態にある(例えば、図5ARの上部に示すようにデバイスが閾値向きを下回って時計回りに回転する)間、デバイスは、スケッチモードでコンテンツページ(例えば、コンテンツページ502)を表示し、この表示することは、コンテンツページの第1の部分のズームビュー(例えば、図5AJのズームビュー556)を表示することと、コンテンツページの部分内のコンテンツを修正するユーザ入力を受け付けるようにコンテンツページの第1の部分のズームビューを構成すること(例えば、スケッチモードにある間、ズームビューは、例えば、別個のスケッチ/手書き入力エリア(例えば、スケッチ/手書き入力エリア518)を必要とせずに、テキスト入力及びスケッチ入力用の手書きストロークを直接受け付ける)と、を含む(902)。一部の実施形態では、仮想キーボードは、(例えば、図5AJに示すように)デバイスがスケッチモードにある間に表示され、ユーザは、仮想キーボードを用いて、コンテンツページの表示された第1の部分内にタイプされた入力を入力することができる。
コンテンツページをスケッチモードで表示している間、デバイスは、デバイスが第1の傾き状態から、第1の傾き状態とは異なる第2の傾き状態まで傾けられる(例えば、図5ARの下部に示すように、閾値向きを超えて反時計回りに回転される)のを検出する(904)。デバイスが第1の傾き状態から第2の傾き状態に傾けられたことを検出したことに応じて、デバイスは、(例えば、図5ARに示すように)全体像モードでコンテンツページを表示し、この表示することは、(例えば、図5ARに示すように)コンテンツページの全体像を表示するようにズームアウトすることを含む(906)。
一部の実施形態では、コンテンツページを全体像モードで表示することは、ズームビューで前もって表示されたコンテンツページの第1の部分を示すように入力位置インジケータ(例えば、図5AKの入力位置インジケータ506)をコンテンツページの全体像の上に表示することを含む(908)。
一部の実施形態では、コンテンツページを全体像モードで表示している間、デバイスは、入力位置インジケータを、コンテンツページの第1の部分とは異なるコンテンツページの第2の部分まで移動させるユーザ入力を検出し、入力位置インジケータが、コンテンツページの第2の部分に配置されている間、デバイスは、デバイスが第2の傾き状態から第3の傾き状態に傾けられる(例えば、第1の傾き状態に戻るか、又はスケッチモードに関連付けられた別の傾き状態にもなる)ことを検出する(910)。デバイスが第2の傾き状態から第3の傾き状態に傾けられるのを検出したことに応じて、デバイスは、コンテンツページをスケッチモードで表示し、この表示することは、コンテンツページの第2の部分のズームビューを表示することと、コンテンツページの第2の部分内のコンテンツを修正するユーザ入力を受け付けるようにコンテンツページの第2の部分のズームビューを構成することと、を含む。
一部の実施形態では、第1の傾き状態及び第3の傾き状態は、第2の傾き状態と同一の側にある(912)。例えば、一部の実施形態では、全体像モードとスケッチモードとを切り替えるための閾値向きは、(例えば、図5AP及び図5ARに示すように)スケッチモードに関連付けられた第1の傾き状態と、全体像モードに関連付けられた第2の傾き状態との間の向きになり、全体像モードからスケッチモードに切り替えるように規定され、デバイスは、第2の傾き状態(例えば、全体像モードに関連付けられた傾き状態)から第1の傾き状態(例えば、スケッチモードに関連付けられた傾き状態)と閾値向きの同一の側に回転する必要がある。それゆえに、第1の傾き状態及び第3の傾き状態は、第2の傾き状態と同一の側にある。
一部の実施形態では、第2の傾き状態及び第3の傾き状態は、第1の傾き状態と異なる側にある(914)。例えば、一部の実施形態では、全体像モードとスケッチモードとを切り替えるための2つの閾値向きが規定され、これらの閾値向きのうちの1つは、第1の傾き状態の第1の側にあり、他の閾値向きは、第1の傾き状態の他の側にある。2つの閾値向きの間の角度範囲は、デバイスの傾きにより、デバイスがスケッチモードから切り替わらない範囲である。デバイスがスケッチモードに関連付けられた角度範囲内に時計回り方向に回転すると、デバイスは全体像モードからスケッチモードに切り替わる。デバイスが時計回り方向に継続して回転し、スケッチモードに関連付けられた角度範囲から出ると、デバイスはスケッチモードから全体像モードに切り替わる。それゆえに、第2の傾き状態及び第3の傾き状態は、第2の傾き状態と同一の側にある。
一部の実施形態では、デバイスが第1の傾き状態にある間、コンテンツページをスケッチモードで表示する前に、デバイスは、コンテンツページを全体像モードで表示し、コンテンツページを全体像モードで表示している間、デバイスは、コンテンツページの第1の部分に向けられた逆ピンチジェスチャを検出する(916)。デバイスは、コンテンツページの第1の部分に向けられた逆ピンチジェスチャの検出に応じてスケッチモードに入る。
一部の実施形態では、コンテンツページの第1の部分に向けられた逆ピンチジェスチャの検出に応じてスケッチモードに入った後、コンテンツページをスケッチモードで表示している間、デバイスは、コンテンツページの第1の部分に向けられたピンチジェスチャを検出し、コンテンツページの第1の部分に向けられたピンチジェスチャの検出に応じて全体像モードに入る(918)。
一部の実施形態では、デバイスは、逆ピンチジェスチャが検出された時のデバイスの向きに基づいて全体像モードとスケッチモードを切り替えるための閾値向きを判定する(920)(例えば、閾値向きは任意選択的に、逆ピンチジェスチャが検出される時のデバイスの向きから離れた(例えば、時計回り方向に、又は反時計回り方向に)所定の角度である)。一部の実施形態では、デバイスは、2つの閾値向きを有し、一方は、逆ピンチジェスチャが検出された時のデバイスの向きを超えて、他方はそのデバイスの向きを下回り、2つの閾値向きの間の角度範囲は、デバイスを傾けても、スケッチモードから全体像モードに切り替わらないが、角度範囲内から角度範囲外に(例えば、時計回り方向か、又は反時計回り方向のいずれかに)傾けると、スケッチモードから全体像モードに切り替わる範囲を規定する。
図9A〜9Bにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。それに加えて、本明細書に記載の他の方法(例えば、方法600、700、及び800)に関して本明細書で記載されている他のプロセスの詳細はまた、図9A〜図9Bに関連して上述されている方法800に類似の方法で適用可能であることも留意されたい。例えば、方法900に関連して上述されている接触、ジェスチャ、及びユーザインタフェースオブジェクトは任意選択的に、本明細書で説明されている他の方法に関連して本明細書で説明されている接触、ジェスチャ、及びユーザインタフェースオブジェクト(例えば、方法600、700及び800)の特性のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
一部の実施形態によれば、図10は、説明される様々な実施形態の原理に従って構成された電子デバイス1000の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図10で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図10に示すように、電子デバイス1000は、ディスプレイユニット1002と、タッチ感知面ユニット1004と、ディスプレイユニット1002及びタッチ感知面ユニット1004に連結された処理ユニット1008とを含む。
一部の実施形態では、処理ユニット1008は、受信ユユニット1010、判定ユニット1012、生成ユニット1014、位置決めユニット1016、及びグループ化ユニット1018を含む。
処理ユニット1008は、入力エリアで複数の手書きストロークを(例えば、受信ユユニット1010を用いて)受信するように構成されている。複数の手書きストロークの受信に応じて、処理ユニット1008は、手書きのテキスト入力とスケッチ入力とを区別する所定の基準に従って複数の手書きストロークがテキスト入力か、それともスケッチかを(例えば、判定ユニット1012を用いて)判定するように構成されている。複数の手書きストロークがテキスト入力であるとの判定に従って、処理ユニット1008は、複数の手書きストロークに基づいて1つ以上の手書き単語ブロックを(例えば、生成ユニット1014を用いて)生成し、第1の所定のレイアウト基準に従って1つ以上の手書き単語ブロックをコンテンツ提示エリア内に(例えば、位置決めユニット1016を用いて)位置付けるように構成されている。複数の手書きストロークはスケッチであるとの判定に従って、処理ユニット1008は、複数の手書きストロークに基づいて、スケッチコンテンツオブジェクトを(例えば、生成ユニット1014を用いて)生成し、第1の所定のレイアウト基準とは異なる第2の所定のレイアウト基準に従って、そのスケッチコンテンツオブジェクトをコンテンツ提示エリア内に(例えば、位置決めユニット1016を用いて)位置付けるように構成されている。
一部の実施形態では、処理ユニット1008は、1つ以上の手書き単語ブロックをコンテンツ提示エリア内に(例えば、位置決めユニット1016を用いて)位置付けた後、1つ以上のタイプされた文字をコンテンツ提示エリア内に挿入するためのタイプされた入力を(例えば、受信ユユニット1010を用いて)受信するように構成されている。タイプされた入力の受信に応じて、処理ユニット1008は、コンテンツ提示エリア内の1つ以上のタイプされた文字によって占有される第1の領域、及び1つ以上の手書き単語ブロックによって現在占有されている第2の領域が、第1のレイアウト更新基準を満たすかを(例えば、判定ユニット1012を用いて)判定するように構成されている。第1の領域及び第2の領域が第1のレイアウト更新基準を満たすとの判定に従って、処理ユニット1008は、1つ以上のタイプされた文字を収容するようにコンテンツ提示エリアに関連付けられた書き方向に1つ以上の手書き単語ブロックを(例えば、位置決めユニット1016)シフトするように構成されている。
一部の実施形態では、処理ユニット1008は、1つ以上の手書き単語ブロックをコンテンツ提示エリアに関連付けられた書き方向にそれぞれの量だけシフトした後、1つ以上の手書き単語ブロックのうち少なくとも1つを、コンテンツ提示エリア内の1つ以上の手書き単語ブロックによって占有されている現在の行の下の次の行に(例えば、位置決めユニット1016を用いて)シフトするように構成されている。
一部の実施形態では、処理ユニット1008は、1つ以上の手書き単語ブロックをコンテンツ提示エリア内に位置付けた後、1つ以上の追加の手書き単語ブロックをコンテンツ提示エリア内に挿入するための手書き入力を(例えば、受信ユユニット1010を用いて)受信するように構成されている。手書き入力の受信に応じて、処理ユニット1008は、コンテンツ提示エリア内の1つ以上の追加の手書き単語ブロックによって占有される第3の領域、及び1つ以上の手書き単語ブロックによって現在占有されている第2の領域が、第1のレイアウト更新基準を満たすかを(例えば、判定ユニット1012を用いて)判定するように構成されている。第3の領域及び第2の領域が第1のレイアウト更新基準を満たすとの判定に従って、処理ユニット1008は、1つ以上の追加の手書き単語ブロックを収容するようにコンテンツ提示エリアに関連付けられた書き方向に1つ以上の手書き単語ブロックを(例えば、位置決めユニット1016)シフトするように構成されている。
一部の実施形態では、処理ユニット1008は、1つ以上の手書き単語ブロックをコンテンツ提示エリアに関連付けられた書き方向にそれぞれの量だけシフトした後、1つ以上の手書き単語ブロックのうち少なくとも1つを、コンテンツ提示エリア内の1つ以上の手書き単語ブロックによって占有されている現在の行の下の次の行に(例えば、位置決めユニット1016を用いて)シフトするように構成されている。
一部の実施形態では、処理ユニット1008は、1つ以上の追加の手書き単語ブロック及び1つ以上の手書き単語ブロックを、ユニットとして操作されるグループに(例えば、グループ化ユニット1018を用いて)グループ化するように構成されている。
一部の実施形態では、コンテンツ提示エリアは、複数の手書きストロークを受信する前の既存のタイプされたテキストを含み、第1の所定のレイアウト基準に従って1つ以上の手書き単語ブロックをコンテンツ提示エリア内に位置付けることは、コンテンツ提示エリア内の1つ以上の手書き単語ブロックによって占有される第2の領域、及びコンテンツ提示エリア内の既存のタイプされたテキストによって現在占有されている第4の領域が、第1のレイアウト更新基準を満たすことを判定することと、第2の領域及び第4の領域が第1のレイアウト更新基準を満たすとの判定に従って、1つ以上の手書き単語ブロックを収容するように、タイプされたテキストをコンテンツ提示エリアに関連付けられた書き方向に(例えば、位置決めユニット1016を用いて)シフトすることと、1つ以上の単語ブロックを、コンテンツ提示エリア内の既存のタイプされたテキストの前に(例えば、位置決めユニット1016を用いて)挿入することと、を含む。
一部の実施形態では、処理ユニット1008は、既存のタイプされたテキストをコンテンツ提示エリアに関連付けられた書き方向にそれぞれの量だけシフトした後、既存のタイプされたテキストの少なくとも一部を、コンテンツ提示エリア内の既存のタイプされたテキストによって占有されている現在の行の下の次の行まで(例えば、位置決めユニット1016を用いて)シフトするように構成されている。
一部の実施形態では、処理ユニット1008は、スケッチコンテンツオブジェクトをコンテンツ提示エリア内に位置付けた後、1つ以上のタイプされた文字をコンテンツ提示エリア内に挿入するためのタイプされた入力を(例えば、受信ユユニット1010を用いて)受信するように構成されている。タイプされた入力の受信に応じて、処理ユニット1008は、コンテンツ提示エリア内の1つ以上のタイプされた文字によって占有される第4の領域、及びスケッチコンテンツオブジェクトによって現在占有されている第5の領域が、第2のレイアウト更新基準を満たすかを(例えば、判定ユニット1012を用いて)判定するように構成されている。第4の領域及び第5の領域が第2のレイアウト更新基準を満たすとの判定に従って、処理ユニット1008は、所定の第2のレイアウト基準に従って、1つ以上のタイプされた文字及びスケッチコンテンツオブジェクトをコンテンツ提示エリア内に(例えば、位置決めユニット1016を用いて)配列するように構成されている。
一部の実施形態では、処理ユニット1008は、スケッチコンテンツオブジェクトをコンテンツ提示エリア内に位置付けた後、1つ以上の追加の手書き単語ブロックをコンテンツ提示エリア内に挿入するための手書き入力を受信し、タイプされた入力の受信に応じて、コンテンツ提示エリア内の1つ以上の追加の手書き単語ブロックによって占有される第6の領域、及びスケッチコンテンツオブジェクトによって現在占有されている第5の領域が、第2のレイアウト更新基準を満たすかを(例えば、判定ユニット1012を用いて)判定するように構成されている。第6の領域及び第5の領域が第2のレイアウト更新基準を満たすとの判定に従って、処理ユニット1008は、所定の第2のレイアウト基準に従って、1つ以上の追加の手書き単語ブロック及びスケッチコンテンツオブジェクトをコンテンツ提示エリア内に(例えば、位置決めユニット1016を用いて)配列するように構成されている。
一部の実施形態では、コンテンツ提示エリアは、複数の手書きストロークを受信する前の既存のタイプされたテキストを含み、第2の所定のレイアウト基準に従って、スケッチコンテンツオブジェクトをコンテンツ提示エリア内に位置付けることは、スケッチコンテンツオブジェクトの少なくとも一部を、コンテンツ提示エリア内の既存のタイプされたテキスト上に重ね合わせることを含む。
一部の実施形態では、処理ユニット1008は、スケッチコンテンツオブジェクトと、既存のタイプされたテキストの少なくとも一部とを、ユニットとして操作されるグループに(例えば、グループ化ユニット1018を用いて)グループ化するように構成されている。
一部の実施形態では、1つ以上の手書き単語ブロックをコンテンツ提示エリア内に位置付けることは、1つ以上の手書き単語ブロックをコンテンツ提示エリア内のそれぞれの行内に位置付けることを含み、処理ユニット1008は、1つ以上の手書き単語ブロックのうち少なくとも1つの選択を検出するように構成されている。1つ以上の手書き単語ブロックのうち少なくとも1つが選択されている間、処理ユニット1008は、1つ以上の手書き単語ブロックのうち選択された少なくとも1つに向けられたドラッグ入力を(例えば、受信ユユニット1010を用いて)受信するように構成されている。ドラッグ入力がコンテンツ提示エリア内の1つ以上の手書き単語ブロックによって現在占有されているそれぞれの行に沿ったフォーカスセレクタの移動を含むときに満たされる基準を含むコンテンツリフロー基準をドラッグ入力が満たすとの判定に従って、処理ユニット1008は、ドラッグ入力に従って、それぞれの行に沿って1つ以上の手書き単語ブロックを(例えば、位置決めユニット1016を用いて)シフトするように更に構成されている。
一部の実施形態では、1つ以上の手書き単語ブロックがドラッグ入力に従って書き方向にシフトされ、処理ユニット1008は、1つ以上の手書き単語ブロックをコンテンツ提示エリアに関連付けられた書き方向をそれぞれの行に沿ってそれぞれの量だけシフトした後、1つ以上の手書き単語ブロックのうち少なくとも1つを、コンテンツ提示エリア内のそれぞれの行の下の次の行に(例えば、位置決めユニット1016を用いて)シフトするように構成されている。
一部の実施形態では、処理ユニット1008は、1つ以上の手書き単語ブロックのシフト中、それぞれの行内の1つ以上の手書き単語ブロックによって前もって占有されているスペースを空白として(例えば、位置決めユニット1016を用いて)維持するように構成されている。
一部の実施形態では、1つ以上の手書き単語ブロックはそれぞれの行に沿って逆書き方向に(例えば、位置決めユニット1016を用いて)シフトされ、処理ユニット1008は、1つ以上の手書き単語ブロックをコンテンツ提示エリアに関連付けられた逆書き方向にそれぞれの行に沿ってそれぞれの量だけシフトした後、1つ以上の手書き単語ブロックのうち少なくとも1つを、コンテンツ提示エリア内のそれぞれの行の上の前の行に(例えば、位置決めユニット1016を用いて)シフトするように構成されている。
一部の実施形態では、処理ユニット1008は、逆書き方向に、1つ以上の手書き単語ブロックの後に位置付けられたコンテンツを、1つ以上の手書き単語ブロックのシフト中、それぞれの行内の1つ以上の手書き単語ブロックによって前もって占有されたスペース内に(例えば、位置決めユニット1016を用いて)シフトするように構成されている。
一部の実施形態では、処理ユニット1008は、ドラッグ入力が、1つ以上の手書き単語ブロックによって現在占有されているそれぞれの行からそれぞれの行の外の場所までのフォーカスセレクタの移動を含むときに満たされる基準を含むコンテンツ移動基準を、ドラッグ入力が満たすとの判定に従って、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを、ドラッグ入力に従ってコンテンツ提示エリア内の第1の場所から第2の場所まで(例えば、位置決めユニット1016を用いて)移動させるように構成されている。
一部の実施形態では、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを移動させることは、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを、コンテンツ提示エリア内の第1の既存のタイプされたテキストの後の場所まで移動させることと、1つ以上の手書き単語ブロックのうち選択された少なくとも1つの移動によって作成されたスペースを埋めるために、1つ以上の手書き単語ブロックのうち選択された少なくとも1つと第1の既存のタイプされたテキストとの間のコンテンツをコンテンツ提示エリア内を逆書き方向にシフトすることと、を含む。
一部の実施形態では、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを移動させることは、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを、第2の既存のタイプされたテキストの前の場所まで移動させることと、1つ以上の手書き単語ブロックのうち選択された少なくとも1つを収容するためのスペースを作成するよう、第2の既存のタイプされたテキストをコンテンツ提示エリア内を書き方向にシフトすることと、を含む。
一部の実施形態では、手書きのテキスト入力とスケッチ入力とを区別するための所定の基準に従って複数の手書きストロークがテキスト入力か、それともスケッチかを判定することは、複数の手書きストロークがコンテンツ入力エリア内に表現される単一の行の高さに収まるときは、複数の手書きストロークがテキスト入力であると判定することを含む。
一部の実施形態では、1つ以上の手書き単語ブロックを複数の手書きストロークに基づいて生成することは、複数の手書きストロークの間の時間的かつ空間的関係に基づいて1つ以上の手書き単語ブロックを生成することを含む。
一部の実施形態では、複数の手書きストロークがテキスト入力か、それともスケッチかを判定することは、手書き認識に基づくものではない。
一部の実施形態では、1つ以上の手書き単語ブロックを複数の手書きストロークに基づいて生成することは、手書き認識に基づくものではない。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図6A〜図6Gを参照して先述した動作は任意選択的に、図1A〜図1Bに示す構成要素により実施される。例えば、判定動作604及び生成動作606は任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190により実行される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応するイベント認識部180は、そのイベント情報を対応するイベント定義186に比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を、任意選択的に用いるか又は呼び出す。一部の実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示されるコンポーネントに基づいてどのように実施されるかは明らかであろう。
一部の実施形態によれば、図11は、説明される様々な実施形態の原理に従って構成された電子デバイス1100の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図11で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図11に示すように、電子デバイス1100は、ディスプレイユニット1102と、1つ以上の入力を受信するように構成されたタッチ感知面ユニット1104と、ディスプレイユニット1102及びタッチ感知面ユニット1104と連結された処理ユニット1108とを含む。
一部の実施形態において、処理ユニット1108は、受信ユユニット1110、検出ユニット1112、及び移動ユニット1114を含む。
処理ユニット1108は同時に、コンテンツページとは別個の手書き入力エリアとコンテンツページ上に重ね合わされた入力位置インジケータを、ディスプレイユニット1102上に表示し、その入力位置インジケータは、手書き入力エリア内に示されたコンテンツページのエリアを囲むように構成されている。処理ユニット1108はまた、第1の方向への手書き入力エリア内のコンテンツのスクロールを生じさせる1つ以上の入力を(例えば、受信ユユニット1110を用いて)受信するように構成されている。第1の方向への手書き入力エリア内のコンテンツのスクロールが所定の閾値条件を満たすことの検出に応じて、処理ユニット1108は、入力位置インジケータを、入力位置インジケータの前の位置から第1の方向とは異なる第2の方向にずらしたコンテンツページの上にある第1の新規の位置まで(例えば、移動ユニット1114を用いて)移動させるように構成されている。
一部の実施形態では、第1の方向は、コンテンツページに関連付けられた所定の書き方向に沿った方向であり、第2の方向は、コンテンツページに関連付けられた所定の書き方向に垂直な方向である。
一部の実施形態では、第1の方向へ手書き入力エリア内のコンテンツのスクロールを生じさせる1つ以上の入力を受信することは、手書き入力エリア内で複数の手書きストロークを受信することであって、その手書きストロークは第1の方向とは反対方向に手書き入力エリアを埋めるとともに、第1の方向への手書き入力エリア内のコンテンツのスクロールを生じさせる、ことを更に含む。
一部の実施形態では、処理ユニット1108は、手書き入力エリアでの複数の手書きストロークの受信に応じて、ディスプレイユニット1102上に、コンテンツページ内の複数の手書きストロークに従って生成された1つ以上の手書き単語ブロックを表示するように構成されている。処理ユニット1108は、前の位置から第2の方向にずらした第1の新規の位置に入力位置インジケータを移動させる前に、手書き入力エリアのスクロールに従って第1の方向とは反対の方向に、コンテンツページ上の入力位置インジケータを(例えば、移動ユニット1114を用いて)移動させるように構成されている。
一部の実施形態では、第1の方向への手書き入力エリア内のコンテンツのスクロールを生じさせる1つ以上の入力を受信することは、手書き入力エリア内に示されたコンテンツページのエリアを第1の方向にドラッグする1つ以上の入力を受信することを更に含む。
一部の実施形態では、手書き入力エリア内に示されたコンテンツページのエリアを第1の方向にドラッグする1つ以上の入力を受信することは、逆書き方向へのフォーカスセレクタの移動を検出することであって、その移動は、手書き入力エリア内に提示されたスクロール境界インジケータを通過する、ことを含む。
一部の実施形態では、所定の閾値条件は、1つ以上の入力により、入力位置インジケータが、コンテンツページの縁部から第1の方向に閾値距離内に到達するときに満たされる条件を含む。
一部の実施形態では、第1の新規の位置は、コンテンツページ上の新規の行の始まりにある。
一部の実施形態では、処理ユニット1108は、前の位置から第2の方向にずらした第1の新規の位置に入力位置インジケータを移動させる前に、コンテンツページの縁部の表現と、手書き入力エリア内のスクロール境界インジケータを(例えば、ディスプレイユニット1102を用いて)提示するように構成されている。
一部の実施形態では、第1の方向はコンテンツページに関連付けられた水平方向であり、第2の方向はコンテンツページに関連付けられた垂直方向である。
一部の実施形態では、第1の方向は右から左であり、第2の方向はコンテンツページの上から下である。
一部の実施形態では、第1の方向は左から右であり、第2の方向はコンテンツページの下から上である。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図7A〜図7Bを参照して先述した動作は任意選択的に、図1A〜図1Bに示す構成要素により実施される。例えば、受信ユ動作704、及び移動動作706は任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190により実行される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応するイベント認識部180は、そのイベント情報を対応するイベント定義186に比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を、任意選択的に用いるか又は呼び出す。一部の実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示されるコンポーネントに基づいてどのように実施されるかは明らかであろう。
一部の実施形態によれば、図12は、説明される様々な実施形態の原理に従って構成された電子デバイス1200の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図12で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図12に示すように、電子デバイス1200は、ディスプレイユニット1202と、タッチ感知面ユニット1204と、ディスプレイユニット1202及びタッチ感知面ユニット1204に連結された処理ユニット1208とを含む。
一部の実施形態では、処理ユニット1208は、受信ユユニット1210、検出ユニット1212、生成ユニット1214、及び位置決めユニット1216を含む。
処理ユニット1208は、入力エリアで複数の手書きストロークを(例えば、受信ユユニット1210を用いて)受信するように構成されている。複数の手書きストロークの受信に応じて、処理ユニット1208は、複数の手書きストロークに基づいて1つ以上の手書き単語ブロックを(例えば、生成ユニット1214を用いて)生成し、コンテンツ提示エリアに関連付けられた書き方向に沿ってコンテンツ提示エリア内に1つ以上の手書き単語ブロックを(例えば、位置決めユニット1216を用いて)位置付けて、1つ以上の手書き単語ブロックの第1の手書き単語ブロックを書き方向に水平にドラッグする第1のドラッグ入力を(例えば、受信ユユニット1210を用いて)受信し、第1のドラッグ入力に応じて、第1の手書き単語ブロックが書き方向にドラッグされた距離に従って、書き方向に沿った第1の手書き単語ブロックの前に空白の量を(例えば、位置決めユニット1216を用いて)挿入するように構成されている。
一部の実施形態では、第1のドラッグ入力が受信されるとき、コンテンツ提示エリアは、書き方向に沿って第1の手書き単語ブロックの後に位置付けられた1つ以上のコンテンツオブジェクトを含み、処理ユニット1208は、第1のドラッグ入力に応じて、コンテンツ提示エリア内の第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトを(例えば、位置決めユニット1216を用いて)再配置して、第1の手書き単語ブロック及び第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトのシーケンシャルな順序が、第1の手書き単語ブロックのドラッグ中かつ1つ以上のコンテンツオブジェクトのコンテンツ提示エリア内への再配置中、保存されるように構成されている。
一部の実施形態では、第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトは、手書き単語ブロック及びタイプされた文字のうちの1つ以上を含む。
一部の実施形態では、第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトをコンテンツ提示エリア内に再配置することは、1つ以上のコンテンツオブジェクトのうち少なくとも1つが、第1の手書き単語ブロックによって現在占有されているそれぞれの行の下の新規の行の中に再配置されるように、1つ以上のコンテンツオブジェクトをコンテンツ提示エリア内でリフローすることを含む。
一部の実施形態では、処理ユニット1208は、第1の手書き単語ブロックが書き方向にドラッグされた距離に従って書き方向に沿った第1の手書き単語ブロックの前に空白の量を挿入した後、コンテンツ提示エリアに関連付けられた逆書き方向に水平に第1の手書き単語ブロックをドラッグする第2のドラッグ入力を(例えば、検出ユニット1212を用いて)検出し、第2のドラッグ入力に応じて、第1の手書き単語ブロックが第2のドラッグ入力によって逆書き方向にドラッグされた距離に従って逆書き方向に沿って第1の手書き単語ブロックを(例えば、位置決めユニット1216)シフトするように構成されている。
一部の実施形態では、処理ユニット1208は、1つ以上のタイプされた文字を、書き方向における第1の手書き単語ブロックの前の位置に挿入するタイプされた入力を(例えば、受信ユユニット1210を用いて)受信するように構成されている。タイプされた入力の受信に応じて、処理ユニット1208は、1つ以上のタイプされた文字を収容できるように、第1の手書きの単語と、第1の手書き単語ブロックの後に配置された1つ以上のコンテンツオブジェクトを、コンテンツ提示エリア内を書き方向にリフローするように構成されている。
一部の実施形態では、処理ユニット1208は、1つ以上のタイプされた文字をコンテンツ提示エリア内を書き方向に水平にドラッグする第3のドラッグ入力を受信し、第3のドラッグ入力に応じて、1つ以上のタイプされた文字が書き方向にドラッグされた距離に従って、書き方向に沿って1つ以上のタイプされた文字の前に空白の量を挿入するように構成されている。
一部の実施形態では、処理ユニット1208は、第3のドラッグ入力に応じて、1つ以上のタイプされた文字のドラッグ中、かつ第1の手書き単語ブロックのコンテンツ提示エリア内への再配置中、1つ以上のタイプされた文字と1つ以上のタイプされた文字の後に配置された第1の手書き単語ブロックのシーケンシャルな順序が保存されるように、コンテンツ提示エリア内に、1つ以上のタイプされた文字の後に配置された第1の手書きの単語を(例えば、位置決めユニット1216を用いて)再配置するように構成されている。
一部の実施形態では、1つ以上のタイプされた文字の後に配置された第1の手書き単語ブロックをコンテンツ提示エリア内に再配置することは、第1の手書き単語ブロックを、1つ以上のタイプされた文字及び第1の手書き単語ブロックによって占有されたそれぞれの行の下の新規の行内にシフトすることを含む。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図8A〜図8Cを参照して先述した動作は任意選択的に、図1A〜図1Bに示す構成要素により実施される。例えば、生成動作804、及び受信動作806は任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190により実行される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応するイベント認識部180は、そのイベント情報を対応するイベント定義186に比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を、任意選択的に用いるか又は呼び出す。一部の実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示されるコンポーネントに基づいてどのように実施されるかは明らかであろう。
一部の実施形態によれば、図13は、説明される様々な実施形態の原理に従って構成された電子デバイス1300の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図13で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図13に示すように、電子デバイス1300は、ディスプレイユニット1302と、タッチ感知面ユニット1304と、ディスプレイユニット1302及びタッチ感知面ユニット1304に連結された処理ユニット1308とを含む。
一部の実施形態では、処理ユニット1308は、受信ユユニット1310、検出ユニット1312、判定ユニット1314、及び位置決めユニット1316を含む。
処理ユニット1308は、デバイスが第1の傾き状態にある間、ディスプレイユニット1302上にコンテンツページをスケッチモードで表示するように構成されており、それは、コンテンツページの第1の部分のズームビューをディスプレイユニット1302上に表示することと、コンテンツページの部分内のコンテンツを修正するユーザ入力を受け付けるようにコンテンツページの第1の部分のズームビューを(例えば、位置決めユニット1316を用いて)構成することを含む。コンテンツページをスケッチモードで表示している間、処理ユニット1308は、デバイスが第1の傾き状態から第1の傾き状態とは異なる第2の傾き状態に傾けられるのを(例えば、検出ユニット1312を用いて)検出するように構成されている。デバイスが第1の傾き状態第から2の傾き状態に傾けられたことの検出に応じて、処理ユニット1308は、コンテンツページの全体像を表示するようにズームアウトすることを含め、全体像モードでコンテンツページをディスプレイユニット1302上に表示するように構成されている。
一部の実施形態では、コンテンツページを全体像モードで表示することは、ズームビューで前もって表示されたコンテンツページの第1の部分を示すように入力位置インジケータをコンテンツページの全体像の上に表示することを含む。
一部の実施形態では、処理ユニット1308は、コンテンツページを全体像モードで表示している間、入力位置インジケータを、コンテンツページの第1の部分とは異なるコンテンツページの第2の部分まで移動させるユーザ入力を(例えば、検出ユニット1312を用いて)検出するように構成されている。入力位置インジケータがコンテンツページの第2の部分に配置されている間、処理ユニット1308は、デバイスが第2の傾き状態から第3の傾き状態まで傾けられるのを(例えば、検出ユニット1312を用いて)検出するように構成されている。デバイスが第2の傾き状態から第3の傾き状態に傾けられるのを検出することに応じて、処理ユニット1308は、ディスプレイユニット1302上にコンテンツページをスケッチモードで表示するように構成されており、この表示することは、ディスプレイユニット1302上にコンテンツページの第2の部分のズームビューを表示することと、コンテンツページの第2の部分内のコンテンツを修正するユーザ入力を受け付けるようにコンテンツページの第2の部分のズームビューを(例えば、位置決めユニット1316を用いて)構成することと、を含む。
一部の実施形態では、第1の傾き状態及び第3の傾き状態は、第2の傾き状態と同一の側にある。
一部の実施形態では、第2の傾き状態及び第3の傾き状態は、第1の傾き状態と異なる側にある。
一部の実施形態では、処理ユニット1308は、デバイスが第1の傾き状態にある間、コンテンツページをスケッチモードで表示する前に、ディスプレイユニット1302上に全体像モードでコンテンツページを表示するように構成されている。コンテンツページを全体像モードで表示している間、処理ユニット1308は、コンテンツページの第1の部分に向けられた逆ピンチジェスチャを(例えば、検出ユニット1312を用いて)検出し、コンテンツページの第1の部分に向けられた逆ピンチジェスチャの検出に応じてスケッチモードに入るように構成されている。
一部の実施形態では、処理ユニット1308は、コンテンツページの第1の部分に向けられた逆ピンチジェスチャの検出に応じてスケッチモードに入った後、コンテンツページをスケッチモードで表示している間、コンテンツページの第1の部分に向けられたピンチジェスチャを(例えば、検出ユニット1312を用いて)検出し、コンテンツページの第1の部分に向けられたピンチジェスチャの検出に応じて全体像モードに入るように構成されている。
一部の実施形態では、処理ユニット1308は、逆ピンチジェスチャが検出された時のデバイスの向きに基づいて全体像モードとスケッチモードとを切り替えるための閾値向きを(例えば、判定ユニット1314を用いて)判定するように構成されている。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図9A〜図9Bを参照して先述した動作は任意選択的に、図1A〜図1Bに示す構成要素により実施される。例えば、検出する動作910、及び判定する動作920は任意選択的に、イベントソータ170、イベント認識部180、及びイベント処理部190により実行される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応するイベント認識部180は、そのイベント情報を対応するイベント定義186に比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を、任意選択的に用いるか又は呼び出す。一部の実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示されるコンポーネントに基づいてどのように実施されるかは明らかであろう。
上述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかしながら、上記の例示的な論考は、網羅的であること、又は本発明を、開示される厳密な形態に限定することを意図するものではない。上記の教示を鑑みて、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に好適な様々な改良で本発明及び様々な実施形態を最良の形で使用することを可能とするために、これらの実施形態を選択し説明した。