(57)【特許請求の範囲】
【請求項１】
表示装置と、ユーザが表示装置上でポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、オブジェクトを検索するための装置であって、
コンピュータに結合され、入力信号を受け取ってドラッグ操作を指示する入力機構と、
コンピュータに結合され、他のオブジェクトを収容することができるオブジェクトを有するエンクロージャを含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいる、ウィンドウ・オープン論理機構と、
ウィンドウのうちの１つの内に表示される特定のエンクロージャと、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上のポインタのドラッグ操作中にドラッグに応答して、特定のエンクロージャの一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を一時ウィンドウ内に表示する一時ウィンドウ・オープン論理機構機構とから構成され、
上記エンクロージャに対する識別記号は一時ウィンドウ領域を含み、前記一時ウィンドウ・オープン論理機構機構は、一時ウィンドウを開くための表示装置に結合された論理とポインティング・デバイスとを含み、特定のエンクロージャに対応する識別記号の一時ウィンドウ領域上でのポインタのドラッグ操作の間のドラッグに応答して、一時ウィンドウをオープンさせることを特徴とする装置。
【請求項２】
表示装置と、表示装置上でユーザがポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、エンクロージャの階層内でオブジェクトを検索する装置であって、
他のオブジェクトを収容することができるオブジェクトを有するエンクロージャの少なくとも１つの階層を含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャのウィンドウがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいるウィンドウ・オープン論理機構と、
ドラッグ操作を指示する入力信号を受け取る入力機構と、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上でのドラッグ操作中にドラッグに応答して、特定のエンクロージャの現行一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を現行一時ウィンドウ内に表示し、オープンした一時ウィンドウの階層と現行一時ウィンドウを維持する論理機構を備えている、一時ウィンドウ・オープン論理機構と、
一時ウィンドウ・オープン論理機構とポインティング・デバイスとに結合され、現行一時ウィンドウの外部でのポインタのドラッグ操作中にドラッグに応じて現行一時ウィンドウをクローズする一時ウィンドウ・クローズ論理機構と、
特定のオブジェクトに対応する選択した識別記号の位置から始まり、現行一時ウィンドウ内の別の位置までのドラッグ操作に応答して、特定のエンクロージャに特定のオブジェクトを入れる論理機構とを備えた装置。
【請求項３】
表示装置と、表示装置上でユーザがポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、エンクロージャの階層内でオブジェクトを検索する装置であって、
他のオブジェクトを収容することができるオブジェクトを有するエンクロージャの少なくとも１つの階層を含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャのウィンドウがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいるウィンドウ・オープン機構と、
ドラッグ操作を指示する入力信号を受け取る入力機構と、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上でのドラッグ操作中にドラッグに応答して、特定のエンクロージャの現行一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を現行一時ウィンドウ内に表示し、オープンした一時ウィンドウの階層と現行一時ウィンドウを維持する論理機構を備えている、一時ウィンドウ・オープン論理機構と、
一時ウィンドウ・オープン論理機構とポインティング・デバイスとに結合され、現行一時ウィンドウの外部でのポインタのドラッグ操作中にドラッグに応じて現行一時ウィンドウをクローズする一時ウィンドウ・クローズ論理機構と、
表示装置が特定のエンクロージャに対する既存のウィンドウを含むかどうかを現行一時ウィンドウを開くドラッグ操作中に判定し、そうである場合に既存のウィンドウを表示装置から削除する論理機構とを備えた装置。
【請求項４】
表示装置と、表示装置上でユーザがポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、エンクロージャの階層内でオブジェクトを検索する装置であって、
他のオブジェクトを収容することができるオブジェクトを有するエンクロージャの少なくとも１つの階層を含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャのウィンドウがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいるウィンドウ・オープン論理機構と、
ドラッグ操作を指示する入力信号を受け取る入力機構と、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上でのドラッグ操作中にドラッグに応答して、特定のエンクロージャの現行一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を現行一時ウィンドウ内に表示し、オープンした一時ウィンドウの階層と現行一時ウィンドウを維持する論理機構を備えている、一時ウィンドウ・オープン論理機構と、
一時ウィンドウ・オープン論理機構とポインティング・デバイスとに結合され、現行一時ウィンドウの外部でのポインタのドラッグ操作中にドラッグに応じて現行一時ウィンドウをクローズする一時ウィンドウ・クローズ論理機構と、
表示装置が特定のエンクロージャに対する既存のウィンドウを含むかどうかを現行一時ウィンドウを開くドラッグ操作中に判定し、そうである場合に既存のウィンドウを表示装置から削除する論理機構と、
現行一時ウィンドウを表示装置上で特定のエンクロージャに対応する識別記号上に描画する論理機構とを備えた装置。
【請求項５】
表示装置と、表示装置上でユーザがポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、エンクロージャの階層内のオブジェクトを複写または移動する装置であって、
コンピュータに結合され、他のオブジェクトを収容することができるオブジェクトを有しているエンクロージャの少なくとも１つの階層を含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャのウィンドウがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいるウィンドウ・オープン論理機構と、
コンピュータに結合され、ドラッグ操作を指示する入力信号を受け取る入力機構と、
ウィンドウのうちの１つの内に表示される特定のエンクロージャと、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上でのドラッグ操作中にドラッグに応答して特定のエンクロージャの現行一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を現行一時ウィンドウ内に表示し、オープンした一時ウィンドウの階層と現行一時ウィンドウを維持する論理機構を備えている一時ウィンドウ・オープン論理機構と、
一時ウィンドウ・オープン論理機構とポインティング・デバイスとに結合され、現行一時ウィンドウの外部でのポインタのドラッグ操作中にドラッグに応答して現行一時ウィンドウをクローズする一時ウィンドウ・クローズ論理機構と、
表示装置に結合され、特定のオブジェクトに対応する選択した識別記号の位置から始まる現行一時ウィンドウ内の別の位置までのドラッグ操作に応答して、現行一時ウィンドウの特定のエンクロージャに特定のオブジェクトを入れるオブジェクト配置論理機構とを備えた装置。
【請求項６】
表示装置と、ユーザが表示装置上でポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、オブジェクトを検索するための方法であって、
オブジェクトをポインタと関連付けることを含むドラッグ操作を実行する工程と、
他のオブジェクトを収容することができるオブジェクトを有するエンクロージャを含む複数のオブジェクトを記憶装置内に格納する工程と、
エンクロージャに対応し、且つエンクロージャに収容されたオブジェクトに対応する識別記号を有するウィンドウを表示装置上に表示する工程と、
ウィンドウのうちの１つの内に第１のエンクロージャに対応する識別記号を表示する工程と、
第１のエンクロージャに対応する識別記号上のポインタのドラッグ操作中にドラッグに応答して、第１のエンクロージャの一時ウィンドウをオープンし、第１のエンクロージャに収容されたオブジェクトに対応する識別記号を一時ウィンドウ内に表示する工程と、
第１のエンクロージャに対応する識別記号上のポインタのドラッグ操作中にドラッグに応答して、第１のエンクロージャに含まれた第２のエンクロージャの第２の一時ウィンドウをオープンする工程とを含む方法。
【請求項７】
表示装置と、ユーザが表示装置上でポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、オブジェクトを検索するための装置であって、
前記コンピュータに結合され、入力信号を受け取ってドラッグ操作を指示する入力機構と、
前記コンピュータに結合され、他のオブジェクトを収容することができるオブジェクトを有するエンクロージャを含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいる、ウィンドウ・オープン論理機構と、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上のポインタのドラッグ操作中にドラッグに応答して、特定のエンクロージャの一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を一時ウィンドウ内に表示する一時ウィンドウ・オープン論理機構機構と、
表示装置に結合され、表示装置が特定のエンクロージャに対する既存のウィンドウを含むかどうかを現行一時ウィンドウを開くドラッグ操作中に判定し、そうである場合に既存のウィンドウを表示装置から削除する論理機構とを備えた装置。
【請求項８】
表示装置と、ユーザが表示装置上でポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、オブジェクトを検索するための装置であって、
前記コンピュータに結合され、入力信号を受け取ってドラッグ操作を指示する入力機構と、
前記コンピュータに結合され、他のオブジェクトを収容することができるオブジェクトを有するエンクロージャを含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいる、ウィンドウ・オープン論理機構と、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上のポインタのドラッグ操作中にドラッグに応答して、特定のエンクロージャの一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を一時ウィンドウ内に表示する一時ウィンドウ・オープン論理機構機構と、
表示装置に結合され、表示装置が特定のエンクロージャに対する既存のウィンドウを含むかどうかを現行一時ウィンドウを開くドラッグ操作中に判定し、そうである場合に既存のウィンドウを表示装置から削除する論理機構と、
表示装置に結合され、現行一時ウィンドウを表示装置上で特定のエンクロージャに対応する識別記号上に描画する論理機構とを備えた装置。
【請求項９】
表示装置と、表示装置上でユーザがポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、エンクロージャの階層内でオブジェクトを検索する装置であって、
コンピュータに結合され、他のオブジェクトを収容することができるオブジェクトを有するエンクロージャの少なくとも１つの階層を含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン機構であって、そのオープンしたエンクロージャのウィンドウがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいるウィンドウ・オープン論理機構と、
コンピュータに結合され、ドラッグ操作を指示する入力信号を受け取る入力機構と、
記憶システム階層内のフォルダを表す、ウィンドウのうちの１つの内に表示される特定のエンクロージャと、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上でのドラッグ操作中にドラッグに応答して、特定のエンクロージャの現行一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を現行一時ウィンドウ内に表示し、オープンした一時ウィンドウの階層と現行一時ウィンドウを維持する論理機構を備えている、一時ウィンドウ・オープン論理機構と、
一時ウィンドウ・オープン論理機構とポインティング・デバイスとに結合され、現行一時ウィンドウの外部でのポインタのドラッグ操作中にドラッグに応じて現行一時ウィンドウをクローズする一時ウィンドウ・クローズ論理機構とを備え、
一時ウィンドウ・クローズ論理機構が、現行一時ウィンドウ内で終了するドラッグ操作に応答して、階層内で現行一時ウィンドウ以外の一時ウィンドウをクローズする論理機構を含む装置。
【請求項１０】
表示装置と、表示装置上でユーザがポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、エンクロージャの階層内でオブジェクトを検索する装置であって、
コンピュータに結合され、他のオブジェクトを収容することができるオブジェクトを有するエンクロージャの少なくとも１つの階層を含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャのウィンドウがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいるウィンドウ・オープン論理機構と、
コンピュータに結合され、ドラッグ操作を指示する入力信号を受け取る入力機構と、
記憶システム階層内のフォルダを表す、ウィンドウのうちの１つの内に表示される特定のエンクロージャと、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上でのドラッグ操作中にドラッグに応答して、特定のエンクロージャの現行一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を現行一時ウィンドウ内に表示し、オープンした一時ウィンドウの階層と現行一時ウィンドウを維持する論理機構を備えている、一時ウィンドウ・オープン論理機構と、
一時ウィンドウ・オープン論理機構とポインティング・デバイスとに結合され、現行一時ウィンドウの外部でのポインタのドラッグ操作中にドラッグに応じて現行一時ウィンドウをクローズする一時ウィンドウ・クローズ論理機構とを備え、
一時ウィンドウ・クローズ論理機構が、一時ウィンドウの外部へのポインタの移動に応答して、一時ウィンドウの外部へのポインタの移動の前にユーザ入力で選択された特定の一時ウィンドウ以外の、ドラッグ操作中にオープンした一時ウィンドウをドラッグ操作の終了後にクローズする論理機構を含む装置。
【請求項１１】
表示装置と、ユーザが表示装置上でポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、オブジェクトを検索するための装置であって、
コンピュータに結合され、入力信号を受け取ってドラッグ操作を指示する入力機構であって、前記ドラッグ操作がオブジェクトをポインタと関連付けることを含む入力機構と、
コンピュータに結合され、他のオブジェクトを収容することができるオブジェクトを有するエンクロージャを含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいる、ウィンドウ・オープン論理機構と、
ウィンドウのうちの１つの内に表示され、記憶システム階層内のフォルダを表す特定のエンクロージャと、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上のポインタのドラッグ操作中にドラッグに応答して、特定のエンクロージャの一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を一時ウィンドウ内に表示する一時ウィンドウ・オープン論理機構機構とを備えた装置。
【請求項１２】
表示装置と、ユーザが表示装置上でポインタをドラッグするために使用するポインティング・デバイスとを備えたコンピュータにおいて、オブジェクトを検索するための装置であって、
コンピュータに結合され、入力信号を受け取ってドラッグ操作を指示する入力機構であって、前記ドラッグ操作がオブジェクトをポインタと関連付けることを含む入力機構と、
コンピュータに結合され、他のオブジェクトを収容することができるオブジェクトを有するエンクロージャを含む複数のオブジェクトを記憶する記憶装置と、
表示装置に結合され、オープンしたエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ・オープン論理機構であって、そのオープンしたエンクロージャがオープンしたエンクロージャに収容されたオブジェクトに対応する識別記号をウィンドウ内に含んでいる、ウィンドウ・オープン論理機構と、
表示装置とポインティング・デバイスとに結合され、特定のエンクロージャに対応する識別記号上のポインタのドラッグ操作中にドラッグに応答して、特定のエンクロージャの一時ウィンドウをオープンし、特定のエンクロージャに収容されたオブジェクトに対応する識別記号を一時ウィンドウ内に表示する一時ウィンドウ・オープン論理機構機構と、
表示装置に結合され、ドラッグ操作完了時に、事前ドラッグ位置からのドラッグ操作の対象であるオブジェクトに対応する識別記号を削除し、一時ウィンドウが識別記号の事前ドラッグ位置に対応するウィンドウと同じ記憶装置の部分上に常駐する場合に、識別記号を事後ドラッグ位置に配置するウィンドウ管理論理機構とを備えた装置。
【発明の詳細な説明】
発明の背景
発明の分野
本発明は、ウィンドウ方式のシステムなどのグラフィカル・ユーザ・インタフェースを備えたコンピュータ・システムに関し、具体的には、前記システムでオブジェクトの検索、移動、および複写を行う技法に係る。
関連技術の説明
コンピュータ・システムでのグラフィカル・ユーザ・インタフェースの使用が広く普及しつつある。代表的なシステムとしては、米国カリフォルニア州カッパチーノのアップル・コンピュータ社が提供するマッキントッシュ・コンピュータでのマッキントッシュＦｉｎｄｅｒTM環境、米国ワシントン州レドモンドのマイクロソフト・コーポレイションが提供するＷｉｎｄｏｗｓ環境、米国カリフォルニア州パロアルトのヒューレット・パッカードが提供するＮｅｗ  ＷａｖｅTM環境などがある。このようなシステムでは、表示システム上の作業領域がデスクトップのメタファを用いてセット・アップされる。デスクトップ内には、メモリに記憶されているオブジェクトに対応するアイコンが表示される。多くのアイコンによって、他のオブジェクトを収容するエンクロージャを表している。エンクロージャをオープンすると、関連するアイコンが収容されたウィンドウが表示される。
このようなシステムは、１つのウィンドウ内にあるアイコンで表されたエンクロージャからオブジェクトを、別のウィンドウまたはアイコンで表されたエンクロージャに移動したり、１つのウィンドウ内にあるアイコンで表されたオブジェクトを別のウィンドウまたはアイコンで表されたエンクロージャに複写したりする機能を備えている。これらの操作には、まず、宛先ウィンドウをセット・アップすることが必要である。システムがエンクロージャの複雑な階層を含む場合、宛先ウィンドウのセット・アップの問題はきわめて複雑になることがある。さらに、宛先ウィンドウをセット・アップするプロセスによって、デスクトップが多くのウィンドウで雑然とふさがれ、実際に使用しているウィンドウがわからなくなることがある。
宛先ウィンドウをセット・アップした後、移動操作または複写操作によって宛先ウィンドウに入れるオブジェクトを表すアイコンにカーソルを移動する。次にドラッグ操作を行って、そのアイコンを宛先ウィンドウ内に移動する。ドラッグ操作には通常、ドラッグ操作の対象となるアイコンの上にカーソルを重ね、マウス・ボタンを押し、マウス・ボタンを押したままカーソルを宛先ウィンドウ内まで移動する操作が必要である。カーソルが宛先ウィンドウの上に重なったらマウス・ボタンを離す。オペレーティング・システムは、グラフィカル・インタフェースのこの操作に対して、オブジェクトと宛先の両方が同じディスクに記憶されている場合にはオブジェクトを宛先ウィンドウに移動し、宛先がオブジェクトとは別のディスクにある場合はオブジェクトを宛先ウィンドウに複写することによって応答する。
最後に、ドラッグ操作の後、ユーザは宛先ウィンドウをセット・アップするプロセス中にオープンした不要なウィンドウをクローズして、デスクトップを片づけなければならない。
想像がつくように、宛先ウィンドウが階層内の深い位置にある場合、このプロセスはきわめて煩わしい。また、宛先ウィンドウのセット・アップの問題によって、ドラッグ操作の開始が面倒になる。ドラッグ操作を開始した後で記憶システムの階層を通覧できることが望ましい。
発明の概要
本発明は、ユーザがオブジェクトをドラッグしながら収容ウィンドウをオープンおよびクローズすることができるようにする、グラフィカル・ユーザ・インタフェースにおける新しい動作を提供する。ユーザが、クローズしたエンクロージャを表す識別記号の上のホット・スポット上で休止、動作、または移動を行うと、クローズしたエンクロージャの一時的なウィンドウが「スプリング・オープン」し、ユーザはエンクロージャの内部を通覧することができ、スプリング・オープンしたウィンドウ内に入っている別のエンクロージャをオープンすることもできる。このプロセスは、ユーザがドラッグ操作の宛先を捜して通覧しながら、深いウィンドウ階層全体を通して行うことができる。
ユーザは、特定の設計の必要に応じて、スプリング・オープンしたウィンドウからカーソルを移動させるか、ポインティング・デバイスで他の何らかの指示を行うだけで、スプリング・オープンしたウィンドウをクローズすることができる。
さらに、スプリング・オープンするエンクロージャが前にデスクトップ上にオープンしていた場合、前にオープンしていたウィンドウは現行カーソル位置上にズームすることができ、ユーザがそのウィンドウからカーソルを移動させると元の位置に戻ることができる。
したがって、本発明は、表示装置、記憶装置、およびユーザが表示装置上でポインタ（カーソル）をドラッグするために使用するポインティング・デバイスを備えたコンピュータ・システムにおけるエンクロージャを、検索したり通覧したりする装置として特徴づけることができる。この装置は、エンクロージャを含む複数のオブジェクトを記憶装置に記憶する記憶システムを備えている。エンクロージャは、他のオブジェクトを収容することができ、オープンしたときウィンドウによってデスクトップ上に表示されるオブジェクトを含んでいる。システムは、オープンしているエンクロージャに対応するウィンドウを表示装置上に描画するウィンドウ管理ソフトウェアを備えている。また、マウス・ボタンを有するマウス、またはその他の入力装置も備えており、それによってドラッグ操作を指示する信号を供給する。スプリング式のエンクロージャは、特定のエンクロージャに対応する識別記号（テキストまたはグラフィック）の上でポインタをドラッグ操作する間、ドラッグに対して応答して特定のエンクロージャの一時ウィンドウをオープンし、一時ウィンドウ内にその特定のエンクロージャに収容されているオブジェクトに対応するアイコンを表示する、ソフトウェアによって管理される。さらに、スプリング式のエンクロージャ管理ソフトウェアは、一時ウィンドウの外部でのポインタのドラッグ操作中に、ドラッグに応答して一時ウィンドウをクローズする。
ユーザは、マウス・ボタンを離すかその他の方法によってドラッグ動作の終了を示すことによって、ドラッグ時にスプリング・オープンしていた特定のエンクロージャ内にドラッグの対象となる特定のオブジェクトを入れるように、ソフトウェアに指示する。
さらに、スプリング式エンクロージャ管理ソフトウェアは、一時ウィンドウをオープンするドラッグ操作中に特定のエンクロージャのためにオープンした既存のウィンドウが表示画面に含まれているかどうかを判断し、含まれている場合には、既存のウィンドウを表示画面から除去し、表示画面上にカーソルを中心として、または特定のエンクロージャに対応する識別記号の位置に関連するその他の方法で、一時ウィンドウを描画する。また、１つの態様では、本発明は表示画面上で既存のウィンドウのズームを一時ウィンドウの位置の上にグラフィックで表示することもできる。一時ウィンドウがクローズされると、既存のウィンドウを表示画面上の元の位置に再描画することができる。
ドラッグ操作中に一時ウィンドウをオープンする決定は、特定のエンクロージャの識別記号上での休止またはその他の何らかの動作など、ユーザによるポインティング・デバイスの操作に基づいて行うことができる。たとえば、オープンすることができるエンクロージャの識別記号にホット領域または一時ウィンドウ領域を組み込むこともできる。カーソルを識別記号の一時ウィンドウ領域上に移動すると、エンクロージャがスプリング・オープンする。あるいは、カーソルをエンクロージャの識別記号の上に移動すると、分割選択図形が表示されるようにすることもできる。分割選択図形の特定の側にカーソルを移動すると、エンクロージャがスプリング・オープンし、分割選択図形の他方の側に移動すると、分割選択図形が画面から除去される。
したがって、本発明のスプリング式エンクロージャ機構を使用すると、グラフィカル・ユーザ・インタフェースのユーザはドラッグしながらエンクロージャを自由に通覧することができ、ドラッグを開始する前にドラッグ元とドラッグ先をセット・アップしなくても済む。これによって、グラフィカル・ユーザ・インタフェースの使いやすさが格段に向上する。
本発明のその他の態様および利点は、以下の図面、詳細な説明、および請求の範囲を参照すると明らかになる。
【図面の簡単な説明】
第１図は、本発明のスプリング式エンクロージャ管理を実施するコンピュータ・システムの概要図である。
第２Ａ図ないし第２Ｆ図は、本発明に従ったスプリング式エンクロージャによるドラッグ操作を示す図である。
第３Ａ図ないし第３Ｅ図は、本発明に従ったスプリング式エンクロージャを使用する他のドラッグ・シーケンスの図である。
第４図は、本発明に従ったユーザ・インタフェース制御システムの機能構成要素のブロック図である。
第５図は、第４図のシステムが用いるデータ構造の概要図である。
第６図ないし第１３図は、第４図のシステムの動作のフロー・チャートである。
第１４Ａ図および第１４Ｂ図は、スプリング式エンクロージャをオープンすることを指示する代替技法を示す図である。
第１５Ａ図および第１５Ｂ図は、スプリング式エンクロージャをオープンすることを指示する他の代替技法を示す図である。
好ましい実施形態の説明
本発明の好ましい実施例について、図面を参照しながら詳細に説明する。第１図にシステムの概要を示す。第２Ａ図ないし第２Ｄ図および第３Ａ図ないし第３Ｅ図には、スプリング式エンクロージャを使用するグラフィカル・ユーザ・インタフェースの動作を示す。第４図ないし第１３図には、本発明を実行するシステムのための制御ソフトウェアの実施態様を示す。第１４Ａ図ないし第１４Ｂ図および第１５Ａ図ないし第１５Ｂ図には、スプリング式エンクロージャをオープンするための代替方法を示す。
Ｉ．システムの概要（第１図、第２Ａ図ないし第２Ｆ図および第３Ａ図ないし第３Ｅ図）
第１図に、本発明のスプリング式エンクロージャ機構を実施するコンピュータ・システムを示す。このコンピュータ・システムは、システム・バス１１に接続されたホストＣＰＵ  １０を備えている。システムは、キーボード１２、マウス・ボタンを有するマウス１３、またはその他のポインティング・デバイス、およびハード・ディスク、フロッピィ・ディスク、不揮発性集積回路記憶システムまたは同様の記憶装置などの不揮発性記憶装置１４を備えている。同様に、命令記憶装置１５と作業用記憶装置１６もバス１１に結合されている。命令記憶装置１５には、スプリング式エンクロージャ管理ソフトウェアとウィンドウ管理ソフトウェアが、システムの動作に必要なその他のソフトウェアとともに記憶されている。作業用記憶装置１６は、スプリング・オープンしたエンクロージャのリストと、命令記憶装置１５内のソフトウェアが必要とするウィンドウ・リストまたはその他のテーブルを保持するために使用される。
最後に、システムはビデオ記憶装置を有する表示制御装置１７を備えている。表示制御装置１７は、ＣＲＴビデオ・モニタ、ＬＣＤフラット・パネル・ディスプレイ、または同様の表示装置などの表示装置１８を駆動する。表示システム１８は通例、画面１９を有する。画面１９には、作業領域２０が表示される。作業領域２０は、マッキントッシュ・タイプのシステムではデスクトップのメタファで実現される。デスクトップ２０内には、ハード・ディスク・ドライブを表す識別記号２１、フロッピィ・ディスクを表す識別記号２２、およびファイル、アプリケーション、コントロール・パネル、または他のオブジェクトを収容するエンクロージャを表す、図示されていないその他の識別記号など、複数の識別記号を表示することができる。デスクトップ２０上では、ウィンドウ２３、２４、２５などの複数のウィンドウをオープンすることもできる。ウィンドウ２３、２４、および２５には、ウィンドウ２３内の識別記号２６および２７、ウィンドウ２４内の識別記号２８、２９、および３０、およびウィンドウ２５内の識別記号３１など、識別記号が収容されている。
図では、識別記号はグラフィカル要素、すなわちアイコンとして示してある。他の識別記号として、対応するオブジェクトの名前などのテキスト要素を使用することもできる。本明細書で述べる動作は、マッキントッシュ・コンピュータで名前表示モードまたはアイコン表示モードでオープンしたウィンドウの場合のように、テキスト要素とグラフィカル要素の両方に適用可能である。
第１図では、デスクトップ２０は画面１９よりも若干小さい。他のシステムでは、デスクトップのメタファを画面１９の全面に拡大することもできる。
システムの命令記憶装置１５に入っているスプリング式エンクロージャ管理ソフトウェアとウィンドウ管理ソフトウェアを使用して、ウィンドウの開閉を行い、オープンしたウィンドウとクローズしたウィンドウ、ウィンドウ内またはデスクトップ２０上のアイコンの位置などに関する記録を維持する。ドラッグ操作中、命令記憶装置１５内のスプリング式エンクロージャ管理ソフトウェアを動作させて一時ウィンドウを作成することができ、それによってユーザは前述のようにドラッグ操作中に通覧することができる。
スプリング式エンクロージャの操作の例を、第２Ａ図ないし第２Ｆ図および第３Ａ図ないし第３Ｅ図を参照しながら示す。これらの図面では、理解しやすいように、第１図の同じウィンドウ２３、２４、および２５を基礎として使用している。説明する各例では、ウィンドウ２４内の「星形」識別記号３０がドラッグ操作の対象となる特定のオブジェクトである。
第２Ａ図ないし第２Ｆ図には、スプリング式エンクロージャを使用した基本ドラッグ操作が図示されている。第２Ａ図では、カーソル５０をアイコン３０の上に移動し、マウス・ボタンを押し、マウス・ボタンを押したままカーソルを経路５１を通ってドラッグすることによって、ウィンドウ２４内の識別記号３０がドラッグ操作のために選択される。ユーザは識別記号の上でカーソルを休止させて、カーソル上、したがって識別記号２７上をほぼ中心として、第２Ｂ図に図示する一時ウィンドウ５２をオープンする。一時ウィンドウ５２は正確にカーソル２７を中心としてオープンするには少し大きすぎるため、カーソルを中心とする好ましい場所に可能な限り近い、デスクトップ領域内に描画し直される。ドラッグ操作中、カーソルは星形識別記号３０の変更形状５３（たとえば輪郭線）をとり、一時ウィンドウ５２内に表示される。ドラッグ操作は、一時ウィンドウ５２内で経路５４を通って識別記号５５上まで続けられる。識別記号５５上で休止することによって、第２Ｃ図に示すような一時ウィンドウ５６が識別記号５５上を中心としてオープンする。識別記号の変更形状５３とカーソルは、このとき一時ウィンドウ５６内にある。ユーザは次に、マウス・ボタンを離してドラッグ操作をポイント５７で完了する。この結果、第２Ｄ図に図示するように識別記号３０が一時ウィンドウ５６内に入れられる。また、ウィンドウ５２は宛先ではないため、マウス・ボタンを離すと同時にクローズする。一時ウィンドウ５６が一時ウィンドウ２４と同じディスクに入っている場合、識別記号３０はウィンドウ２４から除去される。同じディスクに入っていない場合、アイコン３０が複写され、両方のエンクロージャ内に残ることになる。
第２Ｄ図に図示するように、一時ウィンドウ５６は、表示画面上で平常のウィンドウとなる。これは、ウィンドウ５６最上部を横切るハッチングが除去されていることで示されている。実施形態では、一時ウィンドウを他のウィンドウと同様に表示することも、何らかの方法で一時ウィンドウとして標識を付けることもできる。また、ドラッグ操作の終了時、宛先ウィンドウ以外の一時ウィンドウはすべて、表示画面から除去される。したがって、第２Ｄ図に示すように、一時ウィンドウ５２はもはやデスクトップ内に表示されていない。
第２Ｅ図および第２Ｆ図には、代替動作が図示されている。この態様では、ウィンドウ５２などの一時ウィンドウがドラッグ動作の終了後に自動的にはクローズせず、ウィンドウ５６内に星形アイコン３０を残す。一時ウィンドウは、ドラッグ操作の終了後に特定の一時ウィンドウの外部でのポインタの移動に応答してクローズする。したがって、第２Ｅ図に示すように、ドラッグの終了後にユーザが一時ウィンドウ５６の外部で経路５８を通ってカーソルを移動させると、一時ウィンドウ５６は画面から除去される。カーソルが一時ウィンドウ５２内に残っているため、一時ウィンドウ５２は第２Ｆ図に示すように画面上に残る。この後でユーザがカーソルを一時ウィンドウ５２の外部で経路５９を通って移動させると、一時ウィンドウ５２は除去され、画面は星型アイコン３０が移動している以外は、第２Ａ図の構成に戻る。この形態に従うと、ユーザはカーソルを一時ウィンドウに置いたままマウス・ボタンをクリックすることによって、一時ウィンドウを残しておくこともできる。したがって、第２Ｄ図でドラッグ操作の完了後に、ユーザがマウスをクリックしてウィンドウ５６を永続ウィンドウとして選択し、次に経路５９のようにマウスをウィンドウ５６から移動したとすれば、画面は第２Ｄ図の構成のままになっていることになる。あるいは、ユーザは、カーソルが第２Ｆ図のように配置されているときにウィンドウ５２内でクリックすることによって、ウィンドウ５２を永続ウィンドウとして残しておくこともできる。
第３Ａ図には、本発明のスプリング式エンクロージャ方式を使用した別法のシーケンスの開始が図示してある。第３Ａ図は第２Ｃ図とほとんど一致している。しかしこの事例では、ユーザは一時ウィンドウ５６の境界線を横切って一時ウィンドウ５２内に戻る経路６０に従ってドラッグ操作を実行する。一時ウィンドウ５６の境界線を横切ると、第３Ｂ図に示すように一時ウィンドウ５６は画面から除去され、一時ウィンドウ５２内に識別記号の変更形状５３とカーソルが入れられる。ユーザが経路６０ではなく経路７５を通ってカーソルを移動させたとすれば、一時ウィンドウ５６はクローズするが、一時ウィンドウ５２はオープンしたままになる。ユーザは、カーソルを一時ウィンドウ５２に戻し、経路７６で示すように再び外に移動させることによって、一時ウィンドウ５２をクローズすることができる。
第３Ｂ図に示すように、ユーザは経路６１を通って識別記号６２までドラッグすることによって、通覧を続ける。識別記号６２上で休止すると、第３Ｃ図に示すように識別記号６２を中心として一時ウィンドウ６３がオープンする。また、一時ウィンドウ６３には、識別記号の変形形状５３とカーソルが入っている。
第３Ｃ図には、一時ウィンドウが６３が、ドラッグ操作を開始する前にすでにデスクトップ上に存在していたウィンドウ、たとえばウィンドウ２５に対応している場合にはどうなるかということが示してある。その場合、ウィンドウ２５は画面から除去される。また、矢印６４および６５によって示されているズーム操作が画面上にグラフィックで描画され、ウィンドウ２５が一時ウィンドウ６３まで移動することがユーザに示される。このズーム操作は、第３Ａ図ないし第３Ｅ図のストーリーボードで図示するのが困難な多様なグラフィック上の特徴をとることができる。しかし、当業者には、この動作がどのように行われるか明らかであろう。
第３Ｃ図で、ドラッグ操作は経路６６を通ってポイント６７まで続けられ、マウス・ボタンを離してドラッグ動作の終了が指示される。第３Ｄ図に、別の１つの結果を示す。この事例では、識別記号が一時ウィンドウ６３内に移動し、一時ウィンドウはウィンドウ２５の元の位置に戻されている。ウィンドウ２５には識別記号３０が入っており、画面上に残っている。ウィンドウ２５と２４は同じディスクに入っているため、識別記号３０はウィンドウ２４から除去されている。あるいは、ユーザは一時ウィンドウ６３を永続ウィンドウとして残しておくこともできる。これを第３Ｅ図に示す。ドラッグ操作後、識別記号３０は一時ウィンドウ６３内に残っている。カーソル５０は平常の形状に戻る。ユーザは、この一時ウィンドウをクローズすることもでき、その場合は実ウィンドウの位置は元のまま変化しない。エンクロージャを再びオープンすると、ウィンドウは元の場所に配置される。ユーザが、一時ウィンドウをクローズせずに、一時ウィンドウを移動またはサイズ変更してからクローズした場合、後でそのウィンドウを再びオープンするとその新しい位置とサイズで配置されることになる。
第２Ａないし第２Ｄ図および第３Ａ図ないし第３Ｅ図では、ウィンドウの最上部を横切るバーにハッチングを掛けることによって一時ウィンドウを示す。好ましいシステムでは、これらの一時ウィンドウを半透明に描画することも、特定の実施形態の必要に応じたその他の効果を使用することもできる。上記のように、一時ウィンドウを平常ウィンドウと異なる方式で示す何らかの手段を、デスクトップ内に設けることができる。
II．インタフェース管理論理の実施形態（第４図ないし第１３図）
第１図を参照して述べたように、本発明に従ったスプリング式エンクロージャ機構を実施するコンピュータ・システムは制御ソフトウェアを備えている。第４図および第５図に、本発明に従ったスプリング式エンクロージャを管理するソフトウェアの概念体系を示す。
第４図に示すように、このシステムは表示装置上のデスクトップ領域内のカーソルの現行位置に関する情報を維持するカーソル位置論理１００を備えている。また、ドラッグ論理１０１が、ドラッグ操作の実行を指示するマウス・ボタンやマウスの動きなどのマウス操作を監視する。マウス以外のポインティング・デバイスを使用し、様々なユーザ操作によってドラッグ操作を示すこともできることは明らかである。
システムは、スプリング式エンクロージャ管理ルーチン内に、特定の識別記号上でのカーソルの休止を検出するタイマ論理１０２も備えている。タイマ１０２は他の目的にも使用することができる。
制御ソフトウェアには、スプリング式エンクロージャ管理論理１０３も含まれている。この管理論理は、「スプラング・スタック」と呼ぶ一時ウィンドウのリストと、スプラング・スタック内の最上位一時ウィンドウの標識とを維持する。スプラング・スタックは、一時ウィンドウの状態を識別するレコードを指す１組のポインタから成る。これらのレコードをスプラング・レコードと呼ぶ。
さらにシステムは、ウィンドウを管理するために当業者に周知の様々な機能を実行するウィンドウ管理論理１０４を備えている。このウィンドウ管理論理は、ポインタ操作に応答してデスクトップ上のウィンドウの開閉を行い、デスクトップ「ウィンドウ・リスト」を維持するシステムを含んでいる。デスクトップ・ウィンドウ・リストは、デスクトップ上にオープンしているウィンドウ、それらのウィンドウのデスクトップ上の位置、および、場所、ウィンドウのタイプ、ウィンドウに収容されているアイコンがあればそのアイコンに関する情報などウィンドウのその他の特性のリストを含んでいる。さらに、このリスト内のエンクロージャ・ウィンドウは、ウィンドウ内の識別記号によって表されるエンクロージャに関する情報と、必要なその他の情報が入ったウィンドウ・レコードを指す。
ウィンドウ管理論理１０４は、ドラッグ論理１０１と協調して、現在カーソルが置かれているウィンドウを示す「現行ウィンドウ」と呼ぶパラメタを維持する。また、ウィンドウ管理論理１０４は、たとえばカーソルをウィンドウ内部からウィンドウ外部に移動した場合にカーソルが置かれていた最後のウィンドウを示す、「最後のウィンドウ」と呼ぶパラメータも維持する。最後に、ウィンドウ管理論理は、カーソルが現在置かれている識別記号を示す「現行エンクロージャ」と呼ぶレコードを意味する。
制御ソフトウェアの最後の構成要素は、引出し管理論理１０５と呼ばれる。引出し管理論理は、画面上でデスクの引出しのメタファで維持されているウィンドウを管理する。具体的には、このウィンドウはデスクトップの周縁に沿って配置されている。これらのウィンドウは、デスクトップ表示画面の限界線に引出しの識別記号だけを残して、デスクトップからスライドさせて消すことができる。ユーザが行ったカーソル操作に応答して引出しウィンドウがオープンすると、ウィンドウは画面上にスライドし、その下にウィンドウがある場合はそのウィンドウを覆い隠す。ユーザがこのウィンドウを処理し終わったら、画面からスライドさせて戻し、下にあるウィンドウを出現させることができる。引出し管理論理１０５は、その範囲内でカーソル移動を行うと引出しがオープンする、デスクトップの限界線からの距離を示す「しきい値」パラメタと、現在カーソルが置かれている引出しを示す「現行引出し」パラメタとを維持する。
引出し管理論理については、トーマスＪ．コンラッドおよびエリザベス・モラーによって発明された、出願人の同時係属のＣＯＭＰＵＴＥＲ  ＳＹＳＴＥＭ  ＷＩＴＨ  ＧＲＡＰＨＩＣＡＬ  ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥ  ＩＮＣＬＵＤＩＮＧ  ＤＲＡＷＥＲ−ＬＩＫＥ  ＷＩＮＤＯＷＳという名称の米国特許出願で詳述されている。
第５図に、スプリング式エンクロージャ管理論理１０３およびウィンドウ管理論理１０４によって維持される基本データ・レコードを示す。具体的には、ウィンドウ管理論理１０４は、デスクトップ・ウィンドウ・リスト１１０を維持する。これには、デスクトップの項目が、デスクトップ内の識別記号のリストを指す１組のポインタとともに含まれている。また、図のように、デスクトップ内でウィンドウとしてオープンしている各エンクロージャもこのリストに追加される。したがって、このリストには、ウィンドウ１、ウィンドウ２、ウィンドウ３などが含まれている。各ウィンドウ、たとえばウィンドウ１には、識別記号のレコード、たとえばレコード１１１を指すアイコン・ポインタが関連づけられている。ウィンドウ１内の各識別記号は、リスト１１１内で維持される。したがって、識別記号１は、エンクロージャのタイプ、エンクロージャがデスクトップ上でオープンされたかどうか、識別記号のデスクトップ上の場所、識別記号によって表されるオブジェクトの記憶装置内の場所などを示すエンクロージャ・レコード１１２を指すポインタを備えている。識別記号がデスクトップ上でオープンしている場合、その場所に関する情報がウィンドウ・リスト１１０に入れられる。
スプリング式エンクロージャ管理論理１０３は、スプラング・スタック１１３を維持する。これには、本発明に従ってドラッグ操作中にオープンしたウィンドウＸ、ウィンドウＹなどの一時ウィンドウのリストが入っている。スプラング・スタック内の各項目は、スプラング・レコード１１４を指す。スプラング・レコードは、ウィンドウが前にデスクトップ上でオープンしていたかどうか、オープンしていた場合はその場所、一時ウィンドウのデスクトップ上の場所、一時ウィンドウの識別記号のリスト（たとえば１１１）を指すポインタなど、一時ウィンドウに関する情報を維持する。
第６図ないし第１３図を参照しながら、スプリング式エンクロージャ管理を実行するための機能フロー・チャートを示す。そのうちの第６図はメイン・ループである。第６図に示すメイン・ループは、マウス・ボタンを監視するブロック６００から始まる。マウス・ボタンが押されていない場合、このアルゴリズムはブロック６００でループする。マウス・ボタンが押されている場合、アルゴリズムは、引出し内でのマウス・ボタンのクリックを扱う「引出し収納」ルーチンを通る。これは、ブロック６０１で表されており、詳細は第１２図に図示されている。引出し収納ルーチン６０１の後、アルゴリズムはカーソルがオブジェクトの上にあるかどうかを調べる検査を行う（ブロック６０２）。カーソルがオブジェクトの上にない場合、アルゴリズムは他のクリックとカーソル操作を扱い（ブロック６０３）、ブロック６００にループする。ブロック６０２でカーソルがオブジェクトの上にある場合、アルゴリズムはマウス・ボタンを監視する（ブロック６０４）。マウス・ボタンが押されたままでない場合、ブロック６０５に示すように「オブジェクト選択」ルーチンが実行され、アルゴリズムはブロック６００にループする。オブジェクト選択ルーチン６０５の結果として、アプリケーション・ウィンドウをオープンするなど、当技術分野で周知の様々な動作を行うことができる。
ブロック６０４でマウス・ボタンが押されたままの場合、ドラッグ操作が指示される。その場合、このルーチンはオブジェクトの灰色の輪郭線（前述の「変更形状」）を作成し、その灰色の輪郭線をカーソルに付ける。また、「最後のウィンドウ」パラメタが「現行ウィンドウ」パラメタの値に等しく設定される（ブロック６０６）。
ブロック６０６の後、マウス・ボタンが監視される（ブロック６０７）。マウス・ボタンが離された場合、アルゴリズムはブロック６０８で表されている「ドラッグ終了」ルーチンに分岐する。これは、第１３図に詳細に示されている。マウス・ボタンが押されたままの場合、アルゴリズムは、ブロック６０９で表され第７図に図示されている「ウィンドウ上ドラッグ」ルーチンを通って進む。ブロック６０９の「ウィンドウ上ドラッグ」ルーチンの後、アルゴリズムはブロック６０７に戻り、ドラッグ操作を監視する。
第７図に、第６図のブロック６０９によって表されている「ウィンドウ上ドラッグ」ルーチンを示す。「ウィンドウ上ドラッグ」ルーチンはブロック６０７から開始される。まず、「現行ウィンドウ」パラメタが「最後のウィンドウ」パラメタと等しいかどうかが検査される（ブロック７００）。等しくない場合、最後のウィンドウの境界線が越えられており、アルゴリズムは、ブロック７０１で示し第１０図に詳細を図示する「ウィンドウ終わりドラッグ」ルーチンに分岐する。「現行ウィンドウ」が「最後のウィンドウ」と等しいままの場合（カーソルがウィンドウの境界内に残っている場合）、アルゴリズムは、ブロック７０２で示し第８図に詳細を図示する「ウィンドウ内」ルーチンに分岐する。ブロック７０１の「ウィンドウ終わりドラッグ」ルーチンおよびブロック７０２の「ウィンドウ内」ルーチンから、アルゴリズムはブロック７０３に進み、「最後のウィンドウ」が再度「現行ウィンドウ」に設定される。次に、アルゴリズムは「現行ウィンドウ」が引出しであるかどうかを検査する（ブロック７０４）。引出しでない場合、ルーチンは第６図のブロック６０７に戻る。「現行ウィンドウ」が引出しの場合、アルゴリズムは「現行引出し」が「現行ウィンドウ」と等しいかどうかを検査する（ブロック７０５）。等しくない場合、カーソルは「現行引出し」から移動しており、「現行引出し」がクローズされる（ブロック７０６）。ブロック７０７で「現行引出し」パラメタが「現行ウィンドウ」に設定され、アルゴリズムは第６図のブロック６０７にループする。ブロック７０５で、「現行ウィンドウ」が引出しでない場合、アルゴリズムは第６図のブロック６０７に戻る。
第８図に、第７図のブロック７０２で示されている「ウィンドウ内」ルーチンを示す。「ウィンドウ内」ルーチンには、第７図のブロック７００から入る。まず、アルゴリズムは「現行ウィンドウ」が「現行引出し」と等しいかどうかを検査する（ブロック８００）。「現行引出し」である場合、ブロック８０１で示し第１１図に詳細を図示する「引出し内」ルーチンが実行される。ブロック８００で「現行ウィンドウ」が「現行引出し」と等しくない場合と、ブロック８０１の「引出し内」ルーチンの出力から、アルゴリズムはブロック８０２に分岐し、カーソルがエンクロージャ・アイコン上にあるかどうかを判断する。カーソルがエンクロージャ・アイコン上にない場合、アルゴリズムは第７図のブロック７０３に戻る。エンクロージャ・アイコン上にある場合は、アルゴリズムはブロック８０３に分岐し、タイマがゼロに設定され、「最後のエンクロージャ」パラメタが「現行エンクロージャ」と等しく設定される。次に、アルゴリズムはブロック８０４で「最後のエンクロージャ」が「現行エンクロージャ」と等しいままかどうか検査して、カーソルが「現行エンクロージャ」上に置かれたままであるかどうか監視する。「現行エンクロージャ」上に残っていない場合、タイマが検査される（ブロック８０５）。タイマがゼロの場合、アルゴリズムは第７図のブロック７０３に分岐する。タイマがゼロでない場合、まずブロック８０６でタイマがゼロにリセットされ、次に第７図のブロック７０３に戻る。
ブロック８０４でカーソルが「現行エンクロージャ」上に置かれたままの場合、アルゴリズムはブロック８０７でタイマがゼロかどうかを検査する。タイマがゼロでない場合、アルゴリズムはブロック８０８でタイマが時間切れになっているかどうか検査する。時間切れになっている場合、ブロック８０９に示し第９図に詳細を図示する「ウィンドウ・スプリング・オープン」ルーチンが実行される。ブロック８０９の「ウィンドウ・スプリング・オープン」ルーチンの後、アルゴリズムは第７図のブロック７０３に戻る。
ブロック８０７でタイマがゼロだった場合、タイマが開始され（ブロック８１０）、アルゴリズムはブロック８０４にループして、タイマが時間切れになるまでカーソルがエンクロージャ上に置かれたままになっているかどうか監視を開始する。
第９図に、第８図のブロック８０９に対応する「ウィンドウ・スプリング・オープン」ルーチンを示す。このアルゴリズムには第８図のブロック８０８から入る。最初のステップは、スプリング・オープンする特定のウィンドウの「スプラング・レコード」を作成することである（ブロック９００）。次に、アルゴリズムはスプリング・オープンするウィンドウがすでにデスクトップ上にオープンしているかどうかを判断する（ブロック９０１）。すでにオープンしている場合、既存のウィンドウのサイズと位置が「スプラング・レコード」に保管されている（ブロック９０２）。次に、既存のウィンドウが画面から除去される（ブロック９０３）。既存のウィンドウの除去と組み合わせてズーム操作を実行し、クローズされるウィンドウの新しい位置への移動をグラフィックで示すことができる。
ブロック９０１で、スプリング・オープンするウィンドウがまだオープンしていない場合、またはブロック９０３の後で、アルゴリズムはカーソル位置を中心として一時ウィンドウをオープンする（ブロック９０４）。次に、カーソル位置を中心にした一時ウィンドウを検査して、部分的に画面外に出ていないかどうかを判断する（ブロック９０５）。部分的に画面外に出ている場合は、そのウィンドウを画面上に移動する（ブロック９０６）。ブロック９０６の後、またはブロック９０５でウィンドウが完全に画面上にある場合、アルゴリズムはウィンドウがスプリング・オープン・ルーチンにとって大きすぎないかどうかを検査する（ブロック９０７）。ウィンドウが大きすぎる場合、現在カーソルがあるモニターに収まるようにサイズを変更し、ウィンドウの周辺の空きスペースにピクセルをいくつか残す（ブロック９０８）。
ブロック９０７の後でウィンドウが大き過ぎない場合、またはブロック９０８でサイズを変更した後、アルゴリズムはブロック９０９にループし、ウィンドウ参照（一時ウィンドウの記述）をスプラング・レコードに記憶する。次に、スプラング・レコードをスプラング・スタックに押し込む（ブロック９１０）。ブロック９１０の後、アルゴリズムは第７図のブロック７０３に戻る。
第１０図に、第７図のブロック７０１で示されている「ウィンドウ終わりドラッグ」ルーチンを示す。「ウィンドウ終わりドラッグ」ルーチンには、第７図のブロック７００から入る。最初のステップは、ブロック１００１で「最後のウィンドウ」がオープンした引出しであるかどうかを判断することである。オープンした引出しの場合、その引出しをクローズする（ブロック１００２）。
「最後のウィンドウ」がオープンした引出しでない場合、またはブロック１００２で引出しをクローズした後、アルゴリズムは「最後のウィンドウ」が「スプラング・スタック」内の「最上位ウィンドウ」であるかどうかを検査する（ブロック１００３）。最上位ウィンドウでない場合、アルゴリズムは第７図のブロック７０３または第１３図のブロック１３００に戻る。
ブロック１００３で「最後のウィンドウ」がスプラング・スタック内の「最上位ウィンドウ」である場合、または第１３図のブロック１３０１からこのアルゴリズムに入った場合、「最後のウィンドウ」をスプラング・スタックから飛び出させる（ブロック１００４）。
「スプラング・レコード」が「スプラング・スタック」の最上位から飛び出した後、最上位レコードに対応する一時ウィンドウがクローズされる（ブロック１００５）。次に、アルゴリズムは（スタックから飛び出した）「最上位ウィンドウ」が再度オープンする必要があるかどうかを判断する（ブロック１００６）。これが必要になるは、ドラッグ操作中に一時ウィンドウをオープンする前にウィンドウ最上位ウィンドウがデスクトップ上の別の場所でオープンしていた場合である。その場合、スプラング・レコードで示された場所に最上位ウィンドウを再度オープンし、アルゴリズムはそのサイズを変更すべきかどうかを判断する（ブロック１００７）。サイズ変更の必要がある場合、サイズ変更動作が実行される（ブロック１００８）。「スプラング・スタック」の最上位から飛び出される最上位ウィンドウをサイズ変更する必要がない場合、またはブロック１００８でサイズ変更を行った後、「スプラング・スタック」の新しい最上位ウィンドウをオープンする（ブロック１００９）。ブロック１００９の後、またはブロック１００６からウィンドウを再度オープンする必要がない場合、アルゴリズムは第７図のブロック７０３または第１３図のブロック１３００に戻る。
第１１図に、第８図のブロック８０１に対応する「引出し内」ルーチンを図示する。「引出し内」ルーチンには、第８図のブロック８００から入り、まず、カーソルが引出し管理論理の「しきい値」内にあるかどうかを検査する（ブロック１１００）。しきい値内にない場合、アルゴリズムは第８図のブロック８０２に戻る。しきい値内にある場合、引出しを１段階スライドさせて開ける（ブロック１１０１）。ブロック１１０１の後、アルゴリズムは第８図のブロック８０２に戻る。ユーザは、カーソルをこの位置に置いたままにすることによって、引出しを徐々にスライドさせて開ける。
第１２図に、第６図のブロック６００から入る「引出し収納」ルーチンを示す。まず、ボタンが押されたままになっているかどうかを検査する（ブロック１２００）。押されている場合、アルゴリズムは第６図のブロック６０２に戻る。ボタンが解放されている場合、アルゴリズムは「現行引出し」が「現行ウィンドウ」と等しいかどうかを検査する（ブロック１２０１）。カーソルが「現行ウィンドウ」内に残っている場合、アルゴリズムはオープンした引出しのタイトル・バー内でクリック（ブロック１２００で検出された解放）が行われたかどうかを判断する（ブロック１２０２）。タイトル・バー内でクリックが行われていない場合、アルゴリズムは第６図のブロック６０２に戻る。タイトル・バー内でクリックが行われた場合、またはブロック１２０１で示すように「現行引出し」内で行われなかった場合、「現行引出し」が画面から除去される（ブロック１２０３）。次に、アルゴリズムは「現行ウィンドウ」が引出しであるかどうかを判断する（ブロック１２０４）。引出しでない場合はブロック６０２に戻る。「現行ウィンドウ」が引出しの場合は、引出しを開ける（ブロック１２０５）。これは、引出しが開けられており、もう１つ別の引出しがクリックされたときに起こる。
第１３図に、第６図のブロック６０８に対応する「ドラッグ終了」ルーチンを示す。「ドラッグ終了」ルーチンには、第６図のブロック６０７から入る。アルゴリズムはまず、ブロック１３００で「スプラング・スタック」が空であるかどうかを判断する。空でない場合、ブロック１３０１に示すように「ウィンドウ終わりドラッグ」ルーチンを実行する。ブロック１３０１の「ウィンドウ終わりドラッグ」ルーチンは、第１０図のルーチンのブロック１００４に入る。ブロック１３０１の「ウィンドウ終わりドラッグ」ルーチンの後、アルゴリズムはブロック１３００に戻る。ブロック１３００で「スプラング・スタック」が空になっていた場合、アルゴリズムは第６図のブロック６００に戻る。
III．別法のスプリング・オープン動作（第１４Ａ図〜第１４Ｂ図および第１５Ａ図〜第１５Ｂ図
第１４Ａ図〜第１４Ｂ図および第１５Ａ図〜第１５Ｂ図に、本発明に従ってエンクロージャをスプリング・オープンするために用いる別法のマウス動作を示す。前述の好ましいシステムは、第８図を参照しながら説明したように、オープンするエンクロージャの上でのカーソルの休止に応答してエンクロージャをオープンする。他のポインタ動作に基づいてエンクロージャをオープンする他のシステムを実施することもできる。第１４Ａ図〜第１４Ｂ図および第１５Ａ図〜第１５Ｂ図に２つの例を示す。
第１４Ａ図〜第１４Ｂ図には、エンクロージャ・アイコン１４００とドラッグされたアイコン１４０１が示されている。エンクロージャ・アイコン１４００はホット領域、すなわち一時ウィンドウをオープンする領域１４０２とメイン・ボックス１４０４を備えている。第１４Ｂ図に示すようにホット領域１４０２にカーソルを移動すると、スプリング・オープン・エンクロージャがオープンする。カーソルがホット領域１４０２に入らない場合は処理は何も行われない。メイン・ボックス１４０４上でマウス・ボタンを解放すると、ドラッグされたオブジェクトがエンクロージャに入る。
第１５Ａ図および第１５Ｂ図に、もう一つの別法のシーケンスを示す。このシーケンスでは、ドラッグされるアイコン１５０１がフォルダ上にドラッグされる。これが行われると、分割円シンボルの付いたオープンしたフォルダ・アイコン１５０２のような選択アイコンが表示される。分割円は、第１の側１５０３と第２の側１５０４を有する。第１５Ｂ図に示すようにユーザがカーソルを下方の第２の側１５０４に移動させると、スプリング・オープン・エンクロージャがオープンする。あるいはユーザがカーソルを上方の第１の側１５０３に移動した場合は、他の何らかの動作が行われる。ユーザがカーソルを分割円を通って移動させると、選択アイコンが除去され、元のアイコンが再表示される。前の例と同様に、オープンしたフォルダ上でマウス・ボタンを解放すると、ドラッグされたオブジェクトがフォルダに入る。
当業者には、ドラッグ操作中にエンクロージャをスプリング・オープンしたいことを示す様々な技法があることが明らかであろう。
IV．結論
ユーザが他の何らかのオブジェクトをドラッグしながら、マッキントッシュＦｉｎｄｅｒTM環境のフォルダのようなエンクロージャを開閉することができるようにするグラフィカル・ユーザ・インタフェースの新しい動作が提供される。ユーザがドラッグ中にオブジェクトのホット・スポット上で休止、動作、または移動すると、カーソルの上にそのオブジェクトに対応する一時ウィンドウがオープンする。これによって、ユーザはドラッグ操作中に、エンクロージャの内部を通覧することができ、新たにオープンしたウィンドウ内に入っているエンクロージャの階層をオープンすることもできる。したがって、ユーザはドラッグ操作中に記憶システムの階層全体にアクセスすることができる。スプリング式エンクロージャ機構を使用することによって、ユーザは、ドラッグを開始する前にドラッグ元ウィンドウとドラッグ先ウィンドウをセット・アップしなくても、ドラッグを行いながら自由に通覧することができる。これによって、ウィンドウとアイコンに基づくグラフィカル・ユーザ・インタフェースが備える基本的な複写機能と移動機能が格段に向上する。
本発明の好ましい実施形態に関する以上の説明は、例示と説明のために示した。網羅的に説明することや、本発明を、開示した厳密な形態に限定することを意図したものではない。当業者には多くの変更や様々な変形が明らかであろう。以上の実施形態は、本発明の原理と実際の適用例を最もわかりやすく説明し、それによって当業者が、企図した特定の用途に適した様々な実施形態と様々な変更のために、本発明を理解することができるようにすることを目的として選択し、説明した。本発明の範囲は、以下の請求の範囲およびそれと同等のものによって規定されるものである。
【図１】
0003742428.tif 000002
【図２Ａ】
0003742428.tif 000003
【図２Ｂ】
0003742428.tif 000004
【図２Ｃ】
0003742428.tif 000005
【図２Ｄ】
0003742428.tif 000006
【図２Ｅ】
0003742428.tif 000007
【図２Ｆ】
0003742428.tif 000008
【図３Ａ】
0003742428.tif 000009
【図３Ｂ】
0003742428.tif 000010
【図３Ｃ】
0003742428.tif 000011
【図３Ｄ】
0003742428.tif 000012
【図３Ｅ】
0003742428.tif 000013
【図４】
0003742428.tif 000014
【図５】
0003742428.tif 000015
【図６】
0003742428.tif 000016
【図７】
0003742428.tif 000017
【図８】
0003742428.tif 000018
【図９】
0003742428.tif 000019
【図１０】
0003742428.tif 000020
【図１１】
0003742428.tif 000021
【図１２】
0003742428.tif 000022
【図１３】
0003742428.tif 000023
【図１４Ａ】
0003742428.tif 000024
【図１４Ｂ】
0003742428.tif 000025
【図１５Ａ】
0003742428.tif 000026
【図１５Ｂ】
0003742428.tif 000027