(57)【要約】【課題】タッチＵＩを具備する表示装置において、スワイプ操作時による表示位置の移動の方向を、補正ないし抑制するものがある。しかし、要望しないタイミングにおいて補正・抑制されてしまう場合があり不便である。【解決手段】表示しているオブジェクトの属性に応じて、表示位置の移動を抑制する。【選択図】図６
2014139776.tif 000002
【特許請求の範囲】
【請求項１】
画像データに含まれるオブジェクトの属性に基づいて、前記画像データが示す画像の表示位置の移動を制御する制御手段を有することを特徴とする表示制御装置。
【請求項２】
前記制御手段は、前記表示位置の移動を水平方向、または垂直方向に抑制する制御を行うことを特徴とする請求項１に記載の表示制御装置。
【請求項３】
前記制御手段は、前記オブジェクトに対応する画像の表示位置の移動を制御することを特徴とする請求項１または２に記載の表示制御装置。
【請求項４】
前記制御手段は、スワイプ操作に応じて前記表示位置の移動を制御することを特徴とする請求項１から３のいずれか一項に記載の表示制御装置。
【請求項５】
前記画像データに含まれる、表示対象のオブジェクトの属性を判定する判定手段をさらに有し、
前記制御手段は、前記判定手段によって前記表示対象のオブジェクトの属性が文字属性であると判定された場合、文字の組み方向に対して直角方向への表示位置の移動を抑制することを特徴とする請求項１から４のいずれか一項に記載の表示制御装置。
【請求項６】
前記画像データに含まれる、表示対象のオブジェクトの属性を判定する判定手段をさらに有し、
前記制御手段は、前記判定手段によって前記表示対象のオブジェクトの属性が表属性であると判定された場合、水平方向または垂直方向への表示位置の移動を抑制することを特徴とする請求項１から４のいずれか一項に記載の表示制御装置。
【請求項７】
前記判定手段が、前記表属性のオブジェクトが行のヘッダを有しかつ列のヘッダを有しないと判定した場合、前記制御手段は、前記表属性のオブジェクトに対して垂直方向への表示位置の移動のみを抑制することを特徴とする請求項６に記載の表示制御装置。
【請求項８】
前記判定手段が、表示領域に行のヘッダを含むと判定した場合、前記制御手段は前記表属性のオブジェクトに対して水平方向または垂直方向への表示位置の移動を抑制することを特徴とする請求項７に記載の表示制御装置。
【請求項９】
前記判定手段が、前記表属性のオブジェクトが列のヘッダを有しかつ行のヘッダを有しないと判定した場合、前記制御手段は、前記表属性のオブジェクトに対して水平方向への表示位置の移動のみを抑制することを特徴とする請求項６に記載の表示制御装置。
【請求項１０】
前記判定手段が、前記表属性のオブジェクトが、表示領域に列のヘッダを含むと判定した場合、前記制御手段は前記表属性のオブジェクトに対して水平方向または垂直方向への表示位置の移動を抑制することを特徴とする請求項９に記載の表示制御装置。
【請求項１１】
前記画像データに含まれる、表示対象のオブジェクトの属性を判定する判定手段をさらに有し、
前記表示対象のオブジェクトの属性が、文字属性、グラフィック属性、および表属性以外の属性であると前記判定手段によって判定された場合、前記制御手段はいずれの方向へも表示位置の移動を抑制しないことを特徴とする請求項１から４のいずれか一項に記載の表示制御装置。
【請求項１２】
前記制御手段による表示位置の移動の制御の実施を指示する操作を検知する検知手段をさらに有し、
前記制御手段は、前記検知手段による検知した場合に、前記制御を行うことを特徴とする請求項１から１１のいずれか一項に記載の表示制御装置。
【請求項１３】
前記制御手段による表示位置の移動の抑制が成される方向を示す表示部品と抑制が成されない方向とを示す表示部品とを表示する表示手段をさらに有することを特徴とする請求項１から１２のいずれか一項に記載の表示制御装置。
【請求項１４】
複数のオブジェクトを含む画像データを入力する入力手段と、
前記入力手段で入力された画像データが示す画像を表示する表示手段と、
前記表示手段で表示された、オブジェクトに対応する画像に対するスワイプ動作を検知する検知手段と
を有する表示制御装置であって、
前記検知手段でのスワイプ動作の検知に応じて行われる、前記表示手段で表示されている前記オブジェクトに対応する画像の表示位置の移動の方向は、オブジェクトの種別に応じて異なることを特徴とする表示制御装置。
【請求項１５】
画像データに含まれるオブジェクトの属性に基づいて、前記画像データが示す画像の表示位置の移動を制御する制御ステップを有することを特徴とする表示制御方法。
【請求項１６】
コンピュータを、請求項１から１４のいずれか一項に記載の表示制御装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御装置、表示制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータやＰＤＡ、スマートフォン、タブレットなど比較的小さな表示装置上で画素数の大きい文書のページ画像を表示する際に、ページ画像の一部を逐次的に表示することが行われている。一般に、ページ画像はテキストや見出し、図、写真、表などの複数のオブジェクトから構成される。ユーザは、こうしたオブジェクトに沿って文書を読み進めるために、順次、ページの所望の範囲が表示装置に表示されるよう、表示位置の移動（スクロール）や拡大縮小の操作を繰り返す必要がある。
【０００３】
こうした表示位置の移動や拡大縮小の操作は、スイッチやホイール、トラックボール、ジョイスティック、タッチスクリーンなどの操作入力装置を操作することによって行われる。特に近年では、高精度なタッチスクリーンを用いた装置が普及している。こうした装置では、スワイプ操作やフリック操作による縦・横・斜めの任意の方向への表示位置の移動や、ピンチアウトおよびピンチイン操作による拡大縮小といった直接的な操作（ダイレクトマニピュレーション）が提供されている。
【０００４】
更に、特許文献１には、スワイプ操作による表示位置の移動の方向を、水平方向ないし垂直方向に補正する技術が開示されている。操作者の個人差や操作位置に起因して生ずる水平方向ないし垂直方向へのスワイプ操作のずれを学習して表示位置の移動操作に補正して反映するものである。
【０００５】
また、アップル社のｉＰａｄ（登録商標）やｉＰｈｏｎｅ（登録商標）に搭載のＷｅｂブラウザでは、スワイプ操作による表示位置の移動を、水平方向ないし垂直方向に固定し抑制する技術が実施されている。すなわち、スワイプ操作の初動を、精度よく水平方向ないし垂直方向に操作することにより、指を離すまでの後続するスワイプ操作による表示位置の移動を、水平方向のみ、ないし垂直方向のみに抑制するものである。例えば、テキストを読み進めていく場合などでは、テキストの組み方向に沿って、表示位置を移動させたい。ここで、組み方向とは、例えば本文のような日本語横書きであれば、水平方向に向かって左から右に進む方向である。前述の表示位置の移動の補正や抑制を行う技術によれば、こうした場合において、所望の方向（組み方向）に対して直角方向に表示位置がずれてしまうことを低減するため、便利である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−７０５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術や、ｉＰａｄ（登録商標）やｉＰｈｏｎｅ（登録商標）で実施されている技術では、オブジェクトの種別に依らず、表示位置の移動の補正や抑制が起動される。例えば、表示装置に表示しているオブジェクトが、人物や風景を収めた写真である場合、スワイプ操作を指示する指の移動に応じて表示位置を移動させたい。しかし、ユーザが意図せず補正や抑制が起動する場合があり、その場合には所望の方向へ表示位置を移動させることがでない。
【課題を解決するための手段】
【０００８】
本発明に係る表示制御装置は、画像データに含まれるオブジェクトの属性に基づいて、前記画像データが示す画像の表示位置の移動を制御する制御手段を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、表示対象のオブジェクトに応じて、適切な表示位置の移動処理を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】携帯情報端末の構成例を示すブロック図である。
【図２】アプリケーションプログラムの構成概念を示すブロック図である。
【図３】ジェスチャイベントの名称と、各イベントが発生したときにジェスチャイベント処理部へ送信する情報を示した概念図である。
【図４】タッチＵＩの初期表示処理の手順を示したフローチャートである。
【図５】携帯情報端末のタッチＵＩの表示例を示す画面図である。
【図６】表示制御装置の表示位置の移動処理の手順を示したフローチャートである。
【図７】文字属性オブジェクト移動抑制判定処理の手順を示すフローチャートである。
【図８】表属性オブジェクト移動抑制判定処理の手順を示すフローチャートである。
【図９】グラフィック属性オブジェクト移動抑制判定処理の手順を示すフローチャートである。
【図１０】グラフィック属性のオブジェクトとしての棒グラフや帯グラフの一例を示した図である。
【図１１】移動範囲制限処理の手順を示すフローチャートである。
【図１２】携帯情報端末の部分領域表示モードにおけるタッチＵＩの表示例を示す画面図である。
【図１３】携帯情報端末のタッチＵＩの表示例を示す画面図である。
【図１４】携帯情報端末のタッチＵＩの表示例を示す画面図である。
【図１５】表示位置の移動処理の手順を示したフローチャートである。
【図１６】携帯情報端末のタッチＵＩの表示例を示す画面図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１２】
図１は、携帯情報端末１００の構成例を示すブロック図である。本実施例では、表示制御装置の一例として携帯情報端末を例に挙げて説明するが、例えばＭＦＰ（Multifunction Peripheral）のように表示画面が比較的小さい装置に適用してもよい。また、表示画面が比較的大きい汎用コンピュータなどにおいても、表示画面中のページ画像の表示位置の移動が必要になるユースケースも考えられる。このような場合、表示制御装置は汎用コンピュータであってもよい。
【００１３】
携帯情報端末１００は、メインボード１５０、ＬＣＤ１０１、タッチパネル１０２、ボタンデバイス１０３から構成される。また、ＬＣＤ１０１とタッチパネル１０２をまとめてタッチＵＩ１０４と呼称する。
【００１４】
メインボード１５０は、ＣＰＵ１０５、無線ＬＡＮモジュール１０６、電源コントローラ１０７、ディスプレイコントローラ（ＤＩＳＰＣ）１０８、パネルコントローラ（ＰＡＮＥＬＣ）１０９を有する。また、メインボード１５０は、ＲＯＭ１１０、ＲＡＭ１１１、二次電池１１２、タイマー１１３を有する。そして、各モジュールは、バス（不図示）によって接続されている。
【００１５】
ＣＰＵ１０５は、この携帯情報端末１００全体を制御するためのコントローラである。ＣＰＵ１０５は、バスに接続されている各モジュールを制御する。ＣＰＵ１０５は、ＲＯＭ１１０に格納されているブートプログラムによりＯＳ（オペレーティングシステム）を起動する。このＯＳの上で、同じくＲＯＭ１１０に格納されているアプリケーションプログラムを実行する。このアプリケーションプログラムは、アプリケーション画像データの内容を閲覧するプログラムである。アプリケーション画像データとは、本実施例で説明する表示対象となる画像データのことである。アプリケーション画像データには各種のオブジェクトデータが含まれる。なお、後述するオブジェクトの種別を示す情報は、アプリケーション画像データに含まれていてもよいし、あるいはアプリケーション画像データを解析することで取得してもよい。
【００１６】
ＲＡＭ１１１は、ＣＰＵ１０５のメインメモリやワークエリア、ＬＣＤ１０１に表示するビデオイメージ用エリア、アプリケーション画像データの保存領域として機能する。
【００１７】
ディスプレイコントローラ（ＤＩＳＰＣ）１０８は、ＣＰＵ１０５の要求に応じて、ＲＡＭ１１１に展開されたビデオイメージ出力を高速に切り替えるとともに、ＬＣＤ１０１に同期信号を出力する。結果として、ＲＡＭ１１１のビデオイメージが、ＤＩＳＰＣ１０８の同期信号に同期してＬＣＤ１０１に出力され、ＬＣＤ１０１上にイメージが表示される。
【００１８】
パネルコントローラ（ＰＡＮＥＬＣ）１０９は、ＣＰＵ１０５の要求に応じて、タッチパネル１０２およびボタンデバイス１０３を制御する。その制御によって、タッチパネル１０２へのタッチ（指またはスタイラスペンなどの指示物がタッチパネル１０２に接近または接触すること）位置や、ボタンデバイス１０３上の押下されたキーコードなどが、ＣＰＵ１０５に通知される。タッチ位置は、タッチパネル１０２の横方向の絶対位置を示す座標値（以下、「Ｘ座標」）と、縦方向の絶対位置を示す座標値（以下、「Ｙ座標」）から成る。タッチパネル１０２は複数箇所の押下を検知することが可能で、その場合ＣＰＵ１０５にはタッチ入力位置数分の押下位置情報が通知される。
【００１９】
無線ＬＡＮモジュール１０６は、ＣＰＵ１０５の制御に基づいて、ＬＡＮに接続された無線アクセスポイント（不図示）上の無線ＬＡＮモジュールとの無線通信を確立し、携帯情報端末１００との通信を仲介する。無線ＬＡＮモジュール１０６には、例えばＩＥＥＥ８０２．１１ｂなどがある。
【００２０】
電源コントローラ１０７は、外部電源（不図示）と接続され電力の供給を受ける。これによって、電源コントローラ１０７に接続された二次電池１１２を充電しながら、且つ、携帯情報端末１００全体に電力を供給する。電源コントローラ１０７により外部電源から電力が供給されないときは、二次電池１１２が電力を携帯情報端末１００全体に電力を供給する。
【００２１】
タイマー１１３は、ＣＰＵ１０５の制御に基づいて、後述するジェスチャイベント発生部２０１へのタイマー割込を発生させる。
【００２２】
次に、携帯情報端末１００のＣＰＵ１０５が実行するアプリケーションプログラムについて説明する。図２は、ＣＰＵ１０５が実行するアプリケーションプログラムの構成概念を示すブロック図である。
【００２３】
ＣＰＵ１０５は、アプリケーションプログラムをＲＯＭ１１０より読み出してＲＡＭ１１１に記憶して実行することができる。以降に示すアプリケーションプログラムに含まれる各部は、以下の構成の組み合わせによって実現される。すなわち、例えばＣＰＵ１０５と、ＲＡＭ１１１のうちアプリケーションプログラムを記憶している領域と、ＲＡＭ１１１のうちＣＰＵ１０５がアプリケーションプログラムを実行して得られる情報（計算結果等）を記憶する領域である。
【００２４】
ジェスチャイベント発生部２０１は、タッチパネル１０２からのタッチ入力を、パネルコントローラ１０９を介して受け付けて、後述する各種ジェスチャイベントを発生させる。ジェスチャイベント発生部２０１は、発生させたジェスチャイベントを、ジェスチャイベント処理部２０２へ送信する。
【００２５】
ジェスチャイベント処理部２０２は、ジェスチャイベント発生部２０１が発生させたジェスチャイベントを受信して、各ジェスチャイベントと、アプリケーション画像データとに応じて処理を実行する。ジェスチャイベント処理部２０２は、表示モード処理部２０３と表示位置移動処理部２０４と拡大・縮小処理部２０５とを含む。
【００２６】
表示モード処理部２０３は、アプリケーション画像データをタッチＵＩ１０４に表示する際の表示モードの切り替えや、表示するオブジェクトの選択を行う。
【００２７】
表示位置移動処理部２０４は、ユーザによるタッチパネル１０２へのスワイプ操作に対する処理を行う。
【００２８】
拡大・縮小処理部２０５は、ユーザによるタッチパネル１０２へのピンチイン操作やピンチアウト操作に対する処理を行う。ピンチイン操作やピンチアウト操作に応じて、タッチＵＩ１０４に表示内容を拡大・縮小して更新させる。
【００２９】
次に、図３を用いて、ジェスチャイベント発生部２０１が発生させるジェスチャイベントについて説明する。図３は、ジェスチャイベントの名称と、各イベントが発生したときにジェスチャイベント処理部２０２へ送信する情報とを示した概念図である。
【００３０】
３０１は、タッチ押下イベントであり、タッチパネル１０２へのタッチ入力位置の座標値とタッチ座標数とを送信する。タッチ座標とは、最新のタッチ位置を示すＸ座標とＹ座標とで表される１組の座標値である。また、タッチ座標数とは、タッチ位置の数を示している。なお、タッチ座標は、タッチパネル１０２へユーザの指が触れたとき、指が移動したとき、指が離れたときに、タイマー１１３からの割り込みが発生し、更新する。
【００３１】
３０２は、スワイプイベントであり、最新のタッチ座標の座標値と、最新の座標値と直前の座標値との差分から計算した移動距離と、を送信する。ここで、スワイプとは、指先をタッチパネル１０２に接触させたまま、１方向に移動（滑らすような）動作のことをいう。
【００３２】
３０３は、ピンチインイベントであり、最新の２点のタッチ座標の中心座標値、及び、２点のタッチ座標を結ぶ直線の縮小距離から計算したピンチインの縮小率を送信する。ここで、ピンチインとは、２つの指先をタッチパネル１０２に接触させたまま、互いに近づける（つまむような）動作のことをいう。
【００３３】
３０４は、ピンチアウトイベントであり、最新の２点のタッチ座標の中心座標値、及び、２点のタッチ座標を結ぶ直線の拡大距離から計算したピンチアウトの拡大率を送信する。ここで、ピンチアウトとは、２つの指先をタッチパネル１０２に接触させたまま、互いに遠ざける（指を広げるような）動作のことをいう。
【００３４】
３０５は、２点スワイプイベントであり、最新の２点のタッチ座標の座標値、及び、２点のタッチ座標の最新の座標値と直前の座標値との差分から計算した移動距離を送信する。２点スワイプイベントは、２点のタッチ座標が同じ方向に移動している場合に発生させる。
【００３５】
３０６は、ローテートイベントであり、最新の２点のタッチ座標の座標値から計算した回転の中心座標値、及び、２点のタッチ座標の最新の座標値と直前の座標値とから計算した回転角度を送信する。ここで、ローテートとは、２つの指先をタッチパネル１０２に接触させたまま、２つの指先をタッチパネル１０２に対して回転させる動作のことを言う。
【００３６】
３０７は、フリックイベントであり、最新のタッチ座標の座標値、及び、最新の座標値と直前の座標値とから計算した指の移動速度を送信する。ここで、フリックとは、スワイプ中に指を離す（指をはじくような）動作のことを言う。
【００３７】
３０８は、タッチ解除イベントであり、タッチパネル１０２からユーザの指が離れたときの最新のタッチ座標の座標値、及び、座標数を送信する。
【００３８】
３０９は、ダブルタップイベントであり、最新のタッチ座標の座標値を送信する。ここで、ダブルタップとは、タッチパネル１０２へ指を接触させる動作と、これより所定の時間内に指を離す操作を一組の動作（後述のシングルタップイベント）とし、この一組の動作を所定の時間内に連続して２回実施する動作のことを言う。
【００３９】
３１０は、シングルタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、シングルタップとは、前述のとおり、タッチパネル１０２へ指を接触させる動作から、所定の時間内に指を離す動作のことを言う。
【００４０】
３１１は、ロングタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、ロングタップとは、タッチパネル１０２へ指を接触させる動作から、所定の時間以上経過した後に、タッチパネルから指を離す動作のことを言う。
【００４１】
３１２は、タッチアンドホールドイベントであり、最新のタッチ座標の座標値が送信される。ここで、タッチアンドホールドイベントとは、タッチパネル１０２にユーザの指が触れてから一度も移動することなく所定の時間以上経過させる動作を言う。
【００４２】
なお、ここでは、ユーザのタッチ入力の例として指を使った場合を示すが、タッチ入力はスタイラスペンなどによる入力でも良い。
【００４３】
さて、ここからは、アプリケーション画像データの内容を、タッチＵＩ１０４に表示する様子について説明していく。
【００４４】
図４および図５を用いて、アプリケーション画像データの内容の初期表示処理を説明する。図４は、アプリケーション画像データの内容の初期表示処理の手順を示したフローチャートである。本フローチャートは、アプリケーションプログラムを、ＣＰＵ１０５が表示モード処理部２０３として実行することにより実現される。表示モード処理部２０３は、アプリケーション画像データを、無線ＬＡＮモジュール１０６を介して外部別体機器（ここではＭＦＰ）から受信すると、本処理を開始する。
【００４５】
まず、ステップＳ４０１において、表示モード処理部２０３は、受信したアプリケーション画像データをＲＡＭ１１１に記憶する。
【００４６】
次に、ステップＳ４０２において、表示モード処理部２０３は、ＲＡＭ１１１に保存したアプリケーション画像データにおける先頭ページと、それに含まれるオブジェクトとを読み込む。
【００４７】
ステップＳ４０３において、表示モード処理部２０３は、読み込んだ先頭ページに含まれる文字、写真、グラフィックの全てのオブジェクトについて、オブジェクトの始点の座標と幅や高さに応じて、表示画像データを生成する。そして、ＲＡＭ１１１のビデオイメージエリアに当該表示画像データを書き込み、ディスプレイコントローラ１０８を介して、タッチＵＩ１０４に表示内容を更新させる。尚、以下の説明では、前述の表示画像データの生成からタッチＵＩ１０４に表示内容を更新させるまでの処理を、単に「タッチパネル１０２に表示内容を更新させる」のように記載する場合がある。
【００４８】
図５は、携帯情報端末１００のタッチＵＩ１０４の表示例を示す画面図である。表示モード処理部２０３がステップＳ４０３を実行し終えると、タッチＵＩ１０４には図５に示すように、先頭ページの内容が表示される。このとき、表示モード処理部２０３は、タッチＵＩ１０４の幅に合わせて先頭ページの表示倍率を決定する。表示モード処理部２０３は、当該表示倍率に拡縮したときのページの高さがタッチＵＩ１０４よりも小さい場合は、タッチＵＩ１０４の中央に表示されるように、タッチＵＩ１０４上の座標において、ページ５００の始点を決定する。また、前記表示倍率に拡縮したときのページ５００の高さがタッチＵＩ１０４よりも大きい場合は、タッチＵＩ１０４上の座標において、ページ５００の始点をタッチＵＩ１０４の始点（例えば画面の左上）に合うように決定する。
【００４９】
ここで、図５を用いて、ページ５００に含まれる各オブジェクトについて説明しておく。
オブジェクト５０４は、組み方向が横書きである、文字属性のオブジェクトである。
オブジェクト５０５は、組み方向が縦書きである、文字属性のオブジェクトである。
オブジェクト５０６は、グラフィック属性のオブジェクトである。
オブジェクト５０７は、先頭行と先頭列にヘッダを有する、表オブジェクトである。
オブジェクト５０８は、棒グラフである、グラフィック属性のオブジェクトである。
オブジェクト５０９は、写真属性のオブジェクトである。
尚、図５の各オブジェクトを囲む破線は、説明をわかり易くするために描いたものであり、実際にはページ５００上には存在しない。
【００５０】
以上、アプリケーション画像データの内容を、タッチＵＩ１０４に表示する様子について説明した。ここからは、表示内容に対するスワイプ操作に応じて、表示位置を移動する様子について説明していく。なお、以下ではスワイプ操作に応じた処理として説明を行うが、本実施例はスワイプ操作に限定されるものではない。例えばフリック操作のように、表示位置の移動を指示する操作であれば上述したいずれの態様の操作であってもよい。本実施例では、タッチＵＩ１０４に表示しているオブジェクトの属性に応じて、オブジェクトに対応する画像の表示位置の移動を抑制する制御を行う。
【００５１】
次に、図６を用いて、本実施例における表示位置の移動処理について説明する。図６は、本実施例における、表示位置の移動処理の手順を示したフローチャートである。本フローチャートは、アプリケーションプログラムを、ＣＰＵ１０５が表示位置移動処理部２０４として実行することにより実現される。表示位置移動処理部２０４は、タッチＵＩ１０４を介してタッチ操作やスワイプ操作、タッチ解除操作を検知し、本処理を開始する。
【００５２】
まず、ステップＳ６００において、表示位置移動処理部２０４は、イベントの種別を判定する。ユーザは、スワイプ操作を行う場合、まず、タッチＵＩ１０４をタッチする。これにより、ジェスチャイベント発生部２０１は、タッチ押下イベントを生成して、ジェスチャイベント処理部２０２へ通知する。よってこの場合は、ステップＳ６００において、表示位置移動処理部２０４は、タッチ押下イベントであると判定しステップＳ６０１へ遷移する。表示位置移動処理部は、後述するようにステップＳ６０１以降の処理を行う。ユーザは、タッチした後、タッチＵＩ１０４をタッチしたまま指を滑らせる。これにより、ジェスチャイベント発生部２０１は、スワイプイベントを生成して、ジェスチャイベント処理部２０２へ通知する。よってこの場合は、ステップＳ６００において、表示位置移動処理部２０４は、スワイプイベントであると判定しステップＳ６０９へ遷移する。表示位置移動処理部２０４は、後述するようにステップＳ６０９以降の処理を行う。最後に、ユーザは、スワイプ操作を終える際に、タッチＵＩ１０４から指を離す。これにより、ジェスチャイベント発生部２０１は、タッチ解除イベントを生成して、ジェスチャイベント処理部２０２へ通知する。よってこの場合は、ステップＳ６００において、表示位置移動処理部２０４は、タッチ解除イベントであると判定し、ステップＳ６２１へ遷移する。
【００５３】
まず、ステップＳ６００において、タッチ押下イベントであると判定した場合の処理から説明していく。
【００５４】
ステップＳ６０１において、表示位置移動処理部２０４は、タッチ押下イベントのタッチ入力位置の座標値から、タッチ操作が、モード切替ボタン、次へボタン、前へボタンなどの操作ボタンの領域に対して成されたか否かを判定する。タッチ入力位置の座標値が、操作ボタンの領域に含まれていなければ、タッチ操作が、操作ボタンに対して成されたものではないと判定し、ステップＳ６０２へ遷移する。そうでないと判定する場合、すなわち、タッチ入力位置の座標値が操作ボタンの領域であると判定した場合、処理を終了する。
【００５５】
ステップＳ６０２において、表示位置移動処理部２０４は、基準オブジェクトを決定する。ここで基準オブジェクトとは、現在読み込んでいるページ中のオブジェクトであって、表示位置の移動の抑制方法を判定するために基準とするオブジェクトのことである。表示位置移動処理部２０４は基準オブジェクトを次のようにして決定する。例えば、ページ内の領域であって、タッチＵＩ１０４に表示されている領域に占める各オブジェクトの面積比を計算し、一番占有面積が多い（一番表示されている）オブジェクトを基準オブジェクトと決定することができる。あるいは、当該タッチＵＩ１０４に表示されている領域の左上端点や、当該領域矩形の中心点を含む矩形ブロックを有するオブジェクトを基準オブジェクトと決定してもよい。また、スワイプ操作に先だってユーザにより実行されたタッチ操作のタッチ位置を含む矩形ブロックを有するオブジェクトを基準オブジェクトと決定してもよい。以上のようにして、基準オブジェクトを決定することができるが、本実施例では最初に示した方法（各オブジェクトの表示領域における面積比により決定）を用いることとする。
【００５６】
ステップＳ６０３において、表示位置移動処理部２０４は、ステップＳ６０２で決定した基準オブジェクトの属性が文字属性であるか否かを判定する。文字属性であると判定する場合にはステップＳ６０４へ遷移し、そうでないと判定する場合にはステップＳ６０５へ遷移する。オブジェクトの属性を示す情報については、アプリケーション画像データに含まれる。あるいは、表示位置移動処理部２０４は、アプリケーション画像データを解析してオブジェクトの属性を判定してもよい。オブジェクトの属性の解析手法については公知の技術を適用することができる。例えば、画像データを所定の大きさの矩形ブロックに分割し、矩形ブロックの大きさや形状に基づいてオブジェクトの属性を特定することができる。例えば、縦横比が１に近く大きさが一定の範囲の矩形ブロックのオブジェクトについては文字オブジェクトと特定することができる。また、扁平な画素ブロックまたは一定の大きさ以上でかつ四角形の白画素ブロックを整列良く内包する黒画素ブロックのオブジェクトについてはグラフィックオブジェクトと特定することができる。また、グラフィックオブジェクトのうち、文字属性を一定の範囲で含むオブジェクトを表オブジェクトと特定することができる。
【００５７】
ステップＳ６０４において、表示位置移動処理部２０４は、文字属性オブジェクト移動抑制判定処理を実行する。これは、文字属性のオブジェクトを基準とした表示位置の移動の抑制方法を決定する処理である。詳細については後述する。
【００５８】
ステップＳ６０５において、表示位置移動処理部２０４は、ステップＳ６０２で決定した基準オブジェクトの属性が表属性であるか否かを判定する。表属性であると判定する場合にはステップＳ６０６へ遷移し、そうでないと判定する場合にはステップＳ６０７へ遷移する。
【００５９】
ステップＳ６０６において、表示位置移動処理部２０４は、表属性オブジェクト移動抑制判定処理を実行する。これは、表属性のオブジェクトを基準とした表示位置の移動の抑制方法を決定する処理である。詳細については後述する。
【００６０】
ステップＳ６０７において、表示位置移動処理部２０４は、ステップＳ６０２で決定した基準オブジェクトの属性がグラフィック属性であるか否かを判定する。グラフィック属性であると判定する場合にはステップＳ６０８へ遷移し、そうでないと判定する場合には処理を終了する。すなわち、文字属性、グラフィック属性、および表属性以外の属性であると判定した場合、処理を終了する。
【００６１】
ステップＳ６０８において、表示位置移動処理部２０４は、グラフィック属性オブジェクト移動抑制判定処理を実行する。これはグラフィック属性のオブジェクトを基準とした表示位置の移動の抑制方法を決定する処理である。詳細については後述する。
【００６２】
尚、ステップＳ６０４、ステップＳ６０６、およびステップＳ６０８において、表示位置の移動の抑制方法は以下のいずれかに決定することができる。
・水平方向のみ抑制、これは、水平方向へのみ、表示位置の移動を抑制するものである。すなわち、垂直方向への移動を許可し、水平方向の移動を禁止する。
・垂直方向のみ抑制、これは、垂直方向へのみ表示位置の移動を抑制するものである。すなわち、水平方向への移動を許可し、垂直方向の移動を禁止する。
・両方向抑制、これは、水平方向と垂直方向のいずれかの方向への表示位置の移動を抑制するものであり、いずれの方向を抑制するかは、後述のステップＳ６１０において決定する。
【００６３】
表示位置移動処理部２０４は、決定した表示位置の移動の抑制方法を、ＲＡＭ１１１に記憶して管理する。
【００６４】
次に、ステップＳ６００において、スワイプイベントであると判定した場合の処理について説明していく。
【００６５】
ステップＳ６０９において、表示位置移動処理部２０４は、タッチ押下イベント受信以降、初回のスワイプイベントの受信であり、かつ表示位置の移動の抑制方法を両方向抑制と決定しているか否かを判定する。そうであると判定する場合には、ステップＳ６１０へ遷移し、そうではないと判定する場合には、ステップＳ６１３へ遷移する。
【００６６】
初回のスワイプイベントの受信であり、かつ表示位置の移動の抑制方法を両方向抑制と決定している場合、ステップＳ６１０において、表示位置移動処理部２０４は、受信したスワイプイベントに含まれる移動量を分析する。すなわち表示位置移動処理部２０４は、受信したスワイプイベントに含まれる最新と直前のタッチ座標の位置より、水平方向と垂直方向の成分にベクトル分解する。そして、両方向成分の大きさを比較する。水平方向成分の方が大きいと判定する場合には、ステップＳ６１１へ遷移し、そうではないと判定する場合には、ステップＳ６１２へ遷移する。
【００６７】
ステップＳ６１１において、表示位置移動処理部２０４は、水平成分が垂直成分よりも大きいので、表示位置移動の抑制方法を、両方向抑制であって、本スワイプ操作においては垂直方向を抑制する、と決定する。つまり、ステップＳ６１１において表示位置移動処理部２０４は、水平方向への移動を許可し、垂直方向への移動を禁止すると決定する。一方、ステップＳ６１２では、垂直成分が水平成分よりも大きいので、表示位置移動の抑制方法を、両方向抑制であって、本スワイプ操作においては水平方向を抑制する、と決定する。そして、当該決定した抑制の方向を、ＲＡＭ１１１に記憶して管理する。
【００６８】
２回目以降のスワイプイベント受信時には、ステップＳ６０９でＮｏと判定されるので、ステップＳ６１０からステップＳ６１２は実行されない。しかしながら、先に実行されているステップＳ６１０からＳ６１２の結果ＲＡＭ１１１に記憶されている抑制の方向を参照して表示位置の移動を制御する。尚、ステップＳ６０４、ステップＳ６０６、およびステップＳ６０８において、水平方向のみ抑制や垂直のみ方向抑制と判定された場合には、当該ステップにおいて、当該決定した抑制方法をＲＡＭ１１１に記憶している。よって、初回であり両方向抑制でない場合、及び、２回目以降のスワイプイベント受信時には、このＲＡＭに記憶されている抑制の方向を参照して表示位置の移動を制御する。これは次のステップＳ６１３における処理である。
【００６９】
ステップＳ６１３において、表示位置移動処理部２０４は、これまでの処理において抑制方法を決定している否かを判定する。この判定はＲＡＭ１１１に、決定した抑制方法を記録しているか否かを確認することにより行われる。抑制方法を決定していると判定する場合には、表示位置移動処理部２０４は、ステップＳ６１４へ遷移し、決定していないと判定する場合には、ステップＳ６１８へ遷移する。
【００７０】
ステップＳ６１４において、表示位置移動処理部２０４は、スワイプイベントに含まれる移動量について、表示位置の移動を抑制する方向の成分の積算値を計算する。スワイプイベントに含まれる移動量は、スワイプイベントに含まれる最新のタッチ位置座標と直前のタッチ位置座標とから、水平方向（Ｘ軸方向）の成分と垂直方向（Ｙ軸方向）の成分とにベクトル分解することができる。ベクトル分解して得た、両方向の成分のうち、抑制する方向の値を、スワイプイベント到着の度に加算し、ＲＡＭ１１１に記憶する。
【００７１】
そして、ステップＳ６１５において、表示位置移動処理部２０４は、予め規定の閾値（解除閾値）とステップＳ６１４で計算した積算値とを比較する。この解除閾値は、例えば、タッチＵＩ１０４の表示領域の水平方向／垂直方向の幅の１／３の値、などというように、ユーザの入力誤差ではなく、確からしく抑制方向への移動指示と判定できる値に決定しておけばよい。解除閾値よりも抑制方向の移動量の積算値の方が大きいと判定する場合には、ステップＳ６１６に遷移し、小さいと判定する場合には、ステップＳ６１７に遷移する。
【００７２】
ステップＳ６１６において、表示位置移動処理部２０４は、ステップＳ６１３で計算した積算値の分だけ、表示位置の移動の抑制方向について移動すると決定する。本実施例では、オブジェクトの属性に応じて表示位置の移動の抑制を行う。このため、抑制された方向には表示位置を移動することができなくなってしまう。そこで、抑制する方向について、解除閾値を超える移動指示がユーザにより成された場合には、例外的に抑制方向への移動も行うようにする。ステップＳ６１４、ステップＳ６１５、およびステップＳ６１６により、例外的な抑制方向への移動を実現している。また、ステップＳ６１６において、表示位置移動処理部２０４は、抑制方向の移動量の積算値を０に初期化する。
【００７３】
ステップＳ６１７において、表示位置移動処理部２０４は、抑制方法に応じてページ始点を移動し、表示位置の移動を行う。より詳細には、次の処理を行う。スワイプイベントに含まれる最新のタッチ座標の位置と直前のタッチ座標の位置とにより、スワイプイベントに含まれる移動量を水平方向の成分と垂直方向の成分にベクトル分解する。そして、抑制する方向成分を０に補正する。更に、ステップＳ６１６において、抑制方向へもステップＳ６１４で計算した積算値に応じて移動すると決定している場合には、当該積算値を当該抑制の方向の成分に加算する。以上により求めたベクトルに応じて、ページ始点のＸ座標およびＹ座標を移動する。
【００７４】
ステップＳ６１３において抑制方法が決定されていないと判定した場合には、ステップＳ６１８において、表示位置移動処理部２０４は、スワイプイベントの内容に応じて、ページ始点を移動し、表示位置の移動を行う。
【００７５】
ステップＳ６１９において、表示位置移動処理部２０４は、移動範囲制限処理を実行する。これは、部分領域表示モードである際に、好適に表示位置を補正する処理である。部分領域表示モードと移動範囲制限処理との詳細は後述する。
【００７６】
最後に、ステップＳ６２０において、表示位置移動処理部２０４は、以上の処理において決定されたページの始点に応じて、タッチＵＩ１０４に表示内容を更新させる。
【００７７】
一方、ステップＳ６００でタッチ解除イベントであると判定した場合には、次の処理を行う。
【００７８】
ステップＳ６２１において、表示位置移動処理部２０４は、ＲＡＭ１１１に記憶した、表示位置の移動の抑制方法に関する情報を削除する。具体的には、表示位置移動処理部２０４はステップＳ６０４、ステップＳ６０６、ステップＳ６０８、ステップＳ６１１、ステップＳ６１２においてＲＡＭ１１１に記憶した情報を削除する。また、ステップＳ６１４で計算しＲＡＭ１１１に記憶した、抑制方向の移動量の積算値も削除する。
【００７９】
尚、本実施例では、携帯情報端末１００は、ユーザがタッチＵＩ１０４にタッチしスワイプ操作を行うと、画面下端に水平方向のスクロールバーを、画面右端に垂直方向のスクロールバーを、それぞれ表示することができる。この時、本処理において決定した表示位置の移動を抑制する方向に応じて、画面右端および左端のスクロールバーの表示態様を変じることができる。なお、スクロールバーは、画面上端や画面左端に表示してもよい。本実施例では、例えば抑制する方向に該当するスクロールバーは、透明度の高い半透明の色で描画し、抑制しない方向については、不透明な色で描画する。ステップＳ６２０では、以上のようにしてスクロールバーを表示すべく、タッチＵＩ１０４に表示内容を更新させることもできる。尚、表示位置の移動を抑制する方向に応じて、タッチＵＩ１０４の表示方法を制御する方法については、この例の方法に限定するものではなく、別な方法を用いてもよい。
【００８０】
次に、図７を用いて、本実施例における、図６のＳ６０４に示した、文字属性オブジェクト移動抑制判定処理について説明する。図７は、文字属性オブジェクト移動抑制判定処理の手順を示すフローチャートである。本フローチャートは、アプリケーションプログラムを、ＣＰＵ１０５が表示位置移動処理部２０４として実行することにより実現される。
【００８１】
ステップＳ７００において、表示位置移動処理部２０４は、文字属性であるオブジェクトの組方向を取得する。文字の組み方向は、アプリケーション画像データに含まれている。また、アプリケーション画像データを解析して文字の組み方向を取得してもよい。例えば、文字属性のオブジェクトのうち、特定領域について画素値に対する水平・垂直の射影を取る。そして、射影の分散を評価する。水平射影の分散が大きい場合は横書き、垂直射影の分散が大きい場合は縦書きとして、組方向を取得することができる。
【００８２】
ステップＳ７０１において、表示位置移動処理部２０４は、文字の組み方向を判定し、組み方向が横書きであると判定する場合には、ステップＳ７０２へ遷移し、縦書きであると判定する場合にはステップＳ７０３へ遷移する。
【００８３】
ステップＳ７０２において、表示位置移動処理部２０４は、表示位置の移動の抑制方法を、垂直方向のみ抑制と決定する。本処理の対象であるオブジェクトは、横書きの文字であるため、文字の組み方向である水平方向へ表示位置を移動し、垂直方向にずれが生じないようにするものである。
【００８４】
一方、ステップＳ７０３において、表示位置移動処理部２０４は、表示位置の移動の抑制方法を、水平方向のみ抑制と決定する。この場合、本処理対象のオブジェクトは、縦書きの文字であるため、文字の組み方向である垂直方向へ表示位置を移動し、水平方向にずれが生じないようにするものである。
【００８５】
次に、図８を用いて、本実施例における、図６のＳ６０６に示した、表属性オブジェクト移動抑制判定処理について説明する。図８は、表属性オブジェクト移動抑制判定処理の手順を示すフローチャートである。本フローチャートは、アプリケーションプログラムを、ＣＰＵ１０５が表示位置移動処理部２０４として実行することにより実現される。
【００８６】
ステップＳ８００において、表示位置移動処理部２０４は、ヘッダ位置を検出する。ヘッダ位置は、例えば、先頭行（一番上の行）と先頭列（一番左の列）の文字のフォント種がボールドであるか否かや、ベクトル化した際のベクトルデータの近似曲線の太さ、表罫線の太さ、表の各セルの背景色などによって検出することができる。
【００８７】
ステップＳ８０１において、表示位置移動処理部２０４は、ヘッダが先頭行のみにあるか否かを判定する。先頭行のみにあると判定する場合には、ステップＳ８０２へ遷移し、そうではないと判定する場合には、ステップＳ８０３へ遷移する。
【００８８】
ステップＳ８０２において、表示位置移動処理部２０４は、ヘッダである先頭行をタッチＵＩ１０４に表示しているか否かを判定する。例えば、表示位置移動処理部２０４は、現在のページの始点と、処理対象の表属性のオブジェクトのブロック矩形の領域および当該領域中の先頭行の位置とにより、ヘッダである先頭行をタッチＵＩ１０４に表示しているか否かを判定する。表示していないと判定する場合、すなわち、ヘッダは先頭行のみであるが、その先頭行を表示していない場合には、ステップＳ８０６に遷移し、図７で示したステップＳ７０２と同様に、垂直方向のみ抑制と決定する。これは、先頭行にのみヘッダがある場合、当該表オブジェクトを参照する際には、まず先頭行のヘッダの内容を確認し、そして、その行に沿って読み進めるといった操作を想定したものである。すなわち、行方向（水平方向）にそって表示位置を移動し、垂直方向にずれを生じないようにするものである。一方、ステップＳ８０２において、先頭行を表示していると判定した場合には、ステップＳ８０５へ遷移する。
【００８９】
ステップＳ８０３において、表示位置移動処理部２０４は、ヘッダが先頭列のみにあるか否かを判定する。先頭列のみにあると判定する場合には、ステップＳ８０４へ遷移し、そうでないと判定する場合には、ステップＳ８０５へ遷移する。
【００９０】
ステップＳ８０４において、表示位置移動処理部２０４は、現在のページの始点と、処理対象の表属性のオブジェクトのブロック矩形の領域および当該領域中の先頭列の位置とにより、ヘッダである先頭列をタッチＵＩ１０４に表示しているか否かを判定する。表示していないと判定する場合、すなわち、ヘッダは先頭列のみであるが、その先頭列を表示していない場合には、ステップＳ８０７に遷移し、図７で示したステップＳ７０３と同様に、水平方向のみ抑制と決定する。これは、先頭列にのみヘッダがある場合、当該表オブジェクトを参照する際には、まず先頭列のヘッダの内容を確認し、そして、その列に沿って読み進めるといった操作を想定したものである。すなわち、列方向（垂直方向）にそって表示位置を移動し、水平方向にずれを生じないようにするものである。一方、ステップＳ８０４において、先頭列を表示していると判定する場合には、ステップＳ８０５へ遷移する。
【００９１】
ステップＳ８０５において、表示位置移動処理部２０４は、表示位置の移動の抑制方法を、両方向抑制と決定する。先頭行と先頭列の両方がヘッダである場合、あるいは、先頭行にも先頭列にもヘッダがない場合には、スワイプ操作をして、行か列のいずれかに沿って表示位置を移動することが想定される。スワイプ操作により指示された表示位置の移動方向について、水平方向と垂直方向の成分を比較（ステップＳ６１１）し、大きい方の方向へのみ移動するようにすることにより、ユーザが意図した方向と直角方向へのずれを生じないようにするものである。また、本フローチャートに依れば、次の場合にも、ステップＳ８０５の処理を実行する。すなわち、先頭行のみにヘッダがある場合であって、かつそのヘッダをタッチＵＩ１０４に表示している場合と、先頭列にのみヘッダがある場合であって、かつそのヘッダをタッチＵＩ１０４に表示している場合である。先頭行のみにヘッダが存在する場合には、前述のとおり、行に沿って表示位置を移動するが、先頭行のヘッダを表示している場合には、表示位置を垂直方向へ移動して順次各ヘッダの内容を参照することが想定される。故に、先頭行のみにヘッダが存在する場合であっても、当該ヘッダを表示している場合には、行方向あるいは列方向に沿って表示位置を移動できるようにするものである。先頭列にのみヘッダが存在する場合についても、同様である。
【００９２】
次に、図９と図１０を用いて、本実施例における、図６のＳ６０８に示した、グラフィック属性オブジェクト移動抑制判定処理について説明する。図９は、グラフィック属性オブジェクト移動抑制判定処理の手順を示すフローチャートである。本フローチャートは、アプリケーションプログラムを、ＣＰＵ１０５が表示位置移動処理部２０４として実行することにより実現される。また、図１０は、本処理の対象であるグラフィック属性のオブジェクトとしての棒グラフや帯グラフの一例を示した図である。
【００９３】
まず、ステップＳ９００において、表示位置移動処理部２０４は、グラフ情報を取得する。グラフ情報は、グラフの種別を示す情報であり、アプリケーション画像データに含まれる。あるいは、アプリケーション画像データを解析して生成されたグラフ情報を取得してもよい。例えば、公知の手法によってオブジェクトをベクトル化することによってグラフ情報を取得することができる。
【００９４】
ステップＳ９０１において、表示位置移動処理部２０４は、本処理の対象であるグラフィック属性のオブジェクトが棒グラフであるか否かを判定する。ステップＳ９００でグラフ情報が取得され、かつ、当該情報が棒グラフであることを示す場合、ステップＳ９０２へ遷移し、そうでない場合、ステップＳ９０４へ遷移する。
【００９５】
ステップＳ９０２において、表示位置移動処理部２０４は、棒グラフの方向を取得する。グラフの方向はグラフ情報に含まれている。あるいは、グラフバーの形状や軸の位置より決定することもできる。例えば、図１０（ａ）の棒グラフ１０００の場合、各グラフバーの水平方向の幅の総和は、垂直方向の幅の総和に比して大きい。また、縦軸はグラフ左端部に存在する。小さな表示領域のタッチＵＩ１０４で、このような棒グラフを参照する場合、縦軸脇のラベルを確認し、水平方向へグラフバーに沿って、スワイプ操作により表示位置を移動させながら参照することが想定される。よって、この場合は、棒グラフの方向は、水平方向と決定することができる。表示位置移動処理部２０４は、ステップＳ９０２において、このようにしてグラフの方向を取得する。
【００９６】
ステップＳ９０３において、表示位置移動処理部２０４は、ステップＳ９０２において取得したグラフの方向を判定する。グラフの方向が水平方向であると判定する場合には、ステップＳ９０６に遷移し、図７で示したステップＳ７０２と同様に垂直方向のみ抑制と決定する。一方、グラフの方向が垂直方向であると判定する場合には、ステップＳ９０７に遷移し、図７で示したステップＳ７０３と同様に水平方向のみ抑制と決定する。
【００９７】
ステップＳ９０４において、表示位置移動処理部２０４は、本処理の対象であるグラフィック属性のオブジェクトが帯グラフであるか否かを判定する。ステップＳ９００でグラフ情報が取得され、かつ、当該情報が帯グラフであることを示す場合、図８で示したステップＳ８０５と同様に両方向抑制と決定する。例えば、図１０（ｂ）の帯グラフ１００１のように、帯グラフは、各グラフバー内の構成比率が、グラフバー間で点線で結ばれるなどしており、ユーザがグラフバー間を比較しながら参照することが想定される。よって、帯グラフの場合は、棒グラフのようにグラフ方向に沿って表示位置を移動することと、軸方向に沿って表示位置を移動することがあると考えられる。よって、両方向抑制と決定し、初回のスワイプイベントを判定し（Ｓ６１１）、抑制方向を決定するものである。
【００９８】
次に、図１１を用いて、図６のステップＳ６１９に示した、移動範囲制限処理について説明する。移動範囲制限処理は、部分領域表示モードである際に、好適に表示位置を補正する処理である。図１１は、移動範囲制限処理の手順を示すフローチャートである。本フローチャートは、アプリケーションプログラムを、ＣＰＵ１０５が表示位置移動処理部２０４として実行することにより実現される。
【００９９】
まず、図５と図１２を用いて部分表示モードについて説明する。携帯情報端末１００は、図５に示すようなページ全体を表示するのに適したページ表示モードと、図１２に示すように、ページ内の各オブジェクトを拡大表示するのに適した部分領域表示モードの２つの表示モードを有することができる。本実施例では、アプリケーション画像データを携帯情報端末１００が受信した直後は、ページ表示モードである。部分領域表示モードは、図１２に示すように、ページ５００内の各オブジェクトが大きく表示されるように、ページ５００の表示倍率と始点を制御する表示モードである。オブジェクト５０４を拡大表示対象のオブジェクトとして選択したときに表示される画面を図１２に示す。また、本実施例では、図１２に示すように、拡大表示対象のオブジェクト（ここではオブジェクト５０４）以外の領域が、半透明グレーで表示されるよう、半透明マスク１２０１を、ページ５００の内容の上に重ねて表示する。このような半透明マスクを重ねて表示することにより、対象のオブジェクト以外が暗く表示されるので、対象のオブジェクトが強調表示され、ユーザは表示対象になっているオブジェクトを認識しやすくなる。
【０１００】
また、図１２において、モード切替ボタン５０１は、表示モードを、ページ表示モードと「部分領域表示モード」の間で切り替えるためのボタンである。表示モード処理部２０３は、モード切替ボタン５０１への指示に応じて、モード切替処理を実行する。
【０１０１】
次へボタン５０２は、部分領域表示モードにおいて、現在表示中のオブジェクトから、その次のオブジェクトを表示するためのものである。表示モード処理部２０３は、次へボタン５０２への指示に応じて、次のオブジェクトを選択する。
【０１０２】
前へボタン５０３は、部分領域表示モードにおいて、現在表示中のオブジェクトから、その前のオブジェクトを表示するためのものである。表示モード処理部２０３は、前へボタン５０３への指示に応じて、前のオブジェクトを選択する。
【０１０３】
尚、表示モード処理部２０３は、表示モードがページ表示モードの場合には、次へボタン５０２と前へボタン５０３を指示不可に制御することができる。
【０１０４】
図１１では、このような部分領域表示モードを用いる場合に好適に表示位置を補正する処理を説明する。
【０１０５】
ステップＳ１１００において、表示位置移動処理部２０４は、現在の表示モードを取得して、部分領域表示モードであるか判定する。表示モードが部分領域表示モードである場合にはステップＳ１１０１に進み、ページ表示モードである場合には何も行わずに処理を終了する。
【０１０６】
ステップＳ１１０１において、表示位置移動処理部２０４は、現在のページの表示倍率で表示したときの現在読み込まれているオブジェクトの幅が、タッチＵＩ１０４の画面の幅より大きいか否かを判定する。このとき、前記オブジェクトの幅がタッチＵＩの画面幅よりも大きい場合には、ステップＳ１１０２に進み、そうでない場合には、ステップＳ１１０４に進む。
【０１０７】
ステップＳ１１０２において、表示位置移動処理部２０４は、オブジェクトの左端または右端がタッチＵＩ１０４の画面内に移動したかを判定する。その結果、オブジェクトの左端または右端がタッチＵＩの画面内に移動したと判定した場合には、ステップＳ１１０３に進み、そうでない場合には、ステップＳ１１０６に進む。
【０１０８】
ステップＳ１１０３において、表示位置移動処理部２０４は、ページの始点のＸ座標を補正して、画面内に移動された該オブジェクトの左端または右端をタッチＵＩ１０４の画面の端に移動させて戻す。これは、オブジェクトの幅がタッチＵＩの画面幅に収まらない場合においても、できるだけ該オブジェクトが表示される領域を多くするためである。
【０１０９】
また、ステップＳ１１０４において、表示位置移動処理部２０４は、オブジェクトの左端または右端がタッチＵＩ１０４の画面外に移動したかを判定する。その結果、オブジェクトの左端または右端がタッチＵＩ１０４の画面外にあると判定した場合には、ステップＳ１１０５に進み、そうでない場合には、ステップＳ１１０６に進む。
【０１１０】
ステップＳ１１０５において、表示位置移動処理部２０４は、ページの始点のＸ座標を補正して、当該オブジェクトの左端または右端を画面の端に移動させて戻す。これは、オブジェクトの幅がタッチＵＩの画面幅に収まるので、該オブジェクトの全体が表示されるようにするためである。
【０１１１】
ステップＳ１１０６において、表示位置移動処理部２０４は、現在のページの表示倍率で表示したときの現在読み込まれているオブジェクトの高さが、タッチＵＩ１０４の画面の高さより大きいか否かを判定する。このとき、前記オブジェクトの高さがタッチＵＩの画面高さよりも大きい場合には、ステップＳ１１０８に進み、そうでない場合には、ステップＳ１１０９に進む。
【０１１２】
ステップＳ１１０７において、表示位置移動処理部２０４は、スワイプイベントの移動距離に応じてオブジェクトを含むページの表示位置を移動した際に、オブジェクトの上端または下端がタッチＵＩ１０４の画面内に移動したかを判定する。その結果、オブジェクトの上端または下端がタッチＵＩの画面内にあると判定した場合には、ステップＳ１１０８に進み、そうでない場合には、処理を終了する。
【０１１３】
ステップＳ１１０８において、表示位置移動処理部２０４は、ページの始点のＹ座標を補正して、画面内に移動されたオブジェクトの上端または下端を画面の端に移動させて戻し、できるだけ該オブジェクトが表示されるようにする。
【０１１４】
ステップＳ１１０９において、表示位置移動処理部２０４は、オブジェクトの上端または下端がタッチＵＩの画面外に移動したかを判定する。オブジェクトの上端または下端がタッチＵＩの画面外に移動したと判定した場合には、ステップＳ１１１０に進み、そうでない場合には、処理を終了する。
【０１１５】
ステップＳ１１１０において、表示位置移動処理部２０４は、ページの始点のＹ座標を補正して、当該オブジェクトの上端または下端を画面内に移動させて戻し、該オブジェクトの全体が表示されるようにする。
【０１１６】
このように、オブジェクトの移動範囲を制限することで、ユーザは、オブジェクトの端部を容易に識別することができる。
【０１１７】
次に、図１３と図１４を用いて、表示位置の移動処理により成されるタッチＵＩ１０４における表示内容について説明する。図１３および図１４は、携帯情報端末１００のタッチＵＩ１０４の表示例を示す画面図である。
【０１１８】
図１３（ａ）は、図５で示したページ５００のページ表示モードの表示を、拡大表示した場合の画面である。拡大表示は、ピンチアウト操作により成す事ができる。また、図１３（ｂ）は、図５に示したオブジェクト５０４の部分領域表示モードにおいて、拡大表示した場合の画面である。図１３（ａ）は、図示の通り、オブジェクト５０４とオブジェクト５０７と、オブジェクト５０８が表示されているが、その面積比はオブジェクト５０４が一番大きい。また、図１３（ｂ）は、部分領域表示モードであり、オブジェクト５０４が拡大表示されている。つまり、図１３（ａ）も（ｂ）のいずれの場合も、図６のステップＳ６０２で判定される基準オブジェクトはオブジェクト５０４である。そしてオブジェクト５０４は、組み方向が横書きの文字属性である。よって、これらの画面表示時のタッチＵＩ１０４に対して、ユーザがスワイプ操作を行った場合、携帯情報端末１００は、表示位置の移動を、垂直方向へは抑制し、水平方向へのみ成す。例えば、ユーザが、文字属性であって横書きであるオブジェクト５０４を、スワイプ操作によって、組み方向に沿って読み進めようとしているとする。この時、矢印１３０１により模式的に示したスワイプ操作の軌跡（矢印始点から矢印終点まで指をタッチしながら滑らせた）を、意図せず行ってしまった場合でも、表示位置は垂直方向へずれず、水平方向へのみ移動する。ただし、矢印１３０２のように、解除閾値を超える垂直方向成分の移動量を有するスワイプ操作を成した場合には、意図して垂直方向の移動指示を行っているため、当該移動量の分、垂直方向へも表示位置を移動させる。一方、基準オブジェクトがオブジェクト５０５のような、組み方向が縦書きの文字属性のオブジェクトの場合には、矢印１３０１のようなスワイプ操作に対する表示位置の移動を、水平方向へは抑制し、垂直方向へのみ成す。なお、矢印１３０１、１３０２はスワイプ動作の軌跡を示しているに過ぎず、画面表示されたものではない点に留意されたい。
【０１１９】
尚、図１３（ａ）において、符号１３０３は水平方向のスクロールバーであり、符号１３０４は垂直方向のスクロールバーである。図１３（ａ）の場合は、垂直方向への表示領域の移動を抑制するため、携帯情報端末１００は、水平方向スクロールバー１３０３に比して、垂直方向スクロールバー１３０４を、透明度が高い色で表示する。これによって、垂直方向への表示位置の移動を抑制していることを示唆する。
【０１２０】
また、図１３（ｂ）の部分領域表示モードにおいては、水平方向のスクロールバー１３０３が表示され、垂直方向のスクロールバーが表示されていない例を示しているが、垂直方向のスクロールバーが表示されてもよい。
【０１２１】
また、図１４（ａ）は、図５に示したオブジェクト５０７を部分領域表示モードにおいて、拡大表示した場合の画面である。なお、ページ表示モードを拡大して表示した場合であっても、以下の説明は同様である。オブジェクト５０７は表属性であり、かつ図示のとおり、先頭行と先頭列にヘッダを有している。よって、図１４（ａ）の画面表示時のタッチＵＩ１０４に対してユーザがスワイプ操作を行った場合、これにより生じる初回のスワイプイベントの移動量の水平成分と垂直成分の大小に応じて、いずれか一方の方向への移動を抑制する。そして、もう一方の方向へのみ表示位置を移動する。例として、初回のスワイプイベントが矢印１４００のように示される場合、水平成分（矢印１４０１）と垂直成分（矢印１４０２）を比較すると、図示のとおり、水平成分の方が大きい。よってこの場合は、水平成分の移動量に応じて、水平方向へのみ表示位置を移動する。例えば、ユーザが、ある行ヘッダに注目して、当該行の各列の値を読み進めようとしている場合に、意図せず矢印１４００のようなスワイプ操作を行ってしまっても、垂直方向にずれを生じない。尚、ある列ヘッダに注目して、当該列の各行の値を読み進めようとしている場合には、ユーザは、水平成分に比して垂直成分の方が大きいスワイプ操作を成せばよい。これにより、水平方向への移動を抑制し、垂直方向へのみ表示位置を移動することができる。また、ユーザがタッチ解除操作を行えば、垂直方向あるいは水平方向への抑制は解除し、次のスワイプ操作の初回のスワイプイベントに応じて抑制方法を決定し直す。このため、ユーザが都度、行方向へ読み進めたり、列方向へ読み進めたり、観点を変えて操作することができる。
【０１２２】
また、基準オブジェクトが、行ヘッダも列ヘッダも有しない表属性のオブジェクトの場合には、携帯情報端末１００は、オブジェクト５０７と同様に表示位置の移動を抑制する。
【０１２３】
基準オブジェクトが行ヘッダのみを有する表属性のオブジェクトの場合には、携帯情報端末１００は、オブジェクト５０４の場合と同じように、表示位置の移動を、垂直方向へは抑制し、水平方向へのみ成す。ただし、タッチＵＩ１０４の表示領域に、行ヘッダを表示している場合には携帯情報端末１００は、オブジェクト５０７と同様に表示位置の移動を抑制する。
【０１２４】
基準オブジェクトが列ヘッダのみを有する表属性オブジェクトの場合には、携帯情報端末１００は、オブジェクト５０５の場合と同じように、表示位置の移動を、水平方向へは抑制し、垂直方向へのみ成す。ただし、タッチＵＩ１０４の表示領域に、列ヘッダを表示している場合には、携帯情報端末１００は、オブジェクト５０７と同様に表示位置の移動を抑制する。
【０１２５】
図１４（ｂ）は、図５に示したオブジェクト５０９を部分領域表示モードにおいて、拡大表示した場合の画面である。なお、ページ表示モードを拡大して表示した場合であっても、以下の説明は同様である。オブジェクト５０９は、写真属性のオブジェクトであるため、図１４（ｂ）の画面表示時のタッチＵＩ１０４に対して、ユーザがスワイプ操作を行っても、いずれの方向へも抑制は行わない。ユーザは、写真中の所望の箇所を、スワイプ操作により表示させることができる。その際、携帯情報端末１００は、不要に、移動方向の抑制を実行することはない。
【０１２６】
尚、図１４（ａ）の場合、ユーザが、タッチＵＩ１０４をタッチした段階では、未だいずれの方向に表示位置の移動を抑制するかは決定していない。よって、図示のように、水平方向スクロールバー１３０３も垂直方向スクロールバー１３０４も、共に透明度の低い（不透明な）色で表示してもよい。ユーザが、タッチした状態から指を滑らせてスワイプ操作を行うと、携帯情報端末１００は、初回のスワイプイベントに応じて水平方向と垂直方向のいずれかについて、表示領域の移動の抑制が行う。この時、当該方向のスクロールバーを、図１３（ａ）の垂直方向スクロールバー１３０４のように、透明度が高い色で表示する。また、図１４（ｂ）はいずれの方向へも表示領域の移動の抑制を成さないため、水平方向スクロールバー１３０３も垂直方向スクロールバー１３０４も、常に透明度の低い（不透明な）色で表示する。
【０１２７】
図１４（ｃ）は、図５に示したオブジェクト５０８を部分領域表示モードにおいて、拡大表示した場合の画面である。ページ表示モードを拡大して表示した場合であっても、以下の説明は同様である。オブジェクト５０９は、グラフィック属性であり、かつ、棒グラフであるオブジェクトである。そしてそのグラフ方向は水平方向である。よって図１４（ｃ）の画面表示時のタッチＵＩ１０４に対して、ユーザがスワイプ操作を行った場合、携帯情報端末１００は、表示位置の移動を、オブジェクト５０４の場合と同じように、表示位置の移動を抑制する。基準オブジェクトが、グラフ方向が垂直方向の棒グラフであるグラフィック属性の場合には、オブジェクト５０５の場合と同じように、表示位置の移動を抑制する。基準オブジェクトが、帯グラフの場合には、オブジェクト５０７の場合と同じように、表示位置の移動を抑制する。
【０１２８】
以上のように、本実施例によれば、表示対象であるオブジェクトの属性に応じて、表示位置の移動を抑制することができる。当該オブジェクトの特徴を加味した表示位置の移動を提供することができるため、携帯端末のような小さな画面の表示装置であっても、文書を好適に閲覧することができる。
【０１２９】
尚、本実施例では、タッチ解除イベントの受信により、スワイプ操作を終了する例を示したが、タイマー１１３を利用し、タッチ解除イベントを受信してから一定期間が経過した後に、スワイプ操作を終了するようにしてもよい。一定時間が経過した後に、ステップＳ６２１を実行することができる。また、一定期間内であれば、再度タッチ押下イベントを受信した後、スワイプ操作を継続することもできる。表示位置の移動方向を抑制している場合には、一定時間経過後に抑制が解除される。あるいは、タッチ解除イベントの受信がなくとも、一定期間スワイプ操作が成されなかった場合（スワイプイベントを受信しない、あるいは受信しても移動量が予め定義した閾値以下のごく少量）に、ステップＳ６２１を実行するようにしてもよい。そして、これら一定期間は、基準オブジェクトの属性に応じて定義してもよい。
【０１３０】
また、解除閾値の値は、基準オブジェクトの属性に応じて定義してもよい。
【０１３１】
更に、水平（垂直）方向への表示位置の移動の抑制を行う条件として、次を考慮してもよい。基準オブジェクトの矩形ブロックの水平（垂直）方向のサイズと、タッチＵＩ１０４の表示領域の水平（垂直）方向のサイズとを比較して、一定以上の比率であることを考慮してもよい。つまり、表示位置の移動の最大量が、さして大きくはない場合には、移動方向の抑制は行わないようにするものである。
【０１３２】
また、本実施例では、両方向抑制の場合、タッチ押下イベントの受信後の最初のスワイプイベントを判定して、水平方向を抑制するか垂直方向を抑制するかを決定した。しかし、初回ではなく、最初の数回とし、当該回数分のスワイプイベントの水平成分や垂直成分をそれぞれ加算した上で、大小を比較してもよい。
【実施例２】
【０１３３】
実施例１では、スワイプ操作が成されると、表示対象のオブジェクト（基準オブジェクト）の属性に応じて、表示位置の移動を抑制する例を示した。しかしながら、スワイプ操作の初動で指を精度よく水平方向ないし垂直方向に動かすことができなかった場合に、意図と異なる動作をする可能性がある。本実施例では、特定の操作が成されたことを条件に、表示対象のオブジェクトの属性に応じて、表示位置の移動の抑制を行う例を示す。これは、特に、表示装置をきちんと保持できない利用シーンなどで有用である。特定の操作として、閾値以内の誤差範囲である真水平方向へのスワイプ操作や真垂直方向へのスワイプ操作を例に説明する。
【０１３４】
図１５を用いて、本実施例における表示位置の移動処理について説明する。図１５は、本実施例における、表示位置の移動処理の手順を示したフローチャートである。本フローチャートは、アプリケーションプログラムを、ＣＰＵ１０５が表示位置移動処理部２０４として実行することにより実現される。表示位置移動処理部２０４は、タッチＵＩ１０４を介してタッチ操作やスワイプ操作、タッチ解除操作を検知し、本処理を開始する。
【０１３５】
本処理は、実施例１の図６において示した処理と、処理内容の類似点が多いため、ここでは差異点であるステップＳ１５００〜ステップＳ１５０３についてのみ説明する。
【０１３６】
ステップＳ１５００において、表示位置移動処理部２０４は、初回のスワイプイベントの受信か否かを判定する。初回のスワイプイベントの受信であると判定する場合には、ステップＳ１５０１へ遷移し、そうでないと判定する場合には、ステップＳ１５０３へ遷移する。
【０１３７】
ステップＳ１５０１において、表示位置移動処理部２０４は、受信したスワイプイベントに含まれる移動量を、同じくスワイプイベントに含まれる最新と直前のタッチ座標の位置より、水平方向と垂直方向の成分にベクトル分解する。そして、抑制する方向の成分が予め規定の閾値（抑制閾値）以内であるか否かを判定する。この抑制閾値は、例えば、タッチＵＩ１０４の表示領域の水平方向／垂直方向の幅の１／５の値、などというよう決定しておけばよい。ユーザが意図して水平方向ないし垂直方向にスワイプ操作をしたにも関わらず生じてしまう、水平方向に対する垂直方向、ないし、垂直方向に対する水平方向の入力誤差を、容易に吸収できる値が好ましい。抑制する方向の成分が抑制閾値よりも小さい場合には、ステップＳ１５０２へ遷移し、そうでない場合には、ステップＳ１５０３へ遷移する。
【０１３８】
ステップＳ１５０２において、表示位置移動処理部２０４は、表示位置の移動の抑制を実施すると決定する。そして、抑制実施と決定した旨をＲＡＭ１１１に記憶して管理する。ステップＳ１５０１の判定により、ユーザが意図的に真水平方向ないし真垂直方向に表示位置を移動させようとしていると解釈できる。これを受けて、表示位置移動の抑制を行うと決定するものである。
【０１３９】
ステップＳ１５０３において、表示位置移動処理部２０４は、表示位置の移動の抑制を行うか否かを判定する。これはステップＳ１５０２において、ＲＡＭ１１１に抑制実施と決定した旨を記憶しているか否かにより成す。抑制を行うと決定されている場合には、図６のステップＳ６１７に示した処理を実行する。すなわち、抑制方法に応じてページ始点を移動し、表示位置を移動する。そうでない場合には、図６のステップＳ６１８に示した処理を実行する。すなわち、スワイプイベントの内容に応じて、ページ始点を移動し、表示位置を移動する。
【０１４０】
以上のように、本実施例によれば、特定の操作が成されたことを条件に、表示対象であるオブジェクトの属性に応じて、表示位置の移動を抑制することができる。実施例２によれば、不要な際に抑制が実行されてしまう不便さを低減できる。
【０１４１】
尚、「特定の操作」としては、本実施例に示した方法以外にも、例えば、操作ボタンを表示し、当該操作ボタンへの指示を検知するなど、他の方法でもよい。
【０１４２】
また、基準オブジェクトに応じて、いずれの方向に表示位置の移動抑制を実行できるかをユーザに提示可能に構成してもよい。例えば、表示位置移動処理部２０４が、ダブルタップイベントを受信した場合に、基準オブジェクトを判定し、ステップＳ６０４やステップＳ６０６、ステップＳ６０８を実行する。これにより決定した表示位置の移動の抑制方法に従って、タッチＵＩ１０４の表示を更新させる。例えば、図１６に示すように、水平方向に表示位置の移動抑制が実行され得る場合には、マーク１６００を表示させる。垂直方向に表示位置の移動抑制が実行され得る場合には、マーク１６０１を表示させる。なお、マーク１６００やマーク１６０１は、その表示位置によって、移動抑制の方向をユーザに提示している表示部品の例を示しているが、マーク自体に移動抑制の方向がわかるアイコン（表示部品）を用意してもよい。
【０１４３】
また、本実施例では、ステップＳ１５００において、タッチ押下イベントの受信後の最初のスワイプイベントを判定して、抑制を実施するか否かを決定した。しかし、初回ではなく、最初の数回のスワイプイベントを判定し、当該回数分のスワイプイベントの水平成分や垂直成分をそれぞれ加算した上で、大小を比較してもよい。
【０１４４】
＜その他の実施例＞
本実施例では、タッチパネルディスプレイを用いる例について説明した。しかしながら、本発明はタッチパネルディスプレイに限定されるものではない。トラックボールを有するマウスやジョイスティックのように、ページ内の表示位置の移動（スクロール）をする際に、垂直方法及び水平方向への移動が同時に行うことが可能なデバイスにも本発明を適用することは可能である。
【０１４５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014139776.tif 000003
【図２】
2014139776.tif 000004
【図３】
2014139776.tif 000005
【図４】
2014139776.tif 000006
【図６】
2014139776.tif 000007
【図７】
2014139776.tif 000008
【図８】
2014139776.tif 000009
【図９】
2014139776.tif 000010
【図１０】
2014139776.tif 000011
【図１１】
2014139776.tif 000012
【図１５】
2014139776.tif 000013
【図１６】
2014139776.tif 000014
【図５】
2014139776.tif 000015
【図１２】
2014139776.tif 000016
【図１３】
2014139776.tif 000017
【図１４】
2014139776.tif 000018