(57)【特許請求の範囲】
【請求項１】
少なくとも文字列を表示する表示手段と、前記表示手段に対して操作体が接触又は接近することによって入力を受け付けるタッチパネルと、前記表示手段および前記タッチパネルを制御する制御手段とを有する表示装置であって、
前記制御手段は、
表示されている文字列のキャレット位置を取得するキャレット位置取得手段と、
前記タッチパネルへの入力がなされた位置に近いキャレット位置を入力位置として受け付ける入力受付手段と、
既に選択されている選択範囲の始点となるキャレット位置および終点となるキャレット位置を取得する選択範囲取得手段と、
前記選択範囲取得手段により取得される始点および終点と、前記入力位置に基づいて、前記選択範囲を変更するための初期位置と目標位置と、を決定する変更範囲決定手段と、
前記初期位置から前記目標位置までを、時間の経過に応じて、前記選択範囲に加える又は前記選択範囲から除く選択範囲変更手段と、
前記選択範囲に加えられた範囲又は前記選択範囲から除かれた範囲の表示状態を変更する選択範囲表示手段と、
を有することを特徴とする表示装置。
【請求項２】
前記選択範囲取得手段は、
前記選択範囲が選択されていない場合であって、
前記入力受付手段が、
第１の操作による第１の入力位置を受け付け、
前記第１の操作が継続している間に、
第２の操作による第２の入力位置を受け付けた場合に、
前記第１の入力位置又は前記第２の入力位置の一方を前記始点とし、他方を前記終点とする選択範囲を取得することを特徴とする請求項１に記載の表示装置。
【請求項３】
前記入力受付手段は、
前記操作がなされた位置に近い少なくとも１つのキャレット位置を入力位置として受け付け、
前記変更範囲決定手段は、
前記入力位置のうちの１つを最終到達位置とすることを特徴とする請求項１又は２に記載の表示装置。
【請求項４】
前記選択範囲変更手段は、
前記選択範囲の始点又は終点が前記最終到達位置に到達すると、選択範囲の変更を停止することを特徴とする請求項３に記載の表示装置。
【請求項５】
前記選択範囲変更手段は、
所定の時間内に前記目標位置の変更を受け付けると、選択範囲の変更を停止させ、
所定の時間内に前記目標位置の変更を受け付けなれば、選択範囲の変更を開始することを特徴とする請求項１乃至４のいずれか１項に記載の表示装置。
【請求項６】
前記選択範囲変更手段は、
前記選択範囲の始点又は終点の位置と前記目標位置との関係に応じて、選択範囲の変更速度を変えることを特徴とする請求項１乃至５のいずれか１項に記載の表示装置。
【請求項７】
前記選択範囲変更手段は、
前記選択範囲の変更速度のうちの、
前記選択範囲の始点から前記目標位置までの変更速度と
前記選択範囲の終点から前記目標位置までの変更速度と
を、それぞれ独立して決定することを特徴とする請求項１乃至６のいずれか１項に記載の表示装置。
【請求項８】
前記選択範囲変更手段は、
前記選択範囲の始点から前記目標位置までの選択範囲の変更を開始するタイミングと
前記選択範囲の終点から前記目標位置までの選択範囲の変更を開始するタイミングと
を、それぞれ独立して決定することを特徴とする請求項１乃至７のいずれか１項に記載の表示装置。
【請求項９】
前記目標位置を解除する入力解除手段をさらに有し、
前記入力解除手段による前記目標位置の解除を、前記入力受付手段が受け付けた時点で、前記選択範囲表示手段により表示されている範囲を、選択範囲として決定することを特徴とする請求項１乃至８のいずれか１項に記載の表示装置。
【請求項１０】
少なくとも文字列を表示する表示手段と、前記表示手段に対して操作体が接触する又は接近することによって入力を受け付けるタッチパネルと、を有する表示装置の制御方法であって、
表示されている文字列のキャレット位置を取得するキャレット位置取得工程と、
前記タッチパネルへの操作がなされた位置に近いキャレット位置を入力位置として受け付ける入力受付工程と、
既に選択されている選択範囲の始点となるキャレット位置および終点となるキャレット位置を取得する選択範囲取得工程と、
前記始点又は前記終点のうち、前記入力位置に近い方の点の位置を初期位置として決定し、前記入力位置を目標位置として決定する変更範囲決定工程と、
前記初期位置から前記目標位置までを、時間の経過に応じて、前記選択範囲に加える又は前記選択範囲から除く選択範囲変更工程と、
前記選択範囲に加えられた範囲又は前記選択範囲から除かれた範囲の表示状態を変更する選択範囲表示工程と、
を有することを特徴とする表示装置の制御方法。
【請求項１１】
コンピュータを請求項１乃至９のいずれか１項に記載の表示装置が備える各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はタッチパネルを搭載した表示装置に関する。
【背景技術】
【０００２】
スマートフォンやタブレット端末に代表されるタッチパネルを搭載したデバイスにおいて、指やスタイラスペンなどを用いてさまざまな操作を行うことが可能となっている。その１つに、デバイス表示部に表示される文字列の一部を範囲選択して、選択した文字列のコピーやペーストを行う操作がある。デバイスによってはこのような操作を複数の指を同時に表示部に接触させることで行うことも可能となっている。
【０００３】
しかし、デバイス表示部に表示されている文字列に対して範囲選択する際に、タッチ操作の過程で表示部の一部を操作者の視界から指で遮る状況が生じる。そのため、範囲選択の状況を目視で確認することが困難になり、選択範囲がずれてしまう場合があるという課題があった。従来では、選択する文字列に対して構文解析を行って文節に区切り、文字列選択時に文節の境界を指が通過すると、デバイスに付与されたバイブレーション機能により振動させるものがあった（特許文献１）。この方法によれば、文節の境界で発生する振動によって、どの文字までが選択できているかの目安をユーザに知らせることができるというものであった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−０４８４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では選択する文字列を指でなぞらなければならないという制限があり、始点と終点を指定することで選択範囲を決定する方法には適用できないという課題があった。また、タッチ操作において表示部から指を離す際に、選択した範囲がずれてしまうことがあるという課題があった。
そこで本発明は、上記課題を鑑みてなされたものであり、デバイス表示部に表示された文字列を、タッチ操作でより正確に範囲選択できる表示装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る表示装置は、少なくとも文字列を表示する表示手段と、前記表示手段に対して操作体が接触する又は接近することによって入力を受け付けるタッチパネルと、前記表示手段および前記タッチパネルを制御する制御手段とを有する表示装置であって、
前記制御手段は、
表示されている文字列のキャレット位置を取得するキャレット位置取得手段と、
前記タッチパネルへの操作がなされた位置に近いキャレット位置を入力位置として受け付ける入力受付手段と、
既に選択されている選択範囲の始点となるキャレット位置および終点となるキャレット位置を取得する選択範囲取得手段と、
前記始点又は前記終点のうち、前記入力位置に近い方の点の位置を初期位置として決定し、前記入力位置を目標位置として決定する変更範囲決定手段と、
前記初期位置から前記目標位置までを、時間の経過に応じて、前記選択範囲に加える又は前記選択範囲から除く選択範囲変更手段と、
前記選択範囲に加えられた範囲又は前記選択範囲から除かれた範囲の表示状態を変更する選択範囲表示手段と、を有する。
【０００７】
また、上記課題を解決するために、本発明に係る表示装置の制御方法は、少なくとも文字列を表示する表示手段と、前記表示手段に対するタッチ入力を受け付けるタッチパネルとを有する表示装置の制御方法であって、
表示されている文字列のキャレット位置を取得するキャレット位置取得工程と、
前記タッチパネルへの操作がなされた位置に近いキャレット位置を入力位置として受け付ける入力受付工程と、
既に選択されている選択範囲の始点となるキャレット位置および終点となるキャレット位置を取得する選択範囲取得工程と、
前記始点又は前記終点のうち、前記入力位置に近い方の点の位置を初期位置として決定し、前記入力位置を目標位置として決定する変更範囲決定工程と、
前記初期位置から前記目標位置までを、時間の経過に応じて、前記選択範囲に加える又は前記選択範囲から除く選択範囲変更工程と、
前記選択範囲に加えられた範囲又は前記選択範囲から除かれた範囲の表示状態を変更する選択範囲表示工程と、を有する。
【発明の効果】
【０００８】
本発明により、タッチ操作による範囲選択の際の誤選択を低減させた表示装置を提供することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態のハードウェア構成の一例を示すブロック図である。
【図２】本実施形態の機能構成の一例を示した図である。
【図３】範囲を選択する処理フローの一例を示した図である。
【図４】選択範囲の始点を変更した時の表示状態の一例を示した図である。
【図５】選択範囲の始点を変更した時の表示状態の一例を示した図である。
【図６】選択範囲の始点を変更した時の表示状態の一例を示した図である。
【図７】選択範囲の終点を変更した時の選択範囲の変更方法の一例を示した図である。
【図８】入力された座標に基づいて目標位置の決定方法の一例を示した図である。
【図９】現在の選択範囲と目標位置で決まる変更速度の一例をグラフ化した図である。
【図１０】範囲を選択する処理フローの一例を示した図である。
【図１１】選択範囲の始点と終点を入力した時の表示状態の一例を示した図である。
【図１２】選択範囲の始点と終点を入力した時の表示状態の一例を示した図である。
【図１３】指定した選択範囲の始点を変更した時の表示状態の一例を示した図である。
【図１４】指定した選択範囲の始点を変更した時の処理フローの一例を示した図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一な構成については、同じ符号を付して説明する。
【００１１】
＜実施形態１＞
図１のブロック図を参照して、本実施形態の表示装置の構成について説明する。図１における１００は表示装置全体を示す。ＣＰＵ１０１はシステム制御部であり表示装置全体を制御する。ＲＯＭ１０２は変更を必要としないプログラムやパラメータを格納する読み取り専用のメモリである。ＲＡＭ１０３は外部装置などから供給されるプログラムやデータを一時記憶する書き換え可能なメモリである。描画処理部１０４はプログラムによって描画したグラフィックスを出力する。
【００１２】
表示部１０５は、描画処理部１０４で描画したグラフィックスやユーザインターフェースを表示する。入力部１０６はユーザからの入力を受信するもので、マウスやキーボード、タッチパネルなどがこれに該当する。システムバス１０７は１０１〜１０６の各ユニットを通信可能に接続する。
【００１３】
タッチパネルは、表示パネルの表示画面に対して操作体が接触又は接近した位置を検出する位置検出部として機能する。タッチパネルという語を使用するが、タッチすること、つまり接触することは、タッチパネルが位置を検出するための必須条件ではない。本発明は、操作体がパネルの表面に接触した位置を検出するタッチパネル、操作体がパネルの表面に接近した位置を検出するタッチパネルのいずれにも適用できる。タッチパネルは、表示パネルに重ねて配設されており、操作体が接触又は接近した表示画面上の位置を検知するセンサを具備する。
【００１４】
かかるセンサにより、タッチパネルは、操作体により指定された表示画面上の位置や、操作体の移動軌跡や移動速度を検出することができる。タッチパネルの操作に用いられる操作体は、例えば、ユーザの指やスタイラス、タッチペン等である。タッチパネルは、操作体が接触又は接近した表示画面上の位置を座標として検出し、タッチパネルにより検出された座標は、システム制御部に伝送されて、所定の処理が実行される。
【００１５】
タッチパネルとしては、例えば、感圧式、静電気式、光学式など、任意の方式のタッチパネルを使用できる。感圧式タッチパネルは、操作体によりパネルを押圧したときの圧力の変化を検知する。静電気式タッチパネルは、パネルに対する操作体の接触に伴う静電気による電気信号を検知する。光学式タッチパネルは、表示パネルの外枠に設けられた光学センサにより、パネルに接触した操作体の位置や移動方向を検知する方式が一般的である。
【００１６】
また、タッチパネルとしては、操作体の接触を検知する接触式のタッチパネル（例えば、上記感圧式、静電気式のタッチパネル）が一般的である。ユーザは、指やスタイラス等でタッチパネルの面上を押圧（即ち、タップ）したり、当該押圧した指やスタイラス等を移動させたりすることで、表示装置に対して各種の操作を行うことができる。
【００１７】
説明した構成に対して、プログラムコードを供給するための記憶媒体としてＲＯＭのほかに以下のものがある。例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、メモリカード、ＤＶＤなどが本実施形態の表示装置の構成に加わってもよい。
【００１８】
第１の実施形態では、静電式タッチパネルつきディスプレイに表示されている表示コンテンツに対して、タッチ操作により範囲を選択する一例を、図を用いて説明する。
図２は、本発明を適用した表示装置１００に内蔵される各処理部を示したブロック図である。これらの各機能部は、ＲＯＭ１０２に格納されたプログラムをＣＰＵ１０１がＲＡＭ１０３に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ１０１を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００１９】
図３は、タッチ操作により文字列の範囲を選択する処理フローの一例を示したものである。なお、本処理はタッチパネルに表示されている文字列の一部が既に範囲選択されている状態から処理を開始し、その範囲の始点あるいは終点の位置を変更することで選択範囲を決定する。
【００２０】
図２の表示装置の制御部２００において、入力受付部２０１は範囲を選択するための位置情報の入力を受け付ける（Ｓ３０１）。ここで受け付ける入力は、選択する範囲の始点と終点の少なくともいずれかの座標であり、既に選択されている範囲の始点や終点を変更した座標であってもよい。入力受付部２０１は、タッチパネルへの入力がなされた位置に近いキャレット位置を入力位置として受け付ける。
【００２１】
選択範囲取得部２０２は、既に選択されている範囲があればその選択範囲の少なくとも始点および終点を取得する（Ｓ３０２）。選択範囲の始点と終点に関する位置情報は表示されている文字列における先頭からの文字数などであってもよいが、ここではタッチパネルにおける座標を想定している。
入力受付部２０１で受け付けた座標が、前記選択範囲の始点あるいは終点の位置を変更したものであるか否かを判別し（Ｓ３０３）、前記選択範囲の始点あるいは終点の位置を変更したものでなければ処理を終了する。そうでなければ、キャレット位置取得部２０３は表示されている文字列のキャレット位置情報を取得する（Ｓ３０４）。
【００２２】
一般的にキャレットとはテキストフィールド内で文字を入力する位置に表示されている縦棒などを意味し、キャレット位置とは文字入力画面における入力文字の挿入位置である。本実施例においては文字と文字の境界の座標をキャレット位置とする。Ｓ３０２で取得した始点は前記選択範囲の先頭文字の直前にあるキャレット位置であり、終点は前記選択範囲の末尾文字の直後にあるキャレット位置である。
既に選択されている範囲の始点と終点にカーソルなどの目印を表示させ、タッチ操作によってカーソルの位置を移動させることで選択範囲の変更を行う方法について、図４を用いて説明する。
【００２３】
＜選択範囲を広げる＞
図４は、前記選択範囲の始点をタッチ操作によって変更するときのタッチパネルの表示状態を示したものである。
図４（ａ）は、タッチパネル４０１に表示されている文字列において、既に選択範囲４０２が選択されている状態を示したものであり、選択範囲４０２の始点と終点に該当するキャレット位置をそれぞれキャレット位置４０３とキャレット位置４０４で示している。以下、選択範囲４０２は単に「範囲４０２」とも表記する。また、図４（ａ）では、キャレットはキャレット位置４０３に表示されている。
【００２４】
図４（ｂ）を用いて、キャレットをキャレット位置４０３からキャレット位置４０７へ移動させるための操作を説明する。
入力受付部２０１が、位置（「キャレット位置」ではない。）４０５がタッチされたという入力を受け付けると、変更範囲決定部２０４が、キャレット位置４０３を初期位置として、位置４０５の付近のキャレット位置を目標位置として決定する（Ｓ３０５）。
前記初期位置は、範囲の変更が開始されるキャレット位置であり、前記目標位置は範囲の変更が終了するキャレット位置である。
ここでは、範囲４０２の始点を変更しているため、前記初期位置はキャレット位置４０３である。
【００２５】
一方、前記目標位置は、位置４０５に該当する文字列行４０６において、位置４０５のｘ座標の直前のキャレット位置又は直後のキャレット位置のいずれかとなる。
位置４０５は範囲４０２の始点より文字列配置において前方に位置し、変更後の選択範囲の始点になる。そのため前記目標位置は、位置４０５のｘ座標の直前のキャレット位置である図４（ｃ）に示すキャレット位置４０７となる。
図４（ｃ）は、キャレット位置４０７にキャレットが表示されている状態を示している。
図４（ｄ）は、選択範囲の始点がキャレット位置４０７に向かって移動している途中であって、選択範囲の始点がキャレット位置４０９に表示されている状態を示している。
範囲４０２の始点を時間に応じて移動させ、前記目標位置であるキャレット位置４０７に到達したか否かを判別する（Ｓ３０６）。
【００２６】
選択範囲の始点がキャレット位置４０７に到達していないと判別された場合、選択範囲変更部２０５は前記初期位置と前記目標位置に基づいて、時間に応じて範囲の始点や終点を移動させることによって選択範囲を変更する（Ｓ３０７）。前記初期位置と前記目標位置の位置関係によって選択範囲を広げる場合と狭める場合とがある。
図４（ｃ）では、前記目標位置であるキャレット位置４０７が前記初期位置であるキャレット位置４０３よりも文字列配置上で前に位置するので、選択範囲を広げるように変更する。
【００２７】
本実施例では、範囲４０２の始点を、前記初期位置から前記目標位置に近づけるように移動させることで、時間に応じて離散的に選択範囲を広げて表示するアニメーションを想定している。選択範囲の始点や終点を移動させる速度は一定である必要はなく、前記目標位置に近づくにつれて減速するなど、現在の選択範囲の位置と前記目標位置に応じて変えてよい。また、キャレット位置に依存せず１文字分の幅未満の刻みで滑らかに選択範囲を広げるようなアニメーションにしてもよい。
【００２８】
図４（ｃ）では、キャレット位置４０３からキャレット位置４０７の間に１５文字が存在する。選択範囲の始点が３秒でキャレット位置４０７に到達するように変更するには、３秒／１５文字＝０．２秒ごとに１文字分、キャレット位置４０３に近づけるように選択範囲の始点を移動させればよい。
【００２９】
図４（ｄ）は、範囲４０２の始点がキャレット位置４０３から移動し始めて１秒後の状態を示したものである。範囲４０８は新たに広がった範囲であり、便宜上、範囲４０２と背景パターンを区別して図示しているがハイライト表示させる際には同じ背景パターンで表示してもよい。このときの範囲４０８の始点であるキャレット位置４０９はタッチパネル４０１の左端であるため、１秒後からは図４（ｅ）に示すように、前行の末尾であるキャレット位置４１０からキャレット位置４０７に向けて範囲４０８の始点を移動させる。キャレット位置４０９とキャレット位置４１０は、座標は異なるが同じ文字と文字の境界を表しているため、同一のキャレット位置と見做す。範囲４１１は図４（ｄ）における範囲４０２と範囲４０８の和集合である。
【００３０】
選択範囲表示部２０６は、選択範囲変更部２０５による変更に基づいて、その時点での選択範囲をハイライト表示させる（Ｓ３０８）。操作者（ユーザ）に対して選択範囲を明示的に表示させる他の方法として、選択範囲に含まれる文字列の色を変更する、あるいはボールド表示するなどの方法でもよい。
Ｓ３０８で現在の選択範囲が表示された後、入力受付部２０１で受け付けた入力によって決定される前記目標位置が、入力解除部２０８によって解除されたか否かを判別する（Ｓ３０９）。
【００３１】
本実施例では、タッチ操作により指定された選択範囲の始点や終点の座標が入力受付部２０１で受け付けられて前記目標位置が決定される。操作者の指４１３がタッチパネルに触れている間は前記目標位置が有効と見做し、タッチパネルから離れることによって、前記目標位置の解除が受け付けられるものとする。
Ｓ３０９で前記目標座標が解除されていないと判別される間は処理をＳ３０６に移し、その時の選択範囲が前記目標位置に到達していればＳ３０７の処理を省略する。Ｓ３０９で解除されたと判別されると、選択範囲決定部２０７はその時点でハイライト表示されている範囲を選択範囲として決定して（Ｓ３１０）処理を終了する。
【００３２】
図４（ｆ）は、選択範囲の変更が開始されてから３秒が経過し、選択範囲の始点がキャレット位置４０７に到達した時の状態を示したものである。選択範囲の始点が目標位置であるキャレット位置４０７に到達すると、Ｓ３０６はＹｅｓに分岐し、Ｓ３０７を経由せず（つまり、選択範囲を変更せず）、Ｓ３０８に進み、現在の選択範囲の表示状態を維持する。つまり、タッチパネルに指が触れたままであっても選択範囲の変更は停止されてハイライト表示され続ける。
操作者の指がタッチパネルから離れることによって、入力が解除され（Ｓ３０９  Ｙｅｓ）、選択範囲が決定される（Ｓ３１０）。
【００３３】
＜選択範囲を狭める＞
前述では、既に選択されていた範囲の始点を、文字列の配置において前方の位置に移動させて選択範囲を変更したときの処理を説明した。ここでは図３の処理フローに従い、前記始点を既に選択されている範囲内のキャレット位置に移動させて選択範囲を変更する処理について説明する。
【００３４】
図５はそのときのタッチパネルの表示状態を示した図である。初期状態は図４（ａ）と同じ状態であり、範囲４０２が既に選択されている。
図５（ａ）では、タッチ操作により範囲４０２の始点をキャレット位置４０３からキャレット位置５０１に移動させることで、入力受付部２０１は範囲４０２の始点の変更を受け付ける。Ｓ３０２からＳ３０６は前述と同様の処理のため説明を省略する。
Ｓ３０７では、キャレット位置５０１は範囲４０２内にあり、かつキャレット位置４０３より文字列配置において後方に位置するため、範囲４０２を狭めるように変更する。
【００３５】
図５（ｂ）は、範囲４０２の始点をキャレット位置４０３からキャレット位置５０２に移動させたことにより、範囲４０２の上から１行目部分が範囲５０３に狭まったことを示したものである。
図５（ｃ）は、範囲の変更が進んで範囲５０４の始点が前記目標位置であるキャレット位置５０１に到達した時の状態を示したものである。
【００３６】
同様に、既に選択されている範囲の始点を、文字列配置上で選択範囲の終点より後方に移動させて選択範囲を変更する処理について、図３の処理フローに従い説明する。図６はそのときのタッチパネルの表示状態を示した図である。初期状態は図４（ａ）と同じ状態であり、範囲４０２が既に選択されている。
【００３７】
＜新たな選択範囲の始点を、既存の選択範囲の終点よりも後方に設定する＞
図６（ａ）では、タッチ操作により範囲４０２の始点をキャレット位置４０３からキャレット位置６０１に移動させることで、入力受付部２０１は範囲４０２の始点の変更を受け付ける。Ｓ３０２からＳ３０６は前述と同様の処理のため説明を省略する。
Ｓ３０７では、キャレット位置６０１は範囲４０２の終点であるキャレット位置４０４より文字列配置において後方に位置する。
【００３８】
このため、範囲４０２の始点の移動先がキャレット位置４０３からキャレット位置４０４の間のときは（つまり、選択範囲の始点がキャレット位置４０４に到達するまでは）、範囲４０２を狭めるように変更する。
図６（ｂ）はそのときの状態を示したものである。このとき範囲４０２は狭まり、キャレット位置６０２を始点とした範囲６０３となっている。
【００３９】
さらに範囲６０３の始点が図６（ｃ）に示すようにキャレット位置４０４に到達すると、一時的に選択範囲がない状態となる。
その後は、図６（ｄ）に示すように、選択範囲の始点はキャレット位置４０４に固定され、終点をキャレット位置４０４からキャレット位置６０１向けて移動させることで範囲６０５を広げるように変更する。
【００４０】
選択範囲の別の変更方法として、キャレット位置６０１は文字列配置においてキャレット位置４０４より後方に位置することから、Ｓ３０５では前記初期位置をキャレット位置４０４、前記目標位置をキャレット位置６０１とする。そしてＳ３０７では、はじめに範囲４０２の選択を解除し、選択範囲の始点をキャレット位置４０４に固定し、終点をキャレット位置４０４からキャレット位置６０１に向けて移動させることで選択範囲を広げてもよい。
【００４１】
後者の方法では、図６（ａ）に示す状態から、図６（ｂ）に示す状態を経ずに、図６（ｃ）に示す状態となり、図６（ｃ）に示す選択範囲が無い状態からＳ３０７による範囲の変更が開始されることになる。
図６（ｅ）は範囲の変更が進んで、範囲６０５の終点がキャレット位置６０１に到達し、選択範囲の変更を停止した時の状態を示したものであり、範囲６０６が選択範囲となる。
【００４２】
図４から図６では、既に選択されている範囲４０２の始点を異なる位置に移動することによって、選択範囲を変更した時のタッチパネルの表示状態を説明した。タッチ操作により範囲４０２の始点ではなく終点を変更する場合であっても、図３に示す処理フローに従って前記初期位置と前記目標位置を決定することで、時間に応じて選択範囲を変更することができる。
【００４３】
＜選択範囲の始点や終点が移動する速度を適宜変更する＞
選択範囲変更部２０５において、前記初期位置から前記目標位置に向けて、選択範囲の始点や終点を移動させるときの変更速度を決定する処理の一例を、図７を用いて説明する。
【００４４】
図７は既に選択されている範囲の終点を、タッチ操作により文字列配置上の更に後方に移動させたときの、時間に応じた選択範囲の表示状態を示したものである。
図７（ａ）において、範囲７０１は既に選択されている範囲を表しており、キャレット位置７０２は範囲７０１の終点を表している。タッチ操作によりキャレット位置７０２を位置７０３に移動させることによって選択範囲を広げることを想定しているため、前記初期位置はキャレット位置７０２である。
【００４５】
図８を用いて、変更範囲決定部２０４による目標位置の決定方法の一例について説明する。図８は、図７に示す位置７０３の近傍を拡大したものであり、位置７０３から半径ｒピクセルの範囲を円８０１で表している。タッチパネルに表示されている文字の大きさがユーザの指先の大きさに比べて小さいと、タッチ操作による選択範囲の始点や終点の位置を正確に指定することが困難な場合がある。
【００４６】
そこで、円８０１の範囲に一部でも含まれる文字に関するキャレット位置を目標位置の候補とする。半径ｒの値は、半径ｒによって規定される円の円周がユーザの指先によって隠れる領域の外に存在するようになる値であることが望ましい。
本実施例では、各行において円８０１の範囲に含まれる文字のうち、先頭文字の直前のキャレット位置から末尾文字の直後のキャレット位置までの各キャレット位置を目標位置の候補とする。その場合、円８０１の範囲を含む最初の行についてはキャレット位置８０２からキャレット位置８０３までの全てのキャレット位置が目標位置の候補となる。円８０１の範囲を含む他の行でも同様に目標位置の候補が決定する。
【００４７】
目標位置の候補であるキャレット位置やその近傍では、選択範囲の始点や終点の変更速度を減速させる。
目標位置の候補は、位置７０３に該当する文字の上下左右に隣接した文字に関するキャレット位置としてもよく、目標位置の候補の決定方法については限定しない。
図８に示す例では、
位置７０３に該当する文字とは、２行目の「あ」と「る」であり、
２行目の「あ」と「る」の上下左右に隣接した文字とは、１行目の「無闇をし」、２行目の「が」と「か」、および３行目の「別段深い」であり、
それらの文字に関するキャレット位置とは、
キャレット位置８０２からキャレット位置８０３までの全てのキャレット位置、
キャレット位置８０４からキャレット位置８０５までの全てのキャレット位置、および
キャレット位置８０６からキャレット位置８０７までの全てのキャレット位置
の全てである。
【００４８】
本実施例では、図８に示す目標位置の候補の中で前記初期位置（キャレット位置７０２）から文字列配置上で最も遠い位置にあるキャレット位置８０７を最終到達位置とする。時間に応じて変更される選択範囲が前記最終到達位置に達したら、範囲の変更を停止させる。キャレット位置８０２〜８０３の間の各キャレット位置、キャレット位置８０４〜８０５の間の各キャレット位置およびキャレット位置８０６〜８０７の間の各キャレット位置が、図８に示す目標位置の候補となる。
【００４９】
図７（ｂ）は、時間に応じて範囲７０１が範囲７０４に広がり、その終点がキャレット位置７０５まで到達した時の状態を示したものである。キャレット位置７０２からキャレット位置７０５までの範囲には、図８で説明した目標位置の候補が存在しないため、行単位で選択範囲が広がるように変更してもよい。
【００５０】
図７（ｃ）は、さらに範囲７０４が範囲７０７に広がり、円８０１の範囲に含まれるキャレット位置８０３（図７のキャレット位置７０６に該当）に到達したときの状態を示したものである。図７（ｂ）から図７（ｃ）での選択範囲の変更では、選択範囲の終点が目標位置の候補に該当するキャレット位置８０２〜８０３を通過するため、その間は範囲７０７の変更速度（終点の移動速度）を減速させる。
【００５１】
図７（ｄ）は範囲７０７が広がり、その終点がキャレット位置７０８まで移動した時の範囲７０９の状態を示したものである。範囲７０７から範囲７０９への変更は、円８０１の範囲に該当する行ではあるが、目標位置の候補であるキャレット位置８０２〜８０３を含まない部分である。そのため、図７（ａ）から図７（ｂ）での変更速度よりは遅く、図７（ｂ）から図７（ｃ）での変更速度よりは速く、選択範囲が変更（終点が移動）される。
【００５２】
図７（ｅ）は範囲７０９の終点がキャレット位置７１０に到達した時の範囲７１１の状態を示したものである。キャレット位置７１０は前記最終到達位置である図８に示すキャレット位置８０７に該当するため、ここで選択範囲の変更が停止される。
図７における選択範囲の変更速度の一例について説明する。
目標位置の候補が無い行では、毎秒９０文字分、選択範囲の終点を移動させる。
目標位置の候補がある行では、その行の中で
１）目標位置の候補であるキャレット位置の部分（例えば、キャレット位置８０２〜８０３）と、
２）そうでない部分とで変更速度を変える。
目標位置の候補であるキャレット位置では毎秒１０文字分、選択範囲の終点を移動させ、
そうでない部分では毎秒５０文字分、選択範囲の終点を移動させる。
そのときの図７における選択範囲の変更速度の遷移をグラフ化したのが図９である。
【００５３】
図９の横軸は時間を表し、縦軸は選択範囲の終点の移動数（キャレット位置の数）を表している。左下を原点９０１とすると、原点９０１及び点９０２から点９０５がそれぞれ順に、図７（ａ）から図７（ｅ）の状態での変更速度を示す。
【００５４】
図７（ａ）のキャレット位置７０２は図９の原点９０１に対応し、図７（ｂ）のキャレット位置７０５は図９の点９０２に対応する。
図７（ａ）のキャレット位置７０２から図７（ｂ）のキャレット位置７０５までは、目標位置の候補が無い行であるから、図９の点９０１と点９０２とを結ぶ直線の傾きが示すように、変更範囲の終点の移動速度は速い。
【００５５】
図７（ｃ）のキャレット位置７０６は図９の点９０３に対応する。
図７（ｃ）のキャレット位置７０６が属する行の先頭のキャレット位置から図７（ｃ）のキャレット位置７０６までは、目標位置の候補がある部分であるから、図９の点９０２と点９０３とを結ぶ直線の傾きが示すように、変更範囲の終点の移動速度は遅い。
【００５６】
図７（ｄ）のキャレット位置７０８は図９の点９０４に対応する。
図７（ｃ）のキャレット位置７０６から図７（ｄ）のキャレット位置７０８までは、目標位置の候補が無い部分であるから、図９の点９０３と点９０４とを結ぶ直線の傾きが示すように、変更範囲の終点の移動速度は速い。
【００５７】
このように選択範囲の表示状態の変更速度を、１）目標位置の候補が無い部分又目標位置の候補が近くに無い部分であれば速くし、２）目標位置の候補がある部分又目標位置の候補が近くにある部分であれば遅くする。
その結果、１）選択範囲の表示状態の変更速度が遅いためにユーザを不快にすることも少なくなる。また、２）選択範囲の表示状態の変更速度が速いためにユーザが目標位置の決定を失敗する（意図した位置よりも手前の位置又は意図した位置を通過した位置が目標位置として決定されてしまう）ことを回避することができる。
【００５８】
図７（ａ）から図７（ｂ）までのように、目標位置の候補が無い行での選択範囲の変更では、１行単位で選択範囲を広げてもよい。あるいは、キャレット位置７０２を位置７０３に移動させると同時に範囲７０４をハイライト表示させ（つまり、目標位置の候補が無い部分は瞬時にハイライト表示させ）、キャレット位置７０５を範囲変更の初期位置としてもよい。
【００５９】
＜実施形態２＞
本実施形態におけるハードウェア構成は、実施形態１で説明した図１を参照する。実施形態１の初期状態において、選択されている範囲の無い状態から選択範囲の始点と終点の両方を指定した場合に適用してもよい。本実施例ではマルチタッチの入力操作により選択範囲の始点と終点の２点の座標が入力として受け付けられた場合の処理について、図１０に示す処理フロー、および図１１を用いて説明する。なお図１０中の図３と同じ番号が付してあるステップについては説明を省略する。
【００６０】
選択範囲取得部２０２は、
１）選択範囲が選択されていない場合であって、かつ
２）入力受付部２０１が、第１の操作による第１の入力位置を受け付け、第１の操作が継続している間に、第２の操作による第２の入力位置を受け付けた場合に、
第１の入力位置又は第２の入力位置の一方を始点とし、他方を終点とする選択範囲を取得する。
【００６１】
図１１は、タッチパネルに表示された文字列において範囲が選択されていない状態で、タッチ操作により範囲選択するための始点と終点を入力した時のタッチパネルの表示状態を示したものである。
図１１（ａ）ではタッチ操作により、範囲を選択するための始点１１０１と終点１１０２の座標の入力が受け付けられる（Ｓ３０１）。本実施例ではマルチタッチによる入力操作を想定しているが、入力方法はマルチタッチに限定しない。
【００６２】
入力を受け付けた２点のうちのどちらが始点かは、受け付けられた座標の位置関係によって決定される。ここではタッチパネルの左上を原点とした時の座標によって始点と終点が決まるものとする。Ｓ３０１で受け付けられた座標が１点であれば範囲選択の処理を終了し（Ｓ１００１  Ｎｏ）、２点であればＳ３０４に処理を移し（Ｓ１００１  Ｙｅｓ）、変更範囲決定部２０４で前記初期位置と、始点側と終点側の目標位置をそれぞれ決定する（Ｓ１００２）。
【００６３】
図１１（ｂ）で、始点側の目標位置は、始点１１０１の座標に該当する文字の直前にあるキャレット位置１１０４とし、終点側の目標位置は、終点１１０２の座標に該当する文字の直後にあるキャレット位置１１０５とする。前記初期位置は、始点１１０１と終点１１０２との中点１１０３の座標に該当する文字の前後のキャレット位置のうち、より中点１１０３に近いキャレット位置１１０６とする。
【００６４】
選択範囲変更部２０５は、前記初期位置から範囲の変更を開始し、始点側と終点側の２つの方向に対して選択範囲を広げるように変更を行う（Ｓ１００３）。この２方向への変更は同時に行ってもよいし、独立して別々のタイミングで行ってもよい。また、２方向への変更速度をそれぞれ独立して決定してもよい。但し、２方向への変更を同時に行った場合、始点側と終点側の両方を同時に目視しなければならず操作が煩雑になることから、本実施例ではこの２方向への変更を独立して行う処理について説明する。始点側への範囲の変更と、終点側への範囲の変更はそれぞれ同じ処理であり、図１０のＳ１００３以降の処理は図３と同じであるため説明を省略する。
【００６５】
図１１（ｃ）に示すように、一定の割合でキャレット位置１１０６からキャレット位置１１０４に近づけるように、範囲１１０７の始点を移動させる。範囲１１０７の終点はキャレット位置１１０６に固定する。
図１１（ｄ）は範囲１１０７の始点がキャレット位置１１０４に到達したときの状態を示している。このとき、タッチ操作により選択範囲の始点を指定していた指を操作パネルから離すことで、始点側の入力座標の解除を受け付け、選択範囲の始点がキャレット位置１１０４に決定して、終点側への範囲の変更が開始される。
【００６６】
図１１（ｅ）では、始点の時と同様に一定の割合でキャレット位置１１０６からキャレット位置１１０５に近づけるように範囲１１０８の終点を移動させる。範囲１１０８の始点はキャレット位置１１０６に固定する。
図１１（ｆ）は範囲１１０８を広げていき、範囲１１０８の終点がキャレット位置１１０５に到達したときの状態を示している。このとき、タッチ操作により選択範囲の終点を指定していた指を操作パネルから離すことで、終点側の入力座標の解除を受け付けて選択範囲の終点がキャレット位置１１０５に決定し、範囲１１０７と範囲１１０８の和集合が選択範囲として決定される。
【００６７】
図１２を用いて、図１０のＳ１００２について前記始点位置を決定する別の方法を説明する。タッチ操作により選択範囲の始点と終点の座標が入力受付部２０１で受け付けられると、図１１（ａ）での説明と同様に、図１２（ａ）に示すように、始点側の目標位置がキャレット位置１２０１に、終点側の目標位置がキャレット位置１２０２に、それぞれ決まる。キャレット位置１２０１が属する行の末尾のキャレット位置１２０３を始点とし、キャレット位置１２０２が属する行の先頭のキャレット位置１２０４を終点とする範囲１２０５を選択範囲としてハイライト表示させたときの状態を図１２（ｂ）に示す。
【００６８】
キャレット位置１２０３を始点側の初期位置とし、キャレット位置１２０４を終点側の初期位置とする。キャレット位置１２０３からキャレット位置１２０１に向けて選択範囲を広げたときの状態を図１２（ｃ）に示す。
範囲１２０６の終点はキャレット位置１２０３に固定する。キャレット位置１２０３からキャレット位置１２０１に近づけるように、範囲１２０６の始点を移動させる。範囲１２０６の始点がキャレット位置１２０１に到達するか、キャレット位置１２０１に到達する前であっても始点側の指がタッチパネルから離されて、始点側の入力座標の解除が受け付けられると、終点側に向けた選択範囲の変更が開始される。図１２（ｄ）は、範囲１２０６の始点がキャレット位置１２０１に到達し、始点側の入力座標の解除が受け付けられ、終点側に向けた選択範囲の変更が開始される直前の状態を示す。選択する範囲の終点側への変更も同様の処理であるため説明を省略する。
【００６９】
＜実施形態３＞
タッチ操作による選択範囲の始点や終点の入力が受け付けられると、入力された位置に近づくようにハイライト表示される範囲が時間に応じて変更される。選択範囲が決定しないうちに、最初に入力を受け付けた始点や終点の位置をタッチ操作で移動させた場合におけるタッチパネルの表示状態を示したのが図１３であり、その時の処理を図１４に示す処理フローに従って説明する。
【００７０】
図１３（ａ）はタッチパネルに表示された文字列に対して、タッチ操作で選択範囲の始点を指定した状態を示している。ハイライト表示されている範囲１３０１が既に指１３０２で指定した始点付近まで到達しているが、指１３０２がタッチパネルから離れていないため、選択範囲は決定してはいない。このとき、指１３０２がタッチパネルの一部を覆っているので、操作者は文字列のどこまでがハイライト表示されているのかが細部までは見えず、文字列のどこまでがハイライト表示されているのかを正確に把握できない場合がある。
【００７１】
そこで図１３（ｂ）に示したように、指１３０２をタッチパネルに接触させたまま最初に指定した位置からスライドさせて、ハイライト表示されている範囲の端を目視可能とし、ハイライト表示されている範囲の端を確認する。このとき、選択範囲の始点の入力は解除されないまま、始点の位置を変更することになる。スライドさせる方向はどの方向でもよいが、本実施例では図１３（ａ）の状態に至るまでに範囲１３０１が広がってきた方向と同じ向きに指１３０２をスライドさせている。
【００７２】
図１４において図３と重複している処理については同じ番号を付しており、その処理については説明を省略する。Ｓ３０５で前記初期位置と前記目標位置が決定した後は、Ｓ３０９でタッチ操作による入力の解除が確認されるまで、入力を受け付けた座標（目標位置の座標）に変更があるかを判別する（Ｓ１４０１）。入力を受け付けた座標（目標位置の座標）に変更がなければＳ３０６に処理を移す。
【００７３】
図１３（ｂ）に示すようにタッチ操作による始点や終点の座標に変更があれば、その時点でハイライト表示されている範囲の始点と終点のキャレット位置を保持する（Ｓ１４０２）。所定の時間内に、タッチ操作で受け付けられた座標に変更がある場合は、入力操作が停止していないと判断し、他の処理を行わない（Ｓ１４０３）。所定の時間内に、タッチ操作で受け付けられた座標に変更がなければ処理をＳ３０５に移し、そのときの入力座標に基づいて前記初期位置と前記目標位置が決定される。
【００７４】
図１３（ｃ）において、指１３０２のスライド動作を停止した位置によって決定される初期位置のキャレット位置１３０３と目標位置のキャレット位置１３０４に基づいて、範囲１３０５の変更を開始する。
そして、図１３（ｄ）に示すように、選択したいキャレット位置に範囲１３０５の始点が到達したときにタッチ操作による入力の解除を受け付けると、範囲１３０５の変更を停止させ、範囲１３０１と範囲１３０５の和集合を選択範囲に決定する。
【００７５】
本実施形態によれば、ユーザは、範囲の変更を停止させたいキャレット位置がユーザ自身の指などによって隠されていない状態で、つまり範囲の変更を停止させたいキャレット位置を直接見ながら、範囲の変更を停止させることができる。
【００７６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７７】
１００  表示装置全体
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  描画処理部
１０５  表示部
１０６  入力部
１０７  システムバス
【図１】
0006463209.tif 000002
【図２】
0006463209.tif 000003
【図３】
0006463209.tif 000004
【図４】
0006463209.tif 000005
【図５】
0006463209.tif 000006
【図６】
0006463209.tif 000007
【図７】
0006463209.tif 000008
【図８】
0006463209.tif 000009
【図９】
0006463209.tif 000010
【図１０】
0006463209.tif 000011
【図１１】
0006463209.tif 000012
【図１２】
0006463209.tif 000013
【図１３】
0006463209.tif 000014
【図１４】
0006463209.tif 000015