(57)【要約】【課題】  複数のモニタにより表示されている表示領域に配置されるウィンドウを、適切なモニタに基づく位置に表示させる。【解決手段】  所定の表示領域において複数のモニタのそれぞれが表示する部分と、前記所定の表示領域において所定のウィンドウが配置される位置に基づいて、サイズ変更後の前記所定のウィンドウを配置する。【選択図】  図４
2018190340.tif 000002
【特許請求の範囲】
【請求項１】
所定の表示領域の一部を第１のモニタに表示させ、前記所定の表示領域の他の一部を第２のモニタに表示させる表示制御装置により実行されるプログラムであって、
前記所定の表示領域において前記第１のモニタが表示する部分と、前記第２のモニタが表示する部分と、前記所定の表示領域において所定のウィンドウが配置される位置に基づいて、前記所定のウィンドウのサイズが変更された場合にサイズ変更後の前記所定のウィンドウが表示される、前記所定の表示領域における位置を決定する決定手段と、
前記決定手段により決定された位置にサイズ変更後の前記所定のウィンドウが配置されるように、サイズ変更後の前記所定のウィンドウの少なくとも一部を、前記第１のモニタと前記第２のモニタの少なくとも１つに表示させる表示制御手段と、
として前記表示制御装置を機能させることを特徴とするプログラム。
【請求項２】
前記所定のウィンドウのサイズが変更されることにより、前記所定の表示領域における前記第１のモニタと前記第２のモニタのいずれかが表示する部分から、前記所定のウィンドウがはみ出るか判定する判定手段として前記表示制御装置をさらに機能させ、
前記表示制御手段は、前記判定手段により前記所定のウィンドウがはみ出ると判定されたことに基づいて、前記決定手段により決定された位置にサイズ変更後の前記所定のウィンドウが配置されるように、サイズ変更後の前記所定のウィンドウの少なくとも一部を、前記第１のモニタと前記第２のモニタの少なくとも１つに表示させることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記所定のウィンドウにおいて情報が表示される部分が追加されるように、前記所定のウィンドウのサイズを変更する変更手段として前記表示制御装置をさらに機能させ、
前記判定手段は、前記変更手段による情報が表示される部分の追加により、前記所定のウィンドウがはみ出るか判定することを特徴とする請求項２に記載のプログラム。
【請求項４】
前記決定手段は、前記判定手段により前記所定のウィンドウがはみ出ると判定された場合、前記変更手段により情報が表示される部分が追加された前記所定のウィンドウの位置を、前記所定の表示領域において前記第１のモニタが表示する部分と、前記第２のモニタが表示する部分とに基づいて調整することを特徴とする請求項３に記載のプログラム。
【請求項５】
前記決定手段は、前記判定手段により前記所定のウィンドウがはみ出ると判定された場合、前記所定のウィンドウにおいて前記追加が行われる前に表示されていた情報の表示位置が変更されるように、サイズ変更後の前記所定のウィンドウが表示される位置を決定し、前記判定手段により前記所定のウィンドウがはみ出ると判定されなかった場合、前記所定のウィンドウにおいて前記追加が行われる前に表示されていた情報の表示位置が変更されないように、サイズ変更後の前記所定のウィンドウが表示される位置を決定することを特徴とする請求項３または４に記載のプログラム。
【請求項６】
前記決定手段は、前記判定手段により前記所定のウィンドウがはみ出ると判定された場合、前記所定のウィンドウにおいて前記追加が行われる前に表示されていた情報よりも、前記追加により新たに表示される情報が前記第１のモニタまたは前記第２のモニタによる表示対象として優先されるように、サイズ変更後の前記所定のウィンドウが表示される位置を決定することを特徴とする請求項５に記載のプログラム。
【請求項７】
前記判定手段は、前記所定のウィンドウのサイズが拡大される所定の方向について、前記所定の表示領域における前記第１のモニタと前記第２のモニタのいずれかが表示する部分から、前記所定のウィンドウがはみ出るか判定することを特徴とする請求項２乃至６のいずれか１項に記載のプログラム。
【請求項８】
前記決定手段は、前記所定の表示領域において前記第１のモニタが表示する部分と、前記第２のモニタが表示する部分と、前記所定の表示領域において所定のウィンドウが配置される位置に基づいて、前記第１のモニタと前記第２のモニタのうちの、前記所定のウィンドウの中心を含むモニタを特定し、特定されたモニタに基づき、サイズ変更後の前記所定のウィンドウが表示される位置を決定することを特徴とする請求項１乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記所定のウィンドウのサイズは、前記所定のウィンドウにおけるユーザによる指示に応じて変更されることを特徴とする請求項１乃至７のいずれか１項に記載のプログラム。
【請求項１０】
前記プログラムはアプリケーションプログラムであり、
前記所定のウィンドウは前記アプリケーションプログラムにより表示されるプログラムであることを特徴とする請求項１乃至９のいずれか１項に記載のプログラム。
【請求項１１】
前記アプリケーションプログラムは、画像を印刷するプリンタに関する情報を表示するプログラムであることを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記所定のウィンドウは、プリンタにより使用される記録材に関する情報が追加されることにより、サイズが変更されることを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記表示制御装置とプリンタとの通信により、前記プリンタに関する情報を取得する取得手段として前記表示制御装置をさらに機能させ、
前記ウィンドウは、前記取得手段により取得された前記プリンタに関する情報が追加されることにより、サイズが変更されることを特徴とする請求項１１または１２に記載のプログラム。
【請求項１４】
所定の表示領域の一部を第１のモニタに表示させ、前記所定の表示領域の他の一部を第２のモニタに表示させる表示制御装置による表示制御方法であって、
前記所定の表示領域において前記第１のモニタが表示する部分と、前記第２のモニタが表示する部分と、前記所定の表示領域において所定のウィンドウが配置される位置に基づいて、前記所定のウィンドウのサイズが変更された場合にサイズ変更後の前記所定のウィンドウが表示される、前記所定の表示領域における位置を決定する決定工程と、
前記決定工程において決定された位置にサイズ変更後の前記所定のウィンドウが配置されるように、サイズ変更後の前記所定のウィンドウの少なくとも一部を、前記第１のモニタと前記第２のモニタの少なくとも１つに表示させる表示制御工程と、
を有することを特徴とする表示制御方法。
【請求項１５】
所定の表示領域の一部を第１のモニタに表示させ、前記所定の表示領域の他の一部を第２のモニタに表示させる表示制御装置であって、
前記所定の表示領域において前記第１のモニタが表示する部分と、前記第２のモニタが表示する部分と、前記所定の表示領域において所定のウィンドウが配置される位置に基づいて、前記所定のウィンドウのサイズが変更された場合にサイズ変更後の前記所定のウィンドウが表示される、前記所定の表示領域における位置を決定する決定手段と、
前記決定手段により決定された位置にサイズ変更後の前記所定のウィンドウが配置されるように、サイズ変更後の前記所定のウィンドウの少なくとも一部を、前記第１のモニタと前記第２のモニタの少なくとも１つに表示させる表示制御手段と、
を有することを特徴とする表示制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の表示領域の一部をあるモニタに表示させ、他の一部を他のモニタに表示させる表示制御装置により実行されるプログラムに関する。
【背景技術】
【０００２】
従来から、ある表示領域を複数のモニタにより表示するマルチモニタ機能（拡張デスクトップ画面）をサポートするＯＳが存在する。このマルチモニタ機能ではＰＣに接続された複数のモニタにより表示画面が表示されるため、１つのモニタに表示画面の全体を表示させる場合に比べて、表示画面を大きく表示させることができる。そのため、マルチモニタ機能により、あたかも大画面を持つ１つのモニタに表示されているように、表示を行うことを可能としている。
【０００３】
またモニタにおける表示制御として、特許文献１には、ウィンドウが画面内に収まるように、ウィンドウの表示位置を補正する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−２５７０２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１では、マルチモニタ環境については考慮されていない。マルチモニタ環境においては、複数のモニタ上にウィンドウがまたがって表示されるケース等がある。そのため、特許文献１に記載のような表示位置の補正が行われたとしても、ウィンドウがユーザ所望のモニタに表示されないことが考えられる。
【０００６】
そこで本発明は、複数のモニタにより表示されている表示領域に配置されるウィンドウを、適切な位置に表示させることができるプログラム、表示制御方法、および表示制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を鑑みて本発明のプログラムは、所定の表示領域の一部を第１のモニタに表示させ、前記所定の表示領域の他の一部を第２のモニタに表示させる表示制御装置により実行されるプログラムであって、前記所定の表示領域において前記第１のモニタが表示する部分と、前記第２のモニタが表示する部分と、前記所定の表示領域において所定のウィンドウが配置される位置に基づいて、前記所定のウィンドウのサイズが変更された場合にサイズ変更後の前記所定のウィンドウが表示される、前記所定の表示領域における位置を決定する決定手段と、前記決定手段により決定された位置にサイズ変更後の前記所定のウィンドウが配置されるように、サイズ変更後の前記所定のウィンドウの少なくとも一部を、前記第１のモニタと前記第２のモニタの少なくとも１つに表示させる表示制御手段として前記表示制御装置を機能させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数のモニタにより表示されている表示領域に配置されるウィンドウを、適切な位置に表示させることができる。
【図面の簡単な説明】
【０００９】
【図１】印刷装置と情報処理装置のハードウェア構成を示す図である。
【図２】システム構成例を示すブロック図である。
【図３】アプリケーションウィンドウの表示例を示す図である。
【図４】アプリケーションウィンドウの位置調整処理の一例を示すフローチャートである。
【図５】アプリケーションウィンドウの帰属するモニタを判定する処理を示すフローチャートである。
【図６】マルチモニタシステムにおける各モニタとアプリケーションウィンドウの表示位置の関係を示す図である。
【図７】アプリケーションウィンドウの位置調整処理の他の例を示すフローチャートである。
【図８】複数のモニタが仮想的に垂直方向に接続された場合の表示例を示す図である。
【図９】サイズ変更前においてＵＩ画面の中心座標を含むモニタが存在しない場合の表示状態を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
本実施形態において、情報処理装置において動作するＯＳは、表示領域を複数のモニタに分割して表示するマルチモニタ機能を提供する。また、ユーザはマルチモニタに使用するモニタの配置（表示対象の画面のうち、各モニタに表示される部分）及びその解像度を設定することができる。ＯＳは設定された配置及び解像度で画面を仮想的に接続して、拡張デスクトップ画面を実現する。
【００１２】
またこのようなマルチモニタの環境で動作するアプリケーションのウィンドウにおいて、特定のＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）コントロールが操作された場合に、ウィンドウのサイズが変更され、ユーザへ通知する情報が変更される。例えば、そのようなアプリケーションとして、本実施形態では、画像を印刷するプリンタを制御するためのアプリケーションを例に説明する。このアプリケーションにより表示されるウィンドウでは、プリンタでエラーが発生しているかを示すステータス情報と、インク等の消耗品情報をＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）が表示される。そして、このウィンドウでは、デフォルト状態ではプリンタのステータス情報のみ表示され、インク等の消耗品の情報が隠れている。そして、ユーザは消耗品情報を確認したい場合、ウィンドウ上のコントロールボタンを押下することで、隠れていたインク等の消耗品情報がウィンドウ内に追加される。すなわち、コントロールボタンの押下により、ウィンドウのサイズが大きくなる。或いは、プリンタのステータスに変化が生じた場合、ステータスに関する情報がウィンドウに追加されることで、ウィンドウのサイズが大きくなる。
【００１３】
このような特定条件を満たした際にアプリケーションのウィンドウのサイズ変更が行われる場合に、ウィンドウの一部がモニタ外の領域にはみ出ることがある。そこで本実施形態では、サイズ変更後のウィンドウの一部がモニタ外の領域にはみ出た場合に、そのはみ出しの影響を低減するために、ウィンドウの表示位置について位置調整が行われる。そのとき、例えば、複数のモニタのうちの所定のモニタ（メインモニタ）を基準に位置調整が行われたとする。その場合、ウィンドウがサイズ変更前に他のモニタ（サブモニタ）に表示された場合に、位置調整により、ウィンドウがサブモニタからメインモニタに移動するケースも起こり得る。
【００１４】
そこで本実施形態では、マルチモニタ環境においてサイズ変更前のアプリケーションのウィンドウが表示されていた、ウィンドウが帰属するモニタが自動的に特定される。そして、ウィンドウのサイズ変更後には、その特定されたモニタを基準に、ウィンドウの位置調整が行われる。これにより、マルチモニタ環境において、アプリケーションのウィンドウのサイズが変更された場合に、ウィンドウに対するユーザの視認性が低下することを防ぐことができる。以下、本実施形態における表示制御処理の詳細を説明する。
【００１５】
図１は、印刷装置と情報処理装置のハードウェア構成を示す図である。情報処理装置１００は入力インタフェース１０２とＣＰＵ１０３、ＲＯＭ１０４、ＲＡＭ１０５、外部記憶装置１０６、出力インタフェース１０８、表示部１０７、キーボード１０１、マウス１０９、ネットワークインタフェース１１０を有する。ネットワークインタフェース１１０はネットワーク１９０にネットワークケーブル１１１を介して接続してある。ＲＯＭ１０４には初期化プログラムが入っており、外部記憶装置１０６にはアプリケーションプログラム群、とＯＳ（ＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ）、プリンタドライバやその他各種のデータが保存されている。ＲＡＭ１０５は外部記憶装置１０６に格納される各種プログラムがワークメモリとして使用する。印刷装置１５０はネットワークインタフェース１５１とＲＡＭ１５２、プリントエンジン１５３、ＲＯＭ１５４、ＣＰＵ１５６を有する。ネットワークインタフェース１５１はネットワーク１９０にネットワークケーブル１５７を介して接続してある。ＲＡＭ１５２はＣＰＵ１５６の主メモリとワークメモリとして用いられ、受信した印刷ジョブを一旦保存するための受信バッファーや各種のデータを保存する。プリントエンジン１５３はＲＡＭ１５２に保存されたデータに基づき印刷を行う。ＲＯＭ１５４にはステータス管理プログラム１５５等、各種の制御プログラムや各制御プログラムが使用するデータが入っており、ＣＰＵ１５６はこれらの制御プログラムに従って印刷装置１５０の各部を制御する。ステータス管理プログラム１５５は図示していない印刷装置内部にある各種のセンサの情報を元に印刷装置１５０の状態を監視し、ステータス情報を作成、ＲＡＭ１５２にストアするプログラムである。ここでは例として情報処理装置１００と印刷装置１５０の処理分担を上記のように示したが、特にこの分担形態限らず他の形態であっても構わない。
【００１６】
図２は、システム構成例を示すブロック図であり、ＰＣ２１０と、ネットワーク２２０と、プリンタ２３０、ディスプレイ２４０を含む。ＰＣ２１０は、図１に示した情報処理装置１００と同じ構成を備えており、プリンタ２３０は、図１で示した印刷装置１５０と同じ構成を備えている。ＰＣ２１０はプリンタドライバ等により、ネットワーク２２０を介して、プリンタ２３０に印刷ジョブを送信することができる。プリンタ２３０はプリント部２３１にて印刷を行う。ＰＣ２１０にはモニタが内蔵されており、ＰＣ２１０に内蔵されるモニタとディスプレイ２４０にて、マルチモニタシステムが構築されている。また、ＰＣ２１０の外部のディスプレイが複数設けられ、その複数のディスプレイによりマルチモニタシステムが構築されてもよい。
【００１７】
アプリケーション２１１は、ＰＣ２１０において実行されるアプリケーションプログラムである。具体的には、アプリケーション２１１がＰＣ２１０のＲＯＭ１０４に記憶されており、ＣＰＵ１０３がアプリケーション２１１をＲＯＭ１０４からＲＡＭ１０５に読みだして、実行する。アプリケーション２１１は、プログラムモジュールとして、モニタ情報取得部２１２、表示部２１３、モニタ判定部２１４、サイズ変更部２１５、表示位置調整部２１６、管理情報取得部２１７を含む。ＣＰＵ１０３が各プログラムモジュールを実行することにより、２１２〜２１７に対応する各部として動作する。以下の説明では、ＣＰＵ１０３がプログラムモジュールを実行することについては説明を省略し、２１２〜２１７の各部が主体となって制御を行うものとして説明する。
【００１８】
モニタ情報取得部２１２は、ＰＣ２１０とディスプレイ２４０によって構成されるマルチモニタシステムにおける各モニタの座標情報を取得することができる。表示部２１３はアプリケーション２１１のＵＩ画面（ウィンドウ）をマルチモニタシステム上で表示する。サイズ変更部２１５は、特定の条件に応じて、アプリケーションＵＩ画面（ウィンドウ）のサイズ変更を行う。図３は、アプリケーションウィンドウの表示例を示す図である。本実施形態においては、ＣＰＵ１０３により、図３に示される展開コントロールボタン３０５の押下が検知された際に、サイズ変更部２１５は、アプリケーション２１１のＵＩ画面（ウィンドウ）のサイズ変更を実施する。
【００１９】
モニタ判定部２１４は、アプリケーション２１１のＵＩ画面（ウィンドウ）がマルチモニタシステム上のどのモニタに帰属するか判定する。詳細な判定処理については、図５に示されるフローにて説明する。表示位置調整部２１６は、アプリケーション２１１のＵＩ画面（ウィンドウ）のサイズ変更によって、アプリケーション２１１のＵＩ画面（ウィンドウ）が、帰属するモニタの領域からはみ出したかどうかを判定する。アプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタの領域からはみ出した場合は、アプリケーション２１１のＵＩ画面（ウィンドウ）の表示位置調整を行う。詳細な位置調整フローについては、図４に示されるフローにて説明する。
【００２０】
アプリケーション２１１は、管理情報取得部２１７でプリンタ２３０の管理情報保持部２３２から取得した管理情報を基にプリンタの状態に関して詳細な表示を行う。ＵＩ画面（ウィンドウ）の表示例については図３にて説明する。本実施形態では、ネットワーク経由でプリンタ２３０から各種の情報を取得する構成について説明する。ただし、ＰＣ２１０とプリンタ２３０がＵＳＢやＩＥＥＥ  １３９４等のインタフェースで接続され、情報取得が行われる構成としても良い。また、本実施形態では、ＰＣ２１０上で、プリンタ２３０の管理情報の表示を行うアプリケーション２１１が起動される。そのため、プリンタ２３０が含まれているシステム構成となっている。ただし、プリンタ代わりに他種のデバイスでシステムが構成されてもよい。また、ＰＣ２１０に特定のデバイスを接続されずに、ＰＣ２１０の情報に関して表示するアプリケーションであってもよい。さらに、本実施形態のマルチモニタシステムはＰＣ２１０に内蔵されるモニタとディスプレイ２４０によって構成されるが、その他のディスプレイを接続し、３台以上のモニタでマルチモニタシステムを構成しても良い。
【００２１】
図３は、実施形態１のアプリケーション２１１のＵＩ画面（ウィンドウ）の表示例を示している。アプリケーション２１１のＵＩ画面（ウィンドウ）は、タイトルバー３０１と、メッセージ表示部３０２と、ジョブ情報表示部３０３と、インク情報表示部３０４と、展開コントロールボタン３０５を含む。タイトルバー３０１はアプリケーション名やプリンタ名等が表示される。メッセージ表示部３０２には、管理情報取得部２１７が取得した情報を基にプリンタ２３０の状態を示すメッセージが表示される。ジョブ情報表示部３０３には、管理情報取得部２１７が取得した情報を基に、プリンタ２３０で実行中の印刷ジョブに関する情報が表示される。インク情報表示部３０４は、管理情報取得部２１７が取得した情報を基にプリンタ２３０のインク情報に関する表示が行われる。インク情報表示部３０４には展開コントロールボタン３０５が配置されている。インク情報表示部３０４はデフォルト（初期状態）では閉じた状態となっており、図３（Ａ）のように、インクに関する詳細情報は隠れた状態で表示される。インク情報表示部３０４が閉じた状態で表示されることにより、アプリケーション２１１のＵＩ画面（ウィンドウ）のサイズを小さく抑えることができる。アプリケーション２１１により展開コントロールボタン３０５の押下が検知されると、図３（Ｂ）のように、インク情報表示部３０４が開いて表示され、インクに関する詳細情報が表示される。この詳細情報により、ユーザは各インクの残量情報について確認することができる。
【００２２】
図４は、アプリケーションウィンドウの位置調整処理の一例を示すフローチャートである。図４のフローにおける各処理に対応するプログラムがアプリケーション２１１に含まれており、そのプログラムをＰＣ２１０のＣＰＵ１０３が実行することにより、図４に示す各処理が実現される。また図４における処理は、アプリケーション２１１が起動されたときに実行される。またアプリケーション２１１の起動に応じて、アプリケーション２１１のＵＩ画面（ウィンドウ）が、図３（Ａ）のように、インク情報表示部３０４を閉じた状態で表示される。
【００２３】
Ｓ４１でサイズ変更部２１５は、図３（Ａ）のようにインク情報表示部３０４を閉じた状態で表示されたアプリケーション２１１のＵＩ画面（ウィンドウ）において、展開コントロールボタン３０５の押下が検知されたか判定する。
【００２４】
Ｓ４２にて、モニタ情報取得部２１２は、マルチモニタシステムを構成する各モニタの情報を取得する。図６は、マルチモニタシステムにおける各モニタとアプリケーションウィンドウの表示位置の関係を示す図である。図６は、複数のモニタにより表示される表示領域における、アプリケーション２１１のＵＩ画面（ウィンドウ）が配置される位置を示す。なお、図６に示されている座標は、複数のモニタにより表示される表示領域における座標である。この画面全体の一部があるモニタに表示され、他の一部が他のモニタに表示される。また図６（Ａ）は、ＵＩ画面（ウィンドウ）のサイズ変更前における表示状態を示す。モニタ情報取得部２１２はＳ４２において、図６（Ａ）におけるモニタ１（Ｍ１）およびモニタ２（Ｍ２）およびアプリケーション２１１の位置座標を取得する。モニタ１（Ｍ１）はＰＣ２１０のディスプレイ上で表示され、モニタ２（Ｍ２）はディスプレイ２４０上で表示される。モニタ情報取得部２１２は、モニタ１（Ｍ１）を形成する矩形の位置座標として、座標Ｍ１１（０，０）、座標Ｍ１２（０、６００）、座標Ｍ１３（８００、０）、座標Ｍ１４（８００、６００）を取得する。さらに、モニタ情報取得部２１２は、モニタ２（Ｍ２）を形成する矩形の位置座標として、座標Ｍ２１（８００，０）、座標Ｍ２２（８００、１２００）、座標Ｍ２３（２７２０、０）、座標Ｍ２４（２７２０、１２００）を取得する。またモニタ情報取得部２１２は、アプリケーション２１１のＵＩ画面（ウィンドウ）の位置座標として、座標Ａ１１（７００，５００）、座標Ａ１２（７００、１０００）、座標Ａ１３（１３００、５００）、座標Ａ１４（１３００、１０００）を取得する。
【００２５】
Ｓ４３にてモニタ判定部２１４は、モニタ情報取得部２１２が取得したモニタ１、モニタ２およびアプリケーション２１１のＵＩ画面（ウィンドウ）の座標情報を基に、アプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタを判定する。Ｓ４３における判定処理の詳細については図５にて説明するが、Ｓ４３ではＵＩ画面（ウィンドウ）の中心を含む、もしくは中心から近いモニタが特定される。例えば、図６（Ａ）の例では、アプリケーション２１１のＵＩ画面（ウィンドウ）はモニタ２に帰属すると判定される。
【００２６】
Ｓ４４にてサイズ変更部２１５は、アプリケーション２１１のＵＩ画面（ウィンドウ）のサイズ変更を行い、インク情報表示部３０４を表示する。図３（Ｂ）に示すように、本実施形態においては、アプリケーション２１１のＵＩ画面（ウィンドウ）が、展開コントロールボタン３０５の押下により垂直方向に伸びる。ただし、これに限らず、ＵＩ画面（ウィンドウ）が水平方向に伸びる場合であってもよいし、ＵＩ画面（ウィンドウ）のアスペクト比が変わらずに、拡大される場合であってもよい。
【００２７】
Ｓ４５にて、モニタ情報取得部２１２は、サイズ変更後のアプリケーション２１１のＵＩ画面（ウィンドウ）の表示位置の座標情報を取得する。図６（Ｂ）は、実施形態１におけるマルチモニタシステムにおける各モニタとアプリケーションのＵＩ画面（ウィンドウ）の表示位置の関係の一例を示している。モニタ情報取得部２１２は、図６（Ｂ）におけるアプリケーション２１１の位置座標を取得する。モニタ情報取得部２１２は、アプリケーション２１１の位置座標として、座標Ａ２１（７００，５００）、座標Ａ２２（７００、１３００）、座標Ａ２３（１３００、１５００）、座標Ａ２４（１３００、１３００）を取得する。なお、図６（Ｂ）に示されている、ＵＩ画面がはみ出た状態の表示が行われてもよいし、行われなくてもよい。
【００２８】
Ｓ４６にて、表示位置調整部２１６は、Ｓ４５で取得された座標情報に基づいて、ＵＩ画面（ウィンドウ）サイズ変更により、アプリケーション２１１のＵＩ画面（ウィンドウ）がモニタ２からはみ出したかどうかを判定する。はみ出していると判定された場合は、Ｓ４７の処理に移行する。はみ出していないと判定された場合、表示位置調整部２１６は、アプリケーション２１１のＵＩ画面（ウィンドウ）の位置調整は実施せず、処理を終了する。Ｓ４６における判定に用いられる座標は、アプリケーション２１１のＵＩ画面（ウィンドウ）のサイズ変更に伴い座標の変更が行われた座標である。本実施形態では、図３に示すように、展開コントロールボタン３０５の押下に応じて、ＵＩ画面（ウィンドウ）の上端の位置を変えず、下端の位置が下に移動することで、垂直方向にＵＩ画面（ウィンドウ）が拡大される。そのため、図６に示す例では、Ｓ４６における判定に用いられる座標が、座標Ａ２２と座標Ａ２４となる。そして、座標Ａ２２と座標Ａ２４はモニタ２（ＵＩ画面が帰属していたとＳ４３で判定されたモニタ）の領域外の位置に存在する。そのため、Ｓ４６では、アプリケーション２１１のＵＩ画面（ウィンドウ）はモニタ２からはみ出していると判定される。
【００２９】
Ｓ４７にて、表示位置調整部２１６は、アプリケーション２１１のＵＩ画面（ウィンドウ）の位置調整を行う。具体的には、アプリケーション２１１のＵＩ画面（ウィンドウ）が、縦方向において、Ｓ４３にて特定されたモニタ（ＵＩ画面（ウィンドウ））の領域内に収まるように、ＵＩ画面（ウィンドウ）の位置調整が行われる。そのため、調整後のアプリケーション２１１のＵＩ画面（ウィンドウ）の位置座標は、図６（Ｃ）に示されているようになる。具体的には、座標Ａ３１（７００，４００）、座標Ａ３２（７００、１２００）、座標Ａ３３（１３００、４００）、座標Ａ３４（１３００、１２００）となる。このように、ＵＩ画面の下端となる辺が、ＵＩ画面が帰属していたモニタ（図６ではモニタ２）の下端に接するように位置調整が行われる。ただし、ＵＩ画面の下端となる辺が、ＵＩ画面が帰属していたモニタ（図６ではモニタ２）の下端に接する場合に限らず、両者の間に所定の間隔が設けられてもよい。
【００３０】
仮に、Ｓ４３における処理が行われず、例えば所定のメインモニタを基準に位置調整が行われたとする。この場合、図６に示した例において、Ｍ１がメインモニタとなっていたとき、アプリケーション２１１のＵＩ画面（ウィンドウ）の下端の辺が、Ｍ１の下端のＹ座標（６００）に一致するように位置調整が行われる。すると、図６（Ａ）に示した、サイズ変更前の表示状態に比べて、ＵＩ画面（ウィンドウ）が大きく移動することになり、ユーザの操作性、視認性が低下してしまう可能性がある。
【００３１】
一方、上記のように本実施形態では、Ｓ４３において特定された、サイズ変更前にＵＩ画面（ウィンドウ）が帰属していたモニタを基準に、Ｓ４７において位置調整が行われる。よって、サイズ変更によるＵＩ画面（ウィンドウ）のはみ出しの影響を低減することができるとともに、位置調整による操作性、視認性の低下を抑えることができる。
【００３２】
なお、図６（Ｃ）に示されているように位置調整が行われると、サイズ変更に伴い情報が追加される前に表示されていた情報について、表示位置が変更される。例えば図３（Ａ）に示されている情報（３０１〜３０５）についても、インク情報表示部３０４の追加により、図６（Ｃ）に示すように表示位置が変更される。一方、サイズ変更によるウィンドウのはみ出しが無いと判定された場合（Ｓ４６でＮｏ）、位置調整が行われない。そのため、図６（Ｃ）に示されているように位置調整が行われても、情報が追加される前に表示されていた情報の表示位置は変更されない。例えば図３（Ａ）に示されている情報（３０１〜３０５）については、インク情報表示部３０４が追加されても表示位置は変更されない。そのため、ウィンドウのはみ出しが無い場合、情報が追加される前に表示されていた情報の表示位置が維持されるため、不要な位置調整により視認性が低下することを防ぐことができる。
【００３３】
なお、上記の例では、図３に示されているようにＵＩ画面が縦方向に拡大されるため、Ｓ４７では、縦方向のみ位置調整が行われ、横方向には位置調整が行われなかった。これにより、ＵＩ画面の拡大前の表示（図６（Ａ））においてモニタ１（Ｍ１）にＵＩ画面の一部が表示されている状態を、ＵＩ画面拡大後も維持することができる。
【００３４】
ただし、これに限らず、図６（Ｄ）に示されているように、ＵＩ画面の全体が、ＵＩ画面が帰属していたモニタ（図６ではモニタ２）に含まれるように、位置調整が行われてもよい。
【００３５】
また、図６（Ｃ）、図６（Ｄ）において、仮にＵＩ画面（ウィンドウ）の上端がモニタ１またはモニタ２からはみ出す場合、位置調整が行われず、図６（Ｂ）に示す状態で表示が行われてもよい。或いは、仮にＵＩ画面（ウィンドウ）の上端がモニタ１またはモニタ２からはみ出したとしても、ＵＩ画面（ウィンドウ）の下端が、モニタ２の下端に接するように表示が行われてもよい。即ち後者の場合、サイズ変更後のＵＩ画面（ウィンドウ）において、上部よりも下部の方が表示対象として優先される。図３に示したように、本実施形態におけるＵＩ画面（ウィンドウ）では、下部に新たな情報が追加されることでサイズ変更が行われる。上記のようにサイズ変更後のＵＩ画面（ウィンドウ）において下部が表示対象として優先される場合、ユーザに対して新たに表示される情報が優先されるように、サイズ変更後のＵＩ画面（ウィンドウ）を表示させることができる。
【００３６】
また表示領域が複数のモニタにより水平方向に分割される場合に限らず、垂直方向に分割されてもよい。図８は、複数のモニタが仮想的に垂直方向に接続された場合の表示例を示す図である。なお、図８では、座標についての記載は省略する。図８（Ａ）は、ＵＩ画面（ウィンドウ）のサイズ変更が行われる前の表示状態を示し、この状態でサイズ変更が行われると、図８（Ｂ）に示すように、ＵＩ画面（ウィンドウ）の一部がはみ出すことになる。このとき、Ｓ４３の処理により、ＵＩ画面（ウィンドウ）が帰属するモニタとしてＭ２が特定される。そのため、Ｓ４７の処理では、Ｍ２を基準に位置調整が行われるため、図８（Ｃ）に示す表示結果となる。そのため、仮にメインモニタとしてのＭ１を基準に位置調整が行われる場合に比べて、位置調整による操作性、視認性の低下を抑えることができる。なお、図８（Ｂ）における表示状態が、実際にＭ１、Ｍ２により表示されてもよいし、実際には図８（Ｂ）における表示状態では表示されずに、サイズ調整後、図８（Ａ）に示す表示状態から、図８（Ｃ）に示す表示状態に切り替わってもよい。前者の場合、位置調整が行われたことをユーザに認識させることができる。一方、後者の場合、表示変更がシンプルになるため、ユーザの視認性を向上させることができるとともに、図８（Ｂ）に関する表示処理が不要なため、処理負荷を低減することができる。また図８（Ｂ）に示す表示が行われない場合、上記のように、図８（Ｂ）に示すＵＩ画面（ウィンドウ）の表示位置が調整されることでサイズ変更後のウィンドウの表示位置が決定される場合に限られない。すなわち、ウィンドウが帰属するモニタが表示している部分とサイズ変更後のウィンドウの大きさに基づいて、図８（Ａ）に示した状態から、図８（Ｃ）に示す表示位置が直接決定されてもよい。
【００３７】
図５は、アプリケーションウィンドウの帰属するモニタを判定する処理を示すフローチャートである。図５に示すフローは、図４のＳ４３における処理の詳細を示す。
【００３８】
Ｓ５１にて、モニタ判定部２１４は、モニタ情報取得部２１２が取得したアプリケーション２１１のＵＩ画面（ウィンドウ）の位置座標を基に、サイズ変更前のアプリケーション２１１のＵＩ画面（ウィンドウ）の中心座標Ａ１５の算出を行う。図６（Ａ）に示した例では、中心座標Ａ１５（１０００、７５０）が取得される。Ｓ５２にて、モニタ判定部２１４は、Ｓ５１で取得された中心座標Ａ１５が含まれるモニタが存在するか判定する。図６（Ａ）の例では、中心座標Ａ１５（１０００、７５０）は、モニタ２の領域に含まれるので、中心座標Ａ１５が含まれるモニタがあると判定され、処理がＳ５６に移行される。Ｓ５６では、モニタ判定部２１４が、中心座標Ａ１５を含むモニタを、アプリケーション２１１のＵＩ画面が帰属するモニタとして判定する。図６（Ａ）の例では、中心座標Ａ１５がモニタ２に含まれるため、モニタ２がアプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタとして特定される。
【００３９】
一方、Ｓ５２において中心座標Ａ１５を含むモニタが存在しないと判定された場合は、処理がＳ５３に移行される。図９は、サイズ変更前においてＵＩ画面の中心座標を含むモニタが存在しない場合の表示状態を示す図である。Ｓ５３では、モニタ判定部２１４が、中心座標と各モニタの矩形座標の距離を算出する。Ｓ５４にて、中心座標に一番近い距離の矩形座標を判定する。例えば、図９においてこの判定が行われた場合、中心座標とＭ１１〜Ｍ１４、Ａ１５とＭ２１〜Ｍ２４の距離がそれぞれ算出される。この場合、座標Ｍ２２が中心座標から最も近い矩形座標として判定される。Ｓ５５では、モニタ判定部２１４は、Ｓ５４で判定した、中心座標から最も近い矩形座標を含むモニタを、アプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタとして判定する。
【００４０】
なお、図５（図４のＳ４３）では、アプリケーション２１１のＵＩ画面（ウィンドウ）の中心座標を基にして、ＵＩ画面が帰属するモニタの判定が行われるが、他の情報から帰属するモニタの判定が行われても良い。例えば、アプリケーションＵＩ画面（ウィンドウ）の左上の座標であるＡ１１の座標を含むモニタを、アプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタと判定してもよい。また、モニタ１およびモニタ２の領域内に表示されるアプリケーション２１１のＵＩ画面（ウィンドウ）の面積の値を基に、アプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタを判定しても良い。
【００４１】
また本実施形態では、アプリケーションのＵＩ画面（ウィンドウ）の位置調整はアプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタの画面領域内にＵＩ画面（ウィンドウ）の縦座標のみが収まるように調整が行われる例を中心に説明した。ただしこれに限らず、図６（Ｄ）に示したように、アプリケーションＵＩ画面（ウィンドウ）の画面全てがモニタの画面領域内に収まるように位置調整を行っても良い。また、アプリケーションＵＩ画面（ウィンドウ）のうち、重要なパーツのみ画面内におさまるように調整しても良い。例えば、インク情報表示部３０４は、アプリケーションＵＩ画面（ウィンドウ）上はサイズ変更により追加表示される重要なパーツと考えられる。ユーザが展開コントロールボタン３０５を押下したため、ユーザがインク情報表示部３０４の表示を重視している可能性が高いと考えられるためである。そのため、インク情報表示部３０４の全体が画面内に収まるように位置調整が行われるようにしても良い。一方で、図３に示したように、タイトルバー３０１、メッセージ表示部３０２、ジョブ情報表示部３０３は、展開コントロールボタン３０５の押下の前にも表示される情報である。そのため、展開コントロールボタン３０５の押下に応じて、タイトルバー３０１、メッセージ表示部３０２、ジョブ情報表示部３０３の一部または全部が削除され、インク情報表示部３０４が追加されたＵＩ画面が表示されてもよい。これにより、ＵＩ画面がモニタからはみ出ることを低減することができる。
【００４２】
以上説明したように、本実施形態の処理により、マルチモニタシステム上での各モニタとアプリケーションＵＩ画面（ウィンドウ）の表示位置の関係に応じて、アプリケーションＵＩのサイズ変更があった場合に適切な位置調整を行うことができる。このためユーザが種々のモニタ配置でマルチモニタを構成していたとしても、ユーザにとって必要な情報がモニタ上に表示されなくなるケースを低減することができる。そのため、アプリケーションＵＩ画面（ウィンドウ）により必要な情報をより確実にユーザに通知することができる。
【００４３】
また、以上の実施形態では、ＵＩ画面（ウィンドウ）のサイズ変更が行われる条件として、ユーザによる指示によりサイズ変更が行われる例について説明した。しかしこれに限らず、種々の条件によりサイズ変更が行われてもよい。例えば、本実施形態が実行されるＰＣ２１０などの情報処理装置に接続されたプリンタ等の情報機器において、エラー等の状態変化が生じたときに、アプリケーション２１１のＵＩ画面（ウィンドウ）のサイズ変更が行われてもよい。このようにサイズ変更が行われた場合のＵＩ画面（ウィンドウ）の表示位置調整について、以下説明する。なお以降の説明において、システム構成やプログラムモジュール等は、図１、図２で示したものと同じである。また上述した表示位置の調整処理と重複する内容については詳細な説明を省略する。
【００４４】
図７は、アプリケーションウィンドウの位置調整処理の他の例を示すフローチャートである。図７のフローにおける各処理に対応するプログラムがアプリケーション２１１に含まれており、そのプログラムをＰＣ２１０のＣＰＵ１０３が実行することにより、図７に示す各処理が実現される。また図７における処理は、アプリケーション２１１が起動されている状態において、管理情報取得部２１７がプリンタ２３０と通信を行い、管理情報保持部２３２に格納されている管理情報を取得するときに実行される。この取得される管理情報には、プリンタ２３０のステータス情報が含まれており、例えばプリンタ２３０におけるエラーの有無と、エラーがある場合には、そのエラーの種類を示す情報が含まれている。例えばインク無しエラーを示す情報が含まれている。また、管理情報取得部２１７による管理情報の取得は、アプリケーション２１１が起動されているときに定期的に実行されてもよいし、ユーザによるアプリケーション２１１に対する指示に応じて実行されてもよい。また図７に示す処理が実行されるときに、アプリケーション２１１のＵＩ画面（ウィンドウ）は、図３（Ａ）のように、インク情報表示部３０４を閉じた状態あるいは図３（Ｂ）のようにインク情報表示部３０４が開いた状態で表示される。
【００４５】
Ｓ７１において管理情報取得部２１７は、管理情報に含まれるステータス情報を参照することで、プリンタ２３０でインク無しエラーが発生したか否かを判定する。Ｓ７２にて、サイズ変更部２１５は、インク情報表示部３０４が開いた状態でアプリケーション２１１のＵＩ画面（ウィンドウ）上に表示されているかを判定する。インク情報表示部３０４が開いていてインクバーがアプリケーション２１１のＵＩ画面（ウィンドウ）上に表示されている場合は、すでにインクバーは表示されているため、アプリケーション２１１のＵＩ画面（ウィンドウ）サイズを変更する必要は無い。そのため、位置調整処理を終了する。
【００４６】
一方、インク情報表示部３０４が開いた状態で表示されていない場合（インクバーがアプリケーション２１１のＵＩ画面（ウィンドウ）上に表示されていない場合）は、Ｓ７３に処理が移行する。Ｓ７３にて、モニタ情報取得部２１２は、マルチモニタシステムを構成する各モニタの情報を取得する。Ｓ７３での処理は、図４のＳ４２における処理と同様である。Ｓ７４にて、モニタ判定部２１４は、モニタ情報取得部２１２が取得したモニタ１、モニタ２およびアプリケーション２１１のＵＩ画面（ウィンドウ）の位置座標情報を基にして、アプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタの判定を行う。Ｓ７４での処理は、図４のＳ４３、図５における処理と同様である。
【００４７】
Ｓ７５にてサイズ変更部２１５は、アプリケーション２１１のＵＩ画面（ウィンドウ）のサイズ変更を行う。サイズ変更部２１５は、インク情報表示部３０４を開き、インクバーが追加されたウィンドウを表示する。なお、図３（Ｂ）に示したウィンドウに、さらにエラーであることを示すアイコン等が追加されてもよい。
【００４８】
以降のＳ７６〜Ｓ７８における処理は、図４のＳ４５〜Ｓ４７における処理と同様である。Ｓ７６にて、モニタ情報取得部２１２は、サイズ変更後のアプリケーション２１１のＵＩ画面（ウィンドウ）の表示位置の座標情報を取得する。Ｓ７７にて、表示位置調整部２１６は、ＵＩ画面（ウィンドウ）サイズ変更により、アプリケーション２１１のＵＩ画面（ウィンドウ）がモニタ２からはみ出したかどうかを判定する。ＵＩ画面（ウィンドウ）がはみ出していると判定された場合は、Ｓ７８に処理が移行する。ＵＩ画面（ウィンドウ）がはみ出していないと判定された場合、アプリケーション２１１のＵＩ画面（ウィンドウ）の位置調整は実施されず、処理を終了する。Ｓ７８にて、表示位置調整部２１６は、Ｓ４３にて判定されたアプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタ上でアプリケーション２１１のＵＩ画面（ウィンドウ）が領域内に収まるように位置調整を行う。表示位置調整部２１６は、アプリケーション２１１のＵＩ画面（ウィンドウ）が帰属するモニタ２上で縦方向の座標調整を行う。
【００４９】
図７に示した例では、プリンタ２３０でインク無しエラーが起こり、アプリケーションＵＩ画面（ウィンドウ）のサイズ変更が行われる例を説明した。ただし、エラーの種類はこれに限らず、例えばプリンタ２３０において印刷用紙が無くなった用紙なしエラーでもよいし、用紙が詰まることによる用紙ジャムエラーでもよい。またインクがなくなる前に、所定の残量より少なくなったことに起因する、インクローエラーでもよい。またプリンタ２３０で使用される記録材はインクに限らず、トナーでもよい。
【００５０】
さらに、ＵＩ画面（ウィンドウ）のサイズ変更が行われる条件として、種々の条件でもよい。例えば、ＰＣ２１０とプリンタ２３０が通信不能状態で、アプリケーションＵＩ画面（ウィンドウ）上に全ての情報を表示できなかったとする。その後、ＰＣ２１０とプリンタ２３０との通信の復旧に伴い、アプリケーションＵＩ画面（ウィンドウ）に情報が追加されることにより、ＵＩ画面（ウィンドウ）サイズが大きくなる場合でもよい。また、ＰＣ２１０における設定変更に起因して、アプリケーションＵＩ画面（ウィンドウ）のサイズが変更される場合でもよい。
【００５１】
また、以上の実施形態では、ウィンドウの表示位置の調整処理が、該ウィンドウを表示させるアプリケーションプログラムを実行することで行われていた。しかしこれに限らず、該ウィンドウを表示させるアプリケーションプログラム以外のプログラムにより、ウィンドウの表示位置の調整が行われてもよい。例えば、ＯＳにより以上の実施形態におけるウィンドウの表示位置の調整処理が行われてもよい。
【００５２】
なお、以上の実施形態の機能は以下の構成によっても実現することができる。つまり、本実施形態の処理を行うためのプログラムコードをシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がプログラムコードを実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することとなり、またそのプログラムコードを記憶した記憶媒体も本実施形態の機能を実現することになる。
【００５３】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【符号の説明】
【００５４】
１０３  ＣＰＵ
１０４  ＲＯＭ
１０５  ＲＡＭ
【図１】
2018190340.tif 000003
【図２】
2018190340.tif 000004
【図３】
2018190340.tif 000005
【図４】
2018190340.tif 000006
【図５】
2018190340.tif 000007
【図６】
2018190340.tif 000008
【図７】
2018190340.tif 000009
【図８】
2018190340.tif 000010
【図９】
2018190340.tif 000011