(58)【調査した分野】(Int.Cl.,DB名)
複数のウィンドウおよびデスクトップを表示するための第1のタッチセンサ式ディスプレイおよび第2のタッチセンサ式ディスプレイを有するモバイルマルチディスプレイデバイスを構成するための方法であって、
前記第1及び第2のタッチセンサ式ディスプレイ上に第1のウィンドウを表示する工程であって、前記第1のウィンドウは、デュアルディスプレイウィンドウであり、該デュアルディスプレイウィンドウは、前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つ上に表示可能である、前記表示する工程と、
前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つに動作可能に関連付けられているが、前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つからは分離している前記マルチディスプレイデバイスのジェスチャ捕捉エリアへの第1のユーザの指によるジェスチャ入力を受信する工程と、
前記複数のウィンドウおよびデスクトップのウィンドウスタックの順序をナビゲートするための要求として前記第1のユーザの指によるジェスチャ入力を解釈する工程であって、前記ウィンドウスタックの順序に対するデータは、非一時的なデータストレージに格納されており、前記ウィンドウスタックの順序は、アクティブまたは非アクティブのウィンドウおよびデスクトップの論理構成である、前記解釈する工程と、
前記解釈に応じて、前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つ上に提示する第2のウィンドウを決定する工程であって、前記第2のウィンドウは、前記ウィンドウスタックの順序において、前記第1のウィンドウの直前、または直後であるとして識別される、前記決定する工程と、
前記第2のウィンドウの決定の結果、
前記第1のウィンドウの表示を停止する工程と、
前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つ上に前記第2のウィンドウを表示する工程と
を含む方法。
前記ジェスチャ捕捉エリアは、ユーザジェスチャ入力を受信するための容量性のタッチセンサ式エリアを含み、前記ジェスチャ捕捉エリアは、前記ウィンドウおよびデスクトップのいずれも表示することができない、請求項1に記載の方法。
複数のウィンドウおよびデスクトップを表示するための第1のタッチセンサ式ディスプレイおよび第2のタッチセンサ式ディスプレイを有するデュアルディスプレイデバイスを構成するための非一時的なコンピュータ可読媒体であって、
マシン命令を含み、該マシン命令は、
ウィンドウスタックを作成し、ここで、前記ウィンドウスタックは、アクティブおよび非アクティブのウィンドウの論理的順序を表すデータ構造を含み、前記ウィンドウスタック用のデータは、非一時的なデータ構造に格納されており、
前記第1及び第2のタッチセンサ式ディスプレイ上に第1のウィンドウを表示し、ここで、前記第1のウィンドウは、デュアルディスプレイウィンドウであり、該デュアルディスプレイウィンドウは、前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つ上に表示可能であり、
前記デュアルディスプレイデバイスのジェスチャ捕捉エリアへの第1のユーザの指によるジェスチャ入力を受信し、ここで、前記ジェスチャ捕捉エリアは、前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つに動作可能に関連付けられているが、前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つから分離されており、
前記複数のウィンドウおよびデスクトップの前記ウィンドウスタックをナビゲートするための要求として前記第1のユーザの指によるジェスチャ入力を解釈し、
前記解釈に応じて、前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つ上に提示する第2のウィンドウを決定し、
ここで、前記ウィンドウスタックにおいて、次のウィンドウまたはデスクトップが現時点で表示されている第1のウィンドウの直前、または直後であるとして識別される場合、第2のウィンドウが、次のウィンドウまたはデスクトップであり、
次のウィンドウまたはデスクトップがない場合、前記第2のウィンドウが、前記ウィンドウスタックの反対端にあるものとして識別されるウィンドウまたはデスクトップであり、
前記第2のウィンドウの決定の結果、
前記第1のウィンドウの表示を停止し、
前記第1及び第2のタッチセンサ式ディスプレイの少なくとも一つ上に前記第2のウィンドウを表示する、非一時的なコンピュータ可読媒体。
前記解釈は、前記ウィンドウおよびデスクトップの順序が変わらないままであるように、前記複数のウィンドウおよびデスクトップに対する前記ウィンドウスタックをナビゲートするためのものであり、
前記マシン命令は、さらに
前記第2のウィンドウがデュアルディスプレイウィンドウであるかどうかを判定し、
前記第2のウィンドウがデュアルディスプレイウィンドウである場合、前記第2のウィンドウを前記第1のタッチセンサ式ディスプレイおよび前記第2のタッチセンサ式ディスプレイの両方に表示し、
前記第2のウィンドウがデュアルディスプレイウィンドウでない場合、
前記第2のウィンドウを前記第1のタッチセンサ式ディスプレイ上に表示し、
第3のウィンドウを前記第2のタッチセンサ式ディスプレイ上に表示し、ここで、前記第3のウィンドウは、前記ウィンドウスタックにおいて、前記第2のウィンドウの直前、または直後であるとして識別され、前記第3のウィンドウがデュアルディスプレイウィンドウである場合、前記第3のウィンドウは、単一表示モードにおいて前記第2のタッチセンサ式ディスプレイのみの上に表示される、請求項7に記載の非一時的なコンピュータ可読媒体。
タスクマネージャであって、前記第2のウィンドウが前記第1のタッチセンサ式ディスプレイ上に表示された後で、前記第2のユーザの指によるジェスチャが入力されたことを示すデータが、前記ディスプレイマネージャにより受信されると、前記タスクマネージャは、前記第2のウィンドウまたはデスクトップが前記ウィンドウスタックの順序の最上部にあるとして表示されるように前記ウィンドウスタックの順序を変更する、前記タスクマネージャと、
前記第1のタッチセンサ式ディスプレイを含む第1の画面を前記第2のタッチセンサ式ディスプレイを含む第2の画面と折り畳み可能に接続するよう構成された付属品と、
互いに対する前記第1及び第2の画面の折り畳み位置を示す第1の信号を生成するよう構成された第1のセンサと、
格納された命令を有する非一時的なコンピュータ可読媒体であって、前記命令は、前記デバイスが第1の物理的な向きから異なる第2の物理的な向きへ移動したことを決定するよう構成された第1のセットの命令を含み、前記第1及び第2の物理的な向きは、前記第1の物理的な向きが、折り畳まれた、または横向きの1つであることによって異なっている、前記非一時的なコンピュータ可読媒体と
をさらに備え、
前記ウィンドウスタックの順序は、前記デバイスを折り畳んだために変わることはなく、前記ウィンドウスタックの順序は、前記デバイスを展開したために変わることはなく、前記ウィンドウスタックの順序は、前記第1のタッチセンサ式ディスプレイに論理的に関連付けされた第1のウィンドウスタックと、前記第2のタッチセンサ式ディスプレイに論理的に関連付けされた第2のウィンドウスタックとを含む、請求項9に記載の携帯用デバイス。
【発明を実施するための形態】
【0031】
付属の図面では、同様のコンポーネント及び/または特徴は、同じ参照ラベルを有し得る。さらに、同じタイプのさまざまなコンポーネントは、同様のコンポーネントの中で区別する文字で参照ラベルをたどることによって、区別することができる。第1の参照ラベルのみが本明細書で使用される場合、説明は、第2の参照ラベルに関係なく、同じ第1の参照ラベルを有する同様のコンポーネントのいずれか1つに適用可能である。
【0032】
本明細書で提示するものは、デバイスの実施形態である。デバイスは、携帯電話または他のスマートデバイスなど通信デバイスであり得る。デバイスは、いくつかのユニークなディスプレイ構成を提供するように方向付けられた2つの画面を含み得る。さらに、デバイスは、ユニークな方法でユーザ入力を受信することができる。デバイスの総合的な設計及び機能性は、デバイスをより有用に及びより効果的にするユーザ経験を高めることを実現する。
機械的な特徴:
図1A〜1Jは、本開示の実施形態によるデバイス100を示す。以下でさらに詳細に説明されるように、デバイス100は、多くの異なる方法で配置することができ、そのそれぞれが異なる機能性をユーザに提供する。デバイス100は、その両方がタッチセンサ式の一次画面104と二次画面108とを含む複数画面デバイスである。実施形態では、画面104及び108の前面全体は、タッチセンサ式であり得、ユーザが画面104及び108の前面に触れることによって入力を受信することができる。一次画面104は、タッチセンサ式ディスプレイ110を含み、タッチセンサ式ディスプレイ110は、タッチセンサ式であることに加えて、ユーザに情報を表示することも行う。二次画面108は、タッチセンサ式ディスプレイ114を含み、タッチセンサ式ディスプレイ114もまたユーザに情報を表示する。他の実施形態では、画面104及び108は、2つ以上のディスプレイエリアを含み得る。
【0033】
また、一次画面104は、ユーザが構成可能なエリア112の一部に触れる際の特定の入力用に構成済みの構成可能なエリア112も含む。二次画面108もまた、特定の入力用に構成済みの構成可能なエリア116を含む。エリア112a及び116aは、ユーザが以前に表示された情報を閲覧することを望むことを示す「バック」入力を受信するよう構成済みである。エリア112b及び116bは、ユーザがメニューからオプションを閲覧することを望むことを示す「メニュー」入力を受信するよう構成済みである。エリア112c及び116cは、ユーザが「ホーム」ビューに関連付けられた情報を閲覧することを望むことを示す「ホーム」入力を受信するよう構成済みである。他の実施形態では、エリア112a〜c及び116a〜cは、上記で説明される構成に加えて、デバイス100の特徴の制御を含む他のタイプの特定の入力用に構成することができ、いくつかの非限定的な例としては、全体的なシステムパワーの調整、音量の調整、輝度の調整、振動の調整、表示アイテムの選択(画面104または108のいずれか)、カメラの操作、マイクロホンの操作及び通話の開始/終了が挙げられる。また、いくつかの実施形態では、エリア112a〜c及び116a〜cは、デバイス100上で実行するアプリケーション及び/またはタッチセンサ式ディスプレイ110及び/または114上に表示される情報に応じて特定の入力用に構成することができる。
【0034】
タッチセンサ式に加えて、一次画面104及び二次画面108は、ユーザが画面のディスプレイエリアに触れる必要なく、ユーザから入力を受信するエリアも含む。例えば、一次画面104は、ジェスチャ捕捉エリア120を含み、二次画面108は、ジェスチャ捕捉エリア124を含む。これらのエリアは、例えば、ユーザが実際にディスプレイエリアの表面に触れる必要なく、ユーザによって行われたジェスチャを認識することにより、入力を受信することができる。タッチセンサ式ディスプレイ110及び114と比較すると、ジェスチャ捕捉エリア120及び124は、一般には、表示画像をレンダリングすることはできない。
【0035】
2つの画面104及び108は、ヒンジ128で接続され、ヒンジ128は、
図1C(デバイス100の背面図を示す)で明確に示される。
図1A〜1Jに示される実施形態では、ヒンジ128は、画面104と108とを接続する中央のヒンジであり、その結果、ヒンジを閉じると、画面104と108は、
図1B(デバイス100の正面図を示す)に示されるように並置される(すなわち、隣り合わせになる)。ヒンジ128を開いて、2つの画面104及び108を相対的に互いに異なる配置にすることができる。以下でさらに詳細に説明するように、デバイス100は、画面104及び108の相対位置に応じて異なる機能性を有し得る。
【0036】
図1Dは、デバイス100の右側を示す。
図1Dに示されるように、二次画面108は、その側面にカードスロット132とポート136も含む。実施形態では、カードスロット132は、加入者識別モジュール(SIM)を含む異なるタイプのカードを収容する。実施形態では、ポート136は、ディスプレイ、キーボードまたは印刷デバイスなどの他の周辺デバイスにデバイス100を接続することを可能にする入力/出力ポート(I/Oポート)である。理解できるように、これらは単なる例示の一部であり、他の実施形態では、デバイス100は、追加のメモリデバイスを収容するための及び/または他の周辺デバイスを接続するためのスロット及びポートなどの他のスロット及びポートを含み得る。また、
図1Dには、例えば、ユーザのヘッドホンまたはヘッドセットの利用を可能にするチップ、リング、スリーブ(TRS)コネクタを収容する音声ジャック140も示されている。
【0037】
また、デバイス100は、多数のボタン158も含む。例えば、
図1Eは、デバイス100の左側を示す。
図1Eに示されるように、一次画面104の側面は、3つのボタン144、148及び152を含み、これらのボタンは、特定の入力用に構成することができる。例えば、ボタン144、148及び152は、組み合わせて、または単独で、デバイス100の多くの態様を制御するよう構成することができる。いくつかの非限定的な例としては、全体的なシステムパワー、音量、輝度、振動、表示アイテムの選択(画面104または108のいずれか)、カメラ、マイクロホン及び通話の開始/終了が挙げられる。いくつかの実施形態では、別々のボタンの代わりに、2つのボタンを組み合わせてロッカーボタンにすることができる。この構成は、音量または輝度などの特徴を制御するようにボタンが構成された状況において有用である。ボタン144、148及び152に加えて、デバイス100は、デバイス100の上側を示す
図1Fに示されるようなボタン156も含む。一実施形態では、ボタン156は、デバイス100への全体的なシステムパワーの制御に使用されるオン/オフボタンとして構成される。他の実施形態では、ボタン156は、システムパワーの制御に加えてまたはシステムパワーの制御の代わりに、デバイス100の他の態様を制御するよう構成される。いくつかの実施形態では、ボタン144、148、152及び156のうちの1つまたは複数は、異なるユーザコマンドをサポートすることができる。一例として、通常のプレスは、一般に、約1秒未満の持続時間を有し、クイックタップに似ている。中程度のプレスは、一般に、1秒以上だが約12秒未満の持続時間を有する。長時間のプレス(長押し)は、一般に、約12秒以上の持続時間を有する。ボタンの機能は、通常、現時点でそれぞれのディスプレイ110及び114に焦点が合わせられているアプリケーションに特有である。例えば、通話アプリケーションでは、特定のボタンに応じて、通常の、中程度のまたは長時間のプレスは、通話終了、通話音量の増加、通話音量の減少、マイクロホンのミュートの切り替えを意味し得る。例えば、カメラまたは映像アプリケーションでは、特定のボタンに応じて、通常の、中程度のまたは長時間のプレスは、ズーム拡大、ズーム縮小、写真撮影または映像記録を意味し得る。
【0038】
また、デバイス100には、多くのハードウェアコンポーネントが存在する。
図1Cに示されるように、デバイス100は、スピーカ160とマイクロホン164とを含む。また、デバイス100は、カメラ168(
図1B)も含む。それに加えて、デバイス100は、2つの位置センサ172a及び172bを含み、位置センサ172a及び172bは、画面104及び108の相対位置の決定に使用される。一実施形態では、位置センサ172a及び172bは、ホール効果センサである。しかし、他の実施形態では、ホール効果センサに加えて、またはホール効果センサの代わりに、他のセンサを使用することができる。また、デバイス100の一部として、加速度計176を含めて、デバイス100の向き及び/または画面104及び108の向きを決定することもできる。デバイス100に含めることができる追加の内部のハードウェアコンポーネントについては、
図2に関連して、以下で説明する。
【0039】
デバイス100の総合的な設計は、他の通信デバイスで利用不可能な追加の機能性の提供を可能にする。機能性のいくつかは、デバイス100が有し得るさまざまな位置及び向きに基づく。
図1B〜1Gに示されるように、デバイス100は、画面104と108が並置される「開」位置で操作することができる。この位置により、ユーザに情報を表示するための大きなディスプレイエリアが可能になる。デバイス100が開位置にあると位置センサ172a及び172bが決定すると、位置センサ172a及び172bは、両方の画面104及び108上での情報の表示などの異なるイベントのトリガに使用することができる信号を生成することができる。追加のイベントは、デバイス100が横向き位置(図示せず)と対向する縦向き位置(
図1B)にあると加速度計176が決定した場合にトリガすることができる。
【0040】
開位置に加えて、デバイス100は、
図1Hに示されるような「閉」位置も有し得る。この場合もやはり、位置センサ172a及び172bは、デバイス100が「閉」位置にあることを示す信号を生成することができる。これにより、画面104及び/または108上に表示された情報の変化をもたらすイベントをトリガすることができる。例えば、デバイス100が「閉」位置にある場合、ユーザは1つの画面しか閲覧できないため、デバイス100は、画面のうちの1つ、例えば、画面108上での情報の表示を停止するようにプログラムすることができる。他の実施形態では、デバイス100が「閉」位置にあることを示す、位置センサ172a及び172bによって生成された信号は、電話の発呼に応答するようにデバイス100をトリガすることができる。「閉」位置は、携帯電話としてデバイス100を利用する場合にも好ましい位置であり得る。
【0041】
デバイス100は、
図1Iに示されるような「イーゼル」位置でも使用することができる。「イーゼル」位置では、画面104及び108は、互いに角度をなして外側を向いた状態であり、画面104及び108の縁は実質的に水平である。この位置では、デバイス100は、両方の画面104及び108上で情報を表示するよう構成することができ、二人のユーザが同時にデバイス100と情報のやり取りを行うことを可能にする。デバイス100が「イーゼル」位置にある場合、センサ172a及び172bは、画面104及び108が互いに角度をなして配置されていることを示す信号を生成することができ、加速度計176は、画面104及び108の縁が実質的に水平となるようにデバイス100が配置されたことを示す信号を生成することができる。次いで、信号を組み合わせて使用し、画面104及び108上での情報の表示の変化をトリガするイベントを生成することができる。
【0042】
図1Jは、「変形イーゼル」位置のデバイス100を示す。「変形イーゼル」位置では、画面104または108のうちの1つは、スタンドとして使用され、テーブルなどの物体の表面上に下を向いた状態に置かれる。この位置は、横向きでユーザに情報を表示する便利な方法を提供する。イーゼル位置と同様に、デバイス100が「変形イーゼル」位置にある場合、位置センサ172a及び172bは、画面104及び108が互いに角度をなして配置されていることを示す信号を生成する。加速度計176は、画面104及び108のうちの1つが下を向いた状態で、実質的に水平となるようにデバイス100が配置されたことを示す信号を生成することになる。次いで、信号を使用して、画面104及び108の情報の表示の変化をトリガするイベントを生成することができる。例えば、ユーザはその画面を見ることができないため、下向きの画面上には情報は表示されない可能性がある。
【0043】
また、移行状態も可能である。画面が閉じているまたは折り畳まれている(開位置から)ことを位置センサ172a及びb及び/または加速度計が示す場合は、閉への移行状態が認識される。逆に、画面が開いているまたは折り畳まれている(閉位置から)ことを位置センサ172a及びbが示す場合は、開への移行状態が認識される。閉及び開への移行状態は、通常、時間に基づくか、または感知された開始点からの最大持続時間を有する。通常、閉及び開状態のうちの1つが進行中のときは、ユーザ入力は不可能である。このように、閉または開動作中のユーザによる画面との偶発的な接触は、ユーザ入力として誤って解釈されることはない。実施形態では、デバイス100が閉じている場合は、別の移行状態が可能である。この追加の移行状態により、デバイス100が閉じている場合は、例えば、画面110、114上でのダブルタップなどの何らかのユーザ入力に基づいて、ある画面104から第2の画面108にディスプレイを切り替えることが可能になる。
【0044】
理解できるように、デバイス100に関する説明は、単なる例示を目的として行われ、実施形態は、
図1A〜1Jに示され、上記で説明される特定の機械的な特徴に制限されない。他の実施形態では、デバイス100は、1つまたは複数の追加のボタン、スロット、ディスプレイエリア、ヒンジ及び/またはロック機構を含む追加の特徴を含み得る。それに加えて、実施形態では、上記で説明される特徴は、デバイス100の異なる部分に位置し得、それでも同様の機能性を提供することができる。したがって、
図1A〜1J及び上記で提供される説明は、非限定的である。
ハードウェアの特徴:
図2は、本開示の実施形態によるデバイス100のコンポーネントを示す。一般に、デバイス100は、一次画面104と二次画面108とを含む。一次画面104及びそのコンポーネントは、通常、開位置または状態でも閉位置または状態でも有効化される一方で、二次画面108及びそのコンポーネントは、通常、開状態では有効化されるが、閉状態では無効化される。しかし、閉状態であっても、ユーザまたはアプリケーションがトリガするインタラプト(通話アプリケーションまたはカメラアプリケーションオペレーションに応じてなど)は、適切なコマンドによって、アクティブ画面を変更することも、一次画面104を無効化して二次画面108を有効化することもできる。各画面104、108は、タッチセンサ式であり得、異なる動作エリアを含み得る。例えば、それぞれのタッチセンサ式画面104及び108内の第1の動作エリアは、タッチセンサ式ディスプレイ110、114を含み得る。一般に、タッチセンサ式ディスプレイ110、114は、フルカラーのタッチセンサ式ディスプレイを含み得る。それぞれのタッチセンサ式画面104及び108内の第2のエリアは、ジェスチャ捕捉領域120、124を含み得る。ジェスチャ捕捉領域120、124は、タッチセンサ式ディスプレイ110、114のエリア外のエリアまたは領域を含み得、そのエリアまたは領域は、例えば、ユーザによって提供されるジェスチャの形での入力の受信が可能である。しかし、ジェスチャ捕捉領域120、124は、表示機能または能力を実行することができる画素を含まない。
【0045】
タッチセンサ式画面104及び108の第3の領域は、構成可能なエリア112、116を含み得る。構成可能なエリア112、116は、入力を受信することができ、表示または制限された表示能力を有する。実施形態では、構成可能なエリア112、116は、異なる入力オプションをユーザに提示することができる。例えば、構成可能なエリア112、116は、ボタンまたは他の関連付けられるアイテムを表示することができる。その上、表示されたボタンのアイデンティティ、または、タッチセンサ式画面104もしくは108の構成可能なエリア112、116内に表示されているボタンがあるかどうかは、デバイス100が使用される及び/または操作されるコンテキストから決定することができる。例示的な実施形態では、タッチセンサ式画面104及び108は、ユーザに視覚出力を提供することができるタッチセンサ式画面104及び108の少なくともそれらの領域に広がる液晶ディスプレイデバイスと、ユーザから入力を受信することができるタッチセンサ式画面104及び108のそれらの領域にわたる容量性入力マトリックスとを含む。
【0046】
1つまたは複数のディスプレイコントローラ216a、216bは、入力(タッチセンサ式)及び出力(表示)機能を含むタッチセンサ式画面104及び108のオペレーションを制御するために設けることができる。
図2に示される例示的な実施形態では、別々のタッチスクリーンコントローラ216aまたは216bが各タッチスクリーン104及び108に設けられる。代替の実施形態によれば、共通のまたは共有されたタッチスクリーンコントローラ216を使用して、含まれるタッチセンサ式画面104及び108の各々を制御することができる。さらなる他の実施形態によれば、タッチスクリーンコントローラ216の機能は、プロセッサ204などの他のコンポーネントに組み込むことができる。
【0047】
プロセッサ204は、アプリケーションプログラミングまたは命令を実行するための汎用のプログラム可能プロセッサまたはコントローラを含み得る。少なくともいくつかの実施形態によれば、プロセッサ204は、複数のプロセッサコアを含む、及び/または、複数の仮想プロセッサを実装することができる。さらなる他の実施形態によれば、プロセッサ204は、複数の物理的プロセッサを含み得る。具体的な例として、プロセッサ204は、特別に構成された特定用途向け集積回路(ASIC)もしくは他の集積回路、デジタル信号プロセッサ、コントローラ、配線電子もしくは論理回路、プログラム可能論理デバイスもしくはゲートアレイ、専用コンピュータ、または、同様のものを含み得る。プロセッサ204は、一般に、デバイス100のさまざまな機能を実装するプログラミングコードまたは命令を実行するように機能する。
【0048】
また、通信デバイス100は、プロセッサ204によるアプリケーションプログラミングまたは命令の実行に関連して使用するための、ならびに、プログラム命令及び/またはデータを一時的または長期に格納するための、メモリ208も含み得る。例として、メモリ208は、RAM、DRAM、SDRAMまたは他のソリッドステートメモリを含み得る。その代替としてまたはそれに加えて、データストレージ212を設けることができる。メモリ208と同様に、データストレージ212は、1つまたは複数のソリッドステートメモリデバイスを含み得る。その代替としてまたはそれに加えて、データストレージ212は、ハードディスクドライブまたは他のランダムアクセスメモリを含み得る。
【0049】
通信機能または能力をサポートする際、デバイス100は、携帯電話モジュール228を含み得る。例として、携帯電話モジュール228は、セルラネットワーク上で音声、マルチメディア及び/またはデータ転送をサポートすることができるGSM(登録商標)、CDMA、FDMA及び/またはアナログ携帯電話トランシーバを含み得る。その代替としてまたはそれに加えて、デバイス100は、追加のまたは他の無線通信モジュール232を含み得る。例として、他の無線通信モジュール232は、ワイファイ(Wi−Fi)、ブルートゥース(Bluetooth)(登録商標)、ワイマックス(WiMax)、赤外線または他の無線通信リンクを含み得る。携帯電話モジュール228及び他の無線通信モジュール232は、それぞれが、共有または専用アンテナ224と関連付けられることができる。
【0050】
ポートインタフェース252を含めることができる。ポートインタフェース252は、ドックなどの他のデバイスまたはコンポーネントとのデバイス100の相互接続をサポートする独自のまたはユニバーサルポートを含み得、他のデバイスまたはコンポーネントは、デバイス100に不可欠なものへの追加のまたはそれとは異なる能力を含んでも含まなくともよい。デバイス100と別のデバイスまたはコンポーネントとの間での通信信号の交換のサポートに加えて、ドッキングポート136及び/またはポートインタフェース252は、デバイス100へのまたはデバイス100からの電力の供給をサポートすることができる。また、ポートインタフェース252は、デバイス100と接続されたデバイスまたはコンポーネントとの間の通信または他の相互作用を制御するためのドッキングモジュールを含むインテリジェントな要素も含む。
【0051】
入力/出力モジュール248及び関連ポートを含めて、例えば、他の通信デバイス、サーバデバイス及び/または周辺デバイスとの有線ネットワークまたはリンク上での通信をサポートすることができる。入力/出力モジュール248の例としては、イーサネット(登録商標)ポート、ユニバーサルシリアルバス(USB)ポート、電気電子技術者協会(IEEE)1394または他のインタフェースが挙げられる。
【0052】
音声入力/出力インタフェース/デバイス244を含めて、相互接続されたスピーカまたは他のデバイスにアナログ音声を提供したり、接続されたマイクロホンまたは他のデバイスからアナログ音声入力を受信したりすることができる。一例として、音声入力/出力インタフェース/デバイス244は、関連アンプとアナログデジタル変換器とを含み得る。その代替としてまたはそれに加えて、デバイス100は、外部のスピーカまたはマイクロホンを相互接続するための統合音声入力/出力デバイス256及び/または音声ジャックを含み得る。例えば、統合スピーカ及び統合マイクロホンを提供し、近接通話またはスピーカフォンオペレーションをサポートすることができる。
【0053】
ハードウェアボタン158を含めて、例えば、ある制御動作に関連して使用することができる。例としては、
図1A〜1Jと併せて説明されるように、マスタ電源スイッチ、音量調節などが挙げられる。カメラなどの1つまたは複数の画像捕捉インタフェース/デバイス240を含めて、静止及び/またはビデオ画像を捕捉することができる。その代替としてまたはそれに加えて、画像捕捉インタフェース/デバイス240は、スキャナまたはコードリーダを含み得る。画像捕捉インタフェース/デバイス240は、フラッシュまたは他の光源などの追加の要素を含むか、または追加の要素と関連付けられることができる。
【0054】
また、デバイス100は、全地球側位システム(GPS)受信機236も含み得る。本発明の実施形態によれば、GPS受信機236は、デバイス100の他のコンポーネントに絶対位置情報を提供できるGPSモジュールをさらに含み得る。また、加速度計176も含めることができる。例えば、ユーザへの情報の表示及び/または他の機能に関連して、加速度計176からの信号を使用して、その情報をユーザに表示するための方向及び/または形式を決定することができる。
【0055】
また、本発明の実施形態は、1つまたは複数の位置センサ172を含み得る。位置センサ172は、互いに対するタッチセンサ式画面104及び108の位置を示す信号を提供することができる。例えば、ユーザインタフェースアプリケーションへの入力としてこの情報を提供し、動作モード、すなわち、タッチセンサ式ディスプレイ110、114及び/または他のデバイス100オペレーションの特性を決定することができる。例として、画面位置センサ172は、一連のホール効果センサ、複数の位置スイッチ、光スイッチ、ホイートストンブリッジ、電位差計、または、タッチスクリーンが置かれている複数の相対位置を示す信号を提供することができる他の構成を含み得る。
【0056】
デバイス100のさまざまなコンポーネント間の通信は、1つまたは複数のバス222によって行うことができる。それに加えて、電源及び/または電力制御モジュール260からデバイス100のコンポーネントに電力を供給することができる。電力制御モジュール260は、例えば、バッテリ、AC/DC変換器、電力制御ロジック及び/または外部の電源にデバイス100を相互接続するためのポートを含み得る。
デバイスの状態:
図3A及び3Bは、デバイス100の例示的な状態を表す。多くの例示的な状態が示され、第1の状態から第2の状態へ移行するが、例示的な状態を示す図は、すべての可能な状態及び/またはすべての可能な第1の状態から第2の状態への移行を包含するわけではないことを理解されたい。
図3で示されるように、状態間のさまざまな矢印(円で表された状態によって示される)は、デバイス100に起こる物理的変化を表す。物理的変化は、ハードウェア及びソフトウェアの1つまたは複数によって検出され、その検出により、ハードウェア及び/またはソフトウェアインタラプトの1つまたは複数がトリガされ、デバイス100の1つまたは複数の機能の制御及び/または管理に使用される。
【0057】
図3Aで示されるように、12の例示的な「物理的」状態があり、それらは、閉304、移行308(または開への移行状態)、イーゼル312、変形イーゼル316、開320、着信/発信通話または通信324、画像/映像捕捉328、移行332(または閉への移行状態)、横向き340、ドッキング336、ドッキング344及び横向き348である。各例示的な状態の隣にあるのは、デバイス100の物理的状態の表現であるが、状態324及び328は例外であり、状態324及び328では、一般に、状態は、電話用の国際的なアイコン及びカメラ用のアイコンによってそれぞれ象徴化される。
【0058】
状態304では、デバイスは閉状態であり、デバイス100は、一般に、一次画面104と二次画面108が異なる面で背中合わせの状態で、縦向き方向に方向付けられる(
図1Hを参照)。閉状態から、デバイス100は、例えば、ドッキング状態336または横向き状態340に入ることができ、ドッキング状態336では、デバイス100はドッキングステーションやドッキングケーブルと結合されるか、または、一般に1つもしくは複数の他のデバイスもしくは周辺機器とドッキングされるかもしくは関連付けられ、横向き状態340では、一次画面104はユーザに面し、一次画面104と二次画面108は背中合わせの状態でデバイス100が一般に方向付けされる。
【0059】
また、閉状態では、デバイスは、移行状態に移動することができ、移行状態では、デバイスは閉じたままであるが、ディスプレイは、例えば、画面110、114上でのダブルタップなどのユーザ入力に基づいて、ある画面104から別の画面108に移動する。さらに別の実施形態は、両面状態(bilateral state)を含む。両面状態では、デバイスは閉じたままであるが、単一のアプリケーションが少なくとも1つのウィンドウを第1のディスプレイ110と第2のディスプレイ114の両方に表示する。第1及び第2のディスプレイ110、114に示されるウィンドウは、アプリケーション及びそのアプリケーションの状態に基づいて、同じであっても異なっていてもよい。例えば、カメラで画像を取得する間、デバイスは、第1のディスプレイ110上でファインダを表示することができ、第2のディスプレイ114上で被写体のプレビュー(全画面及び左から右へミラーリング)を表示する。
【0060】
閉状態304から半開状態またはイーゼル状態312への移行状態である状態308では、デバイス100は、一次画面104及び二次画面108をヒンジと一致する軸のポイントの周りで回転させて開いた状態で示される。イーゼル状態312に入ると、一次画面104及び二次画面108は、例えば、デバイス100がイーゼル様構成で表面上に位置することができるように、互いに分離される。
【0061】
変形イーゼル位置として知られる状態316では、デバイス100は、互いにイーゼル状態312と同様の相対関係にある一次画面104及び二次画面108を有し、その違いは、示されるように、一次画面104または二次画面108のうちの1つが表面上に配置されることである。
【0062】
状態320は開状態であり、開状態では、一次画面104及び二次画面108は、一般に、同じ平面上にある。開状態から、デバイス100は、ドッキング状態344または開横向き状態348に移行することができる。開状態320では、一次画面104及び二次画面108は、一般に、縦向きのような状態にあるが、横向き状態348では、一次画面104及び二次画面108は、一般に、横向きのような状態にある。
【0063】
状態324は、デバイス100でそれぞれ着信通話を受けるまたは発信通話をかける場合などの通信状態の例示である。明確には示されていないが、デバイス100は、
図3に示されるいかなる状態からも着信/発信通話状態324へ移行できることを理解されたい。同様に、画像/映像捕捉状態328もまた、
図3に示される他のいかなる状態からも入ることができ、画像/映像捕捉状態328では、デバイス100は、映像捕捉デバイス240を備えたカメラ及び/またはビデオを介して、1つまたは複数の画像を撮影することができる。
【0064】
移行状態332は、一次画面104及び二次画面108が、例えば、閉状態304に入るために、互いに向かって閉じている状態を例示的に示す。
図3Bは、キーを参照して、第1の状態から第2の状態への移行を検出するために受信された入力を示す。
図3Bでは、状態のさまざまな組合せが示されており、一般に、列の一部は、縦向き状態352や横向き状態356を対象とし、行の一部は、縦向き状態360と横向き状態364を対象とする。
【0065】
図3Bでは、キーは、「H」が1つまたは複数のホール効果センサからの入力を表し、「A」が1つまたは複数の加速度計からの入力を表し、「T」がタイマからの入力を表し、「P」が通信トリガ入力を表し、「I」が画像及び/または映像捕捉要求入力を表すことを示す。したがって、表の中央部分376では、デバイス100がどのように第1の物理的な状態から第2の物理的な状態への移行を検出するかを表す入力または入力の組合せが示される。
【0066】
論じられるように、表の中央部分376では、受信した入力により、例えば、縦向き開状態から横向きイーゼル状態への移行(太字の「HAT」で示される)の検出が可能になる。この例示的な縦向き開状態から横向きイーゼル状態への移行の場合、ホール効果センサ(「H」)、加速度計(「A」)及びタイマ(「T」)入力が必要とされ得る。タイマ入力は、例えば、プロセッサに関連付けられた時計から得ることができる。
【0067】
縦向き及び横向き状態に加えて、ドッキング信号372の受信に基づいてトリガされるドッキング状態368も示される。上記で論じられるように、
図3に関連して、ドッキング信号は、デバイス100を、1つまたは複数の他のデバイス100、アクセサリ、周辺機器、スマートドックまたは同様のものと接続することによってトリガすることができる。
ユーザ相互作用:
図4A〜4Hは、画面104、108によって認識することができるジェスチャ入力のさまざまなグラフィカルな表現を描写する。ジェスチャは、指などのユーザの身体部分ばかりではなく、画面104、108の接触感知部分によって感知することができるスタイラスなどの他のデバイスによっても行うことができる。一般に、ジェスチャは、どこでジェスチャが行われるか(ディスプレイ110、114上に直接またはジェスチャ捕捉領域120、124のいずれか)に基づいて、異なって解釈される。例えば、ディスプレイ110、114内のジェスチャは、デスクトップまたはアプリケーションを対象とし、ジェスチャ捕捉領域120、124内のジェスチャは、システム用として解釈され得る。
【0068】
図4A〜4Hを参照すると、ジェスチャの第1のタイプ(タッチジェスチャ420)は、選択された時間長の間、画面104、108上に実質的に静止する。円428は、画面の接触感知部分の特定の位置で受信されたタッチまたは他の接触タイプを表す。円428は、境界432を含み得、その厚さは、接触位置において実質的に静止した状態で接触が保持された時間長を示す。例えば、タップ420(または短時間のプレス)は、長時間のプレス424に対する(または通常のプレスに対する)境界432bより薄い境界432aを有する。長時間のプレス424は、タップ420より長い時間の間、画面上に実質的に静止した状態のままの接触を伴う可能性がある。理解されるように、異なって定義されたジェスチャは、接触停止前または画面上での移動前のタッチが静止した状態のままの時間長に応じて登録することができる。
【0069】
図4Cを参照すると、画面104、108上でのドラッグジェスチャ400は、最初の接触(円428によって表される)に、選択された方向への接触移動436が伴う。最初の接触428は、境界432によって表される特定の時間量の間、画面104、108上で静止した状態のままであり得る。ドラッグジェスチャは、通常、ユーザが第1の位置でアイコン、ウィンドウまたは他の表示画像に接触し、その後、選択された表示画像に対して所望の新しい第2の位置に向かうドラッグ方向に接触を移動させる必要がある。接触移動は、直線である必要はないが、接触が第1から第2の位置に実質的に連続したものである限り、いかなる経路の移動もあり得る。
【0070】
図4Dを参照すると、画面104、108上でのフリックジェスチャ404は、最初の接触(円428によって表される)に、選択された方向への短縮された接触移動436(ドラッグジェスチャと比較して)が伴う。実施形態では、フリックは、ドラッグジェスチャと比較して、ジェスチャの最後の動きに対してより高い退出速度を有する。フリックジェスチャは、例えば、最初の接触に続く指スナップであり得る。ドラッグジェスチャと比較すると、フリックジェスチャは、一般に、表示画像の第1の位置から既定の第2の位置まで、画面104、108との連続的な接触を必要としない。接触した表示画像は、フリックジェスチャによって、既定の第2の位置に向かうフリックジェスチャ方向に移動される。両方のジェスチャは、一般に、第1の位置から第2の位置に表示画像を移動させることができるが、画面上での接触の持続時間及び移動距離は、一般に、ドラッグジェスチャよりもフリックジェスチャの方が短い。
【0071】
図4Eを参照すると、画面104、108上でのピンチジェスチャ408が描写されている。ピンチジェスチャ408は、例えば、第1の指によって画面104、108に第1の接触428aを行い、例えば、第2の指によって画面104、108に第2の接触428bを行うことによって着手することができる。第1及び第2の接触428a、bは、共通の画面104、108の共通の接触感知部分によって、共通の画面104もしくは108の異なる接触感知部分によって、または、異なる画面の異なる接触感知部分によって、検出することができる。第1の接触428aは、境界432aによって表されるように、第1の時間量の間保持され、第2の接触428bは、境界432bによって表されるように、第2の時間量の間保持される。第1及び第2の時間量は、一般に、実質的に同じであり、第1及び第2の接触428a、bは、一般に、実質的に同時に起こる。また、第1及び第2の接触428a、bは、一般に、それぞれ、対応する第1及び第2の接触移動436a、bを含む。第1及び第2の接触移動436a、bは、一般に、対向方向である。別の言い方をすれば、第1の接触移動436aは、第2の接触428bに向かう方向にあり、第2の接触移動436bは、第1の接触428aに向かう方向にある。より簡単な言い方をすれば、ピンチジェスチャ408は、ユーザの指がピンチ動作で画面104、108に触れることによって実現することができる。
【0072】
図4Fを参照すると、画面104、108上でのスプレッドジェスチャ410が描写されている。スプレッドジェスチャ410は、例えば、第1の指で画面104、108に第1の接触428aを行い、例えば、第2の指で画面104、108に第2の接触428bを行うことによって着手することができる。第1及び第2の接触428a、bは、共通の画面104、108の共通の接触感知部分によって、共通の画面104もしくは108の異なる接触感知部分によって、または、異なる画面の異なる接触感知部分によって、検出することができる。第1の接触428aは、境界432aによって表されるように、第1の時間量の間保持され、第2の接触428bは、境界432bによって表されるように、第2の時間量の間保持される。第1及び第2の時間量は、一般に、実質的に同じであり、第1及び第2の接触428a、bは、一般に、実質的に同時に起こる。また、第1及び第2の接触428a、bは、一般に、それぞれ、対応する第1及び第2の接触移動436a、bを含む。第1及び第2の接触移動436a、bは、一般に、共通の方向である。別の言い方をすれば、第1及び第2の接触移動436a、bは、第1及び第2の接触428a、bから遠ざかる方向にある。より簡単な言い方をすれば、スプレッドジェスチャ410は、ユーザの指がスプレッド動作で画面104、108に触れることによって実現することができる。
【0073】
上記のジェスチャは、
図4G及び4Hによって示されるものなど、任意の方法で組み合わせて、決定された機能的な結果を生成することができる。例えば、
図4Gでは、
ジェスチャ412は、タップジェスチャ420から遠ざかる方向へのドラッグまたはフリックジェスチャ
400とタップジェスチャ420とが組み合わされ
たものである。
図4Hでは、
ジェスチャ416は、タップジェスチャ420に向かう方向へのドラッグまたはフリックジェスチャ
400とタップジェスチャ420とが組み合わされ
たものである。
【0074】
ジェスチャを受信するという機能的な結果は、デバイス100、ディスプレイ110、114もしくは画面104、108の状態、ジェスチャに関連付けられたコンテキスト、または、ジェスチャの感知位置を含む多くの要因に応じて異なり得る。デバイスの状態は、一般に、デバイス100の構成、ディスプレイ方向ならびにデバイス100で受信されるユーザ及び他の入力のうちの1つまたは複数を指す。コンテキストは、一般に、アプリケーションが単一画面アプリケーションであろうが、複数画面アプリケーションであろうが、及び、アプリケーションが1つまたは複数の画面に1つまたは複数のウィンドウを表示する複数画面アプリケーションであろうが、1つまたは複数のスタックに1つまたは複数のウィンドウを表示する複数画面アプリケーションであろうが、ジェスチャによって選択された特定のアプリケーション及び現時点で実行しているアプリケーションの部分のうちの1つまたは複数を指す。ジェスチャの感知位置は、一般に、感知されたジェスチャ位置座標セットが、タッチセンサ式ディスプレイ110、114上にあるかまたはジェスチャ捕捉領域120、124にあるか、感知されたジェスチャ位置座標セットが、共通のディスプレイもしくは画面104、108に関連付けられているか、または異なるディスプレイもしくは画面104、108に関連付けられているか、及び/または、ジェスチャ捕捉領域のどの部分が感知されたジェスチャ位置座標セットを含むかを指す。
【0075】
タップは、タッチセンサ式ディスプレイ110、114で受信する場合、例えば、対応するアプリケーションの実行の開始または終了、ウィンドウの最大化または最小化、スタック内でのウィンドウの並べ換え、及び、キーボード表示または他の表示画像などによるユーザ入力の提供のためにアイコンを選択する際に使用することができる。ドラッグは、タッチセンサ式ディスプレイ110、114で受信する場合、例えば、ディスプレイ内の所望の位置へアイコンもしくはウィンドウを移動する、ディスプレイ上でスタックを並べ換える、または、両ディスプレイをスパンする(その結果、選択したウィンドウは各ディスプレイの部分を同時に占有する)際に使用することができる。フリックは、タッチセンサ式ディスプレイ110、114またはジェスチャ捕捉領域120、124で受信する場合、例えば、第1のディスプレイから第2のディスプレイへウィンドウを移動する、または、両ディスプレイをスパンする(その結果、選択したウィンドウは各ディスプレイの部分を同時に占有する)際に使用することができる。しかし、ドラッグジェスチャとは異なり、フリックジェスチャは、一般に、特定のユーザ選択位置へ表示画像を移動する際には使用されないが、ユーザによる構成が不可能なデフォルト位置へ表示画像を移動する際には使用される。
【0076】
ピンチジェスチャは、タッチセンサ式ディスプレイ110、114またはジェスチャ捕捉領域120、124で受信する場合、ウィンドウの表示エリアもしくはサイズを最小化もしくは増加する(通常、共通のディスプレイで全体を受信する場合)、各ディスプレイ上のスタックの最上部に表示されるウィンドウを他のディスプレイのスタックの最上部に切り替える(通常、異なるディスプレイまたは画面で受信する場合)、または、アプリケーションマネージャを表示する(スタックにウィンドウを表示する「ポップアップウィンドウ」)際に使用することができる。スプレッドジェスチャは、タッチセンサ式ディスプレイ110、114またはジェスチャ捕捉領域120、124で受信する場合、ウィンドウの表示エリアもしくはサイズを最大化もしくは減少する、各ディスプレイ上のスタックの最上部に表示されるウィンドウを他のディスプレイのスタックの最上部に切り替える(通常、異なるディスプレイまたは画面で受信する場合)、または、アプリケーションマネージャを表示する(同じまたは異なる画面上の画面外ジェスチャ捕捉領域で受信する場合)際に使用することができる。
【0077】
図4Gの組み合わされたジェスチャは、共通のディスプレイまたは画面104、108内の共通のディスプレイ捕捉領域で受信する場合、ジェスチャを受信するディスプレイに一定の第1のスタックに第1のウィンドウスタック位置を保持する一方で、第2のウィンドウスタック位置を第2のウィンドウスタックに並べ替えて、ジェスチャを受信するディスプレイにウィンドウを含める際に使用することができる。
図4Hの組み合わされたジェスチャは、共通のディスプレイもしくは画面104、108または異なるディスプレイもしくは画面内の異なるディスプレイ捕捉領域で受信する場合、ジェスチャのタップ部分を受信するディスプレイに一定の第1のウィンドウスタックに第1のウィンドウスタック位置を保持する一方で、第2のウィンドウスタック位置を第2のウィンドウスタックに並べ替えて、フリックまたはドラッグジェスチャを受信するディスプレイにウィンドウを含める際に使用することができる。先行例における特定のジェスチャ及びジェスチャ捕捉領域は、機能的な結果の対応するセットと関連付けられてきたが、これらの関連性は、いかなる方法でも再定義でき、ジェスチャ及び/またはジェスチャ捕捉領域及び/または機能的な結果間で異なる関連性を生成できることを理解されたい。
ファームウェア及びソフトウェア:
メモリ508は、1つまたは複数のソフトウェアコンポーネントを格納することができ、プロセッサ504は、それを実行することができる。これらのコンポーネントは、少なくとも1つのオペレーティングシステム(OS)516、アプリケーションマネージャ562、デスクトップ566及び/またはアプリケーションストア560からの1つもしくは複数のアプリケーション564a及び/または564bを含み得る。OS 516は、以前に
図2と併せて説明された、フレームワーク520、1つもしくは複数のフレームバッファ548、1つもしくは複数のドライバ512及び/またはカーネル518を含み得る。OS 516は、プログラム及びデータからなる任意のソフトウェアであり得、プログラム及びデータは、コンピュータハードウェアリソースを管理し、さまざまなアプリケーション564の実行のための共通のサービスを提供する。OS 516は、任意のオペレーティングシステムであり得、少なくともいくつかの実施形態では、これらに限定されないが、リナックス(Linux)(登録商標)、アンドロイド(Android)(登録商標)、アイフォンOS(iPhone OS)(iOS(登録商標))、ウィンドウズフォン7(Windows Phone 7)(登録商標)などを含むモバイルデバイス専用である。OS 516は、本明細書に記載されるように、1つまたは複数のオペレーションを実行することによって、電話に機能性を提供するよう動作可能である。
【0078】
アプリケーション564は、ユーザのための特定の機能性を実行する任意の高レベルのソフトウェアであり得る。アプリケーション564は、Eメールクライアント、ウェブブラウザ、テキストメッセージアプリケーション、ゲーム、メディアプレーヤ、オフィススイートなどのプログラムを含み得る。アプリケーション564は、アプリケーションストア560に格納することができ、アプリケーションストア560は、アプリケーション564を格納するための任意のメモリまたはデータストレージ及びそれに関連付けられた管理ソフトウェアを表し得る。実行された時点で、アプリケーション564は、メモリ508の異なるエリアで実行することができる。
【0079】
フレームワーク520は、デバイス上で実行されている複数のタスクの相互作用を可能にする任意のソフトウェアまたはデータであり得る。実施形態では、フレームワーク520の少なくとも部分及び以下で説明する個別のコンポーネントは、OS 516またはアプリケーション564の一部と見なすことができる。しかし、それらのコンポーネントはそのように限定されないことを除けば、これらの部分は、フレームワーク520の一部として説明される。フレームワーク520は、これらに限定されないが、複数ディスプレイ管理(MDM)モジュール524、サーフェスキャッシュモジュール528、ウィンドウ管理モジュール532、入力管理モジュール536、タスク管理モジュール540、アプリケーションモデルマネージャ542、ディスプレイコントローラ、1つもしくは複数のフレームバッファ548、タスクスタック552、1つもしくは複数のウィンドウスタック550(ディスプレイエリア内のウィンドウ及び/またはデスクトップの論理構成である)及び/またはイベントバッファ556を含み得る。
【0080】
MDMモジュール524は、デバイスの画面上でアプリケーションまたは他のデータの表示を管理するよう動作可能な1つまたは複数のモジュールを含む。MDMモジュール524の実施形態は、
図5Bと併せて説明する。実施形態では、MDMモジュール524は、ドライバ512などの他のOS 516コンポーネントから及びアプリケーション564から入力を受信し、常にデバイス100の状態を決定する。入力は、アプリケーションの優先度及び要件ならびにユーザ動作に応じてディスプレイをどのように構成して割り当てるかを決定する際にMDMモジュール524を支援する。ディスプレイ構成に対する決定がなされた時点で、MDMモジュール524は、アプリケーション564とディスプレイとを結合することができる。次いで、1つまたは複数の他のコンポーネントに構成を提供して、ディスプレイでウィンドウを生成することができる。
【0081】
サーフェスキャッシュモジュール528は、ウィンドウの1つまたは複数の画像を格納またはキャッシュするための任意のメモリまたはストレージ及びそれに関連付けられたソフトウェアを含む。一連のアクティブ及び/または非アクティブウィンドウ(またはデスクトップ表示などの他の表示オブジェクト)は、各ディスプレイに関連付けられ得る。アクティブウィンドウ(または他の表示オブジェクト)が現時点で表示されている。非アクティブウィンドウ(または他の表示オブジェクト)は、ある時点で開かれ、表示されていたが、現時点では表示されていない。ユーザ経験を高めるため、ウィンドウをアクティブ状態から非アクティブ状態へ移行する前に、ウィンドウ(または他の表示オブジェクト)の最後に生成された画像の「スクリーンショット」を格納することができる。サーフェスキャッシュモジュール528は、現時点で表示されていないウィンドウ(または他の表示オブジェクト)の最後のアクティブ画像のビットマップを格納するよう動作可能であり得る。したがって、サーフェスキャッシュモジュール528は、データストアに非アクティブウィンドウ(または他の表示オブジェクト)の画像を格納する。
【0082】
実施形態では、ウィンドウ管理モジュール532は、それぞれのディスプレイ上でアクティブであるまたは非アクティブであるウィンドウ(または他の表示オブジェクト)を管理するよう動作可能である。ウィンドウ管理モジュール532は、MDMモジュール524、OS 516または他のコンポーネントからの情報に基づいて、ウィンドウ(または他の表示オブジェクト)がいつ可視であるかまたは非アクティブであるかを決定する。次いで、ウィンドウ管理モジュール532は、不可視ウィンドウ(または他の表示オブジェクト)を「非アクティブ状態」に置き、タスク管理モジュールタスク管理540と併せて、アプリケーションのオペレーションを一時停止する。さらに、ウィンドウ管理モジュール532は、MDMモジュール524との協働相互作用を通じて、ウィンドウ(または他の表示オブジェクト)にディスプレイ識別子を割り当てることも、ウィンドウ(または他の表示オブジェクト)に関連付けられたデータの1つまたは複数の他のアイテムを管理することもできる。また、ウィンドウ管理モジュール532は、アプリケーション564、タスク管理モジュール540、または、ウィンドウ(または他の表示オブジェクト)と相互作用するかもしくは関連付けられた他のコンポーネントに格納された情報を提供することもできる。また、ウィンドウ管理モジュール532は、動作空間内のウィンドウフォーカス及びディスプレイ座標に基づいて、入力タスクをウィンドウと関連付けることもできる。
【0083】
入力管理モジュール536は、デバイスで起こるイベントを管理するよう動作可能である。イベントは、例えば、ユーザとのユーザインタフェース相互作用などのウィンドウ環境への任意の入力である。入力管理モジュール536は、イベントを受信し、イベントをイベントバッファ556に論理的に格納する。イベントは、そのようなユーザインタフェース相互作用を、画面104、108がユーザからタッチ信号を受信した場合に起こる「ダウンイベント」、ユーザの指が画面を横切って移動していることを画面104、108が決定した場合に起こる「移動イベント」、ユーザが画面104、108に触れるのを止めたことを画面104、108が決定した場合に起こる「アップイベント」などとして含み得る。これらのイベントは、入力管理モジュール536によって、受信され、格納され、他のモジュールに転送される。また、入力管理モジュール536は、デバイス上で利用可能なすべての物理的及び仮想ディスプレイの集大成である動作空間に画面入力をマッピングすることもできる。
【0084】
動作空間は、一緒に「タイル化」してデバイス100の物理的寸法を模倣した、すべてのタッチセンサ式ディスプレイ110、114を含む仮想化空間である。例えば、デバイス100が展開されている場合は、動作空間サイズは960×800であり得、これは、両方のタッチセンサ式ディスプレイ110、114の組み合わされたディスプレイエリア内の画素数であり得る。ユーザが位置(40,40)で第1のタッチセンサ式ディスプレイ110に触れる場合、全画面ウィンドウは、位置(40,40)でタッチイベントを受信することができる。ユーザが位置(40,40)で第2のタッチセンサ式ディスプレイ114に触れる場合、全画面ウィンドウは、位置(520,40)でタッチイベントを受信することができるが、その理由は、第2のタッチセンサ式ディスプレイ114は第1のタッチセンサ式ディスプレイ110の右側にあり、したがって、デバイス100は、第1のタッチセンサ式ディスプレイ110の幅の分、すなわち、480画素分だけ、そのタッチにオフセットを設けることができるためである。ドライバ512からの位置情報でハードウェアイベントが起こる場合、デバイスの向き及び状態に基づいてイベントの位置が異なり得るため、フレームワーク520は、物理的位置を動作空間にアップスケールすることができる。動作空間は、それが教示するすべて及びすべての目的のためにその全体が参照により本明細書に組み込まれる、2011年7月20日に出願された「複数の入力デバイスに及ぶジェスチャ入力を受信するためのシステム及び方法(Systems and Methods for Receiving Gesture Inputs Spanning Multiple Input Devices)」と称する米国特許出願第13/187,026号明細書に記載されるようなものであり得る。
【0085】
タスクは、アプリケーションであり得、サブタスクは、ユーザが、例えば、電話をする、写真を撮る、Eメールを送信するまたはマップを見るなど何かを行うために情報のやり取りを行うことができるウィンドウを提供するアプリケーションコンポーネントであり得る。各タスクには、ユーザインタフェースを描くためのウィンドウを与えることができる。ウィンドウは、通常、ディスプレイ(例えば、タッチセンサ式ディスプレイ110、114)全体を占めるが、ディスプレイ110、114より小さく、他のウィンドウ上で浮動してもよい。アプリケーションは、通常、互いに緩やかに結合された複数のサブタスクからなる。通常、アプリケーション内の1つのタスクが「メイン」タスクとして指定され、最初にアプリケーションに着手する際にユーザに提示される。次いで、各タスクは、別のタスクまたはサブタスクを開始して、異なる動作を実行することができる。
【0086】
タスク管理モジュール540は、デバイスによって実行することができる1つまたは複数のアプリケーション564のオペレーションを管理するよう動作可能である。したがって、タスク管理モジュール540は、信号を受信して、アプリケーションストア560に格納されたアプリケーションまたはアプリケーションサブタスクの着手、一時停止、終了などを行うことができる。次いで、タスク管理モジュール540は、アプリケーション564の1つまたは複数のタスクまたはサブタスクのインスタンスを作成し、アプリケーション564のオペレーションを開始することができる。さらに、タスク管理モジュール540は、ユーザ入力の結果または協働フレームワーク520コンポーネントからの信号の結果、タスクまたはサブタスクの着手、一時停止または終了を行うことができる。タスク管理モジュール540は、アプリケーションの着手からアプリケーションの終了までのアプリケーション(タスク及びサブタスク)のライフサイクルの管理に対する責任を有する。
【0087】
タスク管理モジュール540の処理は、タスクスタック552によって容易にし、タスクスタック552は、タスク管理モジュール540に関連付けられた論理構造である。タスクスタック552は、デバイス100上のすべてのタスク及びサブタスクの状態を維持する。オペレーティングシステム516の一部のコンポーネントがタスクまたはサブタスクにそのライフサイクルにおける移行を行わせる必要がある場合、OS 516コンポーネントは、タスク管理モジュール540に通知することができる。次いで、タスク管理モジュール540は、識別情報を使用してタスクスタック552においてタスクまたはサブタスクを位置付け、タスクがどのようなライフサイクル移行を実行する必要があるかを示す信号をタスクまたはサブタスクに送信する。移行についてタスクまたはサブタスクに通知することにより、タスクまたはサブタスクは、ライフサイクル状態移行の準備を行うことができる。次いで、タスク管理モジュール540は、タスクまたはサブタスクに対する状態移行を実行することができる。実施形態では、状態移行は、終了が必要な場合に、OSカーネル518をトリガしてタスクを終了することを伴う場合がある。
【0088】
さらに、タスク管理モジュール540は、ウィンドウ管理モジュール532からの情報に基づいて、アプリケーション564を一時停止することができる。アプリケーション564の一時停止により、メモリ内のアプリケーションデータを維持することができるが、ウィンドウまたはユーザインタフェースのレンダリングからアプリケーション564を制限することも停止することもある。再びアプリケーションがアクティブ状態になった時点で、タスク管理モジュール540は、再び、アプリケーションをトリガして、そのユーザインタフェースをレンダリングすることができる。実施形態では、タスクが一時停止されれば、タスクは、タスクの終了が行われる場合は、タスクの状態を保存することができる。一時停止状態では、アプリケーションウィンドウはユーザから見えないため、アプリケーションタスクは、入力を受信することはできない。
【0089】
フレームバッファ548は、ユーザインタフェースのレンダリングに使用される論理構造である。フレームバッファ548は、OSカーネル518によって作成及び破壊され得る。しかし、ディスプレイコントローラ544は、可視ウィンドウに対し、画像データをフレームバッファ548に書き込むことができる。フレームバッファ548は、1つの画面または複数の画面に関連付けられ得る。画面とのフレームバッファ548の関連性は、OSカーネル518との相互作用によって動的に制御することができる。複合ディスプレイは、複数の画面を単一のフレームバッファ548と関連付けることによって作成することができる。次いで、アプリケーションのウィンドウのユーザインタフェースのレンダリングに使用されるグラフィカルなデータは、複合ディスプレイに対し、単一のフレームバッファ548に書き込むことができ、それは複数画面104、108に出力される。ディスプレイコントローラ544は、アプリケーションのユーザインタフェースを、特定のディスプレイ110、114にマッピングされたフレームバッファ548の一部に移動させることができ、したがって、1つの画面104または108上にのみユーザインタフェースを表示することができる。ディスプレイコントローラ544は、ユーザインタフェースの制御を複数のアプリケーションに拡大し、フレームバッファ548またはその一部と関連付けられるだけの数のディスプレイに対してユーザインタフェースを制御することができる。この手法は、ディスプレイコントローラ544上のソフトウェアコンポーネントで使用中の複数の物理的画面104、108を補整する。
【0090】
アプリケーションマネージャ562は、ウィンドウ環境に対するプレゼンテーション層を提供するアプリケーションである。したがって、アプリケーションマネージャ562は、タスク管理モジュール540によるレンダリングのためのグラフィカルなモデルを提供する。同様に、デスクトップ566は、アプリケーションストア560に対するプレゼンテーション層を提供する。したがって、デスクトップは、レンダリング用にウィンドウ管理モジュール556に提供することができるアプリケーションストア560内のアプリケーション564用の選択可能なアプリケーションアイコンを有する表面のグラフィカルなモデルを提供する。
【0091】
さらに、フレームワークは、アプリケーションモデルマネージャ(AMM)542を含み得る。アプリケーションマネージャ562は、AMM 542とインタフェースをとることができる。実施形態では、AMM 542は、アプリケーションの状態(実行中または一時停止中)に関する状態変化情報をデバイス100から受信する。AMM 542は、サーフェスキャッシュモジュール528からのビットマップ画像を活動中(実行中または一時停止中)のタスクと関連付けることができる。さらに、AMM 542は、タスク管理モジュール540内で維持されている論理的ウィンドウスタックを、ディスプレイ外のジェスチャ捕捉エリア120を使用してウィンドウをより分ける際にユーザが捉える線形(「フィルムストリップ」または「トランプ一組」)組織に変換することができる。さらに、AMM 542は、実行中のアプリケーションのリストを、アプリケーションマネージャ562に提供することができる。
【0092】
MDMモジュール524の実施形態を
図5Bに示す。MDMモジュール524は、これらに限定されないが、デバイスの向き、デバイス100は開いているかまたは閉じているか、どのアプリケーション564を実行しているか、どのようにアプリケーション564を表示するか、ユーザはどの動作を行っているか、表示されているタスクなどを含むデバイスのための環境の状態を決定するよう動作可能である。ディスプレイを構成するため、MDMモジュール524は、
図6A〜6Jと併せて説明されるように、これらの環境要因を解釈し、ディスプレイ構成を決定する。次いで、MDMモジュール524は、アプリケーション564または他のデバイスコンポーネントをディスプレイと結合することができる。次いで、ディスプレイコントローラ544及び/またはOS 516内の他のコンポーネントに構成を送信し、ディスプレイを生成することができる。MDMモジュール524は、これらに限定されないが、ディスプレイ構成モジュール568、優先度モジュール572、デバイス状態モジュール574、ジェスチャモジュール576、要件モジュール580、イベントモジュール584及び/または結合モジュール588のうちの1つまたは複数を含み得る。
【0093】
ディスプレイ構成モジュール568は、ディスプレイ用のレイアウトを決定する。実施形態では、ディスプレイ構成モジュール568は、環境因子を決定することができる。環境因子は、1つまたは複数の他のMDMモジュール524からまたは他のソースから受信することができる。次いで、ディスプレイ構成モジュール568は、因子のリストからディスプレイに最適な構成を決定することができる。可能な構成及びそれに関連付けられた因子のいくつかの実施形態については、
図6A〜6Fと併せて説明する。
【0094】
優先度モジュール572は、アプリケーション564または他のコンポーネントの表示優先度を決定するよう動作可能である。例えば、アプリケーションは、単一またはデュアルディスプレイに対する優先度を有し得る。優先度モジュール572は、アプリケーションの表示優先度を決定することができ(例えば、アプリケーションの優先度設定を検査することによって)、デバイス100が好ましいモードに対応することができる状態にある場合は、アプリケーション564がモード(例えば、単一画面、二重画面、最大など)を変更することを可能にする場合がある。しかし、いくつかのユーザインタフェース方針は、そのモードが利用可能であっても、モードを認めない場合がある。デバイスの構成が変化すると、優先度を見直して、アプリケーション564に対してより良いディスプレイ構成を実現できるかどうかを決定することができる。
【0095】
デバイス状態モジュール574は、デバイスの状態を決定または受信するよう動作可能である。デバイスの状態は、
図3A及び3Bと併せて説明されるようなものであり得る。デバイスの状態は、ディスプレイ構成モジュール568で使用して、ディスプレイの構成を決定することができる。このように、デバイス状態モジュール574は、入力を受信し、デバイスの状態を解釈することができる。次いで、状態情報は、ディスプレイ構成モジュール568に提供される。
【0096】
ジェスチャモジュール576は、MDMモジュール524の一部として示されるが、実施形態では、ジェスチャモジュール576は、MDMモジュール524から分離された別々のフレームワーク520コンポーネントであり得る。実施形態では、ジェスチャモジュール576は、ユーザインタフェースの任意の部分でユーザが何らかの動作を行っているかどうかを決定するよう動作可能である。代替の実施形態では、ジェスチャモジュール576は、構成可能なエリア112、116のみからユーザインタフェース動作を受信する。ジェスチャモジュール576は、入力管理モジュール536を用いて、構成可能なエリア112、116(または、場合により、他のユーザインタフェースエリア)上で起こるタッチイベントを受信することができ、タッチイベントを解釈して(方向、速度、距離、持続時間及びさまざまな他のパラメータを使用して)ユーザがどのようなジェスチャを実行しているかを決定することができる。ジェスチャが解釈されると、ジェスチャモジュール576は、ジェスチャの処理に着手することができ、他のフレームワーク520コンポーネントと協働して、必要なウィンドウアニメーションを管理することができる。ジェスチャモジュール576は、アプリケーションモデルマネージャ542と協働して、どのアプリケーションが実行中(アクティブまたは一時停止)か、及び、ユーザジェスチャが実行される際にアプリケーションが現れなければならない順番に関する状態情報を収集する。また、ジェスチャモジュール576は、ビットマップ(サーフェスキャッシュモジュール528から)及びライブウィンドウへの参照を受信することができ、その結果、ジェスチャが起こると、ジェスチャモジュール576は、ディスプレイ110、114を横切ってウィンドウを移動させる方法をディスプレイコントローラ544に指示することができる。したがって、一時停止されたアプリケーションは、それらのウィンドウがディスプレイ110、114を横切って移動すると、実行しているように見える。
【0097】
さらに、ジェスチャモジュール576は、タスク管理モジュール540または入力管理モジュール536のいずれかからタスク情報を受信することができる。ジェスチャは、
図4A〜4Hと併せて定義されるようなものであり得る。例えば、ウィンドウの移動により、ディスプレイは、ウィンドウの移動を示す一連のディスプレイフレームをレンダリングする。そのようなユーザインタフェース相互作用に関連付けられたジェスチャは、ジェスチャモジュール576で受信し解釈することができる。次いで、ユーザジェスチャについての情報はタスク管理モジュール540に送信され、タスクのディスプレイ結合が修正される。
【0098】
優先度モジュール572と同様の要件モジュール580は、アプリケーション564または他のコンポーネントに対するディスプレイ要件を決定するよう動作可能である。アプリケーションは、観察しなければならないディスプレイ要件セットを有し得る。いくつかのアプリケーションは、特定のディスプレイ方向を必要とする。例えば、アプリケーション「アングリバード(Angry Birds)」は、横向きでのみ表示することができる。この種のディスプレイ要件は、要件モジュール580によって決定または受信することができる。デバイスの向きが変更されると、要件モジュール580は、アプリケーション564に対するディスプレイ要件を再び主張することができる。ディスプレイ構成モジュール568は、要件モジュール580によって提供されるアプリケーション表示要件に従ったディスプレイ構成を生成することができる。
【0099】
ジェスチャモジュール576と同様のイベントモジュール584は、ユーザインタフェースに影響を及ぼし得るアプリケーションまたは他のコンポーネントで起こる1つまたは複数のイベントを決定するよう動作可能である。したがって、イベントモジュール584は、イベントバッファ556またはタスク管理モジュール540のいずれかからイベント情報を受信することができる。これらのイベントは、タスクがどのようにディスプレイと結合されるか変更することができる。イベントモジュール584は、他のフレームワーク520コンポーネントから状態変化情報を収集し、その状態変化情報に応じて作用され得る。一例では、電話が開かれるか、または閉じられる場合、または方向変化が生じる場合、新しいメッセージが二次画面にレンダリングされる。このイベントに基づく状態変化は、イベントモジュール584により受信され、解釈されることができる。次いで、イベントについての情報は、ディスプレイ構成モジュール568に送信され、ディスプレイの構成を修正することができる。
【0100】
結合モジュール588は、アプリケーション564または他のコンポーネントをディスプレイ構成モジュール568によって決定された構成と結合するよう動作可能である。結合は、メモリ内で、各アプリケーションに対するディスプレイ構成をアプリケーションの表示及びモードと関連付ける。したがって、結合モジュール588は、アプリケーションをそのアプリケーションに対するディスプレイ構成(例えば、横向き、縦向き、複数画面など)と関連付けることができる。次いで、結合モジュール588は、ディスプレイ識別子をディスプレイに割り当てることができる。ディスプレイ識別子は、アプリケーションをデバイス100の特定のディスプレイと関連付ける。次いで、この結合は、格納され、ディスプレイコントローラ544、OS 516の他のコンポーネントまたは他のコンポーネントに提供され、ディスプレイが適正にレンダリングされる。結合は、動的であり、イベント、ジェスチャ、状態変化、アプリケーション優先度または要件などに関連付けられた構成変更に基づいて、変更することも更新することもできる。
ユーザインタフェース構成:
ここで
図6A〜Jを参照し、デバイス100によって可能となったさまざまなタイプの出力構成について以下で説明する。
【0101】
図6A及び6Bは、第1の状態にあるデバイス100の2つの異なる出力構成を描写する。具体的には、
図6Aは、閉縦向き状態304にあるデバイス100を描写し、データは、一次画面104に表示される。この例では、デバイス100は、第1の縦向き構成604でタッチセンサ式ディスプレイ110を介してデータを表示する。理解できるように、第1の縦向き構成604は、デスクトップまたはオペレーティングシステムホーム画面のみを表示することができる。あるいは、デバイス100が第1の縦向き構成604でデータを表示している間、1つまたは複数のウィンドウを縦向きで提示することができる。
【0102】
図6Bは、依然として閉縦向き状態304にあるデバイス100を描写するが、代わりに、データは、二次画面108に表示される。この例では、デバイス100は、第2の縦向き構成608でタッチセンサ式ディスプレイ114を介してデータを表示する。
【0103】
第1または第2の縦向き構成604、608のいずれかで同様のまたは異なるデータを表示することが可能である場合がある。また、ユーザジェスチャ(例えば、ダブルタップジェスチャ)、メニュー選択または他の手段をデバイス100に提供することによって、第1の縦向き構成604と第2の縦向き構成608との間を移行することが可能である場合もある。また、他の適切なジェスチャを使用して、構成間を移行することもできる。その上、デバイス100がどの状態に移動されるかに応じて、第1または第2の縦向き構成604、608から本明細書に記載される他の任意の構成へデバイス100を移行することが可能である場合もある。
【0104】
代替の出力構成は、第2の状態にあるデバイス100によって対応することができる。具体的には、
図6Cは、第3の縦向き構成を描写し、データは、一次画面104と二次画面108の両方に同時に表示される。第3の縦向き構成は、デュアル縦向き(PD)出力構成と呼ばれる場合がある。PD出力構成では、一次画面104のタッチセンサ式ディスプレイ110は、第1の縦向き構成604でデータを描写する一方で、二次画面108のタッチセンサ式ディスプレイ114は、第2の縦向き構成608でデータを描写する。第1の縦向き構成604と第2の縦向き構成608の同時プレゼンテーションは、デバイス100が開縦向き状態320にある場合に起こり得る。この構成では、デバイス100は、1つのアプリケーションウィンドウを1つのディスプレイ110または114に、2つのアプリケーションウィンドウを(それぞれのディスプレイ110及び114に1つずつ)、1つのアプリケーションウィンドウと1つのデスクトップを、または、1つのデスクトップを表示することができる。また、他の構成も可能である場合がある。デバイス100がどの状態に移動されるかに応じて、構成604、608の同時表示から本明細書に記載される他の任意の構成へデバイス100を移行することが可能である場合もあることを理解されたい。その上、この状態にある間、アプリケーションの表示優先度により、両ディスプレイがアクティブであり、同じアプリケーションで異なるウィンドウを表示する両面モードにデバイスが置かれる場合がある。例えば、カメラアプリケーションは、一面でファインダ及び制御を表示することができる一方で、他面は被写体で見ることができるミラーリングされたプレビューを表示する。また、2人のプレーヤによる同時プレーを伴うゲームも、両面モードを利用することができる。
【0105】
図6D及び6Eは、第3の状態にあるデバイス100の2つのさらなる出力構成を描写する。具体的には、
図6Dは、閉横向き状態340にあるデバイス100を描写し、データは、一次画面104に表示される。この例では、デバイス100は、第1の横向き構成612でタッチセンサ式ディスプレイ110を介してデータを表示する。本明細書に記載される他の構成に類似して、第1の横向き構成612は、デスクトップ、ホーム画面、アプリケーションデータを表示する1つもしくは複数のウィンドウまたは同様のものを表示することができる。
【0106】
図6Eは、依然として閉横向き状態340にあるデバイス100を描写するが、代わりに、データは、二次画面108に表示される。この例では、デバイス100は、第2の横向き構成616でタッチセンサ式ディスプレイ114を介してデータを表示する。第1または第2の横向き構成612、616のいずれかで同様のまたは異なるデータを表示することが可能である場合がある。ツイスト及びタップジェスチャまたはフリップ及びスライドジェスチャの一方または両方をデバイス100に提供することによって、第1の横向き構成612と第2の横向き構成616との間を移行することが可能である場合もある。また、他の適切なジェスチャを使用して、構成間を移行することもできる。その上、デバイス100がどの状態に移動されるかに応じて、第1または第2の横向き構成612、616から本明細書に記載される他の任意の構成へデバイス100を移行することが可能である場合もある。
【0107】
図6Fは、第3の横向き構成を描写し、データは、一次画面104と二次画面108の両方に同時に表示される。第3の横向き構成は、デュアル横向き(LD)出力構成と呼ばれる場合がある。LD出力構成では、一次画面104のタッチセンサ式ディスプレイ110は、第1の横向き構成612でデータを描写する一方で、二次画面108のタッチセンサ式ディスプレイ114は、第2の横向き構成616でデータを描写する。第1の横向き構成612と第2の横向き構成616の同時プレゼンテーションは、デバイス100が開横向き状態340にある場合に起こり得る。デバイス100がどの状態に移動されるかに応じて、構成612、616の同時表示から本明細書に記載される他の任意の構成へデバイス100を移行することが可能である場合もあることを理解されたい。
【0108】
図6G及び6Hは、さらに別の状態にあるデバイス100の2つの図を描写する。具体的には、デバイス100は、イーゼル状態312にあるものとして描写される。
図6Gは、第1のイーゼル出力構成618をタッチセンサ式ディスプレイ110に表示できることを示す。
図6Hは、第2のイーゼル出力構成620をタッチセンサ式ディスプレイ114に表示できることを示す。デバイス100は、第1のイーゼル出力構成618または第2のイーゼル出力構成620のいずれかを個別に描写するよう構成することができる。あるいは、イーゼル出力構成618、620の両方を同時に提示することができる。いくつかの実施形態では、イーゼル出力構成618、620は、横向き出力構成612、616と同様でも同一でもよい。また、デバイス100は、変形イーゼル状態316にある間、イーゼル出力構成618、620の一方または両方を表示するよう構成することができる。イーゼル出力構成618、620の同時利用は、2人用のゲーム(例えば、バトルシップ(Battleship)(登録商標)、チェス、チェッカなど)、2人以上のユーザが同じデバイス100及び他のアプリケーションを共有する複数ユーザ会議を容易にできることを理解されたい。理解できるように、デバイス100がどの状態に移動されるかに応じて、構成618、620の一方または両方のディスプレイから本明細書に記載される他の任意の構成へデバイス100を移行することが可能である場合もある。
【0109】
図6Iは、デバイス100が開縦向き状態320にある間に対応することができるさらなる別の出力構成を描写する。具体的には、デバイス100は、本明細書で縦向きマックス(PMax)構成624と呼ばれる縦向き構成で、両方のタッチセンサ式ディスプレイ110、114にわたって単一の連続画像を提示するよう構成することができる。この構成では、データ(例えば、単一画像、アプリケーション、ウィンドウ、アイコン、ビデオなど)は、分割して、タッチセンサ式ディスプレイの1つに部分的に表示する一方で、データの他の部分を他のタッチセンサ式ディスプレイに表示することができる。Pmax構成624は、デバイス100上に特定の画像を表示するためのより大きな表示及び/またはより良好な解像度を容易にすることができる。他の出力構成と同様に、デバイス100がどの状態に移動されるかに応じて、Pmax構成624から本明細書に記載される他の任意の出力構成へデバイス100を移行することが可能である場合がある。
【0110】
図6Jは、デバイス100が開横向き状態348にある間に対応することができるさらなる別の出力構成を描写する。具体的には、デバイス100は、本明細書で横向きマックス(LMax)構成628と呼ばれる横向き構成で、両方のタッチセンサ式ディスプレイ110、114にわたって単一の連続画像を提示するよう構成することができる。この構成では、データ(例えば、単一画像、アプリケーション、ウィンドウ、アイコン、ビデオなど)は、分割して、タッチセンサ式ディスプレイの1つに部分的に表示する一方で、データの他の部分を他のタッチセンサ式ディスプレイに表示することができる。Lmax構成628は、デバイス100上に特定の画像を表示するためのより大きな表示及び/またはより良好な解像度を容易にすることができる。他の出力構成と同様に、デバイス100がどの状態に移動されるかに応じて、Lmax構成628から本明細書に記載される他の任意の出力構成へデバイス100を移行することが可能である場合がある。
【0111】
図7A及び7Bに示されるように、デバイス100は、少なくとも1つのウィンドウスタック700、728でデスクトップ及び/またはウィンドウを管理する。ウィンドウスタック700、728は、複数画面デバイスに対するアクティブ及び/または非アクティブウィンドウの論理構成である。例えば、ウィンドウスタック700または728は、トランプ一組と論理的に同様であり得、
図7A及び7Bに示されるように、1つまたは複数のウィンドウまたはデスクトップは、順番に配置される。アクティブウィンドウは、タッチセンサ式ディスプレイ110、114の少なくとも1つに現時点で表示されているウィンドウである。例えば、タッチセンサ式ディスプレイ104及び108上に表示されているウィンドウは、アクティブウィンドウである。非アクティブウィンドウは、開かれ、表示されていたが、現時点ではアクティブウィンドウの「背後」にあり、表示されていないウィンドウである。実施形態では、非アクティブウィンドウは、一時停止中であるアプリケーション用であり得、したがって、ウィンドウはアクティブコンテンツを表示していない。例えば、ウィンドウ712、716、720及び724(
図7A)は非アクティブウィンドウである。
【0112】
ウィンドウスタック700、728は、さまざまな構成または組織構造を有し得る。
図7Aに示される実施形態では、デバイス100は、第1のタッチセンサ式ディスプレイ110に関連付けられた第1のスタック760と、第2のタッチセンサ式ディスプレイ114に関連付けられた第2のスタック764とを含む。したがって、各タッチセンサ式ディスプレイ110及び114は、それぞれに関連付けられたウィンドウスタック760、764を有し得る。これらの2つのウィンドウスタック760、764は、それぞれのスタック760、764に配置された異なる数のウィンドウを有し得る。さらに、2つのウィンドウスタック760、764は、異なる方法で識別し、別々に管理することもできる。したがって、第1のウィンドウスタック760は、第1のウィンドウ704から次のウィンドウ720へ、そして最後のウィンドウ724へ、そして最終的にデスクトップ722(実施形態ではウィンドウスタック760の「最下部」である)へと順番に配置することができる。実施形態では、デスクトップ722下のウィンドウスタックにアプリケーションウィンドウを配置することができ、また、デスクトップを見えるようにするオペレーション(desktop reveal operation)を実行した結果、デスクトップ722を他のウィンドウ上のスタックの「最上部」へ持ってくることができるため、デスクトップ722は常に「最下部」であるとは限らない。同様に、第2のスタック764は、第1のウィンドウ708から次のウィンドウ712へ、そして最後のウィンドウ716へ、そして最終的にデスクトップ718(実施形態では、デスクトップ722を有し、ウィンドウスタック760とウィンドウスタック764の両方のすべてのウィンドウ下の単一のデスクトップエリアである)へと配置することができる。2つのウィンドウスタック760、764を管理するための論理データ構造は、以下の
図8と併せて説明されるようなものであり得る。
【0113】
ウィンドウスタック728の別の構成を
図7Bに示す。この実施形態では、両方のタッチセンサ式ディスプレイ110、114に対して、単一のウィンドウスタック728が存在する。したがって、ウィンドウスタック728は、デスクトップ758から第1のウィンドウ744へ、そして最後のウィンドウ756へと配置される。ウィンドウは、特定のタッチセンサ式ディスプレイ110、114に関連付けられることなく、すべてのウィンドウの中のある位置に配置することができる。この実施形態では、各ウィンドウは、ウィンドウ順に並んでいる。さらに、少なくとも1つのウィンドウは、アクティブ状態にあると識別される。例えば、単一のウィンドウは、第1のタッチセンサ式画面110と第2のタッチセンサ式画面114のそれぞれで表示される2つの部分732及び736でレンダリングすることができる。この単一のウィンドウは、両方のディスプレイ110、114上に表示されているが、ウィンドウスタック728において、単一の位置のみを占有することができる。
【0114】
ウィンドウスタック
760のさらなる別の構成を
図7C〜7Eに示す。ウィンドウスタック
760は、3つの「立体」図で示される。
図7Cでは、ウィンドウスタック
760の上面を示す。ウィンドウスタック
760の2つの側面は、
図7D及び7Eに示す。この実施形態では、ウィンドウスタック
760は、レンガの積み重ねに似ている。ウィンドウは、互いに積み重ねられる。
図7Cは、ウィンドウスタック
760を上方から見ているため、複合ディスプレイ
764の異なる部分においてウィンドウスタック
760の最上部のウィンドウしか見えない。複合ディスプレイ
764は、デバイス100のディスプレイエリア全体のための論理モデルを表し、タッチセンサ式ディスプレイ110及びタッチセンサ式ディスプレイ114を含み得る。デスクトップ786(
図7D及び7E)またはウィンドウは、複合ディスプレイ
764の一部または全体を占有することができる。
【0115】
示される実施形態では、デスクトップ786がウィンドウスタック
760の最下部のディスプレイまたは「レンガ」である。そこから、ウィンドウ1 782、ウィンドウ2
778、ウィンドウ3 768及びウィンドウ4 770が積層される。ウィンドウ1 782、ウィンドウ3 768、ウィンドウ2
778及びウィンドウ4 770は、複合ディスプレイ
764のほんの一部を占領する。したがって、スタック
760の別の部分は、ウィンドウ8 774と、セクション790で示されるウィンドウ5〜7とを含む。複合ディスプレイ
764の任意の部分の最上部のウィンドウのみが実際にレンダリングされ、表示される。したがって、
図7Cの上面図に示されるように、ウィンドウスタック
760の異なる部分においてディスプレイの最上部にあるものとして、ウィンドウ4 770、ウィンドウ8 774及びウィンドウ3 768が表示される。ウィンドウは、寸法変更して、複合ディスプレイ
764のほんの一部を占有し、ウィンドウスタック760の下方のウィンドウを「見えるようにする」ことができる。例えば、ウィンドウ3 768は、スタックにおいて、ウィンドウ4 770及びウィンドウ8 774の下方にあるが、依然として表示されている。ウィンドウスタックを管理する論理データ構造は、
図8と併せて説明されるようなものであり得る。
【0116】
デバイス100上で新しいウィンドウを開くと、一般に、新たに起動されたウィンドウがスタックの最上部に配置される。しかし、ウィンドウがスタック内のどこにどのように配置されるかは、デバイス100の向き、どのプログラム、機能、ソフトウェアなどがデバイス100上で実行されているかについてのコンテキスト、新しいウィンドウが開かれた際にどのようにスタックが配置されるかなどに依存し得る。ウィンドウをスタックに挿入するため、スタック内のウィンドウの位置が決定され、また、ウィンドウが関連付けられるタッチセンサ式ディスプレイ110、114も決定することができる。この情報を用いて、ウィンドウ用の論理データ構造を作成し、格納することができる。ユーザインタフェースまたは他のイベントもしくはタスクがウィンドウの配置を変化させると、配置の変化を反映するため、ウィンドウスタックが変更され得る。上記で説明されるこれらの同じ概念を使用して、デバイス100用の1つまたは複数のデスクトップを管理できることに留意されたい。
【0117】
ウィンドウスタック内のウィンドウまたはデスクトップの配置を管理するための論理データ構造800を
図8に示す。論理データ構造800は、オブジェクト、記録、ファイルなどにかかわらず、データの格納に使用される任意のデータ構造であり得る。論理データ構造800は、プロトコルまたは規格にかかわらず、いかなるタイプのデータベースまたはデータ格納システムにも格納することができる。実施形態では、論理データ構造800は、情報の容易な格納及び回収を可能にする論理構成でデータを格納する1つまたは複数の部分、フィールド、属性などを含む。以下では、これらの1つまたは複数の部分、フィールド、属性などを単なるフィールドとして説明するものとする。フィールドは、ウィンドウ識別子804、寸法808、スタック位置識別子812、ディスプレイ識別子816及び/またはアクティブインジケータ820に対するデータを格納することができる。ウィンドウスタック内の各ウィンドウは、関連する論理データ構造800を有し得る。
図8では、単一の論理データ構造800が示されているが、楕円824によって表されるように、ウィンドウスタックで使用されるより多くのまたはより少ない論理データ構造800が存在し得る(スタック内のウィンドウまたはデスクトップの数に基づいて)。さらに、楕円828によって表されるように、
図8に示されるものより多くのまたはより少ないフィールドが存在し得る。
【0118】
ウィンドウ識別子804は、ウィンドウスタック内の他のウィンドウとの関連で、関連ウィンドウを独自に識別する任意の識別子(ID)を含み得る。ウィンドウ識別子804は、グローバル一意識別子(GUID)、数値ID、英数字IDまたは他のタイプの識別子であり得る。実施形態では、ウィンドウ識別子804は、開くことができるウィンドウの数に基づく1桁、2桁または任意の桁数であり得る。代替の実施形態では、ウィンドウ識別子804のサイズは、開いているウィンドウの数に基づいて変化し得る。ウィンドウが開いている間、ウィンドウ識別子804は、静的で、不変のままであり得る。
【0119】
寸法808は、複合ディスプレイ
764のウィンドウの寸法を含み得る。例えば、寸法808は、ウィンドウの2つ以上の角部の座標を含むことも、1つの座標ならびにウィンドウの幅及び高さに対する寸法を含むこともある。これらの寸法808は、ウィンドウが複合ディスプレイ
764のどの部分を占有することができるかを描写することができ、それは、複合ディスプレイ
764全体でも、複合ディスプレイ
764のほんの一部でもあり得る。例えば、ウィンドウ4 770は、
図7C〜7Eに示されるように、ウィンドウ4 770が複合ディスプレイ
764のディスプレイエリアのほんの一部を占有することを示す寸法808を有し得る。ウィンドウがウィンドウスタック内で移動されるかまたは挿入されると、寸法808は変化し得る。
【0120】
スタック位置識別子812は、ウィンドウのスタック内での位置を識別することができるか、または、リストもしくはスタックなどのデータ構造内のウィンドウの制御記録から推定することができる任意の識別子であり得る。スタック位置識別子812は、GUID、数値ID、英数字IDまたは他のタイプの識別子であり得る。各ウィンドウまたはデスクトップは、スタック位置識別子812を含み得る。例えば、
図7Aの実施形態に示されるように、スタック1 760のウィンドウ1 704は、ウィンドウ704がスタック 760の第1のウィンドウであり、アクティブウィンドウであることを特定する1のスタック位置識別子812を有し得る。同様に、ウィンドウ6 724は、ウィンドウ724がスタック 760の第3のウィンドウであることを表す3のスタック位置識別子812を有し得る。また、ウィンドウ2 708は、ウィンドウ708が第2のスタック 764の第1のウィンドウであることを表す1のスタック位置識別子812を有し得る。しかし、
図7Bでは、ウィンドウの代替のスタック位置の番号が提供され、すなわち、ウィンドウ1 744は、1のスタック位置識別子812を有し得、部分732及び736にレンダリングされたウィンドウ3は、3のスタック位置識別子812を有し得、ウィンドウ6 756は、6のスタック位置識別子812を有し得る。したがって、スタックのタイプに応じて、スタック位置識別子812は、スタック内でのウィンドウの位置を表すことができる。
【0121】
ディスプレイ識別子816は、第1のディスプレイ110もしくは第2のディスプレイ114、または、両方のディスプレイで構成された複合ディスプレイ
764などの特定のディスプレイにウィンドウまたはデスクトップが関連付けられていることを特定することができる。
図7Aに示されるように、このディスプレイ識別子816は複数スタックシステムで必要とされない場合があるが、ディスプレイ識別子816は、
図7Bの連続スタック内のウィンドウが特定のディスプレイに表示されているかどうかを示すことができる。したがって、ウィンドウ3は、
図7Bにおいて、2つの部分732及び736を有し得る。第1の部分732は、第1のディスプレイに対するディスプレイ識別子816を有し得る一方で、第2の部分736は、第2のディスプレイ114に対するディスプレイ識別子816を有し得る。しかし、代替の実施形態では、ウィンドウは、ウィンドウが両方のディスプレイ110、114に表示されていること、または、ディスプレイ識別子816が複合ディスプレイを特定したことを表す2つのディスプレイ識別子816を有し得る。別の代替の実施形態では、ウィンドウは、ウィンドウが両方のディスプレイ110、114に表示されていることを表すための単一のディスプレイ識別子816を有し得る。
【0122】
ディスプレイ識別子816と同様に、アクティブインジケータ820は、スタック位置1のウィンドウがアクティブであり、表示されているため、
図7Aのデュアルスタックシステムで必要とされない場合がある。
図7Bのシステムでは、アクティブインジケータ820は、スタック内のどのウィンドウが表示されているかを示すことができる。したがって、ウィンドウ3は、
図7Bにおいて、2つの部分732及び736を有し得る。第1の部分732がアクティブインジケータ820を有する一方で、第2の部分736もまたアクティブインジケータ820を有し得る。しかし、代替の実施形態では、ウィンドウ3は、単一のアクティブインジケータ820を有し得る。アクティブインジケータ820は、ウィンドウがアクティブであるかまたは表示されていることを表す簡単なフラグまたはビットであり得る。
【0123】
ウィンドウスタックを作成するための方法900の実施形態を
図9に示す。
図9では、方法900の工程の一般的な順番を示す。一般に、方法900は、開始動作904で始まり、終了動作
924で終了する。方法900は、
図9に示されるものより多くのまたはより少ない工程を含むことも、異なる形で工程の順番を整えることもできる。方法900は、コンピュータシステムによって実行され、コンピュータ可読媒体で符号化されるかまたは格納される一連のコンピュータ実行可能命令として実行することができる。以下では、
図1〜8と併せて説明されるシステム、コンポーネント、モジュール、ソフトウェア、データ構造、ユーザインタフェースなどを参照して、方法900を説明する。
【0124】
工程908では、複数画面デバイス100は、ウィンドウの起動を受信することができる。実施形態では、複数画面デバイス100は、タッチセンサ式ディスプレイ110もしくは114、構成可能なエリア112もしくは116、ジェスチャ捕捉領域120もしくは124、または、ユーザインタフェース入力を受信するよう動作可能ないくつかの他のハードウェアセンサから入力を受信することによって、ウィンドウの起動を受信することができる。プロセッサは、タスク管理モジュール540(
図5A)を実行して入力を受信することができる。タスク管理モジュール540は、ウィンドウスタックにウィンドウを開く、実行すべきアプリケーションタスクを要求するものとして入力を解釈することができる。
【0125】
実施形態では、タスク管理モジュール540は、複数ディスプレイ管理モジュール524(
図5A、5B)のディスプレイ構成モジュール568(
図5B)に作用されるタスクスタック552(
図5A)にユーザインタフェース相互作用を置く。さらに、タスク管理モジュール540は、複数ディスプレイ管理モジュール524からの情報を待ち、ウィンドウ管理モジュール532に命令を送信して、ウィンドウスタックにウィンドウを作成する。
【0126】
工程912では、複数ディスプレイ管理モジュール524は、タスク管理モジュール540から命令を受信すると、新たに起動されたウィンドウを関連付けるべき複合ディスプレイ
764のタッチ部分を決定する。例えば、ウィンドウ4 770は、複合ディスプレイ
764(図
7C)と関連付けられる。実施形態では、複数ディスプレイ管理モジュール524のデバイス状態モジュール574(
図5B)は、デバイスがどのように方向付けられているか、または、デバイスがどの状態にあるか(例えば、開状態、閉状態、縦向き状態など)を決定することができる。さらに、優先度モジュール572(
図5B)及び/または要件モジュール580(
図5B)は、ウィンドウをどのように表示するかを決定することができる。ジェスチャモジュール576(
図5B)は、ジェスチャのタイプ及びジェスチャが行われた位置に基づいて、ウィンドウをどのように開くかについてのユーザの意図を決定することができる。
【0127】
ディスプレイ構成モジュール568(
図5B)は、これらのモジュールからの入力を使用して、可視性アルゴリズムに基づいて、現時点におけるウィンドウスタック760を評価し、最善の場所及び最善の寸法を決定し、ウィンドウを開くことができる。したがって、工程916では、ディスプレイ構成モジュール568は、ウィンドウスタック760の最上部にウィンドウを置くための最善の場所を決定する。可視性アルゴリズムは、実施形態では、複合ディスプレイのすべての部分に対して、どのウィンドウがスタックの最上部にあるかを決定する。例えば、可視性アルゴリズムは、
図7C〜7Eで見られるように、ウィンドウ3 768、ウィンドウ4 770及びウィンドウ8 774がスタック760の最上部にあることを決定する。どこでウィンドウを開くかを決定すると、ディスプレイ構成モジュール568は、ディスプレイ識別子816及び場合により寸法808をウィンドウに割り当てることができる。次いで、ディスプレイ識別子816及び寸法808は、タスク管理モジュール540に送り返すことができる。次いで、タスク管理モジュール540は、ウィンドウスタックの最上部でのウィンドウ位置を示すスタック位置識別子812をウィンドウに割り当てることができる。
【0128】
実施形態では、タスク管理モジュール540は、ウィンドウスタック情報及び命令を送信し、ウィンドウ管理モジュール532(
図5A)にウィンドウをレンダリングする。工程
920では、ウィンドウ管理モジュール532及びタスク管理モジュール540(
図5A)は、論理データ構造800を作成することができる。タスク管理モジュール540とウィンドウ管理モジュール532は両方とも、ウィンドウスタックのコピーを作成し、管理することができる。これらのウィンドウスタックのコピーは、ウィンドウ管理モジュール532とタスク管理モジュール540との間の通信を通じて、同期化することも、同様に保持することもできる。したがって、ウィンドウ管理モジュール532及びタスク管理モジュール540は、複数ディスプレイ管理モジュール524によって決定された情報に基づいて、寸法808、スタック位置識別子812(例えば、ウィンドウ1 782、ウィンドウ4 770など)、ディスプレイ識別子816(例えば、タッチセンサ式ディスプレイ1 110、タッチセンサ式ディスプレイ2 114、複合ディスプレイ識別子など)及びアクティブインジケータ820を割り当てることができ、これは、一般に、ウィンドウがスタックの「最上部」にある場合に常に設定される。次いで、論理データ構造800は、ウィンドウ管理モジュール532とタスク管理モジュール540の両方で格納することができる。さらに、ウィンドウ管理モジュール532及びタスク管理モジュール540は、その後、ウィンドウスタック及び論理データ構造800を管理することができる。
【0129】
デバイス100の少なくとも1つの実施形態では、MDM524(及びそのジェスチャモジュール576)は、ジェスチャ捕捉エリア120及び124でのジェスチャを解釈するよう動作可能であってもよく、その結果、ウィンドウスタック(例えば、上記で説明された728)の操作にそのようなジェスチャを使用することができる。具体的には、そのような操作は、ウィンドウスタックの順序を乱すことも変化させることもなく、ユーザがそのようなウィンドウスタックを通じてサイクルを繰り返すことを可能にする場合がある。例えば、
図10を参照すると、ウィンドウ/デスクトップ1、2及び3は、ウィンドウスタックで順序付けされるように示され、ウィンドウ/デスクトップ1はウィンドウスタックの最上部にあり、その次にウィンドウ/デスクトップ2、そしてその次にウィンドウ/デスクトップ3と続く。示されるように、
図10の第1の行では、ウィンドウ/デスクトップ1がディスプレイ110全体を使い切る一方で、ウィンドウ/デスクトップ2及びウィンドウ/デスクトップ3は非表示である(
図10で反映されるように、これらのウィンドウ/デスクトップは破線で示される)。しかし、この第1の行は、ユーザがジェスチャ捕捉エリア120へフリックジェスチャ404またはドラッグジェスチャ400などの指によるジェスチャを入力することも示し、そのような入力は、ウィンドウ/デスクトップ1をディスプレイ110外へ移動させ、ウィンドウ/デスクトップ2をディスプレイ110上に移動させるが、ウィンドウスタックを乱すことも変化させることもしないという要求としてジェスチャモジュール576によって解釈される。したがって、その結果得られる構成が
図10の第2または中央の行に示され、ウィンドウ/デスクトップ2がディスプレイ110上に表示される。それに加えて、
図10のこの第2の行は、ウィンドウ/デスクトップ2をディスプレイ110外へ移動させ、ウィンドウ/デスクトップ3をディスプレイ上に移動させ、この場合もやはり、ウィンドウスタックのウィンドウ及び/またはデスクトップの順序を乱すことも変化させることもしないために、ユーザがジェスチャ捕捉エリア120へ指による別のジェスチャを入力することも示す。それに応じて、
図10の第3または最下行では、ウィンドウ/デスクトップ3が表示される。
【0130】
ウィンドウ/デスクトップ1、2及び3はウィンドウスタックのすべてのウィンドウ/デスクトップを構成する(少なくともディスプレイ110に対して)と仮定すると、一実施形態では、
図10の第3の行に示されるように、ジェスチャ捕捉領域120へのユーザの指によるジェスチャ入力は、
図10の第1の行の構成をもたらし、この場合もやはり、ウィンドウスタックの順序を乱すことも変化させることもしない。
【0131】
実施形態では、ユーザがウィンドウスタックを通じてナビゲートし(例えば、ディスプレイ110に対して)、それにより、
図7Bのウィンドウスタック表現728のように、ウィンドウスタックの最上部のウィンドウ/デスクトップではないウィンドウ/デスクトップが表示される場合、ユーザは、例えば、この表示されたウィンドウ/デスクトップに入力を直接提供することによって、または、何らかの他の入力(ディスプレイに対して、この順序が低いウィンドウ/デスクトップに1つまたは複数のタップを行うなど)を提供することによって、そのような表示された(順序が低い)ウィンドウ/デスクトップがウィンドウスタックの最上部のウィンドウ/デスクトップとなるように強いることができる。それに応じて、一実施形態では、ユーザジェスチャ入力(または、他の入力)を受信するそのような表示された順序が低いウィンドウ/デスクトップは、ウィンドウスタックの他のウィンドウ/デスクトップの相対順序を乱すことも変化させることもなく、ウィンドウスタックの最上部に再配置される。しかし、ウィンドウスタックのウィンドウ/デスクトップの代替の再構成技法は、順序が低いウィンドウ/スタックの順序が最も高くなるようにするためにユーザが入力を提供する場合は、本開示の範囲内である。例えば、そのような代替の再構成技法は、ウィンドウスタックで順序が最も低いものよりもウィンドウスタックで高方にある(すなわち、入力を受信する表示された順序が低いウィンドウ/デスクトップより高方にある)ウィンドウ/デスクトップを並べ換えるが、そのようなウィンドウ/デスクトップをそれらの同じスタック相対順序で維持することを含み得る。例えば、再び
図10を参照すると、そのような代替の再構成技法が使用可能であったなら、例えば、表示されたウィンドウ/デスクトップ3にユーザが入力を直接提供すれば、(それにより、このウィンドウ/デスクトップはウィンドウスタックの最上部となる、ウィンドウ/デスクトップ1は、ウィンドウ/デスクトップ3の直下に順序付けされることになり、ウィンドウ/デスクトップ2は、ウィンドウスタックで順序が最も低いウィンドウ/デスクトップとなることになる。
【0132】
図10に示されるユーザジェスチャはユーザがウィンドウスタックの順序を低くする方向でナビゲートすることを示すが、ユーザは、ウィンドウスタックの順序を高くする方向でナビゲートすることもできることに留意されたい。一実施形態では、ウィンドウスタックの順序を低くする方向でナビゲートするためのユーザの指によるジェスチャと同じものを使用して、ウィンドウスタックの順序を高くする方向でナビゲートすることができるが、ウィンドウスタックの順序を高くする方向でのナビゲートに対して、そのためのユーザジェスチャは逆方向に移動させることを除く。したがって、
図10の中央の行を参照すると、ユーザがユーザジェスチャ400または404を逆方向に入力すれば、ウィンドウ/デスクトップ1が結果として表示されることになる。
【0133】
ウィンドウスタックをナビゲートするための
図10に関連する上記の説明は単一ディスプレイ110に対して示されているが、そのようなナビゲーション技法は、ディスプレイ114にも適用される。その上、デバイス100が348のような開二重画面状態にある場合は、同様のナビゲーション技法を適用することができる。一実施形態では、そのような開二重画面状態にあるデバイス100をユーザが有する場合、そのようなナビゲーションのためのユーザの指によるジェスチャをジェスチャ捕捉エリア120または124のいずれかに適用することができ、提示されているアプリケーションウィンドウ及び/またはデスクトップは、例えば、以下の規則に従って、ディスプレイ110、114を横切って移動することができる。
(a)二重画面アプリケーションが両画面に表示され、ウィンドウスタックをナビゲートするために(
図10のように)、ユーザの指によるジェスチャがジェスチャ捕捉エリア120、124の1つに入力される場合、ウィンドウスタックの順序における次のウィンドウ/デスクトップ(W
1)を両ディスプレイ100、114に表示するのであれば、この次のウィンドウ/デスクトップW
1を両ディスプレイに表示する。あるいは、ウィンドウ/デスクトップW
1を単一ディスプレイに表示するのであれば、ウィンドウ/デスクトップW
1をディスプレイの1つに移動し、W
1をディスプレイ110、114の1つに移動した後で次のウィンドウ/デスクトップ(W
2)も移動する(必要ならば、W
2を単一ディスプレイに変換する)。
(b)2つの単一画面ウィンドウ/デスクトップ(W
1、W
2)がディスプレイ110、114上に表示され、ウィンドウスタックの順序において、W
1がW
2より低く(高く)、ウィンドウスタックの順序を低く(高く)する方向でナビゲートするために、ユーザの指によるジェスチャがジェスチャ捕捉エリア120、124の1つに入力される場合、ウィンドウ/デスクトップW
1、W
2の一方は、ユーザジェスチャの方向に移動してウィンドウ/デスクトップW
1、W
2の他方と交換し、ウィンドウスタックに表示される(任意の)次に低い(高い)ウィンドウ/デスクトップ(W
3)は、そこから1つのウィンドウ/デスクトップが移動したディスプレイ110、114上に表示される。その上、W
3が二重画面アプリケーション/デスクトップの場合は、そのようなウィンドウスタックナビゲーションの間のプレゼンテーションのために単一画面ディスプレイに変換される。
【0134】
図11は、上記で説明されるウィンドウスタックをナビゲートするための方法を代表する高レベルのフローチャートを示す。具体的には、工程1104では、ジェスチャ捕捉エリア120、124の1つにおいてユーザジェスチャを検出し、ジェスチャは、ウィンドウスタックのそれらの順序に従ってウィンドウスタックをナビゲートしてウィンドウ/デスクトップを表示するというユーザ要求であるとジェスチャモジュール576によって決定される。ジェスチャモジュール576は入力ジェスチャからユーザがウィンドウスタックのナビゲートを要求する方向(すなわち、ウィンドウスタックの順序を高くする、または、ウィンドウスタックの順序を低くする)も決定すると仮定すると、工程1108において、ウィンドウスタックの順序においてユーザが示した方向に対して、ウィンドウスタックに表示された次のウィンドウ/デスクトップ(例えば、728)があるかどうかに関して、MDM524で決定する。ウィンドウスタックの順序に従って表示された次のウィンドウ/デスクトップ(W)があることが現工程において決定されれば(例えば、ユーザがウィンドウスタックの順序を高くする方向でナビゲートする場合は、順序において次に高いウィンドウ/デスクトップ、または、ユーザがウィンドウスタックの順序を低くする方向でナビゲートする場合は、順序において次に低いウィンドウ/デスクトップのいずれか)、工程1112を実行し、工程1112では、ディスプレイ110、114上に表示された1つまたは複数のウィンドウ/デスクトップのそれぞれ(例えば、デバイス100が閉じている場合は、ディスプレイ110、114のアクティブなものに表示された単一のウィンドウ/デスクトップのみ、及び、デバイス100が開状態にある場合は、ディスプレイ110、114上に表示された最大2つのウィンドウ/デスクトップ)を、現時点で表示されているウィンドウ/デスクトップの1つがディスプレイ110、114外に完全に移動するようにシフトし、今度はディスプレイ110、114の少なくとも1つに次のウィンドウ/デスクトップWが表示される。より正確には、デバイス100が閉状態にある場合は、現時点で表示されているウィンドウ/デスクトップをディスプレイ外に移動させる動作、及び、ウィンドウ/デスクトップWを表示する動作は、同じディスプレイ110、114上で行われる。あるいは、デバイス100が開状態にある場合は、現時点で表示されているウィンドウ/デスクトップをディスプレイ外に移動させる動作、及び、ウィンドウ/デスクトップWを表示する動作は、異なるディスプレイ110、114上で行われる。その上、両ディスプレイ110、114がアクティブ状態(デバイス100が開状態)の場合、ディスプレイ110、114のそれぞれに表示されている異なるウィンドウ/デスクトップがあると仮定すると、第1のウィンドウ/デスクトップがディスプレイ110、114外に完全にシフトするにつれて、第2の表示されたウィンドウ/デスクトップはディスプレイへ、第1のウィンドウ/デスクトップがあったディスプレイへシフトし、次のウィンドウ/デスクトップWは第2のウィンドウ/デスクトップが表示されていたディスプレイ110、114上に表示される。あるいは、次のウィンドウ/デスクトップがないことが工程1108において決定されれば(すなわち、現時点で表示されているウィンドウ/デスクトップは、ウィンドウスタックの最上部またはウィンドウスタックの最下部である)、工程1116を実行し、工程1116では、本実施形態では、工程1112のものと同様に、現時点で表示されているウィンドウ/デスクトップをディスプレイ110または114外にシフトすることによって、ウィンドウスタックの反対端のウィンドウ/デスクトップが表示される。具体的には、デバイス100が2つのウィンドウ/デスクトップが表示される(ディスプレイごとに1つずつ)開状態にある場合、現時点で表示されているがディスプレイ110、114外にシフトされていないウィンドウ/デスクトップは、他のディスプレイにシフトされる。
【0135】
工程1112または1116のどれを実行するかにかかわらず、工程1120では、ウィンドウスタックのウィンドウ/デスクトップを通じて引き続きナビゲートするため、ジェスチャ捕捉エリア120または124で別のユーザジェスチャが検出されるかどうかに関して、MDM524で決定する。それに応じて、そのような追加のユーザジェスチャが検出されれば、工程1108を再び実行する。あるいは、ジェスチャ捕捉エリア120、124で追加のウィンドウスタックナビゲーションジェスチャが検出されなければ(例えば、デバイス100が代わりに開かれているかもしくは閉じている、または、異なるユーザ入力がジェスチャ捕捉エリアの1つに提供されるか、または、ユーザ入力がディスプレイ110、114の1つに提供される)、ウィンドウスタックのナビゲーションを停止する。ユーザが
図11のウィンドウスタックナビゲーションのプロセスを介して、表示されているウィンドウ/デスクトップの1つに入力を提供しない限り、そのウィンドウ/デスクトップのウィンドウスタックの順序は変わらなかったため、例えば、デバイス100の電源を切ってから入れ直した場合、アクティブディスプレイ110または114上に示されるウィンドウ/デスクトップは、ウィンドウスタックの最上部のウィンドウ/デスクトップであることに留意されたい。
【0136】
示されるウィンドウ/デスクトップのスタック内の順番を変化させること無く、ウィンドウスタックをナビゲートするためのユーザジェスチャに関連して、本開示の例示的なシステム及び方法について説明してきた。しかし、本開示を不必要に曖昧にすることを避けるため、前の記述では多くの公知の構造及びデバイスを省略する。この省略は、特許請求の範囲を限定するものと解釈してはならない。具体的な詳細は、本開示の理解を与えるために記載する。しかし、本開示は、本明細書に記載される具体的な詳細の域を超えるさまざまな方法で実施できることを理解されたい。
【0137】
その上、本明細書に示される例示的な態様、実施形態及び/または構成は、並置されるシステムのさまざまなコンポーネントを示すが、システムのあるコンポーネントは、LAN及び/またはインターネットなどの分散型ネットワークの遠方部に、または、専用システム内で遠隔設置することができる。したがって、システムのコンポーネントを1つまたは複数のデバイスに組み合わせることも、アナログ及び/もしくはデジタルの電気通信ネットワーク、パケット交換ネットワーク、または、回路交換ネットワークなどの分散型ネットワークの特定のノード上に並置することもできることを理解されたい。前の記述から、演算効率のため、システムのコンポーネントは、システムのオペレーションに影響を及ぼすことなく、コンポーネントの分散型ネットワーク内のいずれの位置にも配置できることが理解されよう。例えば、さまざまなコンポーネントは、PBX及びメディアサーバ、ゲートウェイなどのスイッチに、1つもしくは複数の通信デバイスに、1つもしくは複数のユーザの構内で、または、それらのいくつかの組合せで配置することができる。同様に、システムの1つまたは複数の機能部分は、電気通信デバイスと関連コンピューティングデバイスとの間で分散させることが可能である。
【0138】
その上、要素を接続するさまざまなリンクは、有線リンクでも無線リンクでも、その任意の組合せでも、接続された要素への及び接続された要素からのデータの供給及び/または通信が可能な他の任意の公知のまたは後に開発された要素でもあり得ることを理解されたい。これらの有線または無線リンクは、保護されたリンクでもあり得、暗号化された情報を通信できる場合もある。リンクとして使用される伝送媒体は、例えば、同軸ケーブル、銅線及び光ファイバを含む任意の適切な電気信号のキャリアであり得、電波及び赤外線データ通信中に生成されるものなどの音波または光波の形をとることができる。
【0139】
また、イベントの特定のシーケンスとの関連でフローチャートについて論じ示してきたが、開示される実施形態、構成及び態様のオペレーションに実質的に影響を及ぼすことなく、このシーケンスに対する変更、追加及び省略が起こり得ることを理解されたい。
【0140】
本開示の多くの変形形態及び変更形態を使用することができる。他のものを提供することなく、本開示のいくつかの特徴を提供することも可能であろう。
さらなる別の実施形態では、本開示のシステム及び方法は、専用コンピュータ、プログラムされたマイクロプロセッサもしくはマイクロコントローラ及び周辺集積回路素子、ASICもしくは他の集積回路、デジタル信号プロセッサ、個別素子回路などの配線電子もしくは論理回路、PLD、PLA、FPGA、PALなどのプログラム可能論理デバイスもしくはゲートアレイ、専用コンピュータ、任意の同等な手段、または、同様のものと併せて実施することができる。一般に、本明細書に示される方法論の実施が可能な任意のデバイスまたは手段を使用して、本開示のさまざまな態様を実施することができる。開示される実施形態、構成及び態様に使用できる例示的なハードウェアは、コンピュータ、携帯用デバイス、電話(例えば、携帯電話、インターネット可能な、デジタル、アナログ、ハイブリッド及び他のもの)、及び、当技術分野で知られている他のハードウェアを含む。これらのデバイスのいくつかは、プロセッサ(例えば、単一または複数のマイクロプロセッサ)、メモリ、不揮発性記憶装置、入力デバイス及び出力デバイスを含む。その上、これらに限定されないが、分散処理もしくはコンポーネント/オブジェクト分散処理、並列処理、または、仮想マシン処理を含む代替のソフトウェア実装形態は、本明細書に記載される方法を実施するよう構築することもできる。
【0141】
さらなる別の実施形態では、開示される方法は、さまざまなコンピュータまたはワークステーションプラットフォームで使用することができるポータブルソースコードを提供するオブジェクトまたはオブジェクト指向ソフトウェア開発環境を使用するソフトウェアと併せて容易に実施することができる。あるいは、開示されるシステムは、標準論理回路またはVLSI設計を使用してハードウェアで部分的または完全に実装することができる。本開示に従ってシステムの実装にソフトウェアまたはハードウェアを使用するかどうかは、システムの速度及び/または効率要件、特定の機能、ならびに、利用する特定のソフトウェアまたはハードウェアシステムまたはマイクロプロセッサまたはマイクロコンピュータシステムに依存する。
【0142】
さらなる別の実施形態では、開示される方法は、記憶媒体に格納することができ、コントローラ及びメモリと協働してプログラムされた汎用コンピュータ、専用コンピュータ、マイクロプロセッサ及び同様のもの上で実行されるソフトウェアで部分的に実施することができる。これらの例では、本開示のシステム及び方法は、アプレット、ジャバ(JAVA)(登録商標)またはCGIスクリプトなどのパーソナルコンピュータに組み込まれたプログラムとして、サーバまたはコンピュータワークステーション上に常駐するリソースとして、専用測定システム、システムコンポーネントまたは同様のものに組み込まれたルーチンとして実施することができる。また、システムは、ソフトウェア及び/またはハードウェアシステムにシステム及び/または方法を物理的に組み込むことによっても実装することができる。
【0143】
本開示は、特定の規格及びプロトコルを参照して、態様、実施形態及び/または構成で実装されるコンポーネント及び機能について説明するが、態様、実施形態及び/または構成は、そのような規格及びプロトコルに制限されない。本明細書で言及されない他の同様の規格及びプロトコルも存在し、本開示に含まれるものと考えられる。その上、本明細書で言及される規格及びプロトコルならびに本明細書で言及されない他の同様の規格及びプロトコルは、本質的に同じ機能を有するより速いまたはより効果的な均等物に定期的に取って代わられる。同じ機能を有するそのような置換規格及びプロトコルは、本開示に含まれる均等物と考えられる。
【0144】
さまざまな態様、実施形態及び/または構成での本開示は、本明細書に描写及び記載されるように実質的にコンポーネント、方法、プロセス、システム及び/または装置を含み、さまざまな態様、実施形態、構成実施形態、サブコンビネーション及び/またはそのサブセットを含む。当業者であれば、本開示を理解した後で、開示される態様、実施形態及び/または構成をどのように作成し使用するか理解されよう。さまざまな態様、実施形態及び/または構成での本開示は、本明細書に描写及び/または記載されていないアイテムなしで、または、本明細書のさまざまな態様、実施形態及び/または構成で、デバイス及びプロセスを提供することを含み、例えば、性能を向上させ、容易に実装を実現し、及び/または、実装コストを削減するために、前のデバイスまたはプロセスで使用された可能性があるようなアイテムがない場合も含む。
【0145】
前述の論考は、例示と説明を目的として提示してきた。前述は、本明細書に開示される1つまたは複数の形態に本開示を制限することを意図しない。前述の発明を実施するための形態では、例えば、本開示を合理化する目的で、1つまたは複数の態様、実施形態及び/または構成で、本開示のさまざまな特徴が一緒に分類される。本開示の態様、実施形態及び/または構成の特徴は、上記で論じられたもの以外の代替の態様、実施形態及び/または構成で組み合わせることができる。本開示のこの方法は、請求項が各請求項に明確に列挙されているものより多くの特徴を要求するという意図を反映するものとして解釈してはならない。むしろ、以下の請求項が反映するように、発明の態様は、単一の前述の開示される態様、実施形態及び/または構成のすべての特徴よりも少ないことにある。したがって、以下の請求項は、本明細書によって、この発明を実施するための形態に組み込まれ、各請求項は、本開示の別々の好ましい実施形態としてそれ自体を主張する。
【0146】
その上、説明には1つまたは複数の態様、実施形態及び/または構成の説明、ならびに、ある変形形態及び変更形態が含まれるが、例えば、本開示を理解した後で、当業者の技能及び知識の範囲内となり得るように、他の変形形態、組合せ及び変更形態は本開示の範囲内である。許可される範囲の代替の態様、実施形態及び/または構成を含む権利を得ることを意図し、そのような代替の、交換可能な及び/または均等な構造、機能、範囲または工程が本明細書で開示されるか否かにかかわらず、いかなる特許可能な対象物も公的に献納することを意図することなく、特許請求されたものに対する代替の、交換可能な及び/または均等な構造、機能、範囲または工程を含む。