以下、実施の形態について図面を参照して説明する。
まず、図1を参照して、本実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、ノートブックタイプのパーソナルコンピュータ、タブレット端末または他の各種情報処理装置として実現され得る。以下では、この情報処理装置が、ノートブックタイプのパーソナルコンピュータ10として実現されている場合を想定する。
図1は、ディスプレイユニットを開いた状態におけるコンピュータ10を正面側から見た斜視図である。本コンピュータ10は、バッテリ20から電力を受けるように構成されている。本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とを備える。ディスプレイユニット12には、液晶表示装置(LCD)31のような表示装置が組み込まれている。さらに、ディスプレイユニット12の上端部には、カメラ(Webカメラ)32が配置されている。
ディスプレイユニット12は、コンピュータ本体11の上面が露出される開放位置とコンピュータ本体11の上面がディスプレイユニット12で覆われる閉塞位置との間を回動自在にコンピュータ本体11に取り付けられている。コンピュータ本体11は薄い箱形の筐体を有しており、その上面にはキーボード13、タッチパッド14、指紋センサ15、本コンピュータ10をパワーオン/オフするための電源スイッチ16、幾つかの機能ボタン17、およびスピーカ18A、18Bが配置されている。
また、コンピュータ本体11には、電源コネクタ21が設けられている。電源コネクタ21はコンピュータ本体11の側面、例えば左側面に設けられている。この電源コネクタ21には、外部電源装置が取り外し自在に接続される。外部電源装置としては、ACアダプタを用いることが出来る。ACアダプタは商用電源(AC電力)をDC電力に変換する電源装置である。
バッテリ20は、例えば、コンピュータ本体11の後端部に取り外し自在に装着される。バッテリ20は本コンピュータ10に内蔵されるバッテリであってもよい。
本コンピュータ10は、外部電源装置からの電力またはバッテリ20からの電力によって駆動される。本コンピュータ10の電源コネクタ21に外部電源装置が接続されているならば、本コンピュータ10は外部電源装置からの電力によって駆動される。また、外部電源装置からの電力は、バッテリ20を充電するためにも用いられる。本コンピュータ10の電源コネクタ21に外部電源装置が接続されていない期間中は、本コンピュータ10はバッテリ20からの電力によって駆動される。
さらに、コンピュータ本体11には、幾つかのUSBポート22、HDMI(High-definition multimedia interface)出力端子23、およびRGBポート24が設けられている。
図2は、本コンピュータ10のシステム構成を示している。本コンピュータ10は、CPU111、システムコントローラ112、主メモリ113、グラフィクスプロセッシングユニット(GPU)114、サウンドコーデック115、BIOS−ROM116、ハードディスクドライブ(HDD)117、光ディスクドライブ(ODD)118、BT(Bluetooth(登録商標))モジュール120、無線LANモジュール121、SDカードコントローラ122、PCI EXPRESSカードコントローラ123、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)130、キーボードバックライト13A、パネル開閉スイッチ131、加速度センサ132、電源コントローラ(PSC)141、電源回路142等を備えている。
CPU111は、本コンピュータ10の各コンポーネントの動作を制御するプロセッサである。このCPU111は、HDD117から主メモリ113にロードされる各種ソフトウェアを実行する。このソフトウェアは、オペレーティングシステム(OS)201および各種アプリケーションプログラムを含む。さらに、このソフトウェアは、後述する画面分割ユーティリティプログラム202を含む。
また、CPU111は、不揮発性メモリであるBIOS−ROM116に格納された基本入出力システム(BIOS)も実行する。BIOSはハードウェア制御のためのシステムプログラムである。
GPU114は、本コンピュータ10のディスプレイモニタとして使用されるLCD31を制御する表示コントローラである。GPU114は、ビデオメモリ(VRAM)114Aに格納された表示データからLCD31に供給すべき表示信号(LVDS信号)を生成する。さらに、GPU114は、表示データからアナログRGB信号およびHDMIビデオ信号を生成することもできる。アナログRGB信号はRGBポート24を介して外部ディスプレイに供給される。HDMI出力端子23は、HDMIビデオ信号(非圧縮のデジタル映像信号)と、デジタルオーディオ信号とを一本のケーブルで外部ディスプレイに送出することができる。HDMI制御回路119は、HDMIビデオ信号およびデジタルオーディオ信号をHDMI出力端子23を介して外部ディスプレイに送出するためのインタフェースである。
システムコントローラ112は、CPU111と各コンポーネントとの間を接続するブリッジデバイスである。システムコントローラ112は、ハードディスクドライブ(HDD)117および光ディスクドライブ(ODD)118を制御するためのシリアルATAコントローラを内蔵している。さらに、システムコントローラ112は、LPC(Low PIN Count)バス上の各デバイスとの通信を実行する。
EC/KBC130は、LPCバスに接続されている。EC/KBC130、電源コントローラ(PSC)141、およびバッテリ20は、I2Cバスのようなシリアルバスを介して相互接続されている。
EC/KBC130は、本コンピュータ10の電力管理を実行するための電力管理コントローラであり、例えば、キーボード(KB)13およびタッチパッド14などを制御するキーボードコントローラを内蔵したワンチップマイクロコンピュータとして実現されている。EC/KBC130は、ユーザによる電源スイッチ16の操作に応じて本コンピュータ10をパワーオンおよびパワーオフする機能を有している。本コンピュータ10のパワーオンおよびパワーオフの制御は、EC/KBC130と電源コントローラ(PSC)141との協働動作によって実行される。EC/KBC130から送信されるON信号を受けると、電源コントローラ(PSC)141は電源回路142を制御して本コンピュータ10をパワーオンする。また、EC/KBC130から送信されるOFF信号を受けると、電源コントローラ(PSC)141は電源回路142を制御して本コンピュータ10をパワーオフする。EC/KBC130、電源コントローラ(PSC)141、および電源回路142は、本コンピュータ10がパワーオフされている期間中も、バッテリ20またはACアダプタ150からの電力によって動作する。
さらに、EC/KBC130は、キーボード13の背面に配置されたキーボードバックライト13Aをオン/オフすることができる。さらに、EC/KBC130は、ディスプレイユニット12の開閉を検出するように構成されたパネル開閉スイッチ131に接続されている。パネル開閉スイッチ131によってディスプレイユニット12のオープンが検出された場合にも、EC/KBC130は、本コンピュータ10をパワーオンすることができる。
電源回路142は、バッテリ20からの電力、またはコンピュータ本体11に外部電源として接続されるACアダプタ150からの電力を用いて、各コンポーネントへ供給すべき電力(動作電源)を生成する。
次に、図3乃至図7を参照して、以上のような構成を持つ本コンピュータ10上で動作する画面分割ユーティリティプログラム202の基本機能について説明する。
画面分割ユーティリティプログラム202は、デスクトップ画面上にウィンドウをどのように配置すべきかが定義されたプロファイルを使って、デスクトップ画面上のウィンドウの再配置を支援するユーザ支援プログラムである。また、画面分割ユーティリティプログラム202は、常駐プログラムとして設定されている。
いま、図3に示すように、デスクトップ画面上にウィンドウを配置すべき領域が3つずつ定義され、かつ、その配置パターンが互いに異なる(A),(B),(C)の3つのプロファイルが定義されているものと想定する。また、このうち、(A)が適用された状態にあるものと想定する。
図4は、例えば何らかのアプリケーションプログラムが起動されて、LCD31に表示されたデスクトップ画面上に当該アプリケーションプログラム用のウィンドウa1が配置された状態を示している。つまり、ウィンドウa1は、アクティブな状態にある(アクティブウィンドウ)。
画面分割ユーティリティプログラム202は、アクティブウィンドウに関する情報、より具体的には、位置やサイズをOS201から取得し、アクティブウィンドウ内の所定の位置にアイコンa2を表示する。例えば、デスクトップ画面上に2つのウィンドウが配置されている場合、画面分割ユーティリティプログラム202は、アクティブな状態にあるウィンドウにのみアイコンa2を表示する。従って、画面分割ユーティリティプログラム202は、第1のウィンドウがアクティブウィンドウであった状態から第2のウィンドウがアクティブウィンドウとなった状態に変化した場合、第1のウィンドウ内のアイコンa2を消去して第2のウィンドウ内にアイコンa2を表示するための処理を実行する。
また、画面分割ユーティリティプログラム202は、タッチパッド14の操作に関する情報もOS201から取得する。そして、その操作がアイコンa2の表示位置に対応するものであった場合、画面分割ユーティリティプログラム202は、(アイコンa2が表示された)アクティブウィンドウを再配置するための処理を実行する。
ポインタがアイコンa2を指し示した状態でタッチパッド14の例えば左ボタンを押下したまま動かす(ドラッグ操作)と、画面分割ユーティリティプログラム202は、ウィンドウa1の配置対象となる領域b1をユーザに認識させるために、当該領域b1に(デスクトップ画面が透けて見えるように)仮想ウィンドウb2を透過的にガイド表示するといった所定の画像処理を施す。
ウィンドウa1の配置対象となる領域b1は、例えばアイコンa2の表示位置に対応する領域とする。ウィンドウa1を右上の領域に配置したい場合、ユーザは、アイコンa2を右上の領域に移動させるべく、いわゆるドラッグ操作を実行する。このドラッグ操作によってウィンドウa1の配置対象となる領域b1が変わると、画面分割ユーティリティプログラム202は、図6に示すように、前述した(デスクトップ画面が透けて見えるように)仮想ウィンドウb2を透過的にガイド表示するといった所定の画像処理を施す領域を変更する。これにより、ユーザは、ウィンドウa1の配置先を目的の領域に設定できたことを認識する。
ウィンドウa1の配置先を目的の領域に設定できたユーザは、タッチパッド14の例えば左ボタンを離す。これを受けて、画面分割ユーティリティプログラム202は、ウィンドウa1を右上の領域に配置するためのコマンドをOS201に発行する。その結果、図7に示すように、このウィンドウa1をユーザが所望する右上の領域に再配置させることができる。換言すれば、ユーザは、アイコンa2に対する操作を行うだけで、プロファイルで定義されるいずれかの領域にウィンドウを簡単に再配置することが可能となる。
なお、ポインタがアイコンa2を指し示していない状態でウィンドウa1を移動させるようないわゆるドラッグ操作が行われた場合、画面分割ユーティリティプログラム202は、OS201から取得されるアクティブウィンドウに関する情報に基づき、この移動に追従すべくアイコンa2の表示制御を実行する。
ところで、このプロファイルは、通常、ユーティリティプログラム(ここでいう画面分割ユーティリティプログラム202)が提供するGUIを介してユーザが設定する。ユーザは、例えば、画面上にガイド表示されたラインを移動させるなどして分割位置やサイズを設定するといった作業を行っている。しかしながら、この方法だと、実際にウィンドウが配置されたときに、自分が思っていたような表示にならない場合もあり、また、そもそも、その設定自体に手間が掛かる。
そこで、本コンピュータ10は、このプロファイルの設定、即ち、デスクトップ画面上におけるウィンドウの配置の設定を効率的に行えるようにしたものであり、以下、この点について詳述する。
いま、ユーザは、図3の(A)に示したようなウィンドウの配置パターンを定義するプロファイルを作成しようと考えているものとする。この場合、ユーザは、例えば図8に示すように、実際に3つのウィンドウをLCD31に表示されたデスクトップ画面上に配置して、例えば画面分割ユーティリティプログラム202用に予め割り当てられたキーボード13上のファンクションキーを押下する。ファンクションキーの押下は、例えば第1のキーを押下した状態で第2のキーを押下するものでもよい。
当該ファンクションキーの押下をOS201から通知されると、画面分割ユーティリティプログラム202は、デスクトップ画面上に配置されている3つのウィンドウに関する情報、つまり位置やサイズをOS201から取得する。画面分割ユーティリティプログラム202は、OS201から取得した、デスクトップ画面上に配置されている3つのウィンドウに関する情報に基づき、図3の(A)に示したようなウィンドウの配置パターンを定義するプロファイルを作成する。なお、プロファイルの作成は、ウィンドウを配置してファンクションキーを押下する他に、画面分割ユーティリティプログラム202がGUIとして提供するメニューから「プロファイル作成」を選択して行うことも可能である。
上記の方法によれば、ユーザが実際にデスクトップ画面上に配置したウィンドウの位置およびサイズに基づいてプロファイルが作成されるので、ユーザのイメージ通りにウィンドウを再配置することができる。例えば、ユーザがある作業を行う場合、例えばブラウザ、文書作成ソフトウェア、表計算ソフトウェアの3つのアプリケーションプログラムを並行して利用し、かつ、これら3つのアプリケーションプログラムのウィンドウをいつもほぼ同じ位置に配置しているものとする。このような場合、各ウィンドウが所望の位置に配置された状態で、1度ファンクションキーを押下するだけで、この作業用のプロファイルを作成することができ、以降、例えば作業の開始時に、各ウィンドウを目的の領域に簡単に再配置することが可能となる。
図9は、画面分割ユーティリティプログラム202の動作原理を説明するための機能ブロック図である。
図9に示すように、画面分割ユーティリティプログラム202は、プロファイル作成・設定支援モジュール401と、ウィンドウ配置支援モジュール402とを有する。
プロファイル作成・設定支援モジュール401は、デスクトップ画面上に配置されたウィンドウに関する情報をOS201のウィンドウ管理モジュール302から取得してプロファイルを作成するモジュールである。また、プロファイル作成・設定支援モジュール401は、複数のプロファイルの中から所望のプロファイルを選択するためのユーザインタフェースを提供する。一方、ウィンドウ配置支援モジュール402は、アクティブウィンドウa1に関する情報をOS201のウィンドウ管理モジュール302から取得して当該アクティブウィンドウa1内にアイコンa2を表示すると共に、アイコンa2に対する操作に応じて当該アクティブウィンドウa1を再配置するモジュールである。
まず、ウィンドウ配置支援モジュール402の動作原理を簡単に説明する。
ウィンドウ配置支援モジュール402は、あるウィンドウがアクティブな状態になった場合や、アクティブ状態にあるウィンドウの位置またはサイズが変化した場合等、アクティブウィンドウに関するイベントが発生した場合、その旨を通知すると共に、そのウィンドウに関する情報を転送することをOS201に依頼しておく。また、ウィンドウ配置支援モジュール402は、タッチパッド14が操作された場合、その操作情報を転送することを依頼しておく。これにより、ウィンドウ配置支援モジュール402は、アクティブウィンドウに関する情報をOS201のウィンドウ管理モジュール302から取得でき、また、タッチパッド14の操作情報をOS201のキーボードドライバ301から取得できるようになる。
OS201のウィンドウ管理モジュール302からアクティブウィンドウに関する情報を取得すると、ウィンドウ配置支援モジュール402は、(非アクティブ状態となったウィンドウ内にアイコンa2が表示されていれば)それまでアクティブ状態であったウィンドウ内に重ね合わせるように描画したアイコンa2を除去すると共に、アクティブ状態となったウィンドウ内に重ね合わせるようにアイコンa2を描画し、アイコンa2が改めて描画された画面デ−タのLCD31への表示をOS201を介してディスプレイドライバ303に行わせる。
また、OS201のキーボードドライバ301からタッチパッド14の操作情報を取得した場合には、ウィンドウ配置支援モジュール402は、まず、この操作がアイコンa2の表示位置に対応するものか否かを調べる。アイコンa2の表示位置に対応するものであった場合、ウィンドウ配置支援モジュール402は、仮想ウィンドウb2のガイド表示といった領域b1への所定の画像処理をOS201を介してディスプレイドライバ303に実行させ、また、領域b1へのウィンドウの再配置をウィンドウ管理モジュール302を介して実行する。
なお、プロファイルは、各領域にアプリケーションプログラムの識別子を対応づけて管理できるように構成してもよい。そして、あるアプリケーションプログラムが起動されて当該アプリケーションプログラム用のウィンドウ(アクティブウィンドウ)が設けられた際、このアプリケーションプログラムの識別子がプロファイルによって管理されていたならば、ウィンドウ配置支援モジュール402は、このアプリケーションプログラム用のウィンドウを、プロファイルで定義される領域の中の当該アプリケーションプログラムの識別子が対応づけられた領域に自動的に再配置するようにしてもよい。
次に、プロファイル作成・設定支援モジュール401の動作原理を説明する。
画面分割ユーティリティプログラム202用に予め割り当てられたファンクションキーの押下がOS201のキーボードドライバ301から通知されると、プロファイル作成・設定支援モジュール401は、デスクトップ画面上に配置されているウィンドウに関する情報をOS201のウィンドウ管理モジュール302から取得する。この情報を取得すると、プロファイル作成・設定支援モジュール401は、例えばウィンドウ間の隙間を詰めたり、ウィンドウ同士の重なりを無くしたりといった調整を行った上で、プロファイルとして定義される内容を、例えば図10に示すような、オブジェクトc1を使った確認画面を表示してユーザに提示する。この確認画面上に表示されるオブジェクトc1は、そのプロファイルを使って実際にウィンドウを再配置する際の領域を表すものである。
上記ウィンドウ間の隙間を詰めたり、ウィンドウ同士の重なりを無くしたりといった調整は、例えば、隙間の中心部まで双方のウィンドウの幅を広げたり、重畳部分の中心部まで双方のウィンドウの幅を縮めたりすることによって実施する。
上記ウィンドウ間の隙間を詰めたり、ウィンドウ同士の重なりを無くしたりといった調整機能をプロファイル作成・設定支援モジュール401が備えるため、ユーザは、プロファイルの作成時、大凡の位置にウィンドウを配置すればよい。
図10に示すように、プロファイル作成・設定支援モジュール401は、タッチパッド14で操作可能な3つのソフトウェアボタン(c2〜c4)を確認画面上に表示する。c2は、オブジェクトc1でガイド表示される内容でプロファイルが作成されることに同意する場合に操作するボタンである。ポインタがボタンc2を指し示した状態でいわゆるクリック操作が行われると、プロファイル作成・設定支援モジュール401は、確認画面上にオブジェクトc1でガイド表示したウィンドウの配置パターンを定義するプロファイルを作成する。c3は、オブジェクトc1でガイド表示される内容でプロファイルが作成されることに同意しない場合に操作するボタンである。ポインタがボタンc3を指し示した状態でいわゆるクリック操作が行われると、プロファイル作成・設定支援モジュール401は、プロファイルを作成することなく処理を終了する。
また、c4は、ウィンドウの配置をどのように調整するかをユーザが設定する場合に操作するボタンである。プロファイル作成・設定支援モジュール401は、基本的には、前述したような、ウィンドウ間の隙間を詰めたり、ウィンドウ同士の重なりを無くしたりといった調整を行う。ボタンc4を操作することで、ユーザは、この調整規則を種々カスタマイズすることができる。
ポインタがボタンc4を指し示した状態でいわゆるクリック操作が行われると、プロファイル作成・設定支援モジュール401は、図11に示すオプション画面を表示する。図11に示すように、プロファイル作成・設定支援モジュール401は、タッチパッド14で操作可能な5つのチェックボックス(d1〜d5)をオプション画面上に表示する。
d1のチェックボックスをチェックすると、例えば図12に示すようなプロファイルを作成することが可能になる。このプロファイルによれば、ウィンドウ[2]とウィンドウ[3]とを垂直方向に重ねた状態で再配置することができる。ウィンドウ[2]およびウィンドウ[3]の双方ともに、ある程度のサイズを確保したい場合に有効である。上にしたい方のウィンドウをアクティブな状態にすることで、ウィンドウ間の上下関係を適宜に逆転させることができる。
d2のチェックボックスをチェックすると、大きなウィンドウの配置を優先した調整を行わせることができる。例えば2つのウィンドウ間に隙間がある場合、サイズの小さい方のウィンドウの幅だけを広げ、また、2つのウィンドウが重なっている場合、サイズの小さい方のウィンドウの幅だけを縮める調整が施される。
d3のチェックボックスをチェックすると、例えば図13に示すようなプロファイルを作成することが可能になる。ウィンドウ[1]〜[3]を、ある程度の間隔を置いて配置したい場合に有効である。d1のチェックボックスと共にチェックすれば、調整を全く行わずに、その時のウィンドウの配置通りのプロファイルを作成することができる。
また、ウィンドウの縦の幅または横の幅の一方を極力変更したくない場合、d4またはd5のチェックボックスをチェックする。この場合、原則、他方の幅の調整のみが施される。例えば、ウィンドウ同士が垂直方向(d4のチェックボックスがチェックされている場合)または水平方向(d5のチェックボックスがチェックされている場合)に重なっている場合には、ウィンドウの幅を縮めることによって重なりを無くすのではなく、ウィンドウを可能な範囲で垂直方向または水平方向に移動することによって重なりを無くす調整が施される。
このように、プロファイル作成・設定支援モジュール401は、ウィンドウの配置の調整規則を任意にカスタマイズするためのユーザインタフェースを有している。図11に示すオプション画面でチェックボックスがチェックされ、OKボタンが操作されると、プロファイル作成・設定支援モジュール401は、調整を再実行し、その結果を図10に示す確認画面でユーザに提示する(オブジェクトc1の表示位置は変更される)。この確認画面のOKボタンが操作されると、プロファイル作成・設定支援モジュール401は、再調整後の内容でプロファイルを作成する。
図14は、プロファイル作成・設定支援モジュール401のプロファイル作成時の動作手順を示すフローチャートである。
プロファイル作成・設定支援モジュール401は、まず、デスクトップ画面上に配置されているウィンドウに関する情報をOS201のウィンドウ管理モジュール302から取得する(ブロックA1)。次に、この情報に基づき、プロファイル作成・設定支援モジュール401は、各ウィンドウを配置する領域を調整し(ブロックA2)、調整後の領域の配置を示すオブジェクトc1をガイド表示する(ブロックA3)。
オプションボタンが操作されたら(ブロックA4のYES)、プロファイル作成・設定支援モジュール401は、オプションの設定を実行し(ブロックA5)、このオプションの設定に基づき、各ウィンドウを配置する領域を再調整する(ブロックA6)。プロファイル作成・設定支援モジュール401は、この再調整後の領域の配置を示すオブジェクトc1をガイド表示する(ブロックA7)。
OKボタンが操作されたら(ブロックA8のYES)、プロファイル作成・設定支援モジュール401は、調整後または再調整後の各ウィンドウの配置を定義するプロファイルを作成する(ブロックA9)。また、キャンセルボタンが操作されたら(ブロックA8のNO)、プロファイル作成・設定支援モジュール401は、プロファイルを作成することなく処理を終了する。
以上のように、本コンピュータ10は、デスクトップ画面上におけるウィンドウの配置の設定を効率的に行うことを可能とする。
なお、本実施形態の動作手順は全てソフトウェアによって実現することができるので、このソフトウェアをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入することにより、本実施形態と同様の効果を容易に実現することができる。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。