(57)【要約】【課題】複数のウインドウが重なって表示画面に表示されているときに、各ウインドウをユーザにとって操作し易い状態で表示し、ユーザの操作にかかる負担を軽減する。【解決手段】情報処理装置は、オブジェクトに対してドラッグ操作があると、他のウインドウの背面に表示されていた、所定のアプリケーションのウインドウを最前面に表示する。この際、前面に表示されていた、他のウインドウの邪魔にならないように、所定のアプリケーションのウインドウは縮小されたり、表示位置が移動されたりする。【選択図】図４
2010152868.tif 000002
【特許請求の範囲】
【請求項１】
複数のウインドウを表示画面に表示する情報処理装置であって、
第１のウインドウに配置されているオブジェクトに対するドラッグ操作を検知するドラッグ検知手段と、
前記オブジェクトの第２のウインドウへのドロップ操作を検知するドロップ検知手段と、
前記ドラッグ検知手段が前記ドラッグ操作を検知すると、前記第２のウインドウの表示サイズを変更する変更手段と、
前記変更に応えて、前記変更された表示サイズで前記第２のウインドウを前記表示画面の最前面に表示するよう制御する表示制御手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記変更手段は前記第２のウインドウの表示サイズを小さく変更することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記変更手段は更に前記第２のウインドウの前記表示画面における表示位置も変更し、
前記表示制御手段は更に前記変更された表示位置で前記第２のウインドウを表示するよう制御する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ドロップ検知手段が前記ドロップ操作を検知すると、前記変更手段は前記第２のウインドウの表示サイズを元に戻し、前記表示制御手段は前記元の表示サイズで前記第２のウインドウを表示することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１のウインドウ及び前記第２のウインドウは、前記情報処理装置が実行する互いに異なる第１のアプリケーションプログラム及び第２のアプリケーションプログラムの動作に従って表示され、
前記ドラッグ検知手段及び前記ドロップ検知手段は、前記情報処理装置が実行するオペレーティングシステムの動作に従って前記検知を実行し、
前記情報処理装置は、前記検知の結果を前記第２のアプリケーションプログラムに従って利用することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
複数のウインドウを表示画面に表示する情報処理装置であって、
第１のウインドウに配置されているオブジェクトに対するドラッグ操作を検知するドラッグ検知手段と、
前記ドラッグ検知手段が前記ドラッグ操作を検知すると、前記表示画面において前記第１のウインドウの背面に表示されていた第２のウインドウの表示サイズを変更する変更手段と、
前記変更に応えて、前記第２のウインドウを、前記変更された表示サイズで前記第１のウインドウの前面に表示するよう制御する表示制御手段とを備え、
前記第２のウインドウの表示サイズは、前記第１のウインドウの背面に表示されていたときよりも前面に表示されているときの方が小さいことを特徴とする情報処理装置。
【請求項７】
前記オブジェクトの前記第２のウインドウへのドロップ操作を検知するドロップ検知手段を更に備え、
前記ドロップ検知手段が前記ドロップ操作を検知すると、前記変更手段は前記第２のウインドウの表示サイズを元に戻し、前記表示制御手段は前記元の表示サイズで前記第２のウインドウを前記第１のウインドウの背面に表示することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
複数のウインドウを重ねて表示画面に表示する情報処理装置であって、
第１のウインドウに配置されているオブジェクトに対するドラッグ操作を検知するドラッグ検知手段と、
前記オブジェクトの第２のウインドウへのドロップ操作を検知するドロップ検知手段と、
前記ドラッグ検知手段が前記ドラッグ操作を検知すると、前記第１のウインドウと前記第２のウインドウとの重なりの面積が前記ドラッグ検知手段が前記ドラッグ操作を検知する前に比べて小さくなる位置に、前記第１のウインドウ及び前記第２のウインドウを表示するよう制御する表示制御手段と、
を備えたことを特徴とする情報処理装置。
【請求項９】
複数のウインドウを重ねて表示画面に表示する情報処理装置であって、
前記情報処理装置が実行するアプリケーションプログラムに従って作成されたファイルの中にペースト位置を設定する設定手段と、
前記表示画面におけるオブジェクトに対するドラッグ操作を検知する検知手段と、
前記検知手段が前記ドラッグ操作を検知すると、前記設定されたペースト位置の一覧を前記表示画面に表示するよう制御する表示制御手段と、
前記一覧の中からペースト位置を選択する選択手段と、
前記選択されたペースト位置に前記オブジェクトと対応するデータをペーストするペースト手段と、
を備えたことを特徴とする情報処理装置。
【請求項１０】
複数のウインドウを表示画面に表示する情報処理装置の制御方法であって、
ドラッグ検知手段が、第１のウインドウに配置されているオブジェクトに対するドラッグ操作を検知するドラッグ検知工程と、
ドロップ検知手段が、前記オブジェクトの第２のウインドウへのドロップ操作を検知するドロップ検知工程と、
変更手段が、前記ドラッグ検知手段が前記ドラッグ操作を検知すると、前記第２のウインドウの表示サイズを変更する変更工程と、
表示制御手段が、前記変更に応えて、前記変更された表示サイズで前記第２のウインドウを前記表示画面の最前面に表示するよう制御する表示制御工程と、
を備えたことを特徴とする制御方法。
【請求項１１】
複数のウインドウを表示画面に表示する情報処理装置の制御方法であって、
ドラッグ検知手段が、第１のウインドウに配置されているオブジェクトに対するドラッグ操作を検知するドラッグ検知工程と、
変更手段が、前記ドラッグ検知手段が前記ドラッグ操作を検知すると、前記表示画面において前記第１のウインドウの背面に表示されていた第２のウインドウの表示サイズを変更する変更工程と、
表示制御手段が、前記変更に応えて、前記第２のウインドウを、前記変更された表示サイズで前記第１のウインドウの前面に表示するよう制御する表示制御工程とを備え、
前記第２のウインドウの表示サイズは、前記第１のウインドウの背面に表示されていたときよりも前面に表示されているときの方が小さいことを特徴とする制御方法。
【請求項１２】
複数のウインドウを重ねて表示画面に表示する情報処理装置の制御方法であって、
ドラッグ検知手段が、第１のウインドウに配置されているオブジェクトに対するドラッグ操作を検知するドラッグ検知工程と、
ドロップ検知手段が、前記オブジェクトの第２のウインドウへのドロップ操作を検知するドロップ検知工程と、
表示制御手段が、前記ドラッグ検知手段が前記ドラッグ操作を検知すると、前記第１のウインドウと前記第２のウインドウとの重なりの面積が前記ドラッグ検知手段が前記ドラッグ操作を検知する前に比べて小さくなる位置に、前記第１のウインドウ及び前記第２のウインドウを表示するよう制御する表示制御工程と、
を備えたことを特徴とする制御方法。
【請求項１３】
複数のウインドウを重ねて表示画面に表示する情報処理装置の制御方法であって、
設定手段が、前記情報処理装置が実行するアプリケーションプログラムに従って作成されたファイルの中にペースト位置を設定する設定工程と、
検知手段が、前記表示画面におけるオブジェクトに対するドラッグ操作を検知する検知工程と、
表示制御手段が、前記検知手段が前記ドラッグ操作を検知すると、前記設定されたペースト位置の一覧を前記表示画面に表示するよう制御する表示制御工程と、
選択手段が、前記一覧の中からペースト位置を選択する選択工程と、
ペースト手段が、前記選択されたペースト位置に前記オブジェクトと対応するデータをペーストするペースト工程と、
を備えたことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及びその制御方法に関し、特に、複数のウインドウを表示画面に表示する際の各ウインドウの表示を制御するための技術に関する。
【背景技術】
【０００２】
現在、コンピュータ上でマルチウインドウシステムを実現するオペレーティングシステム（ＯＳ）（例えば、Ｗｉｎｄｏｗｓ（登録商標））が普及している。マルチウインドウシステムでは、１つの表示画面に複数のウインドウを表示することが可能である。ここで、表示画面において、第１のウインドウに表示されているオブジェクト（例えば、ファイル）をドラッグ＆ドロップすることにより、第２のウインドウを司るアプリケーションにこのオブジェクトを移動したりコピーしたりすることを考える。この場合、第２のウインドウが第１のウインドウの下に隠れていると、オブジェクトのドロップを受け付けることができない。そこで、ユーザはドラッグ＆ドロップに先立ち、第１のウインドウ内のドラッグ＆ドロップ対象のオブジェクトと第２のウインドウ内のドロップ領域の少なくとも一部とが重ならずに表示されるよう、各ウインドウの位置を調整する必要がある。
【０００３】
また、ドラッグ＆ドロップに伴うユーザの操作負担を軽減するために、画面に表示されたアイコンのドラッグ操作が開始されると、各ウインドウを単に非表示又は表示の状態に切り替えたり、ウインドウをそのまま最前面に表示したりすることが考えられている。例えば、特許文献１及び２を参照のこと。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１８５３０１号公報
【特許文献２】特開２００３−１０８２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、結果として必ずしもユーザが所望するウインドウが操作し易い状態で表示されるとは限らず、ユーザにとって不都合な状態になる場合も多かった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、複数のウインドウが重なって表示画面に表示されているときに、各ウインドウをユーザにとって操作し易い状態で表示し、ユーザの操作にかかる負担を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するために、本発明は、複数のウインドウを表示画面に表示する情報処理装置であって、第１のウインドウに配置されているオブジェクトに対するドラッグ操作を検知するドラッグ検知手段と、前記オブジェクトの第２のウインドウへのドロップ操作を検知するドロップ検知手段と、前記ドラッグ検知手段が前記ドラッグ操作を検知すると、前記第２のウインドウの表示サイズを変更する変更手段と、前記変更に応えて、前記変更された表示サイズで前記第２のウインドウを前記表示画面の最前面に表示するよう制御する表示制御手段と、を備えたことを特徴とする情報処理装置を提供する。
【発明の効果】
【０００８】
本発明によれば、複数のウインドウが重なって表示画面に表示されているときに、各ウインドウをユーザにとって操作し易い状態で表示し、ユーザの操作にかかる負担を軽減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】各実施例に係る情報処理装置（ＰＣ１００）の構成を示すブロック図。
【図２】各実施例に係るＯＳとアプリケーションとの関係を示す概念図。
【図３】実施例１に係るＰＣが実行する処理の流れを示すフローチャート。
【図４】実施例１に係るウインドウの表示形式を切り替えた状態の一例を示す図。
【図５】実施例２に係るＰＣが実行する処理の流れを示すフローチャート。
【図６】本実施２に係るＰＣが実行する処理の流れを示すフローチャート。
【図７】実施例２に係るウインドウの表示形式を切り替える際の状態の一例を示す図。
【図８】実施例４に係る情報提供システムでドロップを行いたい位置の指定が行われた場合の処理を示すフローチャート。
【図９】実施例４に係る情報提供システムでドロップを行いたい位置の管理形態の一例を示す図。
【図１０】実施例２に係るウインドウの表示形式を切り替えた状態の一例を示す図。
【図１１】実施例２に係るＰＣが実行する処理の流れを示すフローチャート。
【図１２】実施例２に係るウインドウの表示形式を切り替えた状態の一例を示す図。
【図１３】実施例３及び４におけるウインドウの一例を示す図。
【図１４】実施例３におけるＰＣが実行する処理の一例を示すフローチャート。
【図１５】実施例３におけるペースト位置管理情報の一例を示す図である。
【図１６】実施例３におけるＰＣが実行する処理の一例を示すフローチャート。
【図１７】実施例３におけるＰＣが実行する処理の一例を示すフローチャート。
【図１８】実施例３におけるＰＣが実行する処理の一例を示すフローチャート。
【図１９】実施例３におけるメニューの一例を示す図。
【図２０】実施例４に係る情報提供システムにおけるドロップ位置表示の処理を示すフローチャート。
【図２１】実施例４に係る情報提供システムにおいてドロップ位置表示ウインドウにドロップが行われた場合の処理を示すフローチャート。
【図２２】実施例４に係る情報提供システムにおけるドロップ位置表示ウインドウの一例を示す図。
【図２３】実施例４に係る情報提供システムにおいてドラッグ開始時にドラッグオブジェクトの種別に合わせてドロップ位置表示ウインドウのコントロールとドロップ位置の表示を行う処理のフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施例を説明する。以下で説明される個別の実施例は、本発明の上位概念から下位概念までの種々の概念を理解するために役立つであろう。
【００１１】
なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施例によって限定されるわけではない。また、実施例の中で説明されている特徴の組み合わせ全てが、本発明に必須とは限らない。
【実施例１】
【００１２】
本実施例では、本発明を情報処理装置（ＰＣ）がイベント検知アプリケーションプログラム（以下、「イベント検知アプリケーション」）に従って動作することにより実現する場合について説明する。本実施例によれば、オペレーティングシステム（ＯＳ）は、コンピュータ上でマルチウインドウシステムを実現する従来のＯＳをそのまま利用できるという利点がある。マルチウインドウシステムは、複数のウインドウを表示可能な表示画面を持つ。また、本実施例ではＯＳとしてＷｉｎｄｏｗｓ（登録商標）を利用するものとして説明を行うが、他のＯＳを利用してもよい。また、マルチウインドウシステムにおいては一般的に、ＰＣはＯＳに従って各アプリケーションプログラムのウインドウの表示（描画）を制御する。例えばＷｉｎｄｏｗｓ（登録商標）の場合、ＰＣはアプリケーションプログラムに従ってＯＳのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を呼び出し、それに応じてＯＳに従いウインドウの表示を行う。
【００１３】
図１は、ＯＳと各種アプリケーションとを実行する情報処理装置（ＰＣ１００）の構成を示すブロック図である。ＰＣ１００はパーソナルコンピュータなどにより実現される。図１に示すように、ＰＣ１００は、ＣＲＴ１０１、ＶＲＡＭ１０２、ＢＭＵ１０３、キーボード１０４、ＰＤ１０５、ＣＰＵ１０６、ＲＯＭ１０７、ＲＡＭ１０８、ＨＤＤ１０９及びネットワークＩ／Ｆ１１１を有する。ＣＲＴ１０１（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）には、例えば編集中の文書、図形、画像、その他の編集情報、アイコン、メッセージ、メニュー、その他のユーザインタフェースなどの情報が表示される。ＶＲＡＭ１０２には、ＣＲＴ１０１に表示するための画像が描画される。このＶＲＡＭ１０２に描画された画像データは、所定の規定に従ってＣＲＴ１０１に転送され、これによりＣＲＴ１０１に画像が表示される。ＢＭＵ１０３（ビットムーブユニット）は、例えば、メモリ間（例えば、ＶＲＡＭ１０２と他のメモリとの間）のデータ転送や、メモリと各Ｉ／Ｏデバイス（例えば、ネットワークＩ／Ｆ１１１）との間のデータ転送を制御する。キーボード１０４は、文書等を入力するための各種キーを有する。ＰＤ１０５（ポインティングデバイス１０５）は、例えば、ＣＲＴ１０１に表示されたアイコン、メニュー、その他のコンテンツを指示するために使用される。ＣＰＵ１０６は、ＲＯＭ１０７、ＨＤＤ１０９に格納された制御プログラムに基づいて、各デバイスを制御する。ＲＯＭ１０７は、各種制御プログラムやデータを保存する。ＲＡＭ１０８は、ＣＰＵ１０６のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。ＨＤＤ１０９は、ＰＣ１００内で実行される各制御プログラムやコンテンツを格納する。例えば、ＨＤＤ１０９には、ブラウザプログラム、ＯＳ、イベント検知アプリケーション（本発明に係るプログラム）、画像ファイル、ドキュメントファイル、音楽ファイル、電子アルバムデータ、電子アルバム編集プログラムなどが格納される。ネットワークＩ／Ｆ１１１は、他のＰＣやプリンタ等とネットワークを介して通信を行う。ＣＰＵバス１１２は、アドレスバス、データバス、及びコントロールバスを含む。ＣＰＵ１０６に対する制御プログラムの提供は、ＲＯＭ１０７、ＨＤＤ１０９から行うこともできるし、ネットワークＩ／Ｆ１１１を介してネットワーク経由で他のＰＣ等から行うこともできる。
【００１４】
図２は、ＯＳと各アプリケーションプログラムとの関係を示す概念図である。図２に示すように、ＰＣ１００はＯＳ２０２に従って動作することにより、キーボード１０４やＰＤ１０５（例えば、マウス）などの操作に起因する全てのイベントを、入力Ｉ／Ｆ２０１を介して受け付ける。そして、ＰＣ１００は受け付けたイベントを、各アプリケーションプログラムに従って動作したときに解釈できる形式に変換する。その後、ＰＣ１００はＯＳ２０２に従って動作することにより、アプリケーションプログラム２０４乃至２０６の中から、入力フォーカスなどを持つものを、処理を行うアプリケーションプログラムとして選択して、イベントを振り分ける。ＰＣ１００は、各アプリケーションプログラムに従って動作するときに、振り分けられたイベントを取得して利用する。更に本実施例では、アプリケーションプログラム２０４が、イベント検知アプリケーションとして動作するものとする。従って、ＰＣ１００はアプリケーションプログラム２０４（イベント検知アプリケーション）に従って動作するときに、他のアプリケーションプログラム２０５、２０６に振り分けられるイベントも取得し、使用する。なお、アプリケーションプログラム２０５、２０６もイベント検知アプリケーションとして動作しても構わない。なお、イベント検知アプリケーションは、イベント検知に特化したアプリケーションではなく、図３などを参照して以下に説明するイベント検知機能を含んだ任意のアプリケーションプログラムである。例えば、以下に説明するイベント検知機能をテキストエディタに追加すると、そのテキストエディタはイベント検知アプリケーションになる。
【００１５】
以下、ＰＣ１００が複数のアプリケーションプログラムに従ってそれぞれの複数のウインドウを表示画面に表示している時に、ドラッグ操作に応答して、背面にあるイベント検知アプリケーションプログラムのウインドウの表示形式を切り替える処理を説明する。図３はこの切り替え処理の流れを示すフローチャートである。本フローチャートの各ステップの処理は、ＰＣ１００のＣＰＵ１０６がＯＳ２０２やイベント検知アプリケーションを実行し、それに従って動作することによって実現される。これは、以下の各フローチャートにおいても同様である。
【００１６】
Ｓ３０１でＣＰＵ１０６は、ユーザの指示などに従ってイベント検知アプリケーションを起動し、実行に必要な開始処理を行う。Ｓ３０２で、ＣＰＵ１０６はイベント検知アプリケーションに従って動作し、すべてのイベントをイベント識別情報と共に通知するようにイベントの取得開始設定をＯＳ２０２に対して行う。Ｓ３０２における処理の目的は、ＣＰＵ１０６がイベント検知アプリケーション以外のアプリケーションに従って動作するときも、ＯＳ２０２でアプリケーションに振り分けられるイベントを取得して利用できるようにすることである。具体的には、例えばＷｉｎｄｏｗｓ（登録商標）の場合、ＳｅｔＷｉｎｄｏｗＨｏｏｋＥｘプログラム関数を使用して、イベントの取得開始設定を行う。これにより、ＣＰＵ１０６はＯＳ２０２に従って動作し、他のアプリケーションにイベントを渡す前に、そのイベントを、イベントの取得をリクエストしたイベント検知アプリケーションに渡すこととなる。
【００１７】
ＣＰＵ１０６がＯＳ２０２に従って動作し、何らかのイベントが発生したことを検知すると、Ｓ３０３でＣＰＵ１０６はイベント検知アプリケーションに従って動作し、ＯＳ２０２からそのイベントの種類を示すイベント識別情報を取得し、Ｓ３０４へ進む。Ｓ３０４でＣＰＵ１０６はイベント検知アプリケーションに従って動作し、Ｓ３０３で取得したイベント識別情報がドラッグイベントであるか否かを判定する（ドラッグ検知）。ドラッグイベントであればＳ３０５に進み、そうでなければＳ３０６に進む。Ｓ３０５でＣＰＵ１０６はイベント検知アプリケーションに従って動作し、イベント検知アプリケーションのウインドウの表示形式を切り替えるための処理（表示制御）を実行する。詳細は図４以降を参照して後述するが、例えば、Ｓ３０５の処理により、イベント検知アプリケーションのウインドウがマルチウインドウシステムの表示画面の最前面へと移動される。次いで、Ｓ３０３に戻り、次のイベントを取得するまで待つ。
【００１８】
一方、Ｓ３０６でＣＰＵ１０６はイベント検知アプリケーションに従って動作し、Ｓ３０３で取得したイベントがドロップイベント又はドラッグ中止イベントであるか否かを判定する（ドロップ検知）。判定結果が「Ｙｅｓ」であればＳ３０７に進み、「Ｎｏ」であればＳ３０３に戻る。Ｓ３０７でＣＰＵ１０６はイベント検知アプリケーションに従って動作し、イベント検知アプリケーションのウインドウの表示形式を、Ｓ３０５で切り替えられる前の形式に戻す。
【００１９】
これにより、ドロップ操作が終わればウインドウの表示形式が元に戻るため、ユーザは更に別のオブジェクトを移動させたい場合など、新たな操作を引き続き円滑に行えるようになり、操作性が向上する。
【００２０】
Ｓ３０８でＣＰＵ１０６はイベント検知アプリケーションに従って動作し、イベント取得処理の終了又はイベント検知アプリケーション自身の終了が指示されたか否かを判定する。判定結果が「Ｙｅｓ」であればＳ３０９に進み、「Ｎｏ」であればＳ３０３に戻る。Ｓ３０９でＣＰＵ１０６はイベント検知アプリケーションに従って動作し、イベントの取得開始設定の解除を、ＯＳ２０２に対して行う。具体的には、例えばＷｉｎｄｏｗｓ（登録商標）の場合、ＵｎｈｏｏｋＷｉｎｄｏｗＨｏｏｋＥｘプログラム関数を使用して、イベントの取得設定の解除を行う。Ｓ３１０でＣＰＵ１０６はイベント検知アプリケーションを終了するために必要な終了処理を行う。
【００２１】
このように、ＣＰＵ１０６はイベント検知アプリケーションに従って動作し、ＯＳ２０２がイベントを他のアプリケーションに振り分ける前にそのイベントに関する情報をイベント検知アプリケーションに渡すようにするかどうかを設定する。これにより、ＣＰＵ１０６は入力Ｉ／Ｆ２０１からのイベントがあると、ＯＳ２０２の割り込み処理を実行する。そして、ＯＳ２０２に従って、設定されているイベント検知アプリケーションのメソッドを呼び出して取得処理を実行した後、ＯＳ２０２に従って他のアプリケーションにイベントを振り分ける。
【００２２】
なお、イベント検知アプリケーションの表示形式の切り替え処理の実行可否をユーザが設定できるようにしてもよい。これにより、ＣＰＵ１０６はユーザが所望するアプリケーションだけに従ってそのウインドウの表示形式を切り替えるので、複数のアプリケーションが同じように表示切り替え処理を行って競合するのを防ぐことができる。すなわち、ユーザが所望するアプリケーションのウインドウだけが最前面に表示され、ドロップ先として選択し易くなり、使い勝手が更に向上する。
【００２３】
また、本実施例ではＣＰＵ１０６はイベント検知アプリケーションを起動したときにイベントの取得開始設定をＯＳ２０２に対して行う場合について説明した。しかし、この代わりに、ＣＰＵ１０６はＯＳ２０２に従って動作し、イベント検知アプリケーションのウインドウが他のアプリケーションのウインドウの背面に表示されているか否かをＯＳ２０２からのイベント通知で検知してもよい。そして、ＣＰＵ１０６はイベント検知アプリケーションのウインドウが他のアプリケーションのウインドウの背面に表示されていると検知されると、イベントの取得開始設定をＯＳ２０２に対して行うようにしてもよい。これにより、イベント検知アプリケーションのウインドウが他のアプリケーションのウインドウに隠れているときだけ表示形式の切り替えに関わる処理を実行すればよくなる。
【００２４】
次に、Ｓ３０５でＣＰＵ１０６がイベント検知アプリケーションに従ってウインドウの表示形式の切り替え処理を実行した結果、表示画面に表示されるウインドウについて説明する。図４はウインドウの表示状態の一例を示す図である。図４（ａ）はＳ３０５でＣＰＵ１０６が切り替え処理を実行する前の状態を示し、図４（ｂ）はＳ３０５でＣＰＵ１０６が切り替え処理を実行した後の状態を示す。４００はユーザが操作を行っているＰＣ１００の表示画面である。４０１は他のアプリケーション（第１のアプリケーションプログラム）のウインドウ（第１のウインドウ）であり、オブジェクトの一覧が配置されている。４０２はイベント検知アプリケーション（第２のアプリケーションプログラム）のウインドウ（第２のウインドウ）である。図４（ａ）では、ウインドウ４０１上にマウスポインタ４０３が存在してアクティブな状態にあり、ウインドウ４０２はウインドウ４０１よりも下層に表示され、隠れている。ウインドウ４０１でオブジェクトがドラッグされると（Ｓ３０４でＹｅｓ）、Ｓ３０５でＣＰＵ１０６がウインドウ４０２の表示階層を背面から最前面に切り替える処理を実行する。なお、ここではウインドウ４０２の表示画面の平面上での位置は変えず、ウインドウ４０２の原点４２４の位置は、切り替え前後で維持しておくものとする。そして、ＣＰＵ１０６はＯＳ２０２に従って動作し、図４（ｂ）に示すようにウインドウ４０２を最前面に表示するよう制御する。これによって、ユーザはドラッグ対象のオブジェクトのドロップ先となるウインドウ４０２を認識し易くなる。この時、図３などを参照して説明した、操作の邪魔になることを防ぐことができ、ユーザの操作性が向上する。
【００２５】
更に、Ｓ３０５でＣＰＵ１０６はウインドウ４０２内のメニューバー４２１やツールバー４２２など、ドロップエリア４２３以外のドロップ操作に不要な項目のエリアをウインドウ４０２から省き、非表示にする処理も実行するようにしてもよい。これにより、ウインドウ４０２全体の表示サイズがメニューバー４２１やツールバー４２２のエリアの分だけ小さくなり、ウインドウ４０１と重なる面積も小さくなる。したがって、ユーザがドラッグ元のウインドウ４０１が見づらくなるという問題が軽減され、ユーザの操作性が一層、向上する。
【００２６】
また、Ｓ３０５でＣＰＵ１０６はウインドウ４０２の表示サイズを縮小する処理も実行するようにしてもよい。これにより、ウインドウ４０２全体の表示サイズが小さくなり、ウインドウ４０１と重なる面積も小さくなるので、ユーザはドラッグ元のウインドウ４０１が見づらくなるという問題が軽減され、ユーザの操作性が向上する。なお、縮小率は予め設定された固定値でもよいし、ウインドウ４０１と４０２の表示サイズに基づいて算出される値でもよい。反対に、Ｓ３０５でＣＰＵ１０６はウインドウ４０２の表示サイズを大きくしてもよい。これにより、ユーザによるドロップ操作が容易になる。また、縮小されたウインドウ４０２にはスクロールバーが設けられ、これを移動することでウインドウ４０２内に表示される位置が更新される。更に、ＣＰＵ１０６は元のウインドウ４０２にキャレットや入力フォーカスなどの入力ポインタが表示されていた場合には、ドロップエリア４２３に入力ポインタの位置が表示されるよう、スクロールバーの位置を決定する。
【００２７】
また、ＣＰＵ１０６は入力ポインタを擬似的に表示するように制御し、その後、Ｓ３０５の実行前と同様に表示するようにしてもよい。このように、擬似的に入力ポインタを表示することで、イベント検知アプリケーションがアクティブではない状態でも、最前面に表示されたイベント検知アプリケーションのウインドウにおけるドロップ入力の基準をユーザに明示できる。
【００２８】
また、Ｓ３０５でＣＰＵ１０６はウインドウ４０２全体に対するドロップエリア４２３のズーム表示の表示倍率（拡大の倍率）を変更する処理も実行するようにしてもよい。これにより、ウインドウ４０２の表示サイズを縮小してもドロップエリア４２３をその中で大きく確保できるようになる。従って、ドロップエリアに表示される内容の量を小さくせずに済む。なお、ここで表示倍率は予め定められた表示倍率であってもよいし、元のウインドウ４０２の表示サイズとドロップエリア４２３の表示倍率と、切り替え処理後のウインドウの表示サイズと表示倍率とに基づき算出されてもよい。
【００２９】
また、Ｓ３０５でＣＰＵ１０６はウインドウ４０２を非表示にし、ドロップ処理専用のアイコンの表示に切り替える処理を実行するようにしてもよい。ドロップ処理専用アイコンは、オブジェクトのドロップを受け付けるだけであるので、通常のウインドウ４０２の表示サイズに比べて非常に小さくすることができる。そのため、ウインドウ４０２に比べて、ドロップ処理専用アイコンがウインドウ４０１に重なる面積が小さくなるので、ユーザはウインドウ４０１が見づらくなるという問題が軽減され、ユーザの操作性が向上する。なお、アイコンはオブジェクトのドロップを受け付けることを表すマークやメッセージとともに表示されることが望ましい。また、ドロップ処理専用アイコン自体もユーザのドロップ操作に応答して移動可能にしてもよい。これにより、ユーザはドロップ専用アイコンをドラッグ対象のオブジェクトの近傍に表示することも可能となるため、オブジェクトをドロップ専用アイコンまでドラッグする距離を短縮し、作業にかかる時間や手間を軽減することができる。また、ＣＰＵ１０６はドロップ専用アイコンの移動位置（アイコンの原点）を記憶しておき、Ｓ３０５でドロップ処理専用アイコンに切り替えるときに初期位置として読み出すようにしてもよい。これによりドロップ処理専用アイコンが以前に設定されたユーザの所望の位置に表示されることとなるので、ユーザの操作性が向上する。また、初期位置を記憶されたドロップ専用アイコンの移動位置をとするか、所定の位置（ウインドウ４０２の原点）とするかをユーザが選択できるようにしてもよい。
【００３０】
なお、Ｓ３０５でＣＰＵ１０６は切替処理の実行前の図４（ａ）の状態のウインドウ４０１及び４０２の表示階層や表示画面の平面上での位置（原点４２４、４２５）、表示サイズ（縦と横方向の長さ）、表示項目などの表示履歴情報をＲＡＭ１０８に一時保存する。その後、上述の切り替え処理を実行する。そして、Ｓ３０７でＣＰＵ１０６はイベント検知アプリケーションに従って動作し、ＲＡＭ１０８からＳ３０５で一時保存された表示履歴情報を読み出し、これに従い、ウインドウ４０１及び４０２の表示形式を元に戻す。そして、ＣＰＵ１０６はＯＳ２０２に従って動作し、図４（ａ）に示すように元に戻された表示形式でウインドウ４０１及び４０２を表示画面に表示する。なお、表示項目には、所定の文字列が反転表示されていたことや、入力キャレットなどの入力ポインタの表示形状や表示位置も含み、これらも上述の切り替え処理の実行前と同様に表示される。
【００３１】
また、ＣＰＵ１０６はＳ３０６でドロップ操作を検知してＳ３０７の処理を実行する際には、ドロップ操作に応答して行なわれる処理、例えばオブジェクトと対応するファイルの移動やコピーなどが完了したことを検出した後、Ｓ３０７の処理を実行する。これにより、ＣＰＵ１０６がＳ３０６でイベントを検出した直後にＳ３０７の処理を行って、ＯＳ２０２からイベント検知アプリケーションにイベントが振り分けられる前にイベント検知アプリケーションが非アクティブになるのを防ぐことができる。また、ドロップ操作に応答して行われる処理の進捗や変化を表示し、その後に表示が切り替わるので、ユーザは処理の実行を確認できる。
【００３２】
なお、ＯＳの種類によっては、これらのイベントを直接的に示すイベント識別情報を取得可能なＡＰＩが用意されていない場合もある。そのような場合、ＣＰＵ１０６はＯＳ２０２に従って動作し、ＰＤ１０５の動作状態を示すイベントを検知する。そして、ＣＰＵ１０６はイベント検知アプリケーションに従って動作するときに、この動作状態を示すイベントに基づいてドラッグイベント、ドロップイベント、及びドラッグ中止イベントを判断するようにしてもよい。例えば、ＣＰＵ１０６はイベント検知アプリケーションに従って動作し、ＯＳに従って検知したイベントがマウスダウンであれば、その位置が存在するウインドウを取得する。そして、ＣＰＵ１０６は、ウインドウとマウスダウン位置からウインドウの領域区分を取得する。領域区分は、例えば、Ｗｉｎｄｏｗｓ（登録商標）での処理では、ＷＭ＿ＮＣＨＩＴＴＥＳＴメッセージの結果で取得できるものである。ここでは、オブジェクトの一覧表示領域や、メニュー、水平スクロールバー、垂直スクロールバーなどが区分されている。また、ここで使用する区分では、ウインドウそのものの表示スタイルで、水平スクロールバー、垂直スクロールバーなどがある。その場合には、位置からだけではオブジェクトの一覧表示領域と判断してしまうので、スタイルやウインドウの親子関係を加味する。もちろん、ＯＳの種類が異なれば、判断方法もそれに応じて変化する。そして、取得された領域区分がオブジェクトの一覧表示領域であれば、タイマーの計測を開始し、マウスダウンの位置を保存する。その後、ＣＰＵ１０６はＯＳに従って検知されたイベントがマウス移動であれば、マウスダウンの位置と現在のマウスの位置を比較し、所定値以上の距離があれば、ドラッグ操作と判断する。あるいは、ＣＰＵ１０６は更に、現在のマウスの位置が存在するウインドウの領域区分を取得し、領域区分がオブジェクトの一覧表示領域であれば、ドラッグ操作と判断するようにしてもよい。また、ＣＰＵ１０６はＯＳに従って検知されたイベントがマウスアップであれば、ドロップ操作と判断し、タイマーの計測を停止する。あるいは、ＣＰＵ１０６は更に、マウスの位置が存在するウインドウの領域区分を取得し、領域区分がイベント検知アプリケーションのドロップエリア４２３であればドロップ操作があったと判断するようにしてもよい。また、ＣＰＵ１０６はタイマーの計測時間が所定時間を経過しても何のイベントも検知しなかったときは、ドラッグ操作が中止されたと判断する。以上のようにして、ＣＰＵ１０６はマウスの動作状態を示すイベントに基づいて、ドラッグイベント、ドロップイベント、及びドラッグ操作の中止イベントを検知することができる。
【００３３】
また、ＣＰＵ１０６はイベント検知アプリケーションに従って動作し、ドラッグ元のウインドウのアプリケーションの種類によって切り替え処理を実行するようにしてもよい。この場合、ＣＰＵ１０６はイベント検知アプリケーションに従って動作し、マウスダウンのイベントとともにマウスダウン位置のウインドウを持つプロセスに関する情報を取得する。プロセスに関する情報は、例えば、アプリケーションの実行ファイル名や、稼働時間などである。そして、ＣＰＵ１０６はイベント検知アプリケーションに従って動作し、予め実行対象として登録しているアプリケーション情報と、取得したマウスダウン位置のアプリケーション情報とを比較して合致する場合に、切り替え処理を実行する。一方、これらが合致しない場合は切り替え処理を実行しない。これにより、イベント検知アプリケーションが扱えないオブジェクトがそのウインドウにドロップされるのを防ぐことができる。例えば、イベント検知アプリケーションが文書ファイルを扱うアプリケーションであり、エクスプローラなどの所定のファイル管理アプリケーションのアプリケーション情報が予め登録されているとする。このとき、ファイル管理アプリケーションのウインドウからのドラッグと判断された場合はイベント検知アプリケーションのウインドウが最前面に表示される。一方、メモ帳などのファイルをオブジェクトとして扱わないテキスト編集アプリケーションからのドラッグと判断されたときは、イベント検知アプリケーションのウインドウの表示は何も変えずそのままの状態にする。以上のようにして、不要なウインドウの表示切り替えを防ぐことができるとともに、ユーザに対しても誤ったドロップ操作へ誘導することを防ぐことができる。
【００３４】
また、ＣＰＵ１０６はイベント検知アプリケーションに従って動作し、取得したマウスダウン位置のアプリケーション情報に基づき、ドラッグ元のアプリケーション自身がドロップ操作を受け付け可能であれば直ちに切り替え処理を実行しないようにしてもよい。ＣＰＵ１０６は取得したマウスダウン位置のアプリケーション情報に基づいて、ドラッグ元のアプリケーション自身がドロップ操作を受け付け可能であると判断すると、タイマーでの計測を開始する。その後、タイマーでの計測時間が所定時間を超えると、切り替え処理を実行し、イベント検知アプリケーションのウインドウを最前面に表示する。なお、ＣＰＵ１０６はタイマーでの計測時間が所定時間を超える前にドロップイベント又はドラッグ中止イベントを検知した場合は、切り替え処理を実行しない。これにより、ユーザがドラッグ元のアプリケーションのウインドウ上でオブジェクトをドロップしたい場合に、イベント検知アプリケーションのウインドウが操作の邪魔にならないようにすることができる。
【００３５】
また、ＣＰＵ１０６はドラッグ開始とドラッグ中のマウス位置を元に移動方向を求め、移動方向を中心として所定の範囲にイベント検知アプリケーションのウインドウがあれば切り替え処理を実行し、それ以外は切り替え処理を中止するようにしてもよい。これにより、不要な切り替え処理を抑制し、処理にかかる負担を軽減することができる。
【００３６】
また、本実施例ではオブジェクトが配置されたウインドウのアプリケーションと、イベント検知アプリケーションは異なるアプリケーションプログラムである場合について説明したが、同じであってもよい。１つのウインドウ検知アプリケーションが複数のウインドウを表示し、一方のウインドウでオブジェクトのドラッグが開始されたときに他方のウインドウの表示を制御するのにも同様に適用できる。
【００３７】
以上説明したように、本実施例によれば、前面のウインドウに配置されたオブジェクトへのドラッグ操作すると、その背面にある、ＯＳにイベント検知リクエストを設定しているアプリケーションのウインドウを最前面に表示する。これにより、ユーザが所望のアプリケーションのウインドウは最前面に表示され、かつ、不要なアプリケーションのウインドウは背面に表示されるので、ユーザの操作を邪魔することを防げる。また、本実施例によれば、前面のウインドウに配置されたオブジェクトがドラッグ操作されると、その背面にあるウインドウを、そのサイズを縮小したり、アイコン化してから最前面に表示する。これにより、背面にあったウインドウが最前面に表示されても、ドラッグ元のウインドウと重なる面積が小さくなるので、ユーザの操作を邪魔することを防げる。
【実施例２】
【００３８】
本実施例では、オブジェクトのドロップを受け付けるウインドウが背面から前面に切り替えて表示されたときに、オブジェクトのドラッグ元のウインドウの視認性が低下することを抑制する。なお、本実施例では上述の実施例１と同様の構成については説明を省略し、本実施例に特有の構成について詳細に説明する。
【００３９】
ＰＣ１００が複数のアプリケーションプログラムに従ってそれぞれの複数のウインドウを表示画面に表示している時に、ドラッグ操作に応答して、背面にあるイベント検知アプリケーションのウインドウの表示形式を切り替える処理を説明する。図５は、ＰＣ１００のＣＰＵ１０６がＯＳ２０２に従って動作し、ドラッグイベントを検知してウインドウの表示形式を切り替える処理を示すフローチャートである。
【００４０】
Ｓ５０１でＣＰＵはイベントを検知すると、これがドラッグイベントであるか否かを判定する。ドラッグイベントであればＳ５０２に進み、そうでなければ処理を終了する。Ｓ５０２でＣＰＵ１０６はドラッグ元アプリケーション（ドラッグ開始アプリケーション）の情報を取得する。Ｓ５０３でＣＰＵ１０６は実行中のアプリケーションの情報の一覧を取得し、オブジェクトのドロップ対象となるアプリケーションの情報を抽出する。Ｓ５０４でＣＰＵ１０６は、Ｓ５０２にて取得したドラッグ元アプリケーションの情報と、Ｓ５０３にて抽出したドロップ対象のアプリケーションの情報の一覧とに基づき、各ウインドウの表示形式を決定する。また、各ウインドウの現在の表示に関する情報を表示履歴情報としてメモリ（例えば、ＲＡＭ１０８）に記録する。Ｓ５０５でＣＰＵ１０６は、Ｓ５０４にて決定した表示形式に従って、各アプリケーションのウインドウの表示形式を切り替える。その後、Ｓ５０６でＣＰＵ１０６は、ドロップ又はドラッグ中止イベントを検知すると、Ｓ５０７に進み、そうでない場合は処理を終了する。Ｓ５０７でＣＰＵ１０６は、Ｓ５０４にて記録した表示履歴情報に基づき、Ｓ５０５で行ったウインドウ表示の切り替えを実行する前の元の状態で各ウインドウを表示し、処理を終了する。
【００４１】
図６は、図５のＳ５０４における処理の詳細を示すフローチャートである。Ｓ６０１でＣＰＵ１０６は、Ｓ５０２にて取得したドラッグ元アプリケーションの情報を解析し、ドラッグ元アプリケーション自身がオブジェクトのドロップを受け付けることが可能かどうかを判断する。ドロップを受け付けることが不可能な場合はＳ６０２に進み、可能な場合はＳ６０３に進む。Ｓ６０２でＣＰＵ１０６は、オブジェクトのドラッグ開始時のマウス位置を取得し、マウス位置から所定距離に配置されるように、ドロップ対象アプリケーションのウインドウの移動位置を求める。位置を求める処理を行っている最中もドラッグは行われ、オブジェクトは移動しているので、マウスの移動方向と移動速度を考慮し、且つ、マウスのカーソルサイズ考慮して、ドロップ対象アプリケーションのウインドウの位置を求めてもよい。例えば、図７（ａ）に示したように表示画面７００において、ドラッグ元アプリケーションのウインドウ７０１上で、マウスカーソル７０３の位置でオブジェクト「１０」のドラッグが開始された場合を考える。この場合、図７（ｂ）に示したように、ドラッグ元アプリケーションのウインドウ７０１の背面に隠れていたドロップ対象アプリケーションのウインドウ７０２の移動位置はマウスカーソル７０３の近傍となる。
【００４２】
一方、Ｓ６０３でＣＰＵ１０６は、ドラッグ元アプリケーションのウインドウの近傍の位置に配置されるように、ドロップ対象アプリケーションのウインドウの移動位置を求める。ドラッグ元アプリケーションのウインドウの近傍とは、例えば、移動前のドロップ対象アプリケーションのウインドウの位置から上下左右のいずれかへ平行移動して最も移動距離の短い位置である。これにより、ユーザに対し、できるだけ移動による違和感を少なくすることができる。例えば、図７（ａ）に示した状態から、図７（ｃ）に示したようにドラッグ元アプリケーションのウインドウ７０１の背面に隠れていたドロップ対象アプリケーションのウインドウ７０２の移動位置はドラッグ元アプリケーションのウインドウ７０１の近傍となる。
【００４３】
Ｓ６０４でＣＰＵ１０６は、画面表示領域と、ドロップ対象アプリケーションのウインドウの移動位置及びウインドウの表示サイズとに基づき、ドロップ対象アプリケーションのウインドウが表示画面に表示される領域を取得する。この表示領域サイズは図７（ｂ）や図７（ｃ）のウインドウ７０２のうち斜線７０４以外の領域のことである。斜線７０４で示される部分は表示画面７００の表示範囲にはないため、表示されない。Ｓ６０５でＣＰＵ１０６は、Ｓ６０４で取得したドロップ対象アプリケーションのウインドウが画面に表示される領域のサイズが所定サイズ未満かどうかを判断する。表示領域サイズが所定サイズ未満の場合にはＳ６０６に進み、そうでない場合、Ｓ６０７に進む。Ｓ６０６でＣＰＵ１０６は、表示領域サイズが所定サイズになるように、ドロップ対象アプリケーションのウインドウの移動位置を更新する。なお、Ｓ６０４でＣＰＵ１０６は表示領域サイズの代わりに、表示画面全体のサイズに対する表示領域サイズの割合を用いても良い。また、移動位置は、移動前のドロップ対象アプリケーションのウインドウの位置から上下左右のいずれかで平行移動して最も移動距離の短い位置を求めることで、ユーザにできるだけ移動による違和感を少なくすることができる。例えば、図７（ｄ）に示したようにドロップ対象アプリケーションのウインドウ７０２の移動位置は表示画面内となる。なお、図７（ｄ）では移動位置をウインドウ７０２が完全に表示される位置としたが、ウインドウ７０２の一部が表示されない位置であってもよい。例えば、ドロップ操作に関係する領域が表示画面内にあれば、関係ない領域が表示画面外になる位置であっても問題ない。
【００４４】
次にＳ６０７でＣＰＵ１０６は、マウス位置と、ドロップ対象アプリケーションのウインドウの移動位置及び表示サイズとに基づき、移動後のドロップ対象アプリケーションのウインドウにマウス位置が重なるかどうか判断する。重なる場合はＳ６０８に進み、そうでない場合はＳ６０９に進む。なお、判断の処理を行っている最中もドラッグは行われている。そのため、Ｓ６０７にて使用するマウス位置に加えて、マウスの移動方向と移動速度を考慮し、且つ、マウスのアイコンサイズ考慮して、ドロップ対象アプリケーションのウインドウの位置を求めてもよい。また、移動開始マウス位置を使用してもよい。Ｓ６０８でＣＰＵ１０６は、表示画面を縦横それぞれに２等分で４つに分割し、マウス位置を含む分割画面と線対称、又は点対称となる分割画面にドロップ対象アプリケーションのウインドウの画面を移動するように位置を求める。ここで、分割画面は、右上から反時計回りに順に第１象限、第２象限、第３象限、第４象限として説明する。第４象限にマウス位置があると仮定すると、第４象限と線対称になる第１象限又は第３象限にドロップ対象アプリケーションのウインドウの移動位置を求める。このとき、最も移動距離の短い位置を求めることで、ユーザにできるだけ移動による違和感を少なくすることができる。なお、点対称である第２象限にドロップ対象アプリケーションのウインドウの移動位置を求めてもよい。また、マウス位置が表示画面の中央近辺であり、どの象限に移動させてもマウス位置と重なる場合には、マウスのカーソルサイズ考慮して、マウス位置の近傍をドロップ対象アプリケーションのウインドウの位置として求めてもよい。これにより、図７（ｄ）で示したような、ドロップ対象アプリケーションのウインドウ７０２とマウスカーソル７０３が重なる状態が回避される。そして、図７（ｅ）に示したようにドロップ対象アプリケーションのウインドウ７０２の移動位置はマウスカーソル７０３と重ならない位置となる。
【００４５】
次にＳ６０９で、ＣＰＵ１０６はドラッグ元アプリケーションのウインドウの位置及び表示サイズと、ドロップ対象アプリケーションのウインドウの移動位置及び表示サイズとに基づき、２つのウインドウが重なる領域を取得する。Ｓ６１０でＣＰＵ１０６は、Ｓ６０９にて取得した重なり領域のサイズが所定サイズ以上であるか否かを判断する。ここで、所定サイズはドラッグ操作が開始されたときのドラッグ元アプリケーションのウインドウとドロップ対象アプリケーションのウインドウの重なり領域の面積である。重なり領域のサイズが所定サイズ以上の場合にはＳ６１１に進み、そうでない場合は処理を終了する。Ｓ６１１でＣＰＵ１０６は、ドラッグ元アプリケーションのウインドウが表示画面の四辺のいずれか、又は、複数箇所と重なるように、ドラッグ元アプリケーションのウインドウの移動位置も求める。このとき、ドラッグ元アプリケーションのウインドウの移動位置は、最も移動距離の短い位置を求めることで、ユーザにできるだけ移動による違和感を少なくすることができる。これにより、図７（ｆ）に示したようにドラッグ元アプリケーションのウインドウ７０１の移動位置は、ドロップ対象アプリケーションのウインドウ７０２と重ならない位置となる。なお、Ｓ６１０では重なり領域のサイズの代わりに、ドラッグ元アプリケーションのウインドウのサイズに対する重なり領域の割合を用いてもよい。また、この移動位置では、ドラッグ元アプリケーションのウインドウ７０１とドロップ対象アプリケーションのウインドウ７０２が重ならないので、マウスカーソルの重なりを考慮しなくてもよい。
【００４６】
次にＳ６１２でＣＰＵ１０６は、ドラッグ元アプリケーションのウインドウとドロップ対象アプリケーションのウインドウの、移動位置とウインドウのサイズとに基づき、２つののウインドウが重なる領域を取得する。Ｓ６１３でＣＰＵ１０６は、Ｓ６１２にて取得した重なり領域のサイズが所定サイズ以上かどうかを判断する。ここで、所定サイズはドラッグ操作が開始されたときのドラッグ元アプリケーションのウインドウとドロップ対象アプリケーションのウインドウの重なり領域の面積である。重なり領域のサイズが所定サイズ以上の場合にはＳ６１４に進み、そうでない場合は処理を終了する。Ｓ６１４でＣＰＵ１０６は、ドラッグ元アプリケーションのウインドウとドロップ対象アプリケーションのウインドウのリサイズ率と移動位置を求める。このとき、ドラッグ元アプリケーションのウインドウ及びドロップ対象アプリケーションのウインドウとも、同じリサイズ率で最も移動距離の短い位置を求めることで、ユーザにできるだけリサイズと移動による違和感を少なくすることができる。図１０（ａ）に示したように、表示画面１０００と同じくらいのサイズでドラッグ元アプリケーションのウインドウ１００１が表示され、その背面にドロップ対象アプリケーションのウインドウ１００２が隠されているときにドラッグが開始された場合を考える。この場合、図１０（ｂ）で示したように、ドラッグ元アプリケーションのウインドウ１００１とドロップ対象アプリケーションのウインドウ１００２がリサイズされ、移動する。なお、Ｓ６１３でＣＰＵ１０６は重なり領域のサイズの代わりに、ドラッグ元アプリケーションのウインドウのサイズに対する重なり領域の割合を用いてもよい。Ｓ６１５でＣＰＵ１０６は、Ｓ６１４にて求めたリサイズ率が所定値以上であるか否かを判定し、所定値以上の場合にはＳ６１６に進み、そうでない場合は処理を終了する。Ｓ６１６で、ＣＰＵ１０６は、ドラッグ元アプリケーションのウインドウをアイコン化するように求め、ドロップ対象アプリケーションのウインドウの移動位置を取得する。これにより、ドラッグ元アプリケーションのウインドウのリサイズを極端に行わなければならない場合にはアイコン化することでドロップ対象アプリケーションのウインドウに対するドロップ操作をしやすくすることができる。
【００４７】
なお、ＣＰＵ１０６はＳ５０１でドラッグを検知すると、ドラッグ元アプリケーションのウインドウの状態を検知し、最大化表示されている場合には、ウインドウのサイズを最大サイズから元のサイズに戻す。また、Ｓ５０１でドラッグを検知した後は常に、ドラッグ元アプリケーション及びドロップ先アプリケーションのウインドウの状態を検知し、最大化表示されている場合には、ウインドウのサイズを最大サイズから元のサイズに戻すようにしてもよい。
【００４８】
また、ＣＰＵ１０６はＳ５０３で、実行中のアプリケーションが複数ある場合は、ドラッグ元アプリケーションや、ウインドウが最小化されているアプリケーション、ユーザが予めドロップ対象としない設定をしているアプリケーションはドロップ対象から除く。あるいは、ＣＰＵ１０６はウインドウの重なり順や、アプリケーションの起動時間やアイドル時間に基づいて実行中のアプリケーションに優先順位を付与し、優先順位の最も高いアプリケーションをドロップ対象のアプリケーションとして抽出する。あるいは、ＣＰＵ１０６はドラッグの移動方向を検知し、その移動方向と重なる距離が最も長いウインドウをドロップ対象として抽出するようにしてもよい。
【００４９】
次に、ドロップ対象となるアプリケーションが複数ある場合について説明する。図１１はＰＣ１００のＣＰＵ１０６がＯＳ２０２に従って動作し、ドラッグイベントを検知して複数のウインドウの表示形式を切り替える処理を示すフローチャートである。
【００５０】
Ｓ１１０１でＣＰＵ１０６は、実行中のアプリケーションの数を取得し、数が１つの場合はＳ１１０２に進み、２つ以上の場合はＳ１１０３に進み、存在しない場合は処理を終了する。Ｓ１１０２では、ＣＰＵ１０６は図６で説明したような処理を実行する。Ｓ１１０３でＣＰＵ１０６は、表示画面のうちドラッグ元アプリケーションのウインドウを除いた領域を取得し、この領域に含まれる最大の矩形のサイズが所定値未満かどうか判断する。この最大の矩形のサイズが所定値未満の場合はＳ１１０４に進み、そうでない場合はＳ１１１０に進む。Ｓ１１０４でＣＰＵ１０６は、ドラッグ元アプリケーションのウインドウの隅のうち表示画面の隅に最も近い隅が表示画面の隅に重なる位置を、ドラッグ元アプリケーションのウインドウの移動位置として取得する。Ｓ１１０５で、ＣＰＵ１０６は、Ｓ１１０４にて取得した移動位置にドラッグ元アプリケーションのウインドウが移動した場合にこのウインドウを除いた領域を取得し、この領域に含まれる最大の矩形のサイズが所定値未満かどうかを判断する。この最大の矩形のサイズが所定値未満の場合はＳ１１０６に進み、そうでない場合はＳ１１１０に進む。Ｓ１１０６でＣＰＵ１０６は、ドラッグ元アプリケーションのウインドウを除いた領域に含まれる最大の矩形のサイズが所定値以上で最小になるように、ドラッグ元アプリケーションのウインドウのサイズを取得する。Ｓ１１０７でＣＰＵ１０６は、Ｓ１１０６にて取得したサイズでドラッグ元アプリケーションのウインドウのリサイズ倍率を取得し、リサイズ倍率が所定値以上かどうか判断する。所定値以上の場合にはＳ１１０９に進み、そうでない場合はＳ１１１０に進む。Ｓ１１０９でＣＰＵ１０６はドラッグ元アプリケーションのウインドウをアイコン化する。Ｓ１１１０でＣＰＵ１０６は、Ｓ１１０４にて取得した移動位置に、Ｓ１１０６にて取得したサイズでドラッグ元アプリケーションのウインドウを表示した場合に、このウインドウを除いた領域に含まれる最大の矩形のサイズを取得する。Ｓ１１１１でＣＰＵ１０６は、Ｓ１１１０にて取得した最大の矩形のサイズに合わせて、ドロップ対象となるアプリケーションのウインドウの移動位置とサイズを取得する。例えば、最大の矩形がＳ１１０１にて取得されたドロップ対象のアプリケーションの数に基づいて分割され、各ウインドウが各分割領域に割り当てられることにより、ドロップ対象となるアプリケーションのウインドウの移動位置とサイズが決まる。また、ウインドウの重なり順や、アプリケーションの起動時間やアイドル時間に基づいてドロップ対象アプリケーションに優先順位を付与し、その順番に従ってアプリケーションのウインドウを並べるようにしてもよい。そして、Ｓ１１１２でＣＰＵ１０６は、ドロップ対象アプリケーションのウインドウのリサイズ倍率を取得し、所定値以上かどうか判断する。リサイズ倍率が所定値以上の場合にはＳ１１１３に進み、そうでない場合には処理を終了する。Ｓ１１１３でＣＰＵ１０６は、各ウインドウのリサイズ倍率が所定値になるように、切り替え処理の対象となるドロップ対象アプリケーションを優先順位の低いものから順に外し、残ったドロップ対象アプリケーションで各ウインドウの位置とサイズを取得する。これにより、図１２（ａ）に示したように、表示画面１２００にドラッグ元アプリケーションのウインドウ１２０１、ドロップ対象アプリケーションの複数のウインドウ１２０２を並べることができる。また、１２０３はＳ１１１３で切り替える処理の対象から外されたドロップ対象アプリケーションのウインドウである。なお、図１２（ｂ）に示したように優先順位の高さに応じてドロップ対象アプリケーションのウインドウに割り当てる位置やサイズを変えるようにしてもよい。優先順位の高いドロップ対象アプリケーションのウインドウ１２０２は、優先順位の低いドロップ対象アプリケーションのウインドウ１２０３に比べて大きく表示される。このようにするには、Ｓ１１１２及びＳ１１１３でＣＰＵ１０６がアプリケーションの優先順位に従ってリサイズ倍率を段階的に割り当てるようにすればよい。あるいは、Ｓ１１１１でＣＰＵ１０６がアプリケーションの優先順位に従った位置や大きさを各ウインドウに割り当てるようにしてもよい。
【００５１】
本実施例によれば、前面のウインドウに配置されたオブジェクトを背面のウインドウに移動させる際に、背面のウインドウだけでなく、前面のウインドウの位置を移動したり、サイズを縮小したりする。従って、これらのウインドウが互いに邪魔をすることがなくなり、ウインドウの視認性が高まり、ユーザの操作性が向上する。
【実施例３】
【００５２】
以下、実施例３について説明する。なお、本実施例では上述の実施例１と同様の構成については説明を省略し、本実施例に特有の構成について詳細に説明する。
【００５３】
図１３（ａ）から（ｃ）は、本実施例に係るＰＣ１００において、ペースト位置が指定され、オブジェクトのドロップ先にオブジェクトと対応するデータがペーストされるまでに表示画面に表示されるウインドウの一例を示したものである。
【００５４】
ユーザの操作に応答してＰＣ１００のＣＰＵ１０６は文書編集アプリケーションを起動し、文書ファイルを編集しているものとする。そして、ユーザの操作に応答して、文書編集アプリケーションによって作成される文書ファイル上で、オブジェクトと対応するデータをペーストしたい位置を指定する。この指定のタイミングは文書ファイルの編集過程であってもよいし、文書ファイルの編集後であってもよい。図１３（ａ）は、ペースト位置が指定された後、文書編集アプリケーションのウインドウ１３００に文書ファイルが表示されている状態を示している。文書編集アプリケーションのウインドウ１３００には指定されたペースト位置１３０１と１３０２とにそれぞれマーク又はアイコンを表示する。これにより、ユーザはペースト位置を確認しやすくなる。
【００５５】
その後、ユーザの操作に応答してＣＰＵ１０６はファイル管理アプリケーションを起動し、ＨＤＤ１０９に記憶されたデータと対応するアイコンが配置されたウインドウを表示画面に表示する。図１３（ｂ）では、ファイル管理アプリケーションのウインドウ１３１１が文書編集アプリケーションのウインドウ１３００より前面に表示されている。そしてファイル管理アプリケーションのウインドウ１３１１にあるデータアイコン１３１２を選択したときに、メニュー１３１３が表示される様子を示している。また、ユーザの操作に応答して、メニュー１３１３の中から、メニュー１３１４及びメニュー１３１５が順に表示され、項目１３１６が選択された様子を示している。なお、データアイコン１３１２上での右クリック、ショートカットコードでの指示などに応答してメニュー１３１３を表示することも可能である。また、本説明では指定されているペースト位置を選択可能なメニューを表示しているが、これに限定されない。例えば、位置を表す行数と列数、座標、又はアイコンを表示してもよい。或いは、位置が範囲を示す場合はその範囲内のオブジェクト、オブジェクト名、代表となる文字のいずれか、又は、これらの組み合わせを表示してもよい。
【００５６】
項目１３１６が選択されたことに応答して、データアイコン１３１２と対応するデータは「位置１」と対応する場所にペーストされる。図１３（ｃ）は「位置１」が文書ファイルのペースト位置１３０１（図１３（ａ）参照）であったときに、データアイコン１３１２と対応するデータがペーストされている状態を示している。
【００５７】
このように、ユーザはデータアイコンの一覧が表示されたファイル管理アプリケーションのウインドウ１３１１上で、文書編集アプリケーションで作成された文書ファイルの指定位置にデータアイコンと対応するデータをペーストできる。このため、オブジェクトのドラッグ操作を必要とせず、ユーザの操作の手間が軽減する。また、ユーザがペーストしたい位置を見失ってしまうという問題もなくなる。
【００５８】
図１４は、本実施例に係るＰＣ１００が、ユーザの指示に応答して、文書編集アプリケーションを用いて文書ファイルにペースト位置を設定するフローを示したものである。
【００５９】
Ｓ１４０１にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いユーザのペースト位置の指定がＰＤ１０５で行われたかＰＤ１０５以外で行われたかを判断する。ユーザのペースト位置の指定がＰＤ１０５で行われた場合はＣＰＵ１０６はＳ１４０３の処理を行い、ユーザのペースト位置の指定がＰＤ１０５以外で行われた場合はＣＰＵ１０６はＳ１４０２の処理を行う。Ｓ１４０２ではＣＰＵ１０６は文書編集アプリケーションの指示に従い編集領域のフォーカスの位置、例えばカーソルの位置や範囲指定されている場合は範囲指定されている領域などを取得する。なお、ＰＤ１０５を利用しない例として、ユーザが他に矢印キーなどで仮想表示されたＰＤ１０５を操作できるモードとなり、ユーザがキー操作のみで位置や範囲の指定を行う方法で指定した位置や領域を取得してもよい。Ｓ１４０３ではＣＰＵ１０６は文書編集アプリケーションの指示に従いＰＤ１０５の位置、例えばユーザがＰＤ１０５でクリックした位置やユーザがＰＤ１０５で範囲指定した場合は範囲指定されている領域などを取得する。なお、文書編集アプリケーションなどの場合、ＣＰＵ１０６は文書編集アプリケーションの指示に従いユーザがＰＤ１０５でクリックした位置の近傍で適切な位置にカーソルが移動される。、ここで取得する位置は同様にユーザがＰＤ１０５で指定した位置の近傍で適切な位置に変換を行ってもよい。Ｓ１４０４にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いＳ１４０２又はＳ１４０３で取得を行ったペースト位置がペースト可能位置かどうかを判断する。ペースト可能位置として不適切な場合はＣＰＵ１０６は処理を終了し、ペースト位置が可能な位置の場合はＣＰＵ１０６はＳ１４０５の処理を行う。
【００６０】
Ｓ１４０５にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いユーザが指定したペースト位置を文書編集アプリケーションのメモリに保存する。このとき、ＣＰＵ１０６は文書編集アプリケーションの指示に従いすでに保持しているペースト位置と指定されたペースト位置が重なる場合は、すでに保持しているペーストと指定されたペースト位置を置き換えてもよい。また、ＣＰＵ１０６は文書編集アプリケーションの指示に従いペースト位置にペーストできるオブジェクトに制限がある場合、ペースト種別としてあわせて保存してもよい。Ｓ１４０６にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いＳ１４０５にて保存したペースト位置をＯＳ２０２に対して登録を行う。Ｓ１４０７にて、ＣＰＵ１０６はＯＳ２０２の指示に従いＳ１４０６で登録されたペースト位置の登録を行った文書編集アプリケーションと関連付けてＯＳ２０２のメモリに保存し処理を終了する。なお、ＣＰＵ１０６は文書編集アプリケーションの指示に従い編集領域のユーザがペースト位置指定を行った位置に対応するマークを表示する処理を行ってもよいことは言うまでもない。
【００６１】
図１５（ａ）は、本実施例に係るＰＣ１００においてＣＰＵ１０６がＳ１４０５、Ｓ１４０７において文書編集アプリケーションとＯＳ２０２に従ってメモリに保存したペースト位置の管理形態の一例を示したものである。１５００は、ＣＰＵ１０６がＳ１４０５の処理において文書編集アプリケーションに割り当てたメモリイメージを示したものである。１５０１は、ＣＰＵ１０６がＳ１４０７の処理においてＯＳ２０２に割り当てたメモリイメージを示したものである。１５０２は、ＣＰＵ１０６が文書編集アプリケーションの指示に従い管理を行っている編集対象の文字データとコントロールデータのメモリのイメージを示したものである。文書などでは、このように管理しているデータと使用するフレームデータを組み合わせてフレームにデータを順に詰めていくことで文書を形成していることが多い。１５０３は、ＣＰＵ１０６が文書編集アプリケーションの指示に従い管理を行っているペースト位置の配列を示したものである。１５０４は、オブジェクトがペーストされたかどうかなどのペースト状態を示している。１５０５は、ペーストを受け付けられるオブジェクトの種類を示している。一例を示すと、図１４のＳ１４０５にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いユーザが指定したペースト位置でペーストできるオブジェクトの種類を取得し、その種類のオブジェクトのみがペーストを許されるように設定を行う。また、ペースト位置の指定時だけでなくダイアログを利用した設定画面を用意してユーザがオブジェクトの種類を設定、解除できるようにしてもよい。１５０６は、関連するペースト位置管理番号を示しペースト位置を複数まとめて処理の対象とする場合に利用する。一例を示すと、ペースト位置の配列１５０３で管理されているペースト位置管理番号Ｂを示す１５０９は、関連するペースト位置管理番号に関連位置管理番号としてペースト位置管理番号Ａを示す１５１１が設定されている。このことから、ペースト位置管理番号Ｂを示す１５０９はペースト位置管理番号Ａを示す１５１０と関連付けられていることがわかる。なお、ペースト位置の関連の設定、解除はユーザが設定画面で設定、解除できる。１５０７は、範囲指定でない場合のペースト位置をコントロールデータとして文字データと一緒に保持している状態を示し、ペースト位置管理の配列１５０３の１５１０で管理されているドロップ位置管理番号Ａと関連付けられている。１５０８は、範囲指定の場合のペースト位置をコントロールとして文字データと一緒に保持している状態を示し、ペースト位置管理の配列１５０３の１５０９で管理されているドロップ位置管理番号Ｂと関連付けられている。一例を示すと、１５０８により「ＡＢＣＤＥＦＧ」の文字が範囲指定されていることがわかる。なお、本発明ではアプリケーションによって管理しやすい形態でペースト位置管理がされればよく、本発明おいてペースト位置管理の形態が限定されるものではない。
【００６２】
１５１２は、ＣＰＵ１０６がＯＳ２０２の指示に従い管理を行っているペースト位置の配列を示したものである。１５１３は、ＣＰＵ１０６がＯＳ２０２の指示に従い登録されているアプリケーションに対して問い合わせ及びペースト指示を行うための通知関数を保持している。１５１４は、ＣＰＵ１０６がＯＳ２０２の指示に従い１５１３で保持している通知関数に対して問い合わせ及びペースト指示を行う際に、データ識別子として渡す管理番号を示している。一例を示すと、ＣＰＵ１０６はＯＳ２０２の指示に従いＳ１４０７の処理を行う場合に登録要求を行った文書編集アプリケーションの識別子を取得し、１５１５に示すように識別子を設定する。このとき、ＣＰＵ１０６はＯＳ２０２の指示に従い登録を要求した文書編集アプリケーションへの問い合わせ及びペースト指示を行うための通知関数とデータ識別子を、それぞれ１５１６と１５１７に示すように設定する。
【００６３】
図１６は、本実施例に係るＰＣ１００が、ユーザにオブジェクトのペースト位置を選択させるためのメニューを一例としてファイル管理アプリケーションで表示するフローを示したものである。
【００６４】
Ｓ１６０１にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従いＯＳ２０２に対して登録されているペースト位置情報数を問い合わせる。Ｓ１６０２にて、ＣＰＵ１０６はＯＳ２０２の指示に従い管理しているペースト位置情報数を返す。一例を示すと図１５（ａ）で示したペースト位置の配列１５１２の数を取得して、ファイル管理アプリケーションに返す。Ｓ１６０３にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従い取得したペースト位置情報数を変数Ｔに設定し、変数Ｉを０に初期化する。Ｓ１６０４にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従い変数Ｔと変数Ｉを比較する。変数Ｉが変数Ｔより小さい場合は、ＣＰＵ１０６はＳ１６０５の処理を行い、変数Ｉが変数Ｔと等しい場合はＣＰＵ１０６はＳ１６１２の処理を行う。Ｓ１６０５にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従いＯＳ２０２に対して登録されているＩ番目のペースト位置情報の表示情報取得を行う。Ｓ１６０６にて、ＣＰＵ１０６はＯＳ２０２の指示に従い、ペースト位置情報を登録した文書編集アプリケーションに対して表示情報取得要求を行う。一例を示すと図１５（ａ）で示したペースト位置の配列１５１２から問い合わせのあったＩ番目のペースト位置情報を参照する。そして、通知関数１５１３を利用して、ペースト位置情報を登録した文書編集アプリケーションに対して、位置管理番号１５１４を伴って表示情報取得要求を行う。Ｓ１６０７にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いペースト位置情報を特定して表示情報をＯＳ２０２へ返す。一例を示すと図１５（ａ）で示した文書編集アプリケーションが管理を行っているペースト位置の配列１５０３から通知関数１５１３で通知された位置管理番号１５１４にてペースト位置情報を特定して表示情報をＯＳ２０２へ返す。なお、図１５（ａ）において関連するペースト位置管理番号１５０６が設定されていた場合、関連するペースト位置を一つの表示情報になるようにＳ１６０７にて調整を行ってもよいことは言うまでもない。Ｓ１６０８にて、ＣＰＵ１０６はＯＳ２０２の指示に従いＳ１６０５にて文書編集アプリケーションより返信された表示情報に、アプリケーション情報を付加してファイル管理アプリケーションに返す。一例を示すと図１５（ａ）で示したペースト位置の配列１５１２のアプリケーション情報を付加してファイル管理アプリケーションに返す。Ｓ１６０９にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従いＯＳ２０２より返信された表示情報からペースト対象オブジェクトがペースト可能かどうかを判断する。一例を示すと判断は、Ｓ１６０７にて文書編集アプリケーションより表示情報として返された図１５（ａ）で示したペーストを受け付けられるオブジェクトの種類１５０５を使用する。ペースト対象オブジェクトがペースト可能な場合は、ＣＰＵ１０６はＳ１６１０の処理を行い、ペースト対象オブジェクトがペーストできない場合はＣＰＵ１０６はＳ１６１１の処理を行う。このようにすることでペースト対象のオブジェクトの種類に合わせてペースト候補を表示することができる。Ｓ１６１０にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従いＯＳ２０２より返信された表示情報からペースト位置を指定する表示情報を生成する。一例を示すと、Ｓ１６０８にて付加された図１５（ａ）で示される１５１２のアプリケーション情報を使用してアプリケーションごとに分類して表示情報を生成する。このようにすることでペースト位置情報が複数アプリケーションである場合に、図１３（ｂ）に示したメニュー１３１４のようにアプリケーションごとに分類して表示することができる。Ｓ１６１１にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従い変数Ｉをインクリメントして処理をＳ１６０４に戻す。Ｓ１６１２にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従い生成したペースト位置を指定する表示情報を表示する。本実施例では表示情報としてペースト位置を指定する表示情報のみを説明したが、新規作成や保存など他の動作を指定する情報を付加しても問題ないことは言うまでもない。また、本実施例ではＳ１６０９にてペースト対象オブジェクトがペースト可能かどうかを判断したが、Ｓ１６０５にてペースト対象オブジェクトの種別を表示情報取得に付加することでＳ１６０７にて判断をさせてもよいことは言うまでもない。このようにすることで図１３（ｂ）に示した指定位置へのメニュー１３１３を表示し、メニュー１３１４及びメニュー１３１５を表示させることができる。また、Ｓ１６０１にてペースト位置情報数を問い合わせて処理することで、図１３（ｂ）に示したメニュー１３１５のようにペースト位置を並べて表示することができる。
【００６５】
図１７は、本実施例に係るＰＣ１００が、ユーザの操作に応答して、ペースト位置の選択を一例としてファイル管理アプリケーションで受け付けるフローを示したものである。
【００６６】
Ｓ１７０１にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従い選択されたペースト位置情報を示す変数Ｉを設定する。ここで、変数Ｉは図１６のＳ１６１０で生成した表示情報とユーザが指定した情報とから取得することができる。Ｓ１７０２にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従いＯＳ２０２に対して登録されているＩ番目のペースト位置情報にペースト対象のオブジェクト情報を付加してペースト処理を行うように依頼する。Ｓ１７０３にて、ＣＰＵ１０６はＯＳ２０２の指示に従い、ペースト対象のオブジェクト情報を伴うペースト要求を、ペースト位置情報を登録した文書編集アプリケーションに対して行う。一例を示すと図１５（ａ）で示したペースト位置の配列１５１２から問い合わせのあったＩ番目のペースト位置情報を参照する。そして、通知関数１５１３を利用して、位置管理番号１５１４と付加されているペースト対象のオブジェクト情報を伴うペースト要求を、ペースト位置情報を登録した文書編集アプリケーションに対して行う。Ｓ１７０４にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いペースト対象のオブジェクト情報を利用してペースト処理を行う。一例を示すと図１５（ａ）で示した文書編集アプリケーションが管理を行っているペースト位置の配列１５０３から通知関数１５１３で通知された位置管理番号１５１４とペースト対象のオブジェクト情報を利用してペースト処理を行う。なお、図１５（ａ）で示した文書編集アプリケーションが管理を行っているペースト位置の配列１５０３において関連するペースト位置管理番号１５０６が設定されていた場合、関連するペースト位置すべてにペースト処理を行ってもよいことは言うまでもない。Ｓ１７０５にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従い処理を行ったペースト位置情報を削除するようにＯＳ２０２に依頼する。一例を示すと図１５（ａ）で示したＯＳ２０２が管理を行っているペースト位置の配列１５１２から処理を行ったペースト位置情報を削除するように処理を行った位置管理番号１５１４を利用してＯＳ２０２に依頼する。Ｓ１７０６にて、ＣＰＵ１０６はＯＳ２０２の指示に従い指示されたペースト位置情報の削除を行う。一例を示すと図１５（ａ）で示したＯＳ２０２が管理を行っているペースト位置の配列１５１２から指示された位置管理番号１５１４と削除要求を行った文書編集アプリケーションの識別子を利用してペースト位置情報の削除を行う。
【００６７】
Ｓ１７０７にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いペースト位置情報の削除を行う。一例を示すと図１５（ａ）で示したアプリケーションが管理を行っているペースト位置の配列１５０３と編集対象の文字データとコントロールデータのメモリ１５０２からペースト位置情報の削除を行う。このようにＳ１７０５からＳ１７０７でペーストを行ったペースト位置情報の削除を行うことで不要にペースト位置情報が残ることを防ぐことができる。なお、ユーザがペースト操作時にペーストを行ったペースト位置情報の削除を処理しないように指示を行いペースト位置情報を明示的に残すことでペーストを行った位置に再度ペーストが可能となるのは言うまでもない。Ｓ１７０８にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いＳ１７０４にて処理を行ったペースト位置を表示するように表示位置などを変更する。このようにすることで、ユーザが文書編集アプリケーションを選択して前面にアプリケーションのウインドウが移動した際にペーストによって変更のあった箇所を確認することができる。Ｓ１７０９にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いアプリケーションが管理を行っているペースト位置情報が残っているかどうかを確認する。一例を示すと図１５（ａ）で示したアプリケーションが管理を行っているペースト位置の配列１５０３が残っているかどうかを確認する。
【００６８】
ペースト位置情報が残っている場合は、ＣＰＵ１０６はＳ１７１１の処理を行い、ペースト位置情報が残っていない場合はＣＰＵ１０６はＳ１７１０の処理を行う。
【００６９】
Ｓ１７１０にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従い、そのウインドウを最前面に移動させる。このようにすることで、ユーザが文書編集アプリケーションで指定したすべてのペースト位置にペーストが行われるとウインドウが最前面に移動されるので、ユーザは文書編集アプリケーションを選択することなくペースト内容を確認することができる。Ｓ１７１１にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従いＯＳ２０２にペースト処理結果を戻す。
【００７０】
Ｓ１７１２にて、ＣＰＵ１０６はＯＳ２０２の指示に従いファイル管理アプリケーションにペースト処理結果を戻す。このようにすることで図１３（ｂ）に示した項目１３１６をユーザが選択すると、図１３（ａ）に示すペースト位置１３０１に、図１３（ｃ）に示すようにデータアイコン１３１２に対応するデータがペーストされている状態となる。
【００７１】
図１８は、本実施例に係るＰＣ１００が、アプリケーションにおいて編集が行われた際の選択されたペースト位置を補正するフローを示したものである。
【００７２】
Ｓ１８０１にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従い編集内容を判断する。
【００７３】
ＣＰＵ１０６は編集内容が挿入の場合は処理を終了し通常の挿入処理を行う。ＣＰＵ１０６は編集内容が削除の場合はＳ１８０２の処理を行う。なお、置換の場合は、削除と挿入が行われたものとして削除処理を行った後挿入処理を行う。挿入の場合に補正を必要としない一例を示す。図１５（ａ）に示したＣＰＵ１０６が文書編集アプリケーションの指示に従い管理を行っている編集対象の文字データとコントロールデータのメモリ１５０２における挿入では、コントロールデータ１５０７，１５０８は挿入に合わせてメモリ内で移動する。したがって、補正を必要としない。
【００７４】
Ｓ１８０２にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従い削除対象の範囲を取得する。Ｓ１８０３にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従い削除対象の範囲に完全に含まれるペースト位置コントロールに対応したペースト位置情報を削除する。また、削除したペースト位置情報に関連付けられているペースト位置情報があればそれを補正する。一例を示すと図１５（ａ）に示したＣＰＵ１０６が文書編集アプリケーションの指示に従い管理を行っている編集対象の文字データとコントロールデータのメモリ１５０２のような場合には、削除範囲内にコントロールデータが存在しないかどうかを確認する。コントロールデータが存在する場合は、コントロールデータと組になっているペースト位置の配列１５０３から削除するペースト位置情報を特定する。特定した削除するペースト位置情報が他のペースト位置情報の１５０６に関連付けられたまま残らないように調整を行う。特定したペースト位置情報を削除し、メモリ１５０２の削除範囲のデータを削除する。このとき削除範囲内のコントロールデータの判断は削除対象の範囲にコントロールデータが完全に含まれる場合だけでなく、削除範囲内とコントロールデータの開始終了で示される範囲の一部が重なる場合にそのコントロールデータを削除対象としてもよい。Ｓ１８０４にて、ＣＰＵ１０６は文書編集アプリケーションの指示に従い削除対象のペースト位置情報を削除するようにＯＳ２０２に依頼する。
【００７５】
一例を示すと図１５（ａ）で示したＯＳ２０２が管理を行っているペースト位置の配列１５１２から削除対象のペースト位置情報を削除するように位置管理番号１５１４を利用してＯＳ２０２に依頼する。Ｓ１８０５にて、ＣＰＵ１０６はＯＳ２０２の指示に従い指示されたペースト位置情報の削除を行う。一例を示すと図１５（ａ）で示したＯＳ２０２が管理を行っているペースト位置の配列１５１２から指示された位置管理番号１５１４と削除要求を行った文書編集アプリケーションの識別子を利用してペースト位置情報の削除を行う。このようにすることでユーザがペースト位置の指定を行った文書編集アプリケーションにおける編集時のペースト位置の補正を行うことができる。
【００７６】
図１９は、本実施例に係るＰＣ１００においてファイル管理アプリケーションのウインドウ上でペースト位置を表示するメニューの一例を示している。図１９（ａ）の１９００は、ユーザがファイル管理アプリケーションにおいてペースト位置をショートカットや右クリックなどでフローティングメニューを表示させた例を示している。１９０１は、ペースト対象のアプリケーション名を示し、１９０２はペースト位置を示している。例では、ペースト対象のアプリケーション名とペースト位置を階層化しているが、図１９（ｂ）の１９０４のようにペースト対象のアプリケーション名とペースト位置をまとめてもよい。なお、図１９（ｂ）の１９０３は、一例としてファイル管理アプリケーションのメニューにペースト位置を指定するメニューがある場合の例を示している。
【００７７】
なお、本実施例に係るＰＣ１００のＣＰＵ１０６はＯＳ２０２にしたがって、アプリケーションの終了を検知すると、当該アプリケーションに関係するペースト位置情報を削除する。
【００７８】
一例を示すと図１５（ａ）で示したＯＳ２０２が管理を行っているペースト位置の配列１５１２からアプリケーションの終了を特定したアプリケーションに関係づけられているペースト位置情報を削除する。このようにすることでアプリケーションが強制終了されたりした場合でもＯＳ２０２が管理を行っているペースト位置の配列１５１２からペースト位置情報を削除できるため、ユーザのペースト位置選択で不要なペースト位置を表示することを防ぐことができる。
【００７９】
なお、上記では文書編集アプリケーションを例にあげて説明したが、画像編集アプリケーションでも同様に本発明を実現できる。ユーザが文書ファイルにペースト位置を指定するのと同様に、画像ファイルにペースト位置を指定すればよい。ここで、文書編集アプリケーションの代わりに画像編集アプリケーションを用いた場合の画像編集アプリケーションとＯＳ２０２のメモリに保存したペースト位置の管理形態の一例を図１５（ｂ）に示す。１５２０は、ＣＰＵ１０６が図１４のＳ１４０５の処理において画像編集アプリケーションに割り当てたメモリイメージを示したものである。１５２１は、ＣＰＵ１０６がＳ１４０７の処理においてＯＳ２０２に割り当てたメモリイメージを示したものである。１５２１に示される１５３１から１５３６は、図１５（ａ）で示したＣＰＵ１０６がＳ１４０７の処理においてＯＳ２０２に割り当てたメモリイメージと同じであるので説明を省略する。１５２２は、ＣＰＵ１０６が画像編集アプリケーションの指示に従い管理を行っているペースト位置の配列を示したものである。１５２３は、ペーストの開始位置を示し編集領域の左上からのピクセルでのＸ軸、Ｙ軸を示している。１５２４は、ペーストの終了位置を示し編集領域の左上からのピクセルでのＸ軸、Ｙ軸を示している。１５２５は、オブジェクトがペーストされたかどうかなどのペースト状態を示している。１５２６は、ペーストを受け付けられるオブジェクトの種類を示している。一例を示すと、図１４のＳ１４０５にて、ＣＰＵ１０６は画像編集アプリケーションの指示に従いユーザが指定したペースト位置でペーストできるオブジェクトの種類を取得し、その種類のオブジェクトのみがペーストを許されるように設定を行う。また、ペースト位置の指定時だけでなくダイアログを利用した設定画面を用意してユーザがオブジェクトの種類を設定、解除できるようにしてもよい。１５２７は、関連するペースト位置管理番号を示しペースト位置を複数まとめて処理の対象とする場合に利用する。一例を示すと、ペースト位置の配列１５２２で管理されているペースト位置管理番号Ｆを示す１５３０は、関連するペースト位置管理番号に関連位置管理番号としてペースト位置管理番号Ｅを示す１５２８が設定されている。このことから、ペースト位置管理番号Ｆを示す１５３０はペースト位置管理番号Ｅを示す１５２９と関連付けられていることがわかる。なお、ペースト位置の関連の設定、解除はユーザが設定画面で設定、解除できる。
【００８０】
また、図１９（ｃ）の１９０５は、ペースト位置が画像編集アプリケーションによって生成された画像ファイルである場合に、ファイル管理アプリケーションのウインドウにおいてペースト位置の選択ウインドウを表示させた例を示している。１９０６は、アプリケーションを示すアイコンを表示させた例を示している。１９０７は、ペースト位置を示すマークを表示させた例を示している。マークは、ユーザがペースト位置の指定を行った画像編集アプリケーション上で表示しているペースト位置と同じものを表示していてもよい。１９０８は、ペースト位置を示すマークのチップヘルプを表示させた例を示している。
【００８１】
１９０９は、ペースト位置のオブジェクトを表示させた例を示している。オブジェクトは、ユーザがペースト位置の指定を行った画像編集アプリケーション上でペースト位置に位置指定した図形を示している。１９１０は、ペースト位置を示すオブジェクトのチップヘルプを表示させた例を示している。なお、例にあるようにチップヘルプは１９０８、１９１０にあるようにペースト位置の指定を行った画像編集アプリケーションに合わせて内容を変えてもよいことは言うまでもない。１９１１は、選択ウインドウをクローズさせるボタンを表示している。例では、選択ウインドウとしたがメニュー内にアイコンやマーク、オブジェクトを表示するようにしてもよいことは言うまでもない。
【００８２】
また、上記では文書編集アプリケーションと画像編集アプリケーションを例にあげて説明したが、ファイル管理アプリケーションでも同様に本発明を実現できる。ユーザが文書ファイルにペースト位置を指定するのと同様に、ファイル管理アプリケーションにペースト位置を指定すればよい。ここで、文書編集アプリケーションの代わりにファイル管理アプリケーションを用いた場合のファイル管理アプリケーションとＯＳ２０２のメモリに保存したペースト位置の管理形態の一例を図１５（ｃ）に示す。
【００８３】
１５４０は、ＣＰＵ１０６が図１４のＳ１４０５の処理においてファイル管理アプリケーションに割り当てたメモリイメージを示したものである。１５４１は、ＣＰＵ１０６がＳ１４０７の処理においてＯＳ２０２に割り当てたメモリイメージを示したものである。１５４１に示される１５５２から１５５７は、図１５（ａ）で示したＣＰＵ１０６がＳ１４０７の処理においてＯＳ２０２に割り当てたメモリイメージと同じであるので説明を省略する。１５４２は、ＣＰＵ１０６がファイル管理アプリケーションの指示に従い管理を行っているペースト位置の配列を示したものである。１５４３は、ペーストを行いたいフォルダを示している。１５４４は、ペーストの開始位置を示しフォルダ表示領域の左上からのピクセルでのＸ軸、Ｙ軸を示している。１５４５は、ペーストの終了位置を示しフォルダ表示領域の左上からのピクセルでのＸ軸、Ｙ軸を示している。１５４６は、ペーストに利用したかどうかなどのペースト状態を示している。１５４７は、ペーストを受け付けられるオブジェクトの種類を示している。一例を示すと、図１４のＳ１４０５にて、ＣＰＵ１０６はファイル管理アプリケーションの指示に従いユーザが指定したペースト位置でペーストできるオブジェクトの種類を取得し、その種類のオブジェクトのみがペーストを許されるように設定を行う。また、ペースト位置の指定時だけでなくダイアログを利用した設定画面を用意してユーザがオブジェクトの種類を設定、解除できるようにしてもよい。１５４８は、関連するペースト位置管理番号を示しペースト位置を複数まとめて処理の対象とする場合に利用する。一例を示すと、ペースト位置の配列１５４２で管理されているペースト位置管理番号Ｋを示す１５５１は、関連するペースト位置管理番号に関連位置管理番号としてペースト位置管理番号Ｊを示す１５４９が設定されている。このことから、ペースト位置管理番号Ｋを示す１５５１はペースト位置管理番号Ｊを示す１５５０と関連付けられていることがわかる。なお、ペースト位置の関連の設定、解除はユーザが設定画面で設定、解除できる。
【００８４】
本実施例に示したように、ファイル管理アプリケーションのように文書編集アプリケーションや画像編集アプリケーションだけでなくペースト処理を扱うことができるアプリケーションすべてで行えることは言うまでもない。
【００８５】
本実施例によれば、ユーザはウインドウに配置されたオブジェクトを他のウインドウの所望の位置に移動したいときに、オブジェクトのドラッグ操作を所望の位置まで継続せずに済むので、操作にかかる手間を軽減できる。また、ユーザがオブジェクトのドラッグ中に所望の位置を見失ってしまい、操作をやり直す事態を防ぐことができる。すなわち、ウインドウに配置されたオブジェクトを簡単な操作で、他のウインドウの所望の位置に移動できる。
【実施例４】
【００８６】
実施例３のフローティングメニューの代わりに、オブジェクトのドロップ操作を受け付けるフローティングウインドウを表示するようにしてもよい。フローティングウインドウはペースト位置と対応付けられており、ペースト位置の数だけ存在し、マウスカーソルの近傍に表示される。そして、ユーザがオブジェクトのドロップ操作をしたフローティングウインドウと対応するペースト位置に、オブジェクトと対応するデータがペーストされる。
【００８７】
なお、本実施例では上述の実施例１と同様の構成については説明を省略し、本実施例に特有の構成について詳細に説明する。
【００８８】
図１３（ｄ）は、本実施例に係るＰＣ１００において、ドラッグされたオブジェクトのドロップ先が指定された様子の一例を示す。ペースト位置が指定された後、ペースト位置と関連付けられたフローティンウインドウ１３２３をファイル管理アプリケーションのウインドウに表示する。
【００８９】
図８は、実施例４に係る情報提供システムでドロップを行いたい位置の指定が行われた場合の処理を示すフローチャートである。Ｓ８０１にて、ドロップを行いたい位置の指定がポインティングデバイスで行われたかポインティングデバイス以外で行われたかを判断する。ドロップを行いたい位置の指定がポインティングデバイスで行われた場合はＳ８０３に進み、ドロップを行いたい位置の指定がポインティングデバイス以外で行われた場合はＳ８０２に進む。Ｓ８０２では、編集領域のフォーカスの位置、例えばカーソルの位置や範囲指定されている場合は範囲指定されている領域などを取得する。なお、不図示ではあるが、ポインティングデバイスを利用しない例として、他に矢印キーなどで仮想表示されたポインティングデバイスを操作できるモードとなり、キー操作のみで位置や範囲の指定を行う方法で指定された位置や領域を取得してもよい。Ｓ８０３では、ポインティングデバイスの位置、例えばポインティングデバイスがクリックされた位置やポインティングデバイスで範囲指定された場合は範囲指定されている領域などを取得する。なお、文書の編集アプリケーションなどのアプリケーションではポインティングデバイスがクリックされた位置の近傍で適切な位置にカーソルが移動するが、ここで取得する位置は同様にポインティングデバイスがクリックされた位置の近傍で適切な位置に変換を行ってもよい。Ｓ８０４にて、Ｓ８０２、Ｓ８０３で取得を行ったドロップを行いたい位置がドロップ可能位置かどうかを判断する。ドロップ可能位置として不適切な場合は処理を終了し、ドロップが可能な位置の場合はＳ８０５へ進む。Ｓ８０５にて、指定されたドロップを行いたい位置を保存する。このとき、すでに保持しているドロップを行いたい位置と指定されたドロップを行いたい位置が重なる場合は、すでに保持しているドロップと指定されたドロップを行いたい位置を置き換えてもよい。また、ドロップを行いたい位置にドロップできるオブジェクトに制限がある場合、ドロップ種別としてあわせて保存してもよい。Ｓ８０６にて、保存しているドロップを行いたい位置情報からドロップ位置表示を行い処理を終了する。不図示ではあるが、編集領域のドロップ位置表示を行った位置に対応するマークを表示する処理を行ってもよいことは言うまでもない。
【００９０】
図９は、実施例４に係る情報提供システムでドロップを行いたい位置の管理形態の一例を示す。９００は、文字データとコントロールデータの管理を行っているメモリのイメージを示したものである。文書などでは、このように管理しているデータと使用するフレームデータを組み合わせてフレームにデータを順に詰めていくことで文書を形成していることが多い。９０１は、管理するドロップを行いたい位置の配列を示したものである。９０２は、範囲指定でない場合のドロップ位置をコントロールデータとして文字データと一緒に保持している状態を示し、配列９０１の９０８で管理されているドロップ位置管理番号Ａと関連付けられている。９０３は、範囲指定の場合のドロップ位置をコントロールとして文字データと一緒に保持している状態を示し、配列９０１の９０９で管理されているドロップ位置管理番号Ｂと関連付けられている。一例を示すと、９０３により「ＡＢＣＤＥＦＧ」の文字が範囲指定されていることがわかる。９０４は、ドロップに利用したかどうかなどのドラッグ状態を示している。９０５は、ドロップを受け付けられるオブジェクトの種類を示している。一例を示すと、図８のＳ８０５にて指定したドロップを行いたい位置に、ドロップできるオブジェクトとして画像と図形のオブジェクトのみが許されるような場合に設定を行う。また、不図示ではあるが、ドロップ位置の指定時だけでなくダイアログを利用した設定画面を用意してオブジェクトの種類を設定、解除できるようにしてもよい。９０６は、関連するドロップ位置管理番号を示しドロップ位置を複数まとめて処理の対象とする場合に利用する。一例を示すと、９０７により配列９０１の９０９で管理されているドロップ位置管理番号Ｂは、９０８で管理されているドロップ位置管理番号Ａと関連付けられていることがわかる。なお、本発明ではアプリケーションによって管理しやすい形態でドロップ位置管理がされればよく、本発明おいてドロップ位置管理の形態が限定されるものではない。
【００９１】
図２０は、実施例４に係る情報提供システムにおけるドロップ位置表示の処理を示すフローチャートである。Ｓ２００１にて、管理しているドロップ位置から関連するドロップ位置が設定されていないドロップ位置の数を判断する。図９を例にすると９０９で管理されているドロップ位置管理番号Ｂは９０８で管理されているドロップ位置管理番号Ａと関連付けられている。したがって、関連するドロップ位置が設定されていないドロップ位置は９０８で管理されているドロップ位置管理番号Ａだけとなる。関連するドロップ位置が設定されていないドロップ位置がない場合はＳ２００６へ進み、関連するドロップ位置が設定されていないドロップ位置がある場合はＳ２００２へ進む。Ｓ２００２にて、ドロップ位置表示ウインドウの状態を確認する。ドロップ位置表示ウインドウがあればＳ２００４に進み、ドロップ位置表示ウインドウがなければＳ２００３に進む。Ｓ２００３にて、ドロップ位置表示ウインドウを生成する。生成したドロップ位置表示ウインドウを最前面に固定表示してもよい。このようにすることで、ドロップ位置表示ウインドウを前面にしてもドロップ位置表示ウインドウが隠されることがなくなりドラッグ＆ドロップを行いやすくなる。Ｓ２００４にて、関連するドロップ位置が設定されていないドロップ位置の数からドロップ位置の表示に必要な領域サイズを求めドロップ位置表示ウインドウをリサイズする。ドロップ位置の数あるいはドロップ位置の表示に必要な領域サイズが一定数を超えた場合、ドロップ位置表示ウインドウ内でドロップ位置の表示でスクロールを行うことを前提にして必要な領域サイズを求めてもよい。あるいは、ドロップ位置の数あるいはドロップ位置の表示に必要な領域サイズが一定数を超えた場合、ドロップ位置の表示方法を小さいサイズに切り替えるようにＳ２００５のドロップ位置の表示をコントロールしてもよい。なお、ドロップ位置表示ウインドウ内でドロップ位置がスクロールされても、ドロップ位置表示ウインドウ内にはドロップ位置しかなく、他のデータと混在しているウインドウの中からドロップ位置を探すより容易に見つけることが出来る。また、ドロップ位置表示ウインドウ内でドロップ位置がスクロールされても、ドロップ位置表示ウインドウの大きさが小さいため、大きな領域を持つウインドウの中をドロップ位置までドラッグするより容易に操作できる。
【００９２】
Ｓ２００５にて、ドロップ位置表示ウインドウに関連するドロップ位置が設定されていないドロップ位置の表示を行い処理を終了する。他のドロップ位置から関連付けをされているドロップ位置の表示では、まとめられていることを示すアイコンやマークを付けるなど他のドロップ位置から関連付けをされていないドロップ位置の表示と区別がつくように表示を行ってもよい。図９を例にすると９０８で管理されているドロップ位置管理番号Ａは、他のドロップ位置９０９で管理されているドロップ位置管理番号Ｂから関連付けをされているためまとめられていることを示すアイコンやマークを付けて表示を行う。また、一度ドロップ処理を行ったドロップ位置の表示では、ドロップ処理を行ったことを示すアイコンやマークを付けるなど区別がつくように表示を行ってもよい。Ｓ２００６にて、ドロップ位置表示ウインドウの削除を行う。このように、Ｓ２００６にてドロップ位置表示ウインドウの削除することで管理しているドロップ位置がなくなった場合にドロップ位置表示ウインドウを表示しないようにできる。Ｓ２００３およびＳ２００６にて、アプリケーション実行時にウインドウを生成しておき生成時に表示状態、削除時に非表示状態にウインドウの状態を変えるようにしてもよい。アプリケーション実行時にウインドウを生成しておく場合、生成したドロップ位置表示ウインドウを最前面に固定表示してもよい。
【００９３】
このようにすることで、ドロップ位置表示ウインドウを前面にしても表示状態のドロップ位置表示ウインドウが隠されることがなくなりドラッグドロップを行いやすくなる。Ｓ２００７にて、ドロップを行いたい位置の指定を行ったウインドウが他のウインドウの下であった場合そのウインドウを前面に移動する。これにより、ドロップが行われた場合に対象のドロップ位置を表示しない場合に、すべてのドロップ位置にドロップが行われるとドロップ位置表示ウインドウを表示しない。さらにそれだけでなくドロップを行いたい位置の指定を行ったウインドウが前面に移動するのでドロップ結果を容易に見ることができる。
【００９４】
また、Ｓ２００７を省略するとドロップを行いたい位置の指定を行ったウインドウが前面に移動しなくなるが、他のウインドウの操作を継続して行いやすいので設定で処理を制御してもよい。
【００９５】
このように、Ｓ２００４およびＳ２００５、Ｓ２００６にて表示するドロップ位置に合わせてドロップ位置表示ウインドウの表示を変えることで、指定されたドロップ位置の追加や削除、まとめに合わせて表示を行うことができる。以上の説明は、関連が設定されているドロップ位置の表示を例に説明を行ったが、関連の設定を持たないドロップ位置の管理であっても処理が変わらないことは言うまでもない。また、ドロップ位置表示ウインドウを独立したウインドウとして説明を行ったが、ドロップ位置表示ウインドウの代りにツールバーなど他のコマンド表示などで利用しているウインドウ内にドロップ位置表示領域を設けるようにしてもよい。また、一つのドロップ位置表示ウインドウ内に表示するドロップ位置をすべて表示するとして説明を行ったが、ドロップ位置一つ一つにドロップ位置表示ウインドウを使用してもよい。
【００９６】
図２１は、実施例４に係る情報提供システムにおいてドロップ位置表示ウインドウにドロップが行われた場合の処理を示すフローチャートである。
【００９７】
Ｓ２１０１にて、ドロップ位置の確認を行う。ドロップ位置がドロップ位置表示の位置でなければ、処理を終了する。ドロップ位置がドロップ位置表示の位置であれば、Ｓ２１０２へ進む。
【００９８】
Ｓ２１０２にて、ドロップ位置に表示していたドロップ位置情報を取得する。ドロップ位置に表示していたドロップ位置情報が他のドロップ位置から関連付けをされている場合は、関連が設定されているドロップ位置情報もすべて取得する。図９を例にすると９０８で管理されているドロップ位置管理番号Ａがドロップ位置に表示していたドロップ位置情報であった場合、ドロップ位置９０９で管理されているドロップ位置管理番号Ｂから関連付けをされている。したがって、９０８で管理されているドロップ位置管理番号Ａとドロップ位置９０９で管理されているドロップ位置管理番号Ｂが取得対象となる。
【００９９】
Ｓ２１０３にて、ドロップされたオブジェクト情報を取得する。Ｓ２１０４にて、Ｓ２１０３にて取得したドロップされたオブジェクト情報で示される種別とＳ２１０２にて取得したすべてのドロップ位置情報で示される種別を判断する。ドロップされたオブジェクトがドロップ位置情報を示していた場合はＳ２１０９へ進み、ドロップされたオブジェクトを処理できる場合はＳ２１０５へ進む。ドロップされたオブジェクトをＳ２１０２にて取得したすべてのドロップ位置で処理できない場合は処理を終了する。このとき、処理できないことをユーザに通知するウインドウを表示して処理を終了するようにしてもよい。Ｓ２１０５にて、Ｓ２１０２にて取得したドロップ位置情報のうちドロップされたオブジェクトを処理できるドロップ位置情報は編集により削除が行われたものとして削除する。ドロップ位置情報削除の処理の詳細は後述する。Ｓ２１０６にて、Ｓ２１０２にて取得したドロップ位置情報のうちドロップされたオブジェクトを処理できるドロップ位置にオブジェクトがドロップがされたこととして処理を行う。このように、関連が設定されているドロップ位置に対してドラッグが行われた場合には関連が設定されているドロップ位置にまとめてドロップを行うことができる。Ｓ２１０７にて、ドロップ処理が行われた位置が編集画面の外であった場合ドロップを行ったオブジェクトを表示するようにスクロールを行う。このようにドロップを行ったオブジェクトを表示するようにスクロールすることでドロップ結果を容易に見ることができる。スクロールは、関連が設定されているドロップ位置情報の最もドロップ位置管理番号の大きいドロップ位置情報または最もドロップ位置の大きいドロップ位置情報のドロップ位置を利用して行ってもよい。Ｓ２１０７を省略することで、スクロールにより処理に時間がかかる場合などスクロールを停止させることもできる。この場合不図示ではあるが、ドロップを行いたい位置の指定を行ったウインドウを前面に移動する場合に最後にドロップを行った位置を表示するようにスクロールするようにしてもよい。Ｓ２１０８にて、Ｓ２１０６にて行ったドロップ処理でドロップを行ったオブジェクトがドロップを行いたい位置として指定されたものとしてドロップ位置指定を行い処理を終了する。このとき、Ｓ２１０２にて取得したすべてのドロップ位置情報に対して関連するドロップ位置情報の再構成を行う。
【０１００】
このようにＳ２１０６にて行ったドロップ処理のオブジェクトを再度ドロップ位置に指定することでドロップを繰り返して同じ位置に行うことが容易となる。Ｓ２１０８を省略することで、ドロップに使用した位置をドロップ位置表示から削除しドロップを行っていないドロップ位置を容易に判別するようにすることもできる。
【０１０１】
このように、Ｓ２１０８を省略するとドロップを繰り返して同じ位置に行うことができなくなるが、ドロップを行っていないドロップ位置を容易に判別できるので設定またはドロップ時のキーの押下状態で処理を制御してもよい。Ｓ２１０９にて、ドロップデータの判断を行う。ドロップデータが、ドロップ位置の情報と異なる場合はＳ２１１０に進み、ドロップ位置の情報と同じである場合は処理を終了する。Ｓ２１１０にて、ドロップされたドロップ位置情報をドロップ位置のドロップ位置情報と関連付ける。
【０１０２】
Ｓ２１１１にて、ドロップ位置表示を図２０を使用して説明を行ったように関連が設定されているドロップ位置を考慮して処理を行い処理を終了する。このように、ドロップ位置がドロップされるとドロップ位置を関連付けることができる。関連の設定を持つドロップ位置の管理においてドロップ位置表示ウインドウにドロップが行われた場合を例に説明を行ったが、関連の設定を持たないドロップ位置の管理であっても処理が変わらないことは言うまでもない。
【０１０３】
不図示ではあるが、ドロップ位置の関連付けは説明を行ったドラッグだけでなくダイアログを利用した設定画面を用意して関連付けを設定、解除できるようにしてもよい。
【０１０４】
図２２は、実施例４に係る情報提供システムにおけるドロップ位置表示ウインドウの一例を示している。ウインドウ２２０１では、ドロップ位置を２２０２に示すようなアイコンとして表示を行う。アイコンへのポインティングデバイスオーバ時には２２０３に示すようにアイコンに対応したチップヘルプとして、行数、列数に代表される位置情報を示す。チップヘルプとして行数、列数に代表される位置情報以外に、範囲指定されている場合はその文字列やオブジェクト名、ドロップ位置指定を行った時間や指定順序の情報、ドロップ状態の情報を組み合わせて表示してもよい。ウインドウ２２０４では、ドロップ位置を２２０５に示すような行数、列数に代表される位置情報を示す。位置情報として行数、列数に代表される位置情報以外に、範囲指定されている場合はその文字列やオブジェクト名、ドロップ位置指定を行った時間や指定順序の情報、ドロップ状態の情報を組み合わせて表示してもよい。ウインドウ２２０６では、ドロップ位置を２２０７に示すような範囲指定されているオブジェクトで描画されるもの、あるいは、それらを縮小したものの表示を行う。ポインティングデバイスオーバ時には、２２０８に示すように対応したチップヘルプとして、行数、列数に代表される位置情報を示す。チップヘルプとして行数、列数に代表される位置情報以外に、範囲指定されている場合はその文字列やオブジェクト名、ドロップ位置指定を行った時間や指定順序の情報、ドロップ状態の情報を組み合わせて表示してもよい。このようにすることで、複数ドロップ位置が指定されても容易に区別がつくようにすることができる。
【０１０５】
図２３は、実施例４に係る情報提供システムにおいてドラッグ開始時にドラッグオブジェクトの種別に合わせてドロップ位置表示ウインドウのコントロールとドロップ位置の表示を行う処理のフローチャートである。Ｓ２３０１にて、イベントの取得を行いイベントの判断を行う。イベントがドラッグ開始の場合はＳ２３０２へ進み、ドロップまたはドラッグ中止の場合はＳ２３１０へ進む。Ｓ２３０２にて、管理しているドロップ位置の数を判断する。
【０１０６】
管理しているドロップ位置がない場合は処理を終了し、管理しているドロップ位置がある場合は、Ｓ２３０３へ進む。Ｓ２３０３にて、ドラッグ中のオブジェクトの種類を取得して管理しているドロップ位置をドロップ種別でフィルタリングする。図９を例にするとフィルタリングは、９０５のドロップを受け付けられるオブジェクトの種類を利用しドラッグ中のオブジェクトの種類と同じ種類を示すドロップ位置を抽出する。Ｓ２３０４にて、フィルタリング結果の判断を行う。フィルタリング結果、対象となるドロップ位置がない場合はＳ２３０９へ進み、対象となるドロップ位置情報がある場合はＳ２３０５へ進む。Ｓ２３０５にて、ドロップ位置表示ウインドウの状態を確認する。ドロップ位置表示ウインドウがあればＳ２３０７に進み、ドロップ位置表示ウインドウがなければＳ２３０６に進む。Ｓ２３０６にて、ドロップ位置表示ウインドウを生成する。生成したドロップ位置表示ウインドウを最前面に固定表示してもよい。このようにすることで、ドロップ位置表示ウインドウを前面にしてもドロップ位置表示ウインドウが隠されることがなくなりドラッグドロップを行いやすくなる。Ｓ２３０７にて、フィルタリングしたドロップ位置の数からドロップ位置の表示に必要な領域サイズを求めドロップ位置表示ウインドウをリサイズする。ドロップ位置の数あるいは、ドロップ位置の表示に必要な領域サイズが一定数を超えた場合、ドロップ位置表示ウインドウ内でドロップ位置の表示でスクロールを行うことを前提にして必要な領域サイズを求めてもよい。あるいは、ドロップ位置の数あるいはドロップ位置の表示に必要な領域サイズが一定数を超えた場合、ドロップ位置の表示方法を小さいサイズに切り替えるようにＳ２３０８のドロップ位置の表示をコントロールしてもよい。Ｓ２３０８にて、ドロップ位置表示ウインドウにフィルタリングしたドロップ位置の表示を行い処理を終了する。Ｓ２３０９にて、ドロップ位置表示ウインドウの削除を行う。このように、Ｓ２３０９にてドロップ位置表示ウインドウの削除することで、フィルタリング結果ドロップ位置がなくなった場合にドロップ位置表示ウインドウを表示しないようにできる。Ｓ２３０６およびＳ２３０９にて、アプリケーション実行時にウインドウを生成しておき、生成時に表示状態、削除時に非表示状態にウインドウの状態を変えるようにしてもよい。アプリケーション実行時にウインドウを生成しておく場合、生成したドロップ位置表示ウインドウを最前面に固定表示してもよい。このようにすることで、ドロップ位置表示ウインドウを前面にしても表示状態のドロップ位置表示ウインドウが隠されることがなくなりドラッグドロップを行いやすくなる。Ｓ２３１０にて、ドロップ位置表示を図２０に示したようなフローにて処理を行う。このようにすることで、ドラッグを行っているオブジェクトに対応したドロップ位置のみ表示することができる。
【０１０７】
このように、メニューの代わりにフローティングウインドウを用いてオブジェクトのペースト位置を指定することができ、ユーザの使い勝手が向上する。
【０１０８】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2010152868.tif 000003
【図２】
2010152868.tif 000004
【図３】
2010152868.tif 000005
【図４】
2010152868.tif 000006
【図５】
2010152868.tif 000007
【図６】
2010152868.tif 000008
【図７】
2010152868.tif 000009
【図８】
2010152868.tif 000010
【図９】
2010152868.tif 000011
【図１０】
2010152868.tif 000012
【図１１】
2010152868.tif 000013
【図１２】
2010152868.tif 000014
【図１３】
2010152868.tif 000015
【図１４】
2010152868.tif 000016
【図１５】
2010152868.tif 000017
【図１６】
2010152868.tif 000018
【図１７】
2010152868.tif 000019
【図１８】
2010152868.tif 000020
【図１９】
2010152868.tif 000021
【図２０】
2010152868.tif 000022
【図２１】
2010152868.tif 000023
【図２２】
2010152868.tif 000024
【図２３】
2010152868.tif 000025