(57)【特許請求の範囲】
【請求項１】
ディスプレイ方向の変更に応じて表示画面内に表示されたウィンドウを自動的に調整する、コンピュータによって実施される方法であって、
第１の方向を有する、前記ウィンドウを含む表示画面を提供するステップと、
前記表示画面を前記第１の方向から第２の方向へと変更したという指示を受け取るステップと、
前記指示を受け取ったことに応答して、前記ウィンドウが前記第２の方向の前記表示画面に適合するか否かの第１の決定を行うステップと、
前記第１の決定が、前記ウィンドウが前記第２の方向の前記表示画面内に適合することを示すとき、前記ウィンドウの空間的な調整を行わずに前記ウィンドウを前記第２の方向の前記表示画面に表示するステップと、
前記第１の決定が、前記ウィンドウが前記第２の方向の前記表示画面内に適合しないことを示すとき、
前記第１の方向の前記表示画面における前記ウィンドウのサイズおよび前記ウィンドウの位置と前記第２の方向の前記表示画面内の可視領域とに基づいて、前記ウィンドウを前記第２の方向の前記表示画面に適合させるために必要な前記ウィンドウのサイズ変更および位置変更を計算し、該計算されたサイズ変更および位置変更に基づいて、前記ウィンドウのサイズと前記ウィンドウの位置の少なくとも一方を調節するステップと、
前記ウィンドウのサイズと前記ウィンドウの位置の少なくとも一方の調節の後に、前記ウィンドウの全体が前記第２の方向の前記表示画面内に位置するか否かの第２の決定を行うステップと、
前記第２の決定が、前記ウィンドウの全体が前記第２の方向の前記表示画面内に位置することを示すとき、前記ウィンドウにスクロールバーが存在しない場合は、該スクロールバー無しの前記ウィンドウを前記第２の方向の前記表示画面に表示し、前記ウィンドウに前記スクロールバーが存在する場合は、前記スクロールバーを削除して前記ウィンドウを前記第２の方向の前記表示画面に表示するステップと、
前記第２の決定が、前記ウィンドウの少なくとも一部が前記第２の方向の前記表示画面内に位置しないことを示すとき、前記ウィンドウにスクロールバーを追加して該スクロールバー付きのウィンドウを前記第２の方向の前記表示画面に表示するステップと
を含むことを特徴とする方法。
【請求項２】
前記表示画面は、モバイルコンピューティング装置のハードウエアの表示画面であり、
前記ハードウエアの表示画面は、前記第１の方向から前記第２の方向に方向を変更可能であることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の方向は、縦長であり、前記第２の方向は横長であることを特徴とする請求項２に記載の方法。
【請求項４】
前記第１の方向は、横長であり、前記第２の方向は、縦長であることを特徴とする請求項２に記載の方法。
【請求項５】
ディスプレイ方向の変更に応じて表示画面内に表示されたウィンドウを自動的に調整するためのコンピュータ実行可能命令を記憶するコンピュータ可読な記録媒体であって、
前記コンピュータ実行可能命令は、
前記表示画面が第１の方向から第２の方向に変更されたことを示す指示を受け取ったことに応答して、前記ウィンドウが前記第２の方向の前記表示画面内に適合しているか否かの第１の決定を行うステップと、
前記第１の決定が、前記ウィンドウが前記第２の方向の前記表示画面内に適合していることを示すとき、
前記ウィンドウの空間的な調整を行わずに前記ウィンドウを前記第２の方向の前記表示画面内に表示するステップと、
前記第１の決定が、前記ウィンドウが前記第２の方向の前記表示画面内に適合していないことを示すとき、
前記第１の方向の前記表示画面における前記ウィンドウのサイズおよび前記ウィンドウの位置と前記第２の方向の前記表示画面内の可視領域とに基づいて、前記ウィンドウを前記第２の方向の前記表示画面に適合させるために必要な前記ウィンドウのサイズ変更および位置変更を計算し、該計算されたサイズ変更および位置変更に基づいて、前記第２の方向の前記表示画面における前記ウィンドウのサイズと前記ウィンドウの位置の少なくとも一方を調節するステップと、
前記ウィンドウのサイズと前記ウィンドウの位置の少なくとも一方の調節の後に、前記ウィンドウの全体が前記第２の方向の前記表示画面内に位置するか否かの第２の決定を行うステップと、
前記第２の決定が、前記ウィンドウの全体が前記第２の方向の前記表示画面内に位置することを示すとき、スクロールバー無しの前記ウィンドウを前記第２の方向の前記表示画面に表示するステップと、
前記第２の決定が、前記ウィンドウの少なくとも一部が前記第２の方向の前記表示画面内に位置しないことを示すとき、前記ウィンドウにスクロールバーを追加して該スクロールバー付きのウィンドウを前記第２の方向の前記表示画面に表示するステップと
をコンピュータに実行させるための命令であることを特徴とするコンピュータ可読な記録媒体。
【請求項６】
前記指示は、前記第１の方向から前記第２の方向へと方向を変更可能なモバイル装置のハードウエアの表示画面からの指示を含むことを特徴とする請求項５に記載のコンピュータ可読な記録媒体。
【請求項７】
前記第１の方向は、縦長であり、前記第２の方向は横長であることを特徴とする請求項６に記載のコンピュータ可読な記録媒体。
【請求項８】
前記第１の方向は、横長であり、前記第２の方向は、縦長であることを特徴とする請求項６に記載のコンピュータ可読な記録媒体。
【請求項９】
前記第２の決定が、前記ウィンドウが前記表示画面内に前記ウィンドウの全体が前記第２の方向の前記表示画面内に位置することを示すとき、前記スクロールバー無しのウィンドウを前記第２の方向の前記表示画面に表示するステップは、前記ウィンドウに前記スクロールバーが存在する場合は、該ウィンドウが表示される前に前記スクロールバーを削除するステップを含むことを特徴とする請求項５に記載のコンピュータ可読な記録媒体。
【請求項１０】
ウィンドウを自動的に調整するためのシステムであって、
プロセッサと、
モバイルコンピューティング装置上にウィンドウを表示するためのディスプレイであって、第１の方向から第２の方向へと方向を変更可能なディスプレイと、
コンピュータ実行可能命令を記憶したメモリと
を備え、
前記コンピュータ実行可能命令は、
前記ディスプレイの方向を前記第１の方向から第２の方向へと変更したという指示を受け取るステップと、
前記指示を受け取ることに応答して、前記ウィンドウが前記第２の方向の前記ディスプレイに適合しているか否かの第１の決定を自動的に行うステップと、
前記第１の決定が、前記ウィンドウが前記第２の方向の前記表示画面内に適合していることを示すとき、
前記ウィンドウの空間的な調整を行わずに前記ウィンドウを前記第２の方向の前記表示画面内に表示するステップと、
前記第１の決定が、前記ウィンドウが前記第２の方向の前記ディスプレイ内に適合していないことを示すとき、
前記第１の決定が、前記ウィンドウが前記第２の方向の前記表示画面内に適合していないことを示すとき、
前記第１の方向の前記表示画面における前記ウィンドウのサイズおよび前記ウィンドウの位置と前記第２の方向の前記表示画面内の可視領域とに基づいて、前記ウィンドウを前記第２の方向の前記表示画面に適合させるために必要な前記ウィンドウのサイズ変更および位置変更を計算し、該計算されたサイズ変更および位置変更に基づいて、前記第２の方向の前記表示画面における前記ウィンドウのサイズと前記ウィンドウの位置の少なくとも一方を調節するステップと、
前記ウィンドウのサイズと前記ウィンドウの位置の少なくとも一方の調節の後に、前記ウィンドウの全体が前記第２の方向の前記表示画面内に位置するか否かの第２の決定を行うステップと、
前記第２の決定が、前記ウィンドウの全体が前記第２の方向の前記表示画面内に位置することを示すとき、スクロールバー無しの前記ウィンドウを前記第２の方向の前記表示画面に表示するステップと、
前記第２の決定が、前記ウィンドウの少なくとも一部が前記第２の方向の前記表示画面内に位置しないことを示すとき、前記ウィンドウにスクロールバーを追加して該スクロールバー付きのウィンドウを前記第２の方向の前記表示画面に表示するステップと
をコンピュータに実行させるための命令であることを特徴とするシステム。
【請求項１１】
前記第１の方向は、縦長であり、前記第２の方向は横長であることを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記第１の方向は、横長であり、前記第２の方向は、縦長であることを特徴とする請求項１０に記載のシステム。
【請求項１３】
前記第２の決定が、前記ウィンドウが前記表示画面内に前記ウィンドウの全体が前記第２の方向の前記表示画面内に位置することを示すとき、前記スクロールバー無しのウィンドウを前記第２の方向の前記表示画面に表示するステップは、前記ウィンドウに前記スクロールバーが存在する場合は、該ウィンドウが表示される前に前記スクロールバーを削除するステップを含むことを特徴とする請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイの方向が変更された際に、ウィンドウに表示されるコンテンツを自動的に調整する方法およびシステムに関する。
【背景技術】
【０００２】
パーソナルポケット装置は、ますます一般に普及している。多くのポケット装置で、表示画面を回転することは普通の機能になってきている。表示画面を回転させると、ユーザは表示画面の方向を垂直（すなわち、縦長（ｐｏｒｔｒａｉｔ））から水平（すなわち、横長（ｌａｎｄｓｃａｐｅ））に変更することができ、その逆の場合も同様である。表示画面の方向が変更されると、ダイアログボックスなどウィンドウ中のコンテンツが見えなくなることがある。したがって、新しい方向では、ユーザがウィンドウ全体をアクセスできなくなることがある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
表示画面の方向が変更されたとき、コンテンツのすべてにアクセスできるようウィンドウのコンテンツを自動的に表示する方法が求められている。
【課題を解決するための手段】
【０００４】
本発明は、方向が変更されたディスプレイ上にウィンドウのコンテンツを自動的に表示するための方法およびシステムを対象とする。本方法は、第１の方向を有するディスプレイ上でウィンドウを位置指定すること、第２の方向を有するディスプレイ上でウィンドウの最大部分を見ることが可能なようにウィンドウを配置すること、第２の方向を有するディスプレイ上でウィンドウを見ることが可能なようにウィンドウのサイズを変更すること、第２の方向を有するディスプレイ上でそのウィンドウを完全に見ることが可能かどうか判定すること、および完全に見えない場合、ウィンドウの見えない部分にアクセスできるようにスクロールバーをウィンドウに追加することを含む。
【０００５】
本システムは、方向変更が開始されたとき、シェルおよびウィンドウマネージャ機能を用いて、自動的にウィンドウのサイズ、方向、および機能を調整するよう動作する自動ウィンドウ調整機構を備える。シェルは、新しい方向でそのウィンドウを完全に見ることが可能かどうか判定する。新しい方向でウィンドウを完全に見ることができない場合、シェルはウィンドウの位置決めをし、サイズを変更する。ウィンドウは、新しい方向でそのウィンドウを最もよく見ることができるように位置決めおよびサイズ変更される。ウィンドウが位置決めされサイズ変更が行われた後、新しい方向でウィンドウを完全に見ることができない場合、ウィンドウマネージャはそのウィンドウにスクロールバーを追加する。
【発明を実施するための最良の形態】
【０００６】
簡単に述べると、本発明は、方向が変更されたディスプレイ上にウィンドウのコンテンツを自動的に表示するための方法およびシステムを対象とする。ダイアログボックスなどウィンドウのコンテンツは、特定方向（例えば、縦長）のために特定のサイズおよび位置で作成されていることがある。本発明は、表示画面方向が（例えば、縦長から横長に）変更されたとき、ウィンドウをその全体が見えるように位置変更し、サイズ変更を行う。表示画面内で見ることができないコンテンツに完全にアクセスできるようにスクロールバーを追加することができる。同様に、新しい方向でスクロールバーをもはや必要としない場合、そのスクロールバーを除去することができる。ウィンドウの位置変更／サイズ変更、およびスクロールバーの追加／除去は、動作中の他のシステムアプリケーションを中断せずに行われる。
【０００７】
例示的な動作環境
図１を参照すると、本発明を実施するための一例示的システムは、コンピューティング装置１００などのコンピューティング装置を含む。基本的な構成は、破線１０２内のこれらのコンポーネントを含む。基本構成では、コンピューティング装置１００は、通常、少なくとも１つの処理ユニット１０４、およびシステムメモリ１０６を含む。コンピューティング装置の正確な構成およびタイプに応じて、システムメモリ１０６は、（ＲＡＭなどの）揮発性のもの、（ＲＯＭやフラッシュメモリなどの）不揮発性のもの、またはその２つの何らかの組合わせとすることができる。システムメモリ１０６は、通常オペレーティングシステム１０８、１つまたは複数のアプリケーション１１０を含んでおり、またプログラムデータ１１２を含むこともできる。
【０００８】
コンピューティング装置１００は、追加の特徴または機能を有することもできる。例えば、コンピューティング装置１００はまた、例えば、磁気ディスクや光ディスク、メモリスティックなど（取外し可能および／または取外し不能の）追加のデータ記憶装置を含むこともできる。このような追加の記憶装置は、取外し可能記憶装置１１４および取外し不能記憶装置１１６として図１に示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術によって実装された揮発性および不揮発性、取外し可能および取外し不能媒体を含むことができる。システムメモリ１０６、取外し可能記憶装置１１４、および取外し不能記憶装置１１６はすべて、コンピュータ記憶媒体の実施例である。コンピュータ記憶媒体は、これだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋｓ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは他の任意の媒体であって、所望の情報を記憶するのに使用することができ、またコンピューティング装置１００によってアクセスできる媒体を含む。このようなコンピュータ記憶媒体のいずれも装置１００の一部分とすることができる。コンピューティング装置１００はまた、キーボード、マウス、ペン、音声入力装置、タッチ式入力装置などの入力装置１１８を有することができる。また、ディスプレイ、スピーカ、プリンタなどの出力装置１２０も含めることができる。これらの装置は当技術分野で周知であり、ここで詳細に論ずる必要はない。
【０００９】
コンピューティング装置１００はまた、ネットワークを介するなどにより、装置が他のコンピューティング装置１２４と通信できるようにする通信接続１２２を含むことができる。通信接続１２２は、通信媒体の一実施例である。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波や他のトランスポート機構など変調されたデータ信号中の他のデータによって実施可能であり、また任意の情報送達媒体を含む。例として、しかしこれに限るものではないが、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、および音響やＲＦ、赤外線、他の無線媒体などの無線媒体を含む。本明細書で用いられるコンピュータ可読媒体という用語は、記憶媒体と通信媒体を共に含む。
【００１０】
自動ウィンドウ調整機構
図２〜７は、方向変更が開始されたとき、特定の位置および特定のサイズであるウィンドウの実施例を示す。図示の実施例は、縦長から横長への変更を示す。また、横長から縦長への方向変更についても、本発明の趣旨または範囲から逸脱することなく、本発明を利用できることが理解されよう。
【００１１】
図２〜７のそれぞれは、ウィンドウ（例えば、２００）を含む表示画面の縦長表示（例えば、２１０）および横長表示（例えば、２２０）のオーバーレイ（ｏｖｅｒｌａｙ）を示す。そのオーバーレイ内のウィンドウのサイズおよび位置が図示されている。図２〜７におけるいくつかのウィンドウのサイズおよび位置は、いくつかの環境で、方向を変更した後にウィンドウの全体をもはや見ることができないことを示している。
【００１２】
さらに、図２〜７はまた、本発明によって実施される新しいウィンドウサイズ、位置および機能を示す。本発明は、（大きな矢印で示すように）元のウィンドウ（例えば、２００）のサイズ、位置、および機能を自動的に調整して新しいウィンドウ（例えば２３０）を作成する。
【００１３】
さらに、図２〜７で分かるように、いくつかのウィンドウは、そのサイズおよび位置に応じて、コンテンツを表示するためにウィンドウにスクロールバーを挿入することが必要となり得る。図２〜４には、スクロールバーの挿入を必要としないサイズおよび位置のウィンドウを示す。それに対して、図５〜７に、スクロールバーの挿入が必要となるサイズと位置のウィンドウを示す。
【００１４】
図２は、表示画面が縦長から横長に変更される前と後のいずれでも表示画面内で見ることができるウィンドウを示す。ウィンドウ２００は、表示画面が縦長方向２１０を有するとき、表示画面の上部に位置する。ウィンドウ２００は、表示画面が横長方向２２０を有するとき、表示画面の左部分に位置する。ウィンドウ２００は、表示画面方向２１０、２２０のいずれでも完全に見ることができる。したがって、方向が横長から縦長に変更されたときも、ウィンドウ２００を表示画面に適合させるためのアクションは必要としない。したがって、本発明は、新しいウィンドウを得るためにウィンドウのプロパティを調整しない。新しいウィンドウ２３０は、新しい方向でこのウィンドウを見るのに本発明を利用する必要がないことを示している。
【００１５】
図３は、表示画面の方向が縦長から横長に変更されたとき、表示画面上で部分的に見ることができるウィンドウを示す。ウィンドウ３００は、表示画面が縦長方向３１０を有するとき、表示画面の中間部分に位置している。ウィンドウ３００の破線３２０より上の部分は、表示画面が横長方向３３０を有するとき、表示画面の下側左部分に位置する。ウィンドウ３００の破線３２０より下の部分は、表示画面が横長方向３３０を有するとき、表示画面上で見ることができない。したがって、本発明によれば、ウィンドウ３００は、ウィンドウの全体を見ることができるように横長方向３３０を有する表示画面内で位置変更される。例えば、図３の下の部分で示すように、ウィンドウ３００は、ウィンドウ３４０の位置に位置変更することができる。
【００１６】
図４は、表示画面の方向が縦長から横長に変更されたとき、表示画面上で見ることができないウィンドウを示す。ウィンドウ４００は、表示画面が縦長方向４１０を有するとき、表示画面の下側部分に位置する。ウィンドウ４００は、表示画面が横長方向４２０を有するとき、表示画面上で見ることができない。ユーザがウィンドウ４００にアクセスできるようにするために、ウィンドウ４００は、横長方向４２０を有する表示画面内に位置するように位置変更される。例えば、ウィンドウ４００は、図４の下の部分に示すウィンドウ４３０の位置に位置変更することができる。
【００１７】
図５は、表示画面の方向が縦長から横長に変更されたとき、部分的に表示画面上で見ることができるフルスクリーンのウィンドウを示す。ウィンドウ５００は、本質的に縦長方向５１０を有する表示画面全体を満たす大きさである。しかし、表示画面の方向が横長方向５３０に変更されると表示画面の高さが低くなるため、ウィンドウ５００の破線５２０より下の部分を見ることができない。
【００１８】
表示画面が横長方向を有するとき、ユーザがウィンドウ５００の隠れた部分にアクセスできるようにするために、図５の下の部分で示すように、ウィンドウ５４０の形を取るようにウィンドウ５００のサイズを変更する。本発明によれば、垂直のスクロールバー５５０がウィンドウ５４０に追加される。スクロールバー５５０により、ユーザが表示画面上ですぐには見ることができないウィンドウ５４０の部分にアクセスできるようになる。
【００１９】
図６は、表示画面の方向が縦長でも横長でも、表示画面上で完全には見ることができないウィンドウを示す。ウィンドウ６００は、縦長方向６１０を有する表示画面内に適合していない。ウィンドウ６００の破線６２０より下の部分を見ることができない。同様に、ウィンドウ６００は、横長方向６３０を有する表示画面内に適合していない。ウィンドウ６００の破線６４０より下の部分を表示画面上で見ることができない。ユーザがウィンドウ６００に完全にアクセスできるようにするために、横長方向６３０を有する表示画面に適合するようにウィンドウ６００の位置およびサイズを変更し、スクロールバーを追加する。例えば、図６の下の部分に示すように、ウィンドウ６００は、（スクロールバー６６０を含めた）新しいウィンドウ６５０の形を取るように位置およびサイズを変更することができる。
【００２０】
図７は、表示画面の方向が縦長のとき表示画面上で部分的に見ることができ、表示画面の方向が横長のときは表示画面上で見ることができないウィンドウを示す。ウィンドウ７００は、縦長方向７１０を有する表示画面内に適合していない。ウィンドウ７００の破線７２０より下の部分は見ることができない。同様に、ウィンドウ７００は、横長方向７３０を有する表示画面内で見ることができない。ユーザがウィンドウ７００にアクセスできるようにするために、ウィンドウ７００は、横長方向７３０を有する表示画面に適合するように位置およびサイズを変更し、スクロールバーを追加する。例えば、図７の下の部分に示すように、ウィンドウ７００は、（スクロールバー７５０を含めた）新しいウィンドウ７４０の形を取るように位置およびサイズを変更することができる。
【００２１】
本発明は、縦長から横長への表示画面の方向の変更に関して説明しているが、前述のシステムは表示画面方向の任意の変更をサポートできることが理解されよう。
【００２２】
図８は、本発明による、方向変更が開始されたときにディスプレイ上でウィンドウのサイズ、方向、および機能を自動的に調整するためのシステムの例示的な機能ブロック図を示す。本システムは、表示画面８００、シェル８１０、ウィンドウマネージャ８２０、および自動ウィンドウ調整モジュール８３０を含む。シェル８１０およびウィンドウマネージャ８２０は、オペレーティングシステム８４０のコンポーネントである。表示画面８００は、ユーザインターフェースの可視部分である。自動ウィンドウ調整モジュール８３０は、方向が変更されたディスプレイ上にウィンドウのコンテンツを自動的に表示するためのコードを提供するアプリケーションである。
【００２３】
シェル８１０は、ウィンドウ位置決めアプリケーションによって適用されるルールを決定するためのヒューリスティック（ｈｅｕｒｉｓｔｉｃ）を含む。ヒューリスティックは、方向が変更されたとき、表示画面８００の「外見と操作性（ｌｏｏｋ  ａｎｄ  ｆｅｅｌ）」を定める。他の実施形態では、ヒューリスティックは、オペレーティングシステム８４０の異なるコンポーネント中に含めることができる。
【００２４】
ウィンドウマネージャ８２０は、ウィンドウの可視領域、および表示画面８００上におけるスクロールバーの追加／除去を管理する。ウィンドウマネージャ８２０は、ユーザが新しい方向のウィンドウをスクロールアップまたはダウンしたいとき、スクロールバーの動作を制御する。
【００２５】
オペレーティングシステム８４０は、表示画面８００の方向が変更されたときシェル８１０に通知を送る。シェル８１０は、新しい方向でトップレベルにあるすべてのウィンドウを検索する。検索は、すべての利用可能なトップレベルのウィンドウが列挙されるようにクラスによって行われる。例えば、トップレベルのウィンドウ８５０が、シェル８１０によって見つけられる。
【００２６】
一実施形態では、より低いレベルのウィンドウを見つけることができるように、トップレベルのウィンドウの制約（ｒｅｓｔｒｉｃｔｉｏｎ）を除去する。例えば、ウィンドウが、ネストされたウィンドウを含む場合、トップレベルのウィンドウの制約は除去される。ネストされたウィンドウとは、あるウィンドウ内に常駐するウィンドウのことである。
【００２７】
シェル８１０は、ウィンドウ８５０が表示画面８００の新しい方向で見ることができるかどうか判定する。ウィンドウの全体が新しい方向で見ることができる場合、何のアクションも取られない。新しい方向で、ウィンドウ８５０のすべてまたは一部を見ることができない場合は、シェル８１０は、ウィンドウ８５０の位置を変更し、必要な場合、サイズも変更する。
【００２８】
ウィンドウマネージャ８２０がシェル８１０から、表示画面８００の方向変更が行われているという通知を受け取ったとき、表示画面８００の新旧両方の方向におけるウィンドウ８５０のディメンジョンが決定される。ウィンドウ８５０が位置およびサイズを変更される前に、ＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）をコールしてウィンドウのディメンジョンを決定する。例えば、シェル８１０は、ウィンドウ８５０のサイズを列挙するために自動ウィンドウ調整モジュール８３０中のＧｅｔＷｉｎｄｏｗＲｅｃｔをコールする。
【００２９】
シェル８１０は、新しい方向における表示画面８００の可視領域を計算することによってウィンドウ８５０の位置およびサイズを変更する。ウィンドウ８５０は、表示画面８００の領域の任意の部分をカバーするようにサイズを変更することができる。一実施形態では、その位置変更およびサイズ変更は、シェル８１０が位置変更／サイズ変更アプリケーションを自動ウィンドウ調整モジュール８３０からコールした結果として行われる。位置変更／サイズ変更アプリケーションがコールされた後、シェル８１０は、ウィンドウマネージャ８２０にウィンドウ８５０の可視領域の垂直高さを要求する。次いで、シェル８１０は、新しいウィンドウのディメンジョンを決定し、新しいディメンジョンをウィンドウマネージャ８２０に送る。ウィンドウマネージャ８２０は、ウィンドウ８５０の位置および表示画面８００の方向に基づいて、適切なサイズ変更および位置変更の計算を行う。次いで、新しいウィンドウが新しい方向を有する表示画面８００内に配置される。
【００３０】
シェル８１０は、新しいウィンドウがスクロールバーを必要とする場合、スクロールバー通知をウィンドウマネージャ８２０に送る。そのスクロールバー通知には、表示画面８００上の可視領域の制限に関する情報が含まれる。スクロールバー通知はまた、スクロールバーの除去または追加を制御する。スクロールバー通知はカスタマイズされるので、ユーザは、可視領域の境界を定義することができ、またウィンドウマネージャ８２０は、所望の位置にスクロールアップまたはダウンすることができる。
【００３１】
シェル８１０は、方向変更後、新しいウィンドウをその中に配置することができる表示画面８００の可視領域に関する情報を含むことができる。表示画面８００の可視領域は、設定されたパラメータではない。一実施形態では、ポケットコンピューティング装置に関して、ウィンドウ８５０のために最大利用可能な可視スペースは、表示画面８００のディメンジョンよりやや小さく、メニュークロームのための余地を残せるようにする。メニュークロームは、ユーザによって頻繁にアクセスされるタスクバーまたは他のツールを含むことができる。シェル８１０は、メニュークロームのコンテンツと位置に関する情報を含む。ウィンドウ８５０は、通常、メニュークロームが位置している場所には表示されないが、所望の場合、ウィンドウ８５０は、メニュークロームを覆うようにすることもできる。位置変更／サイズ変更アプリケーションは、ウィンドウ８５０を所望の任意のディメンジョンにサイズ変更できるような柔軟性を提供する。
【００３２】
シェル８１０は、ＯＥＭ（ｏｒｉｇｉｎａｌ  ｅｑｕｉｐｍｅｎｔ  ｍａｎｕｆａｃｔｕｒｅｒｓ、相手先ブランド製造企業）が設計仕様を満たすようにカスタマイズできる外部コンポーネントである。シェル８１０は、メニュークロームのディメンジョンに関して固定されておらず、そのため、システムに柔軟性が付加される。一実施形態では、メニュークロームが表示されない。本発明は、ポケットコンピューティング装置に関連して説明しているが、前述のシステムは多くの様々なシェルをサポートできることが理解されよう。
【００３３】
方向が変更されたディスプレイ上にウィンドウのコンテンツを自動的に表示するための例示的プロセスを図９を参照して説明する。プロセスはブロック９００から開始し、そこでは、表示画面が横長または縦長などある方向を有するように構成されている。
【００３４】
ブロック９０５で、表示画面の方向変更が開始される。方向変更は、ユーザによって開始されまたは自動的に行うことができる。一実施形態では、方向変更は、０度から９０度である。一実施例では、表示画面の方向変更は、縦長から横長への変更である。処理は、ブロック９１０に進む。ブロック９１０で、オペレーティングシステムは、方向変更が生じたことをシェルに通知する。次いで、処理はブロック９１５に進む。
【００３５】
ブロック９１５で、シェルは、システム上で現在開いているトップレベルのウィンドウを検索する。しかし、一実施形態では、他の低いレベルのウィンドウを見つけることができる。例えば、ネストされたウィンドウの場合、トップレベルのウィンドウという制約は除去される。処理は、判断ブロック９２０に進む。
【００３６】
判断ブロック９２０で、ウィンドウの全体が表示画面内に位置しているかどうかの判定が行われる。ウィンドウの全体が（図２に示すように）表示画面内に位置している場合、プロセスは判断ブロック９５０に進む。しかし、ウィンドウの任意の部分が表示画面内に位置していない場合、プロセスはブロック９２５に進む。
【００３７】
ブロック９２５で、ウィンドウは、表示画面の制限内で見ることができるように位置およびサイズが変更される。図３、４で示すように、位置変更された後にウィンドウの全体が表示画面内に適合する場合、位置変更だけが必要になる。同様にサイズ変更だけが必要となり得る。例えば、図５に示すように、ウィンドウはすでに表示画面の上部の左隅に位置しており、したがって、位置の変更は必要としない。図６、７で示すように、表示画面の方向が縦長から横長に変更されたとき、ウィンドウの垂直長さが表示画面の垂直幅より大であり、かつウィンドウが表示画面の上部左隅に位置していない場合は、位置変更およびサイズ変更が共に必要となる。表示画面の方向が横長から縦長に変更されたとき、ウィンドウの水平長さが表示画面の水平幅より大であり、ウィンドウが表示画面の上部左隅に位置していない場合は、位置変更およびサイズ変更が共に必要となる。処理は、判断ブロック９３０に進む。
【００３８】
判断ブロック９３０で、ウィンドウの全体が表示画面内に位置しているかどうかの判定が行われる。ウィンドウの全体が表示画面内に位置していない場合、プロセスはブロック９３５に進む。しかし、ウィンドウの全体が表示画面内に位置していた場合、プロセスは判断ブロック９４０に進む。
【００３９】
ブロック９３５で、スクロールバーがウィンドウに追加される。スクロールバーにより、ユーザが表示画面内ですぐには見ることのできないウィンドウの部分にアクセスできるようになる。次いで、処理は判断ブロック９５０に進む。
【００４０】
判断ブロック９４０で、スクロールバーがウィンドウ内に存在するかどうかの判定が行われる。スクロールバーがウィンドウ内に存在しない場合、プロセスフローは判断ブロック９５０に進む。しかし、スクロールバーがウィンドウ内に存在する場合は、プロセスはブロック９４５に進む。
【００４１】
ブロック９４５で、スクロールバーは不要のため除去される。図６の下の部分を参照すると、スクロールバーを有するウィンドウが横長方向を有する表示画面内に示されている。方向を縦長に変更すると、図６の上の左の部分に示された構成になるはずである。図示のように、ウィンドウの全体を表示画面内で見ることができる。したがって、ウィンドウのコンテンツをすべて表示するためのスクロールバーは必要ではない。次いで、処理は、判断ブロック９５０に進む。
判断ブロック９５０で、他に開いているウィンドウがあるかどうかの判定が行われる。位置変更／サイズ変更またはスクロールバーの追加／除去が必要なウィンドウが開いている場合、プロセスはブロック９１５に戻ってこのプロセスを繰り返す。開いているウィンドウがない場合、ブロック９５５で、処理は終了する。
【００４２】
図１０は、本発明による、方向が変更されたディスプレイ上にウィンドウのコンテンツを自動的に表示する機構のための例示的コードを示す。サイズ変更および／または位置変更が必要なウィンドウを見つけるためのコマンドが実行される（例えば、１０００）。ウィンドウマネージャがサイズ変更および／または位置変更すべきウィンドウを受け取る（例えば、１０１０）。スクロールバーを追加すべきかどうかの判定が行われる（例えば、１０２０）。ウィンドウのサイズが決定される（例えば、１０３０）。ポインタがウィンドウに配置される（例えば、１０４０）。次いで、ウィンドウのサイズが変更される。図示された実施例では、ウィンドウのサイズは、８０ピクセルだけ小さくする（例えば、１０５０）。次いで、スクロールバーが追加される（例えば、１０６０）。
【００４３】
上記の明細、実施例、およびデータは、本発明の構成の製造および使用に関する完全な説明を提供する。本発明の多くの実施形態を本発明の趣旨および範囲を逸脱することなく行うことができるので、本発明は添付の特許請求の範囲にある。
【図面の簡単な説明】
【００４４】
【図１】本発明を実装することができる例示のコンピューティング環境を示す図である。
【図２】本発明による、表示画面が縦長から横長に変更される前と後のいずれでも表示画面内で見ることのできるウィンドウを示す図である。
【図３】表示画面の方向が縦長から横長に変更されたとき、部分的に表示画面上で見ることができるウィンドウ、および本発明に従って位置変更したウィンドウを示す図である。
【図４】表示画面の方向が縦長から横長に変更されたとき、表示画面上で見ることができないウィンドウ、および本発明に従って位置変更したウィンドウを示す図である。
【図５】表示画面の方向が縦長から横長に変更されたとき、部分的に表示画面上で見ることができるフルスクリーンのウィンドウ、および本発明に従ってサイズを変更し、スクロールバーを含めたウィンドウを示す図である。
【図６】表示画面の方向が縦長の場合も横長の場合も完全には表示画面上で見ることができないウィンドウ、および本発明に従ってサイズおよび位置を変更し、スクロールバーを含むウィンドウを示す図である。
【図７】表示画面の方向が縦長であるとき表示画面上で部分的に見ることができ、表示画面の方向が横長であるときは表示画面上で見ることができないウィンドウ、および本発明に従ってサイズおよび位置を変更し、スクロールバーを含めたウィンドウを示す図である。
【図８】本発明による、方向が変更されたディスプレイ上にウィンドウのコンテンツを自動的に表示するためのシステムの例示的な機能ブロック図である。
【図９】本発明による、方向が変更されたディスプレイ上にウィンドウのコンテンツを自動的に表示するためのプロセスを示すオペレーションの流れ図である。
【図１０】本発明による、方向が変更されたディスプレイ上にウィンドウのコンテンツを自動的に表示する機構のための例示的なコードを示す図である。
【符号の説明】
【００４５】
１０４  処理ユニット
１０６  システムメモリ
１０８  オペレーティングシステム
１１０  アプリケーション
１１２  プログラムデータ
１１４  取外し可能記憶装置
１１６  取外し不能記憶装置
１１８  入力装置
１２０  出力装置
１２２  通信接続
１２４  他のコンピューティング装置
＃１  コンピューティング装置
＃２  ＲＯＭ／ＲＡＭ
８００  表示画面
８１０  シェル
８２０  ウィンドウマネージャ
８３０  自動ウィンドウ調整
【図１】
0004707405.tif 000002
【図２】
0004707405.tif 000003
【図３】
0004707405.tif 000004
【図４】
0004707405.tif 000005
【図５】
0004707405.tif 000006
【図６】
0004707405.tif 000007
【図７】
0004707405.tif 000008
【図８】
0004707405.tif 000009
【図９】
0004707405.tif 000010
【図１０】
0004707405.tif 000011