JP2008535083A - アプリケーションウィンドウのグループ化および管理のための方法および装置 - Google Patents
アプリケーションウィンドウのグループ化および管理のための方法および装置 Download PDFInfo
- Publication number
- JP2008535083A JP2008535083A JP2008504008A JP2008504008A JP2008535083A JP 2008535083 A JP2008535083 A JP 2008535083A JP 2008504008 A JP2008504008 A JP 2008504008A JP 2008504008 A JP2008504008 A JP 2008504008A JP 2008535083 A JP2008535083 A JP 2008535083A
- Authority
- JP
- Japan
- Prior art keywords
- application window
- group
- application
- window
- windows
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
ディスプレイ画面上に複数のウィンドウを表示するための方法が説明される。本方法は、ディスプレイ画面(要素300b)上に第1のアプリケーションウィンドウ(要素340a)と、第1のアプリケーションウィンドウと独立しており外部に存在する第2のアプリケーションウィンドウ(要素331)とを表示するステップと、第1のアプリケーションウィンドウと第2のアプリケーションウィンドウとを1つのグループとして宣言するステップと、第1のアプリケーションウィンドウと第2のウィンドウとを1つのグループ(330)へとグループ化するステップと、ディスプレイ画面(330)上の表現としてそのグループを表示するステップとを含んでいる。新しいアプリケーションウィンドウが開かれるときに、それらは、そのグループに追加することができ、かつ/またはそれらは、第2のグループのアプリケーションウィンドウのメンバになることができる。ユーザは、様々なグループ間で切り換えることができる。
Description
本発明の態様は、一般にオペレーティングシステム中におけるウィンドウ構成を対象としている。より詳細には、本発明の態様は、オペレーティングシステム中における複数のウィンドウをグループ化し、何らかのインテリジェントな動作が諸ウィンドウ間に存在することができるようにするための方法およびシステムを対象としている。
労働においても私生活においてもコンピュータの使用が増大するにつれて、コンピュータのより簡単な使用を可能にしたいという要望がもたれている。今日では多数のオペレーティングシステムが、ウィンドウベースのコンフィギュレーションのアプリケーションプログラムを利用している。情報は、数枚の書類があるように見えるようにしてディスプレイスクリーン上に表示される。諸ウィンドウとインターフェースすることにより、ユーザは、まるで1枚の書類をつかむかのように任意のウィンドウにアクセスすることができる。ウィンドウベースのコンフィギュレーションにより、ユーザは、ディスプレイ画面上に同時に複数のウィンドウを開くことができるようになる。
アプリケーションウィンドウは、すべてのグラフィックユーザインターフェース(graphical user interface)(GUI)システムのためのユーザインターフェース機能である。アプリケーションウィンドウは、システム間で外観が異なることもあるが、それらのアプリケーションウィンドウは、サイズ変更し位置を変更する機能、異なる複数のアプリケーションに関連する他の複数のアプリケーションウィンドウの間に存在させる機能など、多数の共通の属性を共有する。複数のアプリケーションウィンドウは、一緒に、互いに他方の上に層状に重ねられ、一般的に各ウィンドウがユーザによって最後にアクセスされた順序によって表わされて画面上に同時に現れる。
現代のGUIに共通のユーザ対話のシナリオは、共通の画面領域(screen real estate)を共用する複数の同時に開かれたアプリケーションウィンドウを伴う。複数の同時に開かれたアプリケーションウィンドウについてのサポートは、現代のGUIの魅力および能力の一部分であるが、これは、しばしばアプリケーションウィンドウのオーバーラップと互いに見えなくすることをもたらし、ユーザが特定のアプリケーションウィンドウを見出し、それにナビゲートすることを困難にする。このタイプのシナリオと関連するソリューションは、一般にウィンドウ管理の問題とソリューションと称される。
ユーザは一般的に、アプリケーションウィンドウを電子メールなどのタスクに関連付け、さらに複数のアプリケーションウィンドウと単一のタスクまたはプロジェクトとの間の精神的な関連付けを作成することができる。例えば、スライドショープレゼンテーション(slide show presentation)を生成するために、ユーザは、おそらく電子メール、グラフィックアプリケーション、スプレッドシートアプリケーションなど、1つまたは複数のアプリケーションからの3つまたは4つの異なるアプリケーションウィンドウからのコンテンツを必要とすることもある。複数のアプリケーションウィンドウが、画面上で目に見えることもあり、各アプリケーションウィンドウは、1つまたは複数のタスクに関連付けられる。ユーザは、これらの異なるアプリケーションウィンドウの間で所在を見出しナビゲートして、コンテンツにアクセスし、またはコンテンツを交換して、タスクを完了する必要がある。
多数のGUI中には共通のウィンドウ管理ソリューションが存在し、それによってアプリケーションウィンドウは、一次作業画面スペース中において最小にし、ビューから取り除くことができる。最小化されたアプリケーションウィンドウは、一般的にかなり小さなUI要素によって表される。ワシントン州、レッドモンド市のマイクロソフト(登録商標)(Microsoft(R) Corporation)によるWindows(登録商標)XPにおいては、最小化されたアプリケーションウィンドウは、タスクバーコントロール(Task Bar control)など、コントロールバー(control bar)上のボタン(button)として表される。カリフォルニア州、クパチーノ市のアップルコンピュータ社(Apple Computer, Inc.)によるMac OS Xにおいては、最小化されたアプリケーションウィンドウは、ドック(Dock)中の小型サムネイルボタン(miniature thumbnail button)として表される。アプリケーションウィンドウを最小化することにより、ユーザは、画面スペースから不必要なアプリケーションウィンドウを取り除くことができ、それによってユーザは、アプリケーションウィンドウのより小さな組に集中することができる。しかし、アプリケーションウィンドウを最小化することは、個別に実行することができるだけである。同様に、アプリケーションウィンドウは、最小化状態から取り出し、目に見えるアプリケーションウィンドウの組に対して再導入することができるが、これは、個別のアプリケーションウィンドウに基づいて行うことができるにすぎない。
現在では、独立した外部のウィンドウは、一緒にしてグループ化することができず、それ故に異種のウィンドウは、一緒に管理することができない。オペレーティングシステムは、現在では互いに一緒にグループ化すべき複数のウィンドウを許可せず、その結果、1つのウィンドウ上で実行されるオペレーションは、第2の独立した外部のアプリケーションウィンドウ上で自動的に実行することができない。
任意の複数のアプリケーションウィンドウを一緒にしてグループ化し、それ故に異種ウィンドウを、一緒に管理することができる機能が必要になっている。ディスプレイ画面上で第1のアプリケーションウィンドウと、第1のアプリケーションウィンドウと独立しており外部に存在する第2のアプリケーションウィンドウとを表示し、第1のアプリケーションウィンドウと第2のアプリケーションウィンドウとを1つのグループとして宣言し、第1のアプリケーションウィンドウと第2のアプリケーションウィンドウとを1つのグループへとグループ化し、ディスプレイ画面上で表現としてそのグループを表示するための方法が必要になっている。
本発明の態様は、複数のアプリケーションウィンドウを1つのグループとして管理する際の助けとなるウィンドウ管理システムを提供する。本発明の態様は、アプリケーションウィンドウの1つのグループを作成し、そのグループを最小化し、それによって以前に識別されたグループを取り出すことができるようにする新しい方法および装置を提供する。本方法により、ユーザは、それらのアプリケーションウィンドウからタスクへの関連付けを形式化し、例えば1つのグループを作成し、これらの関連付け、例えばアプリケーションウィンドウグループアイコン(application window group icon)を管理する機能を提供することができるようになる。
本発明の前述の概要、ならびに例示の実施形態についての以降の詳細な説明は、一例として含められるが、請求されている本発明に関する限定としては含められていない添付図面と併せて読まれるときに、よりよく理解される。
様々な例示の実施形態の以降の説明においては、本明細書の一部分を形成し、本発明を実行することができる様々な実施形態が例証として示される添付図面に対する参照が行われる。他の実施形態を利用することができ、本発明の範囲を逸脱することなく構成および機能の修正を行うことができることを理解すべきである。
図1は、本発明を実装することができる適切なコンピューティングシステム環境100の一例を示すものである。コンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の用途または機能の範囲についてどのような限定も示唆することは意図されてはいない。コンピューティングシステム環境100は、例示のコンピューティングシステム環境100中に示されるコンポーネントの任意の1つまたは組合せに関連したどのような依存性も要件も有するものと解釈されるべきではない。
本発明は、非常に多数の他の汎用または専用のコンピューティングシステムの環境またはコンフィギュレーションを用いて動作可能である。本発明と共に使用するのに適したものとすることができるよく知られているコンピューティングシステム、コンピューティング環境、および/またはコンピューティングコンフィギュレーションの例は、それだけには限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルな大衆消費電子製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、以上のシステムまたはデバイスのどれかを含む分散コンピューティング環境などを含む。
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な場合について説明することができる。一般に、プログラムモジュールは、特定のタスクを実行し、あるいは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含んでいる。本発明は、タスクが、通信ネットワークを介してリンクされるリモート処理デバイスによって実行される場合の分散コンピューティング環境において実行することもできる。分散コンピューティング環境においては、プログラムモジュールは、メモリストレージデバイスを含めて、ローカルコンピュータストレージ媒体にもリモートコンピュータストレージ媒体にも配置することができる。
図1Aを参照すると、本発明を実装するための例示のシステムは、コンピュータ110の形態の汎用コンピューティングデバイスを含んでいる。コンピュータ110のコンポーネントは、それだけには限定されないが、処理装置120、システムメモリ130、およびシステムメモリを含めて様々なシステムコンポーネントを処理装置120に結合するシステムバス121を含むことができる。システムバス121は、様々なバスアーキテクチャのうちの任意のものを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含めて、いくつかのタイプのバス構造のうちの任意のものであってもよい。一例として、限定するものではないが、そのようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture)(ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture)(MCA)バス、拡張ISA(Enhanced ISA)(EISA)バス、ビデオエレクトロニクス規格協会(Video Electronics Standard Association)(VESA)ローカルバス、およびメザニンバス(Mezzanine bus)としても知られているペリフェラルコンポーネント相互接続(Peripheral Component Interconnect)(PCI)バスを含んでいる。
コンピュータ110は、一般的に様々なコンピュータ読取り可能媒体を含んでいる。コンピュータ読取り可能媒体は、コンピュータ110によってアクセスすることができ、揮発性媒体も不揮発性媒体も、着脱可能媒体も着脱不能媒体も含む使用可能な任意の媒体とすることができる。一例として限定するものではないが、コンピュータ読取り可能媒体は、コンピュータストレージ媒体および通信媒体を備えることができる。コンピュータストレージ媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、他のデータなどの情報の記憶のための任意の方法または技術で実装された揮発性および不揮発性の着脱可能および着脱不能な媒体を含んでいる。コンピュータストレージ媒体は、それだけには限定されないが、望ましい情報を記憶するために使用することができ、コンピュータ110によってアクセスすることができるランダムアクセスメモリ(random access memory)(RAM)、読取り専用メモリ(read only memory)(ROM)、電子的消去可能プログラマブル読取り専用メモリ(electronically erasable programmable read only memory)(EEPROM)、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(digital versatile disk)(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは任意の他の媒体を含む。通信媒体は、一般的に搬送波や他の移送メカニズムなどの被変調データ信号の形のコンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータを実装し、任意の情報配信媒体を含んでいる。用語「被変調データ信号」は、情報を信号の形で符号化するような方法で1つまたは複数のその特性が設定され、または変更された信号を意味する。一例として、限定するものではないが、通信媒体は、有線ネットワーク、直接配線接続などの有線媒体と、音響媒体、RF媒体、赤外線媒体、他の無線媒体などの無線媒体を含んでいる。以上のうちの任意の組合せもまた、コンピュータ読取り可能媒体の範囲内に含められるべきである。
システムメモリ130は、ROM131やRAM132など、揮発性および/または不揮発性のメモリの形態のコンピュータストレージ媒体を含んでいる。起動中などにコンピュータ110内の要素間の情報を転送する助けを行う基本ルーチンを含む基本入出力システム(basic input/output system)(BIOS)133は、一般的にROM131中に記憶される。RAM132は、一般的に処理装置120によって直接にアクセス可能であり、かつ/または現在動作させられているデータおよび/またはプログラムモジュールを含んでいる。一例として、限定するものではないが、図1Aは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示している。
コンピュータ110は、他の着脱可能/着脱不能な揮発性/不揮発性のコンピュータストレージ媒体も含むこともできる。一例としてだけであるが、図1Aは、着脱不能な不揮発性の磁気媒体から読み取り、またはそれに書き込むハードディスクドライブ141と、着脱可能な不揮発性の磁気ディスク152から読み取り、それに書き込む磁気ディスクドライブ151と、CD ROMや他の光媒体など着脱可能な不揮発性の光ディスク156から読み取り、またはそれに書き込む光ディスクドライブ155とを示している。例示の動作環境中において使用することができる他の着脱可能/着脱不能な揮発性/不揮発性のコンピュータストレージ媒体は、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどを含んでいる。ハードディスクドライブ141は、一般的にインターフェース140などの着脱不能メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、一般的にインターフェース150などの着脱可能メモリインターフェースによってシステムバス121に接続される。
以上で論じられ図1Aに示されたドライブとそれらの関連するコンピュータストレージ媒体は、コンピュータ110についてのコンピュータ読取り可能命令、データ構造、プログラムモジュールおよび他のデータの記憶を実現する。図1Aにおいては、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を記憶するものとして示される。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであっても、またはそれらとは異なっていてもどちらにもすることができることに注意すべきである。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は、少なくともそれらが異なるコピーであることを示すためにここでは異なる番号が付与される。ユーザは、デジタルカメラ163、キーボード162、一般的にマウス、トラックボールまたはタッチパッドと称されるポインティングデバイス161などの入力デバイスを介してコンピュータ110にコマンドおよび情報を入力することができる。(図示されていない)他の入力デバイスは、ペン、スタイラス(stylus)およびタブレット(tablet)、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ(satellite dish)、スキャナなどを含むことができる。これらおよび他の入力デバイスは、多くの場合にシステムバス121に結合されたユーザ入力インターフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(universal serial bus)(USB)などの他のインターフェースおよびバス構造によって接続することもできる。モニタ191または他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを経由してシステムバス121に接続される。モニタに追加して、コンピュータはまた、スピーカ197やプリンタ196などの他のペリフェラル出力デバイスを含むこともでき、これらは、出力ペリフェラルインターフェース195を介して接続することができる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータに対する論理接続を使用してネットワーク化された環境中において動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通のネットワークノードとすることができ、一般的にコンピュータ110に対して以上で説明された要素のうちの多くまたはすべてを含んでいるが、メモリストレージデバイス181だけが図1Aには示されている。図1A中に示された論理接続は、ローカルエリアネットワーク(local area network)(LAN)171と、ワイドエリアネットワーク(wide area network)(WAN)173とを含んでいるが、他のネットワークを含むこともできる。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的になっている。
LANネットワーキング環境において使用されるときには、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境において使用されるときには、コンピュータ110は、一般的にインターネットなどのWAN173上で通信を確立するためのモデム172または他の手段を含んでいる。内部にあっても、または外部にあってもよいモデム172は、ユーザ入力インターフェース160または他の適切なメカニズムを経由してシステムバス121に接続することができる。ネットワーク化環境においては、コンピュータ110に対して示されるプログラムモジュール、またはその一部分は、リモートメモリストレージデバイスに記憶することができる。一例として限定するものではないが、図1Aは、リモートアプリケーションプログラム185をメモリデバイス181上に存在するものとして示している。図に示されるネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段が使用されてもよいことが理解されよう。
図に示されるネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることが理解されよう。TCP/IP、イーサネット(登録商標)、FTP、HTTPなど、様々なよく知られているプロトコルのうちの任意のものの存在が仮定され、システムは、クライアント−サーバのコンフィギュレーション中で動作させられて、それにより、ユーザは、ウェブベースのサーバからウェブページを取り出すことができるようになる。様々な従来のウェブブラウザのうちの任意のものを使用して、ウェブページ上でデータを表示し、操作することができる。
プログラミングインターフェース(またはより簡単に、インターフェース)は、コードの1つまたは複数の他のセグメントによって実現される機能と情報をやり取りし、あるいはその機能にアクセスするコードの1つまたは複数のセグメントを可能にするための任意のメカニズム、プロセス、プロトコルとみなすことができる。代わりに、プログラミングインターフェースは、他の1つ(または複数)のコンポーネントのうちの1つまたは複数のメカニズム、メソッド(method)、ファンクションコール(function call)、モジュールなどに結合して情報伝達することが可能なシステムのコンポーネントの1つまたは複数のメカニズム、メソッド、ファンクションコール、モジュール、オブジェクトなどとみなすこともできる。先行する文章中の用語「コードのセグメント」は、コードの1つまたは複数の命令またはラインを含むことを意図しており、例えば、適用される専門用語にかかわらず、あるいはコードセグメントが別々にコンパイルされるかどうか、コードセグメントがソースコード、中間コード、またはオブジェクトコードとして提供されるかどうか、コードセグメントがランタイムのシステムまたはプロセス中で利用されるかどうか、それらが同じマシンもしくは異なるマシン上に配置され、または複数のマシンにまたがって分散されるかどうか、またはコードのセグメントによって表される機能が、全体的にソフトウェアで、全体的にハードウェアで、またはハードウェアとソフトウェアの組合せの形で実装されるかどうかにかかわらず、コードモジュール、オブジェクト、サブルーチン、ファンクションなどを含んでいる。
概念的に、プログラミングインターフェースは、図1Bまたは図1Cに示されるように、包括的に考えることができる。図1Bは、それを介して第1および第2のコードセグメントが情報をやり取りするコンジット(conduit)としてインターフェース、インターフェース1を示している。図1Cは、(第1および第2のコードセグメントの一部分であっても、あるいはそうでなくてもよい)インターフェースオブジェクトI1およびI2を備えるものとしてインターフェースを示しており、これらのインターフェースオブジェクトにより、システムの第1および第2のコードセグメントは媒体Mを経由して情報をやり取りすることができるようになる。図1Cの図においては、人は、インターフェースオブジェクトI1とI2とを同じシステムの別のインターフェースとして考えることができ、人はまた、オブジェクトI1およびI2プラス媒体Mがインターフェースを構成するものと考えることもできる。図1Bおよび1Cは、双方向フローと、そのフローのおのおのの側上のインターフェースを示すが、ある種の実装形態は、一方向の情報フローを有することができるだけであり(または以下で説明されるように情報フローがない)、あるいは一方の側上にインターフェースオブジェクトを有することができるだけである。一例として、限定するものではないが、アプリケーションプログラミングインターフェース(application programming interface)(API)、エントリポイント(entry point)、メソッド、ファンクション、サブルーチン、リモートプロシージャコール(remote procedure call)、およびコンポーネントオブジェクトモデル(component object model)(COM)インターフェースなどの用語は、プログラミングインターフェースの定義内に包含される。
そのようなプログラミングインターフェースの態様は、第1のコードセグメントが情報(ここで、「情報」は、その最も広い意味で使用され、データ、コマンド、要求などを含んでいる)を第2のコードセグメントに送る方法と、第2のコードセグメントがその情報を受け取る方法と、その情報の構成、シーケンス、構文(syntax)、組織、スキーマ、タイミングおよびコンテンツを含むことができる。この点については、基礎になっている移送媒体それ自体は、情報がインターフェースによって定義されるように移送される限り、媒体が有線であれ、または無線であれ、あるいは両方の組合せであれ、インターフェースのオペレーションにとって重要でないこともある。ある種の状況においては、1つのコードセグメントが、単に第2のコードセグメントによって実施される機能にアクセスするときなど、情報転送は、別のメカニズムを経由している(例えば、バッファ、ファイルなどに配置された情報は、コードセグメントの間の情報フローから別になっている)か、または存在しないこともあるので、情報は、従来の意味で一方向または両方向に渡されないこともある。これらの態様のうちの任意のもの、または、すべては、例えばコードセグメントが疎結合または密結合のコンフィギュレーションにおけるシステムの一部分であるかどうかに応じて、与えられた状況において重要なこともあり、それ故に、このリストは、例示的であり非限定的であると考えられるべきである。
プログラミングインターフェースのこの概念は、当業者には知られており、本発明の前述の詳細な説明から明らかである。しかし、プログラミングインターフェースを実装する他の方法が存在し、明示的に除外されない限り、これらはまた、本明細書に添付された特許請求の範囲によって包含されることが意図される。そのような他の方法は、図1Bおよび1Cの極度に単純化された図よりも高度または複雑であるように見えることもあるが、それらは、それにもかかわらず、同じ全体的な結果を遂行する類似した機能を実行する。本発明者等は、次にプログラミングインターフェースの一部の例示的な代替実装形態について簡単に説明することにする。
A.ファクタリング(FACTORING)
1つのコードセグメントから別のコードセグメントに対するコミュニケーションは、コミュニケーションを複数の離散的なコミュニケーションに分解することにより、間接的に遂行することができる。これは、図1Dおよび1Eに概略的に示される。図に示されるように、一部のインターフェースは、機能の分割可能な組の観点から説明することができる。したがって、図1Bおよび1Cのインターフェース機能は、ちょうど人が数学的に24、または2×2×3×2を提供することができるように同じ結果を達成するためにファクタリングする(factor)ことができる。したがって、図1Dに示されるように、インターフェース、インターフェース1によって提供されるファンクションは、同じ結果を達成しながら、再分割してインターフェースのコミュニケーションを複数のインターフェース、インターフェース1A、インターフェース1B、インターフェース1Cなどへと変換することができる。図1Eに示されるように、インターフェースI1によって提供されるファンクションは、同じ結果を達成しながら、複数のインターフェースI1a、I1b、I1cなどに再分割することができる。同様に、第1のコードセグメントから情報を受け取る第2のコードセグメントのインターフェースI2は、複数のインターフェースI2a、I2b、I2cなどへとファクタリングすることができる。ファクタリングするときに、第1のコードセグメントと共に含められるインターフェースの数は、第2のコードセグメントと共に含められるインターフェースの数と一致する必要はない。図1Dおよび1Eの場合のいずれにおいても、インターフェース、インターフェース1およびI1の機能的な趣旨は、それぞれ図1Bおよび1Cと同じままに留まる。インターフェースのファクタリングはまた、ファクタリングを認識することが困難なこともあるように、連想的な性質、交換可能な性質、および他の数学的性質に従うこともできる。例えば、オペレーションの順序は、重要でないこともあり、その結果、インターフェースによって実行されるファンクションは、インターフェースに到達するのに先立って、コードまたはインターフェースの別の部分によってうまく実行し、あるいはシステムの別個のコンポーネントによって実行することができる。さらに、プログラミング技術分野の当業者は、同じ結果を達成する異なるファンクションコールを行う様々な方法が存在することを認識することができる。
1つのコードセグメントから別のコードセグメントに対するコミュニケーションは、コミュニケーションを複数の離散的なコミュニケーションに分解することにより、間接的に遂行することができる。これは、図1Dおよび1Eに概略的に示される。図に示されるように、一部のインターフェースは、機能の分割可能な組の観点から説明することができる。したがって、図1Bおよび1Cのインターフェース機能は、ちょうど人が数学的に24、または2×2×3×2を提供することができるように同じ結果を達成するためにファクタリングする(factor)ことができる。したがって、図1Dに示されるように、インターフェース、インターフェース1によって提供されるファンクションは、同じ結果を達成しながら、再分割してインターフェースのコミュニケーションを複数のインターフェース、インターフェース1A、インターフェース1B、インターフェース1Cなどへと変換することができる。図1Eに示されるように、インターフェースI1によって提供されるファンクションは、同じ結果を達成しながら、複数のインターフェースI1a、I1b、I1cなどに再分割することができる。同様に、第1のコードセグメントから情報を受け取る第2のコードセグメントのインターフェースI2は、複数のインターフェースI2a、I2b、I2cなどへとファクタリングすることができる。ファクタリングするときに、第1のコードセグメントと共に含められるインターフェースの数は、第2のコードセグメントと共に含められるインターフェースの数と一致する必要はない。図1Dおよび1Eの場合のいずれにおいても、インターフェース、インターフェース1およびI1の機能的な趣旨は、それぞれ図1Bおよび1Cと同じままに留まる。インターフェースのファクタリングはまた、ファクタリングを認識することが困難なこともあるように、連想的な性質、交換可能な性質、および他の数学的性質に従うこともできる。例えば、オペレーションの順序は、重要でないこともあり、その結果、インターフェースによって実行されるファンクションは、インターフェースに到達するのに先立って、コードまたはインターフェースの別の部分によってうまく実行し、あるいはシステムの別個のコンポーネントによって実行することができる。さらに、プログラミング技術分野の当業者は、同じ結果を達成する異なるファンクションコールを行う様々な方法が存在することを認識することができる。
B.再定義
一部の場合においては、意図される結果を依然として遂行しながら、プログラミングインターフェースのある種の態様(例えば、パラメータ)を無視し、追加し、または再定義することが可能なこともある。これについては、図1Fおよび1Gに示される。例えば、図1Bのインターフェース、インターフェース1は、3つのパラメータ、入力、精度および出力を含み、第1のコードセグメントから第2のコードセグメントへと発行されるファンクションコール、スクエア(Square)(入力,精度,出力)を含んでいる。図1Fに示されるように、中間のパラメータ精度が、与えられたシナリオにおいて関係がない場合、それは、同様にただ無視し、あるいは(この状況では)意味のないパラメータと置き換えることさえできる。人はまた、関係のない追加パラメータを追加することもできる。いずれにしても、入力が第2のコードセグメントによって2乗された後に、出力が戻される限り、スクエアの機能は、達成することができる。精度は、確実にコンピューティングシステムのあるダウンストリームまたは他の部分に対する意味のあるパラメータとなり得る。しかし、ひとたび精度がスクエアを計算する狭い目的のためには必要でないことが認識されると、精度は、置き換え、または無視することができる。例えば、有効な精度値を渡す代わりに、誕生日など、意味のない値は、その結果に悪影響を及ぼすことなく渡すことができる。同様に、図1Gに示されるように、インターフェースI1は、インターフェースI1’によって置き換えられ、インターフェースに対するパラメータを無視または追加するために再定義される。インターフェースI2も同様に、インターフェースI2’として再定義され、不必要なパラメータ、あるいは他のどこかで処理することができるパラメータを無視するために再定義される。ここでのポイントは、一部の場合においては、プログラミングインターフェースは、ある目的のために必要とされない、パラメータなどの態様を含むことができ、それ故にそれらは、無視または再定義し、あるいは他の目的のために他のどこかで処理することができる。
一部の場合においては、意図される結果を依然として遂行しながら、プログラミングインターフェースのある種の態様(例えば、パラメータ)を無視し、追加し、または再定義することが可能なこともある。これについては、図1Fおよび1Gに示される。例えば、図1Bのインターフェース、インターフェース1は、3つのパラメータ、入力、精度および出力を含み、第1のコードセグメントから第2のコードセグメントへと発行されるファンクションコール、スクエア(Square)(入力,精度,出力)を含んでいる。図1Fに示されるように、中間のパラメータ精度が、与えられたシナリオにおいて関係がない場合、それは、同様にただ無視し、あるいは(この状況では)意味のないパラメータと置き換えることさえできる。人はまた、関係のない追加パラメータを追加することもできる。いずれにしても、入力が第2のコードセグメントによって2乗された後に、出力が戻される限り、スクエアの機能は、達成することができる。精度は、確実にコンピューティングシステムのあるダウンストリームまたは他の部分に対する意味のあるパラメータとなり得る。しかし、ひとたび精度がスクエアを計算する狭い目的のためには必要でないことが認識されると、精度は、置き換え、または無視することができる。例えば、有効な精度値を渡す代わりに、誕生日など、意味のない値は、その結果に悪影響を及ぼすことなく渡すことができる。同様に、図1Gに示されるように、インターフェースI1は、インターフェースI1’によって置き換えられ、インターフェースに対するパラメータを無視または追加するために再定義される。インターフェースI2も同様に、インターフェースI2’として再定義され、不必要なパラメータ、あるいは他のどこかで処理することができるパラメータを無視するために再定義される。ここでのポイントは、一部の場合においては、プログラミングインターフェースは、ある目的のために必要とされない、パラメータなどの態様を含むことができ、それ故にそれらは、無視または再定義し、あるいは他の目的のために他のどこかで処理することができる。
C.インラインコーディング(INLINE CODING)
それらのコードモジュールの間の「インターフェース」が形態を変更するように、2つの別個のコードモジュールの機能の一部またはすべてをマージすることも実現可能なこともある。例えば、図1Bおよび1Cの機能は、それぞれ図1Hおよび1Iの機能に変換することができる。図1Hにおいては、図1Bの以前の第1のコードセグメントと第2のコードセグメントは、それらの両方を含むモジュールにマージされる。この場合に、それらのコードセグメントは、依然として互いに情報をやり取りしていることもあるが、インターフェースは、単一のモジュールにより適した形態に適応させることができる。したがって、例えば形式的なコールステートメント(Call statement)およびリターンステートメント(Return statement)が、もはや必要でないこともあり、インターフェース、インターフェース1に従った同様な処理または1つ(または複数)の応答が、依然として効力があることもある。同様に、図1Iに示されるように、図1CからのインターフェースI2の一部(または全部)は、インターフェースI1にインラインに書き込まれ、インターフェースI1”を形成することができる。例示されるように、インターフェースI2は、I2aとI2bに分割され、インターフェース部分I2aはインターフェースI1と共にインラインに符号化されて、インターフェースI1”を形成している。具体的な例では、図1CからのインターフェースI1は、ファンクションコール、スクエア(入力,出力)を実行し、このスクエア(入力,出力)は、インターフェースI2によって受け取られ、このスクエア(入力,出力)は、第2のコードセグメントによって(それを2乗する)入力と共に渡される値を処理した後に、2乗された結果を出力と共に戻して渡す。そのような場合には、第2のコードセグメント(2乗する入力)によって実行される処理は、そのインターフェースに対するコールなしに第1のコードセグメントによって実行することができる。
それらのコードモジュールの間の「インターフェース」が形態を変更するように、2つの別個のコードモジュールの機能の一部またはすべてをマージすることも実現可能なこともある。例えば、図1Bおよび1Cの機能は、それぞれ図1Hおよび1Iの機能に変換することができる。図1Hにおいては、図1Bの以前の第1のコードセグメントと第2のコードセグメントは、それらの両方を含むモジュールにマージされる。この場合に、それらのコードセグメントは、依然として互いに情報をやり取りしていることもあるが、インターフェースは、単一のモジュールにより適した形態に適応させることができる。したがって、例えば形式的なコールステートメント(Call statement)およびリターンステートメント(Return statement)が、もはや必要でないこともあり、インターフェース、インターフェース1に従った同様な処理または1つ(または複数)の応答が、依然として効力があることもある。同様に、図1Iに示されるように、図1CからのインターフェースI2の一部(または全部)は、インターフェースI1にインラインに書き込まれ、インターフェースI1”を形成することができる。例示されるように、インターフェースI2は、I2aとI2bに分割され、インターフェース部分I2aはインターフェースI1と共にインラインに符号化されて、インターフェースI1”を形成している。具体的な例では、図1CからのインターフェースI1は、ファンクションコール、スクエア(入力,出力)を実行し、このスクエア(入力,出力)は、インターフェースI2によって受け取られ、このスクエア(入力,出力)は、第2のコードセグメントによって(それを2乗する)入力と共に渡される値を処理した後に、2乗された結果を出力と共に戻して渡す。そのような場合には、第2のコードセグメント(2乗する入力)によって実行される処理は、そのインターフェースに対するコールなしに第1のコードセグメントによって実行することができる。
D.分離(DIVORCE)
1つのコードセグメントから別のコードセグメントへのコミュニケーションは、そのコミュニケーションを複数の離散的なコミュニケーションへと分解することにより、間接的に遂行することができる。これについては、図1Jおよび1Kに概略的に示される。図1Jに示されるように、1つまたは複数のミドルウェアの部分(それらが、元のインターフェースから機能および/またはインターフェースのファンクションを分離するので、1つ(または複数)の分離インターフェースという)が、第1のインターフェース、インターフェース1上のコミュニケーションを変換して、異なるインターフェース、この場合には諸インターフェース、インターフェース2A、インターフェース2Bおよびインターフェース2Cに準拠させるように設けられる。これは、例えば、言わばインターフェース1プロトコルに従ってオペレーティングシステムと情報をやり取りするように設計されたインストールベースのアプリケーションが存在する場合に行われる可能性があるが、次いでそのオペレーティングシステムは、異なるインターフェース、この場合には諸インターフェース、インターフェース2A、インターフェース2Bおよびインターフェース2Cを使用するように変更される。要点は、第2のコードセグメントによって使用される元のインターフェースは、それが第1のコードセグメントによって使用されるインターフェースとはもはや互換性がないように変更され、それ故に仲介手段が、古いインターフェースと新しいインターフェースを互換にするために使用されることである。同様に、図1Kに示されるように、第3のコードセグメントが、インターフェースI1からのコミュニケーションを受け取る分離インターフェースDI1と、例えばDI2と共に機能するように設計変更されたインターフェースI2aおよびI2bへとインターフェース機能を伝送するが、同じ機能結果を実現する分離インターフェースDI2と共に導入することができる。同様に、DI1およびDI2は、同じまたは類似した機能結果を実現しながら、図1CのインターフェースI1およびI2の機能を新しいオペレーティングシステムに対して変換するように一緒に機能することができる。
1つのコードセグメントから別のコードセグメントへのコミュニケーションは、そのコミュニケーションを複数の離散的なコミュニケーションへと分解することにより、間接的に遂行することができる。これについては、図1Jおよび1Kに概略的に示される。図1Jに示されるように、1つまたは複数のミドルウェアの部分(それらが、元のインターフェースから機能および/またはインターフェースのファンクションを分離するので、1つ(または複数)の分離インターフェースという)が、第1のインターフェース、インターフェース1上のコミュニケーションを変換して、異なるインターフェース、この場合には諸インターフェース、インターフェース2A、インターフェース2Bおよびインターフェース2Cに準拠させるように設けられる。これは、例えば、言わばインターフェース1プロトコルに従ってオペレーティングシステムと情報をやり取りするように設計されたインストールベースのアプリケーションが存在する場合に行われる可能性があるが、次いでそのオペレーティングシステムは、異なるインターフェース、この場合には諸インターフェース、インターフェース2A、インターフェース2Bおよびインターフェース2Cを使用するように変更される。要点は、第2のコードセグメントによって使用される元のインターフェースは、それが第1のコードセグメントによって使用されるインターフェースとはもはや互換性がないように変更され、それ故に仲介手段が、古いインターフェースと新しいインターフェースを互換にするために使用されることである。同様に、図1Kに示されるように、第3のコードセグメントが、インターフェースI1からのコミュニケーションを受け取る分離インターフェースDI1と、例えばDI2と共に機能するように設計変更されたインターフェースI2aおよびI2bへとインターフェース機能を伝送するが、同じ機能結果を実現する分離インターフェースDI2と共に導入することができる。同様に、DI1およびDI2は、同じまたは類似した機能結果を実現しながら、図1CのインターフェースI1およびI2の機能を新しいオペレーティングシステムに対して変換するように一緒に機能することができる。
E.再書込み(REWRITING)
さらに別の可能性のある変形は、コードを動的に再書き込みして、インターフェース機能を何か他のもので置き換えることであるが、これは、同じ全体的な結果を達成する。例えば、中間言語(例えば、マイクロソフトのIL、Java(登録商標)バイトコード(ByteCode)など)で提示されるコードセグメントが、(.Netフレームワーク、Java(登録商標)ランタイム環境、または他の類似したランタイムタイプの環境によって提供される環境など)実行環境中におけるジャストインタイム(Just−in−Time)(JIT)のコンパイラまたはインタープリタに供給される。JITコンパイラは、第1のコードセグメントから第2のコードセグメントへとコミュニケーションを動的に変換するために、すなわち第2のコードセグメント(元のまたは異なる第2のコードセグメントのいずれか)によって必要とされるようにそれらを異なるインターフェースに準拠させるために書き込むことができる。これについては、図1Lおよび1Mに示される。図1Lから分かるように、このアプローチは、上記の分離シナリオに類似している。例えば、インストールベースのアプリケーションが、インターフェース1プロトコルに従ってオペレーティングシステムと情報をやり取りするように設計されるが、次いでそのオペレーティングシステムは、異なるインターフェースを使用するために変更される場合に、それは、行うことができる。JITコンパイラを使用して、インストールベースのアプリケーションからの実行中のコミュニケーションをオペレーティングシステムの新しいインターフェースに準拠させることができる。図1Mに示されるように、1つ(または複数)のインターフェースを動的に書き換えるこのアプローチは、同様に1つ(または複数)のインターフェースを同様に動的にファクタリングし、あるいはそうでなければ変更するように適用することができる。
さらに別の可能性のある変形は、コードを動的に再書き込みして、インターフェース機能を何か他のもので置き換えることであるが、これは、同じ全体的な結果を達成する。例えば、中間言語(例えば、マイクロソフトのIL、Java(登録商標)バイトコード(ByteCode)など)で提示されるコードセグメントが、(.Netフレームワーク、Java(登録商標)ランタイム環境、または他の類似したランタイムタイプの環境によって提供される環境など)実行環境中におけるジャストインタイム(Just−in−Time)(JIT)のコンパイラまたはインタープリタに供給される。JITコンパイラは、第1のコードセグメントから第2のコードセグメントへとコミュニケーションを動的に変換するために、すなわち第2のコードセグメント(元のまたは異なる第2のコードセグメントのいずれか)によって必要とされるようにそれらを異なるインターフェースに準拠させるために書き込むことができる。これについては、図1Lおよび1Mに示される。図1Lから分かるように、このアプローチは、上記の分離シナリオに類似している。例えば、インストールベースのアプリケーションが、インターフェース1プロトコルに従ってオペレーティングシステムと情報をやり取りするように設計されるが、次いでそのオペレーティングシステムは、異なるインターフェースを使用するために変更される場合に、それは、行うことができる。JITコンパイラを使用して、インストールベースのアプリケーションからの実行中のコミュニケーションをオペレーティングシステムの新しいインターフェースに準拠させることができる。図1Mに示されるように、1つ(または複数)のインターフェースを動的に書き換えるこのアプローチは、同様に1つ(または複数)のインターフェースを同様に動的にファクタリングし、あるいはそうでなければ変更するように適用することができる。
代替実施形態を経由してインターフェースと同じまたは類似した結果を達成するための上記のシナリオは、様々な方法で、逐次的および/または並列的に、あるいは他の介入するコードと共に、組み合わせることもできることにも注意すべきである。したがって、以上で提示された代替実施形態は、相互に排他的ではなく、混合し、マッチングさせ、組み合わせて、図1Bおよび1C中において提示される包括的なシナリオと同じまたは同等なシナリオを生成することができる。ほとんどのプログラミング構造と同様に、本明細書中で説明されないこともあるが、それにもかかわらず本発明の趣旨および範囲によって表されるインターフェースの同じまたは類似した機能を達成する他の類似した方法が存在することにも注意すべきであり、すなわち、それは、少なくとも部分的にはインターフェースの価値の基礎になるインターフェースによって表される機能であり、またそのインターフェースによって可能とされる有利な結果であることに注意すべきである。
図2は、グラフィックユーザインターフェースシステムに共通の従来のウィンドウ管理シナリオ200を示している。図に示されるように、複数の開かれたアプリケーションウィンドウは、前面に位置付けられた他のより大きなウィンドウによって部分的に、または完全に見えなくされる。特に、図2は、アプリケーションウィンドウ203dが、ウィンドウ203a、203b、および203cよりもZ順(Z−order)が高くなっている、Z順のコンフィギュレーションの4枚のウィンドウ203a〜203dのシナリオを示している。アプリケーションウィンドウ203a〜203dは、デスクトップスペース(desktop space)201内に示される。
デスクトップスペース201は、アプリケーションプログラムに対応するウィンドウの表示を可能にするディスプレイの1つの区域である。底部にあるタスクバー210は、どのアプリケーションウィンドウが現在使用中であり、どれが見ることができ、または最小化されていることがあるかを示す。タスクバー210は、アクティブにすること、移動させること、隠すこと、最小化することなど、ウィンドウの操作をリストアップし、イネーブルにするために使用されるオンスクリーンウィンドウリモートコントロール(on−screen window remote control)の特定の実装形態である。ウィンドウ203aは、タスクバーボタン(taskbar button)213aによって表され、ウィンドウ203bは、タスクバーボタン213bによって表され、ウィンドウ203cは、タスクバーボタン213cによって表され、ウィンドウ203dは、タスクバーボタン213dによって表される。この例に示されるように、4つのウィンドウ203a〜203dが、開かれて示される。ウィンドウ203a〜203dのコンテンツのファイル名は、ぞれぞれのウィンドウのタイトルバー区域223a〜223dに沿って示される。これらのファイル名は、ウィンドウを動作させるアプリケーションプログラムによって生成することができ、かつ/またはユーザによってカスタマイズ化可能とすることができる。各ウィンドウ203a〜203dについての同じファイル名が、対応するタスクバーボタン213a〜213dに示される。
ウィンドウ203a〜203dは、ユーザにコンテンツを表示するためにアプリケーションプログラムによって使用される。ウィンドウ203aに関連するアプリケーションプログラムは、ウィンドウ203b、203c、および/または203dに対応する異なるアプリケーションプログラムまたは同じアプリケーションプログラムであってもよい。ウィンドウ203a〜203dのおのおのは、他のウィンドウ203a〜203dに対して独立しており、また外部にある。本明細書中で使用されるように、第1のウィンドウは、第1のウィンドウが第2のウィンドウ内に含まれず、第2のウィンドウが第1のウィンドウ内に含まれないときに、第2のウィンドウに対して外部にある。2つのウィンドウがただオーバーラップしているにすぎない場合に、第1のウィンドウは、第2のウィンドウ内に含まれないことを理解すべきである。
図2に示されるように、ユーザは、タスクを完了するために、この組のアプリケーションウィンドウ203a〜203dを明示的に開いている。タスクは、開かれたアプリケーションウィンドウ203a〜203dのおのおのから情報またはコンテンツを取得することを必要とすることもある。例えば、このタスクは、インターネットブラウザウィンドウ(Internet browser window)とグラフィックス編集アプリケーションからの2つのウィンドウを必要とすることもある。ユーザが、この第1のタスクに関連していない追加のアプリケーションウィンドウを開く場合、これらの既存のアプリケーションウィンドウ203a〜203dは、デスクトップスペース201中で変更されないまま留まることになる。既存のウィンドウ管理ソリューションを使用して、ユーザは、ビューからそれらのウィンドウを個別に取り除くために第1のタスクに関連するアプリケーションウィンドウ203a〜203dのおのおのを最小化することができる。元のタスクに戻るためには、ユーザは、各最小化されたアプリケーションウィンドウ203a〜203dを個別に取り出す必要があるはずである。
図3Aに示されるように、本発明の態様によれば、ユーザインターフェースコントロール330が、1組の現在開かれており、かつ/またはアクティブなアプリケーションウィンドウ203a〜203dをウィンドウグループとして宣言するために設けられる。図3Aは、本発明の少なくとも一態様による、グループ化コントロール(grouping control)330を含むウィンドウ管理システムの一例を示している。本明細書中で使用されるように、用語「宣言する」および「宣言すること」は、本明細書中ではアクションを開始して2つの独立な外部のアプリケーションウィンドウの間の関係を作成することを意味するように定義される。
シナリオ300aにおいては、ユーザは、アプリケーションウィンドウグループ化コントロール330に向かってポインタ331を移動させる。タスクバー区域210に示されているが、グループ化コントロール要素330は、デスクトップスペース201内など他のロケーションに配置することができることが、当業者によって理解されるべきである。さらに、作動可能ボタンとして図3Aには示されているが、グループ化コントロール330を開始して、他の手段によるアプリケーションウィンドウをグループ化することができる。例えば、一実施形態においては、ユーザは、単一および/または一連のキー/ボタンのストロークを実行して、アプリケーションウィンドウ203a〜203dなど、複数のウィンドウをグループ化することができる。ユーザは、キーボード上であらかじめ定義された一連のキーストロークを押して、アプリケーションウィンドウをグループ化することができる。本発明の別の実施形態においては、タスクバーボタン213aをタスクバーボタン213bへとクリックしドラッグして、ウィンドウ203aおよびウィンドウ203bをグループ化するためのプロセスを開始することができる。さらに別の実施形態においては、ユーザは、電子的マウスなどの入力デバイス上の作動ボタンをクリックして、タスクバーボタン213aおよび213bを作動させることにより直接または間接にアプリケーションウィンドウ213aおよび213bをグループ化することができる。本発明は、本明細書中に含まれる例だけに限定されるものでないことが、当業者によって理解されるべきである。
図3Aに戻ると、グループ化コントロール330を押し下げるとすぐに、ウィンドウ203a〜203dは、一緒にグループ化することができ、ここで次いでそのグループは、図3Bに示されるように、サムネイル画像340aのサイズまで一括して縮小することができる。グループ化コントロール330の押し下げの例示の例は、図3B中のシナリオ300bに示される。この例のシナリオ300bにおいては、ウィンドウ203a〜203dのグループ化は、デスクトップスペース201中のサムネイル画像340aまで縮小されている。さらに、タスクバーボタン213a〜213dが、タスクバー区域210から取り除かれている。この例には示されていないが、対応するタスクバーボタン213a〜213dのうちの1つまたは複数が、タスクバー区域210内に留まることができることを理解すべきである。
グループ化されたウィンドウは、グループの表現として一緒に管理することができ、例えば保存し、リフレッシュすることなどができる1組のウィンドウである。ウィンドウを一緒にグループ化することは、ユーザが、実行しなければならないウィンドウ管理の量を低減させ、同様にオーバーラップしたウィンドウから構成される作業表面のビジュアルクラッタ(visual clutter)も低減させる。さらに、ウィンドウのグループは、一緒に存続させ続けることができ、その結果、ウィンドウのグループは、後になってから取り出すことができる。任意のアプリケーションウィンドウは、アプリケーションウィンドウ203a〜203dのサムネイル画像340aに追加し、あるいはサムネイル画像から後で取り除くことができる。
サムネイル画像340aから以前に最小化されたアプリケーションウィンドウを回復させるために、ユーザは、ポインタ331を移動させ、アクティブにする、例えばサムネイル画像340aをクリックオン(click on)することができる。ユーザがデスクトップアイコン(desktop icon)340aをクリックオンするのに応じて、ウィンドウ203a〜203dのグループ化は、グループコントロール330の実行に先立つそれらの状態へと回復させられる。この例においては、ウィンドウの外観は、図3Aにおいて行ったとちょうど同じように見えるはずである。
図3Cは、本発明の少なくとも一態様による、グループ化コントロール330の実行のすぐ後でのウィンドウ管理システムの他の例を示している。図3Bに示されるように、シナリオ300cは、アプリケーションウィンドウ203a〜203dのサムネイル画像340aの代わりにあるタイプのアイコン340bとしてウィンドウ203a〜203dのグループ化を示すことができる。代わりに、かつ/または追加して、タスクバーボタン340cは、ウィンドウ203a〜203dのグループ化を表すために作成することができる。サムネイル画像340aと同様に、ウィンドウ203a〜203dは、アイコン340bおよび/またはタスクバーボタン340cのアクティブ化により回復させることができる。そのような例においては、ウィンドウの外観は、この場合にもまた図3Aにおいて行ったとちょうど同じように見えるはずである。
図4は、本発明の少なくとも一態様による、グループ化コントロール330の実行のすぐ後でのウィンドウ管理システムの別の例を示している。このシナリオ400においては、一部分、例えば4つの開かれたアプリケーションウィンドウ203a〜203dのうちの3つは、1つのグループとして宣言されており、サムネイル画像440へと縮小されている。したがって、本発明の一実施形態においては、ユーザは、ウィンドウ203dをデスクトップスペース210中において開かれてアクティブのままにしながら、ウィンドウ203a〜203cをグループ化するように選択することができる。多数の異なる方法を使用して、デスクトップスペース201中のすべての開かれたウィンドウよりも少ないウィンドウのグループ化を可能にすることができ、本発明は、1つの任意の方法だけに限定されるものではない。タスクバーに最小化された開かれたウィンドウは、210であり、それはグループコントロール330の作動によってウィンドウグループ内に含めることもできることが、当業者によって理解されるべきである。他の実施形態においては、システムは、たとえ別の開かれたウィンドウによってオーバーラップされていたとしても、最小化された任意のウィンドウをグループ化しないまま、開かれてアクティブなウィンドウをグループ化するだけのように構成することができる。
ひとたびウィンドウグループが宣言され、サムネイル画像340aへと最小化された後には、ユーザは、新しいアプリケーションウィンドウを開くこと、あるいは以前に最小化されたアプリケーションウィンドウを回復させることで再開することができる。ウィンドウグループが暗黙のうちに宣言された後に開かれたウィンドウは、第2のウィンドウグループのメンバと考えることができる。図5Aは、ウィンドウグループ340aが宣言され最小化されており、追加のアプリケーションウィンドウ503aおよび503bがその後に開かれているシナリオ500aを示している。これらのアプリケーションウィンドウは、第2のウィンドウグループのメンバである。ウィンドウ203a〜203dと同様に、ウィンドウ503aおよび503bは、タスクバー区域210内に対応するタスクバーボタン513aおよび513bを有する。
ひとたびウィンドウグループが宣言され、最小化された後には、ユーザは、サムネイル画像340a上でダブルクリックすることやコンテキストメニュー(contextual menu)から「開かれたグループ」を右クリックし選択することなど、標準の既存のオープン化メカニズムを介してグループを開くことにより、そのグループを取り出すことができる。図5Aに示されるように、ユーザは、ポインタ331をサムネイル画像グループ340aへと移動させる。グループを開くことは、フルスクリーンにアニメ化する(animating)、サムネイル画像グループ340aからのアプリケーションウィンドウ203a〜203dをもたらすが、同時に、アプリケーションウィンドウ503a〜503bは、図5Bに示されるサムネイル画像540へとアニメ化する、アプリケーションウィンドウの第2のグループ化としてシステムによって宣言される。第2のグループのウィンドウは、第1のグループのウィンドウを取り出したすぐ後に自動的に宣言することができることが、当業者によって理解されるべきである。代わりに、システムは、ユーザが第2のグループのウィンドウをアクティブに宣言する必要があるように構成することができる。
図5Bは、サムネイル画像340aを経由して第1のウィンドウグループを開くシナリオ500bを示すものである。第2のグループは、その後にサムネイル画像540へと最小化されており、サムネイル画像340aとしての第1のグループの位置を置き換えている。ひとたびウィンドウグループが取り出された後に、通常のウィンドウの対話が効力を有する。個別のアプリケーションウィンドウは、移動させ、アクティブにし、閉じることができる。ウィンドウ503aおよび503bは、別のグループのウィンドウがすでに存在していることにより、暗黙のうちにグループ化することができることを理解すべきである。したがって、ユーザは、グループコントロール330を2度目に作動してウィンドウ503aおよび503bをグループ化する必要はない。
本発明の態様は、図に示されるウィンドウおよび/またはグループの数だけに限定されるものでないこと、ならびに任意数の異なるグループのウィンドウを作成することができることが、当業者によって理解されるべきである。さらに、本発明の様々な態様によれば、1つまたは複数のウィンドウを、ウィンドウグループに追加し、またはウィンドウグループから取り除くことができることも理解すべきである。さらに、1つのウィンドウグループ中のアプリケーションウィンドウは、別のウィンドウグループに現れることもできる。さらにまた、本発明の態様により、ウィンドウグループはマシンの開始および/またはログアウト/ログインセッションにまたがって保存し、回復させることができるようになる。
本発明の態様は、ウィンドウグループ上のウィンドウオペレーション(windowing operation)をサポートする。例えば、ウィンドウグループが、コンテンツを閉じ、保存し、またはリフレッシュするとすぐに作動されるコマンドは、そのグループ内のウィンドウのすべてがそのコンテンツを閉じ、保存し、またはリフレッシュするようにさせることができる。コマンドは、全体のグループに対してグローバルであっても、グループ内のウィンドウのサブセットに対して特有であっても、あるいは1つのアプリケーションウィンドウに対して特有であってもよい。ウィンドウアプリケーションが2つの別個のグループ内にあるときに、1つのグループ内のアプリケーションウィンドウ上で実行されるコマンドは、別のグループ内の同じアプリケーションウィンドウ上で同じオペレーションを実行し、あるいは実行しないように構成することができる。さらにまた、コマンドオプションは、新しいアプリケーションウィンドウが、グループに追加され、かつ/またはグループから取り除かれるときに、変化することができる。例えば、おのおのが、リフレッシュオペレーションを実行することができる2つのウィンドウを含むグループが、そのグループに追加されたそのコンテンツをリフレッシュする機能のない新しいウィンドウを有する場合、リフレッシュコマンドは、ウィンドウのグループを操作するときに、もはやユーザにとって使用可能なオプションではないこともある。グループとしてのウィンドウ上で使用するためのコマンドは、システムがどのように構成されているかに応じて、動的であっても、あるいは動的でなくてもよい。
図6は、本発明の少なくとも一態様による、複数のアプリケーションウィンドウをグループ化するための方法の例示的な一実施例のフローチャートである。プロセスは、ステップ601から開始され、ここで複数のアプリケーションウィンドウが開かれる。ステップ603において、複数の開かれたアプリケーションウィンドウをグループへと宣言する入力が受け取られる。プロセスは、ステップ605へと進み、ここですべての開かれたウィンドウが、一緒にグループ化されるべきであるかどうかについての判定が行われる。すべての開かれたウィンドウが一緒にグループ化されるべきである場合、プロセスは、ステップ607へと進み、ここで複数のウィンドウのすべてが、グループとして宣言され、次いでプロセスは、ステップ611へと進む。ステップ605の判定が、必ずしもすべての開かれたウィンドウが一緒にグループ化されるべきではないことを見出す場合には、プロセスは、ステップ609へと進み、ここで複数のアプリケーションウィンドウのうちの一部分が、グループとして宣言され、プロセスは、ステップ611へと進む。ステップ611において、アプリケーションウィンドウのグループの表現が表示される。ステップ611において表示されるウィンドウの表現と共に、プロセスは、終了することができる。ステップ611は、サムネイル画像340aなどのサムネイル画像、アイコン340bなどのアイコン、および/またはタスクバーボタン340cなどのタスクバーボタンであってもよいことが、理解されるべきである。
プロセスは、ステップ613へと続くこともでき、ここで、その表現中においてアプリケーションウィンドウのグループ上でオペレーションを実行する入力が受け取られているかどうかについての判定が行われる。1タイプのオペレーションは、アプリケーションウィンドウのコンテンツを表現内に保存するオペレーションを含むことができる。入力が受け取られていない場合、プロセスは終了する。ステップ613において入力が受け取られている場合には、プロセスは、ステップ615へと進み、ここでオペレーションは、グループ内のアプリケーションウィンドウ上で実行される。コンテンツを保存するそのようなケースでは、オペレーションがグローバルである場合、各アプリケーションウィンドウのコンテンツが保存される。代わりに、オペレーションが、アプリケーションウィンドウのサブセット、またはグループ内の単一のアプリケーションウィンドウを対象としている場合、オペレーションは、オペレーションが対象としていたサブセット上、または1つのウィンドウ上だけで実行される。
ステップ615から、プロセスは、ステップ617へと進み、ここでアプリケーションウィンドウをグループから取り出す入力が受け取られているかどうかについての判定が行われる。例えば、ユーザは、ユーザが、アプリケーションウィンドウをそれらの元の状態に回復させることを望むことを決定することができる。入力が受け取られていない場合、プロセスは終了する。ステップ617において入力が受け取られている場合には、プロセスは、ステップ619へと進み、ここでアプリケーションウィンドウは、デスクトップスペース中においてそれらの元の状態へと回復させられ、プロセスは終了する。
図7は、本発明の少なくとも一態様による、ウィンドウの複数のグループ化の間で切り換えるための方法の例示的な一実施例のフローチャートである。プロセスは、ステップ701から開始され、ここで複数のアプリケーションウィンドウが開かれる。ステップ703において、複数の開かれたアプリケーションウィンドウをグループへと宣言する入力が受け取られる。ステップ705において、アプリケーションウィンドウは、第1のグループとして宣言される。ステップ707へと進んで、第1のグループのアプリケーションウィンドウの表現が表示される。
ステップ709において、少なくとも1つの新しいアプリケーションウィンドウを開く入力が受け取られる。ステップ711において、少なくとも1つの新しいアプリケーションウィンドウが開かれる。少なくとも1つの新しいアプリケーションウィンドウは、第1のグループのアプリケーションウィンドウと同じアプリケーションウィンドウであってもよいことが理解されるべきである。ステップ711からは、ステップ713〜721についての実線によって定義されるように、またステップ723〜729についての破線によって定義されるように、プロセス中の2つの進行のうちの一方が行われることができる。第1の進行中に示されるように、ステップ711から、プロセスはステップ713へと進み、ここで少なくとも1つの新しいアプリケーションウィンドウをグループへと宣言する入力が受け取られる。ステップ715において、少なくとも1つの新しいアプリケーションウィンドウは、第2のグループとして宣言される。ステップ717へと進んで、第2のグループの少なくとも1つのアプリケーションウィンドウの表現が表示される。ステップ719において、選択された第1または第2のグループから1つ(または複数)のアプリケーションウィンドウを取り出す入力が受け取られているかどうかについての判定が行われる。受け取られていない場合、プロセスは、選択が行われ受け取られるまで待つ。ステップ719において入力が受け取られている場合、プロセスは、ステップ721へと進み、ここで選択されたグループの1つ(または複数)のアプリケーションウィンドウは、デスクトップスペース中においてそれらの元の状態へと回復させられ、プロセスは終了する。
諸ステップの間の破線によって定義される第2の進行中に示されるように、ステップ711から、プロセスは、ステップ723へと進み、ここで第1のグループからアプリケーションウィンドウを取り出す入力が受け取られているかどうかについての判定が行われる。受け取られていない場合、プロセスは、入力が受け取られるまで待つ。ステップ723において入力が受け取られている場合には、プロセスは、ステップ725へと進み、ここでシステムは、デスクトップスペース中の少なくとも1つの新しいアプリケーションウィンドウを第2のグループへと自動的に宣言する。ユーザが、第1のグループのアプリケーションウィンドウへと戻ることを決定しているので、システムは、暗黙のうちに新しい1つ(または複数)のアプリケーションウィンドウを新しいグループへとグループ化する。プロセスは、ステップ727へと進み、ここで第2のグループのアプリケーションウィンドウの表現が表示される。ステップ729において、第1のグループのアプリケーションウィンドウは、デスクトップスペース中においてそれらの元の状態へと回復させられ、プロセスは終了する。ユーザは、上記のステップのうちの1つまたは複数のステップに従うことにより、必要に応じてアプリケーションウィンドウのグループの間で切り換えることができることが、当業者によって理解されるべきである。
別の実施形態は、直接にグループへの、ウィンドウの宣言およびグループ化をプログラムにより制御している。例えば、マイクロソフトオフィス(Microsoft Office)など1つまたは複数のアプリケーションは、いくつかのドキュメントから構成されるプロジェクトの概念を共有することができる。これらのドキュメントは、プロジェクト中の新しいドキュメントがユーザによって開かれるときに、同時に1つのグループ中へと開き、あるいはグループに自動的に追加することができる。
アプリケーションプログラミングインターフェース(API)に関しては、本発明の様々な態様をAPIによって実行することができる。例えば、公開APIは、オペレーティングシステムが本発明の様々な特徴を実現することができるようにオペレーティングシステムとインターフェースすることができる。一実施形態においては、グループ化されたウィンドウのデータ表現を処理するためのソフトウェアアーキテクチャは、第1の開かれたウィンドウと第2の開かれたウィンドウとを1つのグループへとグループ化するように構成されたコンポーネントと、そのコンポーネントにアクセスするアプリケーションプログラムインターフェースとを含むことができる。APIは、2つのウィンドウをグループ化し、オペレーションを実行する必要な1つ(または複数)のファンクションにアクセスし、次いでそれらの結果をオペレーティングシステムに返送する要求を受け取ることができる。オペレーティングシステムは、APIから供給されるデータを使用して、本発明の様々な特徴を実施することができる。
アプリケーションプログラムにウィンドウグループをうまく利用させるAPIは、プログラムによりウィンドウをグループ化すること、および非グループ化すること、ならびにコマンドがグループ上で実装されるときに、アプリケーションプログラムに、保存する、印刷する、コンテンツをリフレッシュする、バージョンを比較する、ソースコードをコンパイルするなど、どのようにしてウィンドウの状態が処理されるかを指定させることを含んでいる。この状態情報により、グループ中のアプリケーションプログラムのウィンドウは、グループが取り出され、対応するアプリケーションウィンドウが回復させられるときにデフォルトの代わりに、ある適切な状態に回復させることができるようになる。例えば、あるグループに宣言された最小化されたウィンドウは、元の状態に回復させることができる。
本発明の様々な態様を実施する、本明細書中で説明される例示のシステムおよび方法が示されているが、本発明は、これらの実施形態だけに限定されるものではないことが当業者には理解されよう。当業者によって特に前述の教示の観点から修正を行うことができる。例えば、前述の実施形態の各要素は、単独で、または組み合わせて、あるいは他の実施形態の要素と部分的に組み合わせて利用することができる。本発明の趣旨および範囲を逸脱することなく、修正を行うことができることも認識され理解されよう。したがって本明細書は、本発明に対して限定的である代わりに例示的なものとみなされるべきである。
Claims (20)
- 複数のアプリケーションウィンドウをグループ化するための方法であって、
第1のアプリケーションウィンドウと、前記第1のアプリケーションウィンドウと独立しており外部に存在する第2のアプリケーションウィンドウとをディスプレイ画面上に表示するステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを1つのグループとして宣言するステップと、
前記第1のアプリケーションウィンドウと前記第2のウィンドウとを1つのグループへとグループ化するステップと、
前記グループを前記ディスプレイ画面上で表現として表示するステップと
を含むことを特徴とする方法。 - 前記グループ上でオペレーションを実行するステップをさらに含むことを特徴とする請求項1に記載の方法。
- 実行する前記ステップは、入力デバイスからのコマンドの受け取りに基づくことを特徴とする請求項2に記載の方法。
- 動作を実行する前記ステップは、前記グループの前記アプリケーションウィンドウのサブセット上で実行されることを特徴とする請求項2に記載の方法。
- 前記第1のアプリケーションウィンドウは、第1のアプリケーションプログラムに対応し、前記第2のアプリケーションウィンドウは、第2のアプリケーションプログラムに対応することを特徴とする請求項1に記載の方法。
- 前記第1のアプリケーションプログラムと前記第2のアプリケーションプログラムとは、異なるアプリケーションプログラムであることを特徴とする請求項5に記載の方法。
- 前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記グループから取り出す入力を受け取るステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記ディスプレイ画面上で元の状態へと回復させるステップと
をさらに含むことを特徴とする請求項1に記載の方法。 - 宣言する前記ステップは、前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとをグループ化する入力を入力デバイスから受け取るステップを含むことを特徴とする請求項1に記載の方法。
- 前記表現は、前記ディスプレイ画面のデスクトップスペース中に表示される前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとの縮小されたバージョンのサムネイル画像であることを特徴とする請求項1に記載の方法。
- 前記表現は、前記ディスプレイ画面上のタスクバー区域内のタスクバーボタンであることを特徴とする請求項1に記載の方法。
- 少なくとも1つの第3のアプリケーションウィンドウを表示するステップと、
前記少なくとも1つの第3のアプリケーションウィンドウを1つのグループとして宣言するステップと、
前記少なくとも1つの第3のアプリケーションウィンドウを第2のグループへとグループ化するステップと、
前記第2のグループを前記ディスプレイ画面上で第2の表現として表示するステップと
をさらに含むことを特徴とする請求項1に記載の方法。 - 前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記グループから取り出す入力を受け取るステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記ディスプレイ画面上で元の状態に回復させるステップと
をさらに含むことを特徴とする請求項11に記載の方法。 - 前記少なくとも1つの第3のアプリケーションウィンドウを前記第2のグループから取り出す入力を受け取るステップと、
前記少なくとも1つの第3のアプリケーションウィンドウを前記ディスプレイ画面上で元の状態に回復させるステップと
をさらに含むことを特徴とする請求項11に記載の方法。 - 少なくとも1つの第3のアプリケーションウィンドウを表示するステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記グループから取り出す入力を受け取るステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記ディスプレイ画面上で元の状態に回復させるステップと、
前記入力を受け取ることに応じて前記少なくとも1つの第3のアプリケーションウィンドウを第2のグループへとグループ化するステップと、
前記第2のグループを前記ディスプレイ画面上で第2の表現として表示するステップと
をさらに含むことを特徴とする請求項1に記載の方法。 - 複数のアプリケーションウィンドウをグループ化するための一連のコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記命令は、
第1のアプリケーションウィンドウと、前記第1のアプリケーションウィンドウと独立しており外部に存在する第2のアプリケーションウィンドウとをディスプレイ画面上で表示するステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを1つのグループとして宣言するステップと、
前記第1のアプリケーションウィンドウと前記第2のウィンドウとを1つのグループへとグループ化するステップと、
前記グループを前記ディスプレイ画面上で表現として表示するステップと
を実行することを特徴とするコンピュータ読取り可能媒体。 - 前記命令は、さらに
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記グループから取り出す入力を受け取るステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記ディスプレイ画面上で元の状態へと回復させるステップと
を実行することを特徴とする請求項15に記載のコンピュータ読取り可能媒体。 - 前記命令は、さらに
少なくとも1つの第3のアプリケーションウィンドウを表示するステップと、
前記少なくとも1つの第3のアプリケーションウィンドウを1つのグループとして宣言するステップと、
前記少なくとも1つの第3のアプリケーションウィンドウを第2のグループへとグループ化するステップと、
前記第2のグループを前記ディスプレイ画面上で第2の表現として表示するステップと
を実行することを特徴とする請求項15に記載のコンピュータ読取り可能媒体。 - 前記命令は、さらに
少なくとも1つの第3のアプリケーションウィンドウを表示するステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記グループから取り出す入力を受け取るステップと、
前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとを前記ディスプレイ画面上で元の状態に回復させるステップと、
前記入力を受け取ることに応じて前記少なくとも1つの第3のアプリケーションウィンドウを第2のグループへとグループ化するステップと、
前記第2のグループを前記ディスプレイ画面上で第2の表現として表示するステップと
を実行することを特徴とする請求項15に記載のコンピュータ読取り可能媒体。 - グループ化されたウィンドウを表すデータを処理するためのソフトウェアアーキテクチャであって、
第1のアプリケーションウィンドウと第2のアプリケーションウィンドウとを前記第1のアプリケーションウィンドウと前記第2のアプリケーションウィンドウとのサムネイル画像を表すグループへとグループ化するように構成される少なくとも1つのコンポーネントと、
前記コンポーネントにアクセスする少なくとも1つのアプリケーションプログラムインターフェースと
を備えることを特徴とするソフトウェアアーキテクチャ。 - ログアウトセッション中に前記グループの保存することをプログラムにより制御するように構成される少なくとも1つのコンポーネントをさらに備えることを特徴とする請求項19に記載のソフトウェアアーキテクチャ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/094,140 US7581192B2 (en) | 2005-03-31 | 2005-03-31 | Method and apparatus for application window grouping and management |
PCT/US2005/030312 WO2006107324A2 (en) | 2005-03-31 | 2005-08-25 | Method and apparatus for application window grouping and management |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008535083A true JP2008535083A (ja) | 2008-08-28 |
JP2008535083A5 JP2008535083A5 (ja) | 2008-10-16 |
Family
ID=37072091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008504008A Pending JP2008535083A (ja) | 2005-03-31 | 2005-08-25 | アプリケーションウィンドウのグループ化および管理のための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7581192B2 (ja) |
EP (1) | EP1866730B1 (ja) |
JP (1) | JP2008535083A (ja) |
KR (1) | KR20080001706A (ja) |
CN (1) | CN100552602C (ja) |
WO (1) | WO2006107324A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012069060A (ja) * | 2010-09-27 | 2012-04-05 | Nec Corp | 情報処理端末およびその制御方法 |
JP2013008081A (ja) * | 2011-06-22 | 2013-01-10 | Ricoh Co Ltd | プログラムおよび情報処理装置 |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343566B1 (en) | 2002-07-10 | 2008-03-11 | Apple Inc. | Method and apparatus for displaying a window for a user interface |
US8042110B1 (en) * | 2005-06-24 | 2011-10-18 | Oracle America, Inc. | Dynamic grouping of application components |
US7600190B2 (en) * | 2005-11-15 | 2009-10-06 | Mitac Technology Corp. | Window switching method and system |
US20070143702A1 (en) * | 2005-12-21 | 2007-06-21 | Fabio Maggi | Method, Computer Program, and System Improving the Graphical User Interface of a Desktop |
US8108785B2 (en) * | 2006-01-09 | 2012-01-31 | Microsoft Corporation | Supporting user multi-tasking with clipping lists |
US7595810B2 (en) | 2006-03-22 | 2009-09-29 | Apple Inc. | Methods of manipulating a screen space of a display device |
US10503342B2 (en) * | 2006-08-04 | 2019-12-10 | Apple Inc. | User interface spaces |
KR100800889B1 (ko) * | 2006-08-08 | 2008-02-04 | 삼성전자주식회사 | 이동 통신 단말기의 기능 항목이 표시되는 화면의 구성을변경하기 위한 방법 및 이를 위한 단말기 |
JP4981059B2 (ja) * | 2006-10-13 | 2012-07-18 | パナソニック株式会社 | 表示制御装置、表示制御方法、プログラム、及び集積回路 |
US20080115081A1 (en) * | 2006-11-09 | 2008-05-15 | Microsoft Corporation | Enhanced windows management feature |
KR20100014823A (ko) * | 2007-01-23 | 2010-02-11 | 에이저 시스템즈 인크 | 디바이스들을 위한 단일 스레드 아키텍쳐에서 애플리케이션 스위칭 |
US8839142B2 (en) * | 2007-06-08 | 2014-09-16 | Apple Inc. | Desktop system object removal |
US8615710B2 (en) * | 2007-09-11 | 2013-12-24 | Sas Institute Inc. | Computer-implemented systems and methods for portlet management |
JP5004779B2 (ja) * | 2007-12-11 | 2012-08-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチウインドウ・システム、マルチウインドウ・システムのセキュリティ保護方法、及びマルチウインドウ・システムのセキュリティ保護プログラム |
JP5179171B2 (ja) * | 2007-12-28 | 2013-04-10 | キヤノンソフトウェア株式会社 | 情報処理装置、情報処理方法、プログラム、記録媒体 |
JP4971203B2 (ja) * | 2008-01-07 | 2012-07-11 | 株式会社エヌ・ティ・ティ・ドコモ | 情報処理装置及びプログラム |
US20090260062A1 (en) * | 2008-04-15 | 2009-10-15 | International Business Machines Corporation | Real-time online communications management |
US8276144B2 (en) * | 2008-04-15 | 2012-09-25 | International Business Machines Corporation | Electronic device workspace restriction |
US20100031189A1 (en) * | 2008-08-01 | 2010-02-04 | International Business Machines Corporation | Connecting Standard Operating System Windows with a Visual Tack |
US8543935B2 (en) * | 2008-08-20 | 2013-09-24 | Red Hat, Inc. | Full-screen heterogeneous desktop display and control |
US20100064251A1 (en) * | 2008-09-05 | 2010-03-11 | International Business Machines Corporation | Toggling window display state by screen in a multi-screened desktop environment |
KR101548958B1 (ko) * | 2008-09-18 | 2015-09-01 | 삼성전자주식회사 | 휴대단말기의 터치스크린 동작 제어 방법 및 장치 |
US8694920B2 (en) * | 2008-09-25 | 2014-04-08 | Microsoft Corporation | Displaying application information in an application-switching user interface |
US9760234B2 (en) | 2008-10-14 | 2017-09-12 | International Business Machines Corporation | Desktop icon management and grouping using desktop containers |
US8572502B2 (en) * | 2008-11-21 | 2013-10-29 | Honeywell International Inc. | Building control system user interface with docking feature |
JP5133919B2 (ja) * | 2009-02-19 | 2013-01-30 | 株式会社沖データ | アプリケーションプログラム及び画像処理装置 |
US8555185B2 (en) * | 2009-06-08 | 2013-10-08 | Apple Inc. | User interface for multiple display regions |
CN105278963A (zh) * | 2009-09-10 | 2016-01-27 | 联想(北京)有限公司 | 一种任务栏按钮的管理方法及装置 |
US9152299B2 (en) | 2009-10-08 | 2015-10-06 | Red Hat, Inc. | Activity management tool |
US9141260B2 (en) * | 2009-10-08 | 2015-09-22 | Red Hat, Inc. | Workspace management tool |
US20110131523A1 (en) * | 2009-11-30 | 2011-06-02 | International Business Machines Corporation | Grouping of windows based on user-defined contexts |
US10397639B1 (en) | 2010-01-29 | 2019-08-27 | Sitting Man, Llc | Hot key systems and methods |
US9292196B2 (en) * | 2010-10-19 | 2016-03-22 | Apple Inc. | Modifying the presentation of clustered application windows in a user interface |
US9658732B2 (en) | 2010-10-19 | 2017-05-23 | Apple Inc. | Changing a virtual workspace based on user interaction with an application window in a user interface |
AU2013216607B2 (en) * | 2010-10-19 | 2015-04-30 | Apple Inc. | Managing workspaces in a user interface |
US10740117B2 (en) * | 2010-10-19 | 2020-08-11 | Apple Inc. | Grouping windows into clusters in one or more workspaces in a user interface |
US9542202B2 (en) | 2010-10-19 | 2017-01-10 | Apple Inc. | Displaying and updating workspaces in a user interface |
CN102486714A (zh) * | 2010-12-06 | 2012-06-06 | 腾讯科技(深圳)有限公司 | 移动终端浏览器中多窗口管理方法和设备 |
US10152192B2 (en) | 2011-02-21 | 2018-12-11 | Apple Inc. | Scaling application windows in one or more workspaces in a user interface |
US9645733B2 (en) | 2011-12-06 | 2017-05-09 | Google Inc. | Mechanism for switching between document viewing windows |
US8726189B2 (en) * | 2011-12-07 | 2014-05-13 | Google Inc. | Multiple tab stack user interface |
CN102611931B (zh) * | 2012-03-15 | 2014-09-10 | 中兴通讯股份有限公司 | 一种交互式网络电视中窗口管理方法和系统 |
CN103324404B (zh) * | 2012-03-20 | 2017-02-01 | 宇龙计算机通信科技(深圳)有限公司 | 图标的移动方法及通信终端 |
CN102799385B (zh) * | 2012-07-19 | 2016-12-21 | 腾讯科技(深圳)有限公司 | 桌面控制方法和装置 |
US9696879B2 (en) * | 2012-09-07 | 2017-07-04 | Google Inc. | Tab scrubbing using navigation gestures |
CN102999253B (zh) * | 2012-11-13 | 2016-06-15 | 北京奇艺世纪科技有限公司 | 一种应用程序的窗口显示方法、系统与移动终端 |
KR20230070067A (ko) * | 2012-11-29 | 2023-05-19 | 파세토, 인크. | 여러 애플리케이션들을 디스플레이하기 위한 시스템 및 방법 |
KR102183071B1 (ko) * | 2012-12-06 | 2020-11-25 | 삼성전자주식회사 | 복수 어플리케이션을 실행하는 디스플레이 장치 및 그 제어 방법 |
CN105706033B (zh) | 2013-03-05 | 2019-05-10 | 法斯埃托股份有限公司 | 用于立方体图形用户界面的系统和方法 |
US10761673B2 (en) * | 2013-03-12 | 2020-09-01 | Oracle International Corporation | Managing display of detachable windows in a GUI computing environment |
US10261650B2 (en) * | 2013-03-12 | 2019-04-16 | Oracle International Corporation | Window grouping and management across applications and devices |
EP2972720B1 (en) * | 2013-03-15 | 2021-12-01 | Siemens Healthcare Diagnostics Inc. | Windowing system and method for companion software products |
US9250761B2 (en) | 2013-04-30 | 2016-02-02 | Microsoft Technology Licensing, Llc | Auto-grouping of application windows |
ES2684300T3 (es) | 2013-07-18 | 2018-10-02 | Fasetto, L.L.C. | Sistema y método de vídeos de múltiples ángulos |
KR102148725B1 (ko) * | 2013-07-31 | 2020-08-28 | 삼성전자주식회사 | 어플리케이션을 표시하는 방법 및 장치 |
US10095873B2 (en) | 2013-09-30 | 2018-10-09 | Fasetto, Inc. | Paperless application |
CN103616980B (zh) * | 2013-10-19 | 2017-06-16 | 广东欧珀移动通信有限公司 | 一种快速整理桌面图标的方法及终端 |
CN104571804B (zh) * | 2013-10-29 | 2018-04-17 | 国际商业机器公司 | 一种对跨应用程序的文档界面进行关联的方法和系统 |
US9584402B2 (en) | 2014-01-27 | 2017-02-28 | Fasetto, Llc | Systems and methods for peer to peer communication |
GB2525198A (en) | 2014-04-15 | 2015-10-21 | Ibm | Controlling an application instance using a graphical user interface |
KR20150136801A (ko) * | 2014-05-28 | 2015-12-08 | 삼성전자주식회사 | 어플리케이션 ui 및 전자 장치 |
WO2016007780A1 (en) | 2014-07-10 | 2016-01-14 | Fasetto, Llc | Systems and methods for message editing |
KR102150961B1 (ko) * | 2014-07-31 | 2020-09-02 | 삼성전자주식회사 | 작업 그룹을 이용하는 윈도우 표시 방법 및 장치 |
US10824291B2 (en) * | 2014-07-31 | 2020-11-03 | Samsung Electronics Co., Ltd. | Device and method of displaying windows by using work group |
JP6320241B2 (ja) * | 2014-08-22 | 2018-05-09 | アズビル株式会社 | エンジニアリング装置および画面表示制御方法 |
US10437288B2 (en) | 2014-10-06 | 2019-10-08 | Fasetto, Inc. | Portable storage device with modular power and housing system |
KR102213681B1 (ko) | 2014-10-06 | 2021-02-08 | 파세토, 인크. | 휴대용 저장 디바이스를 위한 시스템 및 방법 |
US10019970B2 (en) * | 2015-02-24 | 2018-07-10 | Barco N.V. | Steady color presentation manager |
EP3269124B1 (en) | 2015-03-11 | 2020-05-06 | Fasetto, Inc. | Method and device for web api communications |
CN104965697A (zh) * | 2015-05-29 | 2015-10-07 | 深圳市金立通信设备有限公司 | 一种窗口显示方法及终端 |
US10282049B2 (en) | 2015-07-08 | 2019-05-07 | International Business Machines Corporation | Display screen management system, method and computer program product |
CN105183287A (zh) * | 2015-09-01 | 2015-12-23 | 联想(北京)有限公司 | 显示处理方法及电子设备 |
WO2017096245A1 (en) | 2015-12-03 | 2017-06-08 | Fasetto, Llc | Systems and methods for memory card emulation |
CA3044665A1 (en) | 2016-11-23 | 2018-05-31 | Fasetto, Inc. | Systems and methods for streaming media |
JP7181882B2 (ja) | 2017-02-03 | 2022-12-01 | ファセット・インコーポレーテッド | 連携デバイスにおけるデータ格納システムおよび方法 |
WO2019079628A1 (en) | 2017-10-19 | 2019-04-25 | Fasetto, Inc. | PORTABLE ELECTRONIC DEVICE CONNECTING SYSTEMS |
US11985244B2 (en) | 2017-12-01 | 2024-05-14 | Fasetto, Inc. | Systems and methods for improved data encryption |
US10979466B2 (en) | 2018-04-17 | 2021-04-13 | Fasetto, Inc. | Device presentation with real-time feedback |
US20210397310A1 (en) * | 2019-03-07 | 2021-12-23 | Hewlett-Packard Development Company, L.P. | Grouping application windows in user interfaces |
US20220121325A1 (en) * | 2020-10-21 | 2022-04-21 | Lenovo (Singapore) Pte. Ltd. | User interface customization per application |
CN114510176B (zh) * | 2021-08-03 | 2022-11-08 | 荣耀终端有限公司 | 终端设备的桌面管理方法和终端设备 |
US11960911B1 (en) * | 2022-12-19 | 2024-04-16 | Dropbox, Inc. | Storing and restoring desktop application scenes |
US12008051B1 (en) | 2022-12-19 | 2024-06-11 | Dropbox, Inc. | Generating digital content clusters based on web activity |
US11928320B1 (en) | 2022-12-19 | 2024-03-12 | Dropbox, Inc. | Storing and arranging application windows for video call scenes |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05189187A (ja) * | 1992-01-09 | 1993-07-30 | Fujitsu Ltd | マルチウィンドウ表示方式 |
JP2001060134A (ja) * | 1999-08-24 | 2001-03-06 | Hitachi Ltd | マルチウィンドウ制御システム |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0511962A (ja) | 1990-10-10 | 1993-01-22 | Fuji Xerox Co Ltd | ウインドウ管理装置 |
US5412776A (en) | 1992-12-23 | 1995-05-02 | International Business Machines Corporation | Method of generating a hierarchical window list in a graphical user interface |
US5499334A (en) | 1993-03-01 | 1996-03-12 | Microsoft Corporation | Method and system for displaying window configuration of inactive programs |
US5694561A (en) * | 1994-12-12 | 1997-12-02 | Microsoft Corporation | Method and system for grouping and manipulating windows |
US5856826A (en) * | 1995-10-06 | 1999-01-05 | Apple Computer, Inc. | Method and apparatus for organizing window groups and windows in a table |
JPH09128192A (ja) | 1995-10-26 | 1997-05-16 | Brother Ind Ltd | マルチ画面表示制御装置 |
EP1016066A4 (en) | 1997-03-31 | 2001-06-13 | G & R Associates Inc | COMPUTER / TELEPHONE INTEGRATION WITH INTELLIGENT KEYBOARD, AND ASSOCIATED METHOD |
US6160554A (en) | 1998-03-19 | 2000-12-12 | Hewlett Packard Company | Computer file content preview window |
US7346850B2 (en) | 1998-06-12 | 2008-03-18 | Cygnus Systems, Inc. | System and method for iconic software environment management |
US6909443B1 (en) * | 1999-04-06 | 2005-06-21 | Microsoft Corporation | Method and apparatus for providing a three-dimensional task gallery computer interface |
US6957395B1 (en) * | 2000-01-04 | 2005-10-18 | Apple Computer, Inc. | Computer interface having a single window mode of operation |
US6781611B1 (en) | 2000-06-28 | 2004-08-24 | International Business Machines Corporation | Method and system for navigating between applications, documents, and files |
US7176943B2 (en) | 2002-10-08 | 2007-02-13 | Microsoft Corporation | Intelligent windows bumping method and system |
US7913183B2 (en) * | 2002-10-08 | 2011-03-22 | Microsoft Corporation | System and method for managing software applications in a graphical user interface |
US7159189B2 (en) | 2003-06-13 | 2007-01-02 | Alphabase Systems, Inc. | Method and system for controlling cascaded windows on a GUI desktop on a computer |
US20050091610A1 (en) * | 2003-10-22 | 2005-04-28 | International Business Machines Corporation | Selective display of windows on an auxiliary output device |
JP4325449B2 (ja) * | 2004-03-19 | 2009-09-02 | ソニー株式会社 | 表示制御装置,表示制御方法,記録媒体 |
US20050223334A1 (en) * | 2004-03-31 | 2005-10-06 | Guido Patrick R | Affinity group window management system and method |
-
2005
- 2005-03-31 US US11/094,140 patent/US7581192B2/en not_active Expired - Fee Related
- 2005-08-25 WO PCT/US2005/030312 patent/WO2006107324A2/en active Application Filing
- 2005-08-25 JP JP2008504008A patent/JP2008535083A/ja active Pending
- 2005-08-25 EP EP05790794.1A patent/EP1866730B1/en not_active Not-in-force
- 2005-08-25 CN CNB200580048776XA patent/CN100552602C/zh not_active Expired - Fee Related
- 2005-08-25 KR KR1020077018464A patent/KR20080001706A/ko not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05189187A (ja) * | 1992-01-09 | 1993-07-30 | Fujitsu Ltd | マルチウィンドウ表示方式 |
JP2001060134A (ja) * | 1999-08-24 | 2001-03-06 | Hitachi Ltd | マルチウィンドウ制御システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012069060A (ja) * | 2010-09-27 | 2012-04-05 | Nec Corp | 情報処理端末およびその制御方法 |
JP2013008081A (ja) * | 2011-06-22 | 2013-01-10 | Ricoh Co Ltd | プログラムおよび情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101133381A (zh) | 2008-02-27 |
US20060224991A1 (en) | 2006-10-05 |
EP1866730A2 (en) | 2007-12-19 |
EP1866730A4 (en) | 2008-11-05 |
EP1866730B1 (en) | 2017-09-27 |
US7581192B2 (en) | 2009-08-25 |
WO2006107324A2 (en) | 2006-10-12 |
WO2006107324A3 (en) | 2007-04-12 |
KR20080001706A (ko) | 2008-01-03 |
CN100552602C (zh) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008535083A (ja) | アプリケーションウィンドウのグループ化および管理のための方法および装置 | |
US7747965B2 (en) | System and method for controlling the opacity of multiple windows while browsing | |
US7844917B2 (en) | Optimal display of multiple windows within a computer display | |
JP4825869B2 (ja) | アプリケーションウインドウのグループ化および管理のための方法および装置 | |
US20060161847A1 (en) | Window information switching system | |
US7577918B2 (en) | Visual expression of a state of an application window | |
US7426697B2 (en) | Multi-application tabbing system | |
US8341541B2 (en) | System and method for visually browsing of open windows | |
US10762277B2 (en) | Optimization schemes for controlling user interfaces through gesture or touch | |
US20060248404A1 (en) | System and Method for Providing a Window Management Mode | |
US20030222915A1 (en) | Data processor controlled display system with drag and drop movement of displayed items from source to destination screen positions and interactive modification of dragged items during the movement | |
US20060271858A1 (en) | Methods and systems for operating multiple web pages in a single window | |
US20140013234A1 (en) | User interface virtualization of context menus | |
US20070226642A1 (en) | Apparatus and method for displaying transparent windows when copying or moving items between windows | |
JP2014523050A (ja) | コンテキストベースメニューシステムのためのサブメニュー | |
US20110179383A1 (en) | Methods, systems, and computer program products for automatically selecting objects in a plurality of objects | |
US20140327608A1 (en) | Transforming visualized data through visual analytics based on interactivity | |
WO2005114370A2 (en) | System and method for multiple document interface | |
JPH06202837A (ja) | オブジェクト指向プログラミング・システムにおけるウィンドウ環境の管理方法及び装置 | |
US20060265359A1 (en) | Flexible data-bound user interfaces | |
US20200150859A1 (en) | Method of operating widget on an electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080825 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110225 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110715 |