以下、本発明の実施の形態を図面を参照して説明する。図1は表示制御装置の構成例を示す図である。表示制御装置1は、表示データ格納部1aと表示制御部1bを備え、複数の表示領域に頁単位の表示データを表示する装置である。
表示データ格納部1aは、文書中の指定された複数の頁データに基づいて生成された表示データを格納する複数の格納領域を有する。例えば表示データ格納部1aは、格納領域には表示データを特定するインデクスが割り当てられている。インデクスは、例えば値の連続する整数(数列)である。表示制御部1bは、表示データの生成元となる頁データの指定の更新と、複数の表示領域それぞれに表示する表示データが格納された格納領域の指定の更新とを組み合わせて、複数の表示領域に対して、操作に応じた表示を行う。例えば表示制御部1bは、複数の表示領域とインデクスとを対応付けて、複数の表示領域への表示データの表示制御を行う。
ここで、図1において、表示データ格納部1aは、4つの格納領域を有して、表示データP2、P3、P4、P5を格納しているとする。また、表示データP2、P3、P4、P5はそれぞれ、インデクス#1、#2、#3、#4で特定されているとする。
表示制御部1bは、表示領域W1〜W4に対して表示データを表示する場合、表示領域W1〜W4とインデクス#1〜#4とを対応付けて表示制御を行う。例えば、表示領域W1、W2、W3、W4それぞれに対して、インデクス#1、#2、#3、#4を対応づけたとする。
この場合は、画面表示A1のように、表示領域W1には、インデクス#1で特定される表示データP2が表示され、表示領域W2には、インデクス#2で特定される表示データP3が表示される。また、表示領域W3には、インデクス#3で特定される表示データP4が表示され、表示領域W4には、インデクス#4で特定される表示データP5が表示される。
一方、表示制御部1bは、表示領域W1、W2、W3、W4それぞれに対して、インデクス#1、#2、#2、#4を対応づけたとする。
この場合は、画面表示A2のように、表示領域W1には、インデクス#1で特定される表示データP2が表示され、表示領域W2には、インデクス#2で特定される表示データP3が表示される。また、表示領域W3には、インデクス#2で特定される表示データP3が表示され、表示領域W4には、インデクス#4で特定される表示データP5が表示される。
このように、表示制御装置1は、表示データを特定するインデクスが割り当てられている格納領域に表示データを格納し、複数の表示領域とインデクスとを対応付けて、複数の表示領域への表示データの表示制御を行う。これにより、複数の表示領域と、表示領域それぞれに表示すべき画像との対応関係が崩れることがなく、当該対応関係を良好に保つことができるので、ユーザに違和感を与えない画面表示を行うことが可能になる。
次に複数の表示領域と、表示すべき画像との対応関係が崩れてしまう例を挙げて、本実施の形態に係る技術を用いない場合の問題点について、図2〜図6を用いて説明する。なお、以降では、表示領域を“ウィンドウ”、頁を“ページ”と表記する。
図2は複数ウィンドウによる表示例を示す図である。1画面に対して4つのウィンドウW1〜W4が開かれており、ウィンドウW1〜W4を用いて画像を表示する例を示している。
第nページのデータであるデータPnを画面に表示した際の画像を画像Pnとすると、図2の場合、ウィンドウW1には、第2ページの画像P2が表示されている。また、ウィンドウW2には、第3ページの画像P3が表示され、ウィンドウW3には、第4ページの画像P4が表示され、さらに、ウィンドウW4には、第5ページの画像P5が表示されている。
図3は表示データ加工処理を行った場合の表示例を示す図である。表示データ加工処理とは、表示すべきデータに何らかの関数処理を施して加工する処理のことである。加工後のデータが、画面に表示される表示データとなる。以下、表示データの生成元として指定されたページのデータを、表示原データと呼ぶ。
ここで、表示原データとして、表示原データP2、P3、P4、P5があり、表示原データP2、P3、P4、P5のデータ番号をそれぞれ#1、#2、#3、#4とする。また、データ番号#2の表示原データに対して、表示データ加工処理を行うものとする。
したがって、この場合、データ番号#2の表示原データP3に対して、表示データ加工処理が行われることになる。表示原データP3は、表示データ加工処理によって、表示データf(P3)となったとする(f(P)は、表示原データPへの関数fの加工処理後のデータを表す)。
一方、表示データ加工後の表示データが画面上に表示される場合、表示データ加工前の表示データに隣接して表示される。したがって、ウィンドウW1〜W4に対しては例えば、ウィンドウW1には、第2ページの画像P2が表示され、ウィンドウW2には、第3ページの画像P3が表示される。
また、ウィンドウW3には、第4ページの画像P4は表示されずに、表示データ加工処理後の第3ページの画像f(P3)が、画像P2に隣接して表示されることになる。ウィンドウW4には、第5ページの画像P5が表示される。
このように、表示原データに表示データ加工処理を行った場合、加工前のデータと加工後のデータとは、隣接するウィンドウで互いに表示される。これにより、ユーザは両者を容易に比較することができる。
例えば、表示データ加工処理を写真加工処理とすれば、写真加工処理前のデータと、写真加工処理後のデータとが隣接してウィンドウ表示されるので、ユーザは、写真加工処理の前後における2枚の画像を容易に比較することができる。
図4はページめくり処理が行われたときの表示例を示す図である。図3に示す画像表示状態に対して、ページめくり処理が行われたとする。なお、ページめくり処理として、nページ目の画像が表示されている状態から、(n−a)ページ目の画像表示を行うページめくりが行われた場合を、ページめくり処理(−a)と表記する。ここでは、ページめくり処理としては、nページ目の画像が表示されている状態から、(n−1)ページ目の画像表示を行うページめくり処理(−1)が行われたとする。
この場合、表示原データP2、P3、P4、P5はそれぞれ、1ページ減算したページとなり、表示原データP1、P2、P3、P4となる。また、データ番号#2の表示原データに対して、表示データ加工処理が行われるので、ここでは、データ番号#2の表示原データP2に対して、表示データ加工処理が行われることになる。
表示原データP2は、表示データ加工処理によって、表示データf(P2)となる。したがって、ウィンドウW1〜W4に対しては、ウィンドウW1には、第1ページの画像P1が表示され、ウィンドウW2には、第2ページの画像P2が表示される。
また、ウィンドウW3には、表示データ加工処理後の第2ページの画像f(P2)が表示され、ウィンドウW4には、第4ページの画像P4が表示される。
このように、図3の画像表示状態に対して、ページめくり処理(−1)を行うことにより、図3に示すウィンドウW1〜W4の表示画像から1ページ減算した図4に示す画像表示状態へと遷移することになる。
図5はクリップ操作を示す図である。クリップとは、表示されているページ画像を固定表示する操作である。あるウィンドウに対してクリップが指定されると、複数ウィンドウの表示ページを更新するページめくり処理が行われた場合であっても、クリップが指定された該当ウィンドウの画像は、ページめくりされず固定表示となる。ここで、図3に示した画像表示状態で、ウィンドウW3、W4に対して、クリップが指定されたとする。
図6はクリップが指定されてページめくり処理が行われた場合の表示例を示す図である。ウィンドウW3、W4に対してはクリップが指定され、他のウィンドウW1、W2に対してページめくり処理(−1)が行われたとする。
ページめくり処理(−1)が行われることにより、表示原データP2、P3はそれぞれ、1ページ減算したページとなり、表示原データP1、P2となる。また、表示原データP4、P5はそれぞれクリップされているので、ページ数の減算は行われずに、表示原データP4、P5のままとなる。
そして、データ番号#2の表示原データに対して、表示データ加工処理が行われるので、ここでは、データ番号#2の表示原データP2に対して、表示データ加工処理が行われることになる。表示原データP2は、表示データ加工処理によって、表示データf(P2)となる。
したがって、ウィンドウW1〜W4に対しては、ウィンドウW1には、第1ページの画像P1が表示され、ウィンドウW2には、第2ページの画像P2が表示される。また、ウィンドウW3には、表示データ加工処理後の第2ページの画像f(P2)が表示され、ウィンドウW4には、第5ページの画像P5が表示される。
ここで、ウィンドウW3の画像は、ページクリップしたので、その後にページめくり処理を行ったとしても、ウィンドウW3の画像表示は、本来は、画像f(P3)に固定されるはずである。しかし、上記のように、クリップによってページめくり処理から除外されていたはずのウィンドウW3の画像表示が替わってしまうという現象が生じてしまう。
このように、ウィンドウがクリップ指定されても、従来制御では、表示原データをクリップして、クリップされたデータを含む表示原データに対して加工処理を行い、該加工処理後のデータを表示するために、結果的に、“加工後の表示データが画面上に表示される場合は加工前の表示データに隣接して表示される”という制御がクリップ指定よりも優先されてしまい、クリップしたはずの画像が切り替わってしまうという問題が生じる。
このように、本実施の形態に係る技術を用いないと、ウィンドウがクリップされ、クリップされていないウィンドウへの一括したページめくり操作が行われた場合、実際のウィンドウ列と、処理結果後の画像との対応関係が崩れてしまう。そのため、ユーザの画面操作と、画面表示とに矛盾が生じる場合がある。このような現象が生じると、ユーザに違和感を与えてしまい、利便性の低下を招くことになる。
さらに、本実施の形態に係る技術を用いない場合、以下の項目を矛盾無く実現することができず、画面表示において、ユーザに違和感を与える場合がある。
(1)複数のウィンドウに表示された連続的なページを、一度のページめくり操作で同時に更新する。
(2)複数のウィンドウの一部のウィンドウに対して、クリップ操作を行うことで、ページめくり操作による更新対象から除外し、該ウィンドウ上の表示ページは固定したままで、その他のウィンドウをページめくりで更新する。
(3)クリップ操作を解除することで、複数の連続していないページを連動させてページめくりする。
(4)あるウィンドウに表示しているページに任意の処理を適用させた結果を、別のウィンドウに表示する。
(5)あるページを表示しているウィンドウと、該ページに対する処理結果を表示しているウィンドウとを、ページめくり操作に追従して更新して、ページと処理結果の組を次々と連動させて表示する。
本技術はこのような点に鑑みてなされたものであり、複数のウィンドウと、ウィンドウそれぞれに表示すべき画像との対応関係を良好に保ち、ユーザに違和感を与えない画面表示を行う表示制御装置、表示制御方法およびプログラムを提供するものである。
次に表示制御装置の構成例と第1の実施の形態における動作とについて以降詳しく説明する。図7は表示制御装置の構成例を示す図である。表示制御装置10は、対応管理部11、イベント処理部12、ページめくり処理部13、表示データ加工処理部14、関係管理部15、表示部16、表示原データ格納領域17a、表示データ格納領域17b、操作受付部18、文書データ格納部T0、対応管理テーブルT1および関係定義テーブルT2を備える。
なお、表示データ格納領域17bは、図1の表示データ格納部1aの機能を実行する。また、表示制御装置10のその他の構成要素は、図1の表示制御部1bの機能を実行する。
対応管理部11は、対応管理テーブルT1の登録内容を管理する。また、対応管理部11は、対応管理テーブルT1の登録内容にもとづいて、ウィンドウに表示データを表示させるための表示制御を行う。
イベント処理部12は、ユーザの操作に応じて生起するイベントに対して実行すべき処理の割り当てを行う。ページめくり処理部13は、文書データ格納部T0から、あらかじめ定義された開始点からn個のページデータを抽出する。
この場合、ページめくり処理部13は、開始点を増加させてn個のページデータを抽出する次ページめくり処理、または開始点を減少させてn個のページデータを抽出する前ページめくり処理を行う。さらに、ページめくり処理部13は、後述の開始伸縮処理を行う。
表示データ加工処理部14は、表示原データに関数処理などを適用して加工処理を行う。関係管理部15は、関係定義テーブルT2の登録内容を管理し、後述の関係適用処理および関係復元処理を行う。表示部16は、対応管理部11での表示制御の結果にもとづき、実際のウィンドウ列に表示データを表示する。
なお、対応管理部11、イベント処理部12、ページめくり処理部13、表示データ加工処理部14および関係管理部15の個別動作の詳細については後述する。
次に表示原データ格納領域17a、表示データ格納領域17b、対応管理テーブルT1および関係定義テーブルT2の構成について説明する。図8は表示原データ格納領域の構成例を示す図である。表示原データ格納領域17aは、文書データ格納部T0に格納される文書データのうち、n個のページの表示原データを格納する領域を持つ。表示原データ格納領域17aに格納された表示原データが、表示データの生成元として指定されたページのデータである。
なお、ウィンドウ個数をmとした場合、m≦nである。また、表示原データを格納する領域はそれぞれ、入力原データ番号が割り当てられており、各データは、入力原データ番号で特定される。
図8では、表示原データ格納領域17aは、4つの格納領域を有して、表示原データP1〜4が格納されている。また、入力原データ番号1〜4それぞれに、表示原データP1〜P4が対応している。
図9は表示データ格納領域の構成例を示す図である。表示データ格納領域17bは、n個の表示データを格納する領域を持つ。また、表示データを格納する領域はそれぞれ、表示データインデクス(図1のインデクスに該当)が割り当てられており、各データは、表示データインデクスで特定される。
図9では、表示データ格納領域17bは、4つの格納領域を有して、表示データP1〜4が格納されている。また、表示データインデクス1〜4それぞれに、表示データP1〜P4が対応している。
なお、上記の入力原データ番号と表示データインデクスは、同じ範囲の整数値(・・・−2、−1、0、1、2、・・・)を取り得る。
図10は対応管理テーブルの構成例を示す図である。対応管理テーブルT1は、ウィンドウの識別番号であるウィンドウ番号(Wi)と、表示データインデクス(Pi)との項目を有する。表示データインデクス(Pi)の項目に示される値により、複数のウィンドウそれぞれに表示する表示データが指定される。例えば、行L1には、ウィンドウ番号=1、表示データインデクス=1との組み合わせが示されている。
これは、ウィンドウ番号1のウィンドウW1には、表示データ格納領域17bの表示データインデクスがP1の領域に格納されている表示データが表示されるということを意味している。
図11は関係定義テーブルの構成例を示す図である。関係定義テーブルT2は、表示データインデクス、処理関数名および入力原データ番号の項目を有する。処理関数名とは、表示原データに関数加工処理を施す際の関数名のことである。
ここで、行L2には、表示データインデクス=2、処理関数名=f、入力原データ番号=1という組み合わせが示されている。これは、表示原データ格納領域17aの入力原データ番号が1の領域に格納されている表示原データが、関数fで加工処理されるということが示されている。さらに、関数fで処理されたデータは、表示データ格納領域17bの表示データインデクスが2の領域に格納されるということが示されている。
なお、図中のNA(Not Applicable)は、該当情報が未定義であることを示す。また、関係定義テーブルT2の行数は、後述の伸縮処理によって動的に変化する。
次に対応管理部11の動作について説明する。図12は対応管理テーブルの登録内容にもとづくウィンドウ表示の動作を示すフローチャートである。
〔S71〕対応管理部11は、ウィンドウ番号Wiで対応管理テーブルT1を参照する。
〔S72〕対応管理部11は、ウィンドウ番号Wiに対応する表示データインデクスPiを取得する。
〔S73〕表示データインデクスPiで指定される表示データ格納領域17bの表示データに対して、ウィンドウ番号Wiで表示するための表示制御を行う。なお、ステップS71〜73の動作は、ウィンドウ番号Wi毎に行われる。
次に対応管理部11で行われる、前押し込み処理、後ろ押し込み処理、前引き出し処理および後ろ引き出し処理という4つの処理について説明する。前提として、m個のウィンドウW1、…、Wk、…、Wmに(1<k<m)、表示データインデクスP1、…、Pk、…、Pmが対応するものとする。
図13は前押し込み処理を説明するための図である。前押し込み処理は、対応管理テーブルT1上のW1、…、Wk-1に対応する表示データインデクスをQ、P1、…、Pk-2に置換する処理である。ただし、Q=P1−1である。
最初に4個のウィンドウW1〜W4(m=4)に、表示データインデクスP1〜P4が対応しているものとし、この状態でk=3とした場合について考える(以下、表示データインデクスP1〜P4で特定される表示データ格納領域17b上の表示データをP1〜P4とする)。
この場合、前押し込み処理では、対応管理テーブルT1上のW1、W2に対応する表示データインデクスをQ、P1に置換することになる。表示データインデクスQ、P1で特定される表示データ格納領域17b上の表示データをQ、P1とすれば、図13に示すように、前押し込み処理後では、ウィンドウW1、W2に対して、表示データQ、P1がそれぞれ表示されることになる。
図14は後ろ押し込み処理を説明するための図である。後ろ押し込み処理は、対応管理テーブルT1上のWk+1、…、Wmに対応する表示データインデクスをPk+2、…、Pm、Rに置換する処理である。ただし、R=Pm+1である。
最初に4個のウィンドウW1〜W4(m=4)に、表示データインデクスP1〜P4が対応しているものとし、この状態でk=2とした場合について考える。この場合、後ろ押し込み処理では、対応管理テーブルT1上のW3、W4に対応する表示データインデクスをP4、Rに置換することになる。
表示データインデクスP4、Rで特定される表示データ格納領域17b上の表示データをP4、Rとすれば、図14に示すように、後ろ押し込み処理後では、ウィンドウW3、W4には、表示データP4、R(=P4+1)がそれぞれ表示されることになる。
図15は前引き出し処理を説明するための図である。前引き出し処理は、対応管理テーブルT1上のW1、…、Wk-1に対応する表示データインデクスをP2、…、Pk-1、Sに置換する処理である。ただし、S=Pk-1+1(<Pk)である。
最初に4個のウィンドウW1〜W4(m=4)に、表示データインデクスP1〜P4が対応しているものとし、この状態でk=3とした場合について考える。この場合、前引き出し処理では、対応管理テーブルT1上のW1、W2に対応する表示データインデクスをP2、Sに置換することになる。
表示データインデクスP2、Sで特定される表示データ格納領域17b上の表示データをP2、Sとすれば、図15に示すように、前引き出し処理後では、ウィンドウW1、W2には、表示データP2、S(=P2+1)がそれぞれ表示されることになる。
図16は後ろ引き出し処理を説明するための図である。後ろ引き出し処理は、対応管理テーブルT1上のWk+1、…、Wmに対応する表示データインデクスをT、…、Pk+1、…、Pm-1に置換する処理である。ただし、T=Pk+1−1(>Pk)である。
最初に4個のウィンドウW1〜W4(m=4)に、表示データインデクスP1〜P4が対応しているものとし、この状態でk=2とした場合について考える。この場合、後ろ引き出し処理では、対応管理テーブルT1上のW3、W4に対応する表示データインデクスをT、P3に置換することになる。
表示データインデクスT、P3で特定される表示データ格納領域17b上の表示データをT、P3とすれば、図16に示すように、後ろ引き出し処理後では、ウィンドウW3、W4には、表示データT(=P3−1)、P3がそれぞれ表示されることになる。
次にイベント処理部12の動作について説明する。図17はイベント処理部の動作を示すフローチャートである。なお、イベント処理部12では、複数ウィンドウに対して、少なくとも1つのウィンドウがユーザによってクリップされているときの割り当て処理と、1つもクリップされていないときの割り当て処理とに大別される。以下の図17のフローでは、主に、ウィンドウがクリップされていないときの割り当て処理を示している。
〔S1〕イベント処理部12は、ユーザがウィンドウ上で操作を行うと、イベントの生起したウィンドウ番号(イベントウィンドウ番号)と、イベントを特定するためのイベントID(Identifier)とを認識する。
〔S2〕イベント処理部12は、ユーザが現在クリップしているウィンドウ(選択ウィンドウ)が存在するか否かを判断する。現在クリップしている選択ウィンドウが存在する場合はステップS3へ行き、存在しない場合はステップS4へ行く。なお、ウィンドウがクリップされた場合、イベント処理部12は、現在クリップされているウィンドウを表すウィンドウ番号を保持する。
〔S3〕イベント処理部12は、ウィンドウがクリップされているときの処理である選択モード処理を割り当てる(選択モード処理の動作は図21で後述)。
〔S4〕イベント処理部12は、イベントIDにもとづき、生起したイベントが次ページめくり操作か否かを判断する。次ページめくり操作の場合はステップS4aへ行き、次ページめくり操作でない場合はステップS5へ行く。
〔S4a〕イベント処理部12は、次ページめくり処理を割り当てる(次ページめくり処理の動作は図19で後述)。
〔S5〕イベント処理部12は、イベントIDにもとづき、生起したイベントが前ページめくり操作か否かを判断する。前ページめくり操作の場合はステップS5aへ行き、前ページめくり操作でない場合はステップS6へ行く。
〔S5a〕イベント処理部12は、前ページめくり処理を割り当てる(前ページめくり処理の動作は図20で後述)。
〔S6〕イベント処理部12は、イベントIDにもとづき、生起したイベントがウィンドウ選択操作(クリップ操作)か否かを判断する。ウィンドウ選択操作の場合はステップS6aへ行き、ウィンドウ選択操作でない場合はステップS7へ行く。
〔S6a〕イベント処理部12は、イベントが生起したウィンドウの番号を選択ウィンドウ番号として設定する。
〔S7〕イベント処理部12は、イベントIDにもとづき、生起したイベントが関係適用操作か否かを判断する。関係適用操作の場合はステップS7aへ行き、関係適用操作でない場合はステップS8へ行く。
〔S7a〕イベント処理部12は、関係適用処理を割り当てる(関係適用処理の動作は図33で後述)。
〔S8〕イベント処理部12は、イベントIDにもとづき、生起したイベントが関係復元操作か否かを判断する。関係復元操作の場合はステップS8aへ行き、関係復元操作でない場合は終了する。
〔S8a〕イベント処理部12は、関係復元処理を割り当てる(関係復元処理の動作は図34で後述)。
次にページめくり処理部13で行われる、データ初期化処理、次ページめくり処理および前ページめくり処理について説明する。
図18はデータ初期化処理の動作を示すフローチャートである。ページめくり処理部13は、文書データ格納部T0から文書のページデータを読み込み、あらかじめ定義された開始点からn個分のページデータを抽出して、表示原データとして表示原データ格納領域17aに格納するデータ初期化処理を行う。
〔S81〕ページめくり処理部13は、文書データ格納部T0から、配列または線形リスト形式の文書データのページデータを読み込む。
〔S82〕ページめくり処理部13は、開始点を例えば、1に設定する。
〔S83〕ページめくり処理部13は、設定した開始点から表示原データ個数分のページデータを文書データから抽出し、表示原データとして表示原データ格納領域17aに格納する。
〔S84〕表示原データ格納領域17aに格納された表示原データの中で、表示データ加工処理対象の表示原データについては、表示データ加工処理部14によって、表示データ加工処理が施される。
図19は次ページめくり処理の動作を示すフローチャートである。ページめくり処理部13は、ユーザの次ページめくり操作に応じて、開始点を増加させた後、開始点からn個数分のデータをページデータから抽出し、表示原データとして表示原データ格納領域17aに格納する次ページめくり処理を行う。
〔S4a−1〕ページめくり処理部13は、開始点を1ページ分増加させる。
〔S4a−2〕ページめくり処理部13は、開始点から表示原データ個数分のデータを文書データから抽出し、表示原データとして表示原データ格納領域17aに格納する。
〔S4a−3〕表示原データ格納領域17aに格納された表示原データの中で、表示データ加工処理対象の表示原データについては、表示データ加工処理部14によって、表示データ加工処理が施される。
図20は前ページめくり処理の動作を示すフローチャートである。ページめくり処理部13は、ユーザの前ページめくり操作に応じて、開始点を減少させたのち、開始点からn個数分のデータをページデータから抽出し、表示原データとして表示原データ格納領域17aに格納する前ページめくり処理を行う。
〔S5a−1〕ページめくり処理部13は、開始点を1ページ分減少させる。
〔S5a−2〕ページめくり処理部13は、開始点から表示原データ個数分のデータを文書データから抽出し、表示原データとして表示原データ格納領域17aに格納する。
〔S5a−3〕表示原データ格納領域17aに格納された表示原データの中で、表示データ加工処理対象の表示原データについては、表示データ加工処理部14によって、表示データ加工処理が施される。
次に図17のステップS3の選択モード処理について説明する。図21は選択モード処理の動作を示すフローチャートである。以下のフローは、主に、複数ウィンドウに対して、少なくとも1つのウィンドウがユーザによってクリップされているときの、イベント処理部12による割り当て処理を示している。
〔S3−1〕イベント処理部12は、生起したイベントがウィンドウ選択解除か否かを判断する。すなわち、クリップ操作が解除されたか否かを判断する。ウィンドウ選択解除の場合はステップS3−2へ行き、ウィンドウ選択解除でない場合はステップS3−3へ行く。
〔S3−2〕イベント処理部12は、クリップされたウィンドウの番号を選択ウィンドウ番号として管理しており、ここでは、クリップ操作が解除されたことを認識するので、選択ウィンドウ番号を0にクリアする。
〔S3−3〕イベント処理部12は、生起したイベントが次ページめくり操作か否かを判断する。次ページめくり操作の場合はステップS3−4へ行き、次ページめくり操作でない場合はステップS3−6へ行く。
〔S3−4〕イベント処理部12は、選択ウィンドウ番号がイベントウィンドウ番号よりも大きいか否かを判断する。選択ウィンドウ番号がイベントウィンドウ番号よりも大きい場合はステップS30へ行く。また、選択ウィンドウ番号とイベントウィンドウ番号が等しい、または選択ウィンドウ番号がイベントウィンドウ番号よりも小さい場合はステップS3−5へ行く。
〔S3−5〕イベント処理部12は、選択ウィンドウ番号がイベントウィンドウ番号よりも小さいか否かを判断する。選択ウィンドウ番号がイベントウィンドウ番号よりも小さい場合はステップS20へ行き、選択ウィンドウ番号とイベントウィンドウ番号が等しい場合は終了する。
〔S3−6〕イベント処理部12は、生起したイベントが前ページめくり操作か否かを判断する。前ページめくり操作の場合はステップS3−7へ行き、前ページめくり操作でない場合は終了する。
〔S3−7〕イベント処理部12は、選択ウィンドウ番号がイベントウィンドウ番号よりも大きいか否かを判断する。選択ウィンドウ番号がイベントウィンドウ番号よりも大きい場合はステップS10へ行く。また、選択ウィンドウ番号とイベントウィンドウ番号が等しい、または選択ウィンドウ番号がイベントウィンドウ番号よりも小さい場合はステップS3−8へ行く。
〔S3−8〕イベント処理部12は、選択ウィンドウ番号がイベントウィンドウ番号よりも小さいか否かを判断する。選択ウィンドウ番号がイベントウィンドウ番号よりも小さい場合はステップS40へ行き、選択ウィンドウ番号とイベントウィンドウ番号が等しい場合は終了する。
〔S10〕イベント処理部12は、前押し込み処理を割り当てる。
〔S20〕イベント処理部12は、後ろ押し込み処理を割り当てる。
〔S30〕イベント処理部12は、前引き出し処理を割り当てる。
〔S40〕イベント処理部12は、後ろ引き出し処理を割り当てる。
〔S50〕イベント処理部12は、伸縮処理を割り当てる。なお、伸縮処理とは、表示原データ格納領域17a、表示データ格納領域17bおよび関係定義テーブルT2に対して、格納領域またはテーブルの行の追加・削除を行う処理のことである。伸縮処理の動作は図31で後述する。
〔S60〕イベント処理部12は、開始点伸縮処理を割り当てる。なお、開始点伸縮処理とは、文書データ(表示データ)を複数ウィンドウに表示する際の開始点(開始ページ)の増減処理のことである。開始点伸縮処理の動作は図32で後述する。
ここで、上記の選択モード処理についてまとめると、イベント処理部12は、イベントが次ページめくり操作であり、かつ選択ウィンドウ番号がイベントウィンドウ番号より大きい場合には、前引き出し処理、伸縮処理および開始点伸縮処理の割り当てを行う。
また、イベント処理部12は、イベントが次ページめくり操作であり、かつ選択ウィンドウ番号がイベントウィンドウ番号より小さい場合には、後ろ押込み処理、伸縮処理および開始点伸縮処理の割り当てを行う。
さらに、イベント処理部12は、イベントが前ページめくり操作であり、かつ選択ウィンドウ番号がイベントウィンドウ番号より大きい場合には、前押込み処理、伸縮処理および開始点伸縮処理の割り当てを行う。
また、イベント処理部12は、イベントが前ページめくり操作であり、かつ選択ウィンドウ番号がイベントウィンドウ番号より小さい場合には、後ろ引き出し処理、伸縮処理および開始点伸縮処理の割り当てを行う。なお、イベント処理部12は、選択ウィンドウ番号とイベントウィンドウ番号が等しい場合には、選択モード処理を終了する。
次にクリップされている選択ウィンドウが存在する場合の前押し込み処理(図21のステップS10)、後ろ押し込み処理(図21のステップS20)、前引き出し処理(図21のステップS30)および後ろ引き出し処理(図21のステップS40)について説明する。
図22は選択ウィンドウが存在する場合の前押し込み処理の動作を示すフローチャートである。m個のウィンドウW1、…、Wk、…、Wmに(1<k<m)、表示データインデクスP1、…、Pk、…、Pmが対応するものとする。
〔S11〕対応管理部11は、選択ウィンドウがWkのとき、W2、…、Wk-1に対応する表示データインデクスをP1、…、Pk-2で置換する。
〔S12〕対応管理部11は、ウィンドウW1の表示データインデクスをP1−1で置換する。
図23は選択ウィンドウが存在する場合の前押し込み処理の例を示す図である。最初、4個のウィンドウW1〜W4に、表示データインデクスP1〜P4が対応しているものとし、クリップ選択されているウィンドウが選択ウィンドウW4(k=4)とする。なお、表示データインデクスP1〜P4で特定される表示データ格納領域17b上の表示データをP1〜P4とする。
この場合、ウィンドウW2、W3に対応する表示データインデクスは、P1、P2で置換される。また、ウィンドウW1の表示データインデクスは、P1−1で置換される。
表示データインデクスP1−1、P1、P2で特定される表示データ格納領域17b上の表示データをP1−1、P1、P2とすれば、図23に示すように、ウィンドウW1〜W3に対して、表示データP1−1、P1、P2がそれぞれ表示される。ウィンドウW4は、クリップされているので、前押し込み処理の前後で表示は替わらない。
図23の場合、前押し込み処理が行われると、ウィンドウW2の表示データP2は、ウィンドウW3へ移動して表示され、ウィンドウW1の表示データP1は、ウィンドウW2へ移動して表示されている。また、ウィンドウW1には、表示データP1−1が表示されている。
このように、選択ウィンドウW4へ近づく方向に、ウィンドウW1〜W3のページめくり操作が行われたとする。すると、対応管理部11は、この方向に向かってウィンドウW1〜W3に表示される画像のページが移動していくような表示となる前押し込み処理を行って、ウィンドウと表示画像との対応関係を更新する。これにより、ユーザの画面操作に応じたより自然な画面を表示させることができ、ユーザに違和感を与えない画面表示を行うことが可能になる。
図24は選択ウィンドウが存在する場合の後ろ押し込み処理の動作を示すフローチャートである。m個のウィンドウW1、…、Wk、…、Wmに(1<k<m)、表示データインデクスP1、…、Pk、…、Pmが対応するものとする。
〔S21〕対応管理部11は、選択ウィンドウがWkのとき、Wk+1、…、Wm-1に対応する表示データインデクスをPk+2、・・・、Pmで置換する。
〔S22〕対応管理部11は、ウィンドウWmの表示データインデクスをPm+1で置換する。
図25は選択ウィンドウが存在する場合の後ろ押し込み処理の例を示す図である。最初、4個のウィンドウW1〜W4に、表示データインデクスP1〜P4が対応しているものとし、クリップ選択されているウィンドウが選択ウィンドウW1(k=1)とする。なお、表示データインデクスP1〜P4で特定される表示データ格納領域17b上の表示データをP1〜P4とする。
この場合、ウィンドウW2、W3に対応する表示データインデクスは、P3、P4で置換される。また、ウィンドウW4の表示データインデクスは、P4+1で置換される。
表示データインデクスP3、P4、P4+1で特定される表示データ格納領域17b上の表示データをP3、P4、P4+1とすれば、図25に示すように、ウィンドウW2〜W4に対して、表示データP3、P4、P4+1がそれぞれ表示される。ウィンドウW1は、クリップされているので後ろ押し込み処理の前後で表示は替わらない。
図25の場合、ウィンドウW3の表示データP3は、ウィンドウW2へ移動して表示され、ウィンドウW4の表示データP4は、ウィンドウW3へ移動して表示されている。また、ウィンドウW4には、表示データP4+1が表示されている。
このように、対応管理部11は、選択ウィンドウW1へ近づく方向に、ウィンドウW2〜W4のページめくり操作が行われたとする。すると、対応管理部11は、この方向に向かってウィンドウW2〜W4に表示される画像のページが移動していくような表示となる後ろ押し込み処理を行って、ウィンドウと表示画像との対応関係を更新する。これにより、ユーザの画面操作に応じたより自然な画面を表示させることができ、ユーザに違和感を与えない画面表示を行うことが可能になる。
図26は選択ウィンドウが存在する場合の前引き出し処理の動作を示すフローチャートである。m個のウィンドウW1、…、Wk、…、Wmに(1<k<m)、表示データインデクスP1、…、Pk、…、Pmが対応するものとする。
〔S31〕対応管理部11は、Pk-1+1がPkよりも小さい場合は、ステップS32へ行き、Pk-1+1がPkよりも大きい、またはPk-1+1とPkが等しい場合は終了する。
〔S32〕対応管理部11は、選択ウィンドウがWkのとき、W1、・・・、Wk-2に対応する表示データインデクスをP2、・・・、Pk-1で置換する。
〔S33〕対応管理部11は、ウィンドウWk-1の表示データインデクスをPk-1+1で置換する。
図27は選択ウィンドウが存在する場合の前引き出し処理の例を示す図である。最初、4個のウィンドウW1〜W4に、表示データインデクスP1〜P4が対応しているものとし、クリップ選択されているウィンドウが選択ウィンドウW4(k=4)とする。なお、表示データインデクスP1〜P4で特定される表示データ格納領域17b上の表示データをP1〜P4とする。
この場合、ウィンドウW1、W2に対応する表示データインデクスは、P2、P3で置換される。また、ウィンドウW3の表示データインデクスは、P3+1で置換される。
表示データインデクスP2、P3、P3+1で特定される表示データ格納領域17b上の表示データをP2、P3、P3+1とすれば、図27に示すように、ウィンドウW1〜W3に対して、表示データP2、P3、P3+1がそれぞれ表示される。ウィンドウW4は、クリップされているので前引き出し処理の前後で表示は替わらない。
図27の場合、ウィンドウW2の表示データP2は、ウィンドウW1へ移動して表示され、ウィンドウW3の表示データP3は、ウィンドウW2へ移動して表示されている。また、ウィンドウW3には、表示データP3+1が表示されている。
このように、対応管理部11は、選択ウィンドウW4から離れる方向に、ウィンドウW1〜W3のページめくり操作が行われたとする。すると、対応管理部11は、この方向に向かってウィンドウW1〜W3に表示される画像のページが移動していくような表示となる後ろ押し込み処理を行って、ウィンドウと表示画像との対応関係を更新する。これにより、ユーザの画面操作に応じたより自然な画面を表示させることができ、ユーザに違和感を与えない画面表示を行うことが可能になる。
図28は選択ウィンドウが存在する場合の後ろ引き出し処理の動作を示すフローチャートである。m個のウィンドウW1、…、Wk、…、Wmに(1<k<m)、表示データインデクスP1、…、Pk、…、Pmが対応するものとする。
〔S41〕対応管理部11は、Pk+1−1がPkよりも大きい場合は、ステップS42へ行き、Pk+1−1がPkよりも小さい、またはPk+1−1とPkが等しい場合は終了する。
〔S42〕対応管理部11は、選択ウィンドウがWkのとき、Wk+2、…、Wmに対応する表示データインデクスをPk+1、・・・、Pm-1で置換する。
〔S43〕対応管理部11は、ウィンドウWk+1の表示データインデクスをPk+1−1で置換する。
図29は選択ウィンドウが存在する場合の後ろ引き出し処理の例を示す図である。最初、4個のウィンドウW1〜W4に、表示データインデクスP1〜P4が対応しているものとし、クリップ選択されているウィンドウが選択ウィンドウW1(k=1)とする。なお、表示データインデクスP1〜P4で特定される表示データ格納領域17b上の表示データをP1〜P4とする。
この場合、ウィンドウW3、W4に対応する表示データインデクスは、P2、P3で置換される。また、ウィンドウW2の表示データインデクスは、P2−1で置換される。
表示データインデクスP2−1、P2、P3で特定される表示データ格納領域17b上の表示データをP2−1、P2、P3とすれば、図29に示すように、ウィンドウW2〜W4に対して、表示データP2−1、P2、P3がそれぞれ表示される。ウィンドウW1は、クリップされているので後ろ引き出し処理の前後で表示は替わらない。
図29の場合、ウィンドウW3の表示データP3は、ウィンドウW4へ移動して表示され、ウィンドウW2の表示データP2は、ウィンドウW3へ移動して表示されている。また、ウィンドウW2には、表示データP2−1が表示されている。
このように、対応管理部11は、選択ウィンドウW1から離れる方向に、ウィンドウW2〜W4のページめくり操作が行われたとする。すると、対応管理部11は、この方向に向かってウィンドウW2〜W4に表示される画像のページが移動していくような表示となる後ろ引き出し処理を行って、ウィンドウと表示画像との対応関係を更新する。これにより、ユーザの画面操作に応じたより自然な画面を表示させることができ、ユーザに違和感を与えない画面表示を行うことが可能になる。
次に表示データ加工処理部14における表示データ加工処理の動作について説明する。図30は表示データ加工処理の動作を示すフローチャートである。
〔S101〕表示データ加工処理部14は、表示原データ格納領域17aから表示原データを取得する。
〔S102〕表示データ加工処理部14は、表示データインデクスPiで関係定義テーブルT2を参照する。
〔S103〕表示データ加工処理部14は、処理関数名Yが定義されているか否かを判断する。処理関数名Yが定義されていない場合はステップS104へ行き、処理関数名Yが定義されている場合はステップS105へ行く。
〔S104〕表示データ加工処理部14は、表示原データXiを表示データインデクスPiで指示される表示データ格納領域17bに格納する。
〔S105〕表示データ加工処理部14は、入力原データ番号kが定義されているか否かを判断する。入力原データ番号kが定義されていない場合はステップS106へ行き、入力原データ番号kが定義されている場合はステップS107へ行く。
〔S106〕表示データ加工処理部14は、ウィンドウWiで表示中の表示データに対し、処理関数Yを適用した処理結果を表示データインデクスPiで指示される表示データ格納領域17bに格納する。
〔S107〕表示データ加工処理部14は、kに対応する表示原データに対し、処理関数名Yに対応する処理関数を適用する。
〔S108〕表示データ加工処理部14は、処理結果を表示データインデクスPiで指示される表示データ格納領域17bに格納する。なお、ステップS101〜S108の動作は、表示データインデクス毎に行われる。
このように、表示データ加工処理部14は、関係定義テーブルT2の各表示データインデクスに、処理関数名が定義されているか否かを検出する。そして、表示データ加工処理部14は、処理関数名が定義されていれば、表示原データ格納領域17aに格納され、入力原データ番号に対応するデータに対して、処理関数を適用して加工処理を行う。また、表示データ加工処理部14は、加工処理結果を該表示データインデクスに対応するデータとして、表示データ格納領域17bに格納する。
なお、処理関数名が定義されていなければ、表示データ加工処理部14は、入力原データ番号に対応する表示原データ格納領域17aに格納されているデータを、そのまま該表示データインデクスに対応するデータとして、表示データ格納領域17bに格納する。
次に表示データ加工処理部14で行われる伸縮処理について説明する。図31は伸縮処理の動作を示すフローチャートである。
〔S51a〕表示データ加工処理部14は、前押し込み処理または後ろ押し込み処理があったか否かを判断する。前押し込み処理または後ろ押し込み処理があった場合はステップS52へ行き、前押し込み処理または後ろ押し込み処理がない場合はステップS51bへ行く。
〔S52〕表示データ加工処理部14は、追加された表示データインデクスをXとする。
〔S53〕表示データ加工処理部14は、表示データ格納領域17bにXに対応する領域を追加する。
〔S54〕表示データ加工処理部14は、関係定義テーブルT2にXに対応する行を追加する。
〔S55〕表示データ加工処理部14は、表示原データ格納領域17aにXに対応する領域を追加する。
〔S51b〕表示データ加工処理部14は、前引き出し処理または後ろ引き出し処理があったか否かを判断する。前引き出し処理または後ろ引き出し処理があった場合はステップS56へ行き、前引き出し処理または後ろ引き出しがない場合は終了する。
〔S56〕表示データ加工処理部14は、削除された表示データインデクスをYとする。
〔S57〕表示データ加工処理部14は、表示データ格納領域17bのYに対応する領域を削除する。
〔S58〕表示データ加工処理部14は、関係定義テーブルT2のYに対応する行を削除し、また、テーブル中のYに該当する入力原データ番号をクリアしてNAとする。
〔S59〕表示データ加工処理部14は、表示原データ格納領域17aのYに対応する領域を削除する。
このように、表示データ加工処理部14は、前押し込み処理によって対応管理テーブルT1に追加された表示インデクスQ(=P1−1)に対応する、表示データ格納領域17bの格納領域の追加、関係定義テーブルT2の行の追加、表示原データ格納領域17aの格納領域の追加を行う。
また、表示データ加工処理部14は、後ろ押し込み処理によって対応管理テーブルT1に追加された表示インデクスR(=Pm+1)に対応する、表示データ格納領域17bの格納領域の追加、関係定義テーブルT2の行の追加、表示原データ格納領域17aの格納領域の追加を行う。
さらに、表示データ加工処理部14は、前引き出し処理によって対応管理テーブルT1から削除された表示データインデクスP1に対応する、表示データ格納領域17bの格納領域の削除、関係定義テーブルT2の行の削除、表示原データ格納領域17aの格納領域の削除を行う。
さらにまた、表示データ加工処理部14は、後ろ引き出し処理によって対応管理テーブルT1から削除された表示データインデクスPmに対応する、表示データ格納領域17bの格納領域の削除、関係定義テーブルT2の行の削除、表示原データ格納領域17aの格納領域の削除を行う。
次にページめくり処理部13で行われる開始点伸縮処理について説明する。図32は開始点伸縮処理の動作を示すフローチャートである。ページめくり処理部13は、前押し込み処理が実行され、表示データ加工処理部14の伸縮処理によって表示原データ格納領域17aの格納領域が追加された後には、開始点伸縮処理として開始点を1つ減らす。
また、ページめくり処理部13は、前引き出し処理が実行され、表示データ加工処理部14の伸縮処理によって、表示原データ格納領域17aの格納領域が削減された後には、開始点伸縮処理として開始点を1つ増やす。
〔S61〕ページめくり処理部13は、前押し込み処理があったか否かを判断する。前押し込み処理があればステップS62へ行き、前押し込み処理がなければステップS63へ行く。
〔S62〕ページめくり処理部13は、開始点を1つ減らす。
〔S63〕ページめくり処理部13は、前引き出し処理があったか否かを判断する。前引き出し処理があればステップS64へ行き、前引き出し処理がなければステップS65へ行く。
〔S64〕ページめくり処理部13は、開始点を1つ増やす。
〔S65〕ページめくり処理部13は、開始点から表示原データ個数分のデータを文書データから抽出し、表示原データとして表示原データ格納領域17aに格納する。
〔S66〕表示原データ格納領域17aに格納された表示原データの中で、表示データ加工処理対象の表示原データについては、表示データ加工処理部14によって、表示データ加工処理が施される。なお、後ろ押込み処理と後ろ引き出し処理の場合は、開始点の変更は不要である。
次に関係管理部15について説明する。関係管理部15は、主に、関係適用処理と関係復元処理を行う。
図33は関係適用処理の動作を示すフローチャートである。
〔S7a−1〕関係管理部15は、イベントウィンドウ番号と、処理関数名を受信する。
〔S7a−2〕関係管理部15は、処理を表示可能なウィンドウ番号Wkの割り当てを行う。
〔S7a−3〕関係管理部15は、対応管理テーブルT1を参照し、ウィンドウ番号Wkに対応する表示データインデクスPkを取得する。
〔S7a−4〕関係管理部15は、対応管理テーブルT1を参照し、ウィンドウ番号Wkに対応する表示データインデクスPeを取得する。
〔S7a−5〕関係管理部15は、関係定義テーブルT2の表示データインデクスPkに対応する行に関し、入力原データ番号を表示データインデクスPeに更新し、処理関数名を受信した処理関数名で更新する。
〔S7a−6〕表示原データ格納領域17aに格納された表示原データの中で、表示データ加工処理対象の表示原データについては、表示データ加工処理部14によって、表示データ加工処理が施される。
図34は関係復元処理の動作を示すフローチャートである。
〔S8a−1〕関係管理部15は、イベントウィンドウ番号Weを受信する。
〔S8a−2〕関係管理部15は、対応管理テーブルT1を参照し、ウィンドウ番号Weに対応する表示データインデクスPkを取得する。
〔S8a−3〕関係管理部15は、関係定義テーブルT2の表示データインデクスPkに対応する行に関し、入力原データ番号と処理関数名をクリアする。
〔S8a−4〕表示原データ格納領域17aに格納された表示原データの中で、表示データ加工処理対象の表示原データについては、表示データ加工処理部14によって、表示データ加工処理が施される。
次に表示制御装置10の具体的な動作例について説明する。図35はウィンドウ表示を示す図であり、図36はウィンドウ表示に関連する各種データの設定状態を示す図である。図35のウィンドウ表示状態St1を初期状態とする。
表示部16は、4つのウィンドウW1〜W4を有する。また、文書データ格納部T0から、7ページ分の文書データP1〜P7が抽出されているとする。
また、データの表示開始点を2としているので、4ページ分のデータP2〜P5が表示原データ格納領域17aに格納される。さらに、関係定義テーブルT2には何の関係も定義されていないので、表示原データP2〜P5が表示データ格納領域17bにそのまま格納される。
また、対応管理テーブルT1では、ウィンドウ番号=1〜4と表示データインデクス=1〜4とがそれぞれ対応している。このため、表示部16は、表示データ格納領域17bのデータP2、P3、P4、P5をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP2、P3、P4、P5がそれぞれ表示されることになる。なお、選択ウィンドウは、初期状態では未定義になっている。
図37はウィンドウ表示を示す図であり、図38はウィンドウ表示に関連する各種データの設定状態を示す図である。図37のウィンドウ表示状態St2は、ウィンドウ表示状態St1に対して、「右半分拡大」の関係適用処理を行った場合の状態を示している。
ユーザは、ウィンドウW3に対して、メニュー表示から「右半分拡大」という関数fを選択している。ウィンドウW3上のデータP4は、表示原データ格納領域17aでは、入力原データ番号=3である。また、関数fで処理されるデータP4を表示データインデクス=4に対応させるとする。
したがって、関係定義テーブルT2では、表示データインデクス=4の行が、(表示データインデクス=4、処理関数名=f、入力原データ番号=3)と更新される。そして、関係定義テーブルT2の更新結果にもとづき、表示データ格納領域17bには、表示データインデクス=1〜4に対応して、データP2、P3、P4、f(P4)が格納される。
また、対応管理テーブルT1では、ウィンドウ番号=1〜4と表示データインデクス=1〜4とがそれぞれ対応している。このため、表示部16は、表示データ格納領域17bのデータP2、P3、P4、f(P4)をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP2、P3、P4、f(P4)がそれぞれ表示されることになる。なお、ウィンドウW4に表示される表示データf(P4)の画像は、元のデータP4の画像の右半分を拡大した画像である。
図39はウィンドウ表示を示す図であり、図40はウィンドウ表示に関連する各種データの設定状態を示す図である。図39のウィンドウ表示状態St3は、ウィンドウ表示状態St2に対して、「左半分拡大」の関係適用処理を行った場合の状態を示している。
ユーザは、ウィンドウW3に対して、メニュー表示から「左半分拡大」という関数gを選択している。ウィンドウW3上のデータP4は、表示原データ格納領域17aでは、入力原データ番号=3である。また、関数gで処理されるデータP4を表示データインデクス=2に対応させるとする。
したがって、関係定義テーブルT2では、表示データインデクス=2の行が、(表示データインデクス=2、処理関数名=g、入力原データ番号=3)と更新される。そして、関係定義テーブルT2の更新結果にもとづき、表示データ格納領域17bには、表示データインデクス=1〜4に対応して、データP2、g(P4)、P4、f(P4)が格納される。
また、対応管理テーブルT1では、ウィンドウ番号=1〜4と表示データインデクス=1〜4とがそれぞれ対応している。このため、表示部16は、表示データ格納領域17bのデータP2、g(P4)、P4、f(P4)をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP2、g(P4)、P4、f(P4)がそれぞれ表示されることになる。なお、ウィンドウW2に表示される表示データg(P4)の画像は、元のデータP4の画像の左半分を拡大した画像である。
図41はウィンドウ表示を示す図であり、図42はウィンドウ表示に関連する各種データの設定状態を示す図である。図41のウィンドウ表示状態St4は、ウィンドウ表示状態St3に対して、ウィンドウをクリップする選択操作を行った場合の状態を示している。
図41では、ユーザが右手で4番目のウィンドウW4を押さえてクリップしている。例えば、ウィンドウW4上にユーザが指で触れて長押しをする。これにより、ウィンドウ選択操作イベントが生起し、図42に示すように、選択ウィンドウ=4となって、選択モードに入る。
図43はウィンドウ表示を示す図である。図43のウィンドウ表示状態St5は、ウィンドウ表示状態St4に対して、選択モードで前ページめくり操作が行われた場合の状態を示している。図43では、ユーザが左手で2番目のウィンドウW2を右フリックしている。
2番目のウィンドウW2に対して、ユーザが右フリックを行うことで、前ページめくりのイベントが生起する。この場合、選択モードであり、かつイベントウィンドウ番号=2、選択ウィンドウ番号=4である。したがって、イベントウィンドウ番号が選択ウィンドウ番号よりも小さいので、前押込み処理が行われることになる。
図44はウィンドウ表示を示す図であり、図45はウィンドウ表示に関連する各種データの設定状態を示す図である。図44のウィンドウ表示状態St6は、ウィンドウ表示状態St5に対して、選択モードでの前ページめくり操作により、前押し込み処理を行った場合の状態を示している。
前押込み処理が行われることで、対応管理テーブルT1の表示データインデクスが0、1、2、4となる。また、関係定義テーブルT2は、伸縮処理にもとづき、表示データインデクス=0の行が追加される。さらに、表示原データ格納領域17aと表示データ格納領域17bも、伸縮処理にもとづき、格納領域が4から5に増える。さらにまた、開始点は、開始点伸縮処理にもとづき、1から0に減ることになる。
したがって、データの表示開始点を1としているので、開始点1から5ページ分のデータP1〜P5が表示原データ格納領域17aに格納される。さらに、関係定義テーブルT2にもとづき、表示データ格納領域17bには、P1、P2、g(P4)、P4、f(P4)が格納される。
また、対応管理テーブルT1では、ウィンドウ番号=1、2、3、4に対して、表示データインデクス=0、1、2、4が対応するので、表示部16は、表示データ格納領域17bのデータP1、P2、g(P4)、f(P4)をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP1、P2、g(P4)、f(P4)がそれぞれ表示されることになる。
図46はウィンドウ表示を示す図であり、図47はウィンドウ表示に関連する各種データの設定状態を示す図である。図46のウィンドウ表示状態St7は、ウィンドウ表示状態St6に対して、選択モードを解除した場合の状態を示している。例えば、ユーザがクリップしていた指を離すことにより、選択モードが解除され、図47に示すように、選択ウィンドウ=0となる。
図48はウィンドウ表示を示す図である。図48のウィンドウ表示状態St8は、ウィンドウ表示状態St7に対して、選択モード解除後に左フリックを行った場合の状態を示している。
選択モード解除後に、2番目のウィンドウW2上で左フリックを行うことにより、次ページめくりのイベントが生起する。また、選択モードではないので、次ページめくり処理が行われる。
図49はウィンドウ表示を示す図であり、図50はウィンドウ表示に関連する各種データの設定状態を示す図である。図49のウィンドウ表示状態St9は、ウィンドウ表示状態St8に対して、次ページめくり操作を行った場合の状態を示している。
次ページめくり処理が行われることで、開始点は、開始点伸縮処理にもとづき、1から2に増えることになる。したがって、データの表示開始点を2としているので、開始点2から5ページ分のデータP2〜P6が表示原データ格納領域17aに格納される。さらに、関係定義テーブルT2にもとづき、表示データ格納領域17bには、P2、P3、g(P5)、P5、f(P5)が格納される。
また、対応管理テーブルT1では、ウィンドウ番号=1、2、3、4に対して、表示データインデクス=0、1、2、4が対応するので、表示部16は、表示データ格納領域17bのデータP2、P3、g(P5)、f(P5)をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP2、P3、g(P5)、f(P5)がそれぞれ表示されることになる。
このように、表示制御装置10では、選択ウィンドウ以外の非選択ウィンドウへのページめくり操作が受け付けられた場合、選択ウィンドウに対する、非選択ウィンドウのページめくり操作の方向にもとづくページ表示処理を行い、ページ表示処理の結果に応じて、ウィンドウと表示画像との対応関係を適応的に更新する構成とした。
これにより、ユーザの画面操作と、画面操作にもとづく画面表示とに矛盾の無い、ユーザの画面操作に応じたより自然な画面を表示させることができるので、ユーザに違和感を与えない画面表示を行うことが可能になる。
次に第2の実施の形態における動作について説明する。第2の実施の形態では、前引き出し処理または後ろ引き出し処理において、それ以上データが引き出せない場合に、選択ウィンドウで表示されているデータをコピーして引き出す処理を行うというものである。
図51は選択ウィンドウが存在する場合の前引き出し処理の動作を示すフローチャートである。前引き出し処理において、それ以上データが引き出せない場合に、選択ウィンドウで表示されているデータを引き出す処理のフローを示している。
〔S201〕対応管理部11は、選択ウィンドウがWkのとき、W1、…、Wk-2に対応する表示データインデクスをP2、…、Pk-1で置換する。
〔S202〕対応管理部11は、Pk-1+1がPkよりも小さい場合は、ステップS203へ行き、Pk-1+1がPkよりも大きい、またはPk-1+1がPkと等しい場合はステップS204へ行く。
〔S203〕対応管理部11は、ウィンドウWk-1の表示データインデクスをPk-1+1で置換する。
〔S204〕対応管理部11は、ウィンドウWk-1の表示データインデクスをPkで置換する(選択ウィンドウでクリップ表示されているデータで置換する)。
図52は選択ウィンドウが存在する場合の後ろ引き出し処理の動作を示すフローチャートである。後ろ引き出し処理において、それ以上データが引き出せない場合に、選択ウィンドウで表示されているデータを引き出す処理のフローを示している。
〔S211〕対応管理部11は、選択ウィンドウがWkのとき、Wk+2、…、Wmに対応する表示データインデクスをPk+1、…、Pm-1で置換する。
〔S212〕対応管理部11は、Pk+1−1がPkよりも大きい場合は、ステップS213へ行き、Pk+1−1がPkよりも小さい、またはPk+1−1がPkと等しい場合は、ステップS214へ行く。
〔S213〕対応管理部11は、ウィンドウWk+1の表示データインデクスをPk+1−1で置換する。
〔S214〕対応管理部11は、ウィンドウWk+1の表示データインデクスをPkで置換する(選択ウィンドウでクリップ表示されているデータで置換する)。
上記のように、対応管理部11は、対応管理テーブルT1上のW1、…、Wk-1に対応する表示データインデクスをP2、…、Pk-1、Sに置換する前引出し処理においては、Pk-1+1<Pkの場合は、S=Pk-1+1と置換し、それ以外の場合、S=Pkと置換する。
また、対応管理部11は、対応管理テーブルT1上のWk+2、…、Wmに対応する表示データインデクスをT、Pk+1、…、Pm-1に置換する後ろ引出し処理においては、Pk+1−1>Pkの場合は、T=Pk+1−1に置換し、それ以外の場合はT=Pkと置換する。
図53、図54は伸縮処理の動作を示すフローチャートである。
〔S221〕表示データ加工処理部14は、現在の選択ウィンドウWkと、選択ウィンドウWk前後のウィンドウに対応する表示データインデクスを認識する。
〔S222〕表示データ加工処理部14は、前押し込み処理があったか否かを判断する。前押し込み処理があった場合はステップS224へ行き、前押し込み処理がない場合はステップS223へ行く。
〔S223〕表示データ加工処理部14は、後ろ押し込み処理があったか否かを判断する。後ろ押し込み処理があった場合はステップS225へ行き、後ろ押し込み処理がない場合はステップS227へ行く。
〔S224〕表示データ加工処理部14は、Pk-1+1がPkよりも小さい場合は、ステップS226aへ行き、Pk-1+1がPkよりも大きい、またはPk-1+1とPkが等しい場合は終了する。
〔S225〕表示データ加工処理部14は、Pk+1−1がPkよりも大きい場合は、ステップS226aへ行き、Pk+1−1がPkよりも小さい、またはPk+1−1とPkが等しい場合は終了する。
〔S226a〕表示データ加工処理部14は、追加された表示データインデクスをXとする。
〔S226b〕表示データ加工処理部14は、表示データ格納領域17bにXに対応する領域を追加する。
〔S226c〕表示データ加工処理部14は、関係定義テーブルT2にXに対応する行を追加する。
〔S226d〕表示データ加工処理部14は、表示原データ格納領域17aにXに対応する領域を追加する。
〔S227〕表示データ加工処理部14は、前引き出し処理があったか否かを判断する。前引き出し処理があった場合はステップS229へ行き、前引き出し処理がない場合はステップS228へ行く。
〔S228〕表示データ加工処理部14は、後ろ引き出し処理があったか否かを判断する。後ろ引き出し処理があった場合はステップS230へ行き、後ろ引き出し処理がない場合は終了する。
〔S229〕表示データ加工処理部14は、Pk-1がPkよりも小さい場合は、ステップS230aへ行き、Pk-1がPkよりも大きい、またはPk-1とPkが等しい場合は終了する。
〔S230〕表示データ加工処理部14は、Pk+1がPkよりも大きい場合は、ステップS230aへ行き、Pk+1がPkよりも小さい、またはPk+1とPkが等しい場合は終了する。
〔S230a〕表示データ加工処理部14は、削除された表示データインデクスをYとする。
〔S230b〕表示データ加工処理部14は、表示データ格納領域17bのYに対応する領域を削除する。
〔S230c〕表示データ加工処理部14は、関係定義テーブルT2のYに対応する行を削除し、また、関係定義テーブルT2中のYに該当する入力原データ番号をクリアしてNAとする。
〔S230d〕表示データ加工処理部14は、表示原データ格納領域17aのYに対応する領域を削除する。
上記のように、表示データ加工処理部14は、対応管理部11の前引き出し処理の結果、Pk-1=Pkの場合は伸縮処理を行わず、後ろ引き出し処理の結果、Pk+1=Pkの場合は、伸縮処理は行わない。
さらに、表示データ加工処理部14は、前押し込み処理の結果、Pk-1+1=PkまたはPk-1=Pkの場合には伸縮処理を行わず、後ろ押し込み処理の結果、Pk+1−1=PkまたはPk+1=Pkの場合には伸縮処理を行わない。
次に第2の実施の形態の具体的な動作例について説明する。図55はウィンドウ表示を示す図であり、図56はウィンドウ表示に関連する各種データの設定状態を示す図である。図55のウィンドウ表示状態St11は、3番目のウィンドウW3をクリップ選択した後、2番目のウィンドウW2で左フリックを行う状態を示している。
表示部16は、4つのウィンドウW1〜W4を表示する。文書データ格納部T0からは、7ページ分の文書データP1〜P7が抽出されているとする。
また、データの表示開始点を4としているので、データP4から4ページ分のデータP4〜P7が表示原データ格納領域17aに格納される。さらに、関係定義テーブルT2には何の関係も定義されていないので、表示原データP4〜P7が表示データ格納領域17bにそのまま格納される。
また、対応管理テーブルT1では、ウィンドウ番号=1〜4と表示データインデクス=1〜4とがそれぞれ対応している。このため、表示部16は、表示データ格納領域17bのデータP4、P5、P6、P7をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP4、P5、P6、P7がそれぞれ表示されることになる。
このような状態で、3番目のウィンドウW3をクリップ選択した後、2番目のウィンドウW2で左フリックを行うと、次ページめくりのイベントが生起し、選択モードなので、前引き出し処理が行われる。
ここで、上述の第1の実施の形態では、Pk-1+1<Pkの条件、すなわち現在k=3なので、対応管理テーブルT1のPk-1=2、Pk=3となり、Pk-1+1<Pkの条件が成立しないので何も動作がおきない。
これに対し、第2の実施の形態では、2+1=3の条件が成立し、データP6がコピーされて引き出される。第1の実施の形態では、引き出し処理の後、伸縮処理を行い、関係定義テーブルT2の行削減等の処理を行うが、第2の実施の形態では、コピーを生成する場合には伸縮処理は行わず、初期状態と同じ4行のままである。
図57はウィンドウ表示を示す図であり、図58はウィンドウ表示に関連する各種データの設定状態を示す図である。図57のウィンドウ表示状態St12は、選択ページのコピーが作成されて引き出されている状態を示している。
対応管理テーブルT1では、ウィンドウ番号=1、2、3、4に対して、表示データインデクス=2、3、3、4が対応するので、表示部16は、表示データ格納領域17bのデータP5、P6、P6、P7をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP5、P6、P6、P7がそれぞれ表示されることになる。このように、対応管理テーブルT1が変化して、データP6がウィンドウW2、W3で重複した表示状態となる。
図59はウィンドウ表示を示す図であり、図60はウィンドウ表示に関連する各種データの設定状態を示す図である。図59のウィンドウ表示状態St13は、さらに左フリックを行ってページP6を重複して引き出した表示状態を示している。
対応管理テーブルT1では、ウィンドウ番号=1、2、3、4に対して、表示データインデクス=3、3、3、4が対応するので、表示部16は、表示データ格納領域17bのデータP6、P6、P6、P7をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP6、P6、P6、P7がそれぞれ表示されることになる。
図61はウィンドウ表示を示す図である。ウィンドウ表示状態St14は、右フリックによる前押し込み処理の表示状態を示している。右フリックで前ページめくりのイベントが生起し、前押込み処理が起動される直前の状態である。なお、このときのデータ設定状態は、図60と同じである。
図62はウィンドウ表示を示す図である。ウィンドウ表示状態St15は、前押込み処理起動後の状態を示している。なお、このときのデータ設定状態は、図58と同じである。前押込み処理後に、対応管理テーブルT1が変化し、表示部16で表示するデータ中のP6の重複が3つから1つ減り、2つになった状態を表す。
対応管理テーブルT1では、ウィンドウ番号=1、2、3、4に対して、表示データインデクス=2、3、3、4が対応するので、表示部16は、表示データ格納領域17bのデータP5、P6、P6、P7をウィンドウW1〜W4に対応させ、ウィンドウW1〜W4には、データP5、P6、P6、P7がそれぞれ表示されることになる。
なお、押込み処理の後、伸縮処理は行わず、関係定義テーブルT2は初期状態と同じ4行のままであり、表示原データ格納領域17aと表示データ格納領域17bのデータ数も4のままである。
このように、第2の実施の形態の場合は、第1の実施の形態と同じ効果を持つほかに、ウィンドウのコピーを引き出し操作で作成することができ、押込み操作でコピーを削除することが可能になっている。
次に複数の装置間で本技術の表示制御を行う場合について説明する。上記では、1つの表示制御装置10に複数のウィンドウを表示して、本技術の表示制御を行う場合について説明した。
これに対し、複数の表示制御装置にウィンドウそれぞれを表示させて、本技術の表示制御を行う構成としてもよい。すなわち、このような構成の場合、1台の表示制御装置で表示されるウィンドウ上でページめくり操作を行うと、その操作に連動して、他の表示制御装置で表示されているウィンドウ上のページが更新されるものである。
図63は複数の装置間で表示制御を行う場合の構成例を示す図である。表示制御装置10−1〜10−4は、図1で上述した機能を有しており、さらに、無線通信機能を有しているとする。また、表示制御装置10−1〜10−4は、ウィンドウW1〜W4それぞれを個々に表示するものとする。なお表示制御装置10−1〜10−4は、無線などで通信し、互いの相対位置を判断する。そして表示制御装置10−1〜10−4それぞれは、例えば、表示制御装置10−1〜10−4の配列における端(例えば左端)からの順番を示す数値を、自身のウィンドウ番号と認識する。
動作としては、例えば、表示制御装置10−1がクラウドネットワーク2を通じて文書データを取得すると、ウィンドウW1に対するデータ表示を行うために、対応管理テーブルT1、関係定義テーブルT2、表示原データ格納領域17aおよび表示データ格納領域17bなどに対して各種データの設定を行う。
すると、表示制御装置10−1は、自己が有している、対応管理テーブルT1、関係定義テーブルT2、表示原データ格納領域17aおよび表示データ格納領域17bに設定した各種データをコピーして、表示制御装置10−2〜10−4に送信する。また、各種テーブル情報などに変更が生じると、変更が生じた表示制御装置から変更内容が配信される。このようにして、表示制御装置10−1〜10−4は、常に同期しながら共通したテーブル情報を持つ。
このような状態で、表示制御装置10−1〜10−4の内で、いずれか1台の表示制御装置のウィンドウ上にイベントが発生した場合は、そのイベントに追従して、他の表示制御装置のウィンドウの表示も連動して更新される。
例えば、表示制御装置10−1〜10−4の各ウィンドウW1〜W4に、データP1〜P4が最初表示されており、表示制御装置10−2に次ページめくりのイベントが生じて、ウィンドウW2の表示がデータP3になったとする。
このとき、表示制御装置10−1のウィンドウW1の表示は、データP1からデータP2へ移り、表示制御装置10−3のウィンドウW3の表示は、データP3からデータP4へ移り、表示制御装置10−4のウィンドウW4の表示はデータP4からデータP5へ移ることになる。
このように、本技術は、1台の表示制御装置で表示される複数ウィンドウに適用されるだけでなく、複数の表示制御装置で個々に表示されるウィンドウに対しても適用することが可能である。
なお、上記の表示制御装置10−1〜10−4は、単一のウィンドウW1〜W4を表示するとしたが、表示制御装置10−1〜10−4がそれぞれ複数ウィンドウを有して、互いに連動してページ更新を行ってもよい。
なお、上記に示した処理機能は、コンピュータによって実現することができる。図64は本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
バス108に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、コンピュータ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ104aの画面に表示させる。モニタ104aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号をCPU101に送信する。なお、マウス105bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。
通信インタフェース107は、ネットワーク110に接続されている。通信インタフェース107は、ネットワーク110を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。また、コンピュータで本実施の形態の処理機能を実現する場合、表示制御装置1、10が有する機能の処理内容を記述したプログラムが提供される。
そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto Optical disk)などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上説明したように、本技術によれば、ユーザの画面操作と、画面操作にもとづく画面表示とに矛盾の無い、ユーザの画面操作に応じたより自然な画面を表示させることができるので、ユーザに違和感を与えない画面表示を行うことが可能になる。
また、少なくとも以下に示す5項目の動作を矛盾なく円滑に行うことが可能になり、ユーザビリティ性の向上を図ることが可能になる。
(1)複数のウィンドウに表示された連続的なページを、一度のページめくり操作で同時に更新する。
(2)複数のウィンドウの一部のウィンドウに対して、クリップ操作を行うことで、ページめくり操作による更新対象から除外し、該ウィンドウ上の表示ページは固定したままで、その他のウィンドウをページめくりで更新する。
(3)クリップ操作を解除することで、複数の連続していないページを連動させてページめくりする。
(4)あるウィンドウに表示しているページに任意の処理を適用させた結果を、別のウィンドウに表示する。
(5)あるページを表示しているウィンドウと、該ページに対する処理結果を表示しているウィンドウとを、ページめくり操作に追従して更新して、ページと処理結果の組を次々と連動させて表示する。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。