(57)【特許請求の範囲】
【請求項１】
入力を受け取る段階と、
前記入力に応答して、２つ以上の選択されたアイテムの表現を、ユーザインターフェイスにおけるアイテムの各オリジナル位置から、ユーザインターフェイスにおけるポインタの現在位置に向かって移動し、ポインタの付近に前記表現のクラスターを形成し、ユーザインターフェイスにおいて前記２つ以上の選択されたアイテムをドラグする前記ポインタの継続移動を検出し、前記２つ以上の選択されたアイテムの表現のクラスターが前記ユーザインターフェイスにおいて前記ポインタの移動をたどることをアニメ化する段階と、
を備えた、装置の１つ以上のプロセッサにより遂行されるコンピュータ実施方法。
【請求項２】
前記ユーザインターフェイスにおける前記２つ以上の選択されたアイテムの表現の動きは非同期である、請求項１に記載の方法。
【請求項３】
前記クラスターにおけるアイテム表現のカウントを示すカウントインジケータを前記クラスターの付近に提示させる段階を更に備えた、請求項１に記載の方法。
【請求項４】
前記クラスターにおける各アイテム表現は、前記ポインタの継続移動をたどる間に前記クラスターにおける他のアイテム表現の各経路とは独立した経路に沿って移動する、請求項１に記載の方法。
【請求項５】
前記１つ以上のアイテムは、前記ユーザインターフェイスにおける第１コンテナから選択され、前記２つ以上の選択されたアイテム各々の表現は、その第１コンテナに関連した各第１アピアランスを有し、そして前記方法は、更に、
前記ユーザインターフェイスにおいて第２コンテナのドロップゾーン内で前記ポインタの現在位置を検出する段階と、
前記ポインタの現在位置が前記第２コンテナのドロップゾーン内に留まる間に、前記選択されたアイテムの表現に、前記第２コンテナに関連した各第２アピアランスを採用させる段階と、
を更に備えた請求項１に記載の方法。
【請求項６】
前記２つ以上の選択されたアイテムの表現のプレビューが前記第２コンテナにドロップされることを要求する入力を検出する段階と、
前記入力の検出に応答して、前記選択されたアイテムの表現が前記クラスターから離れて、前記第２コンテナにおける各予想位置に向けて移動することをアニメ化する段階と、
を更に備えた請求項５に記載の方法。
【請求項７】
前記第２コンテナを出る前記ポインタの移動を検出する段階と、
前記第２コンテナを出る移動に応答して、前記１つ以上の選択されたアイテムの各表現が前記第２コンテナにおけるアイテムの各予想位置から前記ポインタの現在位置に向かって移動しそして前記ポインタの現在位置の付近で前記クラスターに再結合することをアニメ化する段階と、
を更に備えた請求項６に記載の方法。
【請求項８】
１つ以上のプロセッサにより実行されたときに、その１つ以上のプロセッサが、
入力を受け取り、
前記入力に応答して、２つ以上の選択されたアイテムの表現を、ユーザインターフェイスにおけるアイテムの各オリジナル位置から、ユーザインターフェイスにおけるポインタの現在位置に向かって移動し、ポインタの付近に前記表現のクラスターを形成し、ユーザインターフェイスにおいて前記２つ以上の選択されたアイテムをドラグする前記ポインタの継続移動を検出し、前記２つ以上の選択されたアイテムの表現のクラスターが前記ユーザインターフェイスにおいて前記ポインタの移動をたどることをアニメ化する、
ことを含む動作を遂行するようにさせるインストラクションが記憶されたコンピュータ読み取り可能な媒体。
【請求項９】
前記ユーザインターフェイスにおける前記アイテムの表現の動きは非同期である、請求項８に記載のコンピュータ読み取り可能な媒体。
【請求項１０】
前記動作は、更に、前記クラスターにおけるアイテム表現のカウントを示すカウントインジケータを前記クラスターの付近に提示させることを含む、請求項８に記載のコンピュータ読み取り可能な媒体。
【請求項１１】
前記クラスターにおける各アイテム表現は、前記ポインタの継続移動をたどる間に前記クラスターにおける他のアイテム表現の各経路とは独立した経路に沿って移動する、請求項８に記載のコンピュータ読み取り可能な媒体。
【請求項１２】
前記１つ以上のアイテムは、前記ユーザインターフェイスにおける第１コンテナから選択され、前記２つ以上の選択されたアイテム各々の表現は、その第１コンテナに関連した各第１アピアランスを有し、そして前記方法は、更に、
前記ユーザインターフェイスにおいて第２コンテナのドロップゾーン内で前記ポインタの現在位置を検出し、
前記ポインタの現在位置が前記第２コンテナのドロップゾーン内に留まる間に、前記選択されたアイテムの表現に、前記第２コンテナに関連した各第２アピアランスを採用させる、
ことを含む請求項８に記載のコンピュータ読み取り可能な媒体。
【請求項１３】
前記動作は、更に、
前記２つ以上の選択されたアイテムの表現のプレビューが前記第２コンテナにドロップされることを要求する入力を検出し、
前記入力の検出に応答して、前記選択されたアイテムの表現が前記クラスターから離れて、前記第２コンテナにおける各予想位置に向けて移動することをアニメ化する、
ことを含む請求項１２に記載のコンピュータ読み取り可能な媒体。
【請求項１４】
前記動作は、更に、
前記第２コンテナを出る前記ポインタの移動を検出し、
前記第２コンテナを出る移動に応答して、前記１つ以上の選択されたアイテムの各表現が前記第２コンテナにおけるアイテムの各予想位置から前記ポインタの現在位置に向かって移動しそして前記ポインタの現在位置の付近で前記クラスターに再結合することをアニメ化する、
ことを含む請求項１３に記載のコンピュータ読み取り可能な媒体。
【請求項１５】
１つ以上のプロセッサと、
１つ以上のプロセッサにより実行されたときに、その１つ以上のプロセッサが、
入力を受け取り、
前記入力に応答して、２つ以上の選択されたアイテムの表現を、ユーザインターフェイスにおけるアイテムの各オリジナル位置から、ユーザインターフェイスにおけるポインタの現在位置に向かって移動し、ポインタの付近に前記表現のクラスターを形成し、ユーザインターフェイスにおいて前記２つ以上の選択されたアイテムをドラグする前記ポインタの継続移動を検出し、前記２つ以上の選択されたアイテムの表現のクラスターが前記ユーザインターフェイスにおいて前記ポインタの移動をたどることをアニメ化する、
ことを含む動作を遂行するようにさせるインストラクションが記憶されたメモリと、
を備えたシステム。
【請求項１６】
前記ユーザインターフェイスにおける前記２つ以上の選択されたアイテムの表現の動きは非同期である、請求項１５に記載のシステム。
【請求項１７】
前記クラスターにおける各アイテム表現は、前記ポインタの継続移動をたどる間に前記クラスターにおける他のアイテム表現の各経路とは独立した経路に沿って移動する、請求項１５に記載のシステム。
【請求項１８】
前記１つ以上のアイテムは、前記ユーザインターフェイスにおける第１コンテナから選択され、前記２つ以上の選択されたアイテム各々の表現は、その第１コンテナに関連した各第１アピアランスを有し、そして前記方法は、更に、
前記ユーザインターフェイスにおいて第２コンテナのドロップゾーン内で前記ポインタの現在位置を検出し、
前記ポインタの現在位置が前記第２コンテナのドロップゾーン内に留まる間に、前記選択されたアイテムの表現に、前記第２コンテナに関連した各第２アピアランスを採用させる、
ことを含む請求項１５に記載のシステム。
【請求項１９】
前記動作は、更に、
前記２つ以上の選択されたアイテムの表現のプレビューが前記第２コンテナにドロップされることを要求する入力を検出し、
前記入力の検出に応答して、前記選択されたアイテムの表現が前記クラスターから離れて、前記第２コンテナにおける各予想位置に向けて移動することをアニメ化する、
ことを含む請求項１８に記載のシステム。
【請求項２０】
前記動作は、更に、
前記第２コンテナを出る前記ポインタの移動を検出し、
前記第２コンテナを出る移動に応答して、前記１つ以上の選択されたアイテムの各表現が前記第２コンテナにおけるアイテムの各予想位置から前記ポインタの現在位置に向かって移動しそして前記ポインタの現在位置の付近で前記クラスターに再結合することをアニメ化する、
ことを含む請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、コンピューティング装置における情報アイテムの管理に関する。
【背景技術】
【０００２】
近代的なコンピューティング装置は、多くの場合、情報アイテムを種々のディレクトリ又はサブディレクトリ（例えば、フォルダ）にファイルシステムハイアラーキーにて記憶するファイルシステムを備えている。グラフィックユーザインターフェイス（ＧＵＩ）では、ファイルシステムハイアラーキーにおける情報アイテムの位置を指示するために情報アイテムの親アイテムに関連した各コンテナオブジェクト（例えば、デスクトップ、フォルダウインドウ）に情報アイテムの表現（例えば、アイコン）が示される。
【０００３】
各コンテナオブジェクトは、アピアランススタイル(appearance style)（例えば、大きなアイコンビュー、小さなアイコンビュー、リストビュー、列ビュー、等）に関連している。コンテナオブジェクトに収容される情報アイテムの表現は、そのコンテナオブジェクトに関連したアピアランススタイルに基づいて各々のアピアランスをとる。あるコンテナからアピアランススタイルの異なる別のコンテナへアイテムが移動するとき又は現在コンテナのアピアランススタイルが変更されるときには、アイテムの現在コンテナの現在アピアランススタイルに基づきアイテムの表現のアピアランスを変化させることができる。
【０００４】
多くのオペレーティングシステムは、ＧＵＩにおいて現在選択されたアイテムに対してドラグ及びドロップ動作の遂行を可能にする。ドラグ及びドロップ動作では、選択されたアイテムの表現を、ポインタ（例えば、タッチ感知面上のマウスカーソル又はポインティング装置）の移動に続いて、ユーザインターフェイスにおいて１つのコンテナオブジェクトから別のコンテナオブジェクトへ移動（又は「ドラグ」）することができる。望ましいターゲットコンテナのドロップゾーン上でアイテムが解除（又は「ドロップ」）されたときには、その選択されたアイテムがターゲットコンテナのコンテンツアイテムとなり、そしてアイテムの表現がターゲットコンテナに関連したアピアランススタイルに基づいてターゲットコンテナに現れる。
【発明の概要】
【０００５】
ユーザ又はアプリケーションは、ユーザインターフェイスにおいて１つ以上のアイテム表現を選択し、そしてユーザインターフェイスにおけるカーソル（例えば、マウスカーソル又はトラックボールカーソル）又はポインティング装置（例えば、指又はスタイラス）の移動により、その選択されたアイテム表現に対して動作（例えば、ドラグ動作）を開始することができる。動作が開始されると、アイテム表現がユーザインターフェイスにおけるカーソル又はポインティング装置の現在位置に向かって移動しそしてカーソル又はポインティング装置の現在位置に接近してクラスターを形成することを描写するアニメーションが提示される。カーソル又はポインティング装置がユーザインターフェイス内を移動するとき、アイテム表現のクラスターは、ユーザインターフェイスにおいてカーソル又はポインティング装置と共に移動することができる。クラスター内の各アイテム表現は、ユーザインターフェイスにおいて、クラスター内の他のアイテム表現とは異なる深さに沿って及び異なる速度又は加速度で移動することができる。
【０００６】
アイテム表現が最初に選択されるとき、アイテム表現は、そのアイテム表現が選択されるところのコンテナオブジェクトに関連したアピアランススタイルに基づいて各々第１のアピアランスを有する。アイテム表現のクラスターがユーザインターフェイスにおいてコンテナオブジェクトのドロップゾーン上に移動されるとき、クラスター内のアイテム表現は、そのコンテナオブジェクトに関連したアピアランススタイルに基づいて各アピアランスをとることができる。
【０００７】
ある具現化においては、ユーザがユーザインターフェイスにおける別の行先に到着するための通過中にコンテナオブジェクト上にクラスターを移動する場合にはアピアランスの変化が提示されず、そしてユーザがコンテナオブジェクトにクラスターを配置するという意図でコンテナオブジェクト上にクラスターを移動すると決定されると、アピアランスの変化が提示される。ユーザの意図は、クラスターがコンテナオブジェクト上に移動されるときにユーザインターフェイスにおけるカーソル又はポインティング装置の速度又は加速度のような動き特性に基づいて推定することができる。
【０００８】
ある具現化においては、アイテム表現のクラスターが不適切なドロップターゲットのエリア上に移動されたときに、クラスター内のアイテム表現は、そのアイテム表現が選択されるところのソースコンテナにおけるオリジナルアピアランスとは異なる各アピアランスをとることができる。新たなアピアランスは、不適切なドロップターゲットに対してソースコンテナにより定義されたアピアランススタイルに基づく。ある具現化においては、ソースコンテナは、異なるトリガー事象（例えば、不適切なドロップターゲット上でのアイテム表現のホバリング、ソースコンテナ内の特定の領域上のアイテム表現の通過、等）に基づきアイテム表現に適用できるいかなる数の異なるアピアランススタイルを定義することもできる。
【０００９】
ある具現化においては、ポインタ又はクラスターが潜在的ターゲットコンテナ上で規定期間より長くホバリングするとき、アイテム表現がクラスターから離れてターゲットコンテナオブジェクト内の表現の予想位置に向かって移動することをターゲットコンテナオブジェクトへのドロップ動作のプレビューとして示すためにアニメーションが提示される。アイテム表現は、アイテム表現の予想位置又はその付近にプレビュー状態で（例えば、半透明のオーバーレイとして）現れ、そして潜在的ターゲットコンテナオブジェクトに関連したアピアランススタイルを採用する。幾つかのアイテム表現の予想位置が、ユーザインターフェイスにおいて現在見えない潜在的ターゲットコンテナオブジェクトのエリア内にある場合には、それらのアイテム表現は、クラスターからユーザインターフェイスにおける各経路に沿って見えないエリアへ移動するように示すことができる。
【００１０】
ある具現化においては、カーソル又はポインティング装置が、選択されたアイテムをドロップせずに潜在的ターゲットコンテナから離れるように移動される場合に、選択されたアイテムの表現は、予想位置又はその付近の位置におけるそれら各位置から退けられて、カーソル又はポインティング装置の現在位置の付近でクラスターに再結合するようにアニメ化される。或いは又、選択されたアイテムが潜在的ターゲットコンテナへと解除される場合には、選択されたアイテムの表現は、第１の状態（例えば、半透明状態）から第２の状態（例えば、不透明状態）へ移行しそして潜在的ターゲットコンテナにおけるアイテムの予想位置に落ち着くようにアニメ化される。
【００１１】
ある具現化は、コーリングプログラムコードが１つ以上のインターフェイスを通してコールされる他のプログラムコードとインターフェイスする環境において１つ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）を含む。色々な種類のパラメータを更に含む種々のファンクションコール、メッセージ又は他の形式の呼び出しは、コーリングプログラムとコールされるコードとの間のＡＰＩを経て転送される。更に、ＡＰＩは、ＡＰＩにおいて定義され且つコールされるプログラムコードで具現化されるデータ形式又はクラスを使用する能力をコーリングプログラムコードに与える。
【００１２】
少なくとも幾つかの具現化は、コーリングソフトウェアコンポーネントがＡＰＩを通してコーリングされるソフトウェアコンポーネントとインターフェイスする環境を含む。この環境においてＡＰＩを通して動作する方法は、ＡＰＩを経て１つ以上のファンクションコール、メッセージ、及び他の形式の呼び出し又はパラメータを転送することを含む。
【００１３】
ある具現化において、アイテムの表現は、ソースコンテナオブジェクト及び種々の潜在的ドロップターゲットコンテナにより定義された種々のアピアランススタイルに基づいてオペレーティングシステムにより発生されるアピアランスを有する。各アピアランススタイルは、それに対応するコンテナによりＡＰＩを通して定義される。各アピアランススタイルは、アイテム表現に対して１つ以上のレイヤを指定し、そして各レイヤは、レイヤのアピアランス、レイヤのアニメーションスタイル、等をコントロールする異なるプロパティ及びルールに関連付けることができる。異なるアニメーションは、異なるレイヤにおいて互いに独立して遂行することができる。
【００１４】
個々のアイテム表現のアピアランススタイルに加えて、各コンテナオブジェクトは、そのアイテム表現がそれらの種々のアピアランスにあるときに、複数のアイテム（例えば、全ての選択されたアイテム）の各フォーメーションスタイルも総体的に定義することができる。フォーメーションスタイルも、それに対応するコンテナオブジェクトによりＡＰＩを通して定義することができる。フォーメーションスタイルは、例えば、ここに述べるように、ソースコンテナにおけるアイテム表現のレイアウト、ポインタ付近のクラスターフォーメーション、及び潜在的ドロップターゲットコンテナにおけるプレビューフォーメーションを含む。他のフォーメーションスタイルを定義することもできる。アピアランスとフォーメーションとの間の各移行を描写するために適用される異なるアニメーションスタイルも、ソースコンテナ又は潜在的ドロップターゲットコンテナによりＡＰＩを通して指定することができる。
【００１５】
ユーザインターフェイスにおいてアイテムを管理する１つ以上の具現化の詳細を、添付図面を参照して以下に詳細に述べる。他の特徴、態様及び効果は、以下の説明、添付図面及び特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【００１６】
【図１Ａ】複数の選択されたアイテムの表現が、ポインタの現在位置に向かって移動しそしてその選択されたアイテムに対する定義された動作（例えば、ドラグ動作）の開始に応答してポインタの現在位置の付近にクラスターを形成するところを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｂ】複数の選択されたアイテムの表現が、ポインタの現在位置に向かって移動しそしてその選択されたアイテムに対する定義された動作（例えば、ドラグ動作）の開始に応答してポインタの現在位置の付近にクラスターを形成することを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｃ】複数の選択されたアイテムの表現が、ポインタの現在位置に向かって移動しそしてその選択されたアイテムに対する定義された動作（例えば、ドラグ動作）の開始に応答してポインタの現在位置の付近にクラスターを形成することを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｄ】アイテム表現のクラスターの移動がユーザインターフェイスにおいてポインタの移動をたどることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｅ】クラスターが潜在的ターゲットコンテナのドロップゾーン内にある間にクラスター内のアイテム表現が潜在的ターゲットコンテナのアピアランススタイルに基づいてそれらのアピアランスを変化させることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｆ】クラスターが潜在的ターゲットコンテナのドロップゾーン内にある間にクラスター内のアイテム表現が潜在的ターゲットコンテナのアピアランススタイルに基づいてそれらのアピアランスを変化させることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｇ】選択されたアイテムが潜在的なターゲットコンテナへとドロップされるべき場合にはアイテム表現がクラスターから離れそして潜在的なターゲットコンテナにおける各予想位置に向かって移動することをコンテナ構成のプレビューとして示す規範的なユーザインターフェイス変化を例示する。
【図１Ｈ】選択されたアイテムが潜在的なターゲットコンテナへと解除又はドロップされたときにその選択されたアイテムの表現がそれらの各予想位置へと落ち着くことを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｉ】ポインタの移動に続いてアイテム表現のクラスターが潜在的なターゲットコンテナから離れる（例えば、ユーザが選択されたアイテムを潜在的なターゲットコンテナへドロップしないと判断した）ことを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｊ】アイテム表現のクラスターが、第２のアピアランススタイルに関連した第２の潜在的なターゲットコンテナへドラグされ、そしてアイテム表現のクラスターが第２の潜在的なターゲットコンテナのアピアランススタイルに基づいてそれらのアピアランスを変化させることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｋ】アイテム表現のクラスターが、第２のアピアランススタイルに関連した第２の潜在的なターゲットコンテナへドラグされ、そしてアイテム表現のクラスターが第２の潜在的なターゲットコンテナのアピアランススタイルに基づいてそれらのアピアランスを変化させることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｌ】選択されたアイテムが第２の潜在的なターゲットコンテナへドロップされるべき場合にその選択されたアイテムの表現がクラスターから離れそして第２の潜在的なターゲットコンテナにおける各予想位置に向かって移動することをコンテナ構成のプレビューとして示す規範的なユーザインターフェイス変化を例示する。
【図１Ｍ】アイテムが第２の潜在的なターゲットコンテナへドロップされたときに選択されたアイテムの表現がそれらの各予想位置へ落ち着くことを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｎ】１つ以上のアイテムを選択し、そして第１のコンテナからフリーアレンジ状態にある第２のコンテナへドラグすることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｏ】１つ以上のアイテムを選択し、そして第１のコンテナからフリーアレンジ状態にある第２のコンテナへドラグすることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｐ】１つ以上のアイテムを選択し、そして第１のコンテナからフリーアレンジ状態にある第２のコンテナへドラグすることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｑ】アイテム表現のプレビューが第２コンテナ内のそれらの予想位置に表示されそしてプレビュー中に第２コンテナオブジェクトにおいてポインタにより移動されることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｒ】アイテム表現のプレビューが第２コンテナ内のそれらの予想位置に表示されそしてプレビュー中に第２コンテナオブジェクトにおいてポインタにより移動されることを示す規範的なユーザインターフェイス変化を例示する。
【図１Ｓ】アイテムが第２のコンテナへ解除された後にその選択されたアイテムがプレビューに示されたそれらの各位置へ落ち着くことを示す規範的なユーザインターフェイス変化を例示する。
【図２Ａ】選択されたアイテムの表現が、その選択されたアイテムに対する定義された動作（例えば、ドラグ動作）の開始に応答して、ポインタの現在位置の付近にクラスターを形成するようにさせる規範的プロセスのフローチャートである。
【図２Ｂ】選択されたアイテムの表現がクラスター内のポインタの連続移動をたどるようにさせる規範的プロセスのフローチャートである。
【図３】アイテム表現のクラスターが、異なるアピアランススタイルに関連したコンテナへ移動されるときにアイテム表現のアピアランスを変化させる規範的プロセスのフローチャートである。
【図４Ａ】潜在的なターゲットコンテナ内の各予想位置においてアイテム表現のプレビューを示す規範的プロセスのフローチャートである。
【図４Ｂ】選択されたアイテムを潜在的なターゲットコンテナにドロップする規範的プロセスのフローチャートである。
【図５】選択されたアイテムを潜在的なターゲットコンテナにドロップせずにプレビュー後に潜在的なターゲットコンテナから離れるように移動する規範的プロセスのフローチャートである。
【図６】アイテム表現のプレビューを潜在的なターゲットコンテナにおけるそれらの予想位置に提示すべきかどうか決定する規範的プロセスのフローチャートである。
【図７】あるコンテナから別のコンテナへアイテムがドラグされるときにアイテム表現のアピアランスを変化させる規範的プロセスのフローチャートである。
【図８Ａ】図１Ａ−１Ｓを参照して述べたメニュー提示プロセスを具現化する規範的ソフトウェアアーキテクチャーを例示する。
【図８Ｂ】図１Ａ−１Ｓを参照して述べたメニュー提示プロセスを具現化する規範的ソフトウェアアーキテクチャーを例示する。
【図８Ｃ】図１Ａ−１Ｓを参照して述べたメニュー提示プロセスを具現化する規範的ソフトウェアアーキテクチャーを例示する。
【図９】図１−８Ｃを参照して述べたユーザインターフェイス及びプロセスを具現化する規範的ハードウェアアーキテクチャーのブロック図である。
【発明を実施するための形態】
【００１７】
種々の図面において同じ要素が同じ参照記号で示されている。
【００１８】
ユーザインターフェイスにおいてアイテムをドラグ及びドロップするための規範的ユーザインターフェイス
ファイルシステムでは、情報アイテム（例えば、ファイル及びフォルダ）をファイルシステムハイアラーキーにおいて編成することができる。各情報アイテム（例えば、ファイル及びフォルダ）は、ファイルシステムハイアラーキーにおいて親アイテム（例えば、親フォルダ）に収容することができる。ドキュメントを編集するためのアプリケーションプログラム（例えば、ｈｔｍｌエディタ、ワードプロセッサ、ｅ−メールエディタ、等）においては、ドキュメントの特定の位置にコンテンツアイテム（例えば、画像、ビデオ、データオブジェクト、等）を埋め込むことができる。更に、情報アイテム（例えば、アドレスブックエントリ、データオブジェクト）及びユーザインターフェイス要素（例えば、ボタン）をアプリケーションウインドウ内の定義された位置から移動し及びそこに挿入することができる。
【００１９】
グラフィックユーザインターフェイス（ＧＵＩ）では、デスクトップ、フォルダウインドウ及び／又はアプリケーションウインドウのようなコンテナオブジェクトを使用して、ファイルシステムハイアラーキーにおいてフォルダを表現し、新たな又は既存のアプリケーションドキュメントを提示し、及び／又はユーザインターフェイス要素又はデータオブジェクトを提示することができる。親フォルダに含まれる情報アイテム（例えば、ファイル及びフォルダ）の表現（例えば、アイコン）は、ＧＵＩにおいて親フォルダを表現するコンテナオブジェクト（例えば、フォルダウインドウ又はデスクトップ）内に表示される。同様に、コンテンツアイテム（例えば、画像、ビデオクリップ、データオブジェクト、等）の表現（例えば、サムネイル画像又はアイコン）は、コンテンツアイテムが埋め込まれるアプリケーションドキュメントを表わすコンテナオブジェクト（例えば、アプリケーションウインドウ）内に表示される。同様に、ユーザインターフェイス要素及びデータオブジェクトの表現（例えば、ボタン又はデータオブジェクトのアイコン）は、コンテナオブジェクト（例えば、アプリケーションウインドウ、ファインダーウインドウ）にも提示される。
【００２０】
従来のＧＵＩでは、ユーザ又はアプリケーションが、ソースコンテナ（例えば、デスクトップ又はフォルダウインドウ）においてアイテムの表現（例えば、アイコン）を選択し、その選択されたアイテム表現を、ポインタ（例えば、タッチ感知面上のマウスカーソル、スタイラス又は指）を使用して、ターゲットコンテナのドロップゾーン（例えば、デスクトップの使用可能なエリア又はフォルダウインドウのウインドウエリア）へ移動（例えば、ドラグ）し、そしてその選択されたアイテム表現をターゲットコンテナへドロップする。ドラグ及びドロップ動作の後に、選択されたアイテム表現は、ソースコンテナから、ユーザインターフェイスのターゲットコンテナへ移動される。ファイルシステムでは、選択された表現に対応するアイテムが、ソースコンテナに関連する位置から、ファイルシステムハイアラーキーにおけるターゲットコンテナに関連した別の位置へ移動される。
【００２１】
従来のＧＵＩでは、ユーザが、選択されたアイテムをユーザインターフェイスにおいてドラグするときに、選択されたアイテムの全体的な移動が、カーソル又はポインティング装置によりドラグされる選択されたアイテムの表現を含む画像として描写される。選択されたアイテムのアピアランス及び空間的な関係は、画像がユーザインターフェイスのある位置から別の位置へドラグされるときに画像内でスタティックである。画像がターゲットコンテナのドロップゾーンに入った後にアイテムが解除されると（例えば、ターゲットコンテナのアピアランスの変化により指示される）、画像がターゲットコンテナへと消え、移動の完了を指示する。
【００２２】
ここに開示するように、ユーザは、ユーザインターフェイスにおいて１つ以上のアイテムを選択し、そしてアイテムが選択される間に、ユーザは、カーソル又はポインティング装置の移動によりその選択されたアイテムに対して定義された動作（例えば、ドラグ動作）開始することができる。動作が開始されると、選択されたアイテムの表現（例えば、アイコン）がそのオリジナルの位置からユーザインターフェイスにおけるカーソル又はポインティング装置の現在位置に向かって移動して、カーソル又はポインティング装置の現在位置の付近にカーソルを形成することを描写するアニメーションが提示される。以下「ポインタ」という語は、カーソル（例えば、マウス又はトラックボールカーソル）及びポインティング装置（例えば、タッチ感知ディスプレイ上の指又はスタイラス）を記述するのに使用される。
【００２３】
ある具現化において、ユーザがドラグ動作中にポインタを移動し続けるときに、選択されたアイテムの表現は、ポインタ（例えば、ユーザインターフェイスにおけるカーソル、又はタッチ感知ディスプレイ上の指又はスタイラスのタッチ点）をたどってユーザインターフェイスにおいてクラスターとして移動する。クラスター内の各アイテム表現の個々の移動は、クラスター内の他のアイテム表現に対して経路、速度及び加速度に関して独立して表わされる。ある具現化において、アイテム表現は、ポインタの現在位置の後方でクラスター内の変化する距離に追従する。
【００２４】
更に、ある具現化において、ユーザインターフェイスに表示されるコンテナオブジェクトは、異なるアピアランススタイルに関連され、そして各コンテナオブジェクト内に表示されるアイテムの表現は、そのコンテナオブジェクトに関連したアピアランススタイルに基づく特性アピアランスをとる。通常のアピアランススタイルは、例えば、大きなアイコンビュー、小さなアイコンビュー、リストビュー、列ビュー、又はピクチャービューを含む。アプリケーションウインドウに関連した他のアピアランススタイルは、例えば、オペレーティングシステムに関連したＡＰＩを通してアプリケーションウインドウを与えるアプリケーションプログラムにより定義される。個々のアイテム表現に対するアピアランススタイルに加えて、各コンテナオブジェクトは、選択されたアイテム表現に対するフォーメーションスタイルも総体的に定義する。規範的なフォーメーションスタイルは、フリーアレンジレイアウト、キープアレンジレイアウト、クラスター、等を含む。
【００２５】
ある具現化において、アイテムが最初に選択されたときに、その選択されたアイテムの表現は、アイテムの各ソースコンテナに関連したアピアランススタイルに基づく各第１のアピアランスを有する。選択されたアイテムの表現がクラスターを形成し、そしてユーザインターフェイスにおける異なるコンテナオブジェクトのドロップゾーン上に移動されるときに、クラスター内の選択されたアイテムの表現は、アイテム表現のクラスターが現在位置するコンテナオブジェクトに関連したアピアランススタイルに基づいて異なるアピアランスをとる。ある具現化において、クラスター内の選択されたアイテムが不適切なドロップターゲットコンテナのエリア上にあるときに、クラスター内の選択されたアイテムの表現は、その不適切なドロップターゲットコンテナに対するソースコンテナオブジェクトにより定義された他のアピアランススタイルに基づくアピアランスをとる。又、選択されたアイテムのフォーメーションスタイルは、不適切なドロップターゲットコンテナのソースコンテナにより定義されたフォーメーションスタイルに基づいて変化する。
【００２６】
図１Ａ−１Ｃは、複数の選択されたアイテムの表現が、ポインタの現在位置に向かって移動しそしてポインタによるその選択されたアイテムに対する定義された動作（例えば、ドラグ動作）の開始に応答してポインタの現在位置の付近にクラスターを形成することを示す規範的なユーザインターフェイス変化を例示する。
【００２７】
図１Ａには、規範的なユーザインターフェイス１００が示されている。規範的なユーザインターフェイス１００は、オペレーティングシステムのデスクトップである。ユーザインターフェイス１００において、例えば、デスクトップのディスプレイエリア１０２内に多数のコンテナオブジェクト（例えば、フォルダウインドウ１０４、フォルダウインドウ１０６、及びアプリケーションウインドウ１０８）が表示される。
【００２８】
図１Ａに示すように、フォルダウインドウ１０４は、大きなアイコンビューで示されたアイテムの表現（例えば、アイテム表現１１０、１１２、１１４、１１６及び１１８）を収容する。大きなアイテムビューにおいて、各アイテムの表現は、アイテムのコンテンツのプレビューを示すサムネール画像、及びアイテムの名前を示すテキストラベルを含む。例えば、アイテムが画像ファイルである場合には、大きなアイコンビューにおけるアイテムの表現は、画像ファイルのファイル名を示すテキストラベルを伴う画像ファイルのスケールダウンレプリカである。別の例として、アイテムがフォルダである場合には、大きなアイコンビューにおけるアイテムの表現は、拡大フォルダアイコンの表面上のフォルダの代表的コンテンツを露呈する拡大フォルダアイコン、及びフォルダの名前を示すテキストラベルである。サイズ、透明度レベル、カラースキーム、等の他のアピアランス特性も、大きなアイコンビューにおけるアイテムの表現に関連付けられる。
【００２９】
ある具現化において、フォルダウインドウは、アイテムを表わす小さなアイコンが表示される小さなアイコンビューもある。アイテムの小さなアイコン表示は、アイテムの大きなアイコン表示より視覚情報が少ない。例えば、アイテムの小さなアイコン表示は、アイテムのファイル形式（例えば、画像ファイル、テキストドキュメント、フォルダ、等）を指示するが、アイテムの特定コンテンツに関する情報は省略する。アイテムの大きなアイコン表示及び小さなアイコン表示は、どちらも、アイテムのファイル名を指示するテキストラベルを含む。ある具現化において、アイテムの大きなアイコン表示及び小さなアイコン表示のテキストラベルは、アピアランスが異なる。
【００３０】
ある具現化において、大きなアイコンビュー（又は小さなアイコンビュー）のフォルダウインドウ（例えば、フォルダウインドウ１０４）は、フリーアレンジ状態又はキープアレンジ状態のいずれかである。フリーアレンジ状態では、アイテムの表現がフォルダウインドウの表示エリアの任意の座標位置に配置されたり、そこへ移動されたりする。キープアレンジ状態では、アイテムの表現が均一間隔のグリッドに配置され、１つ以上のキープアレンジ基準に基づいて（例えば、ファイル名により、変更時間により、サイズにより、ファイル形式により、等）分類される。
【００３１】
ある具現化において、フォルダウインドウがキープアレンジ状態にあるときに、新たなアイテムがフォルダウインドウに導入されるか、又はキープアレンジ基準（例えば、分類基準）に関連した属性がフォルダウインドウの１つ以上のアイテムに対して変化した場合には、１つ以上のフリーアレンジ基準及び属性の新たな値に基づいてフォルダウインドウのディスプレイエリアのアイテムを再編成するようにフォルダウインドウを更新することができる。
【００３２】
ある具現化において、フォルダウインドウ（例えば、フォルダウインドウ１０４）は、ユーザインターフェイス１００においてフォルダウインドウの表示エリアの一部分しか見えないようにリサイズすることができる。ユーザは、スクロールコントロールを使用してフォルダウインドウのビューポートを移動し、表示エリアの隠れた部分を露呈させるか、又はフォルダウインドウを拡大してフォルダウインドウの表示エリアをより多く露呈させることができる。
【００３３】
図１Ａに示すように、フォルダウインドウ１０４は、現在、大きなアイコンビュー及びフリーアレンジ状態で示されている。アイテム１１０、１１２、１１４、１１６、及び１１８の大きなアイコン表現は、フォルダウインドウ１０４の表示エリアにフリーアレンジ構成で位置される。又、図１Ａに示すように、ユーザは、アイテム１１０、１１４及び１１８を選択している（アイテム１１０、１１４及び１１８の陰影で示すように）。
【００３４】
又、図１Ａにおいて、フォルダウインドウ１０６は、現在、リストビューで示されている。フォルダウインドウ１０６は、ファイルシステムハイアラーキーにおいてフォルダ（例えば、フォルダ「ドロップターゲット１」）を表現する。フォルダウインドウ１０６に示されたアイテムは、フォルダウインドウ１０６により表現されたフォルダに収容されたアイテムである。フォルダウインドウ１０６に示されたアイテムの表現（例えば、アイテム表現１２２ａ及び１２２ｂ）は、各々、アイテムを表わす小さなアイコン及びアイテムのファイル名を示すテキストラベルを含む。アイテムのリストビュー表現の小さなアイコンは、アイテムの小さなアイコン表現のグラフィック部分と同じであるが、リストビュー表現及び小さなアイコン表現におけるテキストラベルは、２つの表現において異なる仕方で位置される。例えば、リストビュー表現では、テキストラベルは、小さなアイコンの右に位置され、一方、小さなアイコン表現では、テキストラベルは、小さなアイコンの下に位置される。
【００３５】
図１Ａに示されたように、リストビューのフォルダウインドウ１０６内のアイテム表現（例えば、アイテム表現１２２ａ及び１２２ｂ）は、キープアレンジ基準に基づいて、例えば、ファイル名、サイズ、変更時間、アイテム形式、等により、分類される。フォルダウインドウ１０６において、２つのアイテム１２２ａ及び１２２ｂの表現は、それらのファイル名に基づいてアレンジされる。
【００３６】
大きなアイコンビュー、小さなアイコンビュー及びリストビュー以外は、フォルダウインドウは、列ビュー（図１Ａには示さず）でも示される。列ビューにおけるフォルダウインドウは、１つ以上の列を含む。各列は、ファイルシステムハイアラーキーの各レベルに対応し、そしてファイルシステムハイアラーキーの各レベルの親レベルからの各親アイテムに関連している。列ビューフォルダウインドウの連続的な列は、ファイルシステムハイアラーキーの各レベルに対応する。各列は、列の左の隣接列における現在選択されたアイテムの子アイテムであるアイテムの表現を提示する。列ビューフォルダウインドウにおけるアイテムの表現は、リストビューフォルダウインドウにおけるアイテムの表現と同様のアピアランスを有する。
【００３７】
フォルダウインドウ及びアプリケーションウインドウの他のビューが定義される。オペレーティングシステムは、種々のビューにおいてフォルダウインドウ及びアプリケーションウインドウに提示されるときにアイテムの表現が有する種々のアピアランス特性を指定するアプリケーションプログラミングインターフェイス（ＡＰＩ）を与えることができる。ある具現化において、フォルダウインドウの各ビューは、個々のアイテム表現がこのビューにどのように現れるべきかコントロールするアピアランススタイルで指定される。各アピアランススタイルは、アイテム表現の異なるコンポーネントに対して１つ以上のレイヤを指定することができる。例えば、各レイヤは、アイテム表現のアイコン画像、アイテム表現のテキストラベル、及びアイテム表現のバックグランド画像に対して定義される。各レイヤは、コンポーネントがどのように現れるべきか及び現在アピアランススタイルから異なるアピアランススタイルへの移行中にコンポーネントをどのようにアニメ化するか定義する関連プロパティを有する。
【００３８】
図１Ａは、ユーザがフォルダウインドウ１０４においてアイテム１１０、１１４及び１１８を選択したことを示す。アイテムの選択は、ポインタ、キーボード、別の入力装置、又はそれらの１つ以上の組み合わせによって達成される。ポインタの現在位置は、カーソル（例えば、カーソル１２０）によりユーザインターフェイス１００に指示される。ポインタがタッチ感知ディスプレイ上の指又はスタイラスである具現化では、ユーザインターフェイス１００にカーソルを示す必要がなく、そしてポインタのカーソル位置は、タッチ感知ディスプレイ上の指又はスタイラスのタッチ点である。
【００３９】
図１Ｂは、定義された動作（例えば、ドラグ動作）の開始が検出された後にフォルダウインドウ１０４のオリジナル位置からポインタの現在位置に向かうアイテム表現の移動を示している。
【００４０】
ある具現化では、ユーザインターフェイス１００においてアイテムが選択されたままである間に、フォルダウインドウ１０４の内部の位置からフォルダウインドウ１０４の外部の別の位置へのポインタの移動により、定義された動作（例えば、ドラグ動作）の開始を指示することができる。ある具現化において、定義された動作は、入力装置（例えば、マウス又はキーボード）においてホールドボタン（例えば、マウスボタン又は「シフト」キー）が押されたままである間にポインタが移動されたときに開始されそして継続される。ある具現化において、定義された動作の開始は、第２の位置がフォルダウインドウ１０４の中であるか外であるかに関わらず、定義されたスレッシュホールド距離を越えて１つの位置から別の位置へのポインタの移動により指示される。ある具現化において、定義された動作中ホールドボタンを押す必要はない。
【００４１】
図１Ｂに示すように、定義された動作（例えば、ドラグ動作）の開始が検出された後に（例えば、フォルダウインドウ１０４の外部のカーソル１２０の現在位置によって指示される）、選択されたアイテムの各表現がそれらのオリジナル位置からユーザインターフェイス１００上のポインタの現在位置に向かって移動することを描写するアニメーションがユーザインターフェイス１００に提示される。各アイテム表現の移動は、ユーザインターフェイス１００における各経路（例えば、破線の曲線で示す）に沿ったものである。ある具現化において、選択されたアイテムの各表現（例えば、アイテム表現１１０、１１４及び１１８）は、フォルダウインドウ１０４においてそれらのオリジナル位置に保持され、一方、表現のコピー（例えば、アイテム表現１１０’、１１４’及び１１８’）は、表現１１０、１１４及び１１８から剥離されてそれらの各経路に沿ってポインタの現在位置に向かって移動するよう示すことができる。
【００４２】
ある具現化において、各アイテム表現（例えば、アイテム表現１１０’、１１４’及び１１８’各々）に対する速度、加速度及び経路形状は、互いに独立して変化することができる。ある具現化では、ポインタのスタート位置に接近して位置するアイテム表現（例えば、アイテム表現１１４’）は、フォルダウインドウ１０４においてポインタのスタート位置から更に離れて位置するアイテム表現（例えば、アイテム表現１１０’及び１１８’）より早期に出発するように示されている。
【００４３】
ある具現化において、アイテム表現は、ポインタが移動を開始するや否やポインタの現在位置に向かってそれらの各移動をスタートし、そしてポインタの現在位置がフォルダウインドウ１０４の縁に到達する前に選択されたアイテムが解除される場合には、選択されたアイテムの表現は、ユーザインターフェイス１００においてそれらの各経路に沿ってフォルダウインドウ１０４内のそれらのオリジナル位置へ戻るように示すことができる。
【００４４】
ある具現化において、アイテム表現（例えば、アイテム表現１１０’、１１４’及び１１８’）は、ポインタが移動を開始するや否やポインタの現在位置に向かってより低速で且つより均一な速度でそれらの各移動をスタートするように示すことができる。そして、ポインタの現在位置がフォルダウインドウ１０４を越えて移動するや否や（又はポインタがフォルダウインドウ１０４内のそのスタート位置からスレッシュホールド距離を越えて移動するや否や）、アイテムの表現は、ポインタの現在位置に向かってより迅速に移動し（又は加速し）、そしてポインタの現在位置の付近にクラスターを形成するように示すことができる。
【００４５】
ある具現化において、ポインタがフォルダウインドウ１０４内を移動するときに、選択されたアイテムの表現は、スタティック画像としてポインタの移動をたどり、その移動中には、選択されたアイテム間の空間的関係が変化しない。そして、ポインタがフォルダウインドウ１０４の外部に移動するや否や、選択されたアイテムの表現は、それらの各経路に沿ってポインタの現在位置に向かって移動し（又は「そこに群がり」）、そしてポインタの現在位置の付近にクラスターを形成するように示すことができる。
【００４６】
ある具現化において、アイテム表現（例えば、クラスター）の形成は、ＡＰＩを通してソースコンテナオブジェクト（例えば、フォルダウインドウ１０４）により定義される。各オリジナル位置からフォーメーション（例えば、クラスター）における各位置へのアイテム表現の各移動（例えば、経路形状、速度、加速度）を示すアニメーションスタイルも、ＡＰＩを通してソースコンテナにより定義される。ある具現化において、アイテム表現のアピアランススタイル及び情報スタイルは、ソースコンテナ及び潜在的ドロップターゲットコンテナにより一緒に決定される。
【００４７】
図１Ｃに示すように、選択されたアイテムの各表現（表現１１０’、１１４’及び１１８’）は、（例えば、カーソル１２０で示す）ポインタの現在位置付近の各位置に到達しそしてポインタのカーソル位置に付近にクラスター１２４を形成している。ある具現化において、アイテムの表現は、異なる時間にクラスター１２４に到達する。
【００４８】
ある具現化において、図１Ｃに示すように、選択されたアイテムの表現により形成されるクラスター１２４は、選択されたアイテムの表現（例えば、アイテム表現１１０’、１１４’及び１１８’）を収容するスタックである。ある具現化において、スタック内のアイテム表現の順序は、表現がスタックに到着する順序に依存し、これは、フォルダウインドウ１０４における各アイテムのオリジナル位置とフォルダウインドウ１０４内のポインタのスタート位置との間の各距離に間接的に依存する。ある具現化において、スタック内のアイテム表現の順序は、フォルダウインドウ１０４においてアイテムが選択された順序に依存する。ある具現化においては、クラスター１２４内のアイテム表現の他の順序（例えば、ランダム順序）も考えられる。又、ある具現化では、アイテム表現の順序は、潜在的なドロップターゲットに関連したフォーメーションスタイルで定義される（例えば、デスクトップ）。又、ある具現化において、アイテム表現の順序は、ソースコンテナに関連したフォーメーションスタイルで定義される（例えば、フォルダウインドウ１０４）。
【００４９】
ある具現化において、アイテム表現は、クラスター１２４にスタックを形成する必要はない。クラスター１２４におけるアイテムの他のアレンジメントも考えられる。例えば、クラスターにおけるアイテム表現の数が少ない場合は、アイテムを、ポインタの現在位置の付近でグリッドに又はカーブした経路（例えば、円）に沿ってレイアウトすることができる。ある具現化において、アイテム表現がクラスターにおいてオーバーラップする場合には、規定の入力コマンド（例えば、拡張コマンド）に応答してオーバーラップを排除するようにクラスター内のアイテム表現を一時的に拡散することができる。フォーメーションにおけるアイテムの数、ポインタの現在位置、等の異なるトリガー事象で異なるフォーメーションスタイル又はアレンジメントを定義することができる。異なるフォーメーションスタイルは、それに対応するトリガー事象がユーザインターフェイスにおいて検出されたときにアイテム表現をアレンジするのに使用される。
【００５０】
ある具現化において、アイテム表現（例えば、アイテム表現１１０’、１１４’及び１１８’）が（例えば、クラスター１２０により指示された）ポインタの現在位置の付近にクラスター１２４を形成した後に、クラスター１２４の定義された範囲内でアイテム表現を独立して移動することができる。例えば、各アイテム表現１１０’、１１４’及び１１８’は、それらのアイテム表現１１０’、１１４’及び１１８’が水に浮いていて水中の電流により揺動するかのように、クラスター１２４内のポインタの現在位置付近で移動するように示すことができる。
【００５１】
ある具現化において、カウントインジケータ１２６は、クラスター１２４の付近に提示されるか又はクラスター１２４に取り付けられる。カウントインジケータ１２６は、クラスター１２４に集合するアイテム表現の数を指示する数値を示す。図１Ｃに示すように、３つのアイテム表現（例えば、アイテム表現１１０’、１１４’及び１１８’）がポインタの現在位置付近に集合してクラスター１２４を形成し、そしてクラスター１２４に取り付けられたカウントインジケータ１２６は、数値”３”を示す。ある具現化では、カウントインジケータは、クラスターにおけるそれ自身のレイヤに定義され、そしてクラスター内のアイテム表示とは独立してアニメ化される。ソースコンテナは、クラスターのフォーメーションスタイルを与え、そしてそのフォーメーションスタイルは、アイテム表現をクラスター内にどのようにレイアウトするか指定することができる。
【００５２】
図１Ｃに示すように、ポインタの現在位置は、デスクトップの表示エリア１０２上にある。デスクトップそれ自体は、デスクトップの表示エリア１０２にアイテムの表現（例えば、デスクトップホルダーにおけるフォルダ及びファイルのためのアイコン）を表示するコンテナである。デスクトップは、大きなアイコンビュー又は小さなアイコンビューにアイテムを提示し、そしてデスクトップにおけるアイテムの表示は、フリーアレンジ構成であるか又はキープアレンジ構成である。
【００５３】
この例では、デスクトップは、大きなアイコンビューである。それ故、アイテム表示がフォルダウインドウ１０４からデスクトップ上のポインタの現在位置へ移動するときは、アイテム表現のアピアランスは、それがデスクトップにクラスター１２４を形成するとき変更されない。しかしながら、デスクトップが小さなアイコンビューである場合には、アイテム表示がデスクトップ上でクラスター化されるときに、アイテム表示を、そのオリジナルの大きなアイコンアピアランス（フォルダウインドウ１０４に示す）からその小さなアイコンアピアランスへ変化させることができる。
【００５４】
ある具現化において、ドラグされたアイテムが（例えば、ポインタ又はキーボード上のホールドボタンを解除するか、或いはタッチ感知ディスプレイから指を持ち上げることにより）解除される前に、アイテム表現は、ユーザインターフェイス１００においてクラスター（例えば、クラスター１２４）内のポインタの移動をたどることができる。
【００５５】
図１Ｄに示すように、ポインタの現在位置（例えば、カーソル１２０で示す）がユーザインターフェイス１００において（例えば、デスクトップの表示エリア１０２内で）経路（例えば、破線の曲線１２８ａで示す）に沿って移動されるときに、クラスター１２４内のアイテム表現は、表現の各経路（破線の曲線１２８ｂ−ｄで示す）に沿ったポインタの移動をたどる。
【００５６】
ある具現化において、クラスター１２４内のアイテム表現は、異なる速度及び異なる加速度で移動し、そしてカーソル１２０の後方に異なる距離引きずられる。ある実施形態において、ポインタがユーザインターフェイス１００において（例えば、矢印の方向にカーブした経路１２８ａの端で）停止したときに、クラスター１２４内の各アイテム表現は、ユーザインターフェイス１００におけるポインタの停止位置付近の位置にアイテム表現が到達するときに減速するように示すことができる。
【００５７】
図１Ｅ−１Ｆは、クラスターが潜在的ターゲットコンテナのドロップゾーン内にある間にクラスター内の選択されたアイテムの表現が潜在的ターゲットコンテナのアピアランススタイルに基づいてそれらのアピアランスを変化させることを示す規範的なユーザインターフェイス変化を例示する。
【００５８】
図１Ａ−１Ｄに示された例を続けると、ユーザが、選択されたアイテム表現１１０’、１１４’及び１１８’に対するドラグ動作を継続する場合には、アイテム表現１１０’、１１４’及び１１８’により形成されたクラスターは、フォルダウインドウ１０６へのポインタの移動をたどることができる（図１Ｅに示す）。クラスター１２４がフォルダウインドウ１０６に最初に入るときには、クラスター１２４内のアイテム表現のアピアランスは、クラスター１２４がデスクトップの表示エリア１０２にあるときのクラスター１２４内のアイテム表示のアピアランスと同じである。
【００５９】
ある具現化において、クラスター１２４が、停止又は低速化せずに、フォルダウインドウ１０６を横切って迅速にドラグされる場合には、クラスター１２４内のアイテム表現のアピアランスを変化させる必要がない。ある具現化において、オペレーティングシステムは、クラスター１２４がユーザインターフェイス１００上の位置から位置へとドラグされるときにポインタの動きパターンを監視することができる。コンテナオブジェクト（例えば、フォルダウインドウ、アプリケーションウインドウ又はデスクトップ）上でのポインタの動きパターンが、クラスター１２４内の選択されたアイテムのための潜在的なターゲットコンテナとしてコンテナオブジェクトをユーザが考えていることを表わす場合には、クラスター１２４内のアイテム表現に対するアピアランスを変化させることができる。コンテナオブジェクト上でのポインタの動きパターンが、ユーザインターフェイス上の別の位置への途中でユーザが単にコンテナオブジェクト上を通過していることを指示する場合には、クラスター１２４内のアイテム表現に対するアピアランスの変化が開始されない。
【００６０】
ある具現化において、クラスター１２４内の選択されたアイテムのための潜在的なターゲットコンテナとしてコンテナをユーザが考えていることを表わす動きパターンの特性は、ポインタがコンテナに入った後にポインタが低速化すること、又はコンテナ内でポインタがスレッシュホールド時間量を越えて休止すること（例えば、ホバリング）を含む。ある具現化において、ユーザがコンテナを越えてユーザインターフェイス１００の別の位置へポインタを単に移動していることを指示する動きパターンの特性は、低速化せずにコンテナ上をポインタが迅速に且つ滑らかに移動することを含む。
【００６１】
ある具現化において、図１Ｆに示すように、ポインタがフォルダウインドウ１０６内で低速化するか又は休止すると、クラスター１２４におけるアイテム表現のアピアランスは、デスクトップに関連した大きなアイコンビューから、フォルダウインドウ１０６に関連したリストビューへ変化することができる。例えば、選択されたアイテムの表現１１０’、１１４’及び１１８’は、アイテムの大きなアイコン表現であり、そして図１Ｆにおいて、クラスター１２４の大きなアイコン表現１１０’、１１４’及び１１８’は、各々、選択されたアイテム１１０、１１４及び１１８のリストビュー表現である表現１１０”、１１４”及び１１８”に置き換えられる。
【００６２】
図１Ｆに示したように、クラスター１２４における選択されたアイテムのリストビュー表現１１０”、１１４”及び１１８”の各々は、小さなアイコン及びテキストラベルを含む。ある具現化において、クラスター１２４におけるリストビュー表現は、クラスター１２４において、フォルダウインドウ１０６のキープアレンジ基準に従って（例えば、ファイル名、サイズ、ファイル形式、変更時間、等により）分類される。ある具現化において、クラスター１２４におけるリストビュー表現１１０”、１１４”及び１１８”の順序は、アピアランスの変化が生じる前後に同じままである。
【００６３】
ある具現化において、クラスターにおける大きなアイコンアピアランスからクラスターにおけるリストビューアピアランスへのアイテム表現の移行を描写するアニメーションが提示される。アイテム表現の異なるレイヤ（例えば、アイコン画像レイヤ及びテキストラベルレイヤ）に異なるアニメーションを適用することができる。例えば、アイテム表現の大きなアイコン画像がアイテム表現の小さなアイコン画像へと収縮することを描写するアニメーションがアイコン画像レイヤに適用される。同時に、アイテム表現のテキストラベルが大きなアイコン画像の底部から小さなアイコン画像の右側へ移動することを描写する別のアニメーションがテキストラベルレイヤに適用される。更に、アニメーション中に、テキストラベルそれ自体のアピアランスを変化させることもできる。例えば、テキストラベルの周りに境界を追加し、そしてテキストラベルのカラー及びフォントを変化させることもできる。
【００６４】
図１Ｇは、選択されたアイテムが潜在的なターゲットコンテナ（例えば、フォルダウインドウ１０６）へとドロップされるべき場合には、選択されたアイテムの表現がクラスター１２４から離れそして潜在的なターゲットコンテナ（例えば、フォルダウインドウ１０６）における各予想位置に向かって移動することをコンテナ構成のプレビューとして示す規範的なユーザインターフェイス変化を例示する。
【００６５】
ある具現化において、ユーザがコンテナ（例えば、フォルダウインドウ１０６）内部のポインタを長い期間（例えば、最小スレッシュホールドより長い期間）休止させるとき、又はユーザが規定のプレビューコマンドをエンターするとき、アイテムがコンテナ（例えば、フォルダウインドウ１０６）へと解除されるべき場合には、クラスター１２４内のアイテム表現（例えば、アイテム表現１１０”、１１４”及び１１８”）がクラスター１２４におけるそれらのオリジナル位置から離れて、それらの各予想各位置に向かって移動することを描写するアニメーションがユーザインターフェイス１００に示される。
【００６６】
ある具現化において、アイテム表現の予想位置は、コンテナ（例えば、フォルダウインドウ１０６）に関連したキープアレンジ基準（例えば、ファイル名、ファイルサイズ、ファイル形式、変更時間、等による分類）、並びにクラスター内の選択されたアイテム及びコンテナ内の既存のアイテムの関連属性値（例えば、ファイル名、ファイルサイズ、ファイル形式、変更時間、等）に従って決定される。例えば、選択されたアイテム表現１１０、１１４及び１１８、並びに既存のアイテム１２２ａ及び１２２ｂは、それらの各ファイル名により分類されたときに、次の順序を有する：（１）アイテム１２２ａ、（２）アイテム１１８、（３）アイテム１１４、（４）アイテム１１０、及び（５）アイテム１２２ｂ。この順序に基づき、フォルダウインドウ１０６におけるアイテム表現１１０’、１１４’及び１１８’の予想位置が決定される。
【００６７】
図１Ｇに示すように、選択されたアイテムがフォルダウインドウ１０６へドロップされるべき場合には、アイテム表現１１０”、１１４”及び１１８”がクラスター１２４から離れ、そしてフォルダウインドウ１０６においてアイテム表現が有する各予想位置へ移動する。ある具現化において、既存のアイテムの表現（例えば、アイテム表現１２２ａ及び１２２ｂ）をフォルダウインドウ１０６において移動して、選択されたアイテムの表現のための余地をクラスター１２４に作ることができる。
【００６８】
ある具現化において、クラスター１２４からのアイテム表現（例えば、アイテム表現１１０”、１１４”及び１１８”）は、潜在的なターゲットコンテナ（例えば、フォルダウインドウ１０６）におけるそれらの予想位置に表示される。又、ある具現化では、アイテム表現（例えば、アイテム表現１１０”、１１４”及び１１８”）は、潜在的なターゲットコンテナ（例えば、フォルダウインドウ１０６）におけるそれらの予想位置の付近に表示される。
【００６９】
ある具現化において、選択されたアイテムの表現が潜在的なターゲットコンテナにおけるそれらの予想位置又はその付近に提示されるときには、表現がユーザインターフェイスにおいて半透明のオーバーレイとして表示される。又、ある具現化では、アイテム表現がプレビュー間にそれらの予想位置又はその付近に提示されたときに他の視覚指示がアイテム表現に与えられる。
【００７０】
ある具現化において、クラスター１２４内のアイテム表現（例えば、アイテム表現１１０”、１１４”及び１１８”）がクラスターから離れて、潜在的なターゲットコンテナ（例えば、フォルダウインドウ１０６）における表現の各予想位置へ移動された後に、ユーザが、選択されたアイテムを潜在的なターゲットコンテナへドロップすることを選択した場合に、選択されたアイテムの各表現（例えば、表現１１０”、１１４”及び１１８”）は、移動し（それらが各予想位置にまだ表示されていない場合）、各予想位置に落ち着き、そして第１状態（例えば、半透明状態）から第２状態（例えば、不透明状態）へ変化するように示される。ある具現化において、アイテム表現が潜在的なターゲットコンテナへドロップされるときには、プレビュー中にアイテム表現の遷移状態を指示する他のアピアランス特性を除去することができる。
【００７１】
図１Ｈは、選択されたアイテムが潜在的なターゲットコンテナ（例えば、フォルダウインドウ１０６）へとドロップされるときにその選択されたアイテムの表現がそれらの各予想位置へと落ち着くことを示す規範的なユーザインターフェイス変化を例示する。
【００７２】
ある具現化において、図１Ｈに示すように、ドロップ動作の完了時に、各リストビューアピアランスでの選択されたアイテムの表現は、図１Ｇにおいてプレビュー中に示された各予想位置でフォルダウインドウ１０６へ挿入される。ドロップの完了時に、フォルダウインドウ１０４における選択されたアイテムの表現は、図１Ｈにも示すように、ユーザインターフェイス１００から除去することができる。前記例では、選択されたアイテムに対してドラグ及びドロップ動作が遂行され、そしてドラグ及びドロップは、ファイルシステムにおいて選択されたアイテムの移動を生じさせる。ある具現化においては、選択されたアイテムのコピーに対してもドラグ及びドロップ動作が遂行され、選択されたアイテムの表現がフォルダウインドウ１０４に残され、そしてドラグ及びドロップの後に、それらの正規の大きなアイコンビューへ返送される（例えば、図１Ａに示す陰影なしに）。
【００７３】
ある具現化において、ユーザは、提示されるべき予想位置におけるアイテムのプレビューを待機せずに、選択されたアイテムを潜在的なターゲットコンテナへドロップすることができる。例えば、ユーザは、ポインタが潜在的なターゲットコンテナのドロップゾーンへ移動された直後にアイテムを解除することができる。例えば、ユーザインターフェイス１００が図１Ｅに示す状態にあるときにドロップ動作を開始することができる。或いは又、ユーザは、アイテムがそれらのアピアランスを大きなアイコンビューからリストビューへ変化させた後にアイテムを解除してもよい。例えば、ドロップ動作は、ユーザインターフェイス１００が図１Ｆに示す状態にあるときに開始される。アイテムが解除されたときに、アイテムの表現は、図１Ｈに示すように、それらの各現在位置から、アイテムの各経路に沿ったそれらの予想位置に向かって移動し、そして最終的に、アイテムの予想位置に落ち着くように示すことができる。
【００７４】
図１Ｉは、ポインタの移動に続いてアイテム表現のクラスターが潜在的なターゲットコンテナから離れる（例えば、図１Ｆ及び１Ｇに示す状態に続いて、ユーザが、選択されたアイテムを潜在的なターゲットコンテナへドロップしないと判断した）ことを示す規範的なユーザインターフェイス変化を例示する。
【００７５】
ある具現化において、ユーザが、アイテム表現（例えば、アイテム表現１１０”、１１４”及び１１８”）を潜在的なターゲット容器（例えば、フォルダウインドウ１０６）へ解除しないと判断し、そしてポインタを、ユーザインターフェイス１００における異なる位置（例えば、フォルダウインドウ１０６の外部の）へ移動する場合には、アイテム表現は、フォルダウインドウ１０６におけるそれらの各予想位置から退いて、ポインタの現在位置に向かって移動し、ポインタの現在位置の付近でカーソル１２４に再結合するように示すことができる。
【００７６】
図１Ｉに示したように、ポインタが潜在的なターゲットコンテナ（例えば、フォルダウインドウ１０６）の外部へ移動されるときに、クラスター１２４は、ポインタのカーソル１２０をたどる。更に、クラスター１２４がデスクトップの表示エリア１０２にあるときには、クラスター１２４におけるアイテム表現が、それらの各リストビューアピアランスからそれらの各大きなアイコンビューアピアランスへと変化することができる。
【００７７】
図１Ｊ−１Ｋは、アイテム表現のクラスターが、アプリケーション定義型アピアランススタイルに関連した第２の潜在的なターゲットコンテナ（例えば、アプリケーションウインドウ１０８）へドラグされ、そしてアイテム表現のクラスターが第２の潜在的なターゲットコンテナのアプリケーション定義型アピアランススタイルに基づいてそれらのアピアランスを変化させることを示す規範的なユーザインターフェイス変化を例示する。
【００７８】
図１Ａ−１Ｉに示す例を続けると、ユーザが選択されたアイテムをフォルダウインドウ１０６へ解除せず、そして選択されたアイテムのクラスターをアプリケーションウインドウ１０８へドラグすると仮定する。アプリケーションウインドウ１０８は、既存の又は新たなドキュメント１３０を提示し、そしてドキュメント１３０は、編集の準備ができる。アプリケーションウインドウ１０８は、それに対応するソフトウェアアプリケーションにより与えられる。ある具現化において、ソフトウェアアプリケーションは、そのソフトウェアアプリケーションにより与えられたアプリケーションウインドウにドキュメントが示されるときにそのドキュメントにコンテンツアイテム（例えば、画像ファイル、ビデオクリップ、データオブジェクト、等）をどのように提示できるか定義することができる。ある具現化において、ソフトウェアアプリケーションは、アプリケーションプログラミングインターフェイス（ＡＰＩ）を通してオペレーティングシステムと通信して、オペレーティングシステムのための必要情報（例えば、アプリケーション定義型アピアランススタイルにおけるコンテンツアイテムの位置、サイズ、解像度、及びフォーマット）を与え、アイテム表現がアプリケーションウインドウ１０８にドラグイン及びそこからドラグアウトされるときにアイテム表現に対するアピアランスの変化を具現化することができる。
【００７９】
ある具現化において、アプリケーションは、アイテム表現のアピアランススタイルにおいて複数のレイヤを指定することができる。各レイヤは、アイテム表現におけるコンポーネント（例えば、アイコン画像、テキストラベル及びバックグランド画像）に対応する。各レイヤは、それ自身のプロパティ、例えば、アピアランススタイル間を移行するときにコンポーネントのサイズ、カラー、位置及びコンポーネントのアニメーションスタイルを指定するプロパティに関連付けられる。又、各レイヤは、レイヤ名又はキー名にも関連付けられる。例えば、アイテム表現のテキストラベルを示すレイヤは、キー名“Ｌａｂｅｌ（ラベル）”が与えられ、一方、アイテム表現のアイコン画像を示すレイヤは、キー名“Ｉｃｏｎ（アイコン）”が与えられる。レイヤのキー名は、特定のアピアランス及び／又はアニメーションを適用できるアイテム表現の集合（例えば、クラスター）においてレイヤを識別するためにオペレーティングシステムにより使用される。例えば、オペレーティングシステムは、クラスター内のアイテム表現の全ての“Ｌａｂｅｌ”レイヤを識別し、そしてクラスターにおいてアイテム表現に到達したときにアイテム表現におけるテキストラベルの全部又は幾つか（例えば、１つを除く全部）をフェードアウトさせることができる。
【００８０】
図１Ｊに示す例では、アプリケーションウインドウ１０８を与えるソフトウェアアプリケーションは、ｅ−メールエディタであり、そしてアプリケーションウインドウ１０８に提示されるドキュメントは、編集されるｅ−メールメッセージ（例えば、“Ｍｅｓｓａｇｅ  １”）である。ドキュメントは、現在、あるテキストを含むが、ドキュメントには他のコンテンツアイテムが埋め込まれていない。ソフトウェアアプリケーションは、ドキュメント１３０の挿入点へのコンテンツアイテムのドラグ及びドロップをサポートする。
【００８１】
ユーザが、選択されたアイテムの表現（例えば、表現１１０’、１１４’及び１１８’）を含むクラスター１２４をアプリケーションウインドウ１０８へドラグするとき、最初に、その表現は、図１Ｊに示すように、大きなアイコンアピアランスを維持することができる。オペレーティングシステムは、ユーザのポインタの動き特性を監視し、そしてクラスター１２４が単にアプリケーションウインドウ１０８上にドラグされて通過するかどうか、又はユーザがアプリケーションウインドウ１０８をクラスター１２４内の選択されたアイテムに対する潜在的なターゲットコンテナと考えるかどうか決定する。
【００８２】
例えば、オペレーティングシステムは、クラスター１２４がアプリケーションウインドウ１０８へドラグされる速度、及びポインタがアプリケーションウインドウ１０８内で現在停止したかどうかを監視する。ポインタが著しく低速化したか、又はアプリケーションウインドウ１０８内で停止した場合には、オペレーティングシステムは、アプリケーションウインドウ１０８に関連したアピアランススタイルに基づいてクラスター１２４におけるアイテム表現のアピアランスを変化させることを決定する。著しい低速化も又は停止もなくポインタがアプリケーションウインドウ１０８を経て移動するとオペレーティングシステムが決定する場合には、オペレーティングシステムは、クラスターにおけるアイテム表現のアピアランスを、動きパターンの著しい変化が検出されるまで、保持することができる。
【００８３】
この例では、ユーザは、アプリケーションウインドウ１０８においてポインタを停止させる。アプリケーションウインドウ１０８内でのポインタの停止をオペレーティングシステムが検出すると、クラスターにおけるアイテム表現のアピアランスを、それらの大きなアイコンアピアランス（例えば、表現１１０’、１１４’及び１１８’）から、それらのピクチャービューアピアランス（例えば、表現１１０’’’、１１４’’’及び１１８’’’）へ変化させることができる。選択されたアイテムのピクチャービューアピアランスは、ドキュメント１３０へ挿入される場合にアイテムがどのように現れるかに基づいてアプリケーションプログラムにより定義することができる。例えば、選択されたアイテムが画像ファイルである場合には、画像ファイルがアプリケーションウインドウ１０８に示されたｅ−メールメッセージへ挿入されるとき、ページ巾の半分の均一な横方向サイズを有するように画像がリサイズされる。アプリケーションウインドウ１０８のアピアランススタイルは、１つ以上のＡＰＩコールを通してオペレーティングシステムに与えることができ、そしてオペレーティングシステムは、アプリケーションウインドウ１０８のアピアランススタイルに基づき選択されたアイテムのピクチャービュー表現を発生することができる。選択されたアイテムのピクチャービュー表現（例えば、１１０’’’、１１４’’’及び１１８’’’）が発生された後、そのピクチャービュー表現をクラスター１２４に提示して、図１Ｋに示すように、選択されたアイテムの大きなアイコン表現に置き換えることができる。
【００８４】
ある具現化において、画像ファイルのピクチャービュー表現は、解像度又はカラー情報の少ない減少画像である。ある具現化において、ピクチャービュー表現は、半透明である。ソフトウェアアプリケーションは、コンテンツアイテムの種々のビューに関連した他のアピアランススタイルを定義し、そしてアイテム表現は、アプリケーションウインドウに対してソフトウェアアプリケーションにより与えられるアピアランススタイルの定義に基づいてオペレーティングシステムにより発生される。
【００８５】
図１Ｌは、選択されたアイテムが第２の潜在的なターゲットコンテナへドロップされるべき場合にその選択されたアイテムの表現（例えば、アイテム表現１１０’’’、１１４’’’及び１１８’’’）がクラスター１２４から離れそして第２の潜在的なターゲットコンテナ（例えば、アプリケーションウインドウ１０８）における各予想位置に向かって移動することをコンテナ構成のプレビューとして示す規範的なユーザインターフェイス変化を例示する。
【００８６】
図１Ｌに示すように、クラスター１２４における各アイテム表現は、各経路に沿って潜在的なターゲットコンテナにおける各予想位置に向かって移動することができる。アイテム表現の予想位置は、ドキュメントのコンテンツと、アプリケーションウインドウ１０８を与えるアプリケーションプログラムの仕様とに基づいて、決定することができる。例えば、アプリケーションウインドウ１０８を与えるアプリケーションプログラムは、選択されたアイテムをドキュメント１３０に挿入する順序及びレイアウトを指定すると共に、ＡＰＩを通してオペレーティングシステムに仕様を与える。オペレーティングシステムは、アプリケーションウインドウ１０８のドキュメント１３０における各予想位置へのアイテム表現の移動を描写するユーザインターフェイスの変化を具現化することができる。
【００８７】
あるシナリオでは、アプリケーションウインドウは、限定サイズのものであり、そしてドキュメント１３０は、アプリケーションウインドウ１０８のビューポート内に完全に露呈させることができない。ユーザは、アプリケーションウインドウ１０８のサイズを増加するか、又はスクロールコントロールを使用して、ドキュメント１３０の隠れた部分を、アプリケーションウインドウ１０８のビューポートへ移動することができる。クラスター１２４におけるアイテム表現に対して予想位置が決定されたときには、幾つかのアイテム表現の予想位置は、アプリケーションウインドウ１０８において現在見えないドキュメント１３０のエリアにある。そのようなシナリオにおいて、それらアイテムの表現は、クラスター１２４から離れて、各経路に沿った注目位置に向けて移動するように示すことができる。又、アイテム表現は、アプリケーションウインドウ１０８の現在見えない予想位置に通じる軌道に沿ってアプリケーションウインドウ１０８の見えるエリアを出るように示すことができる。
【００８８】
例えば、図１Ｌに示すように、アイテム表現１１８’’’の予想位置は、アプリケーションウインドウ１０８の見えるエリア内に一部分ある。予想位置におけるアイテム表現のプレビュー中に、アイテム表現１１８’’’がドキュメントの見えないエリアへ一部分移動することを示すアニメーションが提示される。同様に、アイテム表現１１０’’’の予想位置は、アプリケーションウインドウ１０８の見えるエリアの完全に外部であり、そしてプレビュー中に、アニメーションは、アイテム表現１１０’’’が経路１３２に沿ってアプリケーションウインドウ１０８の見えないエリアへ移動することを示す。アニメーションで示すことにより、ユーザは、アイテム表現１１０’’’が単に消失したのではなく画像表現１１８’’’の下のドキュメント１３０内の挿入点に位置することを精神的に注目できる。
【００８９】
ユーザが、アプリケーションウインドウ１０８内の予想位置でアイテム表現のプレビューを見た後に、選択されたアイテムをドロップすると決定する場合には、ユーザは、アイテムを解除することができる（例えば、マウス又はキーボード上のホールドボタンを解除するか、又はタッチ感知ディスプレイから指又はスタイラスを持ち上げることにより）。図１Ｍは、アイテムが第２の潜在的なターゲットコンテナ（例えば、アプリケーションウインドウ１０８）へドロップされたときに、選択されたアイテムの表現がそれらの各予想位置へ落ち着くことを示す規範的なユーザインターフェイス変化を例示する。
【００９０】
図１Ｍに示すように、アイテム表現１１４’’’及び１１８’’’は、半透明状態から不透明状態へ変化する。アイテム表現１１０’’’は、アプリケーションウインドウ１０８の露呈された表示エリアでは現在見えないが、ユーザがアプリケーションウインドウ１０８において更にスクロールダウンする場合には、アイテム表現１１０’’’が露呈される。ドロップ動作が完了した後に、アイテム表現１１０、１１４及び１１８をそれらのオリジナルコンテナ（例えば、フォルダウインドウ１０４）から除去することができる。
【００９１】
図１Ａ−１Ｍは、アイテムがキープアレンジ状態にあるコンテナオブジェクト上にドラグされるか又はそこにドロップされる場合のユーザインターフェイス変化を例示している。図１Ｎ−１Ｐは、アイテムを選択して第１コンテナオブジェクトから、フリーアレンジ状態にある第２コンテナオブジェクトへドラグすることを示す規範的ユーザインターフェイス変化を例示している。
【００９２】
図１Ｍに示す状態に続く前記例を続けると、ユーザは、アプリケーションウインドウ１０８へドロップされた３つのアイテムのうちの２つ（例えば、アイテム表現１１４’’’及び１１８’’’）を選択し、そしてその選択されたアイテムをアプリケーションウインドウ１０８からドラグし始めると仮定する（図１Ｎに示すように）。
【００９３】
ポインタによるドラグ動作の開始がオペレーティングシステムにより検出されるとき、オペレーティングシステムは、選択されたアイテム表現（例えば、アイテム表現１１４’’’及び１１８’’’）がアプリケーションウインドウ１０８におけるそれらのオリジナル位置から、カーソル１２０により指示されるポインタの現在位置に向かって移動することを示すアニメーションを提示することができる。ある具現化において、アイテム表現の移動は、ポインタがアプリケーションウインドウ１０８から出て来ないときは低速且つ均一であり、そしてポインタがアプリケーションウインドウ１０８を出るや否やポインタの現在位置に向かって加速する。
【００９４】
図１Ｏは、選択されたアイテム表現（又は選択されたアイテム表現のコピー）がアプリケーションウインドウ１０８から出て来て、（カーソル１２０の位置で示された）ポインタの現在位置の付近にクラスター１３４を形成することを例示する。加えて、クラスター１３４におけるアイテム表現のアピアランスは、ピクチャービュー表現１１４’’’及び１１８’’’からアイテムの大きなアイコン表現１１４’及び１１８’へと変化する。カウントインジケータ１３６（例えば、バッジ）がクラスター１３４の付近に表示され、クラスター１３４に含まれるアイテム表現の数を示す。２つのアイテムしか選択されないので、カウンタインジケータに示される数は“２”である。
【００９５】
図１Ｐは、ユーザがクラスター１３４をフォルダウインドウ１０４へドラグして戻したことを示す。フォルダウインドウ１０４は、フリーアレンジ状態において大きなアイコンビューに関連している。デスクトップも大きなアイコンビューに関連し、そしてクラスター１３４におけるアイテム表現は、クラスターがデスクトップエリア１０２へドラグされたときにそれらの各大きなアイコンアピアランスへ既に更新されているので、クラスター１３４におけるアイテム表現のアピアランスは、クラスター１３４がデスクトップエリア１０２からフォルダウインドウ１０４へドラグされたときに更新される必要がない。
【００９６】
図１Ｑ−１Ｒは、アイテム表現のプレビューがフリーアレンジコンテナ内のそれらの予想位置に表示されそしてプレビュー中にフリーアレンジコンテナにおいてポインタにより移動されることを示す規範的なユーザインターフェイス変化を例示する。
【００９７】
ユーザがフリーアレンジコンテナ内のそれらの予想位置においてアイテム表現のプレビューを見るためのコマンドをエンターしたときに、アイテム表現１１４’及び１１８’がクラスター１３４から離れそしてフォルダウインドウ１０４内のそれらの予想位置に向かって移動することを描写するアニメーションが提示される。フォルダウインドウ１０４は、フリーアレンジ状態にあるので、アイテム表現１１４’及び１１８’は、それらの間にある程度の固定間隔がある状態でそれらの現在位置に単にドロップされる。図１Ｑに示すように、アイテム表現は、それらの現在位置においてフォルダウインドウ１０４へドロップされる場合には、フォルダウインドウ１０４において既存のアイテムとオーバーラップする。
【００９８】
図１Ｒは、ユーザが選択されたアイテムをフォルダウインドウ１０４へ解除する前に、ユーザがアイテム表現をプレビュー状態において拡張構成で移動することによりアイテム表現１１４’及び１１８’の現在位置を調整できることを例示する。例えば、図１Ｒに示すように、アイテム表現は、適当な位置が見つかるまで、それらが拡張状態にある間に、全体的に移動することができる（例えば、アイテム表現１１４’及び１１８’がフォルダウインドウ１０４において既存のアイテム表現１１２及び１１６ともはやオーバーラップしないとき）。
【００９９】
ユーザがフォルダウインドウ１０４において選択されたアイテムを解除した後に、そのアイテムは、プレビューに以前に示されたそれらの各位置に落ち着くように示すことができる。図１Ｓに示したように、アイテム表現１１４’及び１１８’は、半透明状態から不透明状態へ変化して、プレビューに示されたそれらの最終位置に落ち着き、そしてアイテムは、ここで、図１Ｓにおいてアイテム表現１１４及び１１８により表わされる。アイテムは、アプリケーションウインドウ１０８から除去されると示すことができ、そしてアイテム表現１１０’’’は、スクリーンを上昇して、アプリケーションウインドウ１０８に表示される。
【０１００】
ある具現化において、図１Ａ−１Ｓに示されたように、アイテム表現のクラスターは、ポインタの現在位置の付近に表示されるが、ポインタの現在位置とはオーバーラップしない。ユーザインターフェイスにおいてポインタが移動されるとき、及びユーザインターフェイスのエリア上にポインタがホバリングするときには、ポインティング装置の現在位置とアイテム表現との間にギャップ又は距離が保持される。アイテム表現とポインタとの間に距離又はギャップを保持することにより、ポインタの現在位置の真下及び／又はそのすぐ周囲のエリアから離れてアイテム表現を保持することができ、従って、ユーザは、アイテムをその位置へ移動又はドロップする判断をする前にエリアを良く見ることができる。
【０１０１】
前記例は、例示に過ぎない。特定の事象シーケンスが示されたが、当業者であれば、アイテムの選択、コンテナウインドウのビュー構成、及び位置から位置へのポインタの移動には、多数の変化があることが容易に明らかであろう。
【０１０２】
ある具現化において、前記例に示すように、各ソースコンテナオブジェクト（例えば、図１Ａのフォルダウインドウ１０４、及び図１Ｍのアプリケーションウインドウ１０８）は、ソースコンテナの内部に表示されるアイテム表現に対して１つ以上のアピアランススタイルを定義することができる。異なるトリガー事象の発生時に異なるアピアランススタイルをトリガーしてアイテム表現に適用することができる。規範的なトリガー事象は、コンテナオブジェクト内の定義された位置上でのアイテム表現のホバリング、定義された移動パターンに基づく又は定義された方向におけるアイテム表現の移動、コンテナオブジェクトに関連した現在アピアランススタイルを変化させるユーザ入力、等である。
【０１０３】
ある具現化において、各ソースコンテナは、アイテム表現がソースコンテナオブジェクトから不適切なドロップターゲットコンテナのエリアへ移動されるときにアイテム表現に対して１つ以上のアピアランススタイルを定義することもできる。ソースコンテナは、異なる不適切なドロップターゲットコンテナ上にアイテム表現があるときにアイテム表現に対して異なるアピアランススタイルを定義することができる。
【０１０４】
ある具現化において、各潜在的なドロップターゲットコンテナは、アイテム表現がその潜在的なドロップターゲットコンテナのドロップゾーンへ移動されるときに１つ以上のアピアランススタイルを定義することもできる。又、各アピアランススタイルは、異なるトリガー事象も有し、そして特定のアピアランススタイルのトリガー事象が検出されると、そのトリガー事象に関連したアピアランススタイルを、潜在的なドロップターゲットコンテナのドロップゾーンに入ったアイテム表現に適用することができる。前記例では、図１Ｆに示すクラスター１２４におけるアイテム表現のリストビューアピアランス及び図１Ｏに示すクラスター１３４におけるアイテム表現の大きなアイコンアピアランスは、アイテム表現に適用されるアピアランススタイルの例である。
【０１０５】
ある具現化において、各アピアランススタイルは、アイテム表現のための１つ以上のレイヤを指定することができる。各レイヤは、アイテム表現のコンポーネント（例えば、アイコン画像、テキストラベル、等）に対応する。各レイヤは、そのレイヤの位置、サイズ、カラー及び他のアピアランスプロパティをコントロールする１つ以上の関連プロパティを有する。又、各レイヤは、アイテム表現が１つのアピアランスから別のアピアランスへ変化するときにコンポーネントのアニメーションスタイルをコントロールするプロパティにも関連している。アイテム表現の異なるレイヤに関連したプロパティは、互いに異なるものである。
【０１０６】
ある具現化において、異なるコンテナオブジェクトにより与えられるアピアランススタイルは、異なる数のレイヤを有する。又、各レイヤは、アイテム表現が異なるアピアランススタイルに基づいてそのアピアランスを変化させるときにレイヤをどのようにアイテム表現に導入し又はそこから除去するか指定するプロパティに関連付けられる。例えば、テキストラベルレイヤは、テキストラベルをどのようにアイテム表現に追加するかのアニメーションスタイル（例えば、ポップアップ、フェードイン、左からのスライドイン、等）を指定する関連プロパティを有する。別の例として、テキストラベルレイヤは、テキストラベルをどのようにアイテム表現から除去するかのアニメーションスタイル（例えば、フェードアウト、シマーアウト、右へのスライドアウト、等）を指定する別の関連プロパティを有する。
【０１０７】
又、各ソースコンテナオブジェクトは、コンテナオブジェクトに、及び／又は不適切なドロップターゲット上のポインタの付近に現在提示されるアイテム表現に対する１つ以上のフォーメーションスタイルも定義することができる。フォーメーションとは、例えば、コンテナにおけるアイテム表現の自由アレンジレイアウト、ポインタの現在位置の付近に表示されるアイテム表現のクラスター構成、リストにおけるキープアレンジレイアウト、１つ以上の列におけるキープアレンジレイアウト、等である。同様に、各潜在的ドロップターゲットコンテナは、アイテム表現が潜在的ドロップターゲットコンテナのドロップゾーンに入ったときにアイテム表現に対する１つ以上のフォーメーションスタイルも定義することができる。例えば、潜在的ドロップターゲットコンテナにおける各予想位置の付近にアイテム表現を示すプレビューフォーメーションは、潜在的ドロップターゲットコンテナにより指定されるフォーメーションスタイルに基づいて具現化される。
【０１０８】
ここに述べるように、各コンテナオブジェクトに関連したアピアランススタイル及びフォーメーションスタイルは、コンテナオブジェクトによりＡＰＩに基づいて指定される。アイテム表現の異なるアピアランス及びアイテム表現の集合体の異なるフォーメーションは、当該ソースコンテナオブジェクト及び／又は潜在的ドロップターゲットコンテナの異なるアピアランススタイル及びフォーメーションスタイルに基づきオペレーティングシステムにより発生される。オペレーティングシステムは、異なるアピアランススタイル及びフォーメーションスタイルに関連したトリガー事象のどれが現在存在するか又はオペレーティングシステムにより検出されるかに基づいて、どのアピアランススタイル及び／又はフォーメーションスタイルをアイテム表現に適用するか決定することができる。あるアピアランスから別のアピアランス及びあるフォーメーションから別のフォーメーションへの移行を示すアニメーションは、アピアランススタイル及びフォーメーションスタイルに関連したプロパティに基づいてオペレーティングシステムにより提示される。
【０１０９】
ユーザインターフェイスにおいてアイテムをドラグ及びドロップする規範的プロセス
図２Ａは、選択されたアイテムの表現が、その選択されたアイテムに対する動作（例えば、ドラグ動作）の開始に応答して、ポインタの現在位置の付近にクラスターを形成するようにさせる規範的プロセス２００のフローチャートである。
【０１１０】
規範的プロセス２００において、入力を受け取る（２０２）。この入力は、ポインタを移動することでユーザインターフェイスにおいて１つ以上の選択されたアイテムに対して動作（例えば、ドラグ動作）を開始させるものである。この入力に応答して、オペレーティングシステムは、アニメーションを提示させる。アニメーションにおいて、１つ以上の選択されたアイテムの各表現が、ユーザインターフェイスにおけるアイテムの各オリジナル位置からユーザインターフェイスにおけるポインタの現在位置に向かって移動されて、ポインタの現在位置の付近にクラスターを形成する（２０４）。
【０１１１】
ある具現化において、クラスターは、スタックにアレンジされた１つ以上の選択されたアイテムの表現を含む。ある具現化において、クラスターは、定義された入力コマンドに応答してその選択されたアイテムの個々の表現を示すように拡張できる。ある具現化において、ユーザインターフェイスにおけるアイテム表現の動きは、非同期である。
【０１１２】
ある具現化において、規範的プロセス２００では、オペレーティングシステムは、クラスターにおけるアイテム表現のカウントを示すカウントインジケータをクラスターの付近に提示させる。
【０１１３】
ある具現化において、ユーザインターフェイスのポインタは、タッチ感知ディスプレイにおける指又はスタイラスである。ある具現化において、ユーザインターフェイスのポインタは、マウスのカーソル、トラックボール、タッチ感知面上の指又はスタイラスである。ある具現化において、アイテム表現の各位置は、クラスターの定義された範囲内で独立して可変である。
【０１１４】
図２Ｂは、選択されたアイテムの表現がクラスター内のポインタの連続移動をたどるようにさせる規範的プロセス２１０のフローチャートである。この規範的プロセス２１０において、ユーザインターフェイス内で１つ以上の選択されたアイテムをドラグするポインタの連続移動が検出される（２１２）。その連続移動に応答して、オペレーティングシステムは、ポインタの連続移動をたどるようにアイテム表現のクラスターをアニメ化する（２１４）。
【０１１５】
ある具現化において、クラスターにおける各アイテム表現は、ポインタの連続移動をたどる間に、クラスターにおける他のアイテム表現の各経路とは独立した経路に沿って移動する。ある具現化において、クラスターにおける各アイテム表現は、ポインタの連続移動をたどる間にクラスターにおける他のアイテム表現の各経路とは異なる速度で移動する。
【０１１６】
図３は、アイテム表現のクラスターが、異なるアピアランススタイルに関連したコンテナへ移動されるときにアイテム表現のアピアランスを変化させる規範的プロセス３００のフローチャートである。
【０１１７】
ある具現化において、１つ以上のアイテムがユーザインターフェイスにおける第１コンテナから選択され、そして各アイテム表現は、第１コンテナに関連した各第１アピアランスを有する。プロセス３００では、ユーザインターフェイスにおける第２コンテナのドロップゾーン内でポインタの現在位置が検出される（３０２）。ポインタの現在位置が第２コンテナのドロップゾーン内に留まる間に、オペレーティングシステムは、選択されたアイテムの表現に各第２アピアランスを採用させ、各第２アピアランスは、アイテムが第２コンテナにドロップされるべき場合にはアイテム表現の各予想アピアランスに似たものである（３０４）。
【０１１８】
ある具現化において、第１コンテナ及び第２コンテナの各々は、デスクトップ又はデスクトップ上のウインドウの一方であり、第１コンテナ及び第２コンテナの各々は、大きなアイコンビュー、小さなアイコンビュー、リストビュー、列ビュー、又はピクチャービューに各々関連し、そして各ビューは、フリーアレンジ状態又はキープアレンジ状態のいずれかである。
【０１１９】
ある具現化において、第１コンテナ及び第２コンテナの少なくとも一方は、アプリケーションウインドウであり、そのアプリケーションウインドウは、選択されたアイテムをアプリケーション定義ビューにおいて提示するように動作する。ある具現化では、選択されたアイテムのアプリケーション定義ビューは、ユーザインターフェイスに関連したアプリケーションプログラミングインターフェイス（ＡＰＩ）を通して定義される。
【０１２０】
図４Ａは、潜在的なターゲットコンテナ内の各予想位置においてアイテム表現のプレビューを示す規範的プロセス４００のフローチャートである。
【０１２１】
規範的プロセス４００において、第２コンテナにドロップされるアイテム表現のプレビューを要求する入力が検出される（４０２）。入力を検出するのに応答して、オペレーティングシステムは、選択されたアイテムの表現がクラスターから離れて第２コンテナにおける各予想位置に向けて移動することをアニメ化し、各予想位置は、アイテムが第２コンテナにドロップされる場合に表現が有する位置である（４０４）。ある具現化において、プレビューを要求する入力は、第２コンテナのドロップゾーン上でのポインタの延長ホバリングである。
【０１２２】
ある具現化において、選択されたアイテムの表現は、アイテムの各予想位置又はその付近に各半透明オーバーレイとして表示される。
【０１２３】
ある具現化において、少なくとも１つの選択されたアイテムの予想位置は、ユーザインターフェイスにおいて現在見えない第２コンテナのエリアにあり、そして少なくとも１つのアイテムの表現は、クラスターから離れて、ユーザインターフェイスにおいて各経路に沿って第２コンテナの見えないエリアへ移動する。
【０１２４】
図４Ｂは、選択されたアイテムを潜在的ターゲットコンテナにドロップするための規範的プロセス４１０のフローチャートである。
【０１２５】
規範的プロセス４１０において、１つ以上の選択されたアイテムを第２コンテナのドロップゾーンへ解除する入力が検出される（４１２）。その解除入力に応答して、オペレーティングシステムは、１つ以上の選択されたアイテムを第２コンテナにおける選択されたアイテムの各予想位置に挿入させる（４１４）。
【０１２６】
ある具現化において、第２コンテナの目に見えるエリア内に各予想位置を有するアイテム表現の場合に、そのアイテム表現は、アイテムの各予想位置へのアイテム挿入の完了時に半透明状態から不透明状態へ変化する。
【０１２７】
図５は、選択されたアイテムを潜在的なターゲットコンテナにドロップせずにプレビュー後に潜在的なターゲットコンテナから離れるように移動する規範的プロセス５００のフローチャートである。
【０１２８】
規範的プロセス５００において、第２コンテナを出るポインタの移動が検出される（５０２）。第２コンテナを出る移動に応答して、オペレーティングシステムは、１つ以上の選択されたアイテムの各表現が、第２コンテナにおけるアイテムの各予想位置からポインタの現在位置に向かって移動し、そしてポインタの現在位置付近でクラスターに再結合することをアニメ化する（５０４）。
【０１２９】
図６は、アイテム表現のプレビューを潜在的なターゲットコンテナにおけるそれらの予想位置に提示すべきかどうか決定する規範的プロセス６００のフローチャートである。
【０１３０】
規範的プロセス６００において、オペレーティングシステムは、ユーザインターフェイスにおいて１つ以上の選択されたアイテムの表現をドラグするためにポインタの動き特性を監視する（６０２）。オペレーティングシステムは、第２コンテナのドロップゾーン上のポインタの動き特性が定義された基準を満足すると決定した際に、選択されたアイテムの表現に各第２アピアランスを採用させる（６０４）。ある具現化において、ポインタの動き特性は、ポインタの速度及び加速度の１つ以上であり、そして定義された基準は、アイテム表現にそれらの各第２アピアランスを採用させる速度又は加速度の特性値を指定する。ある具現化では、速度又は加速度の特性値は、ユーザ特有の値である。
【０１３１】
図７は、あるコンテナから別のコンテナへアイテムがドラグされるときにアイテム表現のアピアランスを変化させる規範的プロセス７００のフローチャートである。
【０１３２】
規範的プロセス７００において、１つ以上の選択されたアイテムの各表現を第１コンテナから第２コンテナのドロップゾーンへドラグする入力が受け取られ、各アイテムの各表現は、第１コンテナに関連した各第１アピアランスを有する（７０２）。１つ以上の選択されたアイテムの各表現が第２コンテナのドロップゾーン内に少なくとも一部分ある間に、オペレーティングシステムは、選択されたアイテムの表現に各第２アピアランスを採用させ、各第２アピアランスは、アイテムを第２コンテナにドロップさせるべき場合にアイテム表現の予想アピアランスに似たものである（７０４）。
【０１３３】
ある具現化において、各アイテムの各第１アピアランスは、第１コンテナによりアプリケーションプログラミングインターフェイス（ＡＰＩ）を通して定義され、そして各アイテムの各第２アピアランスは、第２コンテナによりＡＰＩを通して定義される。
【０１３４】
ある具現化において、各アイテムの表現は、アイテムの第１及び第２のアピアランスの少なくとも１つに対して２つ以上のレイヤを含み、そして１つ以上の選択されたアイテムの各表現は、アイテムの第１アピアランスからアイテムの第２アピアランスへの各移行を描写するようにアニメ化され、各アニメーションは、その移行を描写するように２つ以上のレイヤの各々に対して行われる。
【０１３５】
ある具現化において、２つ以上のレイヤの各々は、レイヤ上で実行される各アニメーションに対する各アニメーションスタイルに関連している。
【０１３６】
ある具現化において、１つ以上の選択されたアイテムの各表現が不適切なドロップターゲットのエリア内に少なくとも一部分ある間に、選択されたアイテムの表現は、第１コンテナに関連した各第３アピアランスを採用するようにされる。ある具現化において、各第３アピアランスは、第１コンテナによりアプリケーションプログラミングインターフェイス（ＡＰＩ）を通して定義される。
【０１３７】
ある具現化において、選択されたアイテムの各表現は、それらの各第１アピアランスで示されるときには第１フォーメーションにあり、そして選択されたアイテムの各表現は、それらの各第２アピアランスで示されるときには第２フォーメーションにあり、その第１フォーメーションは、第１コンテナにより定義され、そして第２フォーメーションは、アプリケーションプログラミングインターフェイス（ＡＰＩ）を通して第２コンテナにより定義される。
【０１３８】
前記プロセスは、単なる提示に過ぎない。前記プロセスの種々の組み合わせが考えられる。
【０１３９】
規範的ソフトウェアアーキテクチャー
図８Ａは、図１−７を参照して述べたプロセス及びユーザインターフェイスを具現化する規範的ソフトウェアアーキテクチャーを例示する。ある具現化において、プロセスを具現化するプログラムモジュールは、ソフトウェアアーキテクチャー又はスタックにおけるフレームワークの一部分である。規範的なソフトウェアスタックは、アプリケーションレイヤ８０２、フレームワークレイヤ８０４、サービスレイヤ８０６、ＯＳレイヤ８０８、及びハードウェアレイヤ８１０を備えている。アプリケーション（例えば、ｅ−メール、ワードプロセス、テキストメッセージ、等）は、アクセスビリティＡＰＩにファンクションフックを合体させることができる。フレームワークレイヤ８０４は、ドラグ及びドロップＵＩ変更エンジン８１２を含む。ドラグ及びドロップＵＩ変更エンジン８１２は、サービスレイヤ８０６又はＯＳレイヤ８０８のグラフィックサービス又はライブラリーにＡＰＩコールを行って、図１−７を参照して述べたタスクの幾つか又は全部を実行することができる。又、ドラグ及びドロップＵＩ変更エンジン８１２は、アプリケーションレイヤ８０２にＡＰＩコールを行って、表示オブジェクトを定義するに必要な情報を得ると共に、本明細書に開示する説明に基づき表示オブジェクトの位置及びコンテンツエリアを決定することもできる。又、ドラグ及びドロップＵＩ変更エンジン８１２は、サービスレイヤ８０６又はＯＳレイヤ８０８のサービス又はライブラリ（例えば、テキストサービス）にＡＰＩコールを行って、そのタスクの幾つか又は全部を実行することもできる。
【０１４０】
サービスレイヤ１０８は、ドラグ及びドロップＵＩ変更エンジン８１２のグラフィックファンクション及びアプリケーションレイヤ８０２のアプリケーション（例えば、ｅ−メールエディタアプリケーション）をサポートするために種々のグラフィック、アニメーション及びＵＩサービスを提供することができる。ある具現化において、サービスレイヤ８０６は、タッチ感知装置からの生のタッチデータを解釈してタッチ事象（例えば、ジェスチャー、回転）へマップするためのタッチモデルも備え、これは、タッチモデルＡＰＩに定義されたコール規定を使用してアプリケーションによりアクセスすることができる。又、サービスレイヤ８０６は、ワイヤレス通信のための通信ソフトウェアスタックも含む。
【０１４１】
ＯＳレイヤ８０８は、完全なオペレーティングシステム（例えば、ＭＡＣ  ＯＳ）又はカーネル（例えば、ＵＮＩＸ（登録商標）カーネル）である。ハードウェアレイヤ８１０は、図１−７を参照して述べたタスクを遂行するのに必要なハードウェアを備え、これは、プロセッサ又はプロセッサコア（アプリケーション及び通信ベースバンドプロセッサを含む）、専用信号／画像プロセッサ、ＡＳＩＣ、グラフィックプロセッサ（例えば、ＧＮＵ）、メモリ及び記憶装置、通信ポート及び装置、周辺装置、等を含むが、これに限定されない。
【０１４２】
ある具現化では、１つ以上のアプリケーションプログラミングインターフェイス（ＡＰＩ）が使用される。ＡＰＩは、プログラムコードコンポーネント又はハードウェアコンポーネント（以下、「ＡＰＩ具現化コンポーネント」）によって具現化されるインターフェイスであり、このコンポーネントは、異なるプログラムコードコンポーネント又はハードウェアコンポーネント（以下、「ＡＰＩコーリングコンポーネント」）が、ＡＰＩ具現化コンポーネントにより提供される１つ以上のファンクション、メソッド、手順、データ構造体、クラス、及び／又は他のサービスにアクセスして使用することを許すものである。ＡＰＩは、ＡＰＩコーリングコンポーネントと、ＡＰＩ具現化コンポーネントとの間に通される１つ以上のパラメータを定義する。
【０１４３】
ＡＰＩは、ＡＰＩコーリングコンポーネントの開発者（第３者の開発者）がＡＰＩ具現化コンポーネントにより提供される指定の特徴をレバレッジするのを許す。１つのＡＰＩコーリングコンポーネントがあってもよいし、又は２つ以上のそのようなコンポーネントがあってもよい。ＡＰＩは、アプリケーションからのサービス要求をサポートするためにコンピュータシステム又はプログラムライブラリが提供するソースコードインターフェイスである。オペレーティングシステム（ＯＳ）は、ＯＳで実行されるアプリケーションが１つ以上のＡＰＩにコールするのを許すために複数のＡＰＩを有することができ、そしてサービス（プログラムライブラリのような）も、サービスを利用するアプリケーションが１つ以上のＡＰＩにコールするのを許すために複数のＡＰＩを有する。ＡＰＩは、アプリケーションが構築されるときに解釈又はコンパイルできるプログラミング言語に関して指定されるものである。
【０１４４】
ある具現化において、ＡＰＩ具現化コンポーネントは、ＡＰＩ具現化コンポーネントによって具現化されるファンクションの異なる態様にアクセスする異なる態様を各々もつか又はその異なるビューを与える２つ以上のＡＰＩを提供する。例えば、ＡＰＩ具現化コンポーネントの１つのＡＰＩは、第１セットのファンクションを与えそして第３者の開発者に露出され、又、ＡＰＩ具現化コンポーネントの別のＡＰＩは、隠され（露出されず）、第１セットのファンクションのサブセットを与えると共に、第１セットのファンクションにはないテスト又はデバッグファンクションのような別のセットのファンクションも提供する。他の具現化では、ＡＰＩ具現化コンポーネントは、それ自体、基礎的なＡＰＩを経て１つ以上の他のコンポーネント、ひいては、ＡＰＩコーリングコンポーネント及びＡＰＩ具現化コンポーネントの両方にコールする。
【０１４５】
ＡＰＩは、ＡＰＩコーリングコンポーネントが、ＡＰＩ具現化コンポーネントの指定の特徴にアクセスして使用するときに、使用する言語及びパラメータを定義する。例えば、ＡＰＩコーリングコンポーネントは、ＡＰＩにより露出される１つ以上のＡＰＩコール又は呼び出し（例えば、ファンクション又はメソッドコールにより実施される）を通してＡＰＩ具現化コンポーネントの指定の特徴にアクセスし、そしてＡＰＩコール又は呼び出しを通してパラメータを使用してデータ及びコントロール情報を通過させる。ＡＰＩ具現化コンポーネントは、ＡＰＩコーリングコンポーネントからのＡＰＩコールに応答してＡＰＩを通して値を返送する。ＡＰＩは、シンタックス及びＡＰＩコールの結果（例えば、ＡＰＩコールをどのように呼び出すか及びＡＰＩコールが何を行うか）を定義するが、ＡＰＩは、ＡＰＩコールがＡＰＩコールにより指定されたファンクションをどのように遂行するか露呈しない。種々のＡＰＩコールは、コーリングコンポーネント（ＡＰＩコーリングコンポーネント）とＡＰＩ具現化コンポーネントとの間で１つ以上のアプリケーションプログラミングインターフェイスを経て転送される。ＡＰＩコールの転送は、ファンクションコール又はメッセージを発行し、開始し、呼び出し、コールし、受信し、返送し、又は応答することを含み、換言すれば、転送は、ＡＰＩコーリングコンポーネント又はＡＰＩ具現化コンポーネントのいずれかによるアクションを記述する。ＡＰＩのファンクションコール又は他の呼び出しは、パラメータリスト又は他の構造を通して１つ以上のパラメータを送信又は受信する。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ形式、ポインタ、アレイ、リスト、或いはＡＰＩに通されるデータ又は他のアイテムを参照するためのファンクション又はメソッド又は別の方法に対するポインタである。
【０１４６】
更に、データ形式又はクラスは、ＡＰＩにより与えられ、そしてＡＰＩ具現化コンポーネントにより具現化される。従って、ＡＰＩコーリングコンポーネントは、変数を宣言し、ポインタを使用し、ＡＰＩに与えられた定義を使用することによりそのような形式又はクラスの定数値を使用し又はインスタンス生成する。
【０１４７】
一般的に、ＡＰＩは、ＡＰＩ具現化コンポーネントにより提供されるサービス又はデータにアクセスし、或いはＡＰＩ具現化コンポーネントにより提供される動作又は計算の実行を開始するのに使用される。例えば、ＡＰＩ具現化コンポーネント及びＡＰＩコーリングコンポーネントは、各々、オペレーティングシステム、ライブラリー、装置ドライバ、ＡＰＩ、アプリケーションプログラム、又は他のモジュールのいずれか１つである（ＡＰＩ具現化コンポーネント及びＡＰＩコーリングコンポーネントは、互いに同じ形式又は異なる形式のモジュールでよいことを理解されたい）。ＡＰＩ具現化コンポーネントは、あるケースでは、ファームウェア、マイクロコード又は他のハードウェアロジックで少なくとも一部分実施されてもよい。ある具現化において、ＡＰＩは、クライアントプログラムがソフトウェアデベロープメントキット（ＳＤＫ）ライブラリーにより提供されるサービスを使用するのを許す。他の具現化において、アプリケーション又は他のクライアントプログラムは、アプリケーションフレームワークにより提供されるＡＰＩを使用する。これらの具現化において、アプリケーション又はクライアントプログラムは、ＳＤＫによって提供され及びＡＰＩにより提供されるファンクション又はメソッドへのコールを合体し、或いはＳＤＫに定義され及びＡＰＩにより提供されるデータ形式又はオブジェクトを使用する。アプリケーションフレームワークは、これらの具現化では、フレームワークにより定義される種々の事象に応答するプログラムに対してメイン事象ループを与える。ＡＰＩは、アプリケーションが、アプリケーションフレームワークを使用して事象及び事象に対する応答を指定できるようにする。ある具現化において、ＡＰＩコールは、入力能力及び状態、出力能力及び状態、処理能力、電源状態、記憶容量及び状態、通信能力、等の観点に関連したものを含むハードウェア装置の能力又は状態をアプリケーションに報告し、そしてＡＰＩは、ファームウェア、マイクロコード、或いはハードウェアコンポーネントで一部分実行される他の低レベルロジックにより一部分具現化される。
【０１４８】
ＡＰＩコーリングコンポーネントは、ネットワークを経てＡＰＩを通してＡＰＩ具現化コンポーネントと通信するローカルコンポーネント（即ち、ＡＰＩ具現化コンポーネントと同じデータ処理システム上）又はリモートコンポーネント（即ち、ＡＰＩ具現化コンポーネントとは異なるデータ処理システム上）である。ＡＰＩ具現化コンポーネントは、ＡＰＩコーリングコンポーネントとしても働き（即ち、異なるＡＰＩ具現化コンポーネントにより露出されたＡＰＩへＡＰＩコールを発し）、そしてＡＰＩコーリングコンポーネントは、異なるＡＰＩコーリングコンポーネントへ露出されるＡＰＩを具現化することによりＡＰＩ具現化コンポーネントとしても働く。
【０１４９】
ＡＰＩは、異なるプログラミング言語で書かれたＡＰＩコーリングコンポーネントがＡＰＩ具現化コンポーネントと通信するのを許す（従って、ＡＰＩは、ＡＰＩ具現化コンポーネントとＡＰＩコーリングコンポーネントとの間でコールを転送し及び返送する特徴を含む）が、ＡＰＩは、特定のプログラミング言語に関して具現化される。ＡＰＩコーリングコンポーネントは、１つの実施形態では、異なるプロバイダーからＡＰＩをコールし、例えば、ＡＰＩのセットをＯＳプロバイダーからコールし、ＡＰＩの別のセットをプラグインプロバイダーからコールし、そしてＡＰＩの別のセットを別のプロバイダー（例えば、ソフトウェアライブラリーのプロバイダー）又はＡＰＩの別のセットのクリエーターからコールすることができる。
【０１５０】
図８Ｂは、ここに開示した幾つかのプロセス及びユーザインターフェイス変化の具現化に使用される規範的ＡＰＩアーキテクチャーを示すブロック図である。図８Ｂに示すように、ＡＰＩアーキテクチャー８２０は、ＡＰＩ８２４を具現化するＡＰＩ具現化コンポーネント８２２（例えば、オペレーティングシステム、ライブラリー、装置ドライバ、ＡＰＩ、アプリケーションプログラム、ソフトウェア、又は他のモジュール）を含む。ＡＰＩ８２４は、ＡＰＩコーリングコンポーネント８２６により使用されるＡＰＩ具現化コンポーネントの１つ以上のファンクション、メソッド、クラス、オブジェクト、プロトコル、データ構造、フォーマット、及び／又は他の特徴を指定する。ＡＰＩ８２４は、ＡＰＩ具現化コンポーネントのファンクションがＡＰＩコーリングコンポーネントからパラメータをどのように受け取るか及びそのファンクションが結果をＡＰＩコーリングコンポーネントへどのように返送するか指定する少なくとも１つのコーリング規定を指定することができる。ＡＰＩコーリングコンポーネント８２６（例えば、オペレーティングシステム、ライブラリー、装置ドライバ、ＡＰＩ、アプリケーションプログラム、ソフトウェア又は他のモジュール）は、ＡＰＩ８２４により指定されたＡＰＩ具現化コンポーネント８２２の特徴にアクセスして使用するためにＡＰＩ８２４を通してＡＰＩコールを行う。ＡＰＩ具現化コンポーネント８２２は、ＡＰＩコールに応答してＡＰＩ８２４を経てＡＰＩコーリングコンポーネント８２６へ値を返送する。
【０１５１】
ＡＰＩ具現化コンポーネント８２２は、ＡＰＩ８２４を通して指定されず且つＡＰＩコーリングコンポーネント８２６には入手できない付加的なファンクション、メソッド、クラス、データ構造、及び／又は他の特徴を含むことが明らかであろう。ＡＰＩコーリングコンポーネント８２６は、ＡＰＩ具現化コンポーネント８２２と同じシステム上にあってもよく、又は遠隔配置されてネットワークを経てＡＰＩ８２４を使用してＡＰＩ具現化コンポーネント８２２にアクセスしてもよい。図８Ｂは、ＡＰＩ８２４と対話する単一のＡＰＩコーリングコンポーネント８３０を示すが、ＡＰＩコーリングコンポーネント８２６とは異なる言語（又は同じ言語）で書かれた他のＡＰＩコーリングコンポーネントがＡＰＩ８２４を使用してもよいことを理解されたい。
【０１５２】
ＡＰＩ具現化コンポーネント８２２、ＡＰＩ８２４、及びＡＰＩコーリングコンポーネント８２６は、マシン（例えば、コンピュータ又は他のデータ処理システム）により読み取り可能な形態で情報を記憶するためのメカニズムを含むマシン読み取り可能な媒体に記憶される。例えば、マシン読み取り可能な媒体は、磁気ディスク、光学ディスク、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリ装置、等を含む。
【０１５３】
図８Ｃ（「ソフトウェアスタック」８３０）、規範的な具現化において、アプリケーションは、多数のサービスＡＰＩ（サービスＡＰＩ  Ａ及びサービスＡＰＩ  Ｂ）を使用してサービスＡ８３２又はサービスＢ８３４へ、そして多数のＯＳ  ＡＰＩを使用してオペレーティングシステム（ＯＳ）８３６へコールすることができる。サービスＡ８３２及びサービスＢ８３４は、多数のＯＳ  ＡＰＩを使用してＯＳ８３６へコールすることができる。
【０１５４】
サービスＢ８３４は、２つのＡＰＩを有し、その一方（サービスＢ  ＡＰＩ  Ａ８３８）は、アプリケーションＡ８４０からコールを受け取りそしてそこに値を返送し、その他方（サービスＢ  ＡＰＩ  Ｂ８４２）は、アプリケーションＢ８４４からコールを受け取りそしてそこに値を返送する。サービスＡ８３２（例えば、ソフトウェアライブラリ）は、ＯＳ  ＡＰＩ  Ａ８４６にコールしそしてそこから返送値を受け取り、そしてサービスＢ８３４（例えば、ソフトウェアライブラリ）は、ＯＳ  ＡＰＩ  Ａ８４６及びＯＳ  ＡＰＩ  Ｂ８４８の両方にコールしそしてそこから返送値を受け取る。アプリケーションＢ８４４は、ＯＳ  ＡＰＩ  Ｂ８４８にコールしそしてそこから返送値を受け取る。
【０１５５】
図９は、図１−８Ｃを参照して述べたドラグ及びドロップＵＩ変更プロセス並びにインターフェイスを具現化する装置の規範的ハードウェアアーキテクチャーのブロック図である。この装置は、メモリインターフェイス９０２、１つ以上のデータプロセッサ、画像プロセッサ及び／又はプロセッサ９０４、並びに周辺インターフェイス９０６を備えている。メモリインターフェイス９０２、１つ以上のデータプロセッサ９０４、及び／又は周辺インターフェイス９０６は、個別のコンポーネントでもよいし、又は１つ以上の集積回路に一体化されてもよい。装置における種々のコンポーネントは、例えば、１つ以上の通信バス又は信号ラインによって結合される。
【０１５６】
複数のファンクションを促進するために、センサ、装置及びサブシステムが周辺インターフェイス９０６に結合される。例えば、移動装置の配向、照明及び接近ファンクションを促進するために、動きセンサ９１０、光源９１２、及び接近センサ９１４が周辺インターフェイス９０６に結合される。位置プロセッサ９１５（例えば、ＧＰＳ受信器）は、地理的位置を与えるために周辺インターフェイス９０６に接続される。又、磁気的な北の方向を決定するのに使用できるデータを与えるために、電子磁力計９１６（例えば、集積回路チップ）が周辺インターフェイス９０６に接続される。従って、電子磁力計９１６は、電子コンパスとして使用される。又、移動装置の移動速度及び方向の変化を決定するために、加速度計９１７も周辺インターフェイス９０６に接続される。
【０１５７】
記録写真及びビデオクリップのようなカメラファンクションを促進するために、カメラサブシステム９２０及び光学的センサ９２２、例えば、電荷結合デバイス（ＣＣＤ）又は相補的金属酸化物半導体（ＣＭＯＳ）光学的センサを利用することができる。
【０１５８】
通信ファンクションは、高周波受信器及び送信器及び／又は光学的（例えば、赤外線）受信器及び送信器を含む１つ以上のワイヤレス通信サブシステム９２４を通して促進される。通信サブシステム９２４の特定設計及び具現化は、移動装置が動作するように意図された通信ネットワーク（１つ又は複数）に依存する。例えば、移動装置は、ＧＳＭ（登録商標）ネットワーク、ＧＰＲＳネットワーク、ＥＤＧＥネットワーク、Ｗｉ−Ｆｉ又はＷｉＭａｘネットワーク、及びＢｌｕｅｔｏｏｔｈ（登録商標）ネットワークにわたり動作するように設計された通信サブシステム９２４を備えている。特に、ワイヤレス通信サブシステム９２４は、移動装置を他のワイヤレス装置のためのベースステーションとして構成できるようにホスティングプロトコルを含む。
【０１５９】
オーディオサブシステム９２６は、音声認識、音声複写、デジタル記録及び電話ファンクションのような音声イネーブルファンクションを促進するためにスピーカ９２８及びマイクロホン９３０に結合される。
【０１６０】
Ｉ／Ｏサブシステム９４０は、タッチスクリーンコントローラ９４２及び／又は他の入力コントローラ９４４を含む。タッチスクリーンコントローラ９４２は、タッチスクリーン９４６又はパッドに結合される。タッチスクリーン９４６及びタッチスクリーンコントローラ９４２は、例えば、これに限定されないが、容量性、抵抗性、赤外線及び表面音波技術を含む複数のタッチ感知技術、並びにタッチスクリーン９４６との１つ以上の接触点を決定するための他の接近センサアレイ又は他の素子を使用して、接触及び移動又はその切断を検出することができる。
【０１６１】
他の入力コントローラ９４４は、１つ以上のボタン、ロッカースイッチ、サムホイール、赤外線ポート、ＵＳＢポート、及び／又はスタイラス等のポインタ装置、のような他の入力／コントロール装置９４８に結合される。１つ以上のボタン（図示せず）は、スピーカ９２８及び／又はマイクロホン９３０のボリュームコントロールのためのアップ／ダウンボタンを含む。
【０１６２】
１つの具現化において、第１の期間中ボタンを押すと、タッチスクリーン９４６のロックが解離し、そして第１の期間より長い第２の期間中ボタンを押すと、装置の電源をオン又はオフにすることができる。ユーザは、１つ以上のボタンのファンクションをカスタマイズすることができる。タッチスクリーン９４６は、例えば、バーチャル又はソフトボタン及び／又はキーボードを具現化するのにも使用できる。
【０１６３】
ある具現化において、装置は、ＭＰ３、ＡＡＣ、及びＭＰＥＧファイルのような記録されたオーディオ及び／又はビデオファイルを提示する。ある具現化において、装置は、ｉＰｏｄTMのようなＭＰ３プレーヤのファンクションを含む。それ故、装置は、ｉＰｏｄに適合するピンコネクタを含む。他の入力／出力及びコントロール装置も使用できる。
【０１６４】
メモリインターフェイス９０２は、メモリ９５０に結合される。メモリ９５０は、高速ランダムアクセスメモリ及び／又は不揮発性メモリ、例えば、１つ以上の磁気ディスク記憶装置、１つ以上の光学的記憶装置、及び／又はフラッシュメモリ（例えば、ＮＡＮＤ、ＮＯＲ）を含む。メモリ９５０は、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ、ＷＩＮＤＯＷＳ（登録商標）のようなオペレーティングシステム９５２、又はＶｘＷｏｒｋのような埋め込み型オペレーティングシステムを記憶する。オペレーティングシステム９５２は、基本的なシステムサービスを取り扱うと共にハードウェア依存タスクを遂行するためのインストラクションを含む。ある具現化において、オペレーティングシステム９５２は、カーネル（例えば、ＵＮＩＸ（登録商標）カーネル）を含む。
【０１６５】
メモリ９５０は、１つ以上の付加的な装置、１つ以上のコンピュータ、及び／又は１つ以上のサーバーとの通信を促進するための通信インストラクション９５４も記憶する。メモリ９５０は、グラフィックユーザインターフェイス処理を促進するためのグラフィックユーザインターフェイスインストラクション９５６、センサ関連処理及びファンクションを促進するためのセンサ処理インストラクション９５８、電話関連プロセス及びファンクションを促進するための電話インストラクション９６０、電子メッセージング関連プロセス及びファンクションを促進するための電子メッセージングインストラクション９６２、ウェブブラウジング関連プロセス及びファンクションを促進するためのウェブブラウジングインストラクション９６４、メディア処理関連プロセス及びファンクションを促進するためのメディア処理インストラクション９６６、ＧＰＳ及びナビゲーション関連プロセス及びインストラクションを促進するためのＧＰＳ／ナビゲーションインストラクション９６８、及びカメラ関連プロセス及びファンクションを促進するためのカメラインストラクション９７０を含む。又、メモリ９５０は、セキュリティインストラクション、ウェブビデオ関連プロセス及びファンクションを促進するウェブビデオインストラクション、及び／又はウェブショッピング関連プロセス及びファンクションを促進するウェブショッピングインストラクションのような他のソフトウェアインストラクション（図示せず）も記憶する。ある具現化において、メディア処理インストラクション９６６は、オーディオ処理関連プロセス及びファンクションと、ビデオ処理関連プロセス及びファンクションを各々促進するためのオーディオ処理インストラクション及びビデオ処理インストラクションへ分割される。アクチベーションレコード及びインターナショナルモバイルイクイップメントアイデンティティ（ＩＭＥＩ）又は同様のハードウェア識別子もメモリ９５０に記憶される。又、メモリ９５０は、他のインストラクション９７２も含む。
【０１６６】
上述したインストラクション及びアプリケーションの各々は、上述した１つ以上のファンクションを遂行するためのインストラクションのセットに対応する。これらのインストラクションは、個別のソフトウェアプログラム、手順又はモジュールとして具現化される必要がない。メモリ９５０は、付加的なインストラクション又はより少数のインストラクションを含んでもよい。更に、移動装置の種々のファンクションは、１つ以上の信号処理及び／又は特定用途向け集積回路を含めて、ハードウェア及び／又はソフトウェアで具現化される。
【０１６７】
ここに述べる特徴は、デジタル電子回路、又はコンピュータハードウェア、ファームウェア、ソフトウェア、或いはそれらの組み合わせで具現化される。その特徴は、例えば、プログラム可能なプロセッサにより、例えば、マシン読み取り可能な記憶装置のような、情報キャリアで有形に実施されるコンピュータプログラム製品において具現化され、そして方法ステップは、入力データに作用して出力を発生することにより前記具現化のファンクションを遂行するようにインストラクションのプログラムを実行するプログラム可能なプロセッサにより遂行される。
【０１６８】
ここに述べる特徴は、データ記憶システム、少なくとも１つの入力装置、及び少なくとも１つの出力装置からデータ及びインストラクションを受信しそしてそれらにデータ及びインストラクションを送信するように結合された少なくとも１つのプログラム可能なプロセッサを備えたプログラマブルシステムにおいて実行できる１つ以上のコンピュータプログラムで好都合に具現化される。コンピュータプログラムは、あるアクティビティを遂行するか又はある結果を生じさせるためにコンピュータに直接的又は間接的に使用できるインストラクションのセットである。コンピュータプログラムは、コンパイル型又は解釈型言語を含む任意の形態のプログラミング言語（例えば、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｊａｖａ（登録商標））で書くことができ、そしてスタンドアローンプログラム、或いはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン又は他のユニットを含む任意の形態で配備することができる。
【０１６９】
インストラクションのプログラムを実行するための適当なプロセッサは、例えば、任意の種類のコンピュータの、汎用及び特殊目的マイクロプロセッサ、並びに単独プロセッサ又は複数プロセッサ又はコアの１つを含む。一般的に、プロセッサは、リードオンリメモリ又はランダムアクセスメモリ或いはその両方からインストラクション及びデータを受け取る。コンピュータの本質的な要素は、インストラクションを実行するためのプロセッサと、インストラクション及びデータを記憶するための１つ以上のメモリである。一般的に、コンピュータは、データファイルを記憶するための１つ以上の大量記憶装置を含むか、又はそれと通信するように作動的に結合され、そのような装置は、内部ハードディスク及び取り外し可能なディスク、磁気−光学ディスク、及び光学的ディスクを含む。コンピュータプログラムインストラクション及びデータを有形に実施するのに適した記憶装置は、あらゆる形式の不揮発性メモリ、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリ装置のような半導体メモリ装置；内部ハードディスク及び取り外し可能なディスクのような磁気ディスク；磁気−光学ディスク；並びにＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む。プロセッサ及びメモリは、ＡＳＩＣ（特定用途向け集積回路）により補足され、又はそれに合体される。
【０１７０】
ユーザとの対話を与えるため、ユーザに情報を表示するためのＣＲＴ（陰極線管）又はＬＣＤ（液晶ディスプレイ）モニタのようなディスプレイ装置と、ユーザがコンピュータへ入力を与えられるようにするキーボード、マウス又はトラックボール、或いはポインティング装置（例えば、タッチ感知面又はタッチ感知ディスプレイ上の指又はスタイラス）とを有するコンピュータにおいて特徴を具現化することができる。
【０１７１】
データサーバーのような後端コンポーネントを含むか、又はアプリケーションサーバー又はインターネットサーバーのようなミドルウェアコンポーネントを含むか、又はグラフィックユーザインターフェイス又はインターネットブラウザを有するクライアントコンピュータのような前端コンポーネントを含むか、或いはそれらを任意の組み合わせで含むコンピュータシステムにおいて特徴を具現化することができる。システムのコンポーネントは、通信ネットワークのような任意の形態又は媒体のデジタルデータ通信により接続される。通信ネットワークは、例えば、ＬＡＮ、ＷＡＮ、インターネットを形成するコンピュータ及びネットワークを含む。
【０１７２】
コンピュータシステムは、クライアント及びサーバーを含む。クライアント及びサーバーは、一般的に、互いに離れており、そして典型的に、ネットワークを通して相互作用する。クライアント及びサーバーの関係は、互いにクライアント／サーバー関係を有していて各コンピュータで実行されるコンピュータプログラムにより生じる。
【０１７３】
ここに開示された１つ以上の特徴又はステップは、ＡＰＩを使用して具現化することができる。ＡＰＩは、コーリングアプリケーションと、サービスを提供し、データを提供し或いは動作又は計算を遂行する他のソフトウェアコード（例えば、オペレーティングシステム、ライブラリールーチン、ファンクション）との間に通される１つ以上のパラメータを定義することができる。
【０１７４】
ＡＰＩは、ＡＰＩ仕様ドキュメントに定義されたコール規定に基づいてパラメータリスト又は他の構造を通して１つ以上のパラメータを送信又は受信するプログラムコードにおいて１つ以上のコールとして具現化することができる。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ形式、ポインタ、アレイ、リスト、又は別のコールである。ＡＰＩコール及びパラメータは、任意のプログラミング言語で具現化することができる。プログラミング言語は、ＡＰＩをサポートするファンクションにアクセスするためにプログラマーが使用する語彙及びコーリング規定を定義することができる。
【０１７５】
ある具現化において、ＡＰＩコールは、アプリケーションを実行する装置の入力、例えば、入力能力、出力能力、処理能力、電源能力、通信能力、等をアプリケーションに報告することができる。
【０１７６】
以上、多数の具現化について述べた。しかし、種々の変更がなされ得ることが理解されよう。例えば、１つ以上の具現化の要素を合成し、削除し、変更し、又は補足して、更に別の具現化を行うことができる。更に別の例として、図示されたロジックフローは、望ましい結果を達成するのに、図示された特定の順序、又は逐次の順序を必要とするものではない。更に、上述したフローに他のステップを設けてもよいし、又はそこからステップを除去してもよいし、又、上述したシステムに他のコンポーネントを追加してもよいし又はそこから除去してもよい。従って、特許請求の範囲内で他の具現化も考えられる。
【符号の説明】
【０１７７】
１００：ユーザインターフェイス
１０２：表示エリア
１０４、１０６：フォルダウインドウ
１０８：アプリケーションウインドウ
１１０、１１２、１１４、１１６、１１８：アイテム表現
１２０：カーソル
１２４：クラスター
１２６：カウントインジケータ
１３０：ドキュメント
８０２：アプリケーション
８０４：ドラグ及びドロップＵＩ変更エンジン
８０６：サービス／ライブラリー
８０８：Ｏ／Ｓ
８１０：ハードウェア
８２２：ＡＰＩ具現化コンポーネント
８２４：アプリケーションプログラミングインターフェイス
８２６：ＡＰＩコーリングコンポーネント
９０２：メモリインターフェイス
９０４：プロセッサ
９０６：周辺インターフェイス
９１０：動きセンサ
９１２：光センサ
９１４：接近センサ
９１５：位置プロセッサ
９１６：磁力計
９１７：加速度計
９２０：カメラサブシステム
９２４：ワイヤレス通信サブシステム
９２６：オーディオサブシステム
９４０：Ｉ／Ｏサブシステム
９４２：タッチスクリーンコントローラ
９４４：他の入力コントローラ
９４６：タッチスクリーン
９４８：他の入力／コントロール装置
９５０：メモリ
９５２：オペレーティングシステムインストラクション
９５４：通信インストラクション
９５６：ＧＵＩインストラクション
９５８：センサ処理インストラクション
９６０：電話インストラクション
９６２：電子メッセージインストラクション
９６４：ウェブブラウジングインストラクション
９６６：メディア処理インストラクション
９６８：ＧＰＳ／ナビゲーションインストラクション
９７０：カメラインストラクション
９７２：他のインストラクション
【図１Ａ】
0005514371.tif 000002
【図１Ｂ】
0005514371.tif 000003
【図１Ｃ】
0005514371.tif 000004
【図１Ｄ】
0005514371.tif 000005
【図１Ｅ】
0005514371.tif 000006
【図１Ｆ】
0005514371.tif 000007
【図１Ｇ】
0005514371.tif 000008
【図１Ｈ】
0005514371.tif 000009
【図１Ｉ】
0005514371.tif 000010
【図１Ｊ】
0005514371.tif 000011
【図１Ｋ】
0005514371.tif 000012
【図１Ｌ】
0005514371.tif 000013
【図１Ｍ】
0005514371.tif 000014
【図１Ｎ】
0005514371.tif 000015
【図１Ｏ】
0005514371.tif 000016
【図１Ｐ】
0005514371.tif 000017
【図１Ｑ】
0005514371.tif 000018
【図１Ｒ】
0005514371.tif 000019
【図１Ｓ】
0005514371.tif 000020
【図２Ａ】
0005514371.tif 000021
【図２Ｂ】
0005514371.tif 000022
【図３】
0005514371.tif 000023
【図４Ａ】
0005514371.tif 000024
【図４Ｂ】
0005514371.tif 000025
【図５】
0005514371.tif 000026
【図６】
0005514371.tif 000027
【図７】
0005514371.tif 000028
【図８Ａ】
0005514371.tif 000029
【図８Ｂ】
0005514371.tif 000030
【図８Ｃ】
0005514371.tif 000031
【図９】
0005514371.tif 000032