(57)【特許請求の範囲】
【請求項１】
表示装置であって、
左ページを表示するための左ページ表示領域、右ページを表示するための右ページ表示領域、前記左ページ表示領域に表示されるページより左側に更なるページが存在することを示す左小口、前記右ページ表示領域に表示されるページより右側に更なるページが存在することを示す右小口を含む、コンテンツの見開きページを表示画面に表示する表示手段と、
前記表示画面上の複数のタッチ位置を検出可能な検出手段と、
前記表示画面に表示される前記見開きページを、前記検出手段で検出されたタッチ位置に応じて変更する変更手段とを有し、
前記変更手段は、
前記検出手段により、一方が前記右小口を表示する領域に対するタッチ、他方が前記左ページ表示領域に対するタッチの２つのタッチが検出された場合、前記左ページ表示領域のページは変更せず、前記右小口を表示する領域上のタッチ位置で示されるページで前記右ページ表示領域のページを変更するとともに、前記左ページ表示領域と前記右ページ表示領域に表示されたページ間に他のページの存在を示す中小口を表示し、
前記検出手段により、一方が前記左小口を表示する領域に対するタッチ、他方が前記右ページ表示領域に対するタッチの２つのタッチが検出された場合、前記右ページ表示領域のページは変更せず、前記左小口を表示する領域上のタッチ位置で示されるページで前記左ページ表示領域のページを変更するとともに、前記中小口を表示し、
前記検出手段により、一方が前記中小口を表示する領域に対するタッチ、他方が前記左ページ表示領域又は右ページ表示領域のいずれかのページ表示領域に対するタッチの２つのタッチが検出された場合、タッチされたページ表示領域のページは変更せず、前記中小口を表示する領域上のタッチ位置で示されるページで非タッチのページ表示領域のページを変更し、
前記中小口を表示する領域に対するタッチのリリースが検出された場合、前記左ページ表示領域、前記右ページ表示領域に連続するページを表示するため、非タッチのページ表示領域に表示されたページを、タッチされたページ表示領域に隣接するページで置き換える
ことを特徴とする表示装置。
【請求項２】
前記表示手段は、前記左ページ表示領域、前記右ページ表示領域、前記左小口、前記右小口、前記中小口を、前記左小口、前記左ページ表示領域、前記中小口、前記右ページ表示領域、前記右小口、の並び順で表示することを特徴とする請求項１に記載の表示装置。
【請求項３】
前記左、右、中小口を表示する領域は、対応するページ数が多いほど表示サイズが大きくなることを特徴とする請求項１又は２に記載の表示装置。 
【請求項４】
前記表示手段は、前記検出手段によるタッチが検出されない場合に、前記左ページ表示領域、前記右ページ表示領域に前記コンテンツの連続する２ページを表示する、ことを特徴とする請求項１乃至３のいずれか１項に記載の表示装置。
【請求項５】
前記左小口、右小口、中小口の領域のいずれかへのタッチ、及び、前記左ページ表示領域、前記右ページ表示領域のいずれかへのタッチの２つのタッチが前記検出手段で検出したことで、前記変更手段による前記見開きの一方がページ表示領域がページ捲り状態、他方のページ表示領域が変更無しの固定状態になっていて、当該固定状態となっている期間が所定時間を超えた場合に、固定状態に表示されているページにしおりを付与するしおり付与手段を有することを特徴とする請求項１乃至４のいずれか１項に記載の表示装置。
【請求項６】
前記表示手段は、前記しおり付与手段でしおりが付与されたことを示すしおりマークを表示し、 
前記変更手段は、前記しおりマークへのタッチが検出された場合に、前記しおりが付与されたページを前記左ページ表示領域、前記右ページ表示領域のいずれかに表示することを特徴とする請求項５に記載の表示装置。 
【請求項７】
表示装置であって、
コンテンツ中の１つのページを表示するための第１ページ表示領域、当該第１ページ表示領域に表示されるページよりも左側に更なるページが存在することを示す第１左小口、前記第１ページ表示領域に表示されるページよりも右側に更なるページが存在することを示す第１右小口で構成される第１ページ領域、及び、
前記コンテンツ中の１つのページを表示するための第２ページ表示領域、当該第２ページ表示領域に表示されるページよりも左側に更なるページが存在することを示す第２左小口、前記第２ページ表示領域に表示されるページよりも右側に更なるページが存在することを示す第２右小口で構成される第２ページ領域とを有する、見開きページを表示画面に表示する表示手段と、
前記表示画面上の複数のタッチ位置を検出可能な検出手段と、
前記第１ページ表示領域、前記第２ページ表示領域を連動させる連動モード、独立させる独立モードのいずれかを設定する設定手段と、
前記表示画面に表示される前記見開きページを、前記検出手段で検出されたタッチ位置、並びに、前記設定手段で設定されたモードに応じて変更する変更手段とを有し、
前記変更手段は、
前記検出手段により、前記第１ページ表示領域又は前記第２ページ表示領域のいずれかのページ表示領域へのタッチ、及び、前記第１左小口又は前記第２左小口のいずれかの左小口へのタッチの２つのタッチが検出された場合、タッチ状態のページ表示領域のページは変更せず、タッチ状態の左小口を表示する領域上のタッチ位置で示されるページで、非タッチ状態のページを変更し、
前記検出手段により、前記第１ページ表示領域又は前記第２ページ表示領域のいずれかのページ表示領域へのタッチ、及び、前記第１右小口又は前記第２右小口のいずれかの右小口へのタッチの２つのタッチが検出された場合、タッチ状態のページ表示領域のページは変更せず、タッチ状態の右小口を表示する領域上のタッチ位置で示されるページで、非タッチ状態のページを変更し、
前記設定手段で独立モードが設定されている状態で、前記検出手段により１つのタッチも検出されなくなった場合には、タッチリリースする直前の、前記第１ページ表示領域、前記第２ページ表示領域それぞれに表示されたページを維持し、
前記設定手段で連動モードが設定されている状態で、前記検出手段により１つのタッチも検出されなくなった場合には、前記非タッチ状態のページ表示領域のページを、前記タッチ状態のページ表示領域に表示されたページの隣のページで変更する
ことを特徴とする表示装置。
【請求項８】
前記変更手段は、
前記設定手段で独立モードが設定され、かつ、前記第１左小口、前記第１右小口、前記第２左小口、前記第２右小口のいずれか１つの小口に対するシングルタッチを検出した場合、当該シングルタッチがなされた小口が属する前記第１、第２ページ領域のいずれか一方のページ表示領域を、前記シングルタッチがなされた小口の表示領域の位置に応じたページで更新し、非タッチのページ領域における他方のページ表示領域は変更せず、
前記設定手段で連動モードが設定され、かつ、前記第１左小口、前記第１右小口、前記第２左小口、前記第２右小口のいずれか１つの小口に対するシングルタッチを検出した場合、当該シングルタッチがなされた小口が属する前記第１、第２ページ領域のいずれか一方のページ表示領域を、前記シングルタッチがなされた小口の表示領域の位置に応じたページで変更するとともに、変更後のページの隣のページで、非タッチのページ領域における他方のページ表示領域を変更する
ことを特徴とする請求項７に記載の表示装置。
【請求項９】
表示装置の制御方法であって、
左ページを表示するための左ページ表示領域、右ページを表示するための右ページ表示領域、前記左ページ表示領域に表示されるページより左側に更なるページが存在することを示す左小口、前記右ページ表示領域に表示されるページより右側に更なるページが存在することを示す右小口を含む、コンテンツの見開きページを表示画面に表示する表示工程と、
前記表示画面上の複数のタッチ位置を検出する検出工程と、
前記表示画面に表示される前記見開きページを、前記検出工程で検出されたタッチ位置に応じて変更する変更工程とを有し、
前記変更工程は、
前記検出工程により、一方が前記右小口を表示する領域に対するタッチ、他方が前記左ページ表示領域に対するタッチの２つのタッチが検出された場合、前記左ページ表示領域のページは変更せず、前記右小口を表示する領域上のタッチ位置で示されるページで前記右ページ表示領域のページを変更するとともに、前記左ページ表示領域と前記右ページ表示領域に表示されたページ間に他のページの存在を示す中小口を表示し、
前記検出工程により、一方が前記左小口を表示する領域に対するタッチ、他方が前記右ページ表示領域に対するタッチの２つのタッチが検出された場合、前記右ページ表示領域のページは変更せず、前記左小口を表示する領域上のタッチ位置で示されるページで前記左ページ表示領域のページを変更するとともに、前記中小口を表示し、
前記検出工程により、一方が前記中小口を表示する領域に対するタッチ、他方が前記左ページ表示領域又は右ページ表示領域のいずれかのページ表示領域に対するタッチの２つのタッチが検出された場合、タッチされたページ表示領域のページは変更せず、前記中小口を表示する領域上のタッチ位置で示されるページで非タッチのページ表示領域のページを変更し、
前記中小口を表示する領域に対するタッチのリリースが検出された場合、前記左ページ表示領域、前記右ページ表示領域に連続するページを表示するため、非タッチのページ表示領域に表示されたページを、タッチされたページ表示領域に隣接するページで置き換える
ことを特徴とする表示装置の制御方法。
【請求項１０】
表示装置の制御方法であって、
コンテンツ中の１つのページを表示するための第１ページ表示領域、当該第１ページ表示領域に表示されるページよりも左側に更なるページが存在することを示す第１左小口、前記第１ページ表示領域に表示されるページよりも右側に更なるページが存在することを示す第１右小口で構成される第１ページ領域、及び、
前記コンテンツ中の１つのページを表示するための第２ページ表示領域、当該第２ページ表示領域に表示されるページよりも左側に更なるページが存在することを示す第２左小口、前記第２ページ表示領域に表示されるページよりも右側に更なるページが存在することを示す第２右小口で構成される第２ページ領域とを有する、見開きページを表示画面に表示する表示工程と、
前記表示画面上の複数のタッチ位置を検出する検出工程と、
前記第１ページ表示領域、前記第２ページ表示領域を連動させる連動モード、独立させる独立モードのいずれかを設定する設定工程と、
前記表示画面に表示される前記見開きページを、前記検出工程で検出されたタッチ位置、並びに、前記設定工程で設定されたモードに応じて変更する変更工程とを有し、
前記変更工程は、
前記検出工程により、前記第１ページ表示領域又は前記第２ページ表示領域のいずれかのページ表示領域へのタッチ、及び、前記第１左小口又は前記第２左小口のいずれかの左小口へのタッチの２つのタッチが検出された場合、タッチ状態のページ表示領域のページは変更せず、タッチ状態の左小口を表示する領域上のタッチ位置で示されるページで、非タッチ状態のページを変更し、
前記検出工程により、前記第１ページ表示領域又は前記第２ページ表示領域のいずれかのページ表示領域へのタッチ、及び、前記第１右小口又は前記第２右小口のいずれかの右小口へのタッチの２つのタッチが検出された場合、タッチ状態のページ表示領域のページは変更せず、タッチ状態の右小口を表示する領域上のタッチ位置で示されるページで、非タッチ状態のページを変更し、
前記設定工程で独立モードが設定されている状態で、前記検出工程により１つのタッチも検出されなくなった場合には、タッチリリースする直前に前記第１ページ表示領域、前記第２ページ表示領域それぞれ表示されたページを維持し、
前記設定工程で連動モードが設定されている状態で、前記検出工程により１つのタッチも検出されなくなった場合には、前記非タッチ状態のページ表示領域のページを、前記タッチ状態のページ表示領域に表示されたページの隣のページで変更する
ことを特徴とする表示装置の制御方法。
【請求項１１】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項１乃至８のいずれか１項に記載の表示装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のページを有する電子文書をページ単位で表示する表示装置及びその制御方法に関する。
【背景技術】
【０００２】
近年、複数ページの画像データ(電子文書)からなる電子書籍をディスプレイ上に表示することでユーザによる閲覧を可能とする、所謂電子書籍の普及が目覚ましい。従来の電子書籍においては、次ページボタンや前ページボタンを押下することによって、閲覧ページのインクリメントやディクリメントを行っていた。また、捲りたい方向に見開きページをドラッグしてページを捲る方法もある。
【０００３】
電子書籍におけるページ捲り方法としては、以下のような方法が提案されている(例えば、特許文献１参照)。すなわち、まず表示された電子書籍の小口(背表紙の反対側である見開き部)をタッチしてドローイング(ドラッグ)すると、ドローイング位置にある小口内のページのページ番号を抽出して、吹き出し内に表示する。そして、ドローイングしている手指を離すと、吹き出しに表示されているページ番号のページにジャンプする。また、ページ表示中に、背景部分にタッチすると、表示中のページにブックマーク(しおり)が付けられる。吹き出し内には、ページ番号、または、サムネイル画面、または、目次が参照情報として表示される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２０００−２４２３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載されたページ捲り方法では、吹き出し内に表示される参照情報が、ページ番号、サムネイル画面、目次である。これら吹き出し内の参照情報をより大きくして読みたい場合、該参照情報を現在表示されているページ(元ページ)と同じサイズの表示領域または同じ文字サイズである参照先のページ(参照ページ)として表示することはできない。
【０００６】
また、上記特許文献１に記載されたページ捲り方法では、ドローイング中に手を離すと吹き出し中のページにジャンプしてしまう。したがって、元ページと参照ページとを同時に読んで内容を比較しながら、元ページに戻るか、参照ページにジャンプするかを選択することはできない。また、元ページを固定しておいて参照ページをパラパラ捲ったり、参照ページを固定しておいて元ページをパラパラ捲ったりして、新たな閲覧ページを選択することはできない。即ち、従来の電子文書を表示する技術においては、紙の書籍において行われる自在なページ表示操作については改善の余地がある。
【０００７】
本発明は上記問題を解決するものであり、電子文書をページ単位で表示する際に、任意のページを閲覧しながら、他のページの同サイズでの参照、ジャンプ、復帰等の自在なページ表示操作を可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための一手段として、本発明の表示装置は以下の構成を備える。
【０００９】
すなわち、表示装置であって、
左ページを表示するための左ページ表示領域、右ページを表示するための右ページ表示領域、前記左ページ表示領域に表示されるページより左側に更なるページが存在することを示す左小口、前記右ページ表示領域に表示されるページより右側に更なるページが存在することを示す右小口を含む、コンテンツの見開きページを表示画面に表示する表示手段と、
前記表示画面上の複数のタッチ位置を検出可能な検出手段と、
前記表示画面に表示される前記見開きページを、前記検出手段で検出されたタッチ位置に応じて変更する変更手段とを有し、
前記変更手段は、
前記検出手段により、一方が前記右小口を表示する領域に対するタッチ、他方が前記左ページ表示領域に対するタッチの２つのタッチが検出された場合、前記左ページ表示領域のページは変更せず、前記右小口を表示する領域上のタッチ位置で示されるページで前記右ページ表示領域のページを変更するとともに、前記左ページ表示領域と前記右ページ表示領域に表示されたページ間に他のページの存在を示す中小口を表示し、
前記検出手段により、一方が前記左小口を表示する領域に対するタッチ、他方が前記右ページ表示領域に対するタッチの２つのタッチが検出された場合、前記右ページ表示領域のページは変更せず、前記左小口を表示する領域上のタッチ位置で示されるページで前記左ページ表示領域のページを変更するとともに、前記中小口を表示し、
前記検出手段により、一方が前記中小口を表示する領域に対するタッチ、他方が前記左ページ表示領域又は右ページ表示領域のいずれかのページ表示領域に対するタッチの２つのタッチが検出された場合、タッチされたページ表示領域のページは変更せず、前記中小口を表示する領域上のタッチ位置で示されるページで非タッチのページ表示領域のページを変更し、
前記中小口を表示する領域に対するタッチのリリースが検出された場合、前記左ページ表示領域、前記右ページ表示領域に連続するページを表示するため、非タッチのページ表示領域に表示されたページを、タッチされたページ表示領域に隣接するページで置き換えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、電子文書をページ単位で表示する際に、任意のページを閲覧しながら、他のページの同サイズでの参照、比較、ジャンプ、復帰等の自在なページ表示操作が可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態における電子書籍の構成を示すブロック図、
【図２】第１実施形態における電子書籍の概観を示す図、
【図３】一般的な紙の本におけるページ捲り操作を示す図、
【図４】第１実施形態におけるページデータ構造を示す図、
【図５】第１実施形態におけるページ捲り処理を示すフローチャート、
【図６】第１実施形態におけるシングルタッチ処理を示すフローチャート、
【図７】第１実施形態におけるダブルタッチ処理を示すフローチャート、
【図８】、
【図９】、
【図１０】、
【図１１】、
【図１２】、
【図１３】、
【図１４】、
【図１５】、
【図１６】、
【図１７】第１実施形態におけるページ捲り操作による画面遷移例を示す図、
【図１８】、
【図１９】第２実施形態におけるページ捲り操作による画面の遷移例を示す図、
【図２０】第３実施形態におけるページデータ構造を示す図、
【図２１】第３実施形態におけるページ捲り処理を示すフローチャート、
【図２２】第３実施形態におけるリリース状態処理を示すフローチャート、
【図２３】第３実施形態におけるシングルタッチ処理を示すフローチャート、
【図２４】第３実施形態におけるダブルタッチ処理を示すフローチャート、
【図２５】、
【図２６】、
【図２７】第３実施形態におけるページ捲り操作による画面遷移例を示す図、
【図２８】第４実施形態におけるページデータ構造を示す図、
【図２９】第４実施形態におけるページ捲り処理を示すフローチャート、
【図３０】第４実施形態におけるモード切り替え処理を示すフローチャート、
【図３１】第４実施形態におけるシングルタッチ処理を示すフローチャート、
【図３２】第４実施形態におけるダブルタッチ処理を示すフローチャート、
【図３３】第４実施形態におけるページ捲り操作による画面遷移例を示す図、
【図３４】、
【図３５】第５実施形態における小口表示例を示す図、である。
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
＜第１実施形態＞
●処理概要
本発明は、複数ページを有する電子文書をページ単位で表示する表示装置において、以下の機能を実現する。まず、電子文書の複数ページにおける第１のページを表示する第１のページ表示領域と第２のページを表示する第２のページ表示領域と前記第１および第２のページ以外のページの存在を示す小口領域とを表示する。そしてさらに、該表示された各領域に対するユーザのタッチ位置を検出し、該検出結果に応じて第１および第２のページを設定する。このとき、２箇所へのタッチ継続が検出されたダブルタッチ状態であれば、該２箇所のタッチ位置のそれぞれに対応するページを第１および第２のページに設定する。
【００１４】
これにより、第１および第２のページが比較可能な状態で表示され、いずれのページを閲覧するかを選択したり、第１のページを固定したまま第２のページを捲る等、あたかも通常の本のようなページ捲り操作を行うことが可能となる。
【００１５】
●電子書籍の構成
図１は、本発明において電子書籍を実現する電子文書表示装置の構成を示すブロック図である。同図において、10は電子文書表示装置本体である。電子文書表示装置10には、CPU11、ROM12、RAM13、文書記憶部14、入力表示画面15、入力イベント処理部16、操作ボタン類17が具備されている。電子文書表示装置10は、ROM12に記憶された文書閲覧プログラムをCPU11が読み出して実行することによって動作する。動作中にはRAM13を用いて、文書閲覧プログラムの実行中に使用される変数データや文書データの読み書きが行われる。文書記憶部14には、テキストや画像からなる電子書籍コンテンツ(電子文書)がページ順に記憶されている。なお、電子書籍のコンテンツの内容については特に限定されない。小説のようにテキストのみからなるものであっても良いし、論文のようにテキストと画像が混在したものでも、写真集やアルバムのように画像のみからなるものであっても良い。入力表示画面15はタッチパネルからなり、電子書籍の見開きページ、ページ捲り用の小口、その他の操作メニューが表示されており、ユーザは入力表示画面15をタッチしてページ捲りの操作を行う。
【００１６】
ユーザのタッチ操作は、入力イベント処理部16によって検出されて処理される。ここでは、入力表示画面15へのタッチの有無、タッチがシングルタッチ操作であるかダブルタッチ操作であるか、タッチがタップ操作であるかドラッグ操作であるか、等が解析される。本実施形態におけるタッチの状態としては、リリース状態、シングルタッチ状態、ダブルタッチ状態がある。リリース状態とは、入力表示画面15に指が触れておらず、タッチが検出されない状態である。またシングルタッチ状態とは、入力表示画面15上の１箇所へのタッチが検出された状態であり、ダブルタッチ状態とは、入力表示画面15上の異なる２箇所へのタッチが検出された状態である。なお、リリース状態とダブルタッチ状態の間の状態遷移としては、常にシングルタッチ状態を経て移行するものとする。またタップ操作とは、指でタッチパネルを軽くたたく操作である。またドラッグ操作とは、指がタッチパネルに触れたまま移動する操作であり、タッチ継続中にタッチ位置の移動が検出されると、ドラッグ操作状態であると判定される。
【００１７】
図２(a)に、電子書籍としての電子文書表示装置10の概観を示す。以下、電子文書表示装置10を電子書籍10とも表記する。電子書籍10の表面には、タッチパネルからなる入力表示画面15と、操作ボタン類17が配置されている。また図２(b)は、ユーザが電子書籍10を両手で持ち、入力表示画面15を指でタッチしながらページ捲りの操作を行っている様子を示す。
【００１８】
●紙の書籍におけるページ捲り操作
ここで図３を用いて、一般的な紙の書籍(以下、本)におけるページ捲り操作について説明する。以下では、ユーザが現在読んでいるページ(元ページ)を(元)と表記し、元ページを読みながら一時参照したページ(参照ページ)を参照された順に(参1)、(参2)、(参3)、…のように表す。また、本内のページを単にPで表記する。
【００１９】
図３(a)は、ユーザが本の10Pと11Pを開き、左手指LF1で10Pを押さえ、右手指RF1で11Pを押さえて10P(元)を読んでいる状態を示す。この状態から、図３(b)に示すように左手指RF1で11Pを捲ると、図３(c)に示すように12Pと13Pが見開きページとなる。また図３(d)は、図３(a)の状態から、左手指LF1で10P(元)を押さえたまま、パラパラとページを捲って27P(参1)を参照する様子を示す。ユーザは、図３(d)の状態であれば元ページ(元)と参照ページ(参1)とを同じように読むことができ、元ページに戻ったり(図３(a))、参照ページにジャンプしたり(図３(f))することができる。また図３(e)は、左手指LF2で10P(元)を押さえておき、さらに右手指RF1で27P(参1)を押さえておきながら、左手指LF1でパラパラとページを捲って別の参照先を探索する様子を示す。ここでは図３(g)に示すように、新たなに20P(参2)を参照する例を示す。このように、一般的な紙の本であればユーザは、元ページ(元)を確保しつつ、2つの参照ページ(参1、参2)を同じように読むことができる。そのうえで、元ページ(元)に戻ったり(図３(a))、参照ページ(参1)にジャンプしたり(図３(f))、別の参照ページ(参2)にジャンプしたり(図３(h))することができる。このように、ページ捲りにおいて元ページに戻る操作を「復帰」と称し、参照ページにジャンプする操作を「参照」と称する。
【００２０】
このように、紙の本であれば、１ページずつページを捲って読むことができるのはもちろんのこと、元ページを読みながら、パラパラとページを捲って他ページを参照することもできる。このとき、元ページと参照ページは、いずれが元ページであっても参照ページであっても良く、一方を読みながら他方を参照でき、元ページと参照ページのいずれにもジャンプできる。
【００２１】
このように、パラパラと他ページを参照しながら読む方法によれば、ユーザは元ページの情報を手掛かりとして、関連する他ページを見つけ出すことができる。そして、さらに関連する他ページをどんどん辿りながら、興味のある関連情報に効率よくアクセスすることができる。
【００２２】
●ページデータ構造とページ表示形式
図４(a)と図４(b)は、電子書籍10におけるページデータ構造とページ表示形式を示す図である。同図において、PD[i]がiページ目のページデータを示し、メモリカードやネットワークを介して読み込まれた書籍のコンテンツ(テキストや画像)が記憶されている。また、PAは書籍全体が表示される全ページ領域である。全ページ領域PAは、見開き表示用の左拡大ページLWP(第１のページ表示領域)と右拡大ページRWP(第２のページ表示領域)と、該見開き以外のページの存在を示す小口領域からなる。小口領域（以下、単に小口と称する）には、それぞれが該領域内の各ページに対応する複数の小口ページ領域（以下、単に小口ページと称する）が表示される。ページデータPD[i]のそれぞれには、全ページ領域PA内での位置と大きさが設定されることで、拡大ページまたは小口内の小口ページとして表示される。
【００２３】
本実施形態においては、左拡大ページLWPと右拡大ページRWPのそれぞれに1ページ分のコンテンツが表示される。また小口には、左小口LKG(第１の小口領域)、右小口RKG(第２の小口領域)、中小口CKG(第３の小口領域)がある。これら各小口は、関連付けられたページ数が多いほど、表示サイズ(表示幅)が大きくなる。図４(a),(b)に示すように、左小口LKGには左小口ページLKGP[9]やLKGP[8]が表示される。また中小口CKGには中小口ページCKGP[14]やCKGP[99]が、右小口RKGには右小口ページRKGP[12]やRKGP[13]が表示される。
【００２４】
各小口ページLKGP[i]、CKGP[i]、RKGP[i]には、ページデータPD[i]が関連付けられる。本実施形態では、LKGP[i]などの小口ページに関連付けられたページデータPD[i]も小口ページと呼ぶ。例えば左小口ページに対して関連づけられた小口ページ、例えばLKGP[11]=PD[11]なる関連付けにおける小口ページPD[11]は、左小口ページLKGP[11]によって指定される位置と大きさで表示される。
【００２５】
また、左拡大ページLWP、右拡大ページRWPにも、ページデータPD[i]が関連付けられる。本実施形態では、LWPなどの拡大ページに関連付けられたページデータPD[i]も拡大ページと呼ぶ。例えば左拡大ページに対して関連付けられた拡大ページ、例えばLWP=PD[12]なる関連付けにおける拡大ページPD[12]は、左拡大ページLWPによって指定される位置と大きさで表示される。本実施形態では、左拡大ページLWPと右拡大ページRWPに、それぞれに関連付けられたページのコンテンツがほぼ同サイズで表示される。
【００２６】
ここでは、全500Pからなる書籍のコンテンツを読み込んだ例を示す。その場合、読み込まれた1P〜500P分のコンテンツは、ページごとにページデータPD[1]〜PD[500]に記憶される。またページデータPD[0]は空であり、書籍の先頭の空白ページを示すが、書籍名や作者名のデータ等を記憶しても良い。ページデータPD[i](i=0〜500)は、その位置と大きさを変えて、左／右拡大ページ、または、左／中／右小口ページとして表示される。
【００２７】
図４(a)は、シングルタッチによって、１ページずつ前後にページを捲ったり、パラパラと前後にページを捲ったりする操作における、左／右拡大ページおよび左／右小口ページの表示例を示す。ここでは、左拡大ページLWPにページデータPD[10]が表示され、右拡大ページRWPにページデータPD[11]が表示されている。なお、左拡大ページLWPとして表示されるページ番号をLPとし、同様に、右拡大ページRWPとして表示されるページ番号をRPとする。したがって、例えば上記左拡大ページLWPにはページデータPD[LP(=10)]が表示され、右拡大ページRWPにページデータPD[RP(=11)]が表示されていると表現される。また、左拡大ページLWPの左側には、ページデータPD[9]、PD[8]、PD[7]、…が右から順番に左小口ページとして表示される。同様に右拡大ページRWPの右側には、ページデータPD[12]、PD[13]、PD[14]、…が左から順番に右小口ページとして表示される。小口ページの幅は拡大ページから離れるほど次第に狭くなっており、左右の小口には十分に多く(例えば100個)の小口ページを表示可能である。図４(a)の表示例では、拡大ページPD[10]と拡大ページPD[11]にはコンテンツが表示され、各小口ページPD[7]、PD[8]、PD[9]、PD[12]、PD[13]、PD[14]等には何も表示されない。すなわち、小口ページに対応するコンテンツは表示されず、現在の見開きページに応じたページ数分の小口が存在していることが視認できるように表示されていれば良い。
【００２８】
図４(b)は、ダブルタッチによって、片方の手指で元ページを押さえながら、他方の手指で別ページを参照する操作における、左／右拡大ページおよび左／中／右小口ページの表示例を示す。ダブルタッチ状態では、左右の拡大ページの間に中小口が出現する。ここでは、左拡大ページLWPにページデータPD[LP(=13)]が表示され、右拡大ページRWPにページデータPD[RP(=100)]が表示されている。このような離れたページの拡大表示は本実施形態における特徴をなすものであり、ダブルタッチ状態において可能となる。このようなページ拡大表示の詳細については後述する。
【００２９】
また、図４(b)における左拡大ページLWPの左側には、ページデータPD[12]、PD[11]、PD[10]、…が右から順番に左小口ページとして表示される。右拡大ページRWPの右側には、ページデータPD[101]、PD[102]、PD[103]、…が左から順番に右小口ページとして表示される。さらに左拡大ページLWPと右拡大ページの間に、ページデータPD[14]、PD[15]、…、PD[98]、PD[99]が左から順番に中小口ページとして表示される。小口ページの幅は拡大ページから離れるほど次第に狭くなっており、左／中／右小口には十分に多く(例えば100個)の小口ページが表示可能である。このとき、拡大ページPD[13]とPD[100]にはコンテンツが表示されるが、各小口ページPD[0]〜PD[12]、PD[14]〜PD[99]、PD[101]〜PD[500]等には何も表示されない。
【００３０】
●ページ捲り処理(全体)
以下、本実施形態におけるページ捲り処理について、図５のフローチャートを用いて説明する。本実施形態では電子書籍10において、上記図３を用いて説明した紙の本のように、元ページ(元)を読みながら別ページ(参1)を参照する、元ページ(元)に戻る、参照ページ(参1)にジャンプする、等の操作を可能とする。また参照ページ(参1)を読みながら、さらに別のページ(参2)を参照したり、これら参照ページ(参1、または参2)にジャンプすることを可能とする。
【００３１】
まずS101において、入力表示画面15内に、図４(a)や図４(b)に示すような全ページ領域PAを設定する。このとき、しおりモードをOFFに初期設定する。そしてS102において、メモリカードやネットワークを介して書籍のコンテンツを読み込む。書籍のコンテンツはテキストや画像から構成され、各ページに分割されている。ここでは、500Pからなるコンテンツを読み込んだものとし、該読み込まれた1P〜500Pのコンテンツは、ページデータPD[1]〜PD[500]にそれぞれ記憶される。またページデータPD[0]は空であり、書籍の先頭の空白ページを示す。次にS103において、左拡大ページ番号LP=0、右拡大ページ番号RP=1に初期設定する。すると、左拡大ページLWP=PD[LP(=0)]、右拡大ページRWP=PD[RP(=1)]となる。
【００３２】
次にS104において、ホームポジションにページデータを表示する。ここでホームポジションとは、例えば図４(a)のように、左拡大ページLWPと右拡大ページRWPが、それぞれのページ番号が連続する見開きページとして、入力表示画面15の中央に表示される状態のことをいう。
【００３３】
そしてS105において、しおりモードをONに設定するか否かをユーザに確認する。ここでしおりモードとは、参照したページにしおりを付与する処理モードである。S105においてYESならばS106に移ってしおりモード=ONに設定することで、参照したページに所定時間以上のタッチを行うことで、自動的にしおりが付与される。一方、S105においてNOならばS106をスキップしてS107に移ることで、しおりモード=OFFのままとなり、しおりの付与は行われない。
【００３４】
次にS107において、入力表示画面15がタッチされたか否かを判定する。S107でYESと判定されたらS109に移るが、NOと判定されたらS108に移ってホームポジションに現在セットされている各ページデータを表示した後、S122に移る。
【００３５】
S109では、しおりモード=ONであるか否かを判定し、しおりモード=ONと判定されたらS110に移るが、しおりモード=OFFと判定されたらS111に移る。
【００３６】
S110では、しおりがタッチされたか否かを判定し、YESならばS118に移るが、NOならばS111に移る。
【００３７】
S111では画面へのタッチがシングルタッチであるか否かを判定し、YESと判定されたらS112に移るが、NOと判定されたらS114に移る。なお、シングルタッチ／ダブルタッチの判定は、上述したように入力イベント処理部16において行われる。S112では、S110で検出されたタッチを第１のタッチTA1として設定する。そして、S113でシングルタッチ処理を行ってS122に移るが、このシングルタッチ処理の詳細については後述する。
【００３８】
S114では、画面へのタッチがダブルタッチであるか否かを判定し、YESと判定されたらS115に移るが、NOと判定されたらS122に移る。S115では、S112で設定された第１のタッチTA1とは別のタッチを、第２のタッチTA2として設定する。そして、S116でダブルタッチ処理を行ってS117に移るが、このダブルタッチ処理の詳細については後述する。
【００３９】
そしてS117において、第１のタッチTA1と第２のタッチTA2を交換して、S122に移る。本実施形態ではこのように、第１のタッチTA1と第２のタッチTA2とを短時間内で常に交換し続ける。これにより、ダブルタッチ処理が行われた際に、2つのタッチがドラッグ操作であったとしてもそれぞれのタッチによってページ捲りができるようにしている。
【００４０】
S122では処理タイミングの調整を行った後、S123に移る。S122を通る全てのループ処理は、S123において全処理の終了が判定されるまで、繰り返し行われる。S122では、この繰り返しループの間隔を一定の非常に短い時間(例えば、WAIT=100msec)に設定している。そして、全てのループ処理はこのWAIT時間によって同期をとっている。これにより、複数のタッチイベントの処理と描画処理とを同時並行に行うことが可能となる。
【００４１】
S123では、例えば不図示の終了ボタンの押下等に応じて、処理を終了するか否かを判定し、処理続行と判定されるとS107に戻る。
【００４２】
一方、S118では、S110でのしおりのタッチ具合に応じて、しおりのページにジャンプするか否かを判定する。具体的には、しおりの上半分がタッチされたならばしおりのページにジャンプするものと判定し、しおりの下半分がタッチされたならばしおりを削除するものと判定する。S118でYESと判定されたらS119に進むが、NOと判定されたらS121に進み、しおりを削除してS107に戻る。
【００４３】
S119でしおりのページにジャンプした後、S120でしおりのページを左右いずれかの拡大ページとしてホームポジションに見開き表示し、S107に戻る。なおS120では、表示すべきしおりのページが、しおりが付された際に左拡大ページであったならば、左拡大ページとして表示する。同様に、しおりが付された際に右拡大ページであったならば、右拡大ページとして表示する。
【００４４】
●シングルタッチ処理
以下、上記S113におけるシングルタッチ処理について、図６のフローチャートを用いて詳細に説明する。
【００４５】
まずS201で、第１のタッチ位置CTA1を算出する。詳細には、入力表示画面15上で指の接触が第１のタッチTA1として検出された場合に、該接触領域の重心を、第１のタッチ位置CTA1として算出する。次にS202で、第１のタッチ位置CTA1が左小口LKG内であるか否かを判定し、YESならばS203に移り、NOならばS205に移る。
【００４６】
S203では、第１のタッチ位置CTA1に対応する小口ページのページ番号PNを取得する。ここでは、入力表示画面15における第１のタッチ位置CTA1から、対応するページデータPD[i]のiを求め、PN=iとする。
【００４７】
次にS204で、S203で取得した小口ページのページデータPD[PN]が左拡大ページLWPに表示されるようにセット(ページ設定)する。すなわち、ページデータPD[PN]を、タッチされた小口ページ位置に左端を固定した状態で右方向に拡大して、左拡大ページLWPとしてセットし、左拡大ページ番号LPに、S203で取得したページ番号PNをセットする(LP=PN)。また、ページデータPD[PN+1]を右拡大ページRWPとしてセットし、右拡大ページ番号RPにページ番号PN+1をセットする(RP=PN+1)。また、左拡大ページLWPと右拡大ページRWPの前後のページについては、ページの順序を保って、左小口LKGと右小口RKGにそれぞれの小口ページとしてセットする。このようなページ設定により、例えば後述する図１１に示す画面例1(g)→画面例1(h)のように表示が遷移する。
【００４８】
一方、S205では第１のタッチ位置CTA1が右小口RKG内であるか否かを判定し、YESならばS206に移り、NOならばS208に移る。S206では上記S203と同様に、第１のタッチ位置CTA1に対応する小口ページのページ番号PNを取得する。次にS207で、S206で取得した小口ページのページデータPD[PN]が右拡大ページRWPに表示されるようにセットする。すなわち、ページデータPD[PN]を、タッチされた小口ページ位置に右端を固定した状態で左方向に拡大して、右拡大ページRWPとしてセットし、右拡大ページ番号RPに、S206で取得したページ番号PNをセットする(RP=PN)。また、ページデータPD[PN-1]を左拡大ページLWPとしてセットし、左拡大ページ番号LPにページ番号PN-1をセットする(RP=PN-1)。また、左拡大ページLWPと右拡大ページRWPの前後のページについては、ページの順序を保って、左小口LKGと右小口RKGにそれぞれの小口ページとしてセットする。
【００４９】
S208では、左／右の拡大ページ(LWP／RWP)に対し、現在セットされているページデータPD[PN]のコンテンツおよびページ番号PNを表示する。また、左／右の小口についても同様に、現在セットされている小口ページを表示する。これにより、シングルタッチ処理を終了する。なお、拡大ページについては視認されやすいように、例えば枠等を付して表示しても良い。
【００５０】
●ダブルタッチ処理
以下、上記S116におけるダブルタッチ処理について、図７のフローチャートを用いて詳細に説明する。なお上述したように、本実施形態におけるダブルタッチ状態は、常にシングルタッチ状態を経て遷移する。したがって、S116のダブルタッチ処理も、前回のループ処理においてS113のシングルタッチ処理を経た後に、実行される。すなわちダブルタッチ処理の実行時には、既に第１のタッチ位置CTA1が算出され、該CTA1に応じた左右の拡大ページ表示および左右の小口表示が行われていることになる。
【００５１】
ダブルタッチ処理においてはまずS301で、既に算出されている第１のタッチ位置CTA1が左拡大ページLWPにあるか否かを判定し、YESならばS302に移り、NOならばS306に移る。
【００５２】
S302では、第２のタッチ位置CTA2を算出する。詳細には、入力表示画面15上において、第１のタッチTA1とは異なる接触領域である第２のタッチTA2について、その重心を第２のタッチ位置CTA2として算出する。そしてS303で、第２のタッチ位置CTA2が中小口CKGまたは右小口RKGのいずれかにあるか否かを判定し、YESならばS304に移る。一方、NOである、すなわち第２のタッチ位置CTA2が中小口CKGにも右小口RGKにもない場合には、S311に移る。
【００５３】
S304では、第２のタッチ位置CTA2が位置する小口ページのページ番号PNを取得する。ここでは第２のタッチ位置CTA2の直下にある小口ページのページデータPD[i]のiを求め、ページ番号PN=iとする。
【００５４】
次にS305で、S302で取得した小口ページのページデータPD[PN]が右拡大ページRWPに表示されるようにセットする。すなわち、ページデータPD[PN]を、タッチされた小口ページ位置に右端を固定した状態で左方向に拡大して、右拡大ページRWPとしてセットし、右拡大ページ番号RPに、S304で取得したページ番号PNをセットする(RP=PN)。また、左拡大ページLWPと右拡大ページRWPの前後のページについては、ページの順序を保って、左小口LKG、中小口CKG、右小口RKGにそれぞれの小口ページとしてセットする。その後、処理はS311へ移る。
【００５５】
一方、S306では、第１のタッチ位置CTA1が右拡大ページRWPにあるか否かを判定し、YESならばS307に移り、NOならばS311に移る。
【００５６】
S307では、上記S302と同様に、第２のタッチ位置CTA2を算出する。そしてS308では、第２のタッチ位置CTA2が中小口CKGまたは左小口LKGのいずれかにあるか否かを判定し、YESならばS309に移る。一方、NOである、すなわち第２のタッチ位置CTA2が中小口CGKにも左小口LGKにもない場合には、S311に移る。
【００５７】
S309では、第２のタッチ位置CTA2が位置する小口ページのページ番号PNを、上記S304と同様に取得する。
【００５８】
次にS310で、S309で取得した小口ページのページデータPD[PN]が左拡大ページLWPに表示されるようにセットする。すなわち、ページデータPD[PN]を、タッチされた小口ページ位置に左端を固定した状態で右方向に拡大して、左拡大ページLWPとしてセットし、左拡大ページ番号LPに、S309で取得したページ番号PNをセットする(LP=PN)。また、左拡大ページLWPと右拡大ページRWPの前後のページについては、ページの順序を保って、左小口LKG、中小口CKG、右小口RKGにそれぞれの小口ページとしてセットする。その後、処理はS311へ移る。
【００５９】
S311では、左／右の拡大ページ(LWP／RWP)に対し、現在セットされているページデータPD[PN]のコンテンツおよびページ番号PNを表示する。また、左／中／右の小口についても同様に、現在セットされている小口ページを表示する。なお、拡大ページについては視認されやすいように、例えば枠等を付して表示しても良い。
【００６０】
次にS312で、しおりモード=ONであるか否かを判定し、YESならばしおりの付与処理を行うためにS313に移るが、NOならばダブルタッチ処理を終了する。そしてS313では、中小口があるか否かを判定し、YESならばしおりの付与処理を行うためにS314に移るが、NOならば、ダブルタッチ処理を終了する。本実施形態ではこのように、中小口が出現した場合にのみ、ユーザがダブルタッチによって他のページをパラパラ捲りながら参照を行っている、すなわち参照モードであると判定し、しおり付与を行うように制御する。これにより、通常の閲覧中における見開きページにまでしおりが付与されてしまうことを防ぐことができる。そしてS314では、タッチ時間が所定時間(例えば、10秒)以上であるページにしおりを付与して、ダブルタッチ処理を終了する。
【００６１】
●ページ捲り操作
以下、本実施形態の電子書籍10におけるユーザのページ捲り操作と機器の応答について、図８〜図１７の表示画面遷移を用いて詳細に説明する。なお、図８〜図１７は、各図に2画面づつ、全20画面分の表示例を示し、以下、該20画面のそれぞれを、画面例1(a)〜(s)によって参照するとする。ここでは、上記図５のS105,S106において、しおりモード=OFFに設定されているものとする。また、以下に説明する操作ごとに、上記図５〜図７において対応するステップ番号を記す。
【００６２】
まず画面例1(a)に、数ページを捲って10Pと11Pとが左／右の拡大ページとして、ホームポジションに見開き表示されている様子(S108)を示す。このとき、ユーザは画面に指をタッチしておらず、すなわちリリース状態である。この状態で画面にシングルタッチを行った様子を画面例1(b)に示す。シングルタッチTA1の初期の重心がCTA1=PT101であり、この重心CTA1が、右拡大ページ上のPT101から、右小口ページPD[15]の位置PT103に移動するように、最短経路でドラッグする(Drag1)。
【００６３】
このDrag1の操作中の処理の流れとしては、図５のS107でYES、S109でNO、S111でYES、S123でNO、となり、S107〜S109〜S111〜S112〜S113〜S122〜S123〜S107のループを巡回する。このとき、シングルタッチ処理(S113)の内部では、タッチ位置CTA1が右小口RKG上にあると判定する(S201〜S202〜S205)。またタッチ位置の移動に伴って、小口ページPD[12]、PD[13]、PD[14]、PD[15]のページ番号PN=12,13,14,15を取得する(S206)。そして、タッチ位置CTA1下の小口ページPD(PN)[PN=12,13,14,15]を、CTA1の移動に従って順次右拡大ページRWPとする(S207)。したがって、このDrag1の操作では、画面例1(b),(c),(d)のようにページ表示が遷移する。
【００６４】
画面例1(d)の状態で、ユーザが画面から指を離すと、画面例1(e)のように、14Pと15Pとが左／右拡大ページとして、ホームポジションに見開き表示される(リリース状態、S108)。画面例1(e)の状態で、右小口ページPD[17]の位置PT104をユーザが指でタッチする場合について考える(S201〜S202〜S205〜S206)。この場合、画面例1(f)のようにPD[17]が右拡大ページRWPとして表示される(S207〜S208)。この状態で指を離すと、画面例1(g)のように、16Pと17Pとがそれぞれ左／右拡大ページとして、ホームポジションに見開き表示される(リリース状態、S107〜S108)。また、画面例1(g)の状態で、左小口ページPD[13]の位置PT105を指でタッチする(S201〜S202〜S203)と、画面例1(h)のようにPD[13]が左拡大ページLWPとして表示される(S204〜S208)。以下、左拡大ページLWPとして表示された13Pを元ページとして、以降の画面遷移を説明する。
【００６５】
次に、画面にダブルタッチを行う例を示す。まず画面例1(i)のように、ユーザが第１のタッチTA1を左拡大ページLWP上のPT105の位置に行いながら、第２のタッチTA2を右拡大ページ上のPT106の位置に行った状態(ダブルタッチ状態)を考える。そして、第２のタッチTA2を、PT106の位置から、右小口ページPD[18]の位置PT108に位置するように、最短経路でドラッグする(Drag2)。
【００６６】
このDrag2の操作中の処理の流れとしては、図５のS107でYES、S109でNO、S111でNO、S114でYES、S123でNO、となる。すなわち、S107〜S109〜S111〜S114〜S115〜S116〜S117〜S122〜S123〜S107のループを巡回する。このとき、ダブルタッチ処理(S116)の内部では、第１のタッチ位置CTA1が左拡大ページLWP上にあり、第２のタッチ位置CTA2が右小口RKG上にあることを判定する(S301〜S302〜S303)。また第２のタッチ位置CTA2の移動に伴って、小口ページPD[15]、PD[16]、PD[17]、PD[18]のページ番号PN=15,16,17,18を取得する(S304)。そして、第２のタッチ位置CTA2下の小口ページPD(PN)[PN=15,16,17,18]を、CTA2の移動に従って順次右拡大ページRWPとする(S305)。したがって、このDrag2の操作では、画面例1(i),(j),(k)のように、左拡大ページのLWP=13P(元)を固定したまま、右拡大ページRWPとして14P、15P、18Pが順次表示される。
【００６７】
さらに画面例1(k)のように、ダブルタッチしながら、第１のタッチ位置CTA1をPT105の位置に固定として、第２のタッチ位置CTA2をPT108からPT109の位置にドラッグする場合を考える(Drag3)。すると画面例1(l)のように、参照ページとして100P(参1)が表示される。画面例1(l)において今度は、第２のタッチ位置CTA2をPT109の位置に固定として、第１のタッチ位置CTA1を、左拡大ページ上のPT105から、中小口上であるPT110の位置にドラッグする(Drag4)。本実施形態では第１のタッチTA1と第２のタッチTA2が所定時間間隔で交換されて処理される(S117)。したがってダブルタッチ処理(S116)においても画面例1(m)のように、右拡大ページRWP=100P(参1)を固定としたまま、左拡大ページLWP=50P(参2)が表示される。
【００６８】
次に、画面例1(m)のダブルタッチ状態から50P(参2)を押さえている指を離した場合を考える。この場合、S107〜S109〜S111を経て、S112において、画面例1(m)におけるPT109の位置が、第１のタッチ位置CTA1として設定される。するとシングルタッチ処理(S113)の内部では、S201〜S202を経て、S205においてNOと判定される。これによりS208で画面例1(n)のように、右拡大ページRWP=100Pに対し、隣接する99Pが左拡大ページLWPとして表示される(シングルタッチ状態)。
【００６９】
画面例1(n)のシングルタッチ状態から100P(参1)を押さえている指を離すと、画面例1(p)のように99Pと100Pとが左／右の拡大ページとして、ホームポジションに見開き表示される(リリース状態)。
【００７０】
一方、画面例1(m)のダブルタッチ状態から100P(参1)を押さえている指を離した場合を考える。すると画面例1(q)のように、左拡大ページLWP=50Pに対し、隣接する51Pが右拡大ページRWPとして表示される(シングルタッチ状態)。さらに、画面例1(q)の状態から押さえている指を離すと、画面例1(r)のように50Pと51Pとが左／右の拡大ページとして、ホームポジションに見開き表示される(リリース状態)。
【００７１】
同様に、画面例1(i),(j),(k),(l)のダブルタッチ状態から右側のタッチTA2を離すと、画面例1(h)のような表示となる(シングルタッチ状態)。そしてさらに画面例1(h)の状態から指を離すと、画面例1(o)のような表示となる(リリース状態)。
【００７２】
なお、ドラッグ位置にある小口ページがパラパラ捲れるようにしても良い。そのためには、タッチ中の小口ページの幅を徐々に広げて表示することが望ましい。例えば、シングルタッチ状態において、画面例1(b)におけるCTA1=PT101の位置から、画面例1(d)におけるCTA1=PT103までドラッグした場合に、画面例1(s)のように、ページがパラパラと捲れるように表示される。この場合には画面例1(s)のDrag5のように、タッチ位置CTA1が移動するに従って、CTA1の位置にある小口ページが順次拡大表示される。また、ダブルタッチ状態においても、画面例1(i)におけるCTA2=PT106の位置から、画面例1(k)におけるCTA2=PT108までドラッグした場合に、画面例1(t)のように、ページがパラパラと捲れるように表示される。この場合には画面例1(t)のDrag6のように、第２のタッチ位置CTA2が移動するに従って、CTA2の位置にある小口ページが順次拡大表示される。なお、パラパラ捲り中のページの中から所望のページをタッチすると、タッチしたページにジャンプするようにしても良い。また、ドラッグの速度や圧力に応じて、小口ページをめくる速度(捲る単位)を変更しても良い。
【００７３】
●第１実施形態により得られる効果
以上説明したように本実施形態によれば、以下のような効果が得られる。まず、上記画面例1(i),(j),(k),(l)に示すように、ユーザは任意の元ページ(元=13P)を読みながら、その後方の任意ページ(ここでは14P,15P,18P,…,参1=100P、等)を参照することができる。このとき、参照先のページは元ページと同じサイズで表示されるため、元ページと同様に読むこと、すなわち読み比べることができる。また、画面例1(l),(m)に示すように、一旦参照したページ(参1=100P)を新たな元ページとして、その前方の任意のページ(例えば、参2=50P)を参照することができる。
【００７４】
このように本実施形態の電子書籍10によれば、ページを１ページずつ捲って読むことはもちろん、元ページを読みながら、パラパラとページを捲って他ページを参照することができる。このとき、元ページと参照ページはどちらが元ページであってもどちらが参照ページであっても良く、一方を読みながら他方を捲って参照することができ、元ページと参照ページのどちらにでもジャンプでき、また復帰できる。すなわち、元ページと参照ページとを同時に読んで内容を比較しながら、元ページに戻るか、参照ページにジャンプするかを選択することが可能になる。即ち、複数のタッチ操作夫々に応じたページ設定を複数のページ表示領域において行うので、自在なページ表示操作を容易に行うことができる。
【００７５】
このように、あたかも紙の本であるかのような操作性が実現され、元ページに対して連続していない他ページを参照しながら読むことができるため、元ページの情報を手掛かりとして、関連する他ページを見つけ出すことができる。そして、さらに関連する他ページをどんどん辿りながら、興味のある関連情報に効率よくアクセスすることができる。
【００７６】
＜第２実施形態＞
以下、本発明に係る第２実施形態について説明する。
【００７７】
上記図３を用いて説明したように、紙の本であれば、元ページ(元)を読みながら別ページ(参1)を参照する、元ページ(元)に戻る、参照ページ(参1)にジャンプする、等の操作が可能である。また参照ページ(参1)を読みながら、さらに別のページ(参2)を参照し、いずれの参照ページ(参1、または参2)にジャンプすることもできる。このように、紙の本であれば、元ページ(元)から参照ページ(参1)を参照したり、さらに、(参1)から(参2)、(参2)から(参3)、(参3)から(参4)、…と、連続していないページ順に読み進めることも可能である。
【００７８】
第２実施形態においては、このように(元)、(参1)、(参2)、(参3)、(参4)、…とページを捲って参照を行った際に、これらの連続していない参照ページへのジャンプを可能とする。そのために第２実施形態では、ダブルタッチ状態になると、ユーザが他のページをパラパラ捲りながら参照している、すなわち参照モードであると判定する。そして、ダブルタッチ状態において、所定時間を超えてタッチが継続されたページには自動的にしおりを付すことを特徴とする。しおりには、(元)、(参1)、(参2)、(参3)、(参4)、…のように、参照した各ページにその参照順が自動的に付与される。そして、しおりをタッチすると、対応するページにジャンプすることができる。もちろん、一旦付けたしおりをユーザが削除することも可能である。
【００７９】
なお、第２実施形態における電子文書表示装置の構成は上述した第１実施形態と同様であるため、説明を省略する。
【００８０】
●ページ捲り操作
以下、第２実施形態の電子書籍におけるユーザのページ捲り操作と機器の応答について、図１８、図１９の表示画面遷移を用いて詳細に説明する。なお、図１８、図１９は、上記図８等と同様に複数画面の表示例を示し、以下、それぞれを画面例2(a)〜(i)によって参照するとする。なお、図１８、図１９に示す画面例2(a)〜(i)は、例えば図８の画面例1(a)等と比較してページの縦方向の幅を狭く図示しているが、実際の表示では、図８の画面例1(a)と同様の縦横比でページが表示される。
【００８１】
第２実施形態におけるページ捲り処理の全体、およびその詳細であるシングルタッチ処理とダブルタッチ処理についての流れは、上述した第１実施形態で示した図５〜図７のフローチャートと同様である。したがって第２実施形態においても、以下に説明する操作ごとに、上記図５〜図７において対応するステップ番号を記す。なお、第２実施形態では、上記図５のS106において、しおりモード=ONに設定される。
【００８２】
まず画面例2(a)は、数ページを捲って10Pと11Pとが左／右の拡大ページとして表示された状態である。このとき、シングルタッチTA1が左拡大ページLWP上の第１のタッチ位置CTA1=PT201に行われている(S111でYES、S112〜S113)。この場合、10Pと11Pとが左／右拡大ページとしてそのまま表示されている(S208)。
【００８３】
次に、画面例2(b)のように、PT201の位置に第１のタッチTA1を行ったまま、PT202の位置に第２のタッチTA2を行う(ダブルタッチ状態)。第２のタッチTA2は、その重心CTA2が、右拡大ページRWP上のPT202の位置から右小口上のPT204の位置に移動するように、最短経路でドラッグする(Drag7)。例えば、左手指で10Pを押さえながら、右手指で11Pから56Pまでドラッグしたとする。このDrag7の操作中の処理の流れとしては、図５のS107でYES、S109でYES、S110でNO、S111でNO、S114でYES、S123でNO、となる。すなわち、S107〜S109〜S110〜S111〜S114〜S115〜S116〜S117〜S122〜S123〜S107のループを巡回する。このとき、ダブルタッチ処理(S116)の内部では、第１のタッチ位置CTA1が左拡大ページLWP上にあり、第２のタッチ位置CTA2が右小口RKG上にあることを判定する(S301〜S302〜S303)。また第２のタッチ位置CTA2の移動に伴って、小口ページPD[12]、PD[13]、…、PD[56]のページ番号PN=12,13,…,56を取得する(S304)。そして、第２のタッチ位置CTA2下の小口ページPD(PN)[PN=12,13,…,56]を、CTA2の移動に従って順次右拡大ページRWPとする(S305)。したがって、このDrag7の操作では、画面例2(c),(d)のように、左拡大ページのLWP=10P(元)を固定したまま、右拡大ページRWPとして12P、13P、…、56Pが順次表示される。
【００８４】
また、このDrag7の操作中に、S312でYESと判定される。さらに、画面例2(c)のように中小口CKGが出現すると、S313でYESと判定される。そしてS314において、ダブルタッチ状態でのタッチ時間が所定時間(例えば、10秒)以上であるページに対し、しおりが付与される。例えば画面例2(c)に示すように、10P(元)のタッチ時間が10秒を超えた時点で、10PにしおりIND1が付与される。しおりIND1の形態は任意であるが、ここでは、しおりにおいてページ番号の表示とともに、当該しおりを消去する際に選択される消去表示を行うとする。
【００８５】
次に、画面例2(d)のように、PT204の位置に第２のタッチTA2を行ったまま、第１のタッチTA1をPT201の位置からPT205の位置にドラッグする(Drag8)。例えば、右手指で56Pを押さえながら、左手指で10Pから6Pまでドラッグしたとする。このとき、第２実施形態でも第１のタッチTA1と第２のタッチTA2が所定時間間隔で交換されて処理される(S117)。したがって、ダブルタッチ処理(S116)において、左小口上にある方のタッチを第２のタッチTA2とみなし、画面例2(e)のように、右拡大ページRWP=56P(参1)を固定としたまま、左拡大ページLWP=6P(参2)が表示される。このDrag8の操作中におけるダブルタッチ状態で、タッチ時間が所定時間(例えば、10秒)以上を経過したページにしおりが付与される。例えば画面例2(e)に示すように、56P(参1)のタッチ時間が10秒を超えた時点で、56PにしおりIND2が付与される。
【００８６】
次に、画面例2(e)のように、PT205の位置に第１のタッチTA1を行ったまま、第２のタッチTA2をPT204の位置からPT206の位置にドラッグする(Drag9)。例えば、左手指で6Pを押さえながら、右手指で56Pから30Pまでドラッグしたとする。このDrag9の操作中におけるダブルタッチ状態で、タッチ時間が所定時間(例えば、10秒)以上を経過したページにしおりが付与される。例えば、画像例2(f)に示すように、6P(参2)のタッチ時間が10秒を超えた時点で、6PにしおりIND3が付与される。
【００８７】
そして、画面例2(f)の状態から第１のタッチTA1を離し、次に第２のタッチTA2を離す。すると画面例2(g)のように、29Pと30Pとが左／右拡大ページとして、ホームポジションに見開き表示される(リリース状態)。この状態で、画面例2(g)に示すしおりIND2の上半分の位置をタッチする。しおりの上半分の位置にはジャンプ先のページが表示されており、そこをタッチすることで当該表示ページにジャンプする。このときの処理の流れとしては、S107でYES、S109でYES、S110でYES、S118でYESと判定される。そして、S119でしおりの示すページが呼び出され、S120において該呼び出されたページ(ここでは56P)が拡大ページとなるように、ホームポジションに見開き表示される(画面例2(h))。
【００８８】
また、画面例2(h)に示す状態で、しおりIND2とIND3の下半分の位置をタッチすることで、当該しおりが削除される。このときの処理の流れとしては、S107でYES、S109でYES、S110でYES、S118でNOと判定される。そして、S121においてしおり(ここではIND2とIND3)が削除される(画面例2(i))。
【００８９】
●第２実施形態により得られる効果
以上説明したように第２実施形態によれば、ダブルタッチ状態において、タッチの継続が所定時間を超えたページはユーザが参照している参照ページであると判定する。そして参照ページであると判定されたページには、その参照順に応じたしおりが自動的に付与されるため、参照階層が大きくなっても、離れた参照元への戻りや、離れた参照先へのジャンプ等を行うことが可能になる。これにより、ページをパラパラ捲って参照元、参照先の関連情報を辿りながら、効率よく興味のある情報にアクセスすることができる。
【００９０】
＜第３実施形態＞
以下、本発明に係る第３実施形態について説明する。
【００９１】
第３実施形態では、シングルタッチ状態において、通常の紙の本のように、(0P,1P)、(2P,3P)、(4P,5P)の単位が見開きページとなるように、2ページずつのページ捲りを可能とする。またダブルタッチ状態では、それぞれのタッチによって1ページずつのページ捲りが行われる。また、2ページずつのページ捲りと、1ページずつのページ捲りとを滑らかにつなぐために、3つの異なる表示モード(第１小口モード、第２小口モード、第３小口モード)を用意する。
【００９２】
なお、第３実施形態における電子文書表示装置の構成は上述した第１実施形態と同様であるため、説明を省略する。
【００９３】
●ページデータ構造とページ表示形式
図２０(a)〜(c)は、第３実施形態の電子書籍10におけるページデータ構造とページ表示形式を示す図である。書籍のコンテンツはページデータPD[i](i=0,1,2,…)に読み込まれている。また、拡張ページデータWPD[2m,2m+1](m=0,1,2,…)には、ページデータPD[2m]とPD[2m+1]がセットされている。第３実施形態における左右の拡大ページには、この拡張ページデータWPD[2m,2m+1]による2Pがそれぞれ表示されるが、左右の小口における１つの小口ページには、拡張ページデータWPD[2m,2m+1]による2Pが対応する。
【００９４】
第３実施形態においては、３つの異なる表示モード(第１小口モード、第２小口モード、第３小口モード)を用意する。図２０(a)は、第１小口モード(KG1)による表示例を示す。同様に図２０(b)は第２小口モード(KG2)による表示例、図２０(c)は第３小口モード(KG3)による表示例を示す。以下、それぞれの表示モードについて説明する。
【００９５】
まず、第１の小口モード(KG1)を示す図２０(a)によれば、左拡大ページLWP(=PD[4])と右拡大ページRWP(=PD[5])からなる見開きページOWP(=WPD[4,5])が、画面の真ん中に表示されている。また左小口LKGには、左小口ページLKGP[0,1](=WPD[0,1])、LKGP[2,3](=WPD[2,3])が表示されている。右小口RKGには、右小口ページRKGP[6,7](=WPD[6,7])、RKGP[8,9](=WPD[8,9])、…が表示されている。第１小口モードではすなわち、全ての小口ページに対し2ページ分のページデータを割り当てる。
【００９６】
次に、第２の小口モード(KG2)を示す図２０(b)によれば、左拡大ページLWP(=PD[5])と右拡大ページRWP(=PD[6])とからなる見開きページOWP(=PD[5]+PD[6])が画面の真ん中に表示されている。また左小口LKGには、左小口ページLKGP[0,1](=WPD[0,1])、LKGP[2,3](=WPD[2,3])、LKGP[4](=PD[4])が表示されている。右小口RKGには、右小口ページRKGP[7](=PD[7])、RKGP[8,9](=WPD[8,9])、…が表示されている。第２小口モードではすなわち、拡大ページに隣接する小口ページには1ページ分のページデータを割り当てるが、他の小口ページには2ページ分のページデータを割り当てる。
【００９７】
そして、第３の小口モード(KG3)を示す図２０(c)によれば、左拡大ページLWP(=PD[3])と右拡大ページRWP(=PD[7])が表示されている。また左小口LKGには、左小口ページLKGP[0](=PD[0])、LKGP[1](=PD[1])、LKGP[2](=PD[2])が表示されている。中小口CKGには、中小口ページCKGP[4](=PD[4])、CKGP[5](=PD[5])、CKGP[6](=PD[6])が表示されている。右小口RKGには、右小口ページRKGP[8](=PD[8])、RKGP[9](=PD[9])、RKGP[10](=PD[10])、…が表示されている。第３小口モードではすなわち、上述した第１実施形態と同様に各小口ページには1ページ分のページデータが割り当てられることにより、1ページ単位での表示制御を行う。また、中小口も出現する。
【００９８】
ここで、図２０(a)および(b)における、LKGP[0,1]、LKGP[2,3]、RKGP[6,7]、RKGP[8,9]等は、1つの小口ページに2Pのページデータが対応しており、以下、2倍小口ページと称する。なお、左小口ページLKGP[2m,2m+1]の位置に表示された拡張ページデータWPD[2m,2m+1]についても、2倍小口ページと称するとする。2倍小口ページには、偶数(2m)、奇数(2m+1)のように連続した2つのページ番号がセットされている。
【００９９】
また、図２０(b)におけるLKGP[4]、RKGP[7]、および図２０(c)におけるLKGP[2]、CKGP[4]、RKGP[8]等は、1つの小口ページに2Pのページデータが対応しており、以下、1倍小口ページと称する。なお、左／中／右小口ページLKGP[i]、CKGP[i]、RKGP[i]のいずれかの位置に表示されたページデータPD[i]についても、1倍小口ページと称するとする。なお、左／中／右小口には十分に多くの左／中／右小口ページを表示可能であり、左／中／右小口ページの幅は左／右拡大ページから離れるほど狭くなる。
【０１００】
●ページ捲り処理(全体)
以下、第３実施形態におけるページ捲り処理について、図２１のフローチャートを用いて説明する。
【０１０１】
まずS401において、入力表示画面15内に、図２０(a)〜(c)に示すような全ページ領域PAを設定する。そしてS402において、メモリカードやネットワークを介して書籍のコンテンツを読み込む。読み込まれたコンテンツは、ページデータPD[i](i=1,2,…)に記憶される。またページデータPD[0]は空であり、書籍の先頭の空白ページを示す。次にS403において、左拡大ページ番号LP=0、右拡大ページ番号RP=1に初期設定する。すると、左拡大ページLWP=PD[LP(=0)]、右拡大ページRWP=PD[RP(=1)]となる。次にS404で、表示形式を第１小口モード(KG1)に初期設定した後、S405でリリース状態処理を行う。このリリース状態処理の詳細については後述する。
【０１０２】
次にS406において、入力表示画面15がタッチされたか否かを判定する。S406でYESと判定されたならS408に移るが、NOと判定されたならS407に移って、上記S405と同様のリリース状態処理を行った後、S415に移る。
【０１０３】
S408では画面へのタッチがシングルタッチであるか否かを判定し、YESと判定されたらS409に移るが、NOと判定されたらS411に移る。S409では、S406で検出されたタッチを第１のタッチTA1として設定する。そして、S410でシングルタッチ処理を行ってS415に移るが、このシングルタッチ処理の詳細については後述する。
【０１０４】
S411では、画面へのタッチがダブルタッチであるか否かを判定し、YESと判定されたらS412に移るが、NOと判定されたらS415に移る。S412では、S409で設定された第１のタッチTA1とは別のタッチを、第２のタッチTA2として設定する。そして、S413でダブルタッチ処理を行ってS414に移るが、このダブルタッチ処理の詳細については後述する。
【０１０５】
そしてS414において、第１のタッチTA1と第２のタッチTA2を交換して、S415に移る。第３実施形態においても上述した第１実施形態と同様に、第１のタッチTA1と第２のタッチTA2とを短時間内で常に交換し続ける。
【０１０６】
S415では処理タイミングの調整を行った後、S416に移る。S415を通る全てのループ処理は、S416において全処理の終了が判定されるまで、繰り返し行われる。S415では、この繰り返しループの間隔を一定の非常に短い時間(例えば、WAIT=100msec)に設定している。そして、全てのループ処理はこのWAIT時間によって同期をとっている。これにより、複数のタッチイベントの処理と描画処理とを同時並行に行うことが可能となる。
【０１０７】
S416では、例えば不図示の終了ボタンの押下等に応じて、処理を終了するか否かを判定し、処理続行と判定されるとS406に戻る。
【０１０８】
●リリース状態処理
以下、上記S405,S407におけるリリース状態処理について、図２２のフローチャートを用いて詳細に説明する。
【０１０９】
まずS501において、本リリース状態処理が実行される直前の状態(リリース状態またはシングルタッチ状態)における、左拡大ページ番号LPと右拡大ページ番号RPを取得する。そしてS502で、直前の状態がシングルタッチ状態であるか否かを判定し、YESならばS503に移り、NOならばS508に移る。
【０１１０】
S503では、直前のシングルタッチ状態において左拡大ページLWPがタッチされていたか否かを判定し、YESならばS504に移り、NOならばS506に移る。
【０１１１】
S504では、直前のシングルタッチ状態において左拡大ページ番号LPが偶数であるか否かを判定し、YESならば第１小口モードによる表示が可能であるとしてS508に移る。一方、NOならばS505で左拡大ページ番号LPと右拡大ページ番号RPをともにディクリメントすることで(LP=LP-1、RP=RP-1)、第１の小口モードによる表示を可能としてS508に移る。
【０１１２】
またS506では、直前のシングルタッチ状態において右拡大ページ番号RPが奇数であるか否かを判定し、YESならば第１小口モードによる表示が可能であるとしてS508に移る。一方、NOならばS507で左拡大ページ番号LPと右拡大ページ番号RPをともにインクリメントすることで(LP=LP+1、RP=RP+1)、第１小口モードによる表示を可能としてS508に移る。
【０１１３】
S508では、表示モードを第１小口モード(KG1)に設定する。そしてS509で、第１小口モードによる小口ページ表示を行う。また、LPページのコンテンツを左拡大ページLWP(=PD[LP]))に表示し、RP(=LP+1)ページのコンテンツを右拡大ページRWP(=PD[RP])に表示する。なお、これらの左拡大ページLWPと右拡大ページRWPは見開きページOWPとして入力表示画面の中央に表示される。このように第１小口モードによる表示がなされることによって、リリース状態処理を終了する。
【０１１４】
●シングルタッチ処理
以下、上記S410におけるシングルタッチ処理について、図２３のフローチャートを用いて詳細に説明する。
【０１１５】
まずS601において、本シングルタッチ処理が実行される直前の状態(リリース状態、シングルタッチ状態、ダブルタッチ状態のいずれか)における、左拡大ページ番号LPと右拡大ページ番号RPを取得する。そしてS602において、第１のタッチ位置CTA1を、第１のタッチTA1による接触領域の重心として算出する。そしてS603において、本シングルタッチ処理が実行される直前の状態がリリース状態であるか否かを判定し、YESならばS604に移り、NOならばS607に移る。
【０１１６】
S604〜S606ではリリース状態後の処理を行う。まずS604でタッチ位置が2倍小口ページであるか否かを判定し、YESならばS605に移り、NOならばS606に移る。S605では、タッチしている2倍小口ページの連続した2つのページ番号を、左拡大ページ番号LPと右拡大ページ番号RPにそれぞれセットする。そしてS606で表示モードを第１小口モード(KG1)に設定して、S625に移る。
【０１１７】
一方、S607では、本シングルタッチ状態が実行される直前の状態がシングルタッチ状態であるか否かを判定し、YESならばS608に移り、NOならばS616に移る。
【０１１８】
S608〜S615ではシングルタッチ状態後の処理を行う。まずS608でタッチ位置が1倍小口ページであるか否かを判定し、YESならばS609に移り、NOならばS613に移る。S609では、タッチ位置が左小口であるか否かを判定し、YESならばS610に移り、NOならば右小口と判定してS611に移る。S610では、左拡大ページ番号LPをディクリメントし(LP=LP-1)、その後、右拡大ページ番号RPをセットする(RP=LP+1)。一方、S611では、右拡大ページ番号RPをインクリメントし(RP=RP+1)、その後、左拡大ページ番号LPをセットする(LP=RP-1)。そしてS612で表示モードを第１小口モード(KG1)に設定して、S625に移る。
【０１１９】
またS613では、タッチ位置が2倍小口ページであるか否かを判定し、YESならばS614に移り、NOならばS625に移る。S614では、タッチしている2倍小口ページの連続した2つのページ番号を、左拡大ページ番号LPと右拡大ページ番号RPにそれぞれセットする。そしてS615で表示モードを第１小口モード(KG1)に設定して、S625に移る。
【０１２０】
一方、S616では、本シングルタッチ状態が実行される直前の状態がダブルタッチ状態であるか否かを判定し、YESならばS617に移り、NOならばS625に移る。S617では、左拡大ページLWPがタッチされているか否かを判定し、YESならばS618に移り、NOならば右拡大ページRWPがタッチされているものとしてS621に移る。S618では、右拡大ページ番号RPをセットし(RP=LP+1)、その後S619で、現在の左拡大ページ番号LPが偶数であるか否かを判定する。S619の判定がYESならばS615で表示モードを第１小口モード(KG1)に設定するが、NOならば現在の左拡大ページ番号LPが奇数であると判定して、S620で表示モードを第２小口モード(KG2)に設定した後、S625に移る。一方、S621では左拡大ページ番号LPをセットし(LP=RP-1)、その後S622で、現在の右拡大ページ番号RPが奇数であるか否かを判定する。S622の判定がYESならばS623で表示モードを第１小口モード(KG1)に設定するが、NOならば現在の右拡大ページ番号RPが偶数であると判定して、S624で表示モードを第２小口モード(KG2)に設定した後、S625に移る。
【０１２１】
S625では、タッチ位置が左小口LKGであるか否かを判定し、YESならばS626に移り、NOならばS627に移る。S626では、タッチ位置の小口ページの左端を固定した状態で右方向に拡大して左拡大ページとする(LWP=PD[LP])。一方、S627では、タッチ位置が右小口RKGであるか否かを判定し、YESならばS628に移り、NOならばS629に移る。S628では、タッチ位置の小口ページの右端を固定した状態で左方向に拡大して右拡大ページとする(RWP=PD[RP])。そしてS629において、指定された表示モード(第１小口モードまたは第２小口モード)によって、左／右拡大ページと小口ページを表示する。このように第１小口モードまたは第２小口モードによる表示がなされることによって、シングルタッチ処理を終了する。
【０１２２】
●ダブルタッチ処理
以下、上記S413におけるダブルタッチ処理について、図２４のフローチャートを用いて詳細に説明する。なお第３実施形態におけるダブルタッチ状態も上述した第１実施形態と同様に、常にシングルタッチ状態を経て遷移する。したがって、S413のダブルタッチ処理も、前回のループ処理においてS410のシングルタッチ処理を経た後に、実行される。すなわちダブルタッチ処理の実行時には、既に第１のタッチ位置CTA1が算出され、該CTA1に応じた左右の拡大ページ表示および左右の小口表示が行われていることになる。
【０１２３】
まずS701において、本ダブルタッチ処理が実行される直前の状態(シングルタッチ状態またはダブルタッチ状態)における、左拡大ページ番号LPと右拡大ページ番号RPを取得する。そしてS702において、本ダブルタッチ処理が実行される直前の状態がシングルタッチ状態であるか否かを判定し、YESならばすなわちダブルタッチ状態に以降した初回のループとしてS719に移る。NOならばすなわちダブルタッチ状態の継続であるため、S703に移る。
【０１２４】
S703では、既に算出されている第１のタッチ位置CTA1が左拡大ページLWPにあるか否かを判定し、YESならばS704に移り、NOならばS711に移る。S704では、第２のタッチ位置CTA2を、第２のタッチTA2による接触領域の重心として算出する。そしてS705で、第２のタッチ位置CTA2が右小口RKGにあるか否かを判定し、YESならばS706に移るが、NOならばS708に移る。S706では、第２のタッチ位置CTA2下にある小口ページPD[i]のページ番号iを求め、右拡大ページ番号にセットする(RP=i)。そしてS707で、S706で求めた小口ページの右端を固定した状態で左方向に拡大して右拡大ページとし(RWP=PD[RP(=i)])、S719に移る。
【０１２５】
S708では、第２のタッチ位置CTA2が中小口CKGにあるか否かを判定し、YESならばS709に移り、NOならばS719に移る。S709では、第２のタッチ位置CTA2下にある小口ページPD[i]のページ番号iを求め、右拡大ページ番号にセットする(RP=i)。そしてS710で、S709で求めた小口ページの左端を固定した状態で右方向に拡大して右拡大ページとし(RWP=PD[RP(=i)])、S719に移る。
【０１２６】
一方、S711では第１のタッチ位置CTA1が右拡大ページRWPにあるか否かを判定し、YESならばS712に移り、NOならばS719に移る。S712では、S704と同様に第２のタッチ位置CTA2を算出する。そしてS713で、第２のタッチ位置CTA2が左小口LKGにあるか否かを判定し、YESならばS714に移り、NOならばS716に移る。S714では、第２のタッチ位置CTA2下にある小口ページPD[i]のページ番号iを求め、左拡大ページ番号にセットする(LP=i)。そしてS715で、S714で求めた小口ページの左端を固定した状態で右方向に拡大して左拡大ページとし(LWP=PD[LP(=i)])、S719に移る。
【０１２７】
S716では、第２のタッチ位置CTA2が中小口CKGにあるか否かを判定し、YESならばS717に移り、NOならばS719に移る。S717では、第２のタッチ位置CTA2下にある小口ページPD[i]のページ番号iを求め、右拡大ページ番号にセットする(LP=i)。そしてS718で、S717で求めた小口ページの右端を固定した状態で左方向に拡大して左拡大ページとし(LWP=PD[LP(=i)])、S719に移る。
【０１２８】
S719では、図２０(c)に示すような第３小口モード(KG3)によって、左／右拡大ページと各小口ページを表示する。この場合、第１実施形態と同様に拡大ページにはコンテンツを表示するが、小口ページにはコンテンツは表示されない。このように第３小口モードによる表示がなされることによって、ダブルタッチ処理を終了する。
【０１２９】
●ページ捲り操作
以下、第３実施形態におけるユーザのページ捲り操作と機器の応答について、図２５〜図２７の表示画面遷移を用いて詳細に説明する。なお、図２５〜図２７は、上述した第２実施形態における図１８等と同様に複数画面の表示例を示し、以下、それぞれを画面例3(a)〜(r)によって参照するとする。また、以下に説明する操作ごとに、上記図２１〜図２４において対応するステップ番号を記す。
【０１３０】
まず画面例3(a)に、コンテンツを読み込んだ直後のリリース状態において、第１小口モード(KG1)によってページが表示されている様子(S509)を示す。同図においては、見開きページOWP(=WPD[0,1])=左拡大ページLWP(=PD[0])＋右拡大ページRWP(=PD[1])、が表示されている。このとき、左小口LKGはまだ存在せず、右小口RKGのみが存在する。右小口RKGには、右小口ページWPD[2,3]、WPD[4,5]、WPD[6,7]、…が表示され、右小口ページは右端ほど幅が狭くなっている。
【０１３１】
このようなリリース状態で画面にシングルタッチTA1を行うことで、画面例3(b)が表示される。この場合、S406〜S408〜S409〜S410〜S601〜S602〜S603〜S604〜S606〜S625〜S627を経て、S629の処理が行われ、すなわち、ページ表示は更新されない。この場合、シングルタッチTA1の初期の重心がCTA1=PT301であり、この重心CTA1が、右拡大ページ上のPT301から、右小口ページWPD[4,5]の位置PT303に移動するように、最短経路でドラッグするとする(Drag10)。このDrag10の操作中の処理の流れとしては、図２１のS406でYES、S408でYES、S416でNO、となる。すなわち、S406〜S408〜S409〜S410〜S415〜S416〜S406のループを巡回する。このとき、シングルタッチ処理(S410)の内部では、S601〜S602〜S603〜S607〜S608〜S613〜S614〜S615〜S625〜S627〜S628〜S629の経路の処理が行われる。これにより、Drag10操作中にはS614において、タッチした位置の2倍小口ページのページ番号が、左／右の拡大ページ番号(LP／RP)にセットされ、S629で見開きページOWP=WPD[LP,RP]として表示される。例えば画面例3(c)に示すように、Drag10操作中にタッチ位置CTA1がPT302(⊂WPD[2,3])の位置に来れば、S614でLP=2、RP=3がセットされる。するとS629において画面例3(d)のように、見開きページOWP(=WPD[2,3])と、左／右小口ページが第１小口モード(KG1)で表示される。
【０１３２】
画面例3(e)に示すように、タッチ位置CTA1が２倍小口ページWPD[2m,2m+1]上を移動する(m=1,2,…,100,…)に従って、見開きページOWP(=WPD[2m,2m+1])が第１小口モード(KG1)で表示される。そしてタッチ位置がCTA1=PT303(m=100)になった時点で、画面例3(f)のように見開きページOWP(=WPD[200,201])が表示される。
【０１３３】
次に、画面例3(f)の状態で、PT303の位置に第１のタッチTA1を行ったまま、PT304の位置に第２のタッチTA2を行うとする(ダブルタッチ状態)。この場合、S702においてYESと判定され、S719において第３小口モード(KG3)に設定されることにより、表示が画面例3(h)に切り替わる。これにより例えば、第１小口モード(KG1)で表示された画面例3(f)における2倍小口ページWPD[198,199]は、画面例3(h)における2つの1倍小口ページPD[198]とPD[199]に分割されて表示される。
【０１３４】
画面例3(h)のダブルタッチ状態で、第２のタッチTA2をPT304(⊂PD[200])の位置からPT309(⊂PD[10])の位置にドラッグするとする(Drag11)。このDrag11の操作中の処理の流れとしては、図２１のS406でYES、S408でNO、S411でYES、S416でNO、となる。すなわち、S406〜S408〜S411〜S412〜S413〜S414〜S415〜S416〜S406のループを巡回する。このとき、ダブルタッチ処理(S413)の内部では、S701〜S702〜S703〜S711〜S712〜S713〜S714〜S715〜S719の経路の処理が行わる。これにより、Drag11操作中にはS714において、タッチした位置の1倍小口ページのページ番号が左拡大ページ番号LPにセットされる。そして、S715において左拡大ページLWP=PD[LP]とし、S719において第３小口モード(KG3)で左／右拡大ページと左／中／右小口ページとを表示する。例えば画面例3(i)に示すように、Drag11操作中にタッチ位置CTA2がPT305の位置に来れば、S714でLP=199がセットされ、S715で左拡大ページLWP=PD[199]がセットされて、第３小口モードで表示される。したがって、このDrag11の操作では、タッチ位置CTA2がさらに左にドラッグされることで、画面例3(j),(k),(l),(p)のようにページ表示が遷移する。この表示遷移によれば、右拡大ページRWPはそのままに、左拡大ページLWPの表示が前ページ方向に捲れていき、左小口LKGが減少して中小口CKGが増加していく。
【０１３５】
また、画面例3(f)の状態で、PT303の位置に第１のタッチTA1を行ったまま、PT306の位置に第２のタッチTA2を行うとする(ダブルタッチ状態)。この場合、S702においてYESと判定され、S719において第３小口モード(KG3)に設定されることにより、表示が画面例3(g)に切り替わる。そして再びダブルタッチ処理(S413)が実行された際にはS702でNOと判定され、S703〜S711〜S712〜S713〜S714〜S715〜S719の経路の処理が行われる。このとき、S714においてLP=198がセットされ、S715で左拡大ページLWP=PD[198]として、S719で画面例3(j)のように表示される。
【０１３６】
また、画面例3(k)のダブルタッチ状態から、右側のタッチCTA1を離すと、S406〜S408〜S409〜S410の経路でシングルタッチ処理が行われる。このときS409では、画面例3(k)のCTA2=PT307の位置のタッチを、新たに第１のタッチTA1として設定する。すると、シングルタッチ処理(S410)の内部では、S601〜S602〜S603〜S607〜S616〜S617〜S618〜S619〜S620〜S625〜S627〜S629の経路の処理が行われる。このとき、S601ではLP=197、RP=201が取得されるが、S618でLP=197、RP=LP+1=198に変更される。またS620において表示モードが第２小口モード(KG2)に設定される。そしてS629において、画面例3(m)のように、見開きページOWP=WPD[197,198]=PD[LP(=197)]＋PD[RP(=198)]が表示される。
【０１３７】
また、画面例3(l)のダブルタッチ状態から、右側のタッチCTA1を離すと、S406〜S408〜S409〜S410の経路でシングルタッチ処理が行われる。このときS409では、画面例3(l)のCTA2=PT308の位置のタッチを、新たに第１のタッチTA1として設定する。すると、シングルタッチ処理(S410)の内部では、S601〜S602〜S603〜S607〜S616〜S617〜S618〜S619〜S615〜S625〜S627〜S629の経路の処理が行われる。このとき、S601ではLP=196、RP=201が取得されるが、S618でLP=196、RP=LP+1=197に変更される。またS615において表示モードが第１小口モード(KG1)に設定される。そしてS629において、画面例3(n)のように、見開きページOWP=WPD[196,197]=PD[LP(=196)]＋PD[RP(=197)]が表示される。
【０１３８】
また、画面例3(m)のシングルタッチ状態において、タッチ位置CTA1を1倍小口ページPD[196]上にドラッグするとする(Drag12)。すると、S601〜S602〜S603〜S607〜S608〜S609〜S610〜S612〜S625〜S626〜S629の経路の処理が行われる。このとき、S601で直前の状態のページ番号LP=197、RP=198がセットされる。そしてタッチ位置CTA1が1倍小口ページPD[196]上に来た時点で、S609でYESと判定され、S610でLP=LP-1=196、RP=LP+1=197にページ番号が変更される。そしてS612で第１小口モード(KG1)に設定され、S629で画面例3(n)のように、見開きページOWP=WPD[196,197]が表示される。
【０１３９】
また、画面例3(m)のシングルタッチ状態からタッチTA1を離すと、S406においてNOと判定され、S407のリリース状態処理が行われる。リリース状態処理においては、S501(LP=197,RP=198)〜S502(YES)〜S503(YES)〜S504(NO)〜S505(LP=196、RP=197)〜S508(KG1)の経路をたどる。そしてS509において、画面例3(o)のように、見開きページOWP=WPD[196,197]がホームポジションに見開き表示される。同様に、画面例3(n)のシングルタッチ状態からタッチTA1を離した場合にも、画面例3(o)のように、見開きページOWP=WPD[196,197]がホームポジションに見開き表示される。
【０１４０】
また、画面例3(p)のダブルタッチ状態において、左側のタッチTA2をPT309の位置からPT311(⊂PD[120])の位置にドラッグするとする(Drag13)。このとき、ダブルタッチ処理(S413)の内部では、S701〜S702〜S703〜S711〜S712〜S713〜S716〜S717〜S718〜S719の経路の処理が行われる。これにより、画面例3(q)、(r)に示すように、タッチ位置の中小口ページが順次左拡大ページとして表示される(S716〜S717〜S718)。
【０１４１】
●第３実施形態により得られる効果
以上説明したように第３実施形態によれば、小口へのドラッグ操作を行う際に、連続した2ページ単位でのページ捲りが可能となるため、紙の本により近い操作性が実現される。
【０１４２】
＜第４実施形態＞
以下、本発明に係る第４実施形態について説明する。
【０１４３】
第４実施形態では、ページ領域PAを、第１のページ領域APAと第２のページ領域BPAのように2つに分離し、各ページ領域が連動して動作するモード(連動モード)と、それぞれが独立して動作するモード(独立モード)とを設ける。例えば連動モードであれば、第１拡大ページAWPに表示されるページ番号APと第２拡大ページBWPに表示されるページ番号BPが連続するように表示する。一方、独立モードでは、第１拡大ページAWPと第２拡大ページBWPとはそれぞれ独立にページ捲りを可能とし、第１拡大ページ番号APと第２拡大ページ番号BPとは連動しない。また第４実施形態では、電子文書の表示中に連動モードと独立モードとをシームレスに切り替えることができる。
【０１４４】
なお、第４実施形態における電子文書表示装置の構成は上述した第１実施形態と同様であるため、説明を省略する。
【０１４５】
●ページデータ構造とページ表示形式
図２８(a),(b)は、第４実施形態の電子書籍10におけるページデータ構造とページ表示形式を示す図である。書籍のコンテンツはページデータPD[i](i=0,1,2,…)に読み込まれている。
【０１４６】
第４実施形態では、拡大ページとして、第１拡大ページAWP(第１の見開きページ)と第２拡大ページBWP(第２の見開きページ)とがある。また、小口には、第１左小口ALKG、第１右小口ARKG、第２左小口BLKG、第２右小口BRKGがある。また、各小口は複数の小口ページからなり、小口ページには、第１左小口ページALKGP[i]、第１右小口ページARKGP[i]、第２左小口ページBLKGP[i]、第２右小口ページBRKGP[i]がある。図２８(a),(b)に示す各小口ページALKGP[i]、ARKGP[i]、BLKGP[i]、BRKGP[i]には、ページデータPD[i]が関連付けられる。第４実施形態では、ALKGP[i]等の小口ページに関連付けられたページデータPD[i]についても小口ページと称するとする。そして、例えば第１拡大ページAWPにAWP=PD[12]のように関連付けられた小口ページPD[12]は、第１拡大ページAWPによって指定される位置と大きさによって表示される。また、例えば第１左小口ページALKGPに対してALKGP[11]=PD[11]のように関連付けられた小口ページPD[11]は、第１左小口ページALKGP[11]によって指定される位置と大きさによって表示される。
【０１４７】
図２８(a)は、第４実施形態における連動モードを説明する図である。連動モード設定時には同図に示すように、第１のページ領域APAに、第１拡大ページAWPと第１左小口ALKG(第１の小口領域)、第１右小口ARKG(第２の小口領域)とが設定される。第１拡大ページAWP=PD[AP(=12)]であった場合、第１左小口ALKG内には、右から順番に第１左小口ページALKGP[11]、ALKGP[10]、ALKGP[9]、…が設定される。また、第１右小口ARKG内には、左から順番に第１右小口ページARKGP[13]、ARKGP[14]、ARKGP[15]、…が設定される。第２のページ領域BPAには、第２拡大ページBWPと第２左小口BLKG(第３の小口領域)、第２右小口BRKG(第４の小口領域)とが設定される。連動モードでは、第２拡大ページBWPに表示される第２拡大ページ番号BPが、第１拡大ページAWPに表示される第１拡大ページ番号APと連動し、BP=AP+1であるため、第２拡大ページBWP=PD[BP(=13)]となる。このとき、第２左小口BLKG内には、右から順番に第２左小口ページBLKGP[12]、BLKGP[11]、BLKGP[10]、…が設定される。また、第２右小口BRKG内には、左から順番に第２右小口ページBRKGP[14]、BLKGP[15]、BLKGP[16]、…が設定される。
【０１４８】
また図２８(b)は、第４実施形態における独立モードを説明する図である。独立モード設定時には同図に示すように、第１のページ領域APAに、第１拡大ページAWPと第１左小口ALKG、第１右小口ARKGとが設定される。第１拡大ページAWP=PD[AP(=12)]であった場合、第１左小口ALKG内には、右から順番に第１左小口ページALKGP[11]、ALKGP[10]、ALKGP[9]、…が設定される。また、第１右小口ARKG内には、左から順番に第１右小口ページARKGP[13]、ALKGP[14]、ALKGP[15]、…が設定される。一方、第２のページ領域BPAには、第２拡大ページBWPと第２左小口BLKGと第２右小口BRKGとが設定されるが、独立モードでは、第２拡大ページ番号BPと第１拡大ページ番号APとは独立である。例えばBP=100であれば、第２拡大ページBWP=PD[BP(=100)]となる。このとき、第２左小口BLKG内には、右から順番に第２左小口ページBLKGP[99]、BLKGP[98]、BLKGP[97]、…が設定される。また、第２右小口BRKG内には、左から順番に第２右小口ページBRKGP[101]、BRKGP[102]、BRKGP[103]、…が設定される。
【０１４９】
図２８(c)は、第４実施形態における電子書籍10を、ユーザが両手で持って操作している様子を示す図である。ユーザは、片手または両手の手指により、入力表示画面15に表示された小口(ALKG／ARKG／BLKG／BRKG)をタッチしたりなぞったりして、ページ捲りの操作を行う。
【０１５０】
●ページ捲り処理(全体）
以下、第４実施形態におけるページ捲り処理について、図２９のフローチャートを用いて説明する。
【０１５１】
まずS801において、入力表示画面15内に、図２８(a),(b)に示すような全ページ領域PAを設定し、さらに全ページ領域PA内に、第１のページ領域APAと第２のページ領域BPAを設定する。そしてS802において、メモリカードやネットワークを介して書籍のコンテンツを読み込む。読み込まれたコンテンツは、ページデータPD[i](i=1,2,…)に記憶される。またページデータPD[0]は空であり、書籍の先頭の空白ページを示す。次にS803において、表示モードを連動モードに設定する。次にS804において、第１拡大ページ番号AP=0、第２拡大ページ番号BP=1に初期設定する。すると、第１拡大ページAWP=PD[AP(=0)]、第２拡大ページBWP=PD[BP(=1)]となる。次にS805において、ホームポジションに現在設定されているページデータを見開きで表示する。ここでは、連動モードにおけるホームポジションとして、第１のページ領域APAの中心部に第１拡大ページAWPを表示し、第２のページ領域BPAの中心部に第２拡大ページBWPを表示する。
【０１５２】
そしてS806において、表示モードを切り替える(連動モード／独立モード)か否かを判定する。表示モード切り替えは、電子書籍10における操作ボタン類17中のモードボタンの押下によって判定する。S806においてYESならばS807に移り、NOならばS808に移る。S807ではモード切り替え処理を行った後、S808に移るが、モード切り替え処理の詳細については後述する。
【０１５３】
S808では、入力表示画面15がタッチされたか否かを判定し、YESであればS810に移り、NOであればS809に移ってホームポジションへの表示を行った後、S817に移る。なお、S809におけるホームポジションへの表示形態は、現在の表示モードが連動モードであるか独立モードであるかによって異なる。すなわち、連動モード設定時であれば上記S805と同様に2ページが連続する見開き表示を行うが、独立モード設定時であれば、左右の拡大ページがそれぞれ独立した表示を行う。
【０１５４】
S810では、画面へのタッチがシングルタッチであるか否かを判定し、YESと判定されたらS811に移り、NOと判定されたらS813に移る。S811では、S808で検出されたタッチを第１のタッチTA1として設定する。そして、S812でシングルタッチ処理を行ってS817に移るが、このシングルタッチ処理の詳細については後述する。
【０１５５】
S813では、画面へのタッチがダブルタッチであるか否かを判定し、YESと判定されたらS814に移るが、NOと判定されたらS817に移る。S814では、S811で設定された第１のタッチTA1とは別のタッチを、第２のタッチTA2として設定する。そして、S815でダブルタッチ処理を行ってS816に移るが、このダブルタッチ処理の詳細については後述する。
【０１５６】
そしてS816において、第１のタッチTA1と第２のタッチTA2を交換して、S817に移る。第４実施形態においても上述した第１実施形態と同様に、第１のタッチTA1と第２のタッチTA2とを短時間内で常に交換し続ける。
【０１５７】
S817では処理タイミングの調整を行った後、S818に移る。S817を通る全てのループ処理は、S818において全処理の終了が判定されるまで、繰り返し行われる。S817では、この繰り返しループの間隔を一定の非常に短い時間(例えば、WAIT=100msec)に設定している。そして、全てのループ処理はこのWAIT時間によって同期をとっている。これにより、複数のタッチイベントの処理と描画処理とを同時並行に行うことが可能となる。
【０１５８】
S818では、例えば不図示の終了ボタンの押下等に応じて、処理を終了するか否かを判定し、処理続行と判定されるとS806に戻る。
【０１５９】
●モード切り替え処理
以下、上記S807におけるモード切り替え処理について、図３０のフローチャートを用いて詳細に説明する。
【０１６０】
まずS901において、第１拡大ページ番号APと第２拡大ページ番号BPを取得する。そしてS902で、現在のモードが連動モードであるか否かを判定し、連動モードであればS903に移って表示モードを独立モードに設定し、一方、現在のモードが独立モードであればS904に移って表示モードを連動モードに設定する。
【０１６１】
S904で連動モードへの設定を行った後、S905において現在の状態がリリース状態であるか否かを判定し、YESならばS906に移り、NOならばS907に移る。S906では、第２拡大ページ番号BPをBP=AP+1に設定することで第１拡大ページ番号APと連動させて、モード切り替え処理を終了する。
【０１６２】
S907では、現在の状態が第１拡大ページAWPのシングルタッチ状態であるか否かを判定し、YESならばS908に移り、NOならばS909に移る。S908では、第２拡大ページ番号BPをBP=AP+1に設定することで第１拡大ページ番号APと連動させて、、モード切り替え処理を終了する。
【０１６３】
S909では、現在の状態が第２拡大ページBWPのシングルタッチ状態であるか否かを判定し、YESならばS910に移り、NOならばモード切り替え処理を終了する。S910では、第１拡大ページ番号APをAP=BP-1に設定することで第２拡大ページ番号BPと連動させて、モード切り替え処理を終了する。
【０１６４】
●シングルタッチ処理
以下、上記S812におけるシングルタッチ処理について、図３１のフローチャートを用いて詳細に説明する。
【０１６５】
まずS1001において、第１のタッチ位置CTA1を、第１のタッチTA1による接触領域の重心として算出する。そしてS1002において、第１のタッチ位置CTA1のページ番号PNを取得する。すなわち、CTA1⊂PD[PN]となるPNを求めれば良い。次にS1003において、第１のタッチ位置CTA1が第１のページ領域APAにあるか否かを判定し、YESならばS1004に移り、NOならばS1010に移る。
【０１６６】
S1004では、第１のタッチ位置CTA1が左小口ALKGであるか否かを判定し、YESならばS1005に移り、NOならばS1006に移る。S1005では、タッチ位置CTA1下の小口ページPD[PN]の左端を固定した状態で右方向に拡大して第１拡大ページAWP(=PD[PN])とし、第１拡大ページ番号をセットする(AP=PN)。
【０１６７】
S1006では、第１のタッチ位置CTA1が右小口ARKGであるか否かを判定し、YESならばS1007に移り、NOならば第１のタッチ位置CTA1が第１拡大ページAWPであると判定して、S1008に移る。S1007では、タッチ位置CTA1下の小口ページPD[PN]の右端を固定した状態で左方向に拡大して第１拡大ページAWP(=PD[PN])とし、第１拡大ページ番号をセットする(AP=PN)。
【０１６８】
S1008では、表示モードが連動モードであるか否かを判定し、YESならばS1009に移り、NOならばS1017に移る。S1009では、第２拡大ページBWPをPD[PN+1]として、第２拡大ページ番号をセットする(BP=PN+1)。また、第２のページ領域BPAの中心部に第２拡大ページBWPを表示して、S1017に移る。
【０１６９】
一方、S1010では、第１のタッチ位置CTA1が第２のページ領域BPAにあるか否かを判定し、YESならばS1011に移り、NOならばS1017に移る。S1011では、第１のタッチ位置CTA1が右小口BRKGであるか否かを判定し、YESならばS1014に移り、NOならばS1012に移る。S1014では、タッチ位置CTA1下の小口ページPD[PN]の右端を固定した状態で左方向に拡大して第２拡大ページBWP(=PD[PN])とし、第２拡大ページ番号をセットする(BP=PN)。
【０１７０】
S1012では、第１のタッチ位置CTA1が左小口BLKGであるか否かを判定し、YESならばS1013に移り、NOならば第１のタッチ位置CTA1が第２拡大ページBWPであると判定して、S1015に移る。S1013では、タッチ位置CTA1下の小口ページPD[PN]の左端を固定した状態で右方向に拡大して第２拡大ページBWP(=PD[PN])とし、第２拡大ページ番号をセットする(BP=PN)。
【０１７１】
S1015では、表示モードが連動モードであるか否かを判定し、YESならばS1016に移り、NOならばS1017に移る。S1016では、第１拡大ページAWPをPD[PN-1]として、第１拡大ページ番号をセットする(AP=PN-1)。また、第１のページ領域APAの中心部に第１拡大ページAWPを表示して、S1017に移る。
【０１７２】
S1017では、タッチされていない方の拡大ページをホームポジションに配置し、第１拡大ページAWP=PD[AP]、第２拡大ページBWP=PD[BP]にはコンテンツを表示する。第１拡大ページAWPと第２拡大ページBWPの前後のページデータPD[i]は、ページの順序を保って小口ページALKGP[i]、ARKGP[i]、BLKGP[i]、BRKGP[i]に関連付けられるが、各小口ページにはコンテンツは表示されない。なお、拡大ページについては視認されやすいように、例えば枠等を付して表示しても良い。
【０１７３】
●ダブルタッチ処理
以下、上記S815におけるダブルタッチ処理について、図３２のフローチャートを用いて詳細に説明する。なお第４実施形態におけるダブルタッチ状態も上述した第１実施形態と同様に、常にシングルタッチ状態を経て遷移する。したがって、S815のダブルタッチ処理も、前回のループ処理においてS812のシングルタッチ処理を経た後に、実行される。すなわちダブルタッチ処理の実行時には、既に第１のタッチ位置CTA1が算出され、該CTA1、および表示モードに応じた第１および第２の拡大ページ表示および各小口表示が行われていることになる。
【０１７４】
まずS1101において、既に算出されている第１のタッチ位置CTA1が第１のページ領域APAにあるか否かを判定し、YESならばS1102に移り、NOならばS1110に移る。S1102では、第２のタッチ位置CTA2を、第２のタッチTA2による接触領域の重心として算出する。そしてS1103で、第２のタッチ位置CTA2が第２のページ領域BPAにあるか否かを判定し、YESならばS1104に移り、NOならばS1119に移る。
【０１７５】
S1104では、第２のタッチ位置CTA2が左小口BLKGにあるか否かを判定し、YESならばS1105に移り、NOならばS1107に移る。S1105では、第２のタッチ位置CTA2下にある小口ページPD[i]のページ番号iを求めてPN=iとする。そしてS1106で、S1105で求めた小口ページPD[PN]の左端を固定した状態で右方向に拡大して第２拡大ページ(BWP=PD[PN])とし、第２拡大ページ番号をセット(BP=PN)した後、S1119に移る。
【０１７６】
S1107では、第２のタッチ位置CTA2が右小口BRKGにあるか否かを判定し、YESならばS1108に移り、NOならばS1119に移る。S1108では、第２のタッチ位置CTA2下にある小口ページPD[i]のページ番号iを求めてPN=iとする。そしてS1109で、S1108で求めた小口ページPD[PN]の右端を固定した状態で左方向に拡大して第２拡大ページBWP(=PD[PN])とし、第２拡大ページ番号をセット(BP=PN)した後、S1119に移る。
【０１７７】
一方、S1110では、第１のタッチ位置CTA1が第２のページ領域BPAにあるか否かを判定し、YESならばS1111に移り、NOならばS1119に移る。S1111では、第２のタッチ位置CTA2を、第２のタッチTA2による接触領域の重心として算出する。そしてS1112で、第２のタッチ位置CTA2が第１のページ領域APAにあるか否かを判定し、YESならばS1113に移り、NOならばS1119に移る。
【０１７８】
S1113では、第２のタッチ位置CTA2が右小口ALKGにあるか否かを判定し、YESならばS1117に移り、NOならばS1114に移る。S1117では、第２のタッチ位置CTA2下にある小口ページPD[i]のページ番号iを求めてPN=iとする。そしてS1118で、S1117で求めた小口ページPD[PN]の右端を固定した状態で左方向に拡大して第１拡大ページAWP(=PD[PN])とし、第１拡大ページ番号をセット(AP=PN)した後、S1119に移る。
【０１７９】
S1114では、第２のタッチ位置CTA2が左小口ALKGにあるか否かを判定し、YESならばS1115に移り、NOならばS1119に移る。S1115では、第２のタッチ位置CTA2下にある小口ページPD[i]のページ番号iを求めてPN=iとする。そしてS1116で、S1115で求めた小口ページPD[PN]の左端を固定した状態で右方向に拡大して第１拡大ページAWP(=PD[PN])とし、第１拡大ページ番号をセット(AP=PN)した後、S1119も進む。
【０１８０】
S1119では、タッチ選択中である第１および第２拡大ページAWP=PD[AP]、BWP=PD[BP]にコンテンツを表示するが、各小口ページにはコンテンツは表示されない。また、拡大ページについては視認されやすいように、例えば枠等を付して表示しても良い。
【０１８１】
●ページ捲り操作
以下、第４実施形態におけるユーザのページ捲り操作と機器の応答について、図３３の表示画面遷移を用いて詳細に説明する。なお、図３３は第４実施形態における複数画面の表示例を示し、以下、それぞれを画面例4(a)〜(l)によって参照するとする。また、以下に説明する操作ごとに、上記図２９〜図３２において対応するステップ番号を記す。
【０１８２】
・連動モード
まず、連動モードにおけるページ捲り操作について説明する。
【０１８３】
画面例4(a)に、連動モード設定下において、数ページを捲って12Pと13Pとが第１／第２拡大ページとして(AP=12,BP=13)ホームポジションに見開き表示された状態(S809)を示す。この状態で第２拡大ページ内におけるシングルタッチを、画面例4(b)に示す第１のタッチ位置CTA1から、画面例4(c)に示す第１のタッチ位置CTA1までドラッグしたとする。このドラッグ操作中の処理の流れとしては、S808(YES)〜S810(YES)〜S811〜S812〜S817〜S818(NO)〜S806(NO)〜S808(YES)のループを巡回する。このとき、シングルタッチ処理(S812)の内部では、S1001〜S1002〜S1003(NO)〜S1010(YES)〜S1011(YES)〜S1014〜S1015(YES)〜S1016〜S1017の経路の処理が行われる。このとき、ドラッグ中のCTA1の位置を随時算出し(S1001)、CTA1⊂PD[PN]となるPNを取得して(S1002)、BPW=PD[PN]、BP=PNとし(S1014)、AWP=PD[PN-1]、AP=PN-1とする(S1016)。するとドラッグ中には、AWPとBWPは順次、(AWP=PD[13],BWP=PD[14])、(AWP=PD[14],BWP=PD[15])、(AWP=PD[15],BWP=PD[16])のように連動して変化する。
【０１８４】
次に、画面例4(c)に示すシングルタッチ状態において、画面例4(d)に示すように第１左小口ALKG内のPD[11]の位置を、第２のタッチ位置CTA2としてタッチしたとする(ダブルタッチ状態)。この場合の処理としては、S808(YES)〜S810(NO)〜S813(YES)〜S814〜S815〜S816〜S817〜S818(NO)〜S806(NO)〜S808(YES)のループを巡回する。このとき、ダブルタッチ処理(S815)の内部では、S1101(NO)〜S1110(YES)〜S1111〜S1112(YES)〜S1113(NO)〜S1114(YES)〜S1115〜S1116〜S1119の経路の処理が行われる。このとき、第２のタッチ位置CTA2を算出し(S1111)、CTA2⊂PD[PN]となるPN(=11)を取得して(S1115)、AWP=PD[11]、AP=11とする(S1116)ことで、画面例4(d)のような表示がなされる。
【０１８５】
画面例4(d)に示すダブルタッチ状態から、左側の第２のタッチ位置CTA2を離すとする。この場合の処理は、S808(YES)〜S810(YES)〜S811〜S812〜S817〜S818(NO)〜S806(NO)〜S808(YES)のループを巡回する。このとき、シングルタッチ処理(S812)の内部では、S1001〜S1002〜S1003(NO)〜S1010(YES)〜S1011(NO)〜S1015(YES)〜S1016〜S1017の経路の処理が行われる。このとき、第１のタッチ位置CTA1⊂PD[PN]となるPN(=16)を取得して(S1002)、AWP=PD[PN-1]=PD[15]、AP=15とする(S1016)ことで、画面例4(c)の状態に戻る。
【０１８６】
また、画面例4(d)に示すダブルタッチ状態から、右側の第１のタッチ位置CTA1を離すとする。この場合の処理は、S808(YES)〜S810(YES)〜S811〜S812〜S817〜S818(NO)〜S806(NO)〜S808(YES)のループを巡回する。このときS811では、現在タッチしている第２のタッチ位置CTA2(⊂PD[11])を、新たに第１のタッチ位置CTA1として設定する。このとき、シングルタッチ処理(S812)の内部では、S1001〜S1002〜S1003(YES)〜S1004(NO)〜S1006(NO)〜S1008(YES)〜S1009〜S1017の経路の処理が行われる。このとき、第１のタッチ位置CTA1⊂PD[PN]となるPN(=11)を取得し(S1002)、BWP=PD[PN+1]=PD[12]、BP=12とする(S1009)ことで、画面例4(e)のような表示がなされる。
【０１８７】
また、画面例4(e)に示すシングルタッチ状態から、タッチを離してリリース状態にすると、S809において画面例4(f)のように、現在のページがホームポジションとして見開き表示される。
【０１８８】
・独立モード
次に、独立モードにおけるページ捲り操作について説明する。
【０１８９】
独立モード設定下において、画面例4(b)における第１のタッチ位置CTA1から、画面例4(g)に示す第１のタッチ位置CTA1までドラッグしたとする。このドラッグ中の処理の流れとしては、S808(YES)〜S810(YES)〜S811〜S812〜S817〜S818(NO)〜S806(NO)〜S808(YES)のループを巡回する。このとき、シングルタッチ処理(S812)の内部では、S1001〜S1002〜S1003(NO)〜S1010(YES)〜S1011(YES)〜S1014〜S1015(NO)〜S1017の経路の処理が行われる。このとき、ドラッグ中のCTA1の位置を随時算出し(S1001)、CTA1⊂PD[PN]となるPNを取得して(S1002)、BPW=PD[PN]、BP=PNとする(S1014)。すなわちドラッグ中には、AWP=PD[12]については不変であり、BWPのみが順次、BWP=PD[14]→PD[15]→PD[16]と変化する。
【０１９０】
次に、画面例4(g)に示すシングルタッチ状態において、画面例4(h)に示すように第１左小口ALKG内のPD[10]の位置を、第２のタッチ位置CTA2としてタッチしたとする(ダブルタッチ状態)。この場合の処理としては、S808(YES)〜S810(NO)〜S813(YES)〜S814〜S815〜S816〜S817〜S818(NO)〜S806(NO)〜S808(YES)のループを巡回する。このとき、ダブルタッチ処理(S815)の内部では、S1101(NO)〜S1110(YES)〜S1111〜S1112(YES)〜S1113(NO)〜S1114(YES)〜S1115〜S1116〜S1119の経路の処理が行われる。このとき、第２のタッチ位置CTA2を算出し(S1111)、CTA2⊂PD[PN]となるPN(=10)を取得して(S1115)、APW=PD[10]、AP=10とする(S1116)ことで、画面例4(h)のような表示がなされる。
【０１９１】
また、画面例4(h)に示すダブルタッチ状態から、右側の第１のタッチCTA1を離すとする。この場合の処理は、S808(YES)〜S810(YES)〜S811〜S812〜S817〜S818(NO)〜S806(NO)〜S808(YES)のループを巡回する。このときS811では、現在タッチしている第２のタッチ位置CTA2(⊂PD[10])を新たに第１のタッチCTA1として設定する。このとき、シングルタッチ処理(S812)の内部では、S1001〜S1002〜S1003(YES)〜S1004(NO)〜S1006(NO)〜S1008(NO)〜S1017の経路の処理が行われる。これにより、AP(=10)とBP(=16)は変化せず、画面例4(i)のように第２拡大ページBWPがホームポジションに表示される(S1017)。
【０１９２】
また、画面例4(i)に示すシングルタッチ状態から、タッチを離してリリース状態にすると、画面例4(j)のように、第１拡大ページAWPを含む現在のページがホームポジションに表示される(S809)。
【０１９３】
・独立モードから連動モードへの切り替え
次に、独立モードから連動モードへの切り替えを行った際のページ捲り操作について説明する。
【０１９４】
まず、画面例4(j)に示すリリース状態において、独立モードから連動モードに切り替えたとする。この場合、S806でYESとなり、S807のモード切り替え処理が行われる。モード切り替え処理の内部では、S901〜S902(NO)〜S904〜S905(YES)〜S906の経路の処理が行われる。このとき、AP=10、BP=16が取得され(S901)、新たにBP=AP+1=11に設定する(S906)。そしてS809において、画面例4(l)のように、連続したページがホームポジションに見開き表示される。
【０１９５】
また、画面例4(i)に示すシングルタッチ状態において、独立モードから連動モードに切り替えたとする。この場合、S806でYESとなり、S807のモード切り替え処理が行われる。モード切り替え処理の内部では、S901〜S902(NO)〜S904〜S905(NO)〜S907(YES)〜S908の経路の処理が行われる。このとき、AP=10、BP=16が取得され(S901)、新たにBP=AP+1=11に設定する(S908)。そして、シングルタッチ処理内のS1017において、画面例4(k)のように、連続したページの表示がなされる。
【０１９６】
・連動モードから独立モードへの切り替え
また、連動モードから独立モードへの切り替えを行った際のページ捲り操作について説明する。この場合、モード切り替え処理(S807)の内部において、S901〜S902(NO)〜S903の経路の処理が行われ、AP,BPは変化しない。すなわち、表示は変化しない。
【０１９７】
●第４実施形態により得られる効果
以上説明したように第４実施形態によれば、表示モードとして連動モードを設定することで、連続した２ページを見開き表示したり、比較的近いページを参照したりすることができる。また、独立モードを設定することで、離れた任意のページを参照することができる。そして、電子文書の表示中であっても独立モードと連動モードの設定は変更可能である。これにより、元ページから関連する任意のページをどんどん辿りながら、興味のある関連情報に効率よくアクセスすることができる。
【０１９８】
＜第５実施形態＞
以下、本発明に係る第５実施形態について説明する。第５実施形態では、入力表示画面15において、小口表示に代えてタッチバー表示を行うことを特徴とする。
【０１９９】
図３４(a)〜(c)は、第５実施形態における入力表示画面15のページ表示形式を示す図である。第５実施形態では同図に示すように、見開きページ(LWP／RWP)の下部にタッチバーTBAを配置し、該タッチバーTBA内に小口を幅広く配置している。
【０２００】
図３４(a)は、上述した第１乃至第３実施形態における、左小口LKG、中小口CKG、右小口RKGを、タッチバーTBA内に幅を広げて配置した例を示す。なお、タッチバーTBAにおいて、左右の拡大ページについては枠を付すことで視認されやすくしている。
【０２０１】
また、図３４(b)は、上述した第４実施形態における、第１左小口ALKG、第１右小口ARKG、第２左小口BLKG、第２右小口BRKGを、タッチバーTBA内に幅を広げて配置した例を示す。
【０２０２】
図３４(c)は、第５実施形態において上記図３４(b)による表示がなされた電子書籍10を、ユーザが両手で持って操作している様子を示す図である。ユーザは、片手または両手の手指により、入力表示画面15に表示されたタッチバーTBA内の小口(ALKG／ARKG／BLKG／BRKG)をタッチしたりなぞったりすることで、ページ捲りの操作を行う。
【０２０３】
なお、タッチバーTBAの表示位置は見開きページの下部に限定されるものではなく、見開きページの左側、右側、上部、下部のいずれかまたはこれらを組み合わせた領域に、横方向、または、縦方向の如何なる方法で配置しても良い。
【０２０４】
ここで、図３５(a)〜(c)に、タッチバーTBAによる小口表示の他の形態を示す。
【０２０５】
図３５(a)は、第１拡大ページAWPの下部に第１左小口ALKGを、上部に第１右小口ARKGを横方向に配置した例を示す。第２拡大ページBWPについても同様に、その下部に第２左小口BLKGを、上部に第２右小口BRKGを、横方向に配置している。
【０２０６】
また図３５(b)は、第１拡大ページAWPの両側に第１左小口ALKGと第１右小口ARKGを縦方向に配置した例を示す。第２拡大ページBWPについても同様に、その両側に第２左小口BLKGと第２右小口BRKGを、縦方向に配置している。
【０２０７】
また図３５(c)は、第１のページ領域APAと第２のページ領域BPAを縦方向に配置し、それらの両側に小口を縦方向に配置した例を示す。また図３５(d)は、第１のページ領域APAと第２のページ領域BPAを縦方向に配置し、それらの片側に小口を縦方向に配置した例を示す。
【０２０８】
以上説明したように第５実施形態によれば、上述した第１乃至第４実施形態と比べて小口の幅をより広く設定することができるため、ユーザはページ捲り操作をより容易に行うことができる。
【０２０９】
＜他の実施形態＞
上述した第１〜第５実施形態においては、左から右にページを捲る形態の電子書籍を例として説明したが、右から左にページを捲る電子書籍であっても本発明は同様に適用可能である。
【０２１０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005984366.tif 000002
【図２】
0005984366.tif 000003
【図３】
0005984366.tif 000004
【図４】
0005984366.tif 000005
【図５】
0005984366.tif 000006
【図６】
0005984366.tif 000007
【図７】
0005984366.tif 000008
【図８】
0005984366.tif 000009
【図９】
0005984366.tif 000010
【図１０】
0005984366.tif 000011
【図１１】
0005984366.tif 000012
【図１２】
0005984366.tif 000013
【図１３】
0005984366.tif 000014
【図１４】
0005984366.tif 000015
【図１５】
0005984366.tif 000016
【図１６】
0005984366.tif 000017
【図１７】
0005984366.tif 000018
【図１８】
0005984366.tif 000019
【図１９】
0005984366.tif 000020
【図２０】
0005984366.tif 000021
【図２１】
0005984366.tif 000022
【図２２】
0005984366.tif 000023
【図２３】
0005984366.tif 000024
【図２４】
0005984366.tif 000025
【図２５】
0005984366.tif 000026
【図２６】
0005984366.tif 000027
【図２７】
0005984366.tif 000028
【図２８】
0005984366.tif 000029
【図２９】
0005984366.tif 000030
【図３０】
0005984366.tif 000031
【図３１】
0005984366.tif 000032
【図３２】
0005984366.tif 000033
【図３３】
0005984366.tif 000034
【図３４】
0005984366.tif 000035
【図３５】
0005984366.tif 000036