JP2017526057A - アプリケーションウィンドウの領域ベースのサイズ調節および適所配置 - Google Patents
アプリケーションウィンドウの領域ベースのサイズ調節および適所配置 Download PDFInfo
- Publication number
- JP2017526057A JP2017526057A JP2017503480A JP2017503480A JP2017526057A JP 2017526057 A JP2017526057 A JP 2017526057A JP 2017503480 A JP2017503480 A JP 2017503480A JP 2017503480 A JP2017503480 A JP 2017503480A JP 2017526057 A JP2017526057 A JP 2017526057A
- Authority
- JP
- Japan
- Prior art keywords
- application
- application window
- window
- area
- predetermined area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 78
- 230000004044 response Effects 0.000 claims description 38
- 230000033001 locomotion Effects 0.000 claims description 28
- 238000004513 sizing Methods 0.000 abstract description 23
- 230000000007 visual effect Effects 0.000 description 24
- 230000000875 corresponding effect Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000000926 separation method Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04803—Split screen, i.e. subdividing the display area or the window area into separate subareas
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
- Document Processing Apparatus (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本明細書は、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術および装置を記載する。いくつかの実施形態において、これらの技術および装置によれば、アプリケーションウィンドウのサイズ調節および適所配置によって、アプリケーションウィンドウの最適なレイアウトを提供することができる。
Description
[0001] この背景は、本開示の背景状況を大略提示することを目的としたものである。本明細書において別段の指示がない限り、この背景に記載の内容は、明示的にも暗示的にも、以下の本開示または特許請求の範囲の先行技術とは認められない。
[0002] 従来のオペレーティングシステムにおいて、ユーザは、ウィンドウによって複数のコンピュータアプリケーションを見ることができる。一般的に、これらのウィンドウはそれぞれ、いずれを最上位とするかの選択またはワークスペースおよび他のウィンドウに対する当該ウィンドウの配置の移動、サイズ調節、あるいは管理を行うフレームまたはコントロールを具備する。ただし、これらのフレームまたはコントロールでは、選択中のウィンドウの移動またはサイズ調節のみが可能であることが多いため、ウィンドウ間の意図せぬ遮蔽および重畳を生じる可能性がある。また、複数のウィンドウの移動またはサイズ調節において、ユーザは、各ウィンドウを望み通りに反復して移動またはサイズ調節するため、一連の冗長なタスクを行うことが必要となる場合が多い。このため、複数のウィンドウのレイアウトをこのように管理するのは、過度に複雑で時間が掛かり、ユーザにとって厄介なこととなり得る。
[0003] 本明細書は、マルチアプリケーション環境においてアプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術および装置を記載する。本明細書に記載のマルチアプリケーション環境は、サイズ調節、適所配置、またはレイヤ化によって最適なレイアウトを提供可能な1つまたは複数のアプリケーションウィンドウを表示する。いくつかの実施形態において、これらの技術および装置は、別のアプリケーションウィンドウの縁部に基づいて、アプリケーションウィンドウのサイズまたは位置を決定することができる。また、いくつかの実施形態において、これらの技術および装置は、マルチアプリケーション環境の領域の選択に基づき、所定エリアに合わせてアプリケーションウィンドウのサイズを調節することができる。さらに、いくつかの実施形態では、複数のアプリケーションウィンドウのサイズ調節または適所配置を同時に行うことができるジョイントディバイダまたはジョイントコーナーコントロールが有効である。さらに、いくつかの実施形態では、マルチアプリケーション環境の有効領域を識別するとともに、有効領域を介して表示するアプリケーションウィンドウを選択可能である。
[0004] この概要は、簡単な概念を紹介するものであり、以下の詳細な説明においてさらに詳述する。この概要は、特許請求の範囲に係る主題の本質的な特徴を識別することを意図したものでもなければ、特許請求の範囲に係る主題の範囲の決定に用いることを意図したものでもない。本明細書において、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術および/または装置は、文脈上許される範囲で、独立または共通して「技術」とも称するが、本技術は、本明細書に記載の他の態様を含む場合もあるし、本明細書に記載の他の態様を表す場合もある。
[0005] マルチアプリケーション環境を可能にする実施形態については、以下の図面を参照して説明する。すべての図面において、同様の特徴および構成要素を表すのに同じ番号を使用している。
概略
[0006] 本明細書は、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術および装置を記載する。これらの装置および技術は、マルチアプリケーション環境のアプリケーションウィンドウの好都合かつ効率的な適所配置またはサイズ調節によって、アプリケーションウィンドウの最適なレイアウトを提供可能であってもよい。いくつかの実施形態において、これらの技術および装置は、別のアプリケーションウィンドウの縁部に基づいて、アプリケーションウィンドウのサイズまたは位置を決定することができる。また、いくつかの実施形態において、これらの技術および装置は、マルチアプリケーション環境の領域の選択に基づき、所定エリアに合わせてアプリケーションウィンドウのサイズを調節することができる。さらに、いくつかの実施形態では、複数のアプリケーションウィンドウのサイズ調節または適所配置を同時に行うことができるジョイントディバイダまたはジョイントコーナーコントロールが有効である。さらに、いくつかの実施形態では、マルチアプリケーション環境の有効領域を識別するとともに、有効領域を介して表示するアプリケーションウィンドウを選択可能である。いくつかの実施形態においては、マルチアプリケーション環境の領域または所定エリアを通して、アプリケーションウィンドウ管理の上記および他の形態が可能である。これらは、本技術によってアプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする多くの方法の一例に過ぎず、その他については以下に説明する。
[0006] 本明細書は、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術および装置を記載する。これらの装置および技術は、マルチアプリケーション環境のアプリケーションウィンドウの好都合かつ効率的な適所配置またはサイズ調節によって、アプリケーションウィンドウの最適なレイアウトを提供可能であってもよい。いくつかの実施形態において、これらの技術および装置は、別のアプリケーションウィンドウの縁部に基づいて、アプリケーションウィンドウのサイズまたは位置を決定することができる。また、いくつかの実施形態において、これらの技術および装置は、マルチアプリケーション環境の領域の選択に基づき、所定エリアに合わせてアプリケーションウィンドウのサイズを調節することができる。さらに、いくつかの実施形態では、複数のアプリケーションウィンドウのサイズ調節または適所配置を同時に行うことができるジョイントディバイダまたはジョイントコーナーコントロールが有効である。さらに、いくつかの実施形態では、マルチアプリケーション環境の有効領域を識別するとともに、有効領域を介して表示するアプリケーションウィンドウを選択可能である。いくつかの実施形態においては、マルチアプリケーション環境の領域または所定エリアを通して、アプリケーションウィンドウ管理の上記および他の形態が可能である。これらは、本技術によってアプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする多くの方法の一例に過ぎず、その他については以下に説明する。
例示的なシステム
[0007] 図1は、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術を具現化できる例示的なシステム100を示している。システム100は、コンピュータ機器102を具備しており、スマートフォンコンピュータ104、タブレットコンピュータ機器106、ラップトップコンピュータ108、およびゲーム機110という4つの例を示しているが、セットトップボックス、サーバ、およびネットブック等、他のコンピュータ機器およびシステムが用いられるようになっていてもよい。
[0007] 図1は、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術を具現化できる例示的なシステム100を示している。システム100は、コンピュータ機器102を具備しており、スマートフォンコンピュータ104、タブレットコンピュータ機器106、ラップトップコンピュータ108、およびゲーム機110という4つの例を示しているが、セットトップボックス、サーバ、およびネットブック等、他のコンピュータ機器およびシステムが用いられるようになっていてもよい。
[0008] コンピュータ機器102は、コンピュータプロセッサ112およびコンピュータ可読記憶媒体114(媒体114)を具備する。媒体114は、オペレーティングシステム116、マルチアプリケーション環境モジュール118、システムインターフェースモジュール120、入力モジュール122、それぞれが1つまたは複数のアプリケーションユーザインターフェース126(アプリケーションUI126)を有するアプリケーション124、アプリケーションキュー130を包含または利用可能とするアプリケーションマネージャ128、およびウィンドウマネージャ132を具備する。
[0009] また、コンピュータ機器102は、1つまたは複数のディスプレイ134および入力機構136を包含または利用可能とする。図1は、コンピュータ機器102と分離または一体化できる4つの例示的なディスプレイを示している。入力機構142としては、一例として、タッチ式センサおよび運動追跡センサ(たとえば、カメラ式)等のジェスチャ感応センサおよび機器のほか、マウス(独立型またはキーボードと一体)、スタイラス、タッチパッド、加速度計、および音声認識ソフトウェアを備えたマイクが挙げられる。入力機構136は、ディスプレイ134と分離または一体であってもよく、一体の例としては、タッチ感応または運動感応センサが組み込まれたジェスチャ感応ディスプレイが挙げられる。
[0010] オペレーティングシステム116は、コンピュータ機器102のリソースを管理し、64ビット、32ビット、縮小命令セットコンピュータ(RISC)、複数命令セットコンピュータ(CISC)等の任意適当な命令形式を用いて実装されていてもよい。場合により、オペレーティングシステム116は、仮想化によって命令形式が異なるモジュールまたはアプリケーションを実行可能であってもよい。オペレーティングシステム116によって、マルチアプリケーション環境モジュール118およびアプリケーション124等、コンピュータ機器102の他のモジュールは、コンピュータ機器102のリソースを利用することができる。
[0011] マルチアプリケーション環境モジュール118は、各アプリケーションウィンドウを介して表示されたアプリケーションUI126によって、アプリケーション124のうちの1つまたは複数に対するユーザの閲覧および相互作用が可能なマルチアプリケーション環境を提供する。場合により、マルチアプリケーション環境は、重畳ウィンドウ(たとえば、ウィンドウのz順序付け)または非重畳ウィンドウの位置、サイズ、および/または前後順序付け(「配置」と総称する)の管理または操作を可能にする重畳ウィンドウイング環境またはワークスペースである。ワークスペースにおける各アプリケーションウィンドウの順序付けすなわち「深さ」は、マルチアプリケーション環境モジュール118のzスタックを介して維持可能である。通常、最上位アプリケーションまたは非遮蔽アプリケーションウィンドウは、zスタックの一番上に存在する。非最上位または遮蔽アプリケーションウィンドウ等の他のアプリケーションウィンドウは、zスタックのより深い位置に存在する。これらの非最上位アプリケーションウィンドウは、zスタック内のそれぞれの位置に基づいて、互いに重なっていてもよいし、互いを遮蔽していてもよい。
[0012] マルチアプリケーション環境モジュール118は、フレームを有するアプリケーションウィンドウによって、アプリケーションUI126を表示するようにしてもよい。これらのフレームは、アプリケーションと相互作用するためのコントロールおよび/またはユーザによるウィンドウの適所配置およびサイズ調節を可能にするコントロールを提供するようにしてもよい。この代替または追加として、マルチアプリケーション環境モジュール118は、ウィンドウフレームがほとんどまたは全くないアプリケーションウィンドウによるアプリケーションUI126の表示および/または視覚的コントロール(たとえば、ウィンドウフレーム上またはウィンドウを覆うコンテンツ中の常在コントロール)の表示を伴わないアプリケーションUI126の表示を行うようにしてもよい。
[0013] マルチアプリケーション環境モジュール118により有効となったマルチアプリケーション環境は、ウィンドウベースのデスクトップ環境を用いることなくホスティングおよび/または可視化し得るものの、これらは必須ではない。このため、場合により、マルチアプリケーション環境モジュール118は、マルチアプリケーション環境を没入型環境として表示するとともに、デスクトップ状の表示(たとえば、タスクバー)の使用を除外する。さらに、いくつかの実施形態において、このマルチアプリケーション環境は、閉止不可能な点またはアンインストール不可能な点でオペレーティングシステムに類似している。場合により、必須ではないものの、このマルチアプリケーション環境によれば、当該マルチアプリケーション環境内のアプリケーションによって、ディスプレイの画素のすべてまたは略すべてを使用可能である。
[0014] システムインターフェースモジュール120は、ほんの一例として、アプリケーション起動インターフェース、アプリケーション管理ユーザインターフェース(アプリケーション管理UI)、スタートメニュー、コントロールパネル、またはシステムツールもしくはオプションのメニュー等、オペレーティングシステム116との相互作用を可能にする1つまたは複数のインターフェースを提供する。入力モジュール122は、アプリケーションウィンドウ、入力機構136、またはマルチアプリケーション環境の他のコントロールおよびアフォーダンスを通した入力を受け付ける。
[0015] アプリケーション124としては、生産性アプリケーション、ウェブブラウザ、メディアビューア、ナビゲーションアプリケーション、マルチメディア編集アプリケーション等、任意適当な種類のアプリケーションが挙げられる。オペレーティングシステム116またはマルチアプリケーション環境モジュール118は、さまざまな種類または命令セットのアプリケーションをネイティブまたは仮想化によりサポートしていてもよい。たとえば、マルチアプリケーション環境モジュール118は、32ビット、64ビット、ランタイム環境(たとえば、Java(登録商標)またはSilverlight)、プラグイン(たとえば、Flash)、RISC、CISC、ランタイム言語等、さまざまな種類または命令セットの複数のアプリケーション124を同時に表示するようにしてもよい。
[0016] 各アプリケーション124は、当該アプリケーションのコンテンツに対する閲覧または相互作用を可能にする1つまたは複数のアプリケーションUI126を具備する。アプリケーションUI126は、アスペクト比、最大サイズ、最小サイズ、位置、優位性、ディスプレイ配向等、アプリケーション124を表示するための所定の特性または選好(たとえば、デフォルト値または設定)を含んでいてもよい。少なくともいくつかの実施形態においては、アプリケーション124と関連付けられたアプリケーションプログラミングインターフェース(API)によって、アプリケーション124または各アプリケーションUI126の特性または選好を利用可能である。
[0017] アプリケーションマネージャ128によれば、起動、切り替え、およびアクティブなアプリケーションの追跡等、アプリケーション124の管理が可能である。場合により、アプリケーションマネージャ128は、互いに近接して頻繁に起動、適所配置、または使用されるアプリケーション等、アプリケーション間の関係を設定および維持することができる。また、アプリケーションマネージャ128は、アクティブなアプリケーション、最小化されたアプリケーション、または過去に相互作用したアプリケーションを含み得るアプリケーションキュー130の利用または維持が可能であってもよい。アプリケーションキュー130のアプリケーションは、最新使用、最頻使用、アルファベット順、アプリケーションの関連付け、またはアプリケーションのグループ化等、任意適当に体系化されていてもよい。
[0018] 少なくともいくつかの実施形態において、ウィンドウマネージャ132は、アプリケーションウィンドウの適所配置またはサイズ調節によって、最適なレイアウトのアプリケーションウィンドウをマルチアプリケーション環境に提供する技術を可能にする。これらアプリケーションウィンドウの技術およびレイアウトは、一部がマルチアプリケーション環境の領域に基づいて表示されるものであり、その例を以下に示すが、これらは網羅的でもなければ、本明細書に記載の技術を制限するものでもない。
[0019] オペレーティングシステム116、マルチアプリケーション環境モジュール118、システムインターフェースモジュール120、入力モジュール122、アプリケーション124、アプリケーションマネージャ128、およびウィンドウマネージャ132の一部または全部は、互いに別個に実装されていてもよいし、任意適当な形態で組み合わせまたは統合されていてもよい。
例示的な方法
[0020] 例示的な方法300、500、900、および1100は、別のアプリケーションウィンドウまたはマルチアプリケーション環境の領域に基づいてアプリケーションウィンドウのサイズ調節または適所配置に対処し、例示的な方法1400および1800は、ジョイントディバイダの有効化によるアプリケーションウィンドウのサイズ調節または適所配置に対処し、例示的な方法2400および2600は、マルチアプリケーション環境の有効エリアにおけるアプリケーションウィンドウの表示に対処する。
[0020] 例示的な方法300、500、900、および1100は、別のアプリケーションウィンドウまたはマルチアプリケーション環境の領域に基づいてアプリケーションウィンドウのサイズ調節または適所配置に対処し、例示的な方法1400および1800は、ジョイントディバイダの有効化によるアプリケーションウィンドウのサイズ調節または適所配置に対処し、例示的な方法2400および2600は、マルチアプリケーション環境の有効エリアにおけるアプリケーションウィンドウの表示に対処する。
[0021] 本明細書に記載の方法は、全体的または部分的に、互いに別個に用いられるようになっていてもよいし、互いに組み合わせて用いられるようになっていてもよい。これらの方法は、1つまたは複数のエンティティまたはモジュール等によって実行される演算(または、行為)の集合として示しており、必ずしも、演算を実行する図示の順序に限定されない。たとえば、本技術は、マルチアプリケーション環境のある領域にアプリケーションウィンドウを表示するとともに、マルチアプリケーション環境の別の領域に別のアプリケーションウィンドウを自動的に表示するようにしてもよい。また、本技術は、マルチアプリケーション環境の選択領域に基づいてアプリケーションウィンドウのサイズ調節および適所配置を行い、サイズ調節したアプリケーションウィンドウを選択領域に表示した後、アプリケーションウィンドウおよび当該アプリケーションウィンドウに接する別のアプリケーションウィンドウを同時にサイズ変更可能なジョイントディバイダを設定するようにしてもよい。さらに、本技術は、マルチアプリケーション環境のある領域にアプリケーションウィンドウを表示した後、マルチアプリケーション環境の1つまたは複数の有効領域を満たすように選択可能な他のアプリケーションウィンドウのプロンプトを表示するようにしてもよい。
[0022] 図2は、本明細書に記載の技術を実行できる例示的な動作環境200を示している。この特定例においては、タブレットコンピュータ機器106がマルチアプリケーション環境モジュール118を介して、ディスプレイ134によりマルチアプリケーション環境202を表示する。ここで、マルチアプリケーション環境202は、ワークスペースとも称する場合があり、アプリケーションウィンドウ204およびアプリケーションウィンドウ206を具備しているが、それぞれ、アプリケーションウィンドウディバイダ208で示すように、マルチアプリケーション環境202の略半分を占めている。
[0023] 上述の通り、アプリケーションウィンドウは、そのサイズ調節、適所配置、最小化、閉止等が可能なコントロールを含んでいてもよい(たとえば、アプリケーションウィンドウ204)。あるいは、アプリケーションウィンドウは、コントロールを含まず、アプリケーションのユーザインターフェースまたはコンテンツによりマルチアプリケーション環境202の領域またはエリアを完全に占有可能であってもよい(たとえば、アプリケーションウィンドウ206)。コントロールのないアプリケーションウィンドウであっても、その縁部またはコンテンツを利用することにより、サイズ調節、適所配置、あるいは操作が可能であることに留意するものとする。
[0024] 上記の代替または追加として、マルチアプリケーション環境202は、仮想的あるいは非仮想的なデスクトップとして実装されていてもよく、コントロールエリアを具備しており、これをアプリケーション管理UI210またはスタートメニュー(図示せず)として示している。たとえば、マルチアプリケーション環境202は、デスクトップとして実装されている場合、アプリケーションウィンドウを個別に移動、サイズ調節、または最上位ウィンドウとして選択可能(たとえば、zスタックの一番上に移動可能)なウィンドウベースのワークスペースを提供するようにしてもよい。
[0025] また、マルチアプリケーション環境202は、異なるアプリケーションウィンドウ集合を表示または利用可能な1つまたは複数の仮想デスクトップを提供するようにしてもよい。一例として、ユーザは、ある仮想デスクトップをワークベースまたは生産性アプリケーションウィンドウで構成し、別の仮想デスクトップを媒体消費アプリケーションウィンドウで構成するようにしてもよい。こうすることにより、ユーザは、2つの仮想デスクトップ間の切り替えまたは変更によって、2つの異なるアプリケーションウィンドウ集合と相互作用することができる。場合により、ユーザは、別の仮想デスクトップから選択中の仮想デスクトップにアプリケーションウィンドウを切り替えることによって、仮想デスクトップ間の変更の必要性を排除するようにしてもよい。少なくともいくつかの実施形態において、マルチアプリケーション環境202またはその一部は、ディスプレイの画面または可視エリアを完全に占有する。このため、マルチアプリケーション環境202の縁部は、ディスプレイの画面または可視エリアの各縁部と一致する場合がある。
[0026] アプリケーション管理UI210によれば、オペレーティングシステム116、システムインターフェースモジュール120、またはコンピュータ機器102の他のアプリケーション124の特徴および機能を利用可能である。たとえば、アプリケーション管理UI210からアプリケーションウィンドウを起動または切り替え可能である。本明細書の技術を用いることにより、マルチアプリケーション環境202において、アプリケーションウィンドウの効率的な追加、切り替え、適所配置、サイズ調節、あるいは操作を行うことにより、アプリケーションウィンドウの最適なレイアウトを提供することができる。
アプリケーションウィンドウの適応的なサイズ調節および適所配置
[0027] 図3は、別のアプリケーションウィンドウに基づいてアプリケーションウィンドウのサイズ調節または適所配置を行う方法300を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0027] 図3は、別のアプリケーションウィンドウに基づいてアプリケーションウィンドウのサイズ調節または適所配置を行う方法300を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0028] 302においては、マルチアプリケーション環境の領域の選択を受け付ける。この領域は、ホットキー組み合わせまたはアプリケーションウィンドウを介して受けた方向性入力(たとえば、ウィンドウのドラッグ)等、任意適当な入力によって選択可能である。場合により、領域の選択は、マルチアプリケーション環境内で追加、切り替え、または移動させるアプリケーションウィンドウを介して受け付ける。この領域には、画面の縁部に沿った部分または画面の中央の部分等、マルチアプリケーション環境の任意適当な部分またはエリアを含んでいてもよい。場合により、ユーザは、マルチアプリケーション環境内の特定のエリア(たとえば、画面エリアの部分または一片)をユーザ規定領域として規定または構成するようにしてもよい。
[0029] 上記領域は、固定されていてもよいし、予め規定されていてもよいし、ディスプレイの配向または受け付けた入力の種類によってサイズまたは位置を変更する領域のように動的であってもよい。場合により、所定サイズまたは所定位置にて領域をアプリケーションウィンドウで満たす「固定」動作等、領域が対応する動作と関連付けられていてもよい。これらの所定サイズまたは所定位置は、マルチアプリケーション環境の所定エリアに対応していてもよく、2分の1、4分の1、3分の1、およびこれらの任意の組み合わせ等、ワークスペースの水平方向および/または垂直方向の四分部または一部を含んでいてもよい。この代替または追加として、マルチアプリケーション環境の所定エリアは、ワークスペースの分割またはzスタック内のアプリケーションウィンドウのサイズ、位置、もしくは場所の所定エリアとしての確保等、ユーザにより規定されていてもよい。
[0030] 一例として、さまざまな領域レイアウトをそれぞれ示す例示的なワークスペース400、402、および404を示した図4について考える。ここで、ワークスペース400のアプリケーションウィンドウ406、408、410、および412は最初、ワークスペースの四分エリアに固定されている。アプリケーションウィンドウは、ワークスペースまたは画面の2つ以上の隣接縁部に接触または当接している場合、固定と考えられる。同様に、アプリケーションウィンドウ414および416は最初、ワークスペース402の二分エリアに固定されている。
[0031] 304においては、選択領域に隣接する別のアプリケーションウィンドウの縁部を識別する。この別のアプリケーションウィンドウは、マルチアプリケーション環境の隣接領域を占有していてもよい。場合により、この別のアプリケーションウィンドウの縁部は、選択領域に優先する。この代替または追加として、非隣接アプリケーションウィンドウの縁部が(たとえば、優先または非優先として)識別されるようになっていてもよい。
[0032] たとえば、隅部424を起点とする軸に沿ったワークスペース404の領域418、領域420、および領域422を考える。ここでは、領域418および領域420が隅部424に隣接しており、領域422は隅部424に隣接していない。さらに、領域の縁部は、個別の軸に沿って優先または非優先に分類されていてもよい。隅部424からX軸に沿っては、縁部426および縁部428が優先であり、縁部430は優先ではない。同様に、隅部424からY軸に沿っては、縁部432および縁部434が優先であり、縁部436は優先ではない。
[0033] ワークスペース400に関連して、ウィンドウ438がワークスペース400の隅部領域にドラッグされたものと仮定する。ここで、ウィンドウマネージャ132は、アプリケーションウィンドウ438が移動している領域に隣接するアプリケーションウィンドウ410の隅部を識別する。また、ワークスペース402に関連して、アプリケーションウィンドウ440がワークスペース402の側部領域にドラッグされている。ここで、ウィンドウマネージャ132は、アプリケーションウィンドウ440が移動している領域に隣接するアプリケーションウィンドウ416の隅部を識別する。
[0034] 306においては、別のアプリケーションウィンドウの縁部に基づいて、アプリケーションウィンドウのサイズまたは位置を決定する。アプリケーションウィンドウのサイズまたは位置は、当該アプリケーションウィンドウが別のアプリケーションウィンドウの縁部までの領域を満たすように決定してもよい。場合により、サイズまたは位置は、アプリケーションウィンドウの縁部が隣接アプリケーションウィンドウの優先縁部と一致するように決定する。場合により、アプリケーションウィンドウおよび隣接アプリケーションウィンドウは、幅または高さが同じであってもよい。この代替または追加として、決定したサイズまたは位置は、ワークスペースの四分エリアまたは二分エリア等、マルチアプリケーション環境の所定エリアに対応していてもよい。
[0035] 例示的なワークスペース400を参照して、ウィンドウマネージャは、アプリケーションウィンドウ438の縁部がアプリケーションウィンドウ410およびアプリケーションウィンドウ408の縁部と一致するようにアプリケーションウィンドウ438のサイズを決定する。また、ワークスペース402に関連して、ウィンドウマネージャは、アプリケーションウィンドウ440の縁部がアプリケーションウィンドウ416の縁部と一致するようにアプリケーションウィンドウ440のサイズを決定する。
[0036] 308においては、決定したサイズまたは決定した位置にて、マルチアプリケーション環境の選択領域にアプリケーションウィンドウを表示する。場合により、アプリケーションウィンドウは、選択領域を占有する別のアプリケーションウィンドウ上に表示する。このような場合、この別のアプリケーションウィンドウは、マルチアプリケーション環境の別の優位性レイヤ(たとえば、zスタックのより深く)へと格下げされるようになっていてもよい。この代替または追加として、アプリケーションウィンドウは、当該領域に固定されるようになっていてもよい。
[0037] ワークスペース400を参照した例の結論として、ウィンドウマネージャは、ワークスペース400の四分部にアプリケーションウィンドウ438を表示し、ワークスペース400のその他の固定ウィンドウに対してアプリケーションウィンドウ438を配置する。また、ワークスペース402に関連して、ウィンドウマネージャは、2分の1の固定アプリケーションウィンドウ414に対してアプリケーションウィンドウ440を配置する。
[0038] 図5は、マルチアプリケーション環境の他のアプリケーションウィンドウに基づいてアプリケーションウィンドウのサイズ調節および適所配置を行う方法500を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0039] 502においては、入力を受け付けて、マルチアプリケーション環境の領域におけるアプリケーションウィンドウの配置を開始する。アプリケーションウィンドウの配置は、マルチアプリケーション環境におけるアプリケーションウィンドウの追加、切り替え、または移動の入力に応答するようになっていてもよい。場合により、入力は、アプリケーションウィンドウまたはその視覚的表現がマルチアプリケーション環境の縁部に対してドラッグまたは移動されるジェスチャまたはエッジトリガ動作である。このような場合は、マルチアプリケーション環境の縁部に対するアプリケーションウィンドウの接触または移動によって、アプリケーションウィンドウの配置または他の変換を「起動」することができる。
[0040] 504においては、マルチアプリケーション環境の他のアプリケーションウィンドウのサイズおよび位置をそれぞれ決定する。場合により、これら他のアプリケーションウィンドウの各縁部は、領域に対する優先または非優先縁部として識別する。このような場合、これらの縁部はそれぞれ、垂直軸または水平軸等の軸ごとに識別可能である。他のアプリケーションの優先縁部を両軸(たとえば、2つの隣接アプリケーションウィンドウ)に沿って識別する場合は、水平軸の縁部を無視することができる。
[0041] 任意選択により、506においては、上記他のアプリケーションウィンドウの状態をそれぞれ決定する。マルチアプリケーション環境内で固定されていないアプリケーションウィンドウまたは他のウィンドウにより遮蔽されたアプリケーションウィンドウは、方法500の他の演算から無視することができる。この代替または追加として、最小化、最大化、または別のディスプレイを介して表示されたアプリケーションウィンドウについても、方法500の他の演算から無視することができる。こうすることにより、アプリケーションウィンドウのサイズ調節または適所配置によってアプリケーションウィンドウの最適なレイアウトを提供する場合、マルチアプリケーション環境の固定中のウィンドウまたは最上位のウィンドウを考慮する。場合によっては、他のアプリケーションウィンドウ(たとえば、画面上のアプリケーションウィンドウ)を記述する情報およびそれぞれの状態情報のデータ構造を生成または維持する。このデータ構造は、アプリケーションウィンドウのレイアウトの最適化に際して考慮するアプリケーションウィンドウを決定するのに利用または参考可能である。
[0042] 508においては、上記他のアプリケーションウィンドウそれぞれのサイズおよび位置に基づいて、アプリケーションウィンドウのサイズおよび位置を決定する。また、場合によっては、デフォルトのアスペクト比または最小サイズ等、アプリケーションウィンドウの特性または選好に基づいて、ウィンドウのサイズおよび位置を決定する。他の場合には、上記他のアプリケーションウィンドウの特性または選好を考慮することにより、当該他のアプリケーションウィンドウのうちの1つの最小サイズの維持等を行うようにしてもよい。
[0043] いくつかの実施形態において、アプリケーションウィンドウは、表示用に当該アプリケーションウィンドウを選択した領域に隣接する他のアプリケーションウィンドウと合致するようにサイズ調節および適所配置が行われる。たとえば、アプリケーションウィンドウは、隣接するアプリケーションウィンドウの優先縁部と合致するようにサイズ調節可能である。上記他のアプリケーションウィンドウのうちの2つが領域に隣接している場合、アプリケーションウィンドウは、垂直方向に隣接するウィンドウの両優先縁部に合うようにサイズ調節可能である。この一例を図6の例示的なワークスペース600に示しており、隅部領域606に隣接するアプリケーションウィンドウ602および604を具備する。ここでは、アプリケーションウィンドウ604と一致するようにアプリケーションウィンドウ608のサイズおよび位置が決定される。
[0044] あるいは、別のアプリケーションウィンドウが垂直方向に隣接していない場合は、水平方向の隣接ウィンドウに合うようにアプリケーションウィンドウをサイズ調節可能である。これは、例示的なワークスペース610により示しており、水平方向において二分領域614に隣接するアプリケーションウィンドウ612を具備する。ここでは、アプリケーションウィンドウ612の優先縁部と一致するようにアプリケーションウィンドウ616のサイズおよび位置が決定される。
[0045] さらに、隣接するアプリケーションウィンドウが領域に優先縁部を有していない場合は、隣接ウィンドウの非優先縁部と合致するようにアプリケーションウィンドウのサイズ調節および適所配置を行うことができる。これは、例示的なワークスペース618により示しており、隅部622に隣接するアプリケーションウィンドウ620を具備する。ここでは、アプリケーションウィンドウ620の非優先縁部と一致するようにアプリケーションウィンドウ624のサイズおよび位置が決定される。
[0046] また、別のアプリケーションウィンドウが領域に隣接していない場合、アプリケーションウィンドウは、非隣接領域の優先縁部に合うようにサイズ調節可能である。これは、例示的なワークスペース626により示しており、隅部630に隣接していないアプリケーションウィンドウ628を具備する。ここでは、アプリケーションウィンドウ628の優先縁部と一致するようにアプリケーションウィンドウ632のサイズおよび位置が決定される。
[0047] あるいは、他の縁部またはアプリケーションウィンドウが存在しない場合は、四分エリアまたは二分エリア等、マルチアプリケーション環境の所定エリアに合わせてアプリケーションウィンドウのサイズ調節および適所配置を行うことができる。これは、図7の例示的なワークスペース700および702に示しているが、隣接アプリケーションウィンドウまたは優先縁部を有するものは具備していない。ワークスペース700においては、アプリケーションウィンドウ704がワークスペースの2分の1に固定され、隅部706の反対に位置付けられている。このため、ワークスペース700の上側領域にアプリケーションウィンドウ708が二分固定されるようにサイズおよび位置が決定される。ワークスペース702においては、アプリケーションウィンドウ701の二分領域への移動に際して、他のアプリケーションウィンドウは存在しない。したがって、ワークスペース708の二分固定エリアにウィンドウ710が固定可能となるようにサイズおよび位置が決定される。
[0048] 任意選択により、510においては、上記他のアプリケーションウィンドウのうちの1つの他のアプリケーションウィンドウのサイズまたは位置をそれぞれ変更する。場合によっては、デフォルトのアスペクト比または最小サイズ等、上記他のアプリケーションウィンドウの特性または選好に基づいて、当該他のアプリケーションウィンドウのサイズまたは位置を決定する。上記他のアプリケーションウィンドウの変更には、四分エリアまたは二分エリア等、マルチアプリケーション環境の所定エリアに適合または適充するような上記他のアプリケーションウィンドウの移動またはサイズ調節を含んでいてもよい。
[0049] いくつかの実施形態において、上記は、アプリケーションウィンドウおよび別のアプリケーションウィンドウが同様にサイズ調節される場合等、アプリケーションウィンドウのスワッピングを可能にする場合に有効となり得る。この例を図7のワークスペース712および714に示しており、それぞれ、二分固定および四分固定エッジトリガ動作(トリガ)に応答してアプリケーションウィンドウのスワッピングが開始となる。ワークスペース712においては、アプリケーションウィンドウ718を介した二分固定エッジトリガ716の受け付けにより、アプリケーションウィンドウをワークスペース712の右側縁部まで移動させる。
[0050] ここでは、アプリケーションウィンドウ720および722のワークスペース712の左側縁部への再位置決めによって、アプリケーションウィンドウ718との位置スワッピングが可能となる。ワークスペース714においては、アプリケーションウィンドウ726を介した四分固定エッジトリガ724の受け付けにより、アプリケーションウィンドウをワークスペース714の上部左側隅部まで移動させる。ここでは、アプリケーションウィンドウ728のワークスペース714の下部左側隅部への再位置決めによって、アプリケーションウィンドウ726との位置スワッピングが可能となる。
[0051] アプリケーションウィンドウのスワッピングを開始するタイミングを決定する例示的なアルゴリズムは、アプリケーションウィンドウのうちの1つを動かす入力に基づく。移動と垂直なアプリケーションウィンドウの縁部構成要素が同一である場合は、アプリケーションウィンドウのスワッピングが可能である。言い換えると、X軸に沿ってアプリケーションウィンドウを動かす場合は、Y軸のアプリケーションウィンドウの縁部が一致している必要がある。斜め方向の移動の場合は、このアルゴリズムを各軸方向に1回ずつ、2回適用可能である。各軸に沿ったベクトルベースの移動は、マッピングにより移動をエッジトリガまたは他の方向性入力に戻すことによって、決定されるようになっていてもよい。
[0052] 512においては、決定したサイズおよび位置でアプリケーションウィンドウを表示することにより、ウィンドウの配置を完了する。場合により、アプリケーションウィンドウは、選択領域を占有する別のアプリケーションウィンドウ上に表示する。このような場合、この別のアプリケーションウィンドウは、マルチアプリケーション環境の別の優位性レイヤ(たとえば、zスタックのより深く)へと格下げされるようになっていてもよい。この代替または追加として、アプリケーションウィンドウは、マルチアプリケーション環境の四分エリアまたは二分エリアの占有等のため、所定サイズで領域に固定可能である。
[0053] さらに、方法300または500は、既存の固定ウィンドウまたは最大化ウィンドウをサイズ変更するように実装可能である。これらのウィンドウのサイズ変更は、二分固定または四分固定エッジトリガ等、任意適当な入力を用いて開始されるようになっていてもよい。場合によっては、エッジトリガまたはウィンドウドラッグの入力のほか、マウスボタンまたはキーボードの入力(たとえば、ALTキー)等の付加的な入力の受け付けに応答してこれらの演算が有効となる。
[0054] 図8は、固定アプリケーションウィンドウのサイズ変更の例示であり、ワークスペース800および802を参照して示している。ワークスペース800は、アプリケーションウィンドウ804と、ワークスペースにおいて最初に最大化されたアプリケーションウィンドウ806とを具備する。ここで、二分固定エッジトリガ808は、適所配置およびサイズ調節によって、アプリケーションウィンドウ810をワークスペース800の二分エリアにする。これに応答して、ウィンドウマネージャ132は、サイズ変更によって、アプリケーションウィンドウ806をワークスペース800の別の二分エリアにする。
[0055] 別の例としてワークスペース802を考えるが、これは、アプリケーションウィンドウ810と、ワークスペース802の二分エリアを占有するアプリケーションウィンドウ812とを具備する。ここで、四分固定エッジトリガ811は、適所配置およびサイズ調節によって、アプリケーションウィンドウ810をワークスペース802の四分エリアにする。これに応答して、ウィンドウマネージャ132は、サイズ変更によって、アプリケーションウィンドウ812をワークスペース802の隣接する四分エリアにする。これらは、方法300および500の実装によって固定アプリケーションウィンドウの適所配置またはサイズ調節が可能な方法の一例に過ぎない。
アプリケーションウィンドウの領域ベースのサイズ調節および適所配置
[0056] 図9は、アプリケーションウィンドウの領域ベースのサイズ調整の方法900を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0056] 図9は、アプリケーションウィンドウの領域ベースのサイズ調整の方法900を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0057] 902においては、所定エリアを有するユーザインターフェースにアプリケーションウィンドウを表示する。アプリケーションウィンドウは、所定エリアのうちの1つに表示するようにしてもよいし、所定エリア上に表示するようにしてもよい。所定エリアはそれぞれ、ユーザインターフェースの1つの領域に対応する。場合によっては、ユーザインターフェースの領域(たとえば、縁部)の使用により、所定エリア(たとえば、四分部)のうちの対応する1つへのアプリケーションウィンドウの配置を起動する。ユーザインターフェースのこれらの領域は、画面縁部等のデフォルト領域であってもよいし、画面の任意の部分を含むユーザ規定領域であってもよい。場合により、所定エリアは、四分サイズ、二分サイズ、最大サイズ、最小サイズ等、ユーザインターフェース内の関連するサイズまたは位置を有していてもよい。ユーザインターフェースは、マルチアプリケーション環境として実装可能である。
[0058] 一例として、例示的な所定エリアおよび対応する領域を示した図10について考える。ほんの一例として、所定エリアは、固定エリアとして図示しており、ワークスペースの複数部分にわたって均一または不均一に分かれていてもよい。たとえば、図10のワークスペース1000は、二分固定エリア1002および二分固定エリア1004を具備しており、それぞれ、縁部領域1006および縁部領域1008に対応する。
[0059] 例示的なワークスペース1010は、四分固定エリア1012、1014、1016、および1018等の四分エリアを具備しており、それぞれ、隅部領域1020、1022、1024、および1026に対応する。隅部領域は、正方形または円形(たとえば、隅部領域1026)として規定されていてもよく、約25画素の幅または半径等、所定のサイズを有していてもよい。ワークスペース1028には、他の例示的な二分エリアを示しており、二分固定エリア1030および二分固定エリア1032を具備する。縁部領域1034は、ワークスペースの最大エリアに対応していてもよいし、縦長表示の場合は、二分固定エリア1030に対応していてもよい。最後に、二分固定エリア1032は、ワークスペース1028の底部に沿って位置付けられた縁部領域1036に対応する。
[0060] いくつかの実施形態においては、予想される入力の種類に応じて領域のサイズが変更されるようになっていてもよい。たとえば、マウス入力等のより精密な入力を受け付けた場合は、ユーザが対象領域を容易に利用可能であることから、領域がより小さなサイズを有していてもよい。他の場合、タッチ入力またはジェスチャ入力等の精密度に劣る入力を受け付けた場合は、領域(たとえば、縁部領域または隅部領域)のサイズが増大する可能性がある。この代替または追加としては、ディスプレイの縁部が集まってより正確な領域選択を可能にする場合のより大きな領域の提供等、ディスプレイのトポロジに基づいて領域のサイズが変更されるようになっていてもよい。
[0061] 904においては、所定エリアのうちの1つに基づいて、アプリケーションウィンドウのサイズを変更する。アプリケーションウィンドウのサイズは、所定エリアに対応する領域へとアプリケーションウィンドウを動かす入力に応答して変更する。場合により、アプリケーションウィンドウは、所定エリアの一部または全部を占有するように適所配置する。アプリケーションウィンドウを動かす入力としては、アプリケーションウィンドウを通して受け付けたエッジトリガまたは方向性入力(たとえば、ドラッグ)等、任意適当な入力が挙げられる。たとえば、アプリケーションウィンドウを隅部領域にドラッグすると、サイズ調節によって、アプリケーションウィンドウが隅部領域に対応した四分部となる。このように、ウィンドウの対応する領域への移動によって、ワークスペースの任意の所定エリアに合うように、アプリケーションウィンドウをサイズ調節可能である。
[0062] 図11は、アプリケーションウィンドウの領域ベースのサイズ調整および適所配置の方法1100を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0063] 1102においては、所定エリアを有するユーザインターフェース内でアプリケーションウィンドウを動かす入力を受け付ける。受け付けた入力には、キー操作、方向性入力、ジェスチャ入力等、任意適当な種類の入力を含んでいてもよい。たとえば、入力には、マウスまたはWindows(商標)キーおよび矢印キー等の1つもしくは複数のキー操作によるアプリケーションの選択およびドラッグを含んでいてもよい。他の例では、所定エリアのうちの1つに対応する領域にアプリケーションをドラッグ可能である。
[0064] 1104においては、入力およびアプリケーションウィンドウの状態に基づいて、ユーザインターフェースの所定エリアを選択する。アプリケーションウィンドウの状態としては、現在のサイズ、現在の位置、現在のzスタック深さ、またはアプリケーションウィンドウが占有する現在の所定エリアが挙げられる。所定エリアとしては、ユーザ規定エリアまたは固定エリア等の本明細書に記載の他の所定エリア等、任意の所定エリアが挙げられる。また、いくつかの実施形態において、所定エリアは、重なっていてもよく、ウィンドウのzスタック深さをカスタマイズ可能であってもよい。こうすることにより、さまざまな優位性または深さのアプリケーションウィンドウレイアウトを生成可能である。
[0065] アプリケーションウィンドウの状態を用いることによって、アプリケーションウィンドウの動的なサイズ調節および適所配置を有効にすることができる。一例として、所定エリアまたはアプリケーションウィンドウ状態の選択は、状態機械を用いて決定することができる。場合によっては、アプリケーションウィンドウの現在の状態および受け付けた入力に基づいて状態機械を利用することにより、アプリケーションウィンドウの次の所定エリアまたは次の状態を選択することができる。
[0066] アプリケーションウィンドウの所定エリアまたは状態を動的に選択する例示的な状態機械1200を示した図12について考える。ここで、凡例1202は、Windows(商標)キーを押しながらの矢印キーの押下等、受け付けた各入力に応答して起こる状態遷移を示している。状態機械1200の状態で示すように、一連のキー操作の入力による所定エリアの選択によって、対応する状態に到達することができる。この特定例において、状態機械1200は、左側二分部1204、右側二分部1206、分割上部1208、および分割下部1210等、二分エリアの状態を含む。また、状態機械は、上部左側四分部1212、下部左側四分部1214、上部右側四分部1216、および下部右側四分部1218等、四分エリアの状態を含む。さらには、状態機械1200の他の所定エリアまたは状態も選択可能であり、最小化1220、復元1222、および最大化1224を含む。この代替または追加として、ユーザは、状態または他のキー組み合わせのうちの1つまたは複数のマッピングによって、ワークスペースのユーザ規定エリアをカスタマイズすることができる。
[0067] 目下の方法に戻って、1106においては、アプリケーションウィンドウが所定エリアを満たすように、アプリケーションウィンドウのサイズおよび位置を変更する。場合によっては、ユーザインターフェースの四分エリアまたは二分エリアを満たすようにアプリケーションウィンドウのサイズ調節を行う。他の場合には、アプリケーションウィンドウの最小化または表示中のアプリケーションウィンドウのzスタック深くへの格下げが可能である。上述の通り、所定エリアは、ユーザインターフェースまたはマルチアプリケーション環境の中央のドロップ領域等、ユーザ規定であってもよい。
[0068] 一例として、カスタムのドロップエリア1302、1304、および1306を示した図13のワークスペース1300について考える。これらカスタムのドロップエリアは、アプリケーションウィンドウのサイズおよび位置の変更によってドロップエリアが満たされるように、ユーザによる規定および領域(たとえば、ワークスペースの真ん中の領域)またはキー組み合わせへのマッピングがなされていてもよい。これらのドロップエリアは、ワークスペースのユーザ規定エリアとしてのアプリケーションウィンドウのサイズ、位置、またはzスタック深さの格納等、任意適当に構成されていてもよい。
[0069] 任意選択により、1108においては、アプリケーションウィンドウのプレビューによって、アプリケーションウィンドウの変更サイズおよび位置を視覚的に表示する。アプリケーションウィンドウのプレビューは、当該アプリケーションウィンドウまたはそのコンテンツの透過性(または、部分的に透明な)表現として示すことができる。場合によっては、所定エリアにおけるアプリケーションウィンドウのプレビュー配置を確認する付加的な入力を受け付ける。このような場合、方法500は、プレビューの通りにアプリケーションウィンドウを実行する入力に応答して、演算1110へと進むようになっていてもよい。
[0070] あるいは、付加的な入力によって、アプリケーションインターフェースを表示する別の所定エリアを選択するようにしてもよい。これは、方法500を演算1102に戻して別の所定エリアを選択するのに有効となる可能性がある。さらに他の場合には、アプリケーションウィンドウまたはそのプレビューに対する連続ドラッグまたは慣性の形態で付加的な入力が受け付けられるようになっていてもよい。この(たとえば、縁部領域への)連続ドラッグまたは慣性に応答して、アプリケーションウィンドウのプレビューの所定エリアでのサイズ変更または別の所定エリアへのサイズ調節が可能である。
[0071] 1100においては、変更したサイズおよび位置にて、ユーザインターフェースの所定エリアにアプリケーションウィンドウを表示する。場合により、アプリケーションウィンドウは、ユーザインターフェースの所定領域と関連付けられた深さに従って、特定のzスタック深さに表示する。変更したサイズおよび位置でのアプリケーションの表示は、所定エリアを満たすのに有効となり得る。この一例をワークスペース1308で示しており、ドロップエリア1302を満たすように検索アプリケーション1310のサイズ調節および適所配置がなされている。図13に関連して、方法1100の演算は、ドロップエリア1304および1306をそれぞれ画像アプリケーション1312およびノートパッドアプリケーション1314で満たすように反復可能である。
アプリケーションウィンドウの動的ジョイントディバイダ
[0072] 図14は、アプリケーションウィンドウ間にジョイントディバイダを設定する方法1400を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0072] 図14は、アプリケーションウィンドウ間にジョイントディバイダを設定する方法1400を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0073] 1402においては、マルチアプリケーション環境の第1のアプリケーションウィンドウと第2のアプリケーションウィンドウとの間にジョイントディバイダを設定する。ジョイントディバイダは、第2のアプリケーションウィンドウの縁部に対する第1のアプリケーションウィンドウの縁部の接触(たとえば、重畳のない当接)に応答して設定する。場合により、ジョイントディバイダは、接触している各アプリケーションウィンドウの部分それぞれに沿って設定する。他の場合には、アプリケーションウィンドウ間の接触量に関わらず、各アプリケーションウィンドウの全長に沿ってジョイントディバイダを設定する。アプリケーションウィンドウの縁部間の接触は、マルチアプリケーション環境におけるアプリケーションウィンドウのうちの1つの移動、固定、追加、またはサイズ調節等、任意適当な操作を原因としていてもよい。また、ジョイントディバイダは、アプリケーションウィンドウの任意の可視縁部に沿って設定可能である。場合により、ジョイントディバイダの設定は、固定アプリケーションウィンドウに限定され、非固定または浮遊アプリケーションウィンドウを除外するようにしてもよい。
[0074] いくつかの実施形態において、ジョイントディバイダは、1つまたは複数の縁部に沿って互いに接触する複数のアプリケーションウィンドウ間に設定される。たとえば、2つのアプリケーションウィンドウの各縁部が第3のアプリケーションウィンドウの縁部に接触している場合は、単一のジョイントディバイダを設定することができる。あるいは、アプリケーションウィンドウがそれぞれの隅部で互いに接触している場合は、複雑なジョイントディバイダを形成することができる。この代替または追加として、ジョイントディバイダの設定により、アプリケーションウィンドウが一体的にグループ化(または、関連付け)され、グループ化されたアプリケーションウィンドウ上での動作が可能となる。たとえば、グループ化されたアプリケーションウィンドウは、一体的な開展、閉止、最小化、サイズ変更、切り替え、または移動が可能である。さらに、グループ化されたアプリケーションウィンドウの非グループ化によって、グループ化されていたアプリケーションウィンドウがそれぞれ元の状態に戻り得る。場合により、グループ化されたアプリケーションウィンドウは、スタートメニュー、アプリケーション管理UI、またはホットキースイッチャ(たとえば、ALT+TabまたはWindows(商標)+Tab)等、切り替えアフォーダンスにおいて一体的に表示される。
[0075] ジョイントディバイダは、2つ以上のアプリケーションウィンドウの各縁部が互いに接触した如何なる時点の如何なる場所においても設定可能である。一例として、ワークスペース1500、1502、および1504におけるさまざまなジョイントディバイダを示した図15について考える。ワークスペース1500は、四分固定アプリケーションウィンドウ間に設定されたジョイントディバイダ1506と、四分固定アプリケーションウィンドウと二分固定アプリケーションウィンドウとの間に設定されたジョイントディバイダ1508とを具備する。また、ジョイントディバイダは、ワークスペース1502に示すように、遮蔽されたアプリケーションウィンドウ間に設定されていてもよく、この場合のアプリケーションディバイダ1510は、部分的に遮蔽された固定アプリケーションウィンドウ間に設定されている。さらに、アプリケーションディバイダ1512は、アプリケーションウィンドウのzスタックの最上位ではない遮蔽された浮遊アプリケーションウィンドウ間に設定されている。
[0076] 1404においては、第1のアプリケーションウィンドウおよび第2のアプリケーションウィンドウにより共有されたジョイントディバイダを表示する。ジョイントディバイダの表示には、ジョイントディバイダの視覚的または触覚的指定の提供を含んでいてもよい。たとえば、ジョイントディバイダを共有するアプリケーションウィンドウの縁部上には、視覚的指定を表示する。他の場合には、ジョイントディバイダを共有する2つのアプリケーションウィンドウ間にジョイントディバイダを表示する。このような場合は、一方または両方のアプリケーションウィンドウのサイズの縮小によって、ジョイントディバイダを表示する空間を与えるようにしてもよい。この代替または追加として、触覚的フィードバック(たとえば、凹凸または起伏)の使用により、ジョイントディバイダの存在を示すことができる。場合によっては、ジョイントディバイダに近い入力またはカーソル移動に応答して、ジョイントディバイダを表示する。
[0077] いくつかの実施形態においては、ジョイントディバイダを無効化できるように、ジョイント分離コントロールまたはアフォーダンスも表示される。ジョイント分離コントロールは、ジョイントディバイダの一部、ジョイントコントロールの一方の縁部、またはジョイントコントロールの両縁部上に表示可能である。場合によっては、ジョイント分離コントロールによりユーザがジョイントディバイダを「解除」可能となり、すでにジョイントディバイダを共有しているアプリケーションウィンドウの個別のサイズ調節または移動が可能となる。また、ジョイントディバイダは、当該ジョイントディバイダのダブルクリック、キー(たとえば、CTRL)を押しながらのジョイントディバイダのクリック等の他の操作またはジョイントディバイダの一部ではない縁部を介したアプリケーションウィンドウのサイズ調節もしくは移動によっても無効化可能である。
[0078] ジョイントディバイダは、アプリケーションウィンドウ間のジョイントディバイダの設定に応答して表示可能である。あるいは、ジョイントディバイダは、当該ジョイントディバイダに近い入力またはカーソル移動が受け付けられるまで、表示せずに存在していてもよい。図16は、カーソル移動に応じたジョイントディバイダの表示の一例を示している。カーソルの移動は、アプリケーションウィンドウ1602、アプリケーションウィンドウ1604、およびカーソル1606を具備するワークスペース1600で開始となる図示のワークスペースの進行として示している。
[0079] ワークスペース1608に示すように、カーソル1606の移動は、近接しきい1610に基づいて検出可能である。近接しきい1610は、ジョイントディバイダから10画素等、任意適当な寸法を有するように構成されていてもよく、また、受け付ける入力の種類に基づいて再構成されるようになっていてもよい。ワークスペース1612に示すように、カーソル1606が近接しきい1610と交差した場合は、アプリケーションウィンドウ1602および1604の接触縁部上にジョイントディバイダ1614およびジョイント分離コントロール1616が表示される。
[0080] 1406においては、ジョイントディバイダを介して、第1のアプリケーションウィンドウおよび第2のアプリケーションウィンドウそれぞれのサイズを変更する入力を受け付ける。受け付けた入力には、カーソル移動、タッチ入力、または矢印キーを介して受け付けた方向性入力等、任意適当な種類の入力を含んでいてもよい。一例として、アプリケーションウィンドウ1704および1706が共有するジョイントディバイダ1702を具備する図17の例示的なワークスペース1700について考える。この特定例において、ジョイントディバイダ1702は、ジョイント分離コントロールも含むことにより、アプリケーションウィンドウ1704および1706の個別のサイズ調節が可能である。ここでは、カーソル1710を介して、横方向にアプリケーションウィンドウ1704および1706のサイズ調節を行う入力を受け付ける。
[0081] 1408においては、入力に応答して、第1のアプリケーションウィンドウおよび第2のアプリケーションウィンドウそれぞれのサイズを同時に変更する。アプリケーションウィンドウそれぞれのサイズは、方向性カーソル移動等の入力を受け付けた場合に変更可能である。たとえば、アプリケーションウィンドウの変更サイズは、入力を受け付けた軸に沿ってジョイントディバイダをスライドさせることにより、視覚的に示すことができる。このように、スライドするジョイントディバイダによって、第1および第2のアプリケーションウィンドウの同時サイズ調節を視覚的に示すことができる。
[0082] 上記の代替または追加として、ジョイントディバイダは、ワークスペースの縁部に沿った中点の誘引性または親和性(たとえば、魅力)を示していてもよい。これは、ユーザによる対称的なレイアウトでのウィンドウのサイズ調節の補助に有効となり得る。場合により、ワークスペースの縁部に沿った点への誘引性は、(たとえば、CTRLキーを押しながらの)キー入力に応答して無効化可能である。
[0083] 図17に関連して、アプリケーションウィンドウ1704および1706は、ワークスペース1712に示す位置へのジョイントディバイダ1702の移動に基づいてサイズ調節される。この特定例においては、ジョイント分離コントロールの特徴についても図示している。ここで、アプリケーションウィンドウ1704を独立してサイズ調節する付加的な入力は、ジョイント分離コントロール1708を介して受け付けられる。図示のように、カーソル1710から受け付けた入力によって、反対の横方向にアプリケーションウィンドウ1704がサイズ調節される。その結果、ワークスペース1714に示すように、アプリケーションウィンドウ1704がアプリケーションウィンドウ1706から分離され、ジョイントディバイダが無効となり、このサイズ調節によって、遮蔽されていたアプリケーションウィンドウ1716が現れる。
[0084] 図18は、ジョイントディバイダを備えたアプリケーションウィンドウのサイズ調節および適所配置を行う方法1800を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0085] 1802においては、第1のアプリケーションウィンドウと第2のアプリケーションウィンドウとの間で共有されたジョイントディバイダをマルチアプリケーション環境に表示する。ジョイントディバイダの表示には、ジョイントディバイダの視覚的または触覚的指定の提供を含んでいてもよい。たとえば、ジョイントディバイダを共有するアプリケーションウィンドウの縁部間または縁部上には、視覚的指定を表示する。この代替または追加として、触覚的フィードバック(たとえば、凹凸または起伏)の使用により、ジョイントディバイダの存在を示すことができる。一例として、アプリケーションウィンドウ1902およびアプリケーションウィンドウ1904がジョイントディバイダ1906を共有している図19のワークスペース1900について考える。ここで、ジョイントディバイダ1906は、アプリケーションウィンドウ1902およびアプリケーションウィンドウ1904の接触縁部上で視覚的に指定されている。
[0086] 1804においては、ジョイントディバイダを介して、第1のアプリケーションウィンドウのサイズを大きくする入力を受け付ける。場合により、第1のアプリケーションウィンドウのサイズを大きくする入力は、第2のアプリケーションウィンドウへと向かう方向に第1のアプリケーションウィンドウのサイズを大きくすることを示していてもよい。このような場合は、ワークスペースの縁部に対する第2のウィンドウの位置に応じて、第2のアプリケーションのサイズ調節、移動、またはウィンドウのzスタックのより深くへの格下げを入力が示していてもよい。たとえば、マルチアプリケーション環境の縁部に当接していないアプリケーションウィンドウは、サイズ調節ではなく移動が可能である。
[0087] 受け付けた入力には、カーソル移動、タッチ入力、または矢印キーを介して受け付けた方向性入力等、任意適当な種類の入力を含んでいてもよい。本例に関連して、図19のワークスペース1900に示すように、アプリケーションディバイダを介して方向性入力が受け付けられる。ここで、アプリケーションウィンドウ1904は、ワークスペース1900の縁部に接触していないため、サイズ調節なく移動可能であることを留意されたい。
[0088] 1806においては、受け付けた入力に応答して、第1のアプリケーションウィンドウのサイズを大きくする。第1のアプリケーションウィンドウのサイズを大きくする間、第2のアプリケーションウィンドウを同時かつ効果的に動かして、第2のアプリケーションウィンドウのサイズを維持する。第2のアプリケーションウィンドウの移動は、マルチアプリケーション環境の縁部に達するまで継続するようになっていてもよい。本例の継続によって、アプリケーションウィンドウ1902のサイズが大きくなる一方、アプリケーションウィンドウ1904がワークスペース1908の縁部に向かって移動する。
[0089] 演算1808、1810、および1812は、任意選択であり、付加的な入力または第1のアプリケーションウィンドウのさらなるサイズ拡大に応答して実行されるようになっていてもよい。1808においては、第2のアプリケーションウィンドウの縁部がマルチアプリケーション環境の縁部に達したことに応答して、第2のアプリケーションウィンドウのサイズを小さくする。第2のアプリケーションウィンドウのサイズが小さくなる一方、第1のアプリケーションウィンドウは、サイズが拡大し続ける。第2のアプリケーションウィンドウのサイズは、最小ウィンドウサイズとなるまで縮小可能である。図19に関連して、これをレイヤ図1908に示しているが、ジョイントディバイダ1906が継続的に移動することで、アプリケーションウィンドウ1902のサイズが大きくなる一方、アプリケーションウィンドウ1904のサイズは小さくなる。
[0090] 1810においては、第2のアプリケーションウィンドウのサイズが最小サイズとなったことに応答して、第1のアプリケーションウィンドウが第2のアプリケーションウィンドウに重なることを許可する。第2のアプリケーションウィンドウが最小サイズになると、第1のアプリケーションの先行縁部が第2のアプリケーションウィンドウに重なり始める。アプリケーションウィンドウの最小サイズは、アプリケーションユーザインターフェースと関連付けられたアプリケーション、オペレーティングシステム、またはユーザ入力によって規定可能である。本例の継続によって、レイヤ図1910に示すように、ジョイントディバイダ1906によってアプリケーションウィンドウ1904が最小サイズとなる。これに応答して、レイヤ図1912に示すように、アプリケーションウィンドウ1902の先行縁部がアプリケーションウィンドウ1904に重なり始める。
[0091] 1812においては、ジョイントディバイダがマルチアプリケーション環境の縁部に達したことに応答して、第2のアプリケーションウィンドウをマルチアプリケーション環境の別のレイヤに格下げする。場合によっては、アプリケーションウィンドウのzスタックのより深くへと第2のアプリケーションウィンドウを押し込む。この代替または追加として、第2のアプリケーションウィンドウのサイズは、デフォルトのサイズまたは移動前のサイズに復元可能である。これは、第2のアプリケーションウィンドウの復元または切り替えをサイズ変更なく可能とするのに有効となり得る。本例の結論として、アプリケーションウィンドウ1904は、復元サイズにてワークスペースの次レイヤに格下げされる。このように、アプリケーションウィンドウ1904は、サイズ変更なく復元または切り替え可能である。
[0092] また、ジョイントディバイダは、複数のアプリケーションウィンドウ間に設定されていてもよく、複雑なジョイントディバイダと称する場合がある。複数のアプリケーションウィンドウのサイズ調節または移動は、方法1400または1800に関して説明した演算により実現されるようになっていてもよい。一例として、複数のアプリケーションウィンドウ間に設定されたジョイントディバイダを示す例示的なワークスペース2000および2002を含む図20について考える。ワークスペース2000に関連して、互いに隣接するとともにジョイントディバイダ2004を共有するアプリケーションウィンドウ2006および2008のサイズ調節は、ジョイントディバイダ2004によって可能である。アプリケーションウィンドウ2006、2008、および2012の縁部間で共有されたジョイントディバイダ2010によれば、3つのアプリケーションウィンドウすべてのサイズ調節が可能である。
[0093] この態様は、アプリケーションウィンドウ2014、2016、2018、および2020を具備するワークスペース2002に示すように、4つのアプリケーションウィンドウに拡張可能である。この例においては、各ジョイントディバイダ2022、2024、2026、および2028によって、縁部を共有する隣接ウィンドウそれぞれのサイズ調節が可能である。たとえば、ジョイントディバイダ2022は、アプリケーションウィンドウ2014および2016のサイズ調節を行うが、アプリケーションウィンドウ2018および2020は対象外である。この代替または追加として、複数のウィンドウのサイズ調節を行う場合は、複数のウィンドウのうちの1つの最小サイズへのサイズ調節に応答して、ジョイントディバイダが分離または「解除」を行うようにしてもよい。
[0094] また、複雑なジョイントディバイダの実現により、ウィンドウの独立性の維持または変更の特定ウィンドウへの局所化を図るようにしてもよい。たとえば、ジョイントディバイダを共有する3つの浮遊アプリケーションウィンドウを示した図20のワークスペース2030、2032、および2034について考える。ここでは、アプリケーションウィンドウ2036、2038、および2040がジョイントディバイダ2042を共有している。ワークスペース2030に示すように、アプリケーションウィンドウ2036および2040が共有するジョイントディバイダ2042の一部を介して受け付けられた入力2044によって、これらのアプリケーションウィンドウはサイズ調節されるものの、アプリケーションウィンドウ2038は対象外である。この独立したサイズ調節の別の例をワークスペース2032に示しており、入力2046によるサイズ調節によって、アプリケーションウィンドウ2040がアプリケーションウィンドウ2036および2038上となる。あるいは、ワークスペース2034に示すように、アプリケーションウィンドウ2038および2040が共有するジョイントディバイダの一部を介して受け付けられた入力2048によって、これらのアプリケーションウィンドウのサイズ調節が可能である。
[0095] また、ジョイントディバイダは、組み合わせて実現することにより、ジョイントコーナーを提供するようにしてもよい。ジョイントコーナーによれば、1つまたは2つの軸におけるアプリケーションウィンドウのサイズ調節が可能であるとともに、ジョイントコーナーを共有する少なくとも2つのアプリケーションウィンドウをサイズ調節することができる。図20は、ワークスペース2100および2102に示すように、コーナージョイントのさまざまな例を示している。ワークスペース2100において、コーナージョイント2104は、アプリケーションウィンドウ2106、2108、2110、および2112を両軸にサイズ調節可能である。
[0096] 場合により、2つのアプリケーションウィンドウが隅部を共有し、共通の縁部を共有していない場合は、ジョイントコーナーを設定することができる。この一例をワークスペース2102で示しており、アプリケーションウィンドウ2114および2116が隅部で会合してジョイントコーナー2118を共有している。ここで、ジョイントコーナー2118は、アプリケーションウィンドウ2114および2116を両軸にサイズ調節可能である。ジョイントディバイダと同様に、ジョイントコーナーは、アプリケーションウィンドウサイズの最小化またはキー入力もしくはジョイントコーナーの一部ではない縁部からのアプリケーションウィンドウのドラッグ等のその他適当な入力に応答して無効化されるようになっていてもよい。
[0097] ジョイントコーナーは、アプリケーションウィンドウの隅部が互いに接触または当接した如何なる時点においても設定可能である。ウィンドウマネージャ132は、個別ウィンドウの隅部または2つの隣接縁部を追跡することにより、ジョイントコーナーを設定または維持することができる。図21に戻って、アプリケーションウィンドウ2122、2124、および2126を具備する例示的なワークスペース2120について考える。これらの各ウィンドウは、それぞれの縁部のうちの2つが会合する隅部を含む。ここで、ウィンドウマネージャ132は、縁部2128、2130、および2132を追跡して、これらアプリケーションウィンドウのジョイントコーナーを設定または維持する。
[0098] また、ウィンドウマネージャ132は、個々のアプリケーションウィンドウの縁部を追跡して、ジョイントディバイダを設定または維持するようにしてもよい。一例として、ワークスペース2200がアプリケーションウィンドウ2202および2204を具備する図22について考える。アプリケーションウィンドウ2202および2204は、ジョイントディバイダ2206を共有しているため、ジョイントディバイダを介して受け付けた入力によってサイズ調節可能である。サイズ調節またはジョイントディバイダの他の操作を可能にするため、ウィンドウマネージャ132は、依存性チェーンを構築することにより、アプリケーションウィンドウの個々の縁部を追跡することができる。
[0099] 図22に関連して、詳細図2208に示すように、ジョイントディバイダ2206は、アプリケーションウィンドウ2202の縁部2210およびアプリケーションウィンドウ2204の縁部2212を含む。ここで、カーソル2214は、アプリケーションウィンドウ2204の縁部2212上でホバリングしており、ウィンドウマネージャ132は、縁部2212およびカーソル2214の位置に関する依存性チェーンを構築可能である。縁部2212を起点として、ウィンドウマネージャは、縁部2212と接触しているアプリケーションウィンドウの他の縁部を決定する。ここで、縁部2210は、詳細図2216に示すように、縁部2212に接触しているものと決定されるため、ジョイントディバイダ2206の影響を受ける。
[0100] 上記の代替または追加として、ジョイントディバイダの操作を行う場合は、非隣接縁部が無視されるようになっていてもよい。たとえば、詳細図2218において、ウィンドウマネージャ132は、アプリケーションウィンドウ2220および2222の縁部が縁部2212に接触しているものと判定する。ただし、アプリケーションウィンドウ2224の縁部は、アプリケーションウィンドウ2226が介在することにより、縁部2212に接触しないものと判定され、無視されるようになっていてもよい。また、詳細図2228に示すように、アプリケーションウィンドウ2226は、縁部2212に接触しないものと判定され、ジョイントディバイダの操作において無視されるようになっていてもよい。
[0101] 図23は、詳細図2300において縁部依存性の一例をさらに示しており、アプリケーションウィンドウ2304の縁部2302は、アプリケーションウィンドウ2308の縁部2306に接触するものと判定される。アプリケーションウィンドウ2304により、ウィンドウマネージャ132は、縁部依存性チェーンにおける次のアプリケーションウィンドウの観点から、接触を判定することができる。ここで、アプリケーションウィンドウ2312の縁部2310は、アプリケーションウィンドウ2308の縁部2306に接触するものと判定される。詳細図2314において、入力2316により開始されるサイズ操作は、依存性チェーンを通って伝搬し、これに応じて、接触するアプリケーションウィンドウそれぞれのサイズ調節または移動が行われる。
アプリケーションウィンドウの補助的表示
[0102] 図24は、選択可能なアプリケーションウィンドウをマルチアプリケーション環境の有効領域に表示する方法2400を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0102] 図24は、選択可能なアプリケーションウィンドウをマルチアプリケーション環境の有効領域に表示する方法2400を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0103] 2402においては、アプリケーションウィンドウの視覚的表現をマルチアプリケーション環境の有効領域に表示する。視覚的表現は、サイズ調節によって有効領域を完全に占有可能なアプリケーションウィンドウ等、有効エリアでの表示に選択可能または適当なアプリケーションウィンドウに対応する。アプリケーションウィンドウの視覚的表現としては、テキスト、アイコン、またはサムネイル画像等のアプリケーションウィンドウの縮小画像が挙げられる。これらの縮小画像は、アプリケーションウィンドウのコンテンツまたは過去に表示されたコンテンツのプレビューを視覚的に示していてもよい。
[0104] いくつかの実施形態において、アプリケーションウィンドウの視覚的表現は、有効領域におけるプロンプトまたは他のアプリケーション選択インターフェースを介して表示される。場合により、視覚的表現は、固定操作による他のアプリケーションウィンドウの四分エリアまたは二分エリアでの表示等、マルチアプリケーション環境の別の領域での別のアプリケーションの表示に応答して表示される。他の場合には、プロンプトまたはアプリケーション選択インターフェースを呼び出すコントロール等のアプリケーション選択コントロールを介して受け付けられた入力に応答して視覚的表現が表示される。アプリケーション選択コントロールは、有効エリアの縁部に沿って近くのホバリング領域またはグラフィカルタブとして実現されていてもよい。
[0105] また、アプリケーション選択コントロールは、マルチアプリケーション環境の縁部領域に「進入」するカーソル移動または他の入力に応答して表示されるようになっていてもよい。進入移動としては、二重進入移動またはワークスペースもしくは画面エリアの距離にわたる移動が挙げられる。場合によっては、特定の基準を用いた進入移動の検出により、縁部との不慮の接触(たとえば、スクロールバーのスクロール)を進入移動として認識しないようにする。たとえば、カーソルの移動が縁部領域またはそのすぐ内側で停止になると、縁部領域へのさらなる次の「進入」(たとえば、二重進入)によって、アプリケーション選択コントロールを呼び出すことができる。あるいは、カーソルが縁部領域を離れる場合、停止の長さが所定の閾値を満たさない場合、またはカーソルが停止せずに縁部領域を通って移動し続ける場合には、アプリケーション選択コントロールが呼び出されないようになっていてもよい。
[0106] いくつかの実施形態においては、縁部領域に達する前のカーソルの移動についても考えられる。カーソル移動の垂直および水平成分の追跡によって、カーソルがワークスペースを横切って十分に走行したか、十分な角度で縁部領域に進入したかを判定するようにしてもよい。一例として、水平方向の縁部に達した場合、アプリケーション選択コントロールは、カーソルが少なくとも垂直方向に150画素を走行し、縁部領域において水平方向よりも垂直方向に多く移動したとの判定に応答して呼び出し可能である。カーソルが縁部領域において垂直方向よりも水平方向に多く移動したとの判定等により、同様の基準が垂直方向の縁部領域に適用されるようになっていてもよい。この代替または追加として、これらの基準が満たされることに応答してアプリケーション選択コントロールの表示の呼び出しまたは起動を行うように構成された状態機械により、カーソル移動または他の入力が追跡可能である。
[0107] 一例として、マルチアプリケーション環境の例示的なワークスペース2500を示した図25について考える。ワークスペース2500は、アプリケーションウィンドウ2502、有効領域2504、およびタスクバー2506を具備する。この特定例においては、アプリケーション選択プロンプト2508が有効領域2504に表示され、これは、アプリケーション選択コントロール2510も含む。また、アプリケーション選択コントロール2510のより詳細な図を2512に示すが、これは、退避コントロール2514を含む。
[0108] アプリケーション選択コントロール2510は、有効領域2504の縁部に沿ったホバリング領域として実現されており、カーソル2516との近接(または、タッチ入力)に応答して現れる。ホバリング領域は、ワークスペースの縁部に沿った10〜25画素等、所定の幅または面積を有していてもよい。アプリケーション選択コントロール2510によれば、ユーザは、アプリケーション選択プロンプト2508の起動または呼び出しを行うことができ、これにより、ユーザに対して、すべてのアクティブなアプリケーションウィンドウが状況的に表示され得る。この代替または追加として、退避コントロール2415によれば、アプリケーション選択プロンプト2508を一時的にまたはカーソルまたは他の入力との次の近接まで退避(または、非表示化)可能である。ここで、ユーザがアプリケーション選択コントロール2510をタップしてアプリケーション選択プロンプト2508を呼び出したものと仮定する。この入力に応答して、アプリケーション選択プロンプト2508が表示されるが、これには、ユーザがアクセスした最も新しいアプリケーションウィンドウの視覚的表現(たとえば、サムネイル画像)が含まれる。
[0109] 上記の代替または追加として、アプリケーションウィンドウの視覚的表現は、マルチアプリケーション環境の別の領域における別のアプリケーションウィンドウの表示に応答して表示されるようになっていてもよい。これは、有効領域に対してアプリケーションウィンドウのうちの1つをユーザが容易に選択できるようにして、マルチアプリケーション環境のアプリケーションウィンドウのレイアウトを完了するのに有効となり得る。
[0110] この一例を図25のワークスペース2518に示しており、エッジトリガ2520は、アプリケーションウィンドウ2522を介して受け付けられる。エッジトリガ2520がアプリケーションウィンドウ2522をワークスペース2518の縁部に二分固定するため、アプリケーションウィンドウ2522は、二分固定領域に表示される。この例は、ほんの一例に過ぎず、縁部に対応する所定エリアへのアプリケーションウィンドウの表示または「固定」に対して、エッジトリガまたは縁部との他の接触が有効となり得る。ここでは、アプリケーションウィンドウ2522の二分固定操作の前に、非固定(たとえば、浮遊)アプリケーションウィンドウ2524の一部が遮蔽されることを留意されたい。二分固定領域におけるアプリケーションウィンドウ2522の表示に応答して、非固定アプリケーションウィンドウ2524に対応する視覚的表現2528がアプリケーション選択プロンプト2528に表示される。
[0111] 2404においては、アプリケーションウィンドウのうちの1つを有効領域に表示する。アプリケーションウィンドウは、視覚的表現のうちの対応する1つを選択する入力の受け付けに応答して表示する。場合により、視覚的表現を選択する入力は、アプリケーション管理UI、スタートメニュー、またはキーベースのアプリケーションスイッチャ(たとえば、ALT+Tabキー)等、他のアプリケーション選択ユーザインターフェースを介して受け付ける。
[0112] アプリケーションウィンドウは、有効領域を適充または完全占有するようにサイズ調節および適所配置がなされる。アプリケーションウィンドウの表示に先立って、アプリケーションウィンドウのプレビューの表示により、有効領域内のアプリケーションウィンドウのサイズおよび位置を視覚的に表示するようにしてもよい。図25およびワークスペース2500に関連して、電子メールアプリケーションタイル2530をタップしているユーザは、対応する電子メールアプリケーションによって、有効領域2504を満たすことになる。このように、ユーザは、1回のタップ入力のみでワークスペースのレイアウトを最適化できて便利である。
[0113] 図26は、アプリケーションウィンドウを表示するマルチアプリケーション環境の有効領域を識別する方法2600を示しており、ウィンドウマネージャ132またはマルチアプリケーション環境モジュール118により実行される演算を含む。以下の説明の一部においては、図1のシステム100、図2の動作環境200、ならびに本明細書の他の部分に記載の他の方法および例示的な実施形態を参照する場合があるものの、この参照は一例に過ぎない。
[0114] 2602においては、マルチアプリケーション環境の有効領域を識別する。有効領域としては、ワークスペースまたは画面の矩形領域等、アプリケーションインターフェースを表示できる任意適当な領域が挙げられる。有効領域の識別は、マルチアプリケーション環境の別の領域における別のアプリケーションウィンドウの表示に応答して行うことができる。この別のアプリケーションウィンドウは、固定操作、動的ジョイントディバイダを介したサイズ調節、または領域ベースのサイズ調節等、任意適当な操作によって別の領域に表示することができる。場合によっては、非遮蔽ウィンドウまたはアプリケーションウィンドウによって完全に占有可能な領域を含まない領域として、有効領域を識別する。この代替または追加としては、マルチアプリケーション環境の最上位または最高位(たとえば、zスタックの一番上)のレイヤに関して、有効領域を識別する。
[0115] ワークスペース2700が2702で大略表示され、アプリケーションウィンドウ2702、2704、2706、および2708を具備しており、後者3つの一部がアプリケーションウィンドウ2702により遮蔽された図27について考える。ここでは、アプリケーションウィンドウ2702を介して二分固定エッジトリガ2710が受け付けられた後、2712で示すように、ワークスペース2700の右側二分部に固定されるものと仮定する。この固定操作に応答して、ウィンドウマネージャ132は、ワークスペース2700の左側二分部を有効領域2714として識別する。
[0116] 任意選択により、2604においては、有効領域での表示用に選択可能なアプリケーションウィンドウを決定する。これらのアプリケーションウィンドウとしては、遮蔽されたアプリケーションウィンドウ、部分的に遮蔽されたアプリケーションウィンドウ、最小化されたアプリケーションウィンドウ、または別のアクティブもしくは開展アプリケーションウィンドウとグループ化されたアプリケーションウィンドウ等、任意適当なアプリケーションウィンドウが挙げられる。また、選択候補のアプリケーションウィンドウは、有効領域を満たすようにサイズ調節可能であってもよいため、固定サイズのアプリケーションウィンドウおよび他の領域に固定されたアプリケーションウィンドウは除外可能である。
[0117] 2606においては、アプリケーションウィンドウの視覚的表現を有効領域に表示する。これらのアプリケーションウィンドウには、有効領域での表示用に選択可能なアプリケーションウィンドウを含む。アプリケーションウィンドウの視覚的表現としては、テキスト、アイコン、またはサムネイル画像等のアプリケーションウィンドウの縮小画像が挙げられる。これらの縮小画像は、アプリケーションウィンドウのコンテンツまたは過去に表示されたコンテンツのプレビューを視覚的に示していてもよい。本例に関連して、2712で示すように、ウィンドウマネージャ132は、縮小画像等、アプリケーションウィンドウ2704、2706、および2708の視覚的表現をワークスペース2700の有効領域2714に表示する。
[0118] 上記の代替または追加として、アプリケーションウィンドウの視覚的表現の順序またはレイアウトが決定される。この順序またはレイアウトは、最頻使用、最新使用、名称、タイトル、サイズ、zスタック位置、または別のアクティブもしくは開展アプリケーションウィンドウとのグループ化等、アプリケーションウィンドウの任意の特質または特性に基づいて決定されるようになっていてもよい。
[0119] 2608においては、視覚的表現のうちの対応する1つを介して、アプリケーションウィンドウのうちの1つを選択する入力を受け付ける。入力には、カーソル入力、ジェスチャ入力、またはタッチ入力等、任意適当な入力を含んでいてもよい。場合により、タッチ入力には、タップまたは有効領域への四分固定もしくは二分固定を含む。本例の継続により、アプリケーションウィンドウ2706の視覚的表現を介して、四分固定トリガ2716を受け付ける。
[0120] 2610においては、選択したアプリケーションウィンドウを有効領域の少なくとも一部に表示する。アプリケーションウィンドウは、有効領域を適充または完全占有するようにサイズ調節および適所配置がなされる。アプリケーションウィンドウの表示に先立って、アプリケーションウィンドウのプレビューの表示により、有効領域内のアプリケーションウィンドウのサイズおよび位置を視覚的に表示するようにしてもよい。任意選択により、方法2600の演算は、反復的な実行によって、マルチアプリケーション環境の他の有効領域を満たすようにしてもよい。こうすることにより、アプリケーションウィンドウの最適なレイアウトを最小限のユーザ相互作用で提供することができる。
[0121] いくつかの実施形態においては、ユーザ入力を伴わずに、ユーザに対してアプリケーションウィンドウが選択され、有効領域に表示されるようになっていてもよい。たとえば、アプリケーションウィンドウが別の領域の別のアプリケーションウィンドウと対になっている場合は、この別の領域の別のアプリケーションウィンドウの表示に応答して、その対のアプリケーションウィンドウを表示可能である。また、アプリケーションウィンドウは、最新使用または最頻使用のアプリケーションウィンドウ等、表示用に選択可能なアプリケーションの決定に用いられる基準に基づいて、自動的に選択されるようになっていてもよい。
[0122] 本例の継続によって、ウィンドウマネージャ132は、アプリケーションウィンドウ2706のサイズ調節および適所配置により、2718で示すように、ワークスペース2700の四分部を満たす。さらに、その後ウィンドウマネージャ132は、アプリケーションウィンドウ2704および2708の視覚的表現を表示するワークスペース2700の有効領域2720を識別するようにしてもよい。ここでは、アプリケーションウィンドウ2708の視覚的表現を介して、タップ入力2722が受け付けられるものと仮定する。これに応答して、ウィンドウマネージャ132は、アプリケーションウィンドウ2708のサイズ調節および適所配置により、2724で示すように、ワークスペース2700の四分領域を満たす。このように、3つの入力例のみで、アプリケーションウィンドウのレイアウトがワークスペース2700にもたらされている。
[0123] これらの方法の態様は、ハードウェア(たとえば、固定論理回路)、ファームウェア、システムオンチップ(SoC)、ソフトウェア、手動処理、またはこれらの任意の組み合わせにおいて実装されていてもよい。ソフトウェア実装は、ソフトウェア、アプリケーション、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能等、コンピュータプロセッサにより実行された場合に特定のタスクを実行するプログラムコードを表す。プログラムコードは、コンピュータプロセッサのローカルおよび/またはリモート両者の1つまたは複数のコンピュータ可読メモリデバイスに格納可能である。また、これらの方法は、複数のコンピュータ機器による分散コンピュータ環境においても実現し得る。
例示的な機器
[0124] 図28は、上記図1〜図28を参照して説明した任意の種類のクライアント、サーバ、および/またはコンピュータ機器として実装することにより、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術を実現できる例示的な機器2800のさまざまな構成要素を示している。実施形態において、機器2800は、テレビクライアント機器(たとえば、テレビセットトップボックス、デジタルビデオレコーダ(DVR)等)、家庭用機器、コンピュータ機器、サーバ機器、携帯用コンピュータ機器、ユーザ機器、通信機器、ビデオ処理および/もしくはレンダリング機器、家電機器、ゲーム機、電子機器、ならびに/または別の種類の機器の形態で、有線および/または無線機器の一方または組み合わせとして実装可能である。また、機器2800は、ユーザ、ソフトウェア、ファームウェア、および/または機器の組み合わせを含む論理デバイスを記述するように当該機器を動作させるユーザ(たとえば、人間)および/または実体と関連付けられていてもよい。
[0124] 図28は、上記図1〜図28を参照して説明した任意の種類のクライアント、サーバ、および/またはコンピュータ機器として実装することにより、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術を実現できる例示的な機器2800のさまざまな構成要素を示している。実施形態において、機器2800は、テレビクライアント機器(たとえば、テレビセットトップボックス、デジタルビデオレコーダ(DVR)等)、家庭用機器、コンピュータ機器、サーバ機器、携帯用コンピュータ機器、ユーザ機器、通信機器、ビデオ処理および/もしくはレンダリング機器、家電機器、ゲーム機、電子機器、ならびに/または別の種類の機器の形態で、有線および/または無線機器の一方または組み合わせとして実装可能である。また、機器2800は、ユーザ、ソフトウェア、ファームウェア、および/または機器の組み合わせを含む論理デバイスを記述するように当該機器を動作させるユーザ(たとえば、人間)および/または実体と関連付けられていてもよい。
[0125] 機器2800は、機器データ2804(たとえば、受信データ、受信中データ、ブロードキャスト予定のデータ、データのデータパケット等)の有線および/または無線通信を可能にする通信機器2802を具備する。機器データ2804または他の機器コンテンツとしては、機器の構成設定、機器に格納されたメディアコンテンツ、および/または機器のユーザと関連付けられた情報が挙げられる。機器2800に格納されたメディアコンテンツとしては、任意の種類の音声、映像、および/または画像データが挙げられる。機器2800は、ユーザが選択可能な入力、メッセージ、楽曲、テレビメディアコンテンツ、記録した映像コンテンツ、ならびに任意のコンテンツおよび/もしくはデータ源から受信したその他任意の種類の音声、映像、および/もしくは画像データ等、任意の種類のデータ、メディアコンテンツ、および/または入力を受信可能なものを介して1つまたは複数のデータ入力2806を具備する。
[0126] また、機器2800は、シリアルおよび/もしくはパラレルインターフェース、無線インターフェース、任意の種類のネットワークインターフェース、モデムのうちの任意の1つもしくは複数、ならびにその他任意の種類の通信インターフェースとして実装可能な通信インターフェース2808を具備する。通信インターフェース2808は、他の電子機器、コンピュータ機器、および通信機器が機器2800とデータをやり取りする機器2800と通信ネットワークとの間の接続および/または通信リンクを提供する。
[0127] 機器2800は、さまざまなコンピュータ実行可能命令を処理して当該機器2800の動作を制御するとともに、マルチアプリケーション環境を可能にする技術を有効化する1つまたは複数のプロセッサ2810(たとえば、マイクロプロセッサ、コントローラ等のいずれか)を具備する。この代替または追加として、機器2800は、2812で大略特定される処理および制御回路との関連で実装されるハードウェア、ファームウェア、または固定論理回路のいずれか1つまたは組み合わせにて実装可能である。図示はしていないが、機器2800は、機器内のさまざまな構成要素を結合するシステムバスまたはデータ転送システムを具備し得る。システムバスとしては、メモリバスもしくはメモリコントローラ、周辺機器用バス、ユニバーサルシリアルバス、ならびに/または多様なバスアーキテクチャのいずれかを利用するプロセッサもしくはローカルバス等、さまざまなバス構造のいずれか1つまたは組み合わせが挙げられる。
[0128] また、機器2800は、ランダムアクセスメモリ(RAM)、不揮発性メモリ(たとえば、リードオンリーメモリ(ROM)、フラッシュメモリ、EPROM、EEPROM等のうちの任意の1つまたは複数)、およびディスク記憶装置等を一例として、永続的および/または持続的なデータ記憶(すなわち、単なる信号伝送の対照)を可能にする1つまたは複数のメモリデバイス等のコンピュータ可読記憶媒体2814を具備する。ディスク記憶装置は、ハードディスクドライブ、記録および/または書き換え可能なコンパクトディスク(CD)、任意の種類のデジタル多用途ディスク(DVD)等、任意の種類の磁気または光学記憶装置として実装されていてもよい。また、機器2800は、大容量記憶媒体装置2816を具備し得る。
[0129] コンピュータ可読記憶媒体2814は、機器データ2804のほか、さまざまな機器アプリケーション2818ならびに機器2800の動作態様と関連するその他任意の種類の情報および/もしくはデータを格納するデータ記憶機構を提供する。たとえば、コンピュータ可読記憶媒体2814によって、オペレーティングシステム2820をコンピュータアプリケーションとして維持するとともに、プロセッサ2810上で実行することができる。機器アプリケーション2818としては、任意の形態の制御アプリケーション、ソフトウェアアプリケーション、信号処理および制御モジュール、特定の機器に由来するコード、特定の機器のハードウェア抽象化レイヤ等の機器マネージャが挙げられる。
[0130] また、機器アプリケーション2818は、マルチアプリケーション環境モジュール118、システムインターフェースモジュール120、入力モジュール122、アプリケーション124、アプリケーションマネージャ128、およびウィンドウマネージャ132を具備する機器アプリケーション2818等、本技術を実現する任意のシステムコンポーネントまたはモジュールを具備する。
結論
[0131] 特徴および/または方法に特有の表現にて、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術および装置の実施形態を説明したが、添付の特許請求の範囲の主題は、必ずしも上記特定の特徴または方法に限定されないことが了解されるものとする。むしろ、上記特定の特徴および方法は、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする例示的な実施態様として開示している。
[0131] 特徴および/または方法に特有の表現にて、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする技術および装置の実施形態を説明したが、添付の特許請求の範囲の主題は、必ずしも上記特定の特徴または方法に限定されないことが了解されるものとする。むしろ、上記特定の特徴および方法は、アプリケーションウィンドウの領域ベースのサイズ調節および適所配置を可能にする例示的な実施態様として開示している。
Claims (15)
- アプリケーションウィンドウの移動に応答して前記アプリケーションウィンドウをサイズ調節するコンピュータ実装方法であって、
所定エリアを有するユーザインターフェースに前記アプリケーションウィンドウを表示するステップであり、前記所定エリアがそれぞれ、前記ユーザインターフェースの各領域に対応する、ステップと、
前記所定エリアのうちの1つに基づき、前記所定エリアに対応する前記各領域へと前記アプリケーションウィンドウを移動させる入力に応答して、前記アプリケーションウィンドウのサイズを変更するステップと、
を含む、コンピュータ実装方法。 - 前記アプリケーションウィンドウの前記サイズが、前記アプリケーションウィンドウの前記サイズおよび前記所定エリアのサイズが略同一となるように変更される、請求項1に記載のコンピュータ実装方法。
- 前記アプリケーションウィンドウが前記ユーザインターフェースの前記所定エリアを満たすように、前記アプリケーションウィンドウを前記ユーザインターフェースの前記所定エリアに移動させるステップをさらに含む、請求項2に記載のコンピュータ実装方法。
- 前記アプリケーションウィンドウのプレビューを表示することにより、前記アプリケーションウィンドウの前記変更したサイズを視覚的に示すステップをさらに含む、請求項1に記載のコンピュータ実装方法。
- 前記ユーザインターフェースの前記所定エリアが、前記ユーザインターフェースの略半分を占め、前記ユーザインターフェースの縁部を含み、対応する前記各領域が前記縁部に沿って位置付けられる、請求項1に記載のコンピュータ実装方法。
- 前記ユーザインターフェースの前記所定エリアが、前記ユーザインターフェースの略4分の1を占め、前記ユーザインターフェースの隅部を含み、対応する前記領域が前記隅部に位置付けられる、請求項1に記載のコンピュータ実装方法。
- 前記ユーザインターフェースの前記所定エリアが、前記ユーザインターフェース全体を占め、対応する前記領域が、前記ユーザインターフェースの上縁に沿って位置付けられた、請求項1に記載のコンピュータ実装方法。
- 所定エリアを有するユーザインターフェースを表示するように構成されたディスプレイと、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによる実行に応答して、
所定エリアを有する前記ユーザインターフェース内でアプリケーションウィンドウを移動させる入力を受け付けることと、
前記アプリケーションウィンドウの状態および前記受け付けた入力に基づいて、前記アプリケーションウィンドウを配置する前記所定エリアのうちの1つを選択することと、
前記選択した所定エリアに基づいて、前記アプリケーションウィンドウが前記所定エリアを満たすように前記アプリケーションウィンドウのサイズを変更することと、
前記変更したサイズにて、前記アプリケーションウィンドウを前記ユーザインターフェースの前記選択した所定エリアに表示することと、
を含む演算を前記1つまたは複数のプロセッサに行わせるプロセッサ実行可能命令を格納した1つまたは複数のコンピュータ可読媒体と、
を備えた、システム。 - 前記アプリケーションウィンドウの前記状態が、前記アプリケーションウィンドウの現在のサイズか、前記アプリケーションウィンドウの現在の位置か、または前記アプリケーションウィンドウが現在占めている前記所定エリアのうちの1つを含む、請求項8に記載のシステム。
- 前記演算が、前記選択した所定エリアにおける前記アプリケーションウィンドウの表示に先立って、前記アプリケーションウィンドウのプレビューを表示することにより、前記アプリケーションウィンドウの前記変更したサイズおよび前記選択した所定エリアにおける前記アプリケーションウィンドウの暫定位置を視覚的に示すことをさらに含む、請求項8に記載のシステム。
- 前記演算が、前記アプリケーションウィンドウの前記プレビューを表示している間に、前記選択した所定エリアにおける前記アプリケーションウィンドウの配置を確認する付加的な入力を受け付けることをさらに含み、前記選択した所定エリアにおける前記アプリケーションウィンドウの表示が、前記付加的な入力の受け付けに応答して行われる、請求項10に記載のシステム。
- 前記演算が、
前記アプリケーションウィンドウの前記プレビューを表示している間に、付加的な入力を受け付けることと、
前記所定エリアおよび前記受け付けた付加的な入力に基づいて、前記アプリケーションウィンドウを表示する前記所定エリアのうちの別の所定エリアを選択することと、
前記別の所定エリアに基づいて、前記アプリケーションウィンドウが前記別の所定エリアを満たすように、前記アプリケーションウィンドウの前記変更したサイズをさらに変更することと、
前記さらに変更したサイズにて、前記アプリケーションウィンドウを前記ユーザインターフェースの前記別の所定エリアに表示することと、
をさらに含む、請求項10に記載のシステム。 - 前記入力が、タッチ入力、マウス入力、タッチパッド入力、キーボード入力、音声入力、またはスタイラス入力を含む、請求項8に記載のシステム。
- 前記ユーザインターフェースが、前記アプリケーションウィンドウおよび少なくとも1つの他のアプリケーションウィンドウを表示するマルチアプリケーション環境を含む、請求項8に記載のシステム。
- 前記ユーザインターフェースの前記所定エリアが、前記ユーザインターフェースの四分エリア、前記ユーザインターフェースの二分エリア、または前記ユーザインターフェースの全エリアを含む、請求項8に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/448,946 US20160034157A1 (en) | 2014-07-31 | 2014-07-31 | Region-Based Sizing and Positioning of Application Windows |
US14/448,946 | 2014-07-31 | ||
PCT/US2015/042226 WO2016018804A1 (en) | 2014-07-31 | 2015-07-27 | Region-based sizing and positioning of application windows |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017526057A true JP2017526057A (ja) | 2017-09-07 |
Family
ID=53794520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017503480A Pending JP2017526057A (ja) | 2014-07-31 | 2015-07-27 | アプリケーションウィンドウの領域ベースのサイズ調節および適所配置 |
Country Status (11)
Country | Link |
---|---|
US (1) | US20160034157A1 (ja) |
EP (1) | EP3175339A1 (ja) |
JP (1) | JP2017526057A (ja) |
KR (1) | KR20170037651A (ja) |
CN (1) | CN106662965A (ja) |
AU (1) | AU2015296849A1 (ja) |
BR (1) | BR112017000537A2 (ja) |
CA (1) | CA2955476A1 (ja) |
MX (1) | MX2017001458A (ja) |
RU (1) | RU2017102898A (ja) |
WO (1) | WO2016018804A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023540657A (ja) * | 2021-08-02 | 2023-09-26 | サムスン エレクトロニクス カンパニー リミテッド | 画面制御方法及び装置 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US9471211B2 (en) * | 2013-03-18 | 2016-10-18 | International Business Machines Corporation | Chaining applications |
US10324733B2 (en) | 2014-07-30 | 2019-06-18 | Microsoft Technology Licensing, Llc | Shutdown notifications |
US9787576B2 (en) | 2014-07-31 | 2017-10-10 | Microsoft Technology Licensing, Llc | Propagating routing awareness for autonomous networks |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
KR20160026141A (ko) | 2014-08-29 | 2016-03-09 | 삼성전자주식회사 | 윈도우 운용 방법 및 이를 지원하는 전자 장치 |
CN106055252B (zh) * | 2016-05-30 | 2019-04-30 | 努比亚技术有限公司 | 移动终端及其分屏显示处理方法 |
CN107272993A (zh) * | 2017-06-30 | 2017-10-20 | 深圳铂睿智恒科技有限公司 | 智能终端窗口视图的控制方法及系统 |
US11237699B2 (en) | 2017-08-18 | 2022-02-01 | Microsoft Technology Licensing, Llc | Proximal menu generation |
US10417991B2 (en) | 2017-08-18 | 2019-09-17 | Microsoft Technology Licensing, Llc | Multi-display device user interface modification |
US11301124B2 (en) * | 2017-08-18 | 2022-04-12 | Microsoft Technology Licensing, Llc | User interface modification using preview panel |
KR102519373B1 (ko) * | 2017-08-22 | 2023-04-10 | (주) 더존비즈온 | 셀 크기 조절 장치 및 방법 |
CN108536344A (zh) * | 2018-01-09 | 2018-09-14 | 网易(杭州)网络有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN108595140B (zh) * | 2018-05-09 | 2021-07-23 | 歌尔光学科技有限公司 | 用于展示多显示器显示内容的方法、装置及电子设备 |
US11150746B2 (en) * | 2018-06-28 | 2021-10-19 | Google Llc | Wearable electronic devices having user interface mirroring based on device position |
CN109348276B (zh) | 2018-11-08 | 2019-12-17 | 北京微播视界科技有限公司 | 视频画面调整方法、装置、计算机设备和存储介质 |
CN114397980B (zh) | 2018-11-26 | 2024-09-24 | 华为技术有限公司 | 一种应用显示方法及电子设备 |
CN111722817B (zh) * | 2019-03-20 | 2023-04-07 | 比亚迪股份有限公司 | 车辆的多屏显示调节方法、显示系统及车辆 |
WO2020250353A1 (ja) * | 2019-06-12 | 2020-12-17 | 日本電信電話株式会社 | 情報提示装置、方法およびプログラム |
CN110569094B (zh) * | 2019-07-29 | 2022-04-12 | 华为技术有限公司 | 一种显示方法及电子设备 |
CN110809100A (zh) * | 2019-10-30 | 2020-02-18 | 北京字节跳动网络技术有限公司 | 视频处理的方法及装置、终端和存储介质 |
WO2021083146A1 (zh) | 2019-10-30 | 2021-05-06 | 北京字节跳动网络技术有限公司 | 视频处理方法、装置、终端及存储介质 |
CN110784674B (zh) | 2019-10-30 | 2022-03-15 | 北京字节跳动网络技术有限公司 | 视频处理的方法、装置、终端及存储介质 |
CN111263104A (zh) * | 2020-02-07 | 2020-06-09 | 视联动力信息技术股份有限公司 | 一种窗口的展示方法、装置和存储介质 |
CN111611035B (zh) * | 2020-04-29 | 2022-05-31 | 浙江大华技术股份有限公司 | 自定义窗口分割布局方法、装置、计算机设备和存储介质 |
US12147650B2 (en) * | 2022-06-30 | 2024-11-19 | Microsoft Technology Licensing, Llc | Window arrangements using tabbed user interface elements |
CN117425057A (zh) | 2022-07-07 | 2024-01-19 | 抖音视界(北京)有限公司 | 用于影像拍摄的方法、装置、设备和存储介质 |
CN117149320A (zh) * | 2022-08-09 | 2023-12-01 | 惠州Tcl移动通信有限公司 | 界面显示方法、装置、计算机设备和存储介质 |
CN115334246A (zh) | 2022-09-06 | 2022-11-11 | 抖音视界有限公司 | 用于影像拍摄的方法、装置、设备和存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958454B2 (en) * | 2005-04-19 | 2011-06-07 | The Mathworks, Inc. | Graphical state machine based programming for a graphical user interface |
US8656295B2 (en) * | 2007-01-05 | 2014-02-18 | Apple Inc. | Selecting and manipulating web content |
US8356258B2 (en) * | 2008-02-01 | 2013-01-15 | Microsoft Corporation | Arranging display areas utilizing enhanced window states |
JP2009245423A (ja) * | 2008-03-13 | 2009-10-22 | Panasonic Corp | 情報機器およびウインドウ表示方法 |
KR101636570B1 (ko) * | 2009-10-28 | 2016-07-20 | 엘지전자 주식회사 | 출력표시영역 제어 장치 및 방법 |
US9116594B2 (en) * | 2010-01-19 | 2015-08-25 | Lg Electronics Inc. | Mobile terminal and control method thereof |
US9178981B2 (en) * | 2010-12-22 | 2015-11-03 | Lg Electronics Inc. | Mobile terminal and method of sharing information therein |
CN102789355B (zh) * | 2011-05-16 | 2015-04-15 | 华硕电脑股份有限公司 | 具触控屏幕的电脑系统及其视窗大小调整方法 |
US8890808B2 (en) * | 2012-01-06 | 2014-11-18 | Microsoft Corporation | Repositioning gestures for chromeless regions |
US10585553B2 (en) * | 2012-12-06 | 2020-03-10 | Samsung Electronics Co., Ltd. | Display device and method of controlling the same |
CN104423794A (zh) * | 2013-09-11 | 2015-03-18 | 上海帛茂信息科技有限公司 | 一种具有双窗口显示功能的智能型移动设备 |
CN103809850A (zh) * | 2014-02-10 | 2014-05-21 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
-
2014
- 2014-07-31 US US14/448,946 patent/US20160034157A1/en not_active Abandoned
-
2015
- 2015-07-27 KR KR1020177005541A patent/KR20170037651A/ko not_active Withdrawn
- 2015-07-27 EP EP15748132.6A patent/EP3175339A1/en not_active Withdrawn
- 2015-07-27 JP JP2017503480A patent/JP2017526057A/ja active Pending
- 2015-07-27 RU RU2017102898A patent/RU2017102898A/ru not_active Application Discontinuation
- 2015-07-27 WO PCT/US2015/042226 patent/WO2016018804A1/en active Application Filing
- 2015-07-27 BR BR112017000537A patent/BR112017000537A2/pt not_active Application Discontinuation
- 2015-07-27 AU AU2015296849A patent/AU2015296849A1/en not_active Abandoned
- 2015-07-27 MX MX2017001458A patent/MX2017001458A/es unknown
- 2015-07-27 CA CA2955476A patent/CA2955476A1/en not_active Abandoned
- 2015-07-27 CN CN201580040729.4A patent/CN106662965A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023540657A (ja) * | 2021-08-02 | 2023-09-26 | サムスン エレクトロニクス カンパニー リミテッド | 画面制御方法及び装置 |
JP7440669B2 (ja) | 2021-08-02 | 2024-02-28 | サムスン エレクトロニクス カンパニー リミテッド | 画面制御方法及び装置 |
US11934622B2 (en) | 2021-08-02 | 2024-03-19 | Samsung Electronics Co., Ltd. | Split screen layout controlling method and device |
Also Published As
Publication number | Publication date |
---|---|
CA2955476A1 (en) | 2016-02-04 |
US20160034157A1 (en) | 2016-02-04 |
EP3175339A1 (en) | 2017-06-07 |
KR20170037651A (ko) | 2017-04-04 |
CN106662965A (zh) | 2017-05-10 |
WO2016018804A1 (en) | 2016-02-04 |
MX2017001458A (es) | 2017-05-09 |
AU2015296849A1 (en) | 2017-01-12 |
RU2017102898A (ru) | 2018-07-30 |
BR112017000537A2 (pt) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3175341B1 (en) | Dynamic joint dividers for application windows | |
EP3175338B1 (en) | Adaptive sizing and positioning of application windows | |
EP3175340B1 (en) | Assisted presentation of application windows | |
JP2017526057A (ja) | アプリケーションウィンドウの領域ベースのサイズ調節および適所配置 | |
US20160103793A1 (en) | Heterogeneous Application Tabs |