【手続補正書】
【提出日】平成17年5月2日(2005.5.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】  明細書
【発明の名称】  表示制御のための方法、装置、プログラム、およびプログラム媒体
【特許請求の範囲】
【請求項１】
文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、
上記文書に対して指定した指定範囲を含む分割文書を特定すると共に、特定した分割文書を元にして指定範囲のデータサイズを求める指定範囲データサイズ取得ステップと、
分割データサイズ取得ステップから得た分割文書の各データサイズの和と、指定範囲データサイズ取得ステップから得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得ステップと、
を有することを特徴とする表示制御方法。
【請求項２】
文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、
上記文書に対して指定した指定範囲を含む分割文書を特定すると共に、特定した分割文書の少なくとも一部を、そのときの設定に従ってレイアウトすることにより、指定範囲のデータサイズを求める指定範囲データサイズ取得ステップと、
分割データサイズ取得ステップから得た分割文書の各データサイズの和と、指定範囲データサイズ取得ステップから得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得ステップと、
を有することを特徴とする表示制御方法。
【請求項３】
前記指定範囲を表示範囲とし、割合取得ステップから得られた割合に応じたスクロールバーを表示し、また、ユーザーのスクロールバー操作に応じて表示範囲の表示内容を制御するスクロールバー表示制御ステップを有することを特徴とする請求項１または２に記載の表示制御方法。
【請求項４】
前記分割文書および前記指定範囲のデータサイズとして、バイト数やビット数などの符号化データサイズを使うことを特徴とする請求項１または２に記載の表示制御方法。
【請求項５】
前記分割文書のデータサイズとして分割文書の意味単位に基づく数を使うことを特徴とする請求項１または２に記載の表示制御方法。
【請求項６】
意味単位に基づく数として文字数あるいは単語数を使うことを特徴とする請求項５に記載の表示制御方法。
【請求項７】
前記分割文書または前記指定範囲のデータサイズを得る際、実際の表示サイズがデータサイズと相関しない表示要素が文書中に含まれている場合、当該表示要素の表示サイズをデータサイズに換算した値を使うことを特徴とする請求項１または２に記載の表示制御方法。
【請求項８】
前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスの中央位置が、表示範囲の中央位置の表示割合を示すようにすることを特徴とする請求項３に記載の表示制御方法。
【請求項９】
前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合には、文書の最初から、もしくは最後まで表示するようにすることを特徴とする請求項３に記載の表示制御方法。
【請求項１０】
前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスのスクロールバー内の位置に応じて、表示範囲が文書中に占める位置と割合とを表す基準となるスクロールボックス上の基準位置を変更すると共に、その基準位置に対応付けた表示範囲上の基準位置を合わせて変更することを特徴とする請求項３に記載の表示制御方法。
【請求項１１】
文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得手段と、
上記文書に対して指定された位置を基準とする指定範囲を含む分割文書を特定すると共に、特定した分割文書を元にして指定範囲のデータサイズを求める指定範囲データサイズ取得手段と、
分割データサイズ取得手段から得た分割文書の各データサイズの和と、指定範囲データサイズ取得手段から得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得手段と、
を有することを特徴とする表示制御装置。
【請求項１２】
請求項１から１０のいずれか一項に記載に記載の表示制御方法が備える各ステップをコンピュータに実行させる為の表示制御プログラム。
【請求項１３】
請求項１１に記載の表示制御装置が備える各手段として、コンピュータを機能させるための表示制御プログラム。
【請求項１４】
請求項１２または１３に記載の表示制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スクロールバーを表示したり、スクロールバーを操作して表示範囲を制御したりする方法、その方法を実施するための装置、プログラム、記録媒体に関する。
【０００２】
【従来の技術】
ディスプレイやウィンドウなどの表示範囲に収まりきらない文書や絵、図などのコンテンツを扱う方法として、スクロールバーおよびスクロールボックスを利用する方法は、ワードプロセッサーや電子書籍リーダー、ＷＷＷブラウザー、エディターなど様々なアプリケーション、装置で広く使われている。
【０００３】
例えば、スクロールバー上に表示されたスクロールボックスの大きさ（長さ）は、コンテンツ全体の中で表示されている部分の割合を表す。また、スクロールバー上でのスクロールボックスの表示位置は、コンテンツ全体に対する表示されている部分の相対的位置を表す。
【０００４】
上述のアプリケーションや装置では、スクロールバー上に表示するスクロールボックスの位置と大きさは、通常、表示内容のレイアウトサイズあるいはページ数を使って計算する。なお、「レイアウトサイズ」とは、ここでは文章や絵などのコンテンツを表示した時に、着目した表示範囲の大きさのことを指し、例えばドット数などで表される。「ページ数」とは、ここでは表示をページ単位で行う場合のページの総数を指す。
【０００５】
例えばレイアウトサイズを使った計算の場合、表示されている部分のスクロールボックスの大きさの割合は、
（表示範囲のレイアウトサイズ）／（全レイアウトサイズ）、
で求まり、また、表示されている部分のスクロールボックスの位置の割合は、
（コンテンツ先頭から表示範囲先頭までのレイアウトサイズ）／（全レイアウトサイズ）となる。「全レイアウトサイズ」は、表示されていないコンテンツ部分も含んだコンテンツ全体のレイアウトサイズである。
【０００６】
また、例えばページ数を使って計算する場合、表示されている部分のスクロールボックスのサイズの割合は、
（表示範囲のページ数）／（全ページ数）
で求まり、また、表示されている部分のスクロールボックスの位置の割合は、
（先頭から表示範囲までのページ数）／（全ページ数）
となる。「全ページ数」は、表示されていないコンテンツ部分も含んだページ数である。
【０００７】
コンテンツの表示の仕方には２種類あり、ＰＤＦ（ｐｏｒｔａｂｌｅ  ｄｏｃｕｍｅｎｔ  ｆｏｒｍａｔ）の様に文字の大きさや位置といったレイアウトやページの大きさが固定されているもの（固定レイアウト）と、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）ブラウザの様に文字の大きさやページの大きさが固定されておらず、自由にユーザーが変更できるもの（可変レイアウト）とがある。
【０００８】
固定レイアウトの場合は、レイアウトサイズやページ数や全レイアウトサイズはコンテンツによって予め決まっているが、可変レイアウトの場合は、文字の大きさやページの大きさ（行数や行内文字数等）によって、レイアウトサイズやページ数や全レイアウトサイズは変わる。
【０００９】
【発明が解決しようとする課題】
ところが、可変レイアウトの場合、文字の大きさやページサイズの設定がその時々によって変わるため、コンテンツ全体のレイアウトサイズやページ数を予め計算しておくことはできない。このため、実際に表示させる時に文字の大きさやページサイズの設定に合わせてコンテンツ全体をレイアウトしてみないことには、レイアウトサイズやページ数を用いて、スクロールボックスの位置や大きさの割合を計算することができない。
【００１０】
しかし、コンテンツ全体をレイアウトする場合、コンテンツのデータ量が大きければ大きいほど、そのレイアウト処理に時間がかかるという問題が出てくる。また、レイアウト結果を保存しておく為のメモリも大量に必要となるという問題も出てくる。表示に使わない部分のレイアウトを破棄することでメモリの問題を回避するにしても、せっかく作成したレイアウトを破棄するのでは、無駄な処理を行うことになるという問題がある。
【００１１】
またこれらの問題は、「スクロールバーの表示」（表示範囲に相当するスクロールボックスの位置や大きさを求めて表示すること）の時だけでなく、「スクロールバーによる制御」（指定されたスクロールボックスの位置や大きさに相当する表示範囲を表示すること）の時にも発生する。指定されたスクロールボックスの位置や大きさの割合から、相当する表示範囲を求めようとすれば、結局、コンテンツ全体のレイアウトが分からないと、コンテンツ全体のどこの部分のレイアウトを表示すればよいか求まらないからである。
【００１２】
このような問題に対して、本発明は、文字の大きさやページサイズなどの設定を自由に変えられる可変レイアウトの文書において、高速かつできるだけ正確に、スクロールバーの表示やスクロールバーを用いた表示制御を処理すること、少ないメモリ環境などにおいても無駄なく処理を行うこと、などを主な目的とする。
【００１３】
【課題を解決するための手段】
本発明に係る表示制御方法は、上記の課題を解決する為に、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、上記文書に対して指定した位置を基準とする指定範囲を含む分割文書を特定すると共に、特定した分割文書を元にして指定範囲のデータサイズを求める指定範囲データサイズ取得ステップと、分割データサイズ取得ステップから得た分割文書の各データサイズの和と、指定範囲データサイズ取得ステップから得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得ステップと、を有することを特徴とする。
【００１４】
上記の構成において、「表示」は、一般には情報を視覚的に知覚できるような形態で表示媒体上に出力することを言う。本発明ではレイアウトの表示媒体に対する「表示」だけに限らず、レイアウトの印刷記録媒体に対する「印刷」やレイアウトのデータ記録媒体に対する「ファイル出力」など「出力」一般にも適用可能である。説明を分かり易くする為、以降の説明では、「表示」という言葉を用いることが多いが、「出力」の意も含まれているとする。
【００１５】
「レイアウト」とは、表示要素が２次元または３次元の空間座標上に、位置とサイズ、外形の属性をもって配置されること、あるいは配置されたもののことを言う。位置やサイズは、通常は何らかの単位を使った値として表現される。例えば、画素の集まりからなるディスプレイに表示する場合は、一般に（画素）ドットの単位で表現される。一つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上の位置のことを「レイアウト位置」、一つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上のサイズのことを「レイアウトサイズ」と以降では呼ぶ場合もある。
【００１６】
「文書」とは、一つまたは複数の表示要素がレイアウトされたもの、あるいはレイアウトしたり、レイアウトに基づいて表示要素を表示したりすることができるだけの情報量を持ったデータを指す。文書データは、表示要素のデータも含む場合と、レイアウト情報だけ持っていて表示要素のデータの一部を含む場合やあるいはまったく含まない場合もある。いずれにしろ、文書データを使って、レイアウトに従った表示や出力ができる。
【００１７】
文書の「指定範囲」とは、スクロールバーの場合で言えば、その文書中の表示したい範囲を指す。通常は、レイアウトされた文書中での位置とサイズ、外形で指定する。外形は矩形が一般的である。なお、「指定範囲」は、表示したい範囲に限らず、印刷したい範囲の場合もあり、また、ＰＤＦなどのデータフォーマット形式で主記憶上や外部記憶上に記録したい範囲の場合もある。
【００１８】
一般に、スクロールバーは、表示媒体の表示範囲に表示される文書中の部分が、文書全体のどのあたりに位置しているかという位置と、表示範囲のレイアウトサイズが全文書のレイアウトサイズ中に占める割合とに基づいて表示されたり、制御されたりしている。このとき、その割合は、表示範囲のレイアウトサイズと全文書のレイアウトサイズとがわかれば、求めることができる。
【００１９】
レイアウトサイズを高速に得るには予め計算しておくなどの方法が考えられるが、表示範囲の大きさやフォントサイズなどをユーザが自由に変更できる可変レイアウトの場合は、表示時のレイアウト設定などによってレイアウトサイズが変わってしまう為、予め計算しておいても、その結果は、レイアウト設定が変われば使うことができない。
【００２０】
レイアウト割合を真に正確に求めるのは難しいが、ある程度の精度で推定することはできる。推定する手段として、データサイズは固定レイアウトでも可変レイアウトでも一定であり、レイアウト処理とは無関係に決まる情報量なので、レイアウトサイズでなくデータサイズを使えば簡単に計算できる点と、複数の分割文書から構成された文書であれば、必要な分割文書のみを処理対象とすることによって、簡単にデータサイズを決めることができる点とに本願発明者は着目した。
【００２１】
すなわち、上記の構成によれば、分割データサイズ取得ステップから得た分割文書の各データサイズの和と、指定範囲データサイズ取得ステップから得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を推定することができる。
【００２２】
より詳しくは、分割データサイズ取得ステップから、分割文書の各データサイズを、レイアウト設定とは無関係に得ることができる。さらに、文書全体のデータサイズを分割文書のデータサイズの和として求めることができる。
【００２３】
なお、文書における指定範囲は、通常、文書に対して例えばユーザが指定した位置と、表示媒体について設定される表示範囲の大きさとによって決めることができる。したがって、指定範囲データサイズ取得ステップでは、指定範囲に伴う文書中のデータ位置等を基準とすることによって、指定範囲を含む分割文書を特定することができる。
【００２４】
指定範囲のデータサイズは、分割文書が特定されれば求めることができる。例えば、単純な方法としては、特定した分割文書のデータサイズを合算すればよい。この場合、指定範囲からはみ出して表示されない部分を持つ分割文書が含まれることもあるが、要は、最終的に求めたい割合の精度の問題に帰着する。分割文書のデータサイズの合算によって指定範囲のデータサイズを求める手法では、精度を上げたければ、文書の分割数を増やして、１つの分割文書のデータサイズを小さくすればよい。
【００２５】
この手法では、文書のレイアウトを全く行わずに、文書中に指定範囲が占める割合を推定的に求めることができるので、処理が極めて簡便であり、かつ処理に必要なリソースを格段に減らすことができる。
【００２６】
他の手法としては、特定した分割文書を、可変レイアウトのその時の設定に従ってレイアウトし、表示される部分のデータサイズを求めればよい。この手法は、指定範囲を含む分割文書のみをレイアウトするので、文書全体をレイアウトする必要が無く、処理が簡便であり、処理に必要なリソースが少なくて済む上に、上記の手法より精度を向上させることができる。
【００２７】
これによって、可変レイアウトの集まりからなる文書であっても、高速に指定範囲の割合を得ることができる効果が出てくる。また割合を計算する為にレイアウトをまったく保持する必要が無い、あるいは一部しか保持する必要がないので、少ない処理リソース（ＣＰＵ処理能力やメモリ環境など）でも処理できる効果が出てくる。
【００２８】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、上記文書に対して指定した位置を基準とする指定範囲を含む分割文書を特定すると共に、特定した分割文書の少なくとも一部を、そのときの設定に従ってレイアウトすることにより、指定範囲のデータサイズを求める指定範囲データサイズ取得ステップと、分割データサイズ取得ステップから得た分割文書の各データサイズの和と、指定範囲データサイズ取得ステップから得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得ステップと、を有することを特徴とする。
【００２９】
上記の構成において、「レイアウト」とは、表示要素が２次元または３次元の空間座標上に、位置とサイズ、外形の属性をもって配置されること、あるいは配置されたもののことを言う。位置やサイズは、通常は何らかの単位を使った値として表現される。例えば、画素の集まりからなるディスプレイに表示する場合は、（画素）ドットの単位で表現される。
【００３０】
上記の構成によれば、特定した分割文書の少なくとも一部を、可変レイアウトのその時の設定に従ってレイアウトし、表示される部分のデータサイズを求めるので、文書全体をレイアウトする必要が無く、処理が簡便であり、処理に必要なリソースが少なくて済む上に、精度を向上させることができる。
【００３１】
なお、特定した分割文書の少なくとも一部をレイアウトする理由は、指定範囲に完全に含まれる分割文書については、そのデータサイズをそのまま割合算出に使えばよいのでレイアウトする必要が無いためである。すなわち、指定範囲から一部がはみ出す分割文書についてのみ、その時の設定に従ってレイアウトすれば、指定範囲のデータサイズを求めることができる。
【００３２】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記指定範囲を表示範囲とし、割合取得ステップから得られた割合に応じたスクロールバーを表示し、また、ユーザーのスクロールバー操作に応じて表示範囲の表示内容を制御するスクロールバー表示制御ステップを有することを特徴とする。
【００３３】
上記の構成によれば、指定範囲に応じた文書の部分の表示を行い、また、割合取得ステップから得られた割合に応じたスクロールバーを高速に表示することで、指定範囲をスクロールバー表示を伴って表示させることができる。
【００３４】
また、ユーザーがスクロールバーを操作するなどして指定した位置を基準とすることで、可変レイアウトの表示システムでも、ユーザーが所望する範囲を高速に表示させるような制御を行うことができるようになる。
【００３５】
これによって、可変レイアウトの表示システムでも、スクロールバーを使った表示や制御が高速に行えるという効果が出てくる。
【００３６】
なお、本方法を、既に説明した本発明の各方法のいずれかと、適宜組み合わせることができる。
【００３７】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記分割文書および前記指定範囲のデータサイズとして、バイト数やビット数などの符号化データサイズを使うことを特徴とする。
【００３８】
上記の構成によれば、バイトやビットは、主記憶や外部記憶上などで扱うデータサイズの単位なので、文書データなどをコンピュータ上で扱う場合、データサイズを示す指標としては、符号化データサイズが最も得やすく、また扱い易いという効果が出てくる。ひいては割合を求めるなどの処理も簡単になるという効果が得られる。
【００３９】
なお、本方法を、既に説明した本発明の前記各方法と、必要に応じて任意に組み合わせてもよい。
【００４０】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記分割文書のデータサイズとして分割文書の意味単位に基づく数を使うことを特徴とする。
【００４１】
上記の構成によれば、表示割合をデータサイズなどを使って推測する場合に、文書データ中にはレイアウトサイズにあまり関係ないようなデータ、例えば文字の色など、が含まれていることがあるので、精度を上げるには、レイアウトサイズにあまり関係ないデータを除くことが好ましい。
【００４２】
上記の「意味単位に基づく数」とは、人間に知覚できるような処理単位を意味単位として捉えた時の処理単位の数ということで、文書の場合で言えば、文字（要素）数や行数、改行数などが該当する。
【００４３】
このような意味単位に基づく数をデータサイズとして使うことで、レイアウトサイズにあまり関係ないデータの影響を少なくすることができる効果が出てくる。
【００４４】
また、これらの意味単位に基づく数は、レイアウト処理によって変わるものではないので、事前に数えておくことが可能であり、レイアウト処理などを最小限に抑えた処理を可能にするという前述の効果が変わりなく得られるものである。
【００４５】
なお、本方法を、既に説明した本発明の前記各方法と、必要に応じて任意に組み合わせてもよい。
【００４６】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、意味単位に基づく数として文字数あるいは単語数を使うことを特徴とする。
【００４７】
上記の構成によれば、データサイズとして上述の意味単位に基づく数を使う場合に、意味単位が小さい程、データサイズの精度が上がるので、表示割合の算出精度を上げることができる。すると、意味単位として、単語数は改行数や行数に比べて小さな単位であり、文字数は単語数より更に小さな単位である。したがって、意味単位の中でも、単語数を用いれば、表示割合の算出精度を相対的に高めることができ、特に文字数を用いれば、算出精度を更に上げることができる。
【００４８】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記分割文書または前記指定範囲のデータサイズを得る際、実際の表示サイズがデータサイズと相関しない表示要素が文書中に含まれている場合、当該表示要素の表示サイズをデータサイズに換算した値を使うことを特徴とする。
【００４９】
上記の構成で、実際の表示サイズがデータサイズと相関しない表示要素とは、例えば表示形態に関するデータやファイル名のデータのみが文書データ中に記述された画像である。このような場合、表示形態やファイル名のデータのサイズを、バイト数やビット数などで取得しても、実際の表示サイズとは不一致となり、通常小さくなることが多い。
【００５０】
文字や画像の大きさは実際にはレイアウトしないと完全に決定しないこともあるが、基準文字サイズを仮決めするなど、何らかの仮定をおいてレイアウトを行っても、ある程度の傾向は出てくる。そこで、実際の表示サイズがデータサイズと相関しない表示要素のレイアウトの大きさを、何らかの仮定の元に推定し、それをデータサイズに換算することで、データサイズだけで推定するよりも推定精度が増す可能性が大きくなるという効果が出てくる。
【００５１】
なお、本方法を、既に説明した本発明の前記各方法と、必要に応じて任意に組み合わせてもよい。
【００５２】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスの中央位置が、表示範囲の中央位置の表示割合を示すようにすることを特徴とする。
【００５３】
上記の構成において、指定範囲の割合は、表示倍率などを変えない限りは通常は一定となる。しかし、本発明では、指定範囲の割合をデータサイズを元にして推測しているので、一定とは限らない。その為、指定範囲の位置によっては、スクロールボックスの長さが変わってしまうことがある。この長さの変化は推測誤差に相当する。
【００５４】
上記の構成によれば、表示範囲を指定するスクロールボックスの中央位置が、表示範囲の中央位置の表示割合を示すようにすることで、その誤差をスクロールボックスの両端に分散させ、長さの変化に対する視覚的な違和感を軽減することができる効果がある。
【００５５】
また、ユーザーにとって、スクロールバーを操作する際に、視覚上、直感的に表示割合や表示部分の位置を捉えやすくなる効果も出てくる。
【００５６】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合には、文書の最初から、もしくは最後まで表示するようにすることを特徴とする。
【００５７】
上記の構成において、スクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合、スクロールボックスの長さが固定されているならば、スクロールボックスがスクロールバーの中心に位置しようと、端に位置しようと、指定した範囲と表示結果とは、ずれることなく一致する。しかし、スクロールボックスの長さが本発明のように推定値であり、位置によって変化し得る場合、指定した範囲と表示結果とが一致しないことが考えられる。
【００５８】
この不一致によって、推定値の値によっては、文書の最初または最後の部分を表示するように指定できなくなったり、あるいは余計な空白を入れた表示をしてしまうことが考えられる。
【００５９】
また、文書の最初もしくは最後を含む範囲を指定した場合は、そのスクロールボックスの中心位置に相当する文書の範囲を表示したいというよりも、文書の最初からあるいは最後までの範囲を表示したいと解釈する方が自然である。
【００６０】
そこで、スクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合には、文書の最初から、もしくは最後までを含むような指定範囲が指定されたとして解釈して、表示を行うことで、推定誤差による上記不具合を回避し、またユーザーの意図に沿った処理を行うことができるという効果が出てくる。
【００６１】
また、本発明に係る表示制御方法は、上記の課題を解決する為に、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスのスクロールバー内の位置に応じて、表示範囲が文書中に占める位置と割合とを表す基準となるスクロールボックス上の基準位置を変更すると共に、その基準位置に対応付けた表示範囲上の基準位置を合わせて変更することを特徴とする。
【００６２】
先に説明した方法によれば、スクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合もうまく処理できるようになるが、始端もしくは終端をわずかに含まない範囲を指定した場合に、スクロールボックスの中心位置を使った表示方法を実行するとすれば、端を含むか含まないかの差はわずかなのに、表示結果は大きく飛んでしまうことが起こるという不具合が考えられる。
【００６３】
そこで、上記の構成によれば、表示範囲を指定するスクロールボックスのスクロールバー内の位置に応じて、スクロールボックスと表示範囲とで対応付けされた基準位置を変更するように指定範囲を解釈する。
【００６４】
例えば、スクロールボックスがスクロールバーの中心付近に位置する場合は、表示範囲が文書中に占める位置と割合とを表す基準となるスクロールボックス上の基準位置と、表示範囲上の基準位置とを、共に中心付近で一致させるようにする。
【００６５】
そして、スクロールボックスがスクロールバーの中心から離れるのに応じて（例えば比例して）、両者の基準位置を共にずらしていく。
【００６６】
さらに、文書の最初や最後を含む範囲が指定された場合には、スクロールボックスの始端または終端を基準位置とすると共に、表示範囲についても始端または終端を基準位置として、スクロールボックスおよび表示範囲の基準位置を始端または終端に一致させるようにする。
【００６７】
これによって、スクロールバー末端付近のスクロールボックスのわずかな位置の違いで表示が大きくずれてしまうことを防ぐ効果が出てくる。
【００６８】
また、本発明に係る表示制御装置は、上記の課題を解決する為に、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得手段と、上記文書に対して指定された位置を基準とする指定範囲を含む分割文書を特定すると共に、特定した分割文書を元にして指定範囲のデータサイズを求める指定範囲データサイズ取得手段と、分割データサイズ取得手段から得た分割文書の各データサイズの和と、指定範囲データサイズ取得手段から得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得手段と、を有することを特徴とする。
【００６９】
これによる作用、効果は上で説明した方法と同様であるが、作用の説明を補足しておく。
【００７０】
分割データサイズ取得手段は、分割文書の各データサイズを、レイアウト設定とは無関係に得ることができる。例えば、文書をどう分割するかを文書データの作成時に予め決め、どう分割したかの情報をデータとして、文書を配信するサーバのメモリ上、または文書データを記録した記録メディアに別ファイルとして記録しておく。あるいは、文書データの一部としてヘッダ情報などの形で含めておき、文書データを記録媒体または伝送媒体を介して読み込んだときに、分割文書の各データサイズ情報を、主記憶または外部記憶などに格納しておいてもよい。
【００７１】
これにより、分割データサイズ取得手段は、分割文書の各データサイズを入手する必要が生じた時に、上記メモリ、記録メディア、主記憶または外部記憶などにアクセスして、データサイズを入手することができる。
【００７２】
また、文書における指定範囲は、通常、文書に対して例えばユーザが指定した位置と、表示媒体について設定される表示範囲の大きさとによって決まるので、指定範囲データサイズ取得手段は、指定された位置を基準とすることによって、指定範囲を含む分割文書を特定することができ、さらに、指定範囲のデータサイズを、特定した分割文書を元に、既に説明した方法によって求めることができる。
【００７３】
最後に、割合取得手段は、分割データサイズ取得手段から得た分割文書の各データサイズを合算することによって、指定範囲データサイズ取得手段から得た前記指定範囲のデータサイズの割合を算出することができる。
【００７４】
また、本発明に係る表示制御プログラムは、上記の課題を解決する為に、上記スクロールバー表示制御方法が備える各ステップをコンピュータに実行させることを特徴とする。
【００７５】
これにより、汎用のコンピュータに、本発明のスクロールバー表示制御方法を実行させ、上記の作用、効果を得ることができる。
【００７６】
また、本発明に係る記録媒体は、上記の課題を解決する為に、上記表示制御プログラムを記録したことを特徴とする。
【００７７】
これにより、上記記録媒体から汎用のコンピュータに、表示制御プログラムをインストールすることによって、本発明の表示制御方法を実行させ、上記の作用、効果を得ることができる。
【００７８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
【００７９】
まず用語と概念について説明する。
【００８０】
「表示」は、一般には情報を視覚的に知覚できるような形態で表示媒体上に出力することを言う。本発明では、表示媒体に対するレイアウトの「表示」だけに限らず、印刷記録媒体に対するレイアウトの「印刷」や、データ記録媒体に対するレイアウトの「ファイル出力」など、「出力」一般にも適用可能である。説明を分かり易くする為、以降の説明では、「表示」という言葉を用いることが多いが、「出力」の意も含まれているとする。
【００８１】
「表示要素」とは、文字や絵、写真、図形、動画像など、表示することのできるデータ要素を指す。表示する為には、通常、表示位置と表示サイズの他に、外形、表示表現形態などの属性を、表示要素は持っている必要があり、表示装置はそれらの取得手段を持っている必要がある。
【００８２】
但し、表示要素は、表示している状態のデータ要素だけを指すのではなく、主記憶や外部記憶、その他の機器上に、表示／出力に備えて記録／格納されているデータ要素も含む。何かの形に置き換えて出力するという意味では、「出力要素」と言い換えても良いが、上述した様に以降では分かり易くする為に「表示要素」と表現しておく。また、表示は２次元表示だけでなく、３次元表示も含む。
【００８３】
「表示表現形態」は、例えば文字ならば、文字の輪郭および内部を表示装置上の画素位置として計算し、その画素を設定された文字色で塗りつぶすことになる。表示でなくて、印刷の場合も画素で塗りつぶす行為が、紙に点を印刷することに相当するだけで、同様の方法で出力できる。ＰＤＦなどに表示要素のデータを出力する場合も、画素情報に展開して出力することもできるし、その手前の輪郭データなどとして出力することもできるし、ＰＤＦデータを後でＰＤＦ用アプリケーションが解釈する際に、画素情報などに展開できるだけの十分な情報量のデータ（例えば、フォント名と文字コード、位置、文字サイズ、文字色など）として出力することもできる。
【００８４】
「レイアウト」とは、表示要素が２次元または３次元の空間座標上に、位置とサイズ、外形の属性をもって配置されること、あるいは配置されたもののことを言う。位置やサイズは、通常は何らかの単位を使った値として表現される。例えば、画素の集まりからなるディスプレイに表示する場合は、（画素）ドットの単位で表現される。１つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上の位置のことを「レイアウト位置」、１つないし複数の表示要素がレイアウトされた結果、その表示要素に関して定まる空間座標上のサイズのことを「レイアウトサイズ」と以降では呼ぶ場合もある。
【００８５】
「文書」とは、一つまたは複数の表示要素がレイアウトされたもの、あるいはレイアウトしたり、レイアウトに基づいて表示要素を表示したりすることができるだけの情報量を持ったデータを指す。文書データは、表示要素のデータも含む場合と、レイアウト情報だけ持っていて表示要素のデータの一部を含む場合やあるいはまったく含まない場合もある。いずれにしろ、文書データを使って、レイアウトに従った表示や出力ができる。
【００８６】
図１は、ある文書がレイアウトされた例を示している。図１の１１０はレイアウト全体を指し、その中のそれぞれの文字や画像がレイアウトされた表示要素にあたる。実際に表示される際は、ここから表示範囲のレイアウトが切り出されて表示される。
【００８７】
文書の「指定範囲」とは、スクロールバーの場合で言えば、その文書中の表示したい範囲を指す。通常は、レイアウトされた文書中での位置とサイズ、外形で指定する。外形は矩形が一般的である。なお、「指定範囲」は、表示したい範囲に限らず、印刷したい範囲の場合もあり、また、ＰＤＦなどのデータフォーマット形式で主記憶上や外部記憶上に記録したい範囲の場合もある。
【００８８】
スクロールバーで指定範囲を指定する場合、スクロールボックスのサイズが指定範囲のサイズとなり、スクロールボックスの位置が指定範囲の位置となる。スクロールボックスのサイズはスクロールバーの直接操作では通常は変更できないので、位置を変えるだけになる。スクロールボックスのサイズを変更するには、表示倍率を変える、などの操作を別途行わなければならない。
【００８９】
スクロールボックスの位置の変更操作は、通常、マウスやキーボードなどを使って行われる。例えば、スクロールボックス上にマウスカーソルを移動させ、マウスの左ボタンを押す。そのボタンを押しつづけたまま、スクロールボックスを移動させたい位置までマウスを動かし、移動させたい位置でボタンを離す。スクロールボックスをいわゆる「ドラッグ＆ドロップ」することになる。
【００９０】
また、スクロールバー上にスクロールボックスを移動させるスクロールボタン（矢印の表示をしていることが多い）などがある場合、そのスクロールボタンを押すことで、所定の方向に所定量だけスクロールボックスが移動する。スクロールボタンと同様の操作は、キーボード上の方向キーやスペースキーなどを押すことでもできる場合もある。
【００９１】
スクロールバーから指定範囲を得る場合、スクロールバー中でスクロールボックスを配置できる範囲のサイズ、その範囲中でのスクロールボックスの位置、スクロールボックスのサイズが得られれば、スクロールボックスによって指定される範囲が分かる。
【００９２】
スクロールバーやスクロールボックスの位置、サイズは、通常、画面表示のドット数で表される。例えば、スクロールバー中でスクロールボックスを配置できる範囲が２５０ドットで、スクロールボックスはその配置できる範囲の先頭から１００ドットの所に位置し、そこから５０ドット分のサイズを占める、などとなる。スクロールバーのどちらの端が先頭かは目的に応じて決めればよい。
【００９３】
スクロールバーを使って指定範囲を得る場合や、現在表示している範囲をスクロールバーで表示する場合、最終的には画面表示のドット数が単位となるのだが、スクロールバー全体の大きさも変わったりするので、以降では説明を汎用的にする為、スクロールボックスの位置、サイズは、ドット数ではなくて割合を使って主に説明する。割合は０．０〜１．０の値となる。
【００９４】
例えば、先の例では、スクロールボックスの位置の割合は、（１００／２５０）＝０．４となり、スクロールボックスのサイズの割合は、（５０／２５０）＝０．２となる。
【００９５】
指定範囲の指定の仕方としては、文書の全体縮小表示上でマウスドラッグなどにより矩形を指定することで行われることもある。この場合は位置とサイズを同時に指定することができる。
【００９６】
指定範囲の位置とサイズはどんな単位系で表現されても良いのだが、スクロールバーなどで指定される場合は、文書全体の中での割合として得られることが多い。
【００９７】
次に、文書の「分割」とは、レイアウト的な分割とデータ的な分割の２通り考えられるが、本発明ではデータ的な分割を対象とする。
【００９８】
レイアウト的な分割とは、表示要素がレイアウトされた状態で、座標空間上の範囲として分割することである。例えて言えば、印刷された紙を鋏で切るようなものである。
【００９９】
一方、データ的な分割は、バイトやビットなどのデジタル量として表現された文書データを、データ列として分割することである。これは人間が直接知覚することはできないが、表示要素やレイアウト的にきりの良い所（例えば、改行や段落の前後）でデータ列を分割した場合、その分割データの表示や出力はレイアウト的に分割されたように表現されるので、間接的に知覚できる。また、表示要素やレイアウト的にきりの良い所でデータ列を分割した方が後の処理がしやすい。
【０１００】
また、どちらの場合でも、表示要素やレイアウト的にきりの良い所で文書を分割した場合、レイアウト的な分割でもデータ的な分割でもどちらの形でも分割状態として表現できることが多い。
【０１０１】
図２は、図１の文書レイアウトの文書データ（ＨＴＭＬで記述されているとする）を分割した例である。分割文書データ５０〜５５のように、元の文書データがＨＴＭＬソースの文字単位で分割されている。また、レイアウト的に切りが良いように、改行（「＜ＢＲ／＞」）の前後などでできるだけ分割している。この分割の処理は、コンテンツデータが作成される時に行われるとし、コンテンツデータを読み込む段階では、どう分割されたかの情報は入手できるとする。
【０１０２】
文書の「データサイズ」とは、データの規模を示す値で、一般には文書データをバイトやビットなどの符号化量（デジタル量）として表現、記録した時のサイズであるが、ここでは後に説明する「意味単位に基づく数」などもデータの規模を示すものとしてデータサイズに含まれるとする。
【０１０３】
文書の「意味単位に基づく数」とは、人間に知覚できるような処理単位を意味単位として捉えた時の処理単位の数ということで、文書の場合で言えば、文字（要素）数や行数、改行数などが考えられる。
【０１０４】
図２６は、本発明の実施の一形態に係り、上述したスクロールバー表示制御方法を実施するスクロールバー表示制御装置を示す構成図である。
【０１０５】
すなわち、スクロールバー表示制御装置の要部を、分割データサイズ取得手段１、指定範囲データサイズ取得手段２、割合取得手段３、スクロールバー表示手段４、指定範囲取得手段５、指定範囲レイアウト取得手段６、レイアウト表示手段７、分割文書レイアウト取得手段８に展開して示すことができる。
【０１０６】
図２７は、図２６の各手段１〜８を具体的に実現する装置の構成例である。
【０１０７】
ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）２０は、上記分割データサイズ取得手段１、指定範囲データサイズ取得手段２、割合取得手段３、スクロールバー表示手段４、指定範囲取得手段５、指定範囲レイアウト取得手段６、レイアウト表示手段７、分割文書レイアウト取得手段８として機能し、これら各手段１〜８による処理手順が記述されたプログラムを主記憶２５、外部記憶２６、通信デバイス２９を経たネットワーク先などから得る。
【０１０８】
また、ＣＰＵ２０は、ＣＰＵ２０を含めてバス３０を通じ相互に接続されたグラフィックデバイス２１、プリンタ２３、スピーカー２４、主記憶２５、外部記憶２６、マウス２７、キーボード２８、通信デバイス２９とデータのやりとりを行ないながら、既に説明した各処理を行なう。
【０１０９】
なお、データのやりとりは、バス３０を介して行う場合に限らず、データを送受信できるものならば、通信ケーブルや無線通信装置などを介してもよい。また、各手段１〜８の実現手段としては、ＣＰＵに限らず、ＤＳＰ（ ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）や処理手順が回路として組み込まれているロジック回路などを用いることもできる。
【０１１０】
主記憶２５は、通常はＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）やフラッシュメモリなどのメモリデバイスで構成される。外部記憶２６は、ＨＤＤ （ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）やＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ) カードなどの装脱着可能な記憶手段である。あるいはＣＰＵ２０と通信デバイス２９を介して有線または無線で接続された他のネットワーク機器に取り付けられたメモリデバイスなどを外部記憶２６として用いることもできる。
【０１１１】
ユーザの操作を入力する手段として、マウス２７やキーボード２８、マイク３１などがある。この他にもボタンやタッチパネルなど、様々な手段が使用可能である。
【０１１２】
グラフィックデバイス２１は、通常はグラフィックカードなどによって実現され、ＶＲＡＭ（ｖｉｄｅｏ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を有し、ＶＲＡＭ上のデータを表示信号に変換して、グラフィックデバイス２１に接続されたモニタ２２に送り、モニタ２２は表示信号を画像として表示する。
【０１１３】
プリンタ２３は、バス３０を介して得た印刷データを用紙に印刷する。スピーカ２４は、バス３０を介して得た音データを音として出力する。マウス２７やキーボード２８、マイク３１は、ユーザーによる入力をバス３０を介して他の手段に伝える。
【０１１４】
通信デバイス２９は、ネットワークカードなどにより実現され、無線や有線などによりネットワークを介して接続された他のネットワーク機器とデータをやりとりする。
【０１１５】
図２６の各手段１〜８について、各手段間のデータの授受という観点も含めて、その実現方法を説明する。
【０１１６】
図２６の分割データサイズ取得手段１としてのＣＰＵ２０は、主記憶２５、外部記憶２６、通信デバイス２９などから各分割文書のデータサイズを得る。各分割文書のデータサイズは、文書データ中に既に記述されていたり、文書データを解釈することで得られるとする。各分割文書のデータサイズの形式については、後述するが、例えば図６のような構造が考えられる。
【０１１７】
図２６の指定範囲データサイズ取得手段２としてのＣＰＵ２０による処理は、主記憶２５、外部記憶２６、通信デバイス２９などから処理プログラムを読み込み、指定範囲レイアウト取得手段６からデータ位置、サイズ情報を含んだ指定範囲のレイアウトデータを得て、処理プログラムに従い処理し、割合取得手段３に指定範囲のデータサイズを出力することで行なわれる。出力処理プログラムの中身は、フローチャートなどを元に後述する。
【０１１８】
なお、ＣＰＵやＤＳＰは処理手順をプログラムとして読み込むが、ロジック回路などのように処理手順が回路として組み込まれている場合はプログラムを読み込む必要はなくなる。
【０１１９】
図２６の割合取得手段３としてのＣＰＵ２０による処理は、主記憶２５、外部記憶２６、通信デバイス２９などから処理プログラムを読み込み、指定範囲データサイズ取得手段２から指定範囲のデータサイズを得て、分割データサイズ取得手段１から各分割文書のデータサイズを得て、処理プログラムに従い処理し、割合をスクロールバー表示手段４に渡すことで行なわれる。出力処理プログラムの中身は、フローチャートなどを元に後述する。
【０１２０】
図２６の指定範囲レイアウト取得手段６としてのＣＰＵ２０による処理は、主記憶２５、外部記憶２６、通信デバイス２９などから処理プログラムを読み込み、指定範囲取得手段５から指定範囲を得て、分割データサイズ取得手段１から各分割文書のデータサイズを得て、分割文書レイアウト取得手段８から分割文書のレイアウトを得て、処理プログラムに従い処理し、指定範囲のレイアウトやデータ位置、サイズなどを指定範囲データサイズ取得手段２やレイアウト表示手段７に渡すことで行なわれる。出力処理プログラムの中身は、フローチャートなどを元に後述する。
【０１２１】
図２６のレイアウト表示手段７としてのＣＰＵ２０は、指定範囲の表示要素の出力表現形式を出力先（グラフィックデバイス２１およびモニタ２２、またはプリンタ２３等）に出力する。出力表現形式は用語の説明で説明したように、例えばモニター２２に表示する場合、グラフィックデバイス２１のＶＲＡＭ上に画素データとして書き込まれ、モニタ２２に表示される。一方、例えば印刷の場合には、プリンタ２４に印刷データとして送られ、プリンタ２４ が印刷データを解釈して、用紙に印刷する。ＰＤＦならば、対応する位置に文字を配置するデータをＰＤＦデータとして書き込み、主記憶２５や外部記憶２６、通信デバイス２９などを通じて記録される。
【０１２２】
図２６の指定範囲取得手段５としてのＣＰＵ２０は、指定範囲のデータを主記憶２５、外部記憶２６、通信デバイス２９などから読み取られるプログラムから得たり、ユーザの操作によりマウス２７、キーボード２８、マイク３１などから入力されたデータとして得たり、グラフィックデバイス２１、主記憶２５、外部記憶２６、プリンタ２３、通信デバイス２９からデータとして得たりする。
【０１２３】
例えばモニタ２２上に表示されているウィンドウのサイズを指定範囲の大きさとするならば、ＣＰＵ２０は、主記憶２５上のウィンドウサイズデータを参照したり、ウィンドウサイズ取得ＡＰＩを呼び出すなどして指定範囲の大きさのデータを得る。また印刷ならば、プリンタ２３、あるいは用紙設定が記録された主記憶２５や外部記憶２６上などの用紙設定データをＣＰＵ２０が参照したり、用紙サイズ取得ＡＰＩを呼び出すなどして用紙サイズを得ればよい。
【０１２４】
また、例えばモニタ２２上に表示されているスクロールバー上のスクロールボックスの位置を指定範囲の位置とするならば、ＣＰＵ２０は、主記憶２５上のスクロールボックス位置を参照したり、スクロールバー情報取得ＡＰＩを呼び出すなどして指定範囲の位置のデータを得る。
【０１２５】
図２６のスクロールバー表示手段４としてのＣＰＵ２０は、割合取得手段３から得た指定範囲の割合に応じて、スクロールバーを出力先（グラフィックデバイス２１およびモニタ２２、またはプリンタ２３等）に出力する。出力の実現方法については、レイアウト表示手段７と同様だが、出力する内容はスクロールバーである。
【０１２６】
図２６の分割文書レイアウト取得手段８としてのＣＰＵ２０は、主記憶２５、外部記憶２６、通信デバイス２９などから分割文書のレイアウトデータを得る。レイアウトデータは、ＷＷＷブラウザのレイアウト処理など他のプログラムなどによって既に作成されており、それらの他のプログラムや処理ルーチンを呼び出すことで得られるとする。それらのルーチンなどの内部では、既に作成したレイアウトがあればそれを使い、まだ作成していなかったり、表示設定が変わったりした場合は、作成し直される。レイアウトデータの形式については後述するが、図８のような構造が考えられる。
【０１２７】
図２８は、装置の外観例を示している。本体１２３上に表示手段１２２があるが、これはタブレット機能も兼ねており、ペン１２４によるタブレット操作が可能である。表示手段１２２中に、指定範囲のレイアウトが表示され、またその横にスクロールバー１２０が表示されている。スクロールバー１２０中にスクロールボックス１２１がある。
【０１２８】
ペン１２４によって、スクロールバー１２０をタッチしたり、スクロールボックス１２１をドラッグしたりしてタブレット操作することで、指定範囲を指定できる。表示手段１２２は、図２７では表示機能がグラフィックデバイス２１、モニタ２２など、ペンと合わせたタブレット機能がマウスやキーボードなどの入力操作手段に相当する。
【０１２９】
図３は、本発明の実施の一形態に係るスクロールバー表示制御方法を示すフローチャート図である。
【０１３０】
このフローチャート図では、ユーザーがスクロールバーを使う典型的な操作として、
ユーザーが表示させたい範囲をスクロールボックスを用いて指定し、
指定された範囲を表示し、
表示された範囲に相当するスクロールボックスをスクロールバー上に表示し直す、
までの全体の一連の処理を説明している。（１）、（２）は「スクロールバーによる制御」、（３）は「スクロールバーの表示」に主に相当する。
【０１３１】
まず、これらの処理の概要を一通り説明する。各処理の詳細は後で述べる。
【０１３２】
まず、ステップＳ１０（以下、「ステップＳ」を「Ｓ」と略記する）で、指定範囲取得手段５が、前述したように指定範囲を得て、連結点Ｐ１０（以下、「連結点Ｐ」を「Ｐ」と略記する）を経て、Ｓ１１へ進む。
【０１３３】
「指定範囲」については、言葉の説明で上述した通りである。例えば、指定範囲は、スクロールバーや全体縮小表示における範囲指定操作などを使って、ユーザーから指示されたとする。スクロールバーによる範囲指定操作は、先に「指定範囲」の定義に関連して説明した通りである。
【０１３４】
スクロールバーから得られる範囲は、文書全体に対する割合として得られるとする。
【０１３５】
指定範囲のサイズに関しては、スクロールボックスで指定されるサイズの割合でも良いのだが、本発明をスクロールバーと共に用いた場合、表示手段の表示画面のドットサイズを使う方がユーザーにとって自然だと思われるので、その値を使うとしておく。表示手段の表示画面のドットサイズは、この場合、表示されているコンテンツの部分のレイアウトサイズと常に同じである。
【０１３６】
一般にスクロールボックスは、「表示されているコンテンツの部分のレイアウト」に対応し、その位置とサイズは、「表示されているコンテンツの部分のレイアウト」の全レイアウト上での位置とサイズで決まる。「表示されているコンテンツの部分のレイアウト」サイズも、全レイアウトのサイズも、コンテンツ全てをレイアウトすれば値は決まるので、スクロールボックスの位置をスクロールバー上でいくら移動させても、スクロールボックスのサイズ（およびスクロールバー上でのサイズの割合）は通常、固定である。
【０１３７】
詳しくは後で説明するが、本実施例では、全レイアウトサイズを求めずに、「表示されているコンテンツの部分のレイアウト」の全レイアウト上での位置とサイズを、各種データサイズから推測する。推測なので、スクロールボックスのサイズ（およびそのサイズの割合）は、表示する範囲によって多少変わってくることがある。従って、以前のスクロールボックスのサイズ（およびそのサイズの割合）に相当する部分のコンテンツを表示させようとすると、そのレイアウトサイズは、表示手段の表示画面のドットサイズと一致しない場合が出てくる。その場合、表示に欠けができたり、表示しきれない部分が出てくるかもしれない。これはユーザーにとっては不自然な表示結果となってしまう。
【０１３８】
従って、ここでは指定範囲を、スクロールボックスのサイズで指定するのではなく、表示手段の表示画面のドットサイズで指定するとした方が、ユーザーにとって違和感が少なく、望ましい。
【０１３９】
なお、指定範囲の外形は矩形としておくが、矩形でなくても原理的にここで説明するのと同様の方法を適用できる。
【０１４０】
Ｓ１０は、先に説明した「（１）ユーザーがスクロールボックスで、表示する範囲を指定する」に相当する。
【０１４１】
Ｓ１１では、指定範囲レイアウト取得手段６が、Ｓ１０で得た指定範囲のレイアウトを本発明の特徴的な方法に従って得て、Ｐ２０を経て、Ｓ１２へ進む。ここでの処理の詳細に関しては、後で図５を参照して説明する。
【０１４２】
Ｓ１２では、レイアウト表示手段７が、Ｓ１１で得た指定範囲のレイアウトを表示して、Ｐ３０を経て、Ｓ１３へ進む。
【０１４３】
指定範囲のレイアウトの取得に関しては、後で図１１などの説明で出てくるが、レイアウトの上限と下限の表示要素が得られるので、その間の表示要素が指定範囲のレイアウトの表示要素となる。
【０１４４】
表示の仕方は、本発明の主旨ではないので詳しくは説明しないが、レイアウトされた文書中での各表示要素の位置とサイズ、外形、表示倍率などに従い、各表示要素の表示表現形態を表示する。表示要素の位置はレイアウト座標系での値なので、表示する際は、通常は表示手段原点からの表示座標系に変換して表示する。
【０１４５】
図４は、図１の文書全体のレイアウト１１０から表示範囲（指定範囲）１１１の表示要素を抜き出してきて、表示手段１２２に表示した例である。レイアウト１１０中の表示要素はレイアウト１１０の左上隅を原点とし、右方向を＋Ｘ方向、下方向を＋Ｙ方向とする座標系で表されるとする。表示範囲１１１の開始位置の座標値を各表示要素の位置の座標値から引算することで、表示手段１２２の左上を原点とした表示座標系に変換され、表示手段１２２の範囲に収まったものだけが表示される。
【０１４６】
Ｓ１１、Ｓ１２は、先に説明した「（２）指定された範囲を表示する」処理に相当する。
【０１４７】
Ｓ１３では、割合取得手段３が、指定範囲に基づく表示範囲の全文書内の位置と割合を本発明の特徴的な方法に従って計算して、Ｐ４０を経て、Ｓ１４へ進む。ここでの処理の詳細に関しては、後で図１４、図１９を参照して説明する。
【０１４８】
なお、Ｓ１０の説明で述べた通り、指定範囲の位置は全文書内の割合で指定されるが、サイズは表示サイズ（例えばドットサイズ）で指定される。もし、サイズも全文書内割合で指定するのならば、Ｓ１３では特に計算する必要はなく、割合で指定された位置とサイズをそのまま使えば良い。
【０１４９】
Ｓ１４では、スクロールバー表示手段４が、Ｓ１３で得た全文書内の位置とサイズを得て、スクロールバー１２０を表示して、処理を終了する。
【０１５０】
図４では、スクロールバー１２０上に表示範囲１１１の位置と大きさを示すスクロールボックス１２１が黒く示されている。
【０１５１】
Ｓ１３、Ｓ１４は、先に説明した「（３）表示された範囲に相当するスクロールボックスをスクロールバー上に表示する」処理に相当する。
【０１５２】
以上の処理によって、先に説明した番号に則して言えば、（１）ユーザーがスクロールバーなどを操作して指定した指定範囲について、（２）指定範囲に相当する部分のレイアウトを表示し、さらに（３）指定範囲に応じたスクロールバーが表示されることになる。
【０１５３】
一般に、コンテンツを見ようとした場合、（１）から（３）の操作を繰り返して様々な場所を見ることになる。（１）のスクロールバーの代わりに、キーボードやマウスなどを使って次に表示する範囲を指定する場合もある。例えば、ＷＷＷブラウザではスペースキーを押すと、次の１ページ分が表示指定されたことになる。なお、この繰り返し処理はコンテンツを見るだけに限らず、編集などの操作、処理が間に挟まれることもある。
【０１５４】
図５は、本発明の表示制御方法の特徴である図３のＳ１１の処理の詳細を示すフローチャート図である。
【０１５５】
処理を具体的に説明する為、図３のＳ１０で得られた指定範囲の位置が０．５、サイズが指定位置を中心に上下１００ドット（合わせて２００ドット）としておく。
【０１５６】
まず、Ｐ１０を経てＳ２０へ進み、指定範囲レイアウト取得手段６が、分割データサイズ取得手段１から各分割文書のデータサイズを得て、Ｓ２１へ進む。
【０１５７】
各分割文書は予め作成しておく。すなわち、コンテンツをどう分割するかを予め決め、どう分割したかの情報をデータとして記録しておく。例えば後で説明する図６の「データサイズ」の項の値の配列のように記録しておけばよい。これはコンテンツデータと別にファイルなどとして記録メディア上などに記録してもよいし、コンテンツデータの一部としてヘッダ情報などの形で記録しておいてもよい。
【０１５８】
各分割文書のデータサイズは、先に説明した「どう分割したかの情報」などから得られる。各分割文書のレイアウトサイズは、可変レイアウトの場合、文字の大きさの設定などによって変わるが、各分割文書のデータサイズは、可変レイアウトであっても変わることはない。本発明でスクロールバーによる制御や表示を高速に行うことが可能となる理由の一つは、データサイズを予め求めておくことができるためである。
【０１５９】
図６は、取得した各分割文書のデータサイズの例である。各分割文書のデータサイズ７０〜７５は値の配列として得られるとする。その下にデータサイズ７０〜７５の和「６０４」も示してある。データサイズ比８０〜８５は、データサイズ７０〜７５の和を１．００とした時の比率である。データサイズ７０〜７５の総和は６０４なので、例えばデータサイズ比８０は、１２６／６０４＝０．２１（以降、説明の為、小数点第３位を四捨五入）で得られる。累積データサイズ比９０〜９６は、データサイズ比８０〜８５の累積値である（なお、累積誤差を少なくする為、図６の値は、四捨五入された８０〜８５の和ではなく、データサイズの和から比率を計算している。そのため、データサイズ比の和と一致しない部分が一部ある）。最初の０．００と最後の１．００も含めてある。データサイズ７０〜７５、データサイズ比８０〜８５、累積データサイズ比９０〜９６は０から始まるインデックス番号によってアクセス可能とする。
【０１６０】
なお、各分割文書の分割の仕方について簡単に説明しておく。分割の仕方に決まりはないが、表示上、区切りの良い意味単位で分割する方が一般によい。区切りの良い意味単位とは、文字単位などは当然として、ここでは「改行」や「段落」などのもう少し大きな意味単位である。
【０１６１】
例えば、図２の例では、改行となる「＜ＢＲ／＞」や「＜Ｐ／＞」の後で分割している所が多い。これは後で説明するようにレイアウトを分割文書単位で行う場合などに、各分割文書のレイアウトが改行などの区切りの良い単位でまとまっていた方が、それぞれの分割文書で独立してレイアウトすることができる利点が出てくるからである。
【０１６２】
例えば、図１のレイアウト結果を見ると分かるように、図２の分割文書データ５０のレイアウト結果は「＜ＢＲ／＞」が最後にあるので「視野が狭い」の行で終わり、分割文書データ５１のレイアウト結果は次の行の行頭から「  人間の視野は」で始まる。行が分かれているので、表示する時は単にそれぞれの行を並べて表示すればよい。従って、分割文書データ５１、分割文書データ５０の順でレイアウトを作成しても問題ない。
【０１６３】
もし区切りの良く無い部分で分割してしまうと、その部分が連続されるように同じ行にレイアウトしないといけない。例えば、図２の分割文書データ５４のレイアウト結果は「機能は」で終わるが、「＜ＢＲ／＞」や「＜Ｐ／＞」で終わっていないので、ここでは改行されない。従って、続く分割文書データ５５のレイアウト結果は、「機能は」の行に続けて、「人間の視野と」となる。この結果、分割文書データ５４と分割文書データ５５とで、レイアウト結果の行が同一行にだぶることになる。
【０１６４】
このため、分割文書データ５４、分割文書データ５５の順にレイアウトするのならばよいが、分割文書データ５５、分割文書データ５４の順に独立してレイアウトしてしまうと、「機能は」の部分が行末にレイアウトされるとは限らず、行の途中にレイアウトされてしまうと、その後に妙な空白部分が続いてしまう。そして次の行の行頭は「人間の視野と」となってしまう。これでは文章としてのつながりがなくなってしまう。
【０１６５】
それを回避する為には、例えば、分割文書データ５５のレイアウトを一旦破棄して、分割文書データ５４、分割文書データ５５の順に作成し直すなどの処置が必要となる。これは非常に無駄な処理となってしまう。
【０１６６】
従って、文書の分割は、分割文書データ５０〜５３のように、改行などの区切りの良い部分で行うようにした方がよい。
【０１６７】
また、各分割文書のデータサイズやレイアウトサイズの大きさは、大きすぎても小さすぎてもよくない。レイアウトを作成する単位を分割文書とすると、あまり大きな分割文書はレイアウトにかかる時間が大きくなってしまう。逆に小さすぎると、分割文書のデータサイズを記録する部分が多くなり、（レイアウトにかかる時間に比べれば通常たいしたことはないが）割合の計算も多少増えてしまう。
【０１６８】
また、あまり細かくしようとしても、改行などのきりの良い所で分割できるとは限らない。分割量の１つの基準としては、標準的な表示設定で１画面に表示されるコンテンツ量が考えられる。例えば、この０．５〜２倍程度に収まる程度にするとよい。
【０１６９】
また、各分割文書の分割は、各分割文書のデータサイズやレイアウトサイズに大きな差が出ないようにした方が一般によい。これはレイアウトにかかる時間に大きな差が出てしまうのを防ぐ意味もある。
【０１７０】
なお、コンテンツデータが圧縮や暗号化されている場合、各分割文書単位で展開や復号できるようにしておくと、分割文書単位でのレイアウトにかかる時間を小さくすることができるようになる利点が出てくる。
【０１７１】
Ｓ２１では、指定範囲レイアウト取得手段６が、指定位置の分割文書を同定して、Ｓ２２へ進む。
【０１７２】
指定位置を図６の累積データサイズ比９０〜９６と比較して、指定位置がどの区間に入るかを調べれば、指定位置がどの分割文書内に位置するかが得られる。例では指定位置が０．５なので、累積データサイズ比９２の値０．３４と９３の値０．５３の間に位置することが分かる。この区間はデータサイズ比８２、データサイズ７２に相当するので、指定範囲の分割文書には、少なくとも３番目の分割文書データ５２が含まれることが分かる。
【０１７３】
図７は、この状態を示したもので、分割文書データ５０〜５５は、データサイズ７０〜７５に概ね比例した高さで表現されている。指定中心位置は０．５であり、これが３番目の分割文書データ５２内に含まれることが示されている。
【０１７４】
Ｓ２２では、分割文書レイアウト取得手段８が、指定位置が含まれる分割文書のレイアウトを得て、Ｐ１１を経てＳ２３へ進む。指定位置が含まれる分割文書については、指定範囲レイアウト取得手段６から指定される。
【０１７５】
この例では、分割文書レイアウト取得手段８が、分割文書データ５２のレイアウトを得ることになる。もし、分割文書データ５２のレイアウトデータが主記憶２５や外部記憶２６、他の機器上などにキャッシュデータなどとして蓄積されているならそれをそのまま使えばよい。もし蓄積されていないのならば、分割文書データ５２を読み込んで、レイアウトを作成すればよい。
【０１７６】
図８は、レイアウトされた表示要素データのデータ構造例である。ここでは、文書データがＨＴＭＬ形式で、
「＜ＨＴＭＬ＞あいう＜ＢＲ／＞＜ＩＭＧ  ＳＲＣ＝“ｉｍｇ．ｐｎｇ”／＞＜ＢＲ／＞え＜／ＨＴＭＬ＞」
と記述されている時に、ＷＷＷブラウザなどによってレイアウトされた結果得られたレイアウトデータ例を示している。なお、レイアウト方法自体は、本発明の主旨ではないので、詳細は省略する。ＷＷＷブラウザでなくても、レイアウト処理によって図８のようなデータが得られるのならば、ワードプロセッサでも何でも良い。
【０１７７】
表示要素４０〜４４の各行は図８の様に、データ開始位置、データサイズ、レイアウトＸ位置、レイアウトＹ位置、レイアウト幅、レイアウト高さ、表示データの情報を持っているとする。
【０１７８】
データ開始位置は、この表示要素が文書データ中に記述される最初のデータ位置を意味する。最初の表示要素４０は、ＨＴＭＬデータの最初の「あ」の文字に相当し、７バイト目なので０から始まるとしてデータ開始位置を「６」としている。また、全角文字が２バイトで表現されているとすると、データサイズは「２」、レイアウトＸ，Ｙ位置は原点とすると「０」、大きさは文字サイズが１４ドットとして「１４」、表示データとして文字「あ」の文字コードとなる。実際はこの表示データが「文字」であることを何らかの識別子で示す必要があるが、表示要素の表示の仕方自体は本発明の主旨ではないので、ここでは省略して「あ」という文字が表示できるだけの情報を表しているとする。
【０１７９】
同様に、表示要素４１〜４４も図８のようになる。表示要素４３は「＜ＩＭＧ…／＞」で表される画像要素の例で、画像の大きさ（レイアウトサイズ）は５０ドット×１００ドットで、表示データは画像ファイル名「ｉｍｇ．ｐｎｇ」となっている。
【０１８０】
Ｓ２３では、指定範囲レイアウト取得手段６が、指定範囲で指定されたサイズだけのレイアウトが確保できたかどうかを判断して、必要なら周囲の分割文書データのレイアウトを分割文書レイアウト取得手段８から取得して、Ｐ１５を経て、Ｓ２４へ進む。ここでの処理の詳細に関しては、後で図９を参照して説明する。
【０１８１】
Ｓ２４では、指定範囲レイアウト取得手段６が、指定範囲の表示要素を取得して、Ｐ２０へ抜ける。ここでの処理の詳細に関しては、後で図１１を参照して説明する。
【０１８２】
以上の処理によって、図３のＳ１１の処理が行われ、指定範囲のレイアウトが得られる。
【０１８３】
図９は、図５のＳ２３の処理の詳細を示すフローチャート図である。
【０１８４】
なお、この例では上下方向のスクロールバーを想定していて、下のレイアウトほど先の文書内容になっているとしておく。その為、以降の説明では、先の内容のレイアウトに関して、「下」という表現をすることにし、指定範囲やレイアウトに関しても、主に上下方向（図８のレイアウトＹ位置）に関して説明する。
【０１８５】
Ｐ１１からＳ３０へ進み、指定範囲レイアウト取得手段６が、現在、分割文書レイアウト取得手段８から取得済みのレイアウトに関して、指定範囲と比べて上の部分のレイアウトが足りないかどうかを判断し、足りない場合はＰ１２を経てＳ３１へ進み、足りている場合はＰ１３を経てＳ３２へ進む。
【０１８６】
図１０は、この判断をする為に使うデータの例であり、主記憶２５、外部記憶２６、または他の機器上に蓄積されている。開始分割文書インデックス１００は、既にレイアウトを取得している分割文書データの最初のインデックス番号である。同様に終了分割文書インデックス１０１は、既にレイアウトを取得している分割文書データの最後のインデックス番号である。ここでは３番目の分割文書データしかレイアウトしておらず、また１番目の分割文書データのインデックス番号を前述のように０とするので、どちらも「２」となっている。
【０１８７】
指定位置データ位置１０２は、指定位置が文書のデータサイズでどの位置を示しているかを表す。これは全データサイズと指定位置（割合）を掛ければ算出される。算出した値をそのまま使っても良いし、その値を含むあるいは最も近いデータ範囲を持つ表示要素のデータ開始位置（あるいはそれプラス（表示要素データサイズ／２））を探して、その値を使っても良い。
【０１８８】
図６の例では、中心位置（指定位置）０．５は、
（全分割文書データサイズの和）×（指定位置割合）
＝６０４×０．５＝３０２
より、３０２バイト目となる。図２の分割文書データ５２では、「レンジ」の「ジ」に当たる。図１の表示範囲１１１で、この指定位置を中心の○印で表している。
【０１８９】
上側レイアウトサイズ１０３、下側レイアウトサイズ１０４は、指定位置データ位置１０２（を含む行の中心）の上下にどれだけの大きさ、レイアウトされているかを意味する。ここでは図１０の開始分割文書インデックス、終了分割文書インデックスが２なので、図２の分割文書５２だけがレイアウトされている状態である。全文書レイアウトを示す図１より、分割文書５２のレイアウトは「  人間は」（先頭は全角スペース）から「低い」までの５行分である。１行の高さを１６ドット（文字１４ドット＋行間２ドット）として、「ジ」の行中心で分けて考えると、上に
（４．５行分のレイアウト）＝１６×４．５＝７２ドット
下に
（０．５行分のレイアウト）＝１６×０．５＝８ドット
となっている。なお、「４．５」、「０．５」は、「指定位置データ位置１０２を含む行の中心」で処理している為、その行を上下に０．５行分ずつ分けた為である。
【０１９０】
なお図１０の夫々の値は、各分割文書のレイアウトを得る度に更新しておくとする。
【０１９１】
この例では、指定範囲の大きさが指定位置を中心に上下１００ドットなので、上側レイアウトサイズ１０３の７２ドットと比べると足りないので、指定範囲レイアウト取得手段６は上側レイアウトが足りないと判断する。
【０１９２】
Ｓ３１では、指定範囲レイアウト取得手段６が、上の分割文書データ５１のレイアウトを分割文書レイアウト取得手段８から取得して、Ｐ１３を経て、Ｓ３２へ進む。ここでの処理の詳細に関しては、後で図１２を参照して説明する。
【０１９３】
Ｓ３２では、指定範囲レイアウト取得手段６が、現在取得したレイアウトに関して、指定範囲と比べて下の部分のレイアウトが足りないかどうかを判断し、足りない場合はＳ３３へ進み、足りている場合はＰ１５へ抜ける。ここでの処理は、Ｓ３０の上側レイアウトに関する処理と同様なので、説明は省略する。
【０１９４】
Ｓ３３では、指定範囲レイアウト取得手段６が、下の分割文書データのレイアウトを分割文書レイアウト取得手段８から取得して、Ｐ１５へ抜ける。ここでの処理も、Ｓ３１の上側レイアウトに関する処理と同様なので、説明は省略する。
【０１９５】
以上の処理によって、図５のＳ２３の処理が行われ、指定範囲のレイアウトが得られる。
【０１９６】
図１２は、図９のＳ３１の処理の詳細を示すフローチャート図である。
【０１９７】
Ｐ１２からＳ４０へ進み、指定範囲レイアウト取得手段６が、上側に不足するレイアウト量を求めて、Ｓ４１へ進む。
【０１９８】
これは、指定範囲の上側サイズから図１０の上側レイアウトサイズ１０３を引算すればよい。図１０の場合、１００−７２＝２８ドットという値が得られる。
【０１９９】
Ｓ４１では、指定範囲レイアウト取得手段６が、Ｓ４０で得られた上側の不足レイアウト量が０かどうかを判断し、０の場合はＰ１３へ抜け、０で無い場合はＳ４２へ進む。
【０２００】
Ｓ４２では、指定範囲レイアウト取得手段６が、上の分割文書があるかどうかを判断し、ある場合はＳ４３へ進み、無い場合はＰ１３へ抜ける。
【０２０１】
上の分割文書があるかどうかは、図１０の開始分割文書インデックス１００が０でないかどうかを見れば良い。なお、先にＳ３３の説明で、上側レイアウトに関する処理と同様と説明したが、Ｓ４２での処理のみ、下の分割文書が存在するかどうかの判断が、終了分割文書インデックス１０１が（分割文書数−１）でないかどうかによる所が異なる。
【０２０２】
Ｓ４３では、指定範囲レイアウト取得手段６が、上の分割文書のレイアウトを分割文書レイアウト取得手段８から取得して、図１０のデータを更新し、Ｓ４０へ進む。
【０２０３】
以上の処理によって、図９のＳ３１の処理が行われる。
【０２０４】
この例では、分割文書データ５１をさらに読み込むことで、図１より、
（３行分のレイアウト）＝１６×３＝４８ドット
が上に追加されるので、
（上側レイアウトサイズ１０３）＝７２＋４８＝１２０ドット  ＞  指定１００ドット
となるので、上のレイアウトの読み込みはこれで十分である。この場合、開始分割文書インデックス１００は１に更新されると共に、上側レイアウトサイズ１０３は、７２から上限の１００に更新される。
【０２０５】
下は、分割文書データ５３を読み込むことで
（８行分のレイアウト）＝１６×８＝１２８ドット
が下に追加されるので、
（下側レイアウトサイズ１０４）＝８＋１２８＝１３６ドット  ＞  指定１００ドット
となるので、下のレイアウトの読み込みもこれで十分である。この場合、終了分割文書インデックス１０１は３に更新されると共に、下側レイアウトサイズ１０４は、８から下限の１００に更新される。
【０２０６】
図１１は、図５のＳ２４の処理の詳細を示すフローチャート図である。
【０２０７】
Ｐ１５からＳ７０へ進み、指定範囲レイアウト取得手段６が、上限の表示要素を取得して、Ｐ１６を経て、Ｓ７１へ進む。ここでの処理の詳細に関しては、後で図１３を参照して説明する。
【０２０８】
Ｓ７１では、同手段６が、下限の表示要素を取得して、Ｐ２０へ抜ける。ここでの処理は、Ｓ７０の処理と同様なので、説明は省略する。
【０２０９】
以上の処理によって、図５のＳ２４の処理が行われる。
【０２１０】
図１３は、図１１のＳ７０の処理の詳細を示すフローチャート図である。
【０２１１】
Ｐ１５からＳ８０へ進み、指定範囲レイアウト取得手段６が、指定位置の表示要素をカレント要素に設定して、Ｓ８１へ進む。指定位置の表示要素は、図１０の指定位置データ位置１０２を含む、あるいは最も近いデータ範囲を持つ表示要素を探せば良い。探すには指定位置を含む分割文書のレイアウトデータを順に見ていけば良い。
【０２１２】
Ｓ８１では、同手段６が、カレント要素の前の表示要素を得て、Ｓ８２へ進む。
【０２１３】
Ｓ８２では、同手段６が、指定位置の表示要素からＳ８１で得た表示要素までのレイアウトサイズが、図１０の上側レイアウトサイズ１０３を超えたかどうかを判断し、超えた場合はＳ８３へ進み、超えない場合はＳ８４へ進む。指定位置の表示要素からＳ８１で得た表示要素までのレイアウトサイズを求めるには、カレント要素のレイアウトＹ位置（図８）と、Ｓ８１で得たカレント要素の前の表示要素のレイアウトＹ位置の差分を取れば良い。
【０２１４】
Ｓ８３では、同手段６が、カレント要素を上限の表示要素として、Ｐ１６へ抜ける。
【０２１５】
Ｓ８４では、同手段６が、上の表示要素をカレント要素として、Ｓ８１へ戻る。
【０２１６】
以上の処理によって、図１１のＳ７０の処理が行われる。
【０２１７】
図１４は、本発明の表示制御方法の特徴である図３のＳ１３の処理の詳細を示すフローチャート図である。
【０２１８】
Ｐ３０からＳ５０へ進み、指定範囲データサイズ取得手段２が、指定範囲のデータサイズＳＤを取得し、割合取得手段３に与えて、Ｓ５１へ進む。
【０２１９】
図３のＳ１１で指定範囲の表示要素を取得したが、指定範囲のデータサイズはその時に同時に得ることができる。図５、図１１、図１３などを使って説明した通り、指定範囲の最初と最後の表示要素を得ることができる。表示要素は図８の通り、データ開始位置やデータサイズの属性を持っているので、最後の表示要素の（データ開始位置＋データサイズ）から最初の表示要素のデータ開始位置を引けば、指定範囲のデータサイズを得ることができる。
【０２２０】
例として、ここでは指定範囲の位置として、図１の上から１２行目の「ジが低い」の行（以下、指定行と呼ぶ）を中心として上下１００ドットなので、上下６．２５行分（＝１００／１６）の指定範囲のデータサイズを求める。「ジが低い」の指定行の中心から６．２５行分上は、図１の上から６行目の「度以上に達する」の行の中心（ここまでで指定行の中心から６行分）からさらに０．２５行分上まで含んだ範囲となるので、同じ「度以上に達する」の行の下側０．７５行分までが指定範囲に含まれる。下側０．７５行分は１２ドット（＝１６×０．７５）である。
【０２２１】
同様に、指定行の下側は、上から１８行目の「  人間は本来並列的に」の行の中心（ここまでで指定行の中心から６行分）からさらに０．２５行分下まで含んだ範囲となるので、同じ「  人間は本来並列的に」の行の上側０．７５行分（＝１２ドット分）までとなる。
【０２２２】
これら表示範囲の上限および下限によって途中で切れる行を表示に含めるかどうかで判断が分かれるが、ここでは表示に含めるとして考える。従って、上から６行目の最初から１８行目の最後までがデータサイズを求める範囲だとする。
【０２２３】
すると、最初の表示要素は、上から６行目の最初の文字「度」となり、分割文書データ５１内の１１番目の文字「度」にあたるので、図８のようなデータ構造からデータ開始位置を得れば良い。本来はレイアウト作成時に同時にデータ開始位置を得られるはずだが、ここでは説明の為、最初の表示要素のデータ開始位置を計算で求めてみると、
（分割文書データ内の開始バイト位置）＝（１１文字分のバイト数）＝１１×２＝２２バイト
より、データ開始位置は、
（前の分割文書データサイズ）＋（分割文書データ内の開始バイト位置）＝１２６＋２２＝１４８バイト
となる。
【０２２４】
最後の表示要素のデータ開始位置も同様に計算で求めてみると、最後の表示要素は４番目の分割文書データ５３内に含まれ、ここでは、「並列的に」の「に」にあたる。そこで、分割文書データ５３内の開始バイト位置は、「に」の後の１８文字分などを引いて求めると、
（分割文書データサイズ）−（（１８文字分のバイト数）＋（「＜ＢＲ／＞」のバイト数）＋（「＜Ｐ／＞」のバイト数）＋（改行コードのバイト数））＝１６１−（１８×２＋５＋４＋１）＝１１５
となる。この結果、最後の表示要素のデータ開始位置は、
（前の分割文書データサイズ）＋（分割文書データ内の開始バイト位置）＝（１２６＋７７＋１１７）＋１１５＝４３５バイト
となる。
【０２２５】
すると、指定範囲のデータサイズＳＤは、（（最後の表示要素のデータ開始位置）＋（最後の表示要素のデータサイズ））−（最初の表示要素のデータ開始位置）の演算によって求まるから、
４３５＋２−１４８＝２８９
となる。
【０２２６】
Ｓ５１では、割合取得手段３が、分割データサイズ取得手段１から全文書のデータサイズＡＤを取得して、Ｓ５２へ進む。
【０２２７】
全文書のデータサイズは各分割文書のデータサイズの和だから、ここではＡＤは、図６にも示すとおり６０４となる。あるいは別途、全文書のデータサイズがどこかに記録されていたり、ファイルシステムなどの記録手段から得られるならばそれを使っても良い。
【０２２８】
Ｓ５２では、割合取得手段３が、Ｓ５０で得た指定範囲のデータサイズＳＤとＳ５１で得た全文書のデータサイズＡＤとから指定範囲の割合を算出して、Ｐ４０へ抜ける。
【０２２９】
例えば、単純に指定範囲のデータサイズＳＤを全文書のデータサイズＡＤで割れば指定範囲の大きさの割合が得られる。ここでは、２８９／６０４＝０．４８となる。
【０２３０】
これによって、図７の指定範囲データサイズＳＤが全文書データサイズＡＤの４８％の大きさだということが分かり、図４では、スクロールボックス１２１が、スクロールバー１２０の４８％の大きさ、中心位置５０％で表示されている。
【０２３１】
以上の処理によって、図３のＳ１３の処理が行われる。
【０２３２】
以上、説明してきた方法により、文書を複数の部分に分割した時のデータサイズと、指定範囲の位置およびデータサイズとから、文書中に指定範囲が占める位置およびデータサイズの各割合を得ることができる。
【０２３３】
また、指定範囲のレイアウトを表示して、得られた位置と割合でスクロールバーを表示することで、指定範囲に応じたスクロールバーを表示することができるようになる。
【０２３４】
さらに、スクロールバー上で指定範囲の位置を指定することで、ユーザーのスクロールバー操作に応じて表示範囲を制御することができるようになる。
【０２３５】
一般に、スクロールバーは表示範囲とレイアウトサイズとが、全文書のレイアウトサイズ中に占める割合に基づいて表示されたり、制御されたりしている。その割合を求めるには、本来、表示範囲と全文書とに関するレイアウトサイズが必要である。レイアウトサイズを高速に得るには予め計算しておくなどの方法が考えられるが、可変レイアウトの場合は表示手段の表示サイズや表示時のレイアウト設定などによってレイアウトサイズが変わってしまう為、予め計算しておくことはできない。
【０２３６】
全文書のレイアウトサイズを求めずに表示範囲のレイアウト割合を真に正確に求めるのは難しいが、ある程度の精度で「推定」（この言葉の意味については後で説明する）することはできる。そこで、本実施の形態では、指定範囲の表示レイアウトとデータサイズとを得る為に、必要最小限の分割文書だけレイアウトし（図３のＳ１１）、それ以外の分割文書はレイアウトを求めていない。そして、指定範囲のデータサイズからレイアウト割合を推定している（図３のＳ１３、特に図１４のＳ５０〜５２）。
【０２３７】
これによって、可変レイアウトの集まりからなる文書であっても、文書全てをレイアウトするのに比べて高速に指定範囲の割合を得ることができる効果が出てくる。また割合を計算する為に全てのレイアウトを保持する必要もないので、少ないメモリ環境などでも処理できる効果が出てくる。
【０２３８】
なお、「推定」という言葉は、データサイズを使って求める割合が誤っていることを意味するものではない。例えば、データサイズを使って求める位置の割合もレイアウトサイズだけを使って求める位置の割合も、どちらも指定範囲の位置が上下すればそれに応じて求められる割合も上下する。従って、位置の割合を求めるどちらの方法を使ってもスクロールバーとしての基本的な機能は満たす。
【０２３９】
ただし、レイアウトサイズだけを使って求める割合は、指定範囲の位置の変化量と割合の変化量の比は一定の値になるが、データサイズを使って求める割合の場合、その比は一定とは限らず、指定範囲の位置によってその比は多少変動する。
【０２４０】
比が一定であるかどうかがどう違うか分かり易い例で説明すると、レイアウトサイズだけを使って求める割合の場合、ユーザーが表示範囲を一定の速度でスクロールさせると、表示範囲の文書中での位置を示すスクロールボックスもそれに応じて徐々に位置が変わり、その時のスクロールボックスの移動速度も一定となる。しかし、データサイズを使って求める割合の場合、ユーザーが表示範囲を一定の速度でスクロールさせると、表示範囲を示すスクロールボックスもそれに応じて徐々に位置が変わるが、スクロールボックスの移動速度は一定とはならず、場所によって、多少速くなったり遅くなったりする。
【０２４１】
また、スクロールボックスの大きさも、レイアウトサイズだけを使って求める割合の場合は一定の大きさだが、データサイズを使って求める割合の場合はスクロールボックスの位置によって大きさが多少変化する。スクロールボックスの移動速度や大きさの多少の変化は、スクロールバーとして使用するには大きな問題とはならないが、多少違和感が感じられるかもしれない。
【０２４２】
文書の表示などを行うアプリケーションでは、普通、スクロールバーはレイアウトサイズだけを使って求められており、ユーザーもそのことに慣れている。従って、ユーザーに違和感を抱かせないようにするならば、レイアウトサイズだけを使って求める割合が「理想」であって、データサイズを使って求める割合はその理想の値にできるだけ近いことが望まれる。理想の値にできるだけ近い値を求めたいという意味で、データサイズを使って割合を求めることを「推定」と呼んでいる。後で出てくる「誤差」という言葉も、同様の考え方で、理想の値とデータサイズを使って求めた値との差を「誤差」、「推定誤差」などと呼んでいる。
【０２４３】
なお、説明の為、レイアウトサイズだけを使って割合を求める場合を「レイアウトサイズベース」、データサイズを使って割合を求める場合を「データサイズベース」と以降、呼ぶことがある。
【０２４４】
ちなみに「誤差」を計算してみると、図４の例では指定範囲の大きさが２００ドットで、レイアウト全体のドット単位の大きさが
（２７行分の高さ）＝１６×２７＝４３２ドットなので、全ての分割文書でレイアウトを求めた際のドット単位による理想的な表示範囲の大きさの割合は、２００／４３２＝０．４６より、実際のレイアウトによる指定範囲は４６％の大きさとなる。バイト単位でのデータサイズによる推定では、前記のように４８％の大きさなので、推定誤差２％となっている。
【０２４５】
また、推定した中心位置（１２行目の中心なので、１１．５行分の位置）のレイアウト上の位置は、
（１１．５行分の高さ）/４３２＝（１６＊１１．５）/４３２＝０．４３
より、４３％の位置になっている。レイアウトサイズベースでは、指定範囲の中心位置は５０％なので、推定誤差７％となっている。これを表しているのが図１の表示範囲１１１（データサイズベース）と表示範囲１１３（レイアウトサイズベース）であり、表示範囲の中心の○がそれぞれの指定位置を示す。表示範囲１１３はレイアウト上の理想的な指定位置であり、ここで推定して求めた表示範囲１１１の指定位置とずれている。
【０２４６】
なお、図１４のＳ５０の説明では指定範囲が指定位置と表示サイズとで指定されるケースを説明する為、指定範囲のレイアウトを利用しているが、指定範囲の大きさとして表示サイズでなくデータサイズが指定されるのならば、レイアウトからデータサイズを求める必要はなく、そのまま指定されたデータサイズを使えば良いのでより簡単な処理になる。さらに、指定範囲のレイアウトを表示するのではなく、スクロールバーだけを表示するなど、単に割合を得るだけで良いならもっと簡単な処理になり、レイアウトを得る必要もなくなってくる。
【０２４７】
図６では、分割文書のデータサイズとしてバイト数を使ったが、他の単位を使う方法も考えられる。例えば意味単位である。
【０２４８】
例えば、意味単位として文字数を使った方法について説明する。データ中には、文字の色などの指定やコメントなど、必ずしもレイアウト位置やサイズに直接関係ない情報が含まれていることもある。実際にレイアウトされる文字数を予め勘定しておくことで、バイト数よりレイアウトサイズに近い値が得られる場合も出てくる効果がある。
【０２４９】
文字数の数え方は、例えばＨＴＭＬのタグなどの表示に直接現れない制御文字列をどう扱うか、全角文字を半角文字２つ分とするかどうか、など色々考えられる。図１５は、図２の分割文書データを文字数で数えたデータサイズ例を示している。データサイズ１７０〜１７５は、ＨＴＭＬのタグなどの制御文字を全て無視し、全角は半角２つ分として、半角文字数で数えることにより求められている。
【０２５０】
図６と比較すると、データサイズ１７０〜１７５が変わったことに伴って、データサイズ比１８０〜１８５および累積データサイズ比１９０〜１９６も変わっていることがわかる。図１５では、指定範囲の中心位置０．５が累積データサイズ比１９２と累積データサイズ比１９３の境界に来ているので、表示中心となる表示要素が、図６のデータを基に処理する場合と多少前後する。
【０２５１】
元とするデータが図１５のものとなる以外は図６の処理と一緒なので詳細な計算過程は省くが、指定範囲の中心位置は、累積データサイズ比１９２と累積データサイズ比１９３の境界に来ているので、分割文書データ５３の最初の文字「  」（全角スペース）とする。これは図１では上から１３行目の先頭文字であり、中心位置は１２．５行目の位置となる。
【０２５２】
レイアウト上の位置や大きさの計算は、先に説明したバイト単位の場合と同様なので、詳しい説明は省いて式のみ示すが、中心位置の割合は、
（１２．５行分の高さ）/４３２＝（１６＊１２．５）/４３２＝０．４６
より、４６％となり、誤差は４％となる。バイト単位の場合は誤差７％だったので、中心位置の精度が少し良くなっている。
【０２５３】
指定範囲はこの中心位置から上下に６．２５行分なので、上から７行目の「（２）」から１９行目の「する能力」までの範囲となる。「（２）」は、分割文書データ５１中の１９文字目なのでデータ位置は（６２＋１９×２＝１００）、「力」は、分割文書データ５３中の５９文字目なのでデータ位置は（６２＋５４＋９４＋５９×２＝３２８）となり、指定範囲のデータサイズＳＤはその差に、終了文字のデータサイズを加えた２３０となる。
【０２５４】
ＳＤ／ＡＤ＝２３０／（６２＋５４＋９４＋１３２＋２２＋６０）＝０．５４より、大きさは５４％で誤差８％となる。この場合、図６を元にバイト単位で計算した誤差２％よりもむしろ誤差が大きくなっている。すなわち、誤差は文書データの内容により変わり、全ての場合において、推定精度がよくなる訳ではない。
【０２５５】
分割文書のデータサイズとしては、バイト数、文字数以外にも、例えば単語数や行数を使う方法も考えられる。単語数は英語など単語の区切りがはっきりしている場合は意味単位として使いやすい。また、改行の場合、データ記述上の改行コードはレイアウト上の改行とは必ずしも限らないので、一般にレイアウト上の改行数を使った方が精度がよい。改行数だけだと１行の長さがまちまちの場合、精度が良く無いので、文字数と組み合わせるなどすると良い。
【０２５６】
図１５での誤差は、画像部分に関しての処理を無視した影響が大きい。図６では、画像をあらわす「＜ＩＭＧ＞」タグをバイト数で数えてはいるが、画像の大きさを直接表している訳ではないので、やはり正確さに欠ける。これを補正する為、文章中に含まれる文字や画像などの表示要素の表示サイズをデータサイズに換算した値を使う方法が考えられる。
【０２５７】
例えば文字の大きさが途中で変わる場合、（文字数）＝（データサイズ）、すなわち文字数だけを数えただけではデータサイズの精度が落ちてしまうが、文字の大きさの変化に応じて、（文字数）×（文字サイズ比）＝（データサイズ）などと換算してやれば、精度を上げることができるようになる。同様に画像も、画像の表示サイズや面積をデータサイズに換算してやることで精度を上げることができるようになる効果が出てくる。
【０２５８】
例えば、図２の分割文書データ５４中に出てくるＩＭＧで指定されている画像ｅｙｅ．ｐｎｇの大きさが、７０ドット×３５ドットだったとする。１４ドット×１４ドットの全角文字（文字間１ドット、行間２ドット）を単位とした場合、この画像を、
（文字横サイズ）  ＝（文字幅）＋（文字間）＝１４＋１＝１５
（データ横サイズ）＝（（画像幅）＋（文字サイズ）−１））／（文字サイズ））
＝（７０＋１４−１）／１４＝５．９
（文字縦サイズ）  ＝（文字高さ）＋（行間）＝１４＋２＝１６
（データ縦サイズ）＝（（画像高さ）＋（文字縦サイズ）−１）／（文字縦サイズ）
＝（３５＋１６−１）×１６＝３．２
（データサイズ）  ＝（データ横サイズ）×（データ縦サイズ）＝５×３＝１５文字    （全角）          ＝３０文字（半角）
分のデータサイズと換算する。なお、ここでは縦横の文字分を整数とする為、（データ横サイズ）、（データ縦サイズ）は、共に少数点以下切り捨てしてある。
【０２５９】
図１６は図１５にこの換算値を追加したものである。図１５と比較すると、図１５のデータサイズ１７４に換算値３０が加算され、データサイズ２７０〜２７５が再定義されたことに伴って、データサイズ比２８０〜２８５および累積データサイズ比２９０〜２９６も変わっていることがわかる。
【０２６０】
元とするデータが図１６となる以外は図１５の処理と一緒なので詳細な説明は省くが、指定範囲の中心位置は、４番目の分割文書内の「６０ｄＢ」の「Ｂ」の文字になる。これは上から１４行目なので、中心位置は１３．５行目の所となり  （１３．５行分の高さ）/４３２＝（１６＊１３．５）/４３２＝０．５０
より、中心位置は５０％となり、誤差０％となる。図１の理想的な表示範囲１１３と重なる結果が得られた。
【０２６１】
指定範囲はこの中心位置から上下に６．２５行分なので、８行目の「  人間は」から２０行目の「持っている。」までの範囲となる。「  人間は」のスペース「  」は、分割文書データ５２中の最初の文字なのでデータ開始位置は（６２＋５４）となる。また、「持っている。」の終了文字「。」は、分割文書データ５３中の最後の文字なのでデータ位置は（６２＋５４＋９４＋１３２）となり、指定範囲のデータサイズＳＤはその差の２２６となる。
【０２６２】
ＳＤ／ＡＤ＝２２６／（６２＋５４＋９４＋１３２＋５２＋６０）＝０．５０より、大きさは５０％となり、レイアウトサイズベースとの誤差は４％である。
【０２６３】
図６のバイト単位のものや図１５の文字単位のものに比べて、中心位置の誤差と大きさの誤差の和で総合的に比較してみると、図６のバイト単位は２％、図１５の文字単位で指定範囲の大きさを求めた場合の誤差は８％であるのに比べて、図１６の文字数換算手法を使った場合は４％となり、図１５の手法と比べると誤差が小さくなっている。図６の手法に対しても同様に、画像の表示要素をバイトに換算した値を加えれば、誤差２％を更に小さくすることができる。
【０２６４】
もちろん、文書の内容によっては、誤差がかえって大きくなることもありえるが、データサイズの計算にレイアウトサイズの要素を考慮した換算値を加えることで、レイアウトベースの値と近い値が得られる可能性が高まると言える。
【０２６５】
この様に、文書中に含まれる文字や画像などの表示要素の表示サイズをデータサイズに換算した値を使うことで、推定精度を高くする可能性を大きくする効果がある。
【０２６６】
ところで、ここまで説明してきた手法では、例えば図４に示すように、指定範囲の位置（スクロールボックス１２１の中心位置）が、表示範囲の中心と一致するようにしている。
【０２６７】
図１７はこの状況を詳細に説明するものである。分かりやすいように、レイアウト全体の中で表示される範囲を枠で囲い、その横にスクロールバーをつけてある。実際に表示されるのは枠の中のレイアウトとスクロールバーだけである。
【０２６８】
スクロールバー全体の大きさ（長さ）をＳＡ、スクロールボックスの大きさをＳＤ、スクロールバーの開始位置から基準点ＳＰ（後述）までの大きさをＳＭ、スクロールボックス内での基準点ＳＰの上側の大きさをＳＰＤ、下側の大きさをＳＦＤとする。
【０２６９】
同様に、レイアウト全体の大きさをＬＡ，指定範囲のレイアウトの大きさをＬＤ，先頭から基準点ＬＰ（後述）までの大きさをＬＭ、基準点ＬＰより上側の大きさをＬＰＤ，下側の大きさをＬＦＤとする。右のスクロールバー側と左のレイアウト側に説明の記号が分けて書いてあるが、同じような意味をもつ記号は、記号名の末尾をそれぞれ同じ文字（列）としてある。
【０２７０】
「基準点」とは、スクロールバー上あるいはレイアウト上、指定範囲（表示範囲）の中のどこを指定範囲の「位置」とするか（どこを基準にするか）を意味する。レイアウト基準点ＬＰは、その点の上下ＬＰＤ、ＬＦＤの大きさだけレイアウトを表示することになる。スクロールバー基準点ＳＰは、その点の上下ＳＰＤ、ＳＦＤの大きさだけスクロールボックスを表示することになる。
【０２７１】
スクロールバー基準点ＳＰとレイアウト基準点ＬＰは、文書全体の中で割合的に同じ位置を表す。従って、ＳＭ／ＳＡ＝ＬＭ／ＬＡとなる。なお、図１７ではたまたまＳＰとＬＰとが一直線上に並んでいるが、基準点の取り方やスクロールバーの位置によっては、後で説明する図２４のように一直線上に並ばない場合もある。
【０２７２】
スクロールバー基準点ＳＰとは、分かり易く言えば、指定範囲の位置（指定位置）を意味する。図１７では、スクロールボックスはスクロールバーの中心に位置し、ＳＭ＝ＳＡ／２、ＳＰＤ＝ＳＦＤとなっている。
【０２７３】
一方、レイアウト基準点ＬＰは、スクロールバー基準点ＳＰに対応するレイアウト上の位置である。図１７の例では、位置指定は（ＬＭ／ＬＡ）の割合で示されていることになる。図１７ではスクロールバー基準点ＳＰが、スクロールバーの真中を指しているので、レイアウト基準点ＬＰも中央のレイアウト「  人間の受光能力は６０」の行の中心に位置している。このとき、ＬＭ＝ＬＡ／２、ＬＰＤ＝ＬＦＤである。
【０２７４】
スクロールバー基準点ＳＰは、通常、スクロールボックスの中央にとる。すなわち、スクロールボックスによって表示範囲が指定された場合は、スクロールボックスの中央位置に対応するレイアウト上の位置が、表示の中心となるようにレイアウトを表示する。逆にある表示範囲のスクロールバーを表示する時は、表示範囲のレイアウトの中心に対応するスクロールバー上の位置が、スクロールボックスの中央となるようにスクロールバーを表示する。
【０２７５】
レイアウトをベースにしたスクロールバーでは、スクロールボックスの大きさと表示範囲の大きさは対応しており、表示範囲の大きさや表示倍率を変えるなどしなければ、スクロールボックスの大きさは変化しない。
【０２７６】
しかし、本発明ではスクロールボックスの大きさは推測であり、指定範囲の位置と指定範囲に含まれるデータサイズとに応じて逐次求められるので、例えばスクロールボックスの移動によって変化する。表示される範囲はレイアウトサイズで指定しているので、２００ドットなら２００ドット分が常に表示されていて、表示倍率が変わる訳ではないのだが、スクロールボックスの大きさが変わってくる。通常のスクロールバーでは、表示倍率を変えない限り、スクロールボックスのサイズは変わらないので、ユーザーは少し違和感があるかもしれない。
【０２７７】
しかし、指定範囲の位置として中心位置を使うと、スクロールボックスの伸び縮みが両端に分散されるので、違和感を多少和らげる効果が出てくることがある。
【０２７８】
ただし、スクロールボックスの位置が、スクロールバーの最初や最後の端に接する位置付近に指定された場合、基準点としてスクロールボックスの中央位置を取るとうまくいかないことがある。
【０２７９】
図１８は、スクロールボックス１２１をスクロールバー１２０の上端に移動させて表示範囲を指定した時、スクロールボックス１２１が上端に位置し、表示は最初の行から隙間無く表示され、通常のスクロールバーによる指定と同様に表示された問題の無い例である。しかし、コンテンツやスクロールボックスの状態によっては、図１８のようには表示されず、ユーザーの意図と異なる表示のされかたをしてしまうことがある。
【０２８０】
例えば、図１９は、スクロールボックス１２１を上端に移動させて表示範囲を指定した時、スクロールボックス１２１が上端に位置するにも関わらず、最初の行が表示されず、途中から表示されてしまっている例である。図１９は実際には処理の途中状態である。
【０２８１】
図３のフローチャート図に沿った処理で説明すれば、スクロールボックス１２１を上端に移動させて表示範囲を指定することがＳ１０に相当し、指定範囲を表示する処理はＳ１２に相当する。Ｓ１２で指定範囲を表示した結果、図１９のように文書の途中から表示される。そして図１９の表示範囲にあわせたスクロールバー１２０を表示させる処理はＳ１４に相当する。Ｓ１４で図１９の表示範囲にあわせたスクロールバー１２０を表示させた結果が図２０である。表示範囲にスクロールバー表示を合わすと、図２０のようにスクロールボックス１２１の上に少し隙間がないといけないはずである。ユーザーは最終的には図２０の状態を見ることになる。
【０２８２】
図２１は、同様にスクロールボックス１２１を上端に移動させて表示範囲を指定した時、最初の行の前に空白が空いて表示されてしまっている例である。図１９同様、図３のフローチャート図の処理を一通り行うのだが、図２１は図１９と違い、ほぼユーザーが最終的に見る状態である（正確に言えば、図２１より若干、スクロールボックスが小さくなるかもしれない）。
【０２８３】
表示範囲にスクロールバー表示を無理に合わすなら、このような表示は実際にはありえないが、図２２のようにスクロールボックス１２１がスクロールバー１２０を上に突き抜けたようになり、これは本来レイアウトがない場所までも表示してしまっていることを表している。（なお、説明の都合上、同じコンテンツを使っているが、スクロールボックスを上端に移動させて表示範囲を指定した時に図１９と図２１が同時に起こる訳ではなく、コンテンツやスクロールバーの状態によってはどちらも起こりうるという意味で例にあげているだけである）。
【０２８４】
このような不具合は、スクロールボックスの大きさが位置によって変わる（大きさが変わる理由は「推測」の言葉の意味について述べた際に説明した）ため、発生する。スクロールボックスの大きさが変わるとは、例えば、図１８のようにコンテンツの先頭位置から表示される時のスクロールボックス１２１の大きさと、図４のようにコンテンツの途中の位置から表示される時のスクロールボックス１２１の大きさは同じとは限らないということである。
【０２８５】
レイアウトサイズベースのスクロールボックスを使って新たな表示範囲を指定する時、普通はスクロールボックスをマウスなどで移動させて指示する。その際、スクロールボックスの大きさは、普通変わらない。しかし、データサイズベースのスクロールボックスを同じ方法で表示範囲指定に使うと問題が発生する。
【０２８６】
例えば、図４に示す大きさのスクロールボックス１２１をマウスなどでスクロールバー１２０の上端位置に移動させるとする。スクロールボックス１２１の大きさは図４のままとする。ユーザーの意図としては図１８のように表示したい訳だが、場合によっては、図２０や図２１のような表示になってしまうことがある。直接的な原因は、この時のスクロールボックス１２１による表示範囲の指定が、コンテンツの先頭からの範囲として指定できていないからである。
【０２８７】
なぜコンテンツの先頭からの範囲として指定できないかというと、この時のスクロールボックス１２１の中心位置の指定が、コンテンツの先頭からの表示範囲の時のスクロールボックス１２１の位置である図１８のスクロールボックス１２１の中心位置とずれているからである。指定範囲は、スクロールボックスの中心位置から上下に何ドットという指定の仕方をしているので、スクロールボックスの中心位置さえ同じならば、同じ指定範囲になるはずである。しかし、先に説明したように、図１８のスクロールボックス１２１の大きさと図４のスクロールボックス１２１の大きさは同じとは限らないので、スクロールボックスを上端に移動させた時のスクロールボックスの中心位置は同じとは限らなくなってしまう。これが、図２０や図２１のような表示になってしまう理由である。
【０２８８】
図１８の時のスクロールボックス１２１の大きさはレイアウトしてみないと得られないので事前に得ることは難しい。また、スクロールボックス１２１の操作中は、通常、スクロールボックス１２１のサイズは変わらないので、事前に知ることができても、それをスクロールバー１２０の操作に反映させることが難しい。また反映できたとしても、ユーザーが端に移動したい時のみスクロールボックス１２１のサイズを変える為には、ユーザーの意向を知らなければいけないが、それはさらに難しい。
【０２８９】
これらの不具合を防止する為、ユーザーが指定範囲として端に接するような位置を指定した場合は、スクロールバー基準点ＳＰはスクロールボックスの中心位置を取らず、端を取るようにすれば良い。また、レイアウト基準点ＬＰについても同様に表示範囲の端をとるようにする。
【０２９０】
つまり指定範囲の大きさを、今までの例では上下にＬＰＤ＝ＬＦＤ＝１００ドットあわせて２００ドットとしていたが、例えば上端を指定された場合は上にＬＰＤ＝０ドット、下にＬＦＤ＝２００ドット、あわせて２００ドットとしてやればよい。下端の場合は逆である。
【０２９１】
図２３はスクロールバー基準点ＳＰをスクロールボックスの上端に取ると共に、レイアウト基準点ＬＰを表示範囲の上端に取った状態を示したものである。図２４では、基準点ＳＰ、ＬＰが端に位置しないが、図２３では端に位置している。
【０２９２】
これらの処理は、具体的には、図３のＳ１０で指定範囲を得る際に、スクロールボックスがスクロールバーの上端または下端に位置しているか否かの判断を加えてやればよい。
【０２９３】
このように、スクロールボックスがスクロールバーの最初もしくは最後を含む範囲として指定されている場合は、文書の最初からもしくは最後まで表示するように表示制御することで、端を含む範囲の指定を問題なく行えるようにすることができる効果がある。
【０２９４】
ただ、端を含む場合だけに限定してしまうと、端を含む場合と端をわずかに含まない場合で表示される範囲に大きなずれがでてしまうことがあり、スクロールバー操作の連続性が失われてしまうかもしれない。
【０２９５】
これはそもそもスクロールバーが端に来た時にだけ急に基準点を変更したのが原因なので、スクロールボックスの位置に応じて、あるいはスクロールボックスが位置する範囲に応じて、基準点を滑らかまたは段階的に変化させることで、不連続性を抑えることができる。
【０２９６】
基準点の変化のさせ方としては色々考えられるが、最も単純な方法として、スクロールボックスが中央に位置する時はスクロールボックスの中央にし、端に位置する時はスクロールボックスの端にし、その間は線形に変化させる方法がある。また、レイアウトの基準点も同様にそれに応じて変化させる。
【０２９７】
図で具体的に説明すると、スクロールバーが中央の時は図１７、スクロールバーが端に来た時は図２３、この中間の状態が図２５である。以降、説明を一般的にする為、図２５を基に説明する。
【０２９８】
図２５で、スクロールバーによって指定された場合、スクロールバーの開始位置から基準点ＳＰまでの大きさＳＭは、スクロールボックス内のどこに基準点を取るかによって決まる。スクロールバー内でスクロールボックスより上の空きスペースの大きさをＳＴとする。ＳＴは、スクロールボックスが中央の場合、
ＳＭ／ＳＡ＝０．５、ＳＴ＝（ＳＡ−ＳＤ）／２
であり、スクロールボックスが上端の場合、
ＳＭ／ＳＡ＝０．０、ＳＴ＝０．０
なので、
ＳＭ＝０．５×ＳＴ／（（ＳＡ−ＳＤ）／２）
とすれば、ＳＭを線形に求められる。つまり、スクロールボックスの位置からＳＭを直接求めるのではなく、スクロールボックス以外の残りの部分の大きさに注目して、ＳＭを求めている。
【０２９９】
ＳＭが求まれば、ＬＭ／ＬＡ＝ＳＭ／ＳＡより、
ＬＭ＝ＬＡ×（ＳＭ／ＳＡ）
でＬＭが求まる。
【０３００】
次に、ＬＰＤ、ＬＦＤだが、ＬＰＤ／ＬＤ＝ＬＭ／ＬＡとするので、
ＬＰＤ＝ＬＤ×（ＬＭ／ＬＡ）
でＬＰＤが求まる。ＬＦＤもＬＦＤ＝ＬＤ−ＬＰＤで求まる。これによって、表示すべきレイアウト範囲が求まる。
【０３０１】
レイアウト範囲が求まったら、スクロールバーの描画だが、ＳＭは求まっているので、ＳＰＤ、ＳＦＤ、ＳＤが求まれば良い。ＳＤは既に説明した本発明の手法により、ＳＭとＬＰＤ、ＬＦＤが決まればスクロールボックスの割合が求まるのだから、ＳＤは求まる。ＳＰＤとＳＦＤについては、ＳＰＤ／ＳＤ＝ＬＰＤ／ＬＤとすればよいので、
ＳＰＤ＝ＳＤ×（ＬＰＤ／ＬＤ）でＳＰＤが求まる。ＳＦＤ＝ＳＤ−ＳＰＤより、ＳＦＤも求まる。これによって、スクロールバーを表示させるだけの情報、ＳＭ，ＳＰＤ，ＳＦＤが得られる。
【０３０２】
なお、これらの計算結果でスクロールバーを再表示させた際、ＳＤやＳＴはスクロールバーで操作を行った時とは若干変化するかもしれないが、大幅な変化ではないので、違和感は少ない。
【０３０３】
以上の処理によって、スクロールバー端でも表示やスクロールバーが不連続に変化することを防ぎつつ、スクロールバーによる指定に応じたレイアウト範囲を表示し、またそのレイアウト範囲に応じたスクロールバーを表示することができるようになる。
【０３０４】
また、スクロールボックスの位置を表す割合に応じて基準位置を変化させることで、表示範囲を連続的に変更することができ、ひいてはスクロールバーによる指定を連続的に行えるようにすることができる効果が出てくる。
【０３０５】
ちなみに、この手法で表示させた場合、図２５のように、基準点の高さ方向はほぼ一致するはずである。
【０３０６】
ところで、これまで説明してきた手法では、表示範囲のデータサイズをレイアウトやユーザー指定などから求めているが、精度が粗くてよいなら、表示範囲を含む分割文書を単位としてしまう方法も考えられる。すなわち、図１４のＳ５０で指定範囲のデータサイズを取得する際、指定範囲を含む分割文書のデータサイズの和を表示範囲のデータサイズとしてしまうということである。これによって表示範囲のデータサイズを得る処理が省けるので、処理が簡単になるという効果がある。
【０３０７】
同様に、指定範囲の位置に関しても、精度が粗くてよいなら、分割文書の単位で計算してしまう方法が考えられる。どの分割文書を指しているかだけを求め、その分割文書の頭や真中などから表示するとしてしまえばよい。これによって処理が簡単になるという効果がある。
【０３０８】
また、データサイズとして、分割文書のデータサイズを使った例で説明したが、例えば分割文書がほぼ同じようなデータサイズやレイアウトサイズで分割されているなら、データサイズとして指定範囲を含む分割文書の個数を使ってもその割合はほぼ推定できる。各分割文書のデータサイズの取得や和を求める処理も、数が多くなるとそれなりの処理時間となってしまうが、分割文書数だけで概算できるのならば、これらの処理をさらに省くことができる効果がある。
【０３０９】
上記の分割文書を単位とする手法では、分割の仕方を細かくする程、精度を上げることができる。
【０３１０】
以上のように、分割データサイズ取得手段１が、文書を複数の部分に分割した分割文書のデータサイズを取得し、指定範囲取得手段５がユーザーによって指定された範囲を得ると、指定範囲レイアウト取得手段６が、その指定範囲を含む分割文書を特定し、指定範囲データサイズ取得手段２が、特定された分割文書のデータサイズを元にして指定範囲のデータサイズを求める。これにより、割合取得手段３は、分割文書の各データサイズの和と上記指定範囲のデータサイズとから、指定範囲のスクロールボックスの位置と割合を算出することができる。
【０３１１】
この結果、本発明によれば、文字や表示ウィンドウのサイズ設定などによって、レイアウトが変わる表示システムでも、少ない処理時間およびリソースで、高速かつ精度の良いスクロールバーの表示制御を実現することができる。
【０３１２】
なお、特開平５−２８２２５５号公報では、複数のページからなる項目が複数ある時、各項目の区切りをスクロールバー上に表示し、また、表示をページ単位で行い、表示されているページ範囲をスクロールボックスとして表示させている。
【０３１３】
一見、各項目や各ページが本発明の分割文書に相当するように見えるが、全く異なる発明である。
【０３１４】
そもそも発明の課題が異なる。該公報の課題は「ユーザーの望む個所を簡単かつ確実に表示でき、また、手帳情報が複数の項目を有する場合に、各項目の占める分量を把握できる」ことである。本発明の課題は、可変レイアウトの文書において、高速かつできるだけ正確にスクロールバーの表示や制御を処理すること、少ないメモリ環境などにおいても無駄なく処理を行うことである。
【０３１５】
課題が異なる為、課題を解決する為の手段も異なり、該公報では、ユーザーに分かり易いようにスクロールバーを表示、制御する為に各項目のページ数の情報などを使っている。つまり、ページ数の情報の表示の仕方などに発明のポイントがあるのであり、ページ数の情報の求め方自体には発明のポイントはない。
【０３１６】
従って、ページ数の情報を可変レイアウトで高速に少ないメモリで算出する方法は請求項では述べられておらず、実施例などでも説明されていない。予め用意されているものとして説明されている。
【０３１７】
本発明は、分割文書や指定範囲の「データサイズ」からスクロールボックス位置、サイズを求めるステップ／手段（割合取得ステップ）などを用いることで、可変レイアウトであっても高速に少ないメモリでスクロールバーを表示／制御することができることを示している。つまり、可変レイアウトでスクロールバーの表示／制御を行う為の計算を高速、省メモリで行うことに発明のポイントがあるのであり、計算で得られた後の表示の仕方などに発明のポイントがあるのではない。
【０３１８】
従って、可変レイアウトであっても高速に少ないメモリでスクロールバーを表示／制御する方法として、分割文書や指定範囲のデータサイズを利用する方法が請求項で述べられている。
【０３１９】
このように両者は、異なる課題を持ち異なる手段を用いた異なる発明である。
【０３２０】
また、特開平８−３１４９０６号公報では、文書量に応じたページ区切り幅を計算し、その区切り幅でページ番号を付与したスクロールバーを表示／制御している。ページ区切り幅は、レイアウトサイズから計算している。
【０３２１】
これも一見、「文書量に応じたページ区切り幅」が本発明の分割文書のデータサイズから求めるスクロールボックスサイズに相当するように見えるが、全く異なる発明である。
【０３２２】
これもそもそも発明の課題が異なる。該公報の課題は「内部の文書量が異なる各ページが均等の幅でスクロールバー上に表示されるために、各ページのおおよその文書量を把握できない」ことである。本発明の課題は、上で説明した通り、可変レイアウトの文書において、高速かつできるだけ正確にスクロールバーの表示や制御を処理すること、少ないメモリ環境などにおいても無駄なく処理を行うことである。
【０３２３】
課題が異なる為、課題を解決する為の手段も異なり、該公報では、各ページの文書量がユーザーに分かるようにスクロールバーを表示、制御する為に各ページの文書量を使っている。つまり、各ページの文書量の表示の仕方などに発明のポイントがあるのであり、各ページの文書量の取得の仕方自体には発明のポイントはない。
【０３２４】
各ページの文書量はレイアウトサイズを使うことが請求項で述べられているが、そのレイアウトサイズを高速、省メモリで求める方法は述べられていない。全てのレイアウトサイズを求めると説明されているのみである。
【０３２５】
本発明は、上で説明した様に、可変レイアウトであっても高速に少ないメモリでスクロールバーを表示／制御する方法として、分割文書や指定範囲のデータサイズを利用する方法が請求項で述べられている。
【０３２６】
このように両者は、異なる課題を持ち、異なる手段を用いた異なる発明である。
【０３２７】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（主記憶２５または外部記憶２６等）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０３２８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０３２９】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，磁気テープ，不揮発性のメモリカード，等を用いることができる。
【０３３０】
また、上記プログラムコードは、通信ネットワークのような伝送媒体を介して、他のコンピュータシステムから主記憶２５または外部記憶２６等へダウンロードされるものであってもよい。
【０３３１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３３２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３３３】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになる。
【０３３４】
本発明は上述した各実施形態に限らず、請求項に示した範囲で種々の変更が可能である。
【０３３５】
【発明の効果】
以上、説明したように、本発明に係る表示制御方法は、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、上記文書に対して指定した位置を基準とする指定範囲を含む分割文書を特定すると共に、特定した分割文書を元にして指定範囲のデータサイズを求める指定範囲データサイズ取得ステップと、分割データサイズ取得ステップから得た分割文書の各データサイズの和と、指定範囲データサイズ取得ステップから得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得ステップと、を有することを特徴とする。
【０３３６】
データサイズは固定レイアウトでも可変レイアウトでも一定であり、レイアウト処理を行うことなくすぐに得ることができる。表示のためなどに一部のレイアウトが必要だったとしても、全てのレイアウトを得る必要はないので、その分、処理量や処理に必要なリソースが少なくて済む。
【０３３７】
これによって、可変レイアウトの集まりからなる文書であっても、高速に指定範囲の割合を得ることができる効果が出てくる。また割合を計算する為にレイアウトをまったく保持する必要が無い、あるいは一部しか保持する必要がないので、少ない処理リソース（ＣＰＵ処理能力やメモリ環境など）でも処理できる効果が出てくる。
【０３３８】
また、本発明に係る表示制御方法は、以上のように、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得ステップと、上記文書に対して指定した位置を基準とする指定範囲を含む分割文書を特定すると共に、特定した分割文書の少なくとも一部を、そのときの設定に従ってレイアウトすることにより、指定範囲のデータサイズを求める指定範囲データサイズ取得ステップと、分割データサイズ取得ステップから得た分割文書の各データサイズの和と、指定範囲データサイズ取得ステップから得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得ステップと、を有することを特徴とする。
【０３３９】
これにより、特定した分割文書の少なくとも一部を、可変レイアウトのその時の設定に従ってレイアウトし、表示される部分のデータサイズを求めるので、文書全体をレイアウトする必要が無く、処理が簡便であり、処理に必要なリソースが少なくて済む上に、精度を向上させることができるという効果を奏する。
【０３４０】
また、本発明に係る表示制御方法は、以上のように、前記指定範囲を表示範囲とし、割合取得ステップから得られた割合に応じたスクロールバーを表示し、また、ユーザーのスクロールバー操作に応じて表示範囲の表示内容を制御するスクロールバー表示制御ステップを有することを特徴とする。
【０３４１】
これによって、可変レイアウトの表示システムでも、スクロールバーを使った表示や制御が高速に行えるという効果が出てくる。
【０３４２】
また、本発明に係る表示制御方法は、以上のように、前記分割文書および前記指定範囲のデータサイズとして、バイト数やビット数などの符号化データサイズを使うことを特徴とする。
【０３４３】
これにより、文書データなどをコンピュータ上で扱う場合、データサイズを得やすく、また扱い易くなるという効果が出てくる。ひいては割合を求めるなどの処理も簡単になるという効果を奏する。
【０３４４】
また、本発明に係る表示制御方法は、以上のように、前記分割文書のデータサイズとして分割文書の意味単位に基づく数を使うことを特徴とする。
【０３４５】
これにより、意味単位に基づく数をデータサイズとして使うことで、文書データ中にはレイアウトサイズにあまり関係ないようなデータの影響を少なくすることができる効果が出てくる。
【０３４６】
また、これらの意味単位に基づく数は、レイアウト処理によって変わるものではないので、事前に数えておくことが可能であり、レイアウト処理などを最小限に抑えた処理を可能にするという効果を変わりなく得ることができる。
【０３４７】
また、本発明に係る表示制御方法は、以上のように、意味単位に基づく数として文字数あるいは単語数を使うことを特徴とする。
【０３４８】
これにより、意味単位の中でも、単語数を用いれば、表示割合の算出精度を相対的に高めることができ、特に文字数を用いれば、算出精度を更に上げることができるという効果を奏する。
【０３４９】
また、本発明に係る表示制御方法は、以上のように、前記分割文書または前記指定範囲のデータサイズを得る際、実際の表示サイズがデータサイズと相関しない表示要素が文書中に含まれている場合、当該表示要素の表示サイズをデータサイズに換算した値を使うことを特徴とする。
【０３５０】
これにより、文字や画像の大きさは実際にはレイアウトしないと完全に決定しないこともあるが、基準文字サイズを仮決めするなど、何らかの仮定をおいてレイアウトを行っても、ある程度の傾向は出てくる。そこで、実際の表示サイズがデータサイズと相関しない表示要素大きさを、何らかの仮定の元に推定し、それをデータサイズに換算することで、データサイズだけで推定するよりも推定精度が増す可能性が大きくなるという効果が出てくる。
【０３５１】
また、本発明に係る表示制御方法は、以上のように、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスの中央位置が、表示範囲の中央位置の表示割合を示すようにすることを特徴とする。
【０３５２】
これにより、指定範囲の割合をデータサイズを元にして推測する場合の誤差を、スクロールボックスの両端に分散させ、長さの変化に対する視覚的な違和感を軽減することができるという効果を奏する。
【０３５３】
また、ユーザーにとって、スクロールバーを操作する際に、視覚上、直感的に表示割合や表示部分の位置を捉えやすくなるという効果も併せて奏する。
【０３５４】
また、本発明に係る表示制御方法は、以上のように、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスが、スクロールバーの始端もしくは終端を含む範囲を指定している場合には、文書の最初から、もしくは最後まで表示するようにすることを特徴とする。
【０３５５】
これにより、スクロールボックスが、スクロールバーの始端もしくは終端を含む範囲として指定している場合には、文書の最初から、もしくは最後までを含むような指定範囲が指定されたとして解釈して、表示を行うことで、推定誤差による不具合を回避し、またユーザーの意図に沿った処理を行うことができるという効果が出てくる。
【０３５６】
また、本発明に係る表示制御方法は、以上のように、前記スクロールバー表示制御ステップにおいて、表示範囲を指定するためにスクロールバー内に表示されるスクロールボックスのスクロールバー内の位置に応じて、表示範囲が文書中に占める位置と割合とを表す基準となるスクロールボックス上の基準位置を変更すると共に、その基準位置に対応付けた表示範囲上の基準位置を合わせて変更することを特徴とする。
【０３５７】
これによって、スクロールバー末端付近のスクロールボックスのわずかな位置の違いで表示が大きくずれてしまうことを防ぐ効果が出てくる。
【０３５８】
また、本発明に係る表示制御装置は、以上のように、文書を複数の部分に分割した分割文書の各データサイズを得る分割データサイズ取得手段と、上記文書に対して指定された位置を基準とする指定範囲を含む分割文書を特定すると共に、特定した分割文書を元にして指定範囲のデータサイズを求める指定範囲データサイズ取得手段と、分割データサイズ取得手段から得た分割文書の各データサイズの和と、指定範囲データサイズ取得手段から得た前記指定範囲のデータサイズとから、文書中に前記指定範囲が占める割合を求める割合取得手段と、を有することを特徴とする。
【０３５９】
これによる効果は上で説明した方法と同様である。
【０３６０】
また、本発明に係る表示制御プログラムは、上記の課題を解決する為に、上記スクロールバー表示制御方法が備える各ステップをコンピュータに実行させることを特徴とする。
【０３６１】
これにより、汎用のコンピュータに、本発明の表示制御方法を実行させ、上記の効果を得ることができる。
【０３６２】
また、本発明に係る記録媒体は、上記の課題を解決する為に、上記表示制御プログラムを記録したことを特徴とする。
【０３６３】
これにより、上記記録媒体から汎用のコンピュータに、表示制御プログラムをインストールすることによって、本発明の表示制御方法を実行させ、上記の効果を得ることができる。
【図面の簡単な説明】
【図１】
本発明のスクロールバー表示制御方法において、分割文書のデータサイズを求める手法の違いによる指定範囲の解釈の違いを示す説明図である。
【図２】
図１の文書レイアウトを構成する分割文書データを示す説明図である。
【図３】
本発明のスクロールバー表示制御方法のスクロールバーの表示、制御処理の手順を概要的に示すフローチャート図である。
【図４】
図１の文書全体の中の表示範囲１１１の表示要素をスクロールバーと共に表示した例を示す説明図である。
【図５】
図３の指定範囲レイアウト取得処理の手順を示すフローチャート図である。
【図６】
各分割文書のデータサイズの例を示す説明図である。
【図７】
指定範囲と、指定範囲を含む分割文書のデータサイズとの関係を示す説明図である。
【図８】
レイアウトされた表示要素データのデータ構造例を示す説明図である。
【図９】
図５の周囲の分割文書レイアウト取得処理の手順を示すフローチャート図である。
【図１０】
レイアウトの不足を判断をする際に使うデータ構造例を示す説明図である。
【図１１】
図５の指定範囲のレイアウトを取得する処理の手順を示すフローチャート図である。
【図１２】
図９の上側レイアウト取得処理の手順を示すフローチャート図である。
【図１３】
図１１の上限レイアウト表示要素を取得する処理の手順を示すフローチャート図である。
【図１４】
図３の全文書内割合を計算する処理の一手順を示すフローチャート図である。
【図１５】
分割文書のデータサイズを文字数で得た例を示す説明図である。
【図１６】
分割文書のデータサイズを文字数と画像を文字数に換算した値とで得た例を示す説明図である。
【図１７】
文書の中心付近で、レイアウト全体に占める表示範囲の位置と割合とを求める基準となる基準位置が、表示範囲とスクロールバーとで共に中央に設定されている状態を示す説明図である。
【図１８】
文書の最初の部分をスクロールボックスで指定した際に、問題なく表示された例を示す説明図である。
【図１９】
文書の最初の部分をスクロールボックスで指定した際に、上の部分が欠けて表示された例を示す説明図である。
【図２０】
図１９の場合のレイアウト全体と表示範囲、スクロールバーの本来の表示状態を示す説明図である。
【図２１】
文書の最初の部分をスクロールボックスで指定した際に、上の部分が空いて表示された例を示す説明図である。
【図２２】
図２１の場合のレイアウト全体と表示範囲、スクロールバーの本来の表示状態を仮想的に示す説明図である。
【図２３】
文書の頭で、レイアウト全体に占める表示範囲の位置と割合とを求める基準となる基準位置が、表示範囲とスクロールバーとで共に始端に設定されている状態を示す説明図である。
【図２４】
文書の頭で、レイアウト全体に占める表示範囲の位置と割合とを求める基準となる基準位置が、表示範囲とスクロールバーとで共に中央付近に設定されている状態を示す説明図である。
【図２５】
レイアウト全体に占める表示範囲の位置と割合とを求める基準となる基準位置を、表示範囲とスクロールバーとで共にスクロールボックスの位置に合わせて変化させる状態を示す説明図である。
【図２６】
データサイズを主に利用した本発明のスクロールバー表示制御装置の機能的な構成を示すブロック図である。
【図２７】
上記スクロールバー表示制御装置の一実施形態における構成例を示すブロック図である。
【図２８】
上記スクロールバー表示制御装置の外観例を示す模式的な斜視図である。
【符号の説明】
１  分割データサイズ取得手段
２  指定範囲データサイズ取得手段
３  割合取得手段
２５  主記憶（記録媒体）
２６  外部記憶（記録媒体）
５０  分割文書データ
５１  分割文書データ
５２  分割文書データ
５３  分割文書データ
５４  分割文書データ
５５  分割文書データ
１１０  レイアウト全体
１１１  表示範囲
１１３  表示範囲
１２０  スクロールバー
１２１  スクロールボックス