(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスに表示される、文字列を含む電子文書をスクロールする方法であって、
前記コンピューティングデバイスの少なくとも1つのプロセッサを利用して、
入力デバイスを介して受信されたユーザー入力を処理し、
前記処理されたユーザー入力から、ドラッグ操作の開始イベントおよびポインタ動作を検出し、
前記ドラッグ操作の前記ポインタ動作に従って、前記文書の文字列のコンテンツをスクロールし、
前記文字列のコンテンツを自動的に再スクロールして、前記ドラッグ操作による、前記文字列のコンテンツの前記スクロールの水平成分を補償し、
前記文字列のコンテンツのブロックの水平方向の境界を計算し、
前記文字列のコンテンツの前記スクロールにより、前記水平方向の境界の少なくとも一部が、前記電子的なデバイスの表示画面の表示域から出たかどうかを判定し、
前記水平方向の境界の端部が前記表示域から出たときに、前記文字列のコンテンツの前記スクロールの水平方向の速度を低下させることを特徴とする方法。
【請求項２】
前記少なくとも1つのプロセッサを利用してさらに、
前記文字列のコンテンツの前記スクロールの前記水平成分を、水平方向の距離として検出し、
前記距離が修正の閾値よりも短いかどうかを判定し、
前記自動的な再スクロールは、前記距離が前記修正の閾値よりも短いという判定に応答して実行されることを特徴とする請求項1に記載の方法。
【請求項３】
前記少なくとも1つのプロセッサを利用してさらに、
前記文字列のコンテンツの前記スクロールの垂直成分を検出し、前記垂直成分が、垂直方向の距離として求められ、
前記修正の閾値は、前記文字列のコンテンツの前記スクロールの前記水平成分および前記垂直成分に基づいて求められることを特徴とする請求項2に記載の方法。
【請求項４】
前記自動的な再スクロールが、前記文字列のコンテンツの前記スクロールにより、前記水平方向の境界の少なくとも一部が、前記表示域から出たかどうかの前記判定に基づいて実行されることを特徴とする請求項1に記載の方法。
【請求項５】
前記自動的な再スクロールは、前記水平方向の境界の全体よりも小さな一部が、前記文字列のコンテンツの前記スクロールの結果として前記表示域から出たと判定されたことに応答して実行されることを特徴とする請求項4に記載の方法。
【請求項６】
前記ドラッグ操作は、前記処理されたユーザー入力から前記少なくとも1つのプロセッサにより検出された、一連の1つまたは複数のドラッグ操作の一部であり、
前記少なくとも1つのプロセッサを利用してさらに、前記一連の操作のうちの最初のドラッグ操作の開始イベントの後にスクロールされた、全体の垂直方向の距離および全体の水平方向の距離を求め、
前記文字列のコンテンツの前記スクロールの前記水平方向の速度は、前記全体の垂直方向および水平方向の距離の分析に基づいて低下させられることを特徴とする請求項1に記載の方法。
【請求項７】
前記少なくとも1つのプロセッサを利用してさらに、前記全体の垂直方向および水平方向の距離に基づいて、前記文字列のコンテンツの前記スクロールの前記水平方向の速度を低下させるときの除数となる係数を計算することを特徴とする請求項6に記載の方法。
【請求項８】
前記水平方向の境界の幅は、前記文書が前記電子的なデバイスに表示される際のドットパーインチ(DPI)に基づくことを特徴とする請求項4に記載の方法。
【請求項９】
文字列のコンテンツを含む文書を表示するように構成される表示画面と、
ユーザー入力を受け取るように構成される入力デバイスと、
少なくとも1つのプロセッサと、
を具備し、
前記少なくとも1つのプロセッサは、
前記入力デバイスを介して受信された前記ユーザー入力を処理し、
前記処理されたユーザー入力から、ドラッグ操作の開始イベントおよびポインタ動作を検出し、
前記ドラッグ操作の前記ポインタ動作に従って、前記文書の文字列のコンテンツをスクロールし、
前記文字列のコンテンツを自動的に再スクロールして、前記ドラッグ操作による、前記文字列のコンテンツの前記スクロールの水平成分を補償し、
前記文字列のコンテンツのブロックの水平方向の境界を計算し、
前記文字列のコンテンツの前記スクロールにより、前記水平方向の境界の少なくとも一部が、前記表示画面の表示域から出たかどうかを判定し、
前記水平方向の境界の端部が前記表示域から出たときに、前記文字列のコンテンツの前記スクロールの水平方向の速度を低下させるようにプログラムされることを特徴とする装置。
【請求項１０】
前記少なくとも1つのプロセッサがさらに、
前記文字列のコンテンツの前記スクロールの前記水平成分を、水平方向の距離として検出し、
前記距離が修正の閾値よりも短いかどうかを判定する
ようにプログラムされ、
前記自動的な再スクロールは、前記距離が前記修正の閾値よりも短いという判定に応答して実行されることを特徴とする請求項9に記載の装置。
【請求項１１】
前記少なくとも1つのプロセッサがさらに、前記文字列のコンテンツの前記スクロールの垂直成分を検出するようにプログラムされ、
前記垂直成分は、垂直方向の距離として求められ、
前記修正の閾値は、前記文字列のコンテンツの前記スクロールの前記水平成分および前記垂直成分に基づいて求められることを特徴とする請求項10に記載の装置。
【請求項１２】
前記自動的な再スクロールが、前記文字列のコンテンツの前記スクロールにより、前記水平方向の境界の少なくとも一部が、前記表示域から出たかどうかの前記判定に基づいて実行されることを特徴とする請求項9に記載の装置。
【請求項１３】
前記自動的な再スクロールは、前記水平方向の境界の全体よりも小さな一部が、前記文字列のコンテンツの前記スクロールの結果として前記表示域から出たと、前記少なくとも1つのプロセッサが判定したことに応答して実行されることを特徴とする請求項12に記載の装置。
【請求項１４】
前記ドラッグ操作は、前記処理されたユーザー入力から前記少なくとも1つのプロセッサにより検出された、一連の1つまたは複数のドラッグ操作の一部であり、
前記少なくとも1つのプロセッサはさらに、前記一連の操作のうちの最初のドラッグ操作の開始イベントの後にスクロールされた、全体の垂直方向の距離および全体の水平方向の距離を求めるようにプログラムされ、
前記文字列のコンテンツの前記スクロールの前記水平方向の速度は、前記全体の垂直方向および水平方向の距離の分析に基づいて低下させられることを特徴とする請求項9に記載の装置。
【請求項１５】
前記少なくとも1つのプロセッサはさらに、前記全体の垂直方向および水平方向の距離に基づいて、前記文字列のコンテンツの前記スクロールの前記水平方向の速度を低下させるときの除数となる係数を計算するようにプログラムされることを特徴とする請求項14に記載の装置。
【請求項１６】
前記水平方向の境界の幅は、前記文書が前記表示画面に表示される際のドットパーインチ(DPI)に基づくことを特徴とする請求項12に記載の装置。
【請求項１７】
コンピュータにより実行されると、前記コンピュータの表示画面に表示される文字列を含む電子文書をスクロールする方法を、前記コンピュータに実行させるように具体化されたプログラムを備えたコンピュータ可読記憶媒体であって、前記方法が、
前記コンピュータの入力デバイスを介して受信されたユーザー入力を処理するステップと、
前記処理されたユーザー入力から、ドラッグ操作の開始イベントおよびポインタ動作を検出するステップと、
前記ドラッグ操作の前記ポインタ動作に従って、前記文書の文字列のコンテンツをスクロールするステップと、
前記文字列のコンテンツを自動的に再スクロールして、前記ドラッグ操作による、前記文字列のコンテンツの前記スクロールの水平成分を補償するステップと、
前記文字列のコンテンツのブロックの水平方向の境界を計算するステップと、
前記文字列のコンテンツの前記スクロールにより、前記水平方向の境界の少なくとも一部が、前記電子的なデバイスの表示画面の表示域から出たかどうかを判定するステップと、
前記水平方向の境界の端部が前記表示域から出たときに、前記文字列のコンテンツの前記スクロールの水平方向の速度を低下させるステップと、
を含むことを特徴とするコンピュータ可読記憶媒体。
【請求項１８】
前記方法がさらに、
前記文字列のコンテンツの前記スクロールの前記水平成分を、水平方向の距離として検出するステップと、
前記距離が修正の閾値よりも短いかどうかを判定するステップと、
を含み、
前記自動的な再スクロールは、前記距離が前記修正の閾値よりも短いという判定に応答して実行されることを特徴とする請求項17に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記方法がさらに、前記文字列のコンテンツの前記スクロールの垂直成分を検出するステップを含み、
前記垂直成分は、垂直方向の距離として求められ、
前記修正の閾値は、前記文字列のコンテンツの前記スクロールの前記水平成分および前記垂直成分に基づいて求められることを特徴とする請求項18に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記自動的な再スクロールは、前記文字列のコンテンツの前記スクロールにより、前記水平方向の境界の少なくとも一部が、前記表示域から出たかどうかの前記判定に基づいて実行されることを特徴とする請求項17に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記自動的な再スクロールは、前記水平方向の境界の全体よりも小さな一部が、前記文字列のコンテンツの前記スクロールの結果として前記表示域から出たと判定されたことに応答して実行されることを特徴とする請求項20に記載のコンピュータ可読記憶媒体。
【請求項２２】
前記ドラッグ操作は、前記処理されたユーザー入力から前記少なくとも1つのプロセッサにより検出された、一連の1つまたは複数のドラッグ操作の一部であり、
前記方法はさらに、前記一連の操作のうちの最初のドラッグ操作の開始イベントの後にスクロールされた、全体の垂直方向の距離および全体の水平方向の距離を求めるステップを含み、
前記文字列のコンテンツの前記スクロールの前記水平方向の速度は、前記全体の垂直方向および水平方向の距離の分析に基づいて低下させられることを特徴とする請求項17に記載のコンピュータ可読記憶媒体。
【請求項２３】
前記方法はさらに、前記全体の垂直方向および水平方向の距離に基づいて、前記文字列のコンテンツの前記スクロールの前記水平方向の速度を低下させるときの除数となる係数を計算するステップを含むことを特徴とする請求項22に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記水平方向の境界の幅は、前記文書が前記コンピュータに表示される際のドットパーインチ(DPI)に基づくことを特徴とする請求項20に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全般に文字列を表示してスクロールするための電子的なデバイスに関し、具体的には、文字列の一部を自動的にスクロールして表示域に戻すようにそのようなデバイスを構成することに関する。
【背景技術】
【０００２】
コンピュータのユーザーは、ウェブブラウザおよびワードプロセシングプログラムのような、様々なアプリケーションを用いて、文字列および場合によっては他のタイプのコンテンツで構成される電子文書を開いて読むことができる。さらに、主要な用途がユーザーに電子的な文字列を表示することである、専用のコンピュータデバイスが開発されてきた(例えば電子書籍)。従来のインターフェースによれば、文書をスクロールするように、スクロールバーをクリックして2つの可能な方向(上および下、または左および右)の1つにスクロールバーを動かすために、マウスまたはタッチパッドのようなクリック用のデバイスが用いられうる。一般に、そのようなインターフェースにより、ユーザーは、スクロール用の矢印を単にクリックして、文書を対応する方向にスクロールすることも可能になる。タッチスクリーンを用いて同じタイプのインターフェースを実装することができ、その場合ユーザーは、スクロールバーまたはスクロール用の矢印をクリックするのではなく、単にタッチする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、スクロールバーをクリックして動かす操作、またはスクロール用の矢印をクリックする操作は、コンピュータデバイスのサイズ(したがってそのディスプレイのサイズ)がますます小さくなるに従い、より問題になっている。したがって、別のタイプのインターフェースによって、「ドラッグ」または「パニング(panning)」操作を用いて文書をスクロールできるようにしている。基本的には、ドラッグ/パニング操作は、文書を「捉える」ことによってドラッグ操作を開始するイベントにより開始され、このイベントは、文書を所望の方向に「ドラッグ」する連続的な動作を伴う。本明細書での説明および添付の特許請求の範囲において、用語「開始イベント」は、文書を捉えることによって前述のドラッグ/パニング操作を開始するイベントを指すために用いられ、用語「ポインタ動作」は、文書をドラッグするという付随する動作を指すために用いられる。
【０００４】
例えば、マウスのクリックはドラッグ操作の開始イベントであってよく、その次のマウスの動作は、文書をドラッグするポインタ動作である。あるいは、タッチスクリーンのインターフェースでは、指またはスタイラスによる最初のタッチが開始イベントであってよく、その次の、画面を横切る指/スタイラスの動作が、文書をドラッグさせるポインタ動作であってよい。
【０００５】
また、ポインタ動作の運動量をシミュレートするために、ポインタ動作が終了した後にスクロール動作をある距離だけ続けられるように、そのようなインターフェースに対して改善が行われてきた。続けられるスクロールの距離は、ポインタ動作の速度、距離、加速度、および力の任意の組合せに基づいて、計算されうる。これにより、ユーザーは、指による適切な方向への高速な「フリック」を用いて、文字列を高速にスクロールできるようになりうる。
【０００６】
ドラッグ動作またはパニング動作を利用するインターフェースの1つの欠点は、文字列を上または下にスクロールしようとする際に、ユーザーが、誤って文書をやや左または右にスクロールし、したがって、文字列が表示域に対してずれることがあるということである。この例が、図1A〜1Eに関して本明細書で説明される。
【０００７】
具体的には、図1は、コンテンツとして、文書の本体に表題または見出しの文字列105、文字列110を含み、画像120を含む、文書100の例を示す。文書100の本体の文字列110は、それぞれ2つの縦の段110Aおよび110Bに書式設定される。図1Bに示されるように、文書100がコンピューティングデバイスに電子的に表示される場合、デバイスの表示域130は、左側の段のテキスト110Aの一部を所与の時間表示できるのみでありうる。図1Bはさらに、ユーザーが、ドラッグ操作によりテキスト110Aを下にスクロールしようとしうることを示し、このドラッグ操作において、140における開始イベント(例えば、指/スタイラスによる画面の最初のタッチ)で文書100を捉え、ポインタ動作150(例えば、矢印の方向への指/スタイラスの動き)で文書100をドラッグし、その結果、図1Cに示されるように、文書の別の部分が表示域130に表示される。図1Cおよび1Dに示されるように、ユーザーは、そのようなドラッグ操作を繰り返すことによって、スクロールを続けることができ、その結果、図1Eのように、文書100が表示される。
【０００８】
しかし、図1B〜1Dで矢印により示されるように、ユーザーによるポインタ動作150は完全に垂直ではなく、水平方向、例えば左に少し流れることがある。その結果、図1Eに示されるように、ユーザーは、スクロールの結果として、文字列110Aの一部が表示域130の左側から出るように誤ってスクロールすることがある。したがって、文字列の縦の段110Aを表示域130に戻すためだけに、ユーザー(図示せず)による追加の水平方向のスクロール操作が必要になる。
【０００９】
よって、ユーザーが垂直にスクロールしようとしているときに、電子的な文字列が少し水平方向にスクロールされたとき、電子的な文字列を自動的に所定の位置に戻すようにスクロールするような何らかの機構を利用することが、有利であろう。
【課題を解決するための手段】
【００１０】
表示画面に表示される文字列を含む電子的な文字列をスクロールするためのシステムおよび方法が提供され、このシステムおよび方法は、コンピュータの入力デバイスを介して受け取られるユーザー入力を処理するステップと、処理されたユーザー入力からドラッグ操作のための開始イベントおよびポインタ動作を検出するステップと、ドラッグ操作のポインタ動作に従って文書の文字列のコンテンツをスクロールするステップと、文書の内容を自動的に再スクロールして、ドラッグ操作による文書のスクロールの水平成分を補償するステップとを含む。
【００１１】
ある例示的な実施形態によれば、スクロールの水平成分は、水平方向の距離として検出されてもよく、自動的な再スクロールは、そのような距離が修正の閾値以内にあると判定されたことに応じて実行されうる。例えば、修正の閾値は、ドラッグ操作に従って実行されるスクロールの水平成分および垂直成分に基づいて求められうる。
【００１２】
別の例示的な実施形態によれば、文字列のコンテンツ(例えば、文字列の縦の段)のブロックの水平方向の境界が計算されうる。そのような実施形態では、自動的な再スクロールは、表示域に対するそのような境界の位置を分析することによって、実行されうる。さらなる例示的な実施形態は、表示域の端部が、スクロールされている文字列のブロックの水平方向の境界と交わったときに、スクロールの水平方向の速度または比率を低下させることを可能にしうる。
【００１３】
本発明のさらなる適用の範囲が、以下で与えられる詳細な説明から明らかになるだろう。しかし、この詳細な説明から、本発明の趣旨および範囲の中にある様々な変更および修正が、当業者に明らかになるので、詳細な説明および具体的な例は、本発明の好適な実施形態を示すが、例示のためのみに与えられることを理解されたい。
【００１４】
本発明は、以下で与えられる詳細な説明と、例示のためのみに与えられ本発明を限定しない添付の図面から、より完全に理解されるようになるだろう。
【図面の簡単な説明】
【００１５】
【図１Ａ】コンピューティングデバイスに表示されうる文字列を含む、電子文書の例を示す図である。
【図１Ｂ】ユーザーによるスクロールにより、どのように文書の文字列の一部がコンピューティングデバイスの表示域の外に意図せず移動しうるかの例を示す図である。
【図１Ｃ】ユーザーによるスクロールにより、どのように文書の文字列の一部がコンピューティングデバイスの表示域の外に意図せず移動しうるかの例を示す図である。
【図１Ｄ】ユーザーによるスクロールにより、どのように文書の文字列の一部がコンピューティングデバイスの表示域の外に意図せず移動しうるかの例を示す図である。
【図１Ｅ】ユーザーによるスクロールにより、どのように文書の文字列の一部がコンピューティングデバイスの表示域の外に意図せず移動しうるかの例を示す図である。
【図２】本発明の例示的な実施形態を実施するために用いられうる、コンピューティングデバイスを示す図である。
【図３】本発明の例示的な実施形態とともに用いられうる、ユーザーエージェントを示す図である。
【図４】意図しない水平方向へのスクロールの後に、文書を自動的に再スクロールして文字列を表示域に再配置するための、例示的な実施形態による処理の流れ図である。
【図５Ａ】修正の閾値を利用する、図4の処理の例示的な実施形態の流れ図である。
【図５Ｂ】修正の閾値を利用する、図4の処理の例示的な実施形態の流れ図である。
【図６Ａ】文字列のコンテンツの水平方向の境界を利用する、図4の処理の具体的かつ例示的な実施形態の流れ図である。
【図６Ｂ】文字列のコンテンツの水平方向の境界を利用する、図4の処理の具体的かつ例示的な実施形態の流れ図である。
【図６Ｃ】文字列のコンテンツの水平方向の境界を利用する、図4の処理の具体的かつ例示的な実施形態の流れ図である。
【図７Ａ】例示的な実施形態による、文字列のブロックを含む電子文書およびその電子文書に関連する水平方向の境界の適用の例を示す図である。
【図７Ｂ】例示的な実施形態による、文字列のブロックを含む電子文書およびその電子文書に関連する水平方向の境界の適用の例を示す図である。
【図８Ａ】例示的な実施形態による、文字列のブロックの水平方向の境界がどのように本発明の原理を実施するために用いられうるかの例を示す図である。
【図８Ｂ】例示的な実施形態による、文字列のブロックの水平方向の境界がどのように本発明の原理を実施するために用いられうるかの例を示す図である。
【図８Ｃ】例示的な実施形態による、文字列のブロックの水平方向の境界がどのように本発明の原理を実施するために用いられうるかの例を示す図である。
【図８Ｄ】例示的な実施形態による、文字列のブロックの水平方向の境界がどのように本発明の原理を実施するために用いられうるかの例を示す図である。
【図８Ｅ】例示的な実施形態による、文字列のブロックの水平方向の境界がどのように本発明の原理を実施するために用いられうるかの例を示す図である。
【図８Ｆ】例示的な実施形態による、文字列のブロックの水平方向の境界がどのように本発明の原理を実施するために用いられうるかの例を示す図である。
【発明を実施するための形態】
【００１６】
図面は、本発明の詳細な説明の中で、詳細に説明される。
【００１７】
本発明の以下の詳細な説明は、添付の図面を参照する。異なる図面における同じ参照番号は、同じ要素または類似の要素を指す。また、以下の詳細な説明は、本発明を限定しない。むしろ、本発明の範囲は、添付の特許請求の範囲およびその均等により定義される。
【００１８】
本発明は、ユーザーが文字列を意図せず水平方向にドラッグしたと判定されたときに、文字列のブロックを自動的にスクロールして、コンピューティングデバイスの表示域130に戻すための、コンピュータで実施される方法およびデバイスを対象とする。この方法は、文字列を含む文書を表示する、任意のアプリケーション(ウェブブラウザ、電子書籍、ワードプロセッサ)の一部として実施されてよく、ユーザーが、そのような文書をドラッグ操作またはパニング操作によりスクロールすることを可能にする。
【００１９】
例えば、文書の文字列をスクロールするための各ドラッグ操作に応答して、そのようなスクロールに水平成分がある場合、その水平成分は修正の閾値と比較されうる。水平成分が修正の閾値よりも小さい場合、そのような水平方向の動きは、ユーザーが意図しないものであったと判定することができ、したがって、表示域130に対して適切に配置されるように、文字列を水平方向に自動的に再スクロールさせる。
【００２０】
しかし、別の例示的な実施形態では、水平方向の境界(すなわち、左側および右側の境界)が、スクロールされている文字列のブロックに追加されうる。ドラッグ操作により、表示域130の端部がどちらかの水平方向の境界に部分的に入ると、水平方向の境界に対して表示域130を適切に配置するように、文字列が自動的に再スクロールされうる。さらに、スクロールの速度は、表示域130の端部が入ると、減速されうる。
【００２１】
図2は、本発明の様々な態様を実施するための環境として用いられうる、一般的なコンピューティングデバイス200を示す。例示的な実施形態によれば、コンピュータデバイス100は、モバイルデバイスまたは携帯型デバイス、例えば、携帯情報端末(PDA)、携帯電話、電子書籍デバイスなどとして実装されうる。しかし、当業者が予期するように、本発明の原理は、デスクトップコンピュータ、ラップトップコンピュータ、および、任意の他の種類のコンピュータデバイス100のような、他の種類のコンピュータデバイス100に適用されうる。
【００２２】
図2では、コンピューティングデバイス200は、中央演算処理装置(CPU)201、メモリ202、通信ポート203、ビデオインターフェース204、およびネットワークインターフェース205を含む、様々な機能コンポーネントを有する。これらのコンポーネントは、システムバス206によって互いに通信していてもよい。
【００２３】
ROM、RAM、フラッシュメモリ、ハードドライブ、または、固定されたメモリと取り外し可能なメモリの任意の他の組合せを含みうる、メモリ202は、システムの様々なソフトウェアコンポーネントを格納する。メモリ202の中のソフトウェアコンポーネントは、基本入出力システム(BIOS)241、オペレーティングシステム242、アプリケーションおよびデバイスドライバを含む様々なコンピュータプログラム243、様々な種類のデータ244、ならびに、マクロおよびスクリプトのような他の実行可能ファイルまたは命令245を含みうる。
【００２４】
通信ポート203は、ユーザー入力デバイス、プリンタ、メディアプレーヤー、外部メモリデバイス、および、例えば全地球測位システム(GPS)受信機のような専用デバイスのような、1つまたは複数のローカルのデバイス210に接続されうる。入出力(I/O)ポートとも呼ばれうる通信ポート203は、USB、PS/2、RS-232、赤外線(IR)、Bluetooth(登録商標)、プリンタポート、または、ローカルのデバイス210のための任意の他の標準的な通信インターフェースまたは専用の通信インターフェースのようなポートの、任意の組合せであってよい。
【００２５】
上で論じられたように、コンピューティングデバイス200は、図2のローカルのデバイス210の中の、1つまたは複数のユーザー入力デバイスを含みうる。入力デバイスの中には、ポインタデバイス、すなわち、画面上でポインタまたはカーソルの位置をユーザーが制御できるようにする入力デバイスが、ありうる。そのようなポインタデバイスは、ポインタ/カーソルが画面の所望の位置にあるときに、ユーザーが、特定の機能(例えば、表示された要素の選択)を有効にするために、クリックまたは類似の動作を実行できるようにもする。そのようなポインタデバイスの例には、電子マウス、トラックボールデバイス、およびタッチパッドがある。
【００２６】
ビデオインターフェースデバイス204は、表示ユニット220に接続される。例示的な実施形態によれば、表示ユニット220は、表示ユニット220がタッチ感知式の入力デバイスを兼ねることを可能にする、タッチ感知式の画面を含みうる。表示ユニット220の、タッチ感知式の入力デバイスとしての態様は、通信ポート203により通信するローカルのデバイス210の1つとして考えられうる。さらに、コンピューティングデバイス200が、PDA、携帯電話、または他の小型の持ち運び可能なデバイスとして実装される例示的な実施形態では、ディスプレイは一般に、LCDディスプレイのような統合されたディスプレイになる。しかし、本発明の原理を、表示ユニット220がコンピューティングデバイス200の他の要素と統合されない場合、例えば、表示ユニット220がスタンドアロンのモニタである場合に適用できることは、容易に明らかであろう。
【００２７】
ネットワークインターフェースデバイス205は、遠隔のデバイス230と通信するために、ネットワークに接続する能力を、コンピューティングデバイス200に提供する。ネットワークインターフェース205を遠隔のデバイス230と接続する回線としてのみ図2で示される、通信ネットワークは、例えば、ローカルエリアネットワークまたはインターネットであってよい。遠隔のデバイス230は、原則として、デバイス200と同様の通信能力を有する任意のコンピューティングデバイスであってよいが、通常、サーバまたはネットワークサービスを提供する何らかの他のユニットでありうる。
【００２８】
図2に示されるコンピューティングデバイス200は、その大きさ、リソース、またはコンポーネントの物理的な実装形態に関して、任意の特定の構成または実施形態に限定されないことが理解されよう。例えば、図2に示される機能コンポーネントのうちの2つ以上を、デバイス200の単一の統合されたユニットに組み合わせることができる。また、図2の単一の機能コンポーネントは、いくつかの物理的なユニットに分散してもよい。他のユニットまたは能力も、当然存在してよい。さらに、デバイス200は、例えば、PCのような汎用コンピュータ、または携帯情報端末(PDA)、またはさらには携帯電話もしくはスマートフォンであってよい。
【００２９】
例示的な実施形態では、本発明の様々な態様が、コンピューティングデバイス200にアプリケーションとしてインストールされたユーザーエージェントもしくはブラウザを構成する、コンポーネントおよび/もしくは機能に組み込まれてもよく、または、コンポーネントおよび/もしくは機能とともに用いられてもよい。図3は、そのようなユーザーエージェントまたはブラウザが存在しうる、複数のモジュールの例を示す。モジュールは通常、ソフトウェアモジュールであり、またはそうでなければプログラマによりソフトウェア内に実装され、CPU201により実行されうる。しかし、当業者が予期するように、図3のモジュールのうちのいずれも、ハードウェア、またはハードウェアとソフトウェアの組合せ、すなわち「ファームウェア」として実装することも可能である。
【００３０】
ブラウザ300のユーザーエージェントは、図2に示される表示ユニット220に表示されうるユーザーインターフェース301を、ユーザーに提示する。ユーザーインターフェース301は、アドレスフィールド302を含んでもよく、アドレスフィールド302において、ユーザーは、ユーザーエージェント300に取り出させることを望む文書またはサービスのURLを、入力または選択することができる。例えば、ユーザーは、キーボードまたは他の種類の入力デバイスを用いて、アドレスフィールド302にURLをタイプすることができる。アドレスフィールド302はまた、本発明の原理に従って、タッチによってユーザーにより有効にされうる、表示されたリンクであってもよい(あるいは、そのようなリンクはまた、マウスのようなポインティングデバイスを用いて有効にされてもよい)。あるいは、URLは、ユーザーエージェント300により既にロードされた、文書またはスクリプトのコードで規定されうる。
【００３１】
いずれの場合でも、URLは、ユーザーエージェント300またはその一部と関連するユーザーインターフェース301の入力部分である、ウィンドウマネージャおよび入力マネージャ303により受け取られうる。次いでURLを、文書マネージャ304に転送することができ、文書マネージャ304は、URLにより識別される文書の一部として受け取られるデータを管理する。
【００３２】
文書マネージャ304は、URLをURLマネージャ305に転送し、URLマネージャ305は、通信モジュール306に、識別されたリソースへのアクセスを要求するように命令する。通信モジュール306は、ハイパーテキスト伝送プロトコル(HTTP)、またはHTTPSもしくはFTPのような何らかの他のプロトコルを用いたネットワークを介したサーバのような、遠隔のデバイス230から、データにアクセスしデータを取り出すことが可能でありうる。通信モジュール306はまた、ローカルのメモリ202に保存されたデータにアクセスすることが可能でありうる。
【００３３】
デバイス200の外部での通信を、例えば、URLにアクセスするために用いられるプロトコルにより規定されるように、暗号化する必要がある場合、暗号化/復号モジュール307は、URLマネージャ305と通信モジュール306との間の通信を処理する。
【００３４】
要求に応じて通信モジュール306により受け取られるデータは、URLマネージャ305に転送される。次いで、URLマネージャ305は、文書および画像キャッシュ309を管理するキャッシュマネージャ308を用いて、受け取られたコンテンツのコピーをローカルのメモリ202に保存することができる。同じURLが後で要求されると、URLマネージャ305は、キャッシュマネージャ308にそのURLを要求することができ、キャッシュマネージャ308は、キャッシュされたコピーをキャッシュ309から取り出し(キャッシュされたコピーが削除されていない限り)、キャッシュされたコピーをURLマネージャ305に転送する。したがって、同じURLが再び要求されたときに、遠隔のデバイス230から同じデータを再び取り出す必要がなくなりうる。
【００３５】
URLマネージャ305は、通信ポート306またはキャッシュ309から受け取られたデータを、HTML、XMLおよびCSSのようなコンテンツを解析できるパーサ310に転送する。次いで、解析されたコンテンツは、コンテンツの種類および性質に応じて、ECMAScriptエンジン311、文書オブジェクトモデル(DOM)構造を扱うためのモジュール312、および/またはレイアウトエンジン313によって、さらに処理されうる。
【００３６】
取り出されたコンテンツのこの処理は、文書マネージャ304により管理され、文書マネージャ304はまた、取り出されたコンテンツの処理の結果として、追加のURLの要求をURLマネージャ305に転送することができる。これらの追加のURLは、例えば、元のURLにより特定される文書に埋め込まれるべき画像または他の追加のファイルを、特定することができる。
【００３７】
特定された文書のコンテンツを表すデータが処理されると、そのデータは、レンダリングエンジン314によりレンダリングされ、ユーザーインターフェース301により表示されるように、文書マネージャ304から転送される。1つの可能な実施形態によれば、レンダリングエンジン314は、図4〜8Fに関して以下でより詳細に説明される本発明の原理に従って、文書をスクロールして自動的に再スクロールすることに関する処理を実行する役割を果たしうる。しかし、代替的な実施形態では、ユーザーインターフェース301が、そのようなスクロールおよび自動的な再スクロールに関する処理を実行するように設計されてもよい。ユーザーエージェント300が、そのような処理を実行するように他の機能的なコンポーネント(図示せず)を組み込むように修正されうることも、可能である。
【００３８】
上で説明された様々なモジュールは、CPU201がシステムバス206を介して命令およびデータを受け取るときに、コンピューティングデバイス200のCPU201により実行される。通信モジュール306は、ネットワークインターフェース205を用いて、遠隔のデバイス230と通信する。図3の様々なモジュールの機能は、当然、より少数の大きなモジュールに統合されてもよい。また、図3の単一のモジュールの機能は、いくつかのモジュールに分散させられてもよく、またはいくつかのモジュールで重複していてもよい。
【００３９】
上で説明されたユーザーエージェント300は、アプリケーションプログラム243として実装されうるが、ユーザーエージェント300の機能の一部は、オペレーティングシステム242の一部としても実装されてよく、またはコンピューティングデバイス200のBIOS241としても実装されてよいことが、さらに理解されよう。URLの要求に応じて受け取られるコンテンツは、データ244、スクリプト245、または、以下でさらに説明されるような、それらの組合せであってよい。
【００４０】
当然、本発明は、コンピューティングデバイス200のユーザーエージェント300により実施されるものとは限定されない。コンピューティングデバイス200で実行できる、他の種類のアプリケーションプログラム243が、以下で説明される本発明の原理に従って、文字列による文書を表示し、スクロールし、自動的に再スクロールするように構成されてもよい。本発明を実施するように構成されうる、そのようなアプリケーション243の例には、ワードプロセッサおよび電子書籍のアプリケーションがある。
【００４１】
ここで図4を参照すると、ある例示的な実施形態による、意図しない水平方向へのスクロールの後に、文書を自動的に再スクロールして文字列を表示域130に再配置するための、コンピューティングデバイス200で実施される処理400の流れ図が示されている。図4に示されるように、操作S410に従って、文字列のコンテンツを有する電子文書が、コンピューティングデバイス200の表示ユニット220に表示される。操作S420に従って、コンピューティングデバイス200は、ポインタデバイスまたはタッチスクリーンインターフェースのような入力デバイスを介してユーザー入力を受け取り、文書に対してドラッグ操作を実行する。操作S430において、そのような入力は、開始イベント(例えば、マウスのクリックまたは指/スタイラスによる最初のタッチ)および、ドラッグ操作を定義する付随するポインタ動作を検出するために、処理される。こうして、操作S440に従って、文字列のコンテンツを含む文書が、ドラッグ操作のポインタ動作に従ってスクロールされる。操作S450において、そのような文字列のスクロールが、修正する必要がある意図しない水平成分を含んでいたかどうかが判定される。言い換えると、ユーザーが、文字列を上または下にスクロールしようとしたときに、文字列を誤ってやや左または右にスクロールしたかどうかが判定され、そのような誤ったスクロールは修正される必要がある。操作450によって、スクロールに修正する必要がある意図しない水平成分があると判定されると、操作460において、文字列のコンテンツは、そのような水平成分を補償する、すなわち、文字列を水平に再スクロールして、表示域130に関して元の配置(そうでなければ許容可能な配置)に戻すように、自動的に再スクロールされる。
【００４２】
例示的な実施形態によれば、操作S450でのユーザーのドラッグ操作による、意図しない水平成分があったかどうかの判定が、修正の閾値を用いて行われうる。図5A〜5Bは、修正の閾値を利用する、図4の処理の例示的な実施形態の流れ図を示す。
【００４３】
具体的には、図5Aの流れ図は、図4の操作S450を実施するための、具体的かつ例示的な実施形態を示す。図5Aでは、操作S4500において、スクロールの水平成分が水平方向の距離として検出される。操作S4510に従って、修正の閾値が得られる。この修正の閾値は静的、すなわち処理400を実施するアプリケーション243にプログラムされる一定値であってよい。あるいは、図5Bに関して以下で説明されるように、修正の閾値は変数であってもよい。再び図5Aを参照すると、操作S4520は、スクロールに水平成分があるかどうか、すなわち、検出された水平方向の距離が0よりも大きな値であるかどうかを判定する。水平成分がある場合、操作S4530において、検出された水平方向の距離が修正の閾値よりも小さいかどうかについての、別の判定が行われる。
【００４４】
具体的には、操作S4530は、ユーザーが実際に文字列のコンテンツを水平にスクロールしようとしたのかどうかの、判定を試みる。例えば、図1Aに示される例示的な文書を考えると、ユーザーが、画像120を見るために文字列の段110Aから水平にスクロールしようとしていた場合、ユーザーが文書を左側に長い距離ドラッグする、すなわち、そのようなスクロールの水平方向の距離が少なくとも一定の量あることが、想定されうる。したがって、操作S4530に従って、検出された水平方向の距離を修正の閾値と比較することによって、ユーザーが文書を水平にスクロールしようとしていたのかどうかが判定されうる。したがって、図4の操作S460に従って、水平方向の距離が修正の閾値未満である場合、ユーザーのドラッグ操作によるスクロールの水平成分が意図しないものであり、補償されるべきであると判定することができる。
【００４５】
上で説明されたように、修正の閾値は一定値であってよい。例えば、修正の閾値は、コンピューティングデバイス200の表示ユニット220の特性に基づいて決定されてもよい。例えば、修正の閾値は、当業者には容易に明らかな手順を用いて、表示ユニット220の画面サイズまたはドットパーインチ(DPI)に基づく、適切な値に事前に設定されうる。
【００４６】
しかし、さらなる実施形態では、修正の閾値は、ユーザーが文字列を垂直方向にのみスクロールしようとしたのかどうかを示しうる他の要因により決まる、変数であってもよい。例えば、そのような要因は、ドラッグ操作の結果としてスクロールされる、垂直方向の距離と水平方向の距離の比率を含みうる。図5Bは、そのような実施形態を示す流れ図である。
【００４７】
具体的には、図5Bは、図5Aの操作S4510を実施するための、すなわち、水平成分と垂直成分に基づいて修正の閾値を得るための、例示的な実施形態を示す。操作S45110において、ユーザーのドラッグ操作により発生する、スクロールの垂直成分が検出される。操作S45120に従って、修正の閾値が、検出された垂直方向の距離に関連して計算されうる。例えば、修正の閾値は、垂直方向の距離に比例してもよく、または、検出される垂直方向の距離が小さくなるにつれて修正の閾値を小さくするような何らかの他の関係を有してもよい。このことは、デフォルトの修正の閾値(例えば、表示ユニット220のDPIに基づいて決定される)を採用して、その値に、垂直方向の距離が大きくなるに従って大きくなる係数を掛けることによっても、実現しうる。操作S45120における修正の閾値の計算は、スクロールの水平成分が垂直成分に対して比較的大きくなると、その水平成分が意図的なものであると判定することを容易にするような、任意の方式で実現しうることに留意されたい。
【００４８】
再び図4を参照すると、修正の閾値の使用は、操作S450に従って、文字列の自動的な再スクロールが必要かどうかを判定するための、1つの方法に過ぎない。別の例示的な実施形態によれば、操作S450において、文字列のコンテンツのブロック(文字列の段)の左側および/または右側に水平方向の境界を追加して、文字列のスクロールの意図的ではない水平成分を補償するために、文字列を自動的に再スクロールする必要があるかどうかを判定することができる。
【００４９】
図6Aは、図4の操作S450を実施するための代替の例示的な実施形態を示し、この実施形態は、文書の文字列のコンテンツの側部に、少なくとも1つの水平方向の境界を加える。操作S4540に従って、ユーザーのドラッグ操作によりスクロールされた文字列のブロックに関する判定が行われる。例えば、文書のレイアウトは、文字列の1つまたは複数の段を含んでもよく、ドラッグ操作によって、どの段が見られておりスクロールされているかについての、判定が行われうる。例えば、HTML文書および他のマークアップ言語文書のような、構造化された文書では、操作S4540において、中にあるコードの意味的な構造(要素)を分析して、適切な文字列ブロック/段を決定することが適切でありうる。
【００５０】
本発明の原理は、文字列のブロックまたは段への適用には限定されず、画像および表を含む、HTML文書またはマークアップ言語文書の他の種類のコンテンツのブロックにも適用されうることに、さらに留意されたい。言い換えると、ユーザーが大きな画像または表を下にスクロールしようとしている場合、本発明の原理を用いて、画像/表を自動的に再スクロールして、表示域130に対する水平方向の配置を戻すことができる。したがって、操作S4540は、文字列だけではなく、スクロールされている任意の種類のコンテンツのブロック、例えば、<p>または<div>のようなタグの中の任意の種類のコンテンツを、探すようになされてもよい。したがって、用語「文字列のブロック」、「文字列の段」などがこの説明において用いられていても、そのような用語の使用は、本発明を限定することを意図しておらず、むしろ本発明は、他の種類のコンテンツを含むブロックに適用されうる。
【００５１】
再び図6Aを参照すると、操作S4550に従って、少なくとも1つの水平方向の境界が、文字列のブロックまたは段に対して決定される。例えば、境界は、文字列の段の左側、右側、または両側に加えられうる。左側と右側の両方の水平方向の境界を用いる例が、図7Aおよび7Bに示される。
【００５２】
具体的には、図7Aは、見出し文字列705、文字列のコンテンツの段710、および画像720を含む、電子文書700の別の例を示す。操作S4540およびS4550(図6A)を文書700(図7A)に適用して、図7Bに示されるように、水平方向の境界730が、文字列の段710の両側で決定されうる。具体的には、図7Bは、文字列の段710の左側および右側にそれぞれ加えられる、境界730Aおよび730Bを示す。図7B(およびそれに続く図面)において、水平方向の境界730Aおよび730Bが、影付きの境界として示されるが、影は、理解しやすくするために示されているだけである。水平方向の境界730を決定または計算した結果として、文書700の表示を修正する必要はない。そのような境界730の使用は、ユーザーに対してトランスペアレントにされうる。
【００５３】
さらに、水平方向の境界730の幅は、コンピューティングデバイス200の表示ユニット220の特性、例えば画面サイズまたはDPIに基づいて、決定または計算されうる。異なる種類のコンピューティングデバイス200の画面サイズおよびDPIは、同一のメーカーによる異なるモデルのデバイス200の間でも、大きく異なることがある。本明細書で説明される本発明の原理が、水平方向の境界730をピクセルの数に関して同じ幅に設定することによって、DPIが異なる様々なデバイス200で実行されると、そのようなデバイス群200に対する実行の結果は変化しうる。したがって、各コンピューティングデバイス200のDPIに従って、水平方向の境界730の幅を設定することで、画面サイズと無関係に、実行の基準がより一貫したものになることを確実にしやすくすることができる。
【００５４】
図6Aを再び参照すると、操作S4560において、ドラッグ操作およびそれに伴うスクロールの結果として、水平方向の境界730が表示域130から少なくとも部分的に出たかどうかについて、判定が行われる。出ていない場合、スクロールの水平成分が(もしあったとしても)大きくはなく、したがって再スクロールにより補償する必要はないと判定することができる。しかし、水平方向の境界730が、スクロールによって表示域130から出たと判定されると、処理は操作S4570に続く。
【００５５】
具体的には、操作S4570は、水平方向の境界730の全体が表示域130から出たかどうかを判定する。文字列のスクロールにより、水平方向の境界730の全体が表示域130から出た場合、スクロールの水平成分は十分に大きく、ユーザーによる意図的なものであり、したがって、文字列のブロックを自動的に再スクロールする必要はないと判定することができる。一方、操作S4570で、水平方向の境界730が画面130から全体が出てはおらず、水平方向の境界730のうちの1つが表示域130から部分的に出ただけであると判定されると、図4の操作S460に従って、ユーザーが文字列を左側または右側に意図せずスクロールしたので、この意図しないスクロールを補償するために再スクロールが必要であると決定されうる。
【００５６】
操作S4560とS4570はともに、ドラッグ操作による文字列のスクロールによって、表示域130の左側または右側の端部が対応する水平方向の境界730に入ったかどうかを判定する。この例を示すために、ここで図8A〜8Cを参照する。具体的には、これらの図は、図6Aに示される処理が、図7Aに示される例示的な文書700に関する意図しない水平方向のスクロールを補償するために、自動的な再スクロールが必要であると決定する手順を示す。
【００５７】
具体的には、図8Aは、ユーザーによるドラッグ操作の開始イベントを受け取ったときの、コンピューティングデバイス200の表示域130に対する文書700の位置を示す。この図に示されるように、水平方向の境界730Aおよび730Bは、文書710の段に対して計算され、その段は、表示域130の中にあると判定された文字列のブロックである。図8Bは、ドラッグ操作による、文字列の段710のスクロールの結果により生じた、表示域130に対する文書700(および文字列の段710)の次の配置を示す。図8Bに示されるように、スクロールによって、左側の水平方向の境界730Aが表示域130の左側から出るので、図6Aの操作S4560において肯定的な判定が行われる。しかし、図8Bは、水平方向の境界730Aと水平方向の境界730Bはいずれも、スクロール中に表示域130から全体が出てはいないことも示しているので、図6Aの操作S4570においては否定的な判定が行われる。したがって、図8Cは、図4の操作S460の結果として、文字列の段710が自動的に再スクロールされ、表示域130に対して水平方向に適切に配置されたことを示す。
【００５８】
一方、図8D〜8Fは、例示的な文書700に関する例を示すが、これらの図面において、図6Aに示された処理は、ユーザーによるスクロールに応じて文字列710を自動的に再スクロールしないことを決定する。具体的には、図8Dは、ドラッグ操作の前の、文書700および表示域130の位置(図8Aと同様)を示す。図8Eは、ユーザーによるスクロールの結果生じる、表示域130に対する文書700の次の位置を示す。図8Eは、スクロールにより左側の水平方向の境界730Aが表示域130の左側から出たことを示すが、図8Eはさらに、スクロール中に、水平方向の境界730Aの全体が表示域130から出たことも示す。その結果、図6Aの操作S4560およびS4570の両方において肯定的な判定が行われるので、水平方向のスクロールがユーザーによる意図的なものであったことを示す。したがって、図8Fに示されるように、自動的な再スクロールは行われない。
【００５９】
上で説明されてきた本発明の例示的な実施形態は、文字列を自動的に再スクロールして、ユーザーのスクロールの結果としての意図しない水平方向のずれを補償することに関するが、本発明の別の態様を実施して、ユーザーが誤って文字列を表示域130の外にスクロールするのを防ぎやすくすることができる。
【００６０】
例えば、表示域130の左側または右側の端部がそれぞれの水平方向の境界730に入ると、スクロールの速度または比率を低下させることができる。これは、操作S440(図4)のスクロールにより、表示域130の左側または右側の端部が、対応する水平方向の境界730を横切るときに、そのようなスクロールの速度を自動的に低下させうることを意味する。水平方向のスクロールの速度のみが低下させられてもよく、あるいは、水平方向と垂直方向両方のスクロール速度が低下させられてもよい。一般に、スクロールの比率または速度は、ポインタ動作で検出されるピクセルの数当たりの、スクロールされるピクセルの数に関して定義される。
【００６１】
図6Bは、表示域130の左側または右側の端部が対応する水平方向の境界730を横切ったときに、スクロールの水平方向の速度が低下するように、図4の操作S440を実施する例示的な実施形態を示す。操作S4410に従って、ドラッグ操作がユーザーにより開始された時点でスクロールされていた文字列のブロック(例えば、図8Aの文字列710の段)について、判定が行われる。図6Bの操作S4420において、水平方向の境界730が、文字列のブロックの左側および/または右側に対して計算される(例えば、図8Aの水平方向の境界730Aおよび730B)。文字列710が、ドラッグ操作のポインタ動作に従って徐々にスクロールされると、すなわち、図6Bの操作S4430が、ポインタ動作が終了したと判定するまで、表示域130の左側または右側の端部が、左側の水平方向の境界730Aと右側の水平方向の境界730Bのうちの対応する1つの中にあるかどうかが、繰り返し判定される。ない場合は、操作S4450に従って、スクロールはデフォルトの水平方向の速度に維持される。しかし、表示域130の左側/右側の端部が、現在、左側/右側の水平方向の境界730A/730Bの中にある場合、図6Bの操作S4460に従って、スクロールの水平方向の速度が低下させられる。
【００６２】
この特徴に基づいて、水平方向の境界730は、文字列710の側部にある「隆起部」であると考えることができる。したがって、各水平方向の境界730がスクロールして表示域130から出るときに起きる減速は、隆起部の「傾きの大きさ」に相当する。
【００６３】
図6Bを再び参照すると、操作S4460において、水平方向のスクロールの速度の低下量は、スクロールの方向に基づきうる。したがって、スクロールの方向に基づいて、文字列を垂直にスクロールすることがユーザーの意図であることが明確になるにつれて、隆起部(すなわち、水平方向の境界730)の傾きを大きくすることができる。すなわち、ユーザーのポインタ動作が、明らかに垂直方向ではなく水平方向である場合は、隆起部の傾きを小さいままにして、ユーザーが水平にスクロールしやすくすることができる。
【００６４】
さらに、ユーザーが文字列をスクロールするために一連のドラッグ操作を実行するときに、全体のスクロールの方向を用いて、隆起部の傾きの大きさを決定することができる。例えば、各ドラッグ操作の間、スクロールの全体の方向が、最初のドラッグ操作の開始イベントが起きた場所に対して、決定されうる。
【００６５】
図6Cは、ユーザーの一連のドラッグ操作に応じて、全体のスクロールの方向に基づいて、図6Bの操作S4460がスクロールの水平方向の速度を低下させる、具体的かつ例示的な実施形態を示す。図6Cにおいて、操作S44610は、一連のドラッグ操作の最初のドラッグ操作の開始イベントの位置を判定する。操作S44620は、操作S44610で判定された開始イベントの位置と、現在のドラッグ操作までのその後のポインタ動作に基づいて、一連のドラッグ操作が開始してからスクロールされた、全体の水平方向および垂直方向の距離を計算する。操作S44630では、低減された水平方向の速度が、全体の水平方向および垂直方向の距離に基づいて計算される。
【００６６】
例えば、図6Cの操作S44630は、一連のドラッグ操作の開始からの全体のスクロールの方向に応じて、水平方向のスクロール速度を低下させるのに用いられうる、2つ(またはより多く)の異なる値から値を選択することによって実現しうる。具体的には、スクロールの全体の方向が、全体の水平方向および垂直方向の計算値に基づいて、主に水平である場合(例えば、全体の水平方向の距離が全体の垂直方向の距離よりも長い場合)、水平方向のスクロール速度は、第1の所定の値に従って低下させられうる。一方、スクロールの全体の方向が主に垂直である場合(例えば、全体の垂直方向距離が全体の水平方向の距離よりも長い場合)、別の所定の値を適用して、水平方向のスクロールの速度をさらに大きく低下させることができる。
【００６７】
そのような選択を行うための、いくつかの異なる方法が存在しうる。以下は、所定の低減された速度の中からそのような選択を実施するための、コンピュータコードの一例である。
int speedDivider = abs(totalScrollX) > abs(totalScrollY)
? DIVIDER_X
:DIVIDER_X
VERTICAL_MULTIPLIER;
int reduced_horiz_rate = default_horiz_rate/speedDivider
ここで、
reduced_horiz_rateは低減された水平方向のスクロール速度であり、
default_horiz_rateはデフォルトの水平方向のスクロール速度であり、
speedDividerは、除算によって、デフォルトの水平方向のスクロール速度を低減するときの除数となる係数であり、
totalScrollXおよびtotalScrollYは、一連のドラッグ操作の開始からの、水平方向(x軸)および垂直方向(y軸)の全体のスクロール距離をそれぞれ表し、
DIVIDER_Xは、水平方向のスクロール速度を低減するときの除数となる係数を表し、
VERTICAL_MULTIPLIERは、全体のスクロールの方向が水平ではなく垂直である場合に、水平方向のスクロール速度をさらに低減するときの除数となる、追加の係数を表す。
【００６８】
上の例を説明するために、DIVIDER_Xが事前に値2に設定され、VERTICAL_MULTIPLIERが事前に値5に設定されていると仮定する。これらの条件では、表示域130の左側または右側の端部が対応する水平方向の境界730にスクロールしたときに、ユーザーの全体のスクロールの方向が主に水平である場合、水平方向のスクロールの低減された速度は、デフォルトの水平方向のスクロール速度の半分、すなわち、default_horiz_rateを2で割ったものとして計算される。逆に、この例では、表示域の端部が水平方向の境界730に入ったときに、ユーザーの全体のスクロールの方向が主に垂直である(例えば、誤った水平成分を有する)場合、水平方向のスクロールの低減された速度は、デフォルトの速度の10分の1、すなわち、default_horiz_rate/(2*5)として計算される。
【００６９】
図6Bおよび6Cは単に例示的な実施形態を示すものであり、本発明の趣旨および範囲と矛盾することなく、水平方向の境界730の傾きの大きさを計算または修正するために、他の方法を実施することができる。また、各水平方向の境界730を、ある傾きの大きさを有する隆起部として実装することは必須ではなく、任意選択の改善として実装されてもよい。
【００７０】
このように本発明が説明されたが、本発明を多くの方法で変形できることは明らかである。そのような変形は、本発明の趣旨および範囲からの逸脱であると見なされるべきではなく、当業者に明らかなそのような全ての修正は、以下の特許請求の範囲に含まれることが意図される。
【符号の説明】
【００７１】
100  文書
110  文字列
120  画像
130  表示域
140  開始イベント
150  ポインタ動作
200  コンピューティングデバイス
201  CPU
202  メモリ
203  通信ポート
204  ビデオインターフェース
205  ネットワークインターフェース
206  システムバス
210  ローカルのデバイス
220  表示ユニット
230  遠隔のデバイス
241  BIOS
242  オペレーティングシステム
243  コンピュータプログラム
244  データ
245  マクロおよびスクリプトのような実行可能ファイルまたは命令
300  ブラウザ
301  ユーザーインターフェース
302  アドレスフィールド
303  ウィンドウマネージャおよび入力マネージャ
304  文書マネージャ
305  URLマネージャ
306  通信モジュール
307  暗号化/復号モジュール
308  キャッシュマネージャ
309  文書および画像キャッシュ
310  パーサ
311  ECMAScriptエンジン
312  文書オブジェクトモデル構造を扱うためのモジュール
313  レイアウトエンジン
314  レンダリングエンジン
700  電子文書
705  見出し文字列
710  文字列のコンテンツの段
720  画像
730  水平方向の境界
【図１Ａ】
0005629781.tif 000002
【図１Ｂ】
0005629781.tif 000003
【図１Ｃ】
0005629781.tif 000004
【図１Ｄ】
0005629781.tif 000005
【図１Ｅ】
0005629781.tif 000006
【図２】
0005629781.tif 000007
【図３】
0005629781.tif 000008
【図４】
0005629781.tif 000009
【図５Ａ】
0005629781.tif 000010
【図５Ｂ】
0005629781.tif 000011
【図６Ａ】
0005629781.tif 000012
【図６Ｂ】
0005629781.tif 000013
【図６Ｃ】
0005629781.tif 000014
【図７Ａ】
0005629781.tif 000015
【図７Ｂ】
0005629781.tif 000016
【図８Ａ】
0005629781.tif 000017
【図８Ｂ】
0005629781.tif 000018
【図８Ｃ】
0005629781.tif 000019
【図８Ｄ】
0005629781.tif 000020
【図８Ｅ】
0005629781.tif 000021
【図８Ｆ】
0005629781.tif 000022