図1に、5つのディスプレイ装置を用いる表示システムにおける表示面の配置例を示す。表示面101a乃至表示面101eは、各ディスプレイ装置により提供される。表示面101aの右側に、表示面101bと表示面101cとが配置されている。表示面101aの左側に、表示面101dと表示面101eとが配置されている。表示面101aには、ウィンドウ103が表示されている。この例では、同一の平面上に表示面101a乃至表示面101eが並んでいる。
図2に、表示面の別の配置例を示す。この例でも、表示面101aの右側に、表示面101bと表示面101cとが配置されている。同じく表示面101aの左側に、表示面101dと表示面101eとが配置されている。但し、表示面101bと表示面101cとが右側の壁面に配置されている。また、表示面101dと表示面101eとが左側の壁面に配置されている。このように、表示面101b乃至表示面101eが、表示面101aと異なる平面に配置されている場合も想定する。
本実施の形態では、表示面101a乃至表示面101eにおけるウィンドウ103の移動を制御する。図3に、ウィンドウ103の移動例を示す。1段目は、表示面101aに表示されているウィンドウ103をドラッグ操作によって、右側にスライドさせる様子を示している。ウィンドウ103の一部が表示面101aの右側に出ると、右側の一部は、表示面101bに表示される。ウィンドウ103の重心が表示面101bに移った段階で、ユーザがドロップ操作を行えば、ウィンドウ103の全体が表示面101bに移動する。尚、「ウィンドウ103の一部が表示面101aの右側に出る」とは、論理的にウィンドウ103の一部が、表示面101aの右側の外部領域に重なることを意味する。つまり、ウィンドウ103の右側部分が、表示面101a内に納まらない状態を指している。
ユーザがウィンドウ103を表示面101cに移動させたい場合には、2段目以降の操作を行う。2段目は、ウィンドウ103の一部が一旦表示面101aの右側に出た状態で、表示面101aにおけるウィンドウ103をドラッグ操作によって、左側にスライドさせる様子を示している。
3段目は、表示面101aに表示されているウィンドウ103をドラッグ操作によって、改めて右側にスライドさせる様子を示している。4段目に示すように、再びウィンドウ103の一部が表示面101aの右側に出ると、右側の一部は表示面101cに表示される。そして、ウィンドウ103の重心が表示面101cに移った段階で、ユーザがドロップ操作を行えば、ウィンドウ103は表示面101cに移動する。
本実施の形態では、このようにドラッグ操作を左右に繰り返すことによって、右側の一部を映し出す表示面101を切り替える。従って、表示面101aにおける操作によって、ユーザの手が届かない位置にある表示面101cに対して、ウィンドウ103を移動させることができる。
図4に、表示システムの構成例を示す。表示制御装置401は、LAN(Local Area Network)を介してタッチスクリーン403a乃至タッチスクリーン403eに接続している。タッチスクリーン403は、ディスプレイ装置405とタッチパネル407とを有している。ディスプレイ装置405は、表示面101を提供する。タッチパネル407は、表示面101におけるタッチ操作を検知する。
この例では、ディスプレイ装置405によって表示面101を提供することを前提としているが、プロジェクタ装置によって表示面101を提供するようにしてもよい。また、タッチパネル407に代えて、平面スキャンセンサあるいはカメラを用いて、タッチ操作を検知するようにしてもよい。
以下の例では、ディスプレイ装置405aが表示面101aを提供する。同様に、ディスプレイ装置405bが表示面101bを提供する。同様に、ディスプレイ装置405cが表示面101cを提供する。同様に、ディスプレイ装置405dが表示面101dを提供する。同様に、ディスプレイ装置405eが表示面101eを提供する。
図5に、表示制御装置401のモジュール構成例を示す。表示制御装置401は、初期化部501、退避処理部503、受付部505、判定部507、算出部509、描画部511、表示処理部513、特定部515、切り替え部517、復旧部519、削除部521及びアプリケーションプログラム523を有する。
初期化部501は、第1テーブル及び第2テーブルを初期化する。第1テーブルは、表示面101aに対する右側の表示面101を提供するディスプレイ装置405についての選択順を定めるテーブルである。第2テーブルは、表示面101aに対する左側の表示面101を提供するディスプレイ装置405についての選択順を定めるテーブルである。第1テーブル及び第2テーブルについては、後に詳述する。
退避処理部503は、ウィンドウテーブルを退避する。ウィンドウテーブルは、ディスプレイ装置405毎に表示面101に表示するウィンドウ103を管理するテーブルである。ウィンドウテーブルについては、後に詳述する。
受付部505は、イベントを取得する。判定部507は、各種の判定を行なう。算出部509は、例えば移動ベクトルあるいはウィンドウ103の位置を算出する。描画部511は、ウィンドウテーブルに従って、アプリケーションプログラム523によって提供される画面を、ウィンドウ形式で画像領域に描画する。表示処理部513は、画面をディスプレイ装置405に表示させる。特定部515は、元の画像領域から食み出したウィンドウ103の一部を表示させるディスプレイ装置405を特定する。切り替え部517は、食み出したウィンドウ103の一部を表示させるディスプレイ装置405を切り替える。
復旧部519は、ウィンドウテーブル記憶部531におけるウィンドウテーブルを復旧する。削除部521は、ウィンドウ103の移動によって不要になったレコードをウィンドウテーブルから削除する。アプリケーションプログラム523は、ウィンドウ103に表示される画面を提供する。アプリケーションプログラム523は、例えばブラウザである。
表示制御装置401は、更に、ウィンドウテーブル記憶部531a乃至531e、フレームバッファ533a乃至533e、退避データ記憶部535、第1テーブル記憶部537及び第2テーブル記憶部539を有する。
ウィンドウテーブル記憶部531は、ディスプレイ装置405に対応するウィンドウテーブルを記憶する。ウィンドウテーブル記憶部531aは、ディスプレイ装置405aに対応するウィンドウテーブルを記憶する。ウィンドウテーブル記憶部531bは、ディスプレイ装置405bに対応するウィンドウテーブルを記憶する。ウィンドウテーブル記憶部531cは、ディスプレイ装置405cに対応するウィンドウテーブルを記憶する。ウィンドウテーブル記憶部531dは、ディスプレイ装置405dに対応するウィンドウテーブルを記憶する。ウィンドウテーブル記憶部531eは、ディスプレイ装置405eに対応するウィンドウテーブルを記憶する。
フレームバッファ533は、表示面101に表示される画像が展開される画像領域における画素データを記憶する。フレームバッファ533aは、ディスプレイ装置405aに対応する。フレームバッファ533bは、ディスプレイ装置405bに対応する。フレームバッファ533cは、ディスプレイ装置405cに対応する。フレームバッファ533dは、ディスプレイ装置405dに対応する。フレームバッファ533eは、ディスプレイ装置405eに対応する。
退避データ記憶部535は、退避されたデータを記憶する。第1テーブル記憶部537は、第1テーブルを記憶する。第2テーブル記憶部539は、第2テーブルを記憶する。
上述した初期化部501、退避処理部503、受付部505、判定部507、算出部509、描画部511、表示処理部513、特定部515、切り替え部517、復旧部519及び削除部521は、ハードウエア資源(例えば、図20)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したウィンドウテーブル記憶部531a乃至531e、フレームバッファ533a乃至533e、退避データ記憶部535、第1テーブル記憶部537及び第2テーブル記憶部539は、ハードウエア資源(例えば、図20)を用いて実現される。
次に、ウィンドウテーブル記憶部531に記憶するウィンドウテーブルについて説明する。図6に、ウィンドウテーブル記憶部531aに記憶するウィンドウテーブルの例を示す。尚、他のウィンドウテーブルにおいても同様の構成である。
この例におけるウィンドウテーブルは、ディスプレイ装置405aが提供する表示面101aに表示されるウィンドウ103に対応するレコードを有している。ウィンドウテーブルのレコードは、ウィンドウIDを設定するためのフィールドと、アプリケーションIDを設定するためのフィールドと、ウィンドウ位置を設定するためのフィールドと、ウィンドウサイズを設定するためのフィールドとを有している。この例で、ウィンドウID「WIN−1」は、ウィンドウ103を指す。アプリケーションIDは、ウィンドウ103に表示される画面を提供するアプリケーションプログラム523を指す。ウィンドウ位置(X1,Y1)は、図7に示すようにウィンドウ103の基準点(左上端点)の位置を示している。このウィンドウ位置(X1,Y1)は、後述する画像領域における座標系に基づく。ウィンドウサイズ(W,H)は、ウィンドウ103の幅がWであり、ウィンドウ103の高さがHであることを示している。
続いて、画像領域について説明する。図7に、画像領域701a、画像領域701b、画像領域701d及びウィンドウ103の例を示す。画像領域701aには、表示面101aに表示する画像が展開される。画像領域701bには、表示面101bに表示する画像が展開される。画像領域701dには、表示面101dに表示する画像が展開される。この例で、画像領域701a乃至701eのいずれも高さがhであり、幅がwである。また、画像領域701a乃至701eの各座標系における原点は、いずれも左上端点である。更に、同じく各座標系におけるX軸の正方向が、右方向に設定され、同じく各座標系におけるY軸の正方向が、下方向に設定されている。また、ウィンドウ103の高さはHであり、同じく幅はWである。
この例では、論理的に画像領域701aの右側に画像領域701bが接していると想定する。このように想定して、画像領域701aの座標系におけるウィンドウ位置(X1,Y1)を、画像領域701bの座標系におけるウィンドウ位置に変換する。異なる座標系に対するウィンドウ位置の変換は、例えばアフィン変換などの従来技術によって行う。この例では、画像領域701bの座標系におけるウィンドウ位置は、(X1−w,Y1)である。
同様に、論理的に画像領域701aの左側に画像領域701dが接していると想定する。このように想定して、画像領域701aの座標系におけるウィンドウ位置(X1,Y1)を、画像領域701dの座標系におけるウィンドウ位置に変換する。この例では、画像領域701dの座標系におけるウィンドウ位置は、(X1+w,Y1)である。
尚、ウィンドウ103の移り先が表示面101bから表示面101cに切り替わった場合には、論理的に、画像領域701aの右側に画像領域701cが接していると想定する。同様に、ウィンドウ103の移り先が表示面101dから表示面101eに切り替わった場合には、論理的に、画像領域701aの左側に画像領域701eが接していると想定する。
続いて、第1テーブル及び第2テーブルについて説明する。図8に、第1テーブルの例を示す。第1テーブルは、表示面101aにおいてウィンドウ103が右方向にドラッグ操作された場合に、ウィンドウ103の右側部分を映し出す表示面101を提供するディスプレイ装置405に対応するレコードを有している。
第1テーブルのレコードは、ディスプレイIDを設定するためのフィールドと、フラグのフィールドとを有している。フラグがONであれば、当該ディスプレイ装置405が提供する表示面101にウィンドウ103の一部が映し出されることを意味する。フラグがOFFであれば、当該ディスプレイ装置405が提供する表示面101にウィンドウ103の一部が映し出されないことを意味する。
この例で、第1レコードは、表示面101bを提供するディスプレイ装置405b(ディスプレイID:DSP−B)に対応する。同じく第2レコードは、表示面101cを提供するディスプレイ装置405c(ディスプレイID:DSP−C)に対応する。優先的に選択される表示面101を提供するディスプレイ装置405が先に設定されている。この例は、表示面101bを提供するディスプレイ装置405bが先に選択され、表示面101cを提供するディスプレイ装置405cが次に選択されることを示している。
図9に、第2テーブルの例を示す。第2テーブルは、表示面101aにおいてウィンドウ103が左方向にドラッグ操作された場合に、ウィンドウ103の左側部分を映し出す表示面101を提供するディスプレイ装置405に対応するレコードを有している。第2テーブルのレコードの構成は、第1テーブルの場合と同様である。
この例で、第1レコードは、表示面101dを提供するディスプレイ装置405d(ディスプレイID:DSP−D)に対応する。同じく第2レコードは、表示面101eを提供するディスプレイ装置405e(ディスプレイID:DSP−E)に対応する。この例は、表示面101dを提供するディスプレイ装置405dが先に選択され、表示面101eを提供するディスプレイ装置405eが次に選択されることを示している。
表示制御装置401における処理の説明に移る。図10に、メイン処理フローの例を示す。メイン処理は、表示面101aにおけるウィンドウ103内がタッチされたことによるイベントが発生した時点で起動される。初期化部501は、第1テーブル及び第2テーブルを初期化する(S1001)。具体的には、初期化部501は、先頭のレコードにおけるフラグをONに設定し、他のレコードにおけるフラグをOFFに設定する。
退避処理部503は、ウィンドウテーブル記憶部531a乃至531eに記憶している各ウィンドウテーブルを、退避データ記憶部535に退避する(S1003)。受付部505は、ウィンドウ103内における最初のタッチ操作によるイベントに基づいて、最初のタッチ位置とウィンドウ103のIDとを特定する(S1005)。
受付部505は、イベントを取得する(S1007)。判定部507は、取得したイベントに基づいて、タッチ位置がスライドしたか否かを判定する(S1009)。タッチ位置がスライドしていないと判定した場合には、判定部507は、取得したイベントに基づいて、指が離れたか否か、つまりタッチ状態が解消したか否かを判定する(S1011)。指が離れたと判定した場合には、メイン処理を終える。指が離れていないと判定した場合には、長押しに相当するので、S1007に戻って、上述した処理を繰り返す。
S1009において、タッチ位置がスライドしたと判定した場合には、算出部509は、移動ベクトルを算出する(S1013)。具体的には、算出部509は、直近のイベントにより特定されるタッチ位置の座標から、S1005で特定した最初のタッチ位置の座標を引くことによって、移動ベクトルを求める。そして、端子Aを介して、図11に示すS1101の処理に移る。
図11の説明に移る。図11に示した処理は、例えば図3の1段目あるいは3段目に示したように、ウィンドウ103が表示面101aの中に納まっている状態における処理である。
算出部509は、画像領域701aにおけるウィンドウ103(以下、第1ウィンドウという。)の位置を算出する(S1101)。具体的には、算出部509は、図10のS1003において退避したウィンドウテーブルにおけるウィンドウ103のレコードに設定されている最初のウィンドウ位置に、直近の移動ベクトルを加えることによって、第1ウィンドウの位置を求める。そして、算出部509は、第1ウィンドウの位置を、ウィンドウテーブル記憶部531aに記憶しているウィンドウテーブルにおけるレコードのウィンドウ位置に設定する。
描画部511は、ウィンドウテーブル記憶部531aに記憶しているウィンドウテーブルに基づいて、画像領域701aにおける画面(以下、第1画面という。)を描画する(S1103)。第1画面のデータは、フレームバッファ533aに記憶される。
表示処理部513は、フレームバッファ533aに記憶しているデータに基づいて、第1画面をディスプレイ装置405aに表示させる(S1105)。
受付部505は、イベントを取得する(S1107)。判定部507は、取得したイベントに基づいて、タッチ位置がスライドしたか否かを判定する(S1109)。タッチ位置がスライドしていないと判定した場合には、判定部507は、取得したイベントに基づいて、指が離れたか否か、つまりタッチ状態が解消したか否かを判定する(S1111)。指が離れたと判定した場合には、メイン処理を終える。
指が離れていないと判定した場合には、長押しに相当するので、初期化部501は、長押し期間が所定時間を超えたか否かを判定する(S1113)。所定時間を超えると、表示面101の選択状態が初期化される。例えば、図3の3段目に示した状態でウィンドウ103をスライドさせないまま所定時間が経過すると、次に右方向にドラッグ操作を行い、ウィンドウ103の一部が表示面101aの右側に出た場合、ウィンドウ103の一部は表示面101bに表示されるようになる。
そのため、長押し期間が所定時間を超えたと判定した場合には、初期化部501は、図10に示したS1001の場合と同様に、第1テーブル及び第2テーブルを初期化する(S1115)。そして、S1107に戻って、上述した処理を繰り返す。
一方、長押し期間が所定時間を超えていないと判定した場合には、そのままS1107に戻って、上述した処理を繰り返す。
S1109における判定の説明に戻る。S1109において、タッチ位置がスライドしたと判定した場合には、算出部509は、図10に示したS1013の場合と同様に、移動ベクトルを算出する(S1117)。判定部507は、第1ウィンドウを移動させた場合に、画像領域701aの右側に第1ウィンドウの一部が出るか否かを判定する(S1119)。具体的には、判定部507は、最初のウィンドウ位置における第1ウィンドウの右辺のX座標(X1+W)に移動ベクトルのX成分を加えた値が、画像領域701aの幅wよりも大きい場合に、画像領域701aの右側に第1ウィンドウの一部が出ると判定する。また、判定部507は、上記値が、画像領域701aの幅w以下である場合には、画像領域701aの右側に第1ウィンドウの一部が出ないと判定する。
画像領域701aの右側に第1ウィンドウの一部が出ると判定した場合には、端子Bを介して、図12に示したS1201の処理に移る。図12に示したS1201の処理以降では、右側対応の処理を実行する。
画像領域701aの右側に第1ウィンドウの一部が出ないと判定した場合には、判定部507は、第1ウィンドウを移動させた場合に、画像領域701aの左側に第1ウィンドウの一部が出るか否かを判定する(S1121)。具体的には、判定部507は、最初のウィンドウ位置における第1ウィンドウの左辺のX座標(X1)に移動ベクトルのX成分を加えた値が0よりも小さい場合に、画像領域701aの左側に第1ウィンドウの一部が出ると判定する。また、判定部507は、上記値が0以上である場合には、画像領域701aの左側に第1ウィンドウの一部が出ないと判定する。
画像領域701aの左側に第1ウィンドウの一部が出ると判定した場合には、左側対応の処理を実行する(S1123)。
一方、画像領域701aの左側に第1ウィンドウの一部が出ないと判定した場合には、S1101に戻って、上述した処理を繰り返す。
以下、右側対応の処理について詳述し、その後、左側対応の処理について簡単に説明する。
図12の説明に移る。図12及び図13に示した処理は、例えば図3の2段目あるいは4段目に示したように、ウィンドウ103の一部が右側の表示面101b又は表示面101cにかかっている状態における処理である。
初期化部501は、第2テーブルを初期化する(S1201)。このようにすれば、先にウィンドウ103を左側にドラッグさせた結果、左側への次のドラッグ操作によってウィンドウ103が表示面101eに映し出されるように設定されている状態であったとしても、その状態は取り消される。つまり、左側への次のドラッグ操作によって、ウィンドウ103が表示面101dに映し出されるようになる。
算出部509は、図11に示したS1101の場合と同様に、第1ウィンドウの位置を算出する(S1203)。描画部511は、図11に示したS1103の場合と同様に、第1画面を描画する(S1205)。表示処理部513は、図11に示したS1105の場合と同様に、第1画面をディスプレイ装置405aに表示させる(S1207)。尚、ウィンドウ103のうち、画像領域701aに納まらない部分については、S1205において描画しないようにしてもよい。また、S1207において、表示処理部513は、当該部分を表示させない。
特定部515は、第1テーブルにおいてONになっているフラグに対応するディスプレイIDを特定する(S1209)。以下の処理では、ディスプレイIDによって特定されるディスプレイ装置405に、画像領域701aの右側から食み出したウィンドウ103の一部を表示させる。
算出部509は、上記ディスプレイIDによって特定されるディスプレイ装置405に対応する画像領域701におけるウィンドウ103(以下、第2ウィンドウという。)の位置及びサイズを算出する(S1211)。この例では、第2ウィンドウのサイズは、第1ウィンドウのサイズと同じである。但し、例えば上記画像領域701が小さい場合には、第2ウィンドウのサイズを、第1ウィンドウのサイズより小さくするようにしてもよい。
図14は、ウィンドウ103の一部が画像領域701aの右側に食み出している状態を示している。このときの画像領域701aの座標系におけるウィンドウ位置(X2,Y2)は、画像領域701bの座標系におけるウィンドウ位置(X2−w,Y2)に変換される。つまり、第2ウィンドウの位置のX座標は、第1ウィンドウの位置のX座標から画像領域701aの幅wを引くことによって求められる。第2ウィンドウの位置のY座標は、第1ウィンドウの位置のY座標と同じである。但し、例えば、上記ディスプレイIDによって特定されるディスプレイ装置405に対応する画像領域701が小さい場合には、第2ウィンドウの位置のY座標を、第1ウィンドウの位置のY座標より小さくするようにしてもよい。S1211における算出は、例えばアフィン変換によって行うようにしてもよい。
ここでは、ウィンドウのうち画像領域701aに納まらない範囲の全体を、画像領域701bに描く例を示しているが、当該範囲内の一部を画像領域701bに描くようにしてもよい。
描画部511は、S1209において特定されたディスプレイIDによって特定されるディスプレイ装置405に対応するウィンドウテーブル記憶部531に記憶しているウィンドウテーブルに基づいて、当該ディスプレイ装置405に対応する画像領域701における画面(以下、第2画面という。)を描画する(S1213)。第2画面のデータは、当該ディスプレイ装置405に対応するフレームバッファ533に記憶される。
表示処理部513は、当該ディスプレイ装置405に対応するフレームバッファ533に記憶しているデータに基づいて、第2画面を当該ディスプレイ装置405に表示させる(S1215)。そして、端子Cを介して、図13に示したS1301の処理に移る。
図13の説明に移る。受付部505は、イベントを取得する(S1301)。判定部507は、取得したイベントに基づいて、タッチ位置がスライドしたか否かを判定する(S1303)。タッチ位置がスライドしたと判定した場合には、算出部509は、図10に示したS1013の場合と同様に、移動ベクトルを算出する(S1305)。判定部507は、図11に示したS1119の場合と同様に、画像領域701aの右側に第1ウィンドウの一部が出るか否かを判定する(S1307)。画像領域701aの右側に第1ウィンドウの一部が出ると判定した場合には、端子Dを介して図12に示したS1203の処理に戻って、上述した処理を繰り返す。
一方、画像領域701aの右側に第1ウィンドウの一部が出ないと判定した場合には、切り替え部517は、ウィンドウ103の右側部分を表示させるディスプレイ装置405を切り替える(S1309)。具体的には、第1テーブルにおけるフラグを更新する。現状ONになっているフラグをOFFにし、ONになっていた上記フラグを有するレコードの次のレコードにおけるフラグをONにする。このとき、最下位のレコードの次のレコードは、最上位のレコードであるものと看做す。そして、端子Aを介して、図11に示したS1101の処理に戻って、上述した処理を繰り返す。このようにすれば、右側への次のドラッグ操作によってウィンドウ103の右側部分が映し出される表示面101が切り替わる。
S1303における判定の説明に戻る。S1303においてタッチ位置がスライドしていないと判定した場合には、判定部507は、S1301において取得したイベントに基づいて、指が離れたか否か、つまりタッチ状態が解消したか否かを判定する(S1311)。指が離れていないと判定した場合には、長押しに相当するので、S1301の処理に戻って、上述した処理を繰り返す。一方、指が離れたと判定した場合には、ドロップ操作に相当する。この場合には、端子Eを介して、図15に示したS1501の処理に移る。
図15の説明に移る。判定部507は、ウィンドウ103の重心が元の表示面101a内にあるか否かを判定する(S1501)。
ここで、ドロップ操作が行われた場合の動作及びS1501における判定の詳細について説明する。図16に示すように、ウィンドウ103の重心1601が画像領域701aの中にある状態で、ユーザがドロップ操作を行えば、下段に示すようにウィンドウ103は、図7に示した元の位置に戻る。
このときの画像領域701aの座標系におけるウィンドウ103の重心1601の位置は、(X3+W/2,Y3+H/2)である。従って、S1501において、判定部507は、重心1601のX座標(X3+W/2)がw以下であれば、ウィンドウ103の重心1601が元の表示面101a内にあると判定する。
一方、図17に示すように、画像領域701aの右側に論理的に接している隣の画像領域701(この例では、画像領域701b)の中に、ウィンドウ103の重心1601がある状態で、ユーザがドロップ操作を行えば、下段に示すようにウィンドウ103は、隣の画像領域701の中に移る。S1501において、判定部507は、重心1601のX座標(X3+W/2)がwより大きければ、ウィンドウ103の重心1601が元の表示面101a内にないと判定する。
図15の説明に戻る。図15に示したS1501において、ウィンドウ103の重心1601が元の表示面101内にあると判定した場合には、復旧部519は、第1ウィンドウの位置を元に戻す(S1503)。復旧部519は、例えば退避データ記憶部535に退避した各ウィンドウテーブルのうち、ウィンドウテーブル記憶部531aから退避したウィンドウテーブルをウィンドウテーブル記憶部531aに復帰させる。更に、図12のS1209において特定したディスプレイIDによって特定されるディスプレイ装置405に対応するウィンドウテーブル記憶部531から退避したウィンドウテーブルを当該ウィンドウテーブル記憶部531に復帰させる。
描画部511は、図11に示したS1103の場合と同様に、第1画面を描画する(S1505)。表示処理部513は、図11に示したS1105の場合と同様に、第1画面を表示させる(S1507)。描画部511は、図12に示したS1213の場合と同様に、第2画面を描画する(S1509)。表示処理部513は、図12に示したS1215の場合と同様に、第2画面を表示させる(S1511)。
一方、S1501において、ウィンドウ103の重心1601が元の表示面101内にないと判定した場合には、算出部509は、第2ウィンドウの位置を算出する(S1513)。このとき、算出部509は、第2ウィンドウの全体が、S1209において特定されたディスプレイ装置405に対応する画像領域701に入るように第2ウィンドウを配置する。例えば、算出部509は、第2ウィンドウの重心1601が画像領域701の重心に重なるように、第2ウィンドウの位置を定めるようにしてもよい。
削除部521は、ウィンドウテーブル記憶部531aに記憶しているウィンドウテーブルにおける第1ウィンドウのレコードを削除する(S1515)。
上述の通りS1505乃至S1511の処理を行う。そして、メイン処理を終える。
図11に示したS1121の処理の説明に戻る。上述した通り、S1121において、画像領域701aの左側に第1ウィンドウの一部が出ると判定した場合には、左側対応の処理を実行する。左側対応の処理は、図12、図13及び図15に示した右側対応の処理と方向が異なる点に関する処理及びデータの違いを除き、理論的に同様である。例えば、第1テーブルと第2テーブルとの関係が入れ替わる。
従って、S1201において、初期化部501は、第2テーブルに代えて第1テーブルを初期化する。このようにすれば、先にウィンドウ103を右側にドラッグさせた結果、右側への次のドラッグ操作によってウィンドウ103が表示面101cに映し出されるように設定されている状態であったとしても、その状態は取り消される。つまり、右側への次のドラッグ操作によって、ウィンドウ103が表示面101bに映し出されるようになる。また、左側対応の処理における座標の算出については、趣旨に沿って、右側対応の処理における算出方法を適宜変更するようにすればよい。左側対応の処理におけるデータについても、趣旨に沿って、右側対応の処理におけるデータを適宜変更するようにすればよい。
図18に、表示面の別の配置例を示す。この例では、表示面101a以外の表示面1801b乃至表示面1801eが、表示面101aと異なるサイズを有している。また、表示面101aの右側には、表示面1801bと表示面1801cとが縦に並んでいる。表示面101aの左側には、表示面1801dと表示面1801eとが縦に並んでいる。
この例で、ディスプレイ装置405bが表示面1801bを提供し、ディスプレイ装置405cが表示面1801cを提供し、ディスプレイ装置405dが表示面1801dを提供し、ディスプレイ装置405eが表示面1801eを提供しているものとして、表示制御装置401は、上述の処理を行うようにしてもよい。
ウィンドウ103の一部が表示面101aの右側に出る状態になると、図19に示すように、ウィンドウ103の一部に相当するウィンドウ1901は表示面1801bに表示される。図12のS1211の処理で説明した通り、ウィンドウ1901は、ウィンドウ103よりも小さくしてもよい。また、ウィンドウ1901の位置におけるY座標を、ウィンドウ103の位置におけるY座標よりも小さくするようにしてもよい。このようにすれば、ウィンドウ1901の下方部分も表示面1801bに納まるようになる。
図18及び図19の例において、図3に示したユーザ操作と同様の操作が行われると、2回目にウィンドウ103の一部が右側に出る状態において、ウィンドウ1901は表示面1801cに表示される。
上述した例では、ウィンドウ103の一部が元の表示面を食み出る場合に、ドラッグ方向にある表示面にウィンドウの一部を表示させる例について説明したが、他の表示形態によって移動先の候補となる表示面を知らせるようにしてもよい。ウィンドウの移動先の候補となる表示面の全体あるいは縁近辺などの一部領域の輝度を変化させるようにしてもよい。また、ウィンドウに表示させるコンテンツの種類によって、ウィンドウの移動先の候補となる表示面における表示態様を変えるようにしてもよい。
上述した例では、ユーザがドロップ操作によってウィンドウ移動の確定を指示する例を示したが、他の操作(例えば、フリック操作、メニュー選択あるいはボタン選択など)によってウィンドウの移動を指示するようにしてもよい。
また、例えばスマートフォンやタブレット端末などのディスプレイ装置に表示面101を提供させるようにしてもよい。ディスプレイ装置に代えて、他の出力装置(例えば、プリンタやファクシミリ装置)にウィンドウのデータを出力させるようにしてもよい。他の出力装置を示すアイコンを表示面101aに表示し、アイコンの表示態様を変化させることによって、当該出力装置が選択されていることを知らせるようにしてもよい。
また、ユーザの操作を受け付けない状態が所定時間以上続いた場合に、第1テーブル及び第2テーブルを初期化するようにしてもよい。
更に、移動先となった表示面の履歴に基づいて、第1テーブル及び第2テーブルにおけるレコードの順番を入れ替える学習処理を実行するようにしてもよい。例えば、下位の表示装置が所定回数連続して移動先として選択された場合に、当該表示装置を上位に繰り上げるようにしてもよい。
上述の例では、S1307において画像領域701aの右側に第1ウィンドウの一部が出ないと判定した場合に、切り替え部517が、ウィンドウ103の右側部分を表示させるディスプレイ装置405を切り替える例について説明した。但し、別のタイミングで、ディスプレイ装置405を切り替えるようにしてもよい。例えば、図11に示したS1121の後にディスプレイ装置405を切り替えるようにしてもよい。あるいは、図12に示したS1201の後にディスプレイ装置405を切り替えるようにしてもよい。つまり、S1307でNoと判定されてから、次にS1209においてディスプレイIDを特定するまでの間に、ディスプレイ装置405を切り替えるようにすればよい。
また、本実施の形態に、ウィンドウ以外の表示オブジェクト(例えば、アイコン、メニューあるいはボタンなど)を適用するようにしてもよい。
尚、上述した表示システムにおいて、携帯端末装置と表示制御装置401との間で、各種の連携動作が行われることが想定される。例えば、携帯端末装置から表示制御装置401への連携要求によって、携帯端末装置と表示制御装置401とが各種の連携動作を行うようにしてもよい。表示制御装置401が、部屋へ入場した人の携帯端末装置を検出し、自動的に携帯端末装置へ特定のプログラムを配信するようにしてもよい。携帯端末装置は、受信した特定のプログラムを自動的に起動するようにしてもよい。携帯端末装置と表示制御装置401とは、データやプロセスを同期させるようにしてもよい。携帯端末装置における操作によって、表示制御装置401における処理を制御し、あるいは、表示制御装置401における操作によって、携帯端末装置における処理を制御するようにしてもよい。
本実施の形態によれば、ウィンドウの移動先となる表示面101を把握しやすい。
また、移動対象を把握しやすい。
また、意図した表示面101にウィンドウを移動させることができる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成に限定されるわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
なお、上で述べた表示制御装置401は、コンピュータ装置であって、図20に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーションプログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーションプログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーションプログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーションプログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る表示方法は、(A)第1表示面内に表示されているオブジェクトを、当該第1表示面に納まらない位置までスライドさせる第1指示を受け付け、(B)第1指示に応じて、第2表示面を提供する第1表示装置を特定し、(C)特定された表示装置に、当該表示装置が提供する表示面がオブジェクトの移動先の候補であることを示す画像を表示させ、(D)再び第1指示を受け付けた場合に特定すべき表示装置を、第3表示面を提供する第2表示装置に切り替える処理を含む。
このようにすれば、オブジェクトの移動先となる表示面を把握しやすい。
更に、上記画像は、オブジェクトのうち第1表示面に納まらない範囲の全体あるいは当該範囲内の一部を含むようにしてもよい。
このようにすれば、移動対象を把握しやすい。
更に、オブジェクトの移動を確定させる第2指示を受け付けるようにしてもよい。また、第2指示を受け付けた場合に、上記特定された表示装置に、オブジェクトを表示させるようにしてもよい。
このようにすれば、意図した表示面にオブジェクトを移動させることができる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1表示面内に表示されているオブジェクトを、当該第1表示面に納まらない位置までスライドさせる第1指示を受け付け、
前記第1指示に応じて、第2表示面を提供する第1表示装置を特定し、
特定された表示装置に、当該表示装置が提供する表示面が前記オブジェクトの移動先の候補であることを示す画像を表示させ、
再び前記第1指示を受け付けた場合に特定すべき表示装置を、第3表示面を提供する第2表示装置に切り替える
処理を含み、コンピュータにより実行される表示方法。
(付記2)
前記画像は、前記オブジェクトのうち前記第1表示面に納まらない範囲の全体あるいは当該範囲内の一部を含む
付記1記載の表示方法。
(付記3)
更に、
前記オブジェクトの移動を確定させる第2指示を受け付け、
前記第2指示を受け付けた場合に、前記特定された表示装置に、前記オブジェクトを表示させる
処理を含む付記1又は2記載の表示方法。
(付記4)
第1表示面内に表示されているオブジェクトを、当該第1表示面に納まらない位置までスライドさせる第1指示を受け付け、
前記第1指示に応じて、第2表示面を提供する第1表示装置を特定し、
特定された表示装置に、当該表示装置が提供する表示面が前記オブジェクトの移動先の候補であることを示す画像を表示させ、
再び前記第1指示を受け付けた場合に特定すべき表示装置を、第3表示面を提供する第2表示装置に切り替える
処理をコンピュータに実行させるプログラム。
(付記5)
第1表示面内に表示されているオブジェクトを、当該第1表示面に納まらない位置までスライドさせる第1指示を受け付ける受付部と、
前記第1指示に応じて、第2表示面を提供する第1表示装置を特定する特定部と、
特定された表示装置に、当該表示装置が提供する表示面が前記オブジェクトの移動先の候補であることを示す画像を表示させる表示処理部と、
再び前記第1指示を受け付けた場合に特定すべき表示装置を、第3表示面を提供する第2表示装置に切り替える切り替え部と
を有する表示制御装置。