以下に、本願にかかる情報処理装置、情報表示プログラムおよび情報表示方法を実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願にかかる情報処理装置、情報表示プログラムおよび情報表示方法が限定されるものではない。
〔1.範囲選択処理〕
図1を用いて、実施形態にかかる範囲選択処理について説明する。図1は、実施形態にかかる範囲選択処理の一例を示す図である。実施形態にかかる範囲選択処理は、図1に示す情報処理装置100によって行われる。情報処理装置100は、例えば、タブレット型端末であり、液晶ディスプレイ等の表示部130を有する。
かかる情報処理装置100は、タッチパネルが採用されており、表示部130上を指等でタッチされることにより各種操作を受け付ける。情報処理装置100は、表示部130上を指等でなぞる移動操作(スライド操作、スワイプ操作等と呼ばれる)を受け付けた場合に、表示部130内のテキスト等を表示する表示領域AR1の表示位置を移動させるとともに、かかる移動に応じて2つのカーソルを制御することでテキストを選択可能する。この点について、図1を用いて説明する。
図1(a)に示すように、情報処理装置100は、テキストを編集可能なアプリケーション等(ここでは、メモ帳アプリとする)を起動している状態であるものとする。このとき、情報処理装置100は、表示部130内の表示領域AR1内にテキストを表示するとともに、文字が入力される位置を示すカーソルC11を表示する。なお、本実施形態では、テキストは、メモ帳アプリによって表示されるものとするが、この例に限らず、メールソフト、文字入力ソフト、ウェブページ等によって表示されてもよい。また、本実施形態では、表示領域AR1に表示される表示対象は、文字(テキスト)であるものとするが、表示対象は文字以外であってもよい。例えば、表示対象は、絵文字や写真等であってもよい。
また、本実施形態では、x軸およびy軸から成る座標系を表示部130における座標系とする。また、X軸およびY軸から成る座標系を表示領域AR1における座標系とする。すなわち、図1(a)では、表示部130内におけるカーソルC11の位置は、位置(x1、y2)であり、表示領域AR1内におけるカーソルC11の位置は、位置(X1、Y2)である例を示している。
ここで、ユーザは、テキスト3行目の「Y」からテキスト5行目の「P」までの文字を選択したいとする。このため、ユーザは、表示部130に対して、所定の操作を与えることで、表示領域に含まれる文字を選択するための選択モードに切り替えさせる。本実施形態では、情報処理装置100を選択モードに切り替えさせる切替操作を、表示部130上の任意の箇所でのダブルタップであるものとする。
図1(a)に示すように、例えば、ユーザは、カーソルC11がテキスト3行目の「X」と「Y」の間に位置する状態で、任意の位置P01をダブルタップしたとする。
情報処理装置100は、選択モードに切り替えるための切替操作としてダブルタップを検出すると、図1(b)に示すように、選択モードとして、カーソルC11と同位置にカーソルC11とは異なるカーソルC12を表示する。この場合、カーソルC11と同位置とは、表示部130内におけるカーソルC11の位置(x1、y2)および表示領域AR1内におけるカーソルC11の位置(X1、Y2)の双方と同位置であることを示す。このため、ダブルタップにより選択モードに切り替えられた時点で、ユーザには、2つのカーソルが重なっているように見える。
図1(c)に示すように、このような状態において、情報処理装置100は、表示部130に対する任意の位置P02から位置P03までを指等でなぞる移動操作を検出したものとする。かかる場合に、情報処理装置100は、図1(d)に示すように、表示部130内における位置(x1、y2)にカーソルC12を維持し、かつ、表示領域AR1内における位置(X1、Y2)にカーソルC11を維持した状態で、表示領域AR1の表示位置を移動操作に応じて移動させる。
このため、表示部130におけるカーソルC12の位置は、図1(c)と図1(d)とで変化せず位置(x1、y2)のままである。一方、表示領域AR1におけるカーソルC12の位置は、図1(c)では、テキスト3行目の「X」と「Y」の間の位置(X1、Y2)にあるのに対し、図1(d)では、テキスト5行目の「P」の位置(X3、Y4)に移動する。
また、表示領域AR1におけるカーソルC11の位置は、図1(c)と図1(d)とで変化せず、テキスト3行目の「X」と「Y」の間の位置(X1、Y2)のままである。一方、表示部130におけるカーソルC11の位置は、図1(c)では、位置(x1、y2)であるのに対し、図1(d)では、位置(x3、y4)に移動する。
また、情報処理装置100は、上記のようにカーソルC11およびC12の位置を制御しつつ、表示領域AR1の表示位置を移動操作に応じて移動させることにより、カーソルC11およびC12によって挟まれる領域を選択範囲とする。図1(d)では、情報処理装置100は、選択範囲内に表示される文字列の背景色を他の文字列の背景色と異ならせることで、選択範囲をユーザに提示する例を示している。
情報処理装置100による上記のような処理により、ユーザは、カーソルC11を選択範囲の始点として、テキストの任意に位置(例えば、テキスト3行目の「X」と「Y」の間)に固定した状態で、表示領域AR1を移動させることで、選択範囲の終点となるカーソルC12の位置が他の任意の位置(例えば、テキスト5行目の「P」の位置)にくるように調整することができる。
ここで、ユーザは、位置P03まで移動操作したところで、表示部130上から指を離したとする。これにより、情報処理装置100は、移動操作を検出しなくなると、表示領域AR1における位置(X3、Y4)にカーソルC12を維持し、かつ、表示領域AR1における位置(X1、Y2)にカーソルC11を維持した状態で表示領域AR1を移動前の元の表示位置に戻す。
このため、表示部130内におけるカーソルC12の位置は、図1(d)では、位置(x1、y2)であるのに対し、図1(e)では、移動操作に応じて、位置(x5、y6)に移動する。一方、表示領域AR1におけるカーソルC12の位置は、図1(d)と図1(e)とで変化せず位置(X3、Y4)のまま、つまりテキスト5行目の「P」の位置のまま移動しない。
また、表示領域AR1におけるカーソルC11の位置は、図1(d)と図1(e)とで変化せず、テキスト3行目の「X」と「Y」の間の位置(X1、Y2)のままである。一方、図1(d)では、表示部130におけるカーソルC11の位置は、位置(x3、y4)であるのに対し、図1(e)では、表示部130におけるカーソルC11の位置は、移動操作に応じて、位置(x1、y2)に移動している。つまり、表示部130における移動前の位置に戻る。
このように、情報処理装置100は、表示部130におけるカーソルC12の位置を維持し、かつ、表示領域AR1におけるカーソルC11の位置を維持した状態で、表示領域AR1の表示位置を移動操作に応じて移動させる。そして、情報処理装置100は、表示領域AR1の表示位置の移動により、カーソルC11およびC12によって挟まれる領域を選択範囲とする。
例えば、ユーザは、テキストの所定部分を選択する際、文字が指に隠れてしまう等により、選択範囲の終点としたい位置にカーソルを上手く移動させることが困難な場合がある。実施形態にかかる情報処理装置100は、図1(d)で説明したように、表示領域AR1を移動させて、終点となるカーソルC12の位置を調整させることができるため、容易かつ正確に範囲選択させることができる。このため、情報処理装置100では、テキスト選択操作に関するユーザビリティの向上を図ることができる。
〔2.情報処理装置の構成〕
次に、図2を用いて、情報処理装置100について説明する。図2は、実施形態にかかる情報処理装置100の構成例を示す図である。図2に示す情報処理装置100は、タッチパネルを搭載している。情報処理装置100は、例えば、タブレット型端末、PC(Personal Computer)、携帯電話機、PDA(Personal Digital Assistant)等である。情報処理装置100は、図2に示すように、通信部110と、入力部120と、表示部130と、制御部140と、記憶部170とを有する。
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、例えば、他の端末装置やサーバ装置との間で情報の送受信を行う。
入力部120は、例えば、タッチパネル、キーボードおよびマウス等である。表示部130は、各種情報を入力するための表示デバイスである。例えば、表示部130は、液晶ディスプレイ等によって実現される。実施形態にかかる情報処理装置100は、入力部120としてタッチパネルを備えているものとする。このため、入力部120と表示部130の一部とは一体化される。
制御部140は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラム(情報処理プログラムの一例に相当)がRAM(Random Access Memory)等の内部メモリを作業領域として実現される。
制御部140は、図2に示すように、メモ帳アプリ制御部151と、ブラウザ制御部152等の各種アプリケーションを制御するためのアプリ制御部と、表示制御部160とを有する。
メモ帳アプリ制御部151は、所定のテキストを編集可能なアプリケーションを実行する。また、ブラウザ制御部152は、ウェブサイトを表示制御するアプリケーションを実行する。なお、制御部140は、図2に示したメモ帳アプリ制御部151やブラウザ制御部152以外にも、アプリ制御部として、例えば、メール機能を実行制御するアプリ制御部や文書作成機能を実行制御するアプリ制御部等を有してもよい。
表示制御部160は、図1を用いて説明した処理を実現するためのアプリケーションを実行制御する。表示制御部160は、図2に示すように、切替検出部161と、カーソル制御部162と、移動操作検出部163と、表示位置変更部164と、範囲選択部165とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、表示制御部160の内部構造は、図2に示した構造に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
切替検出部161は、入力部120を介して、表示部130に与えられた所定の切替操作を検出し、検出した切替操作に応じて、選択モードに切り替える。具体的には、切替検出部161は、カーソルが表示されていない閲覧モードや、1つのカーソルが表示されており、そのカーソルを移動させることが可能なカーソル移動モード(例えば、図1(a)の状態)等から、表示領域AR1に含まれる表示対象を選択するための選択モードに切り替える切替操作を検出する。また、切替検出部161は、選択モードを解除し、所定のモードへ戻す操作も検出する。
例えば、切替検出部161は、選択モードへの切替操作として、表示部130に対するダブルタップを検出すると、上記各モードから選択モードへ切り替える。そして、切替検出部161により選択モードに切り替えられている場合に、後述する表示位置変更部164は、表示領域AR1を移動させる移動操作に応じて、表示領域AR1の表示位置を移動させるとともに、かかる移動に応じて、カーソルC11およびC12の位置を制御することでテキストを選択可能とさせることができる。
カーソル制御部162は、表示部130に対するユーザ操作や、後述する表示位置変更部164による指示に基づいて、カーソルを表示する各種制御を実行する。具体的には、カーソル制御部162は、切替検出部161によって選択モードに切り替えられた場合に、表示領域AR1内に表示されているカーソル(カーソルC11)とは異なるカーソル(カーソルC12)を表示領域AR1内に表示する。例えば、カーソル制御部162は、カーソルC11と同位置にカーソルC12を表示する。
また、カーソル制御部162は、カーソルC12だけでなくカーソルC11の制御も行ってよい。例えば、カーソル制御部162は、カーソルC11しか表示していないカーソル移動モードである場合に、表示部130に表示されるテキスト上において、表示部130に対するタッチ操作を検出すると、タッチ操作を検出した位置から最も近い文字間にカーソルを表示する。
また、カーソル制御部162は、カーソルが表示されていない閲覧モード中に、切替検出部161によって切替操作が検出された場合には、例えば、切替操作が検出された位置に2つのカーソルを表示してもよい。
移動操作検出部163は、表示部130に表示される表示領域AR1の表示位置を移動させる移動操作を検出する。例えば、移動操作検出部163は、選択モードにおいて、表示部130上を指等でなぞる移動操作がされたら、かかる操作を表示領域AR1を移動させる移動操作として検出する。
表示位置変更部164は、移動操作検出部163によって移動操作が検出された場合に、移動操作に応じて、表示領域AR1の表示位置を移動させる。また、表示位置変更部164は、移動操作検出部163によって検出された移動操作が終了した場合に、表示領域AR1の表示位置を移動前の表示位置に戻す。
具体的には、選択モードにおいて、移動操作検出部163によって移動操作が検出された場合に、表示位置変更部164は、カーソルC11およびC12のうち、一方のカーソルを表示部130内の元の表示位置周辺に維持した状態で、他方のカーソルとともに表示領域AR1の表示位置を移動操作に応じて移動させる。また、表示位置変更部164は、移動操作が終了した場合に、表示領域AR1内に表示されるカーソルとともに表示領域AR1の表示位置を移動前の表示位置に戻す。
例えば、カーソルC11およびC12が、図1(b)に示すように表示されている場合に、移動操作検出部163によって移動操作が検出されたとする。このとき、表示位置変更部164は、表示部130内における位置(x1、y2)にカーソルC12を維持し、かつ、表示領域AR1内における位置(X1、Y2)にカーソルC11を維持した状態で、表示領域AR1の表示位置を移動操作に応じて移動させる。
そして、表示位置変更部164は、移動操作が終了した場合に、表示領域AR1内におけるカーソルC12の位置を維持し、かつ、表示領域AR1内におけるカーソルC11の位置を維持した状態で、表示領域AR1を移動前の元の表示位置に戻す。例えば、図1(d)に示すように表示領域AR1を移動された時点で、移動操作が終了したとすると、表示位置変更部164は、表示領域AR1内における位置(X3、Y4)にカーソルC12を維持し、かつ、表示領域AR1内における位置(X1、Y2)にカーソルC11を維持した状態で、表示領域AR1を移動前の元の表示位置に戻す。
なお、本実施形態では、上述してきたように、移動操作に応じて表示領域AR1を移動させる場合、表示部130内における位置に維持するカーソルを、カーソル制御部162によって新たに表示されたカーソルC12とし、表示領域AR1とともに移動されるカーソルをカーソルC11とする。しかし、この例に限定される必要はなく、例えば、表示部130内における位置に維持するカーソルを、範囲選択モードに切り替えられる前から表示されているカーソルC11とし、表示領域AR1とともに移動されるカーソルを、切替操作検出により新たに表示されるカーソルC12としてもよい。
範囲選択部165は、表示位置変更部164による表示領域AR1の移動に応じて、テキストに対する選択範囲を決定する範囲選択処理を実行する。具体的には、範囲選択部165は、表示位置変更部164により表示領域AR1の表示位置が移動されたることに応じて、カーソルC11とカーソルC12との間の領域を選択範囲とする。そして、範囲選択部165は、選択範囲内に表示される文字列の背景色を他の文字列の背景色と異ならせることで、選択範囲をユーザに提示する。
記憶部170は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、光ディスク等の記憶装置によって実現される。記憶部170は、表示部130に表示されるテキストデータ、画像データ、カーソル位置、範囲選択部165によって選択された選択範囲内の文字列等を記憶している。このような記憶部170は、テキスト記憶部171と、カーソル位置記憶部172と、選択範囲記憶部173とを有する。
テキスト記憶部171は、表示部130に表示されるテキストデータを記憶する。カーソル位置記憶部172は、表示部130に表示されるカーソルの位置を、表示部130および表示領域AR1のそれぞれと対応付けて記憶する。選択範囲記憶部173は、範囲選択部165によって決定される選択範囲を形成するカーソルC11およびC12の位置を記憶するとともに、選択範囲内の文字列を記憶する。
〔3.カーソル位置の説明(1)〕
図3を用いて、表示部130におけるカーソルの位置と表示領域AR1におけるカーソルの位置とについて説明する。図3Aおよび3Bは、実施形態にかかる情報処理装置100が表示する画面の一例を示す図である。
図3Aに示すように、表示領域AR1の全領域を表示部130に表示している場合における表示領域AR1の左上角を原点とし、表示部130の水平方向をx軸、垂直方向をy軸とする座標系を表示座標系と称する。また、図3Bに示すように、表示領域AR1の左上角を原点とし、表示領域AR1の水平方向をX軸、垂直方向をY軸とする座標系を領域座標系と称する。表示座標系は、表示部130に対して移動しない固定座標系であり、領域座標系は、表示領域AR1の移動に応じて、表示部130に対して移動する移動座標系である。表示部130におけるカーソルの位置は、表示座標系で表される位置であり、表示領域AR1におけるカーソルの位置は、領域座標系で表される位置である。
次に、図1を用いて、範囲選択処理におけるカーソルの位置を表示座標系および領域座標系を用いて説明する。図1(b)に示すように、切替操作が検出されたことにより、カーソル制御部162によりカーソルC11およびC12が表示されている場合、移動操作検出部163によって移動操作が検出されるまで、カーソル位置記憶部172は、表示部130内におけるカーソルC11の位置を表示座標系で表される位置(x1、y2)として記憶し、表示領域AR1内におけるカーソルC11の位置を領域座標系で表される位置(X1、Y2)として記憶する。また、移動操作が検出されるまで、カーソル位置記憶部172は、表示部130内におけるカーソルC12の位置を表示座標系で表される位置(x1、y2)として記憶し、表示領域AR1内におけるカーソルC12の位置を領域座標系で表される位置(X1、Y2)として記憶する。
移動操作検出部163によって移動操作が検出されるまでは、表示座標系の原点と領域座標系の原点とが一致するためカーソルC11において位置(x1、y2)と位置(X1、Y2)とは同じ位置となる。また、カーソルC12においても位置(x1、y2)と位置(X1、Y2)とは同じ位置となる。
続いて、図1(c)に示すように、表示位置変更部164が表示領域AR1を位置P02から位置P03まで移動させる場合について説明する。表示位置変更部164は、表示領域AR1を移動させている間、表示領域AR1を移動させる前の表示部130内におけるカーソルC12の位置(x1、y2)に基づき、表示部130にカーソルC12を表示させる。一方、表示位置変更部164は、表示領域AR1を移動させている間、その移動量に応じて、表示部130におけるカーソルC11の位置を連続的に算出し、算出した位置にカーソルC11を随時表示させる。また、カーソル位置記憶部172は、表示領域AR1内におけるカーソルC11の位置として領域座標系で表される位置(X1、Y2)を記憶しておく。
また、表示位置変更部164は、表示領域AR1を位置P03まで移動させた場合に、移動量に応じて、移動後の表示領域AR1内におけるカーソルC12の位置を算出し、カーソル位置記憶部172に記憶させる。図1(d)の例では、カーソル位置記憶部172は、表示領域AR1内におけるカーソルC12の位置として領域座標系で表される位置(X3、Y4)を記憶する。
なお、表示位置変更部164によって表示領域AR1の表示位置が移動されているため、カーソルC12において位置(x1、y2)と位置(X3、Y4)とは異なる位置となる。このため、表示領域AR1内におけるカーソルC12の位置が移動することになる。また、カーソルC11において位置(x3、y4)と位置(X1、Y2)とは異なる位置となる。このため、表示部130内におけるカーソルC11の位置が移動することになる。
次に、図1(e)に示すように、表示位置変更部164が表示領域AR1を移動操作前の表示位置に戻す場合について説明する。この場合、表示位置変更部164は、表示領域AR1内におけるカーソルC12の位置(X3、Y4)を表示部130におけるカーソルC12の位置としてカーソル位置記憶部172に記憶させる。カーソル位置記憶部172は、表示部130内におけるカーソルC12の位置として、表示座標系で表される位置(x5、y6)を記憶する。そして、表示位置変更部164は、表示領域AR1を移動操作前の表示位置に戻すことにより、表示部130内における位置(x5、y6)にカーソルC12を表示する。これにより、表示部130内におけるカーソルC12の位置が位置(x1、y2)から位置(x5、x6)へと移動する。
また、表示位置変更部164は、表示領域AR1におけるカーソルC11の位置(X1、Y2)を表示部130におけるカーソルC11の位置としてカーソル位置記憶部172に記憶させる。カーソル位置記憶部172は、表示部130におけるカーソルC11の位置として、表示座標系で表される位置(x1、y2)を記憶する。そして、表示位置変更部164は、表示領域AR1を移動操作前の表示位置に戻すことにより、表示部130におけるカーソルC11の位置(x1、y2)にカーソルC11を表示する。これにより、表示部130内におけるカーソルC11の位置が位置(x3、y4)から位置(x1、y2)へと移動する。
なお、移動操作の終了は、移動操作検出部163が検出し、表示位置変更部164に通知するようにすればよい。あるいは、移動操作検出部163は、移動操作を検出している間、連続的に移動操作を検出している旨の通知を行い、かかる通知を受信しなくなった場合に、表示位置変更部164が移動操作が終了したと判定してもよい。また、移動操作の開始と終了に関して、ユーザの指が表示部130に触れたときを移動操作の開始とし、ユーザの指が表示部130から離れたときを移動操作の終了としてもよい。あるいは、ユーザからタッチ操作等の所定の操作を受け付けた場合に、移動操作を開始または終了するようにしてもよい。
〔3.カーソル位置の説明(2)〕
さて、これまで、選択モードにおいて、表示領域AR1を移動させる場合、カーソルC12の位置を表示部130内における移動前の元の表示位置に維持した状態で、カーソルC11とともに表示領域AR1の表示位置を移動操作に応じて移動させる例を示した。しかし、表示位置変更部164は、表示領域AR1の表示位置を移動操作に応じて移動させる場合、厳密には、カーソルC12の位置を表示部130内における移動前の元の表示位置に維持するのではなく、移動操作に応じて、わずかに移動させ、移動させた後、移動前の元の表示位置から最も近い文字間にカーソルC12が位置するように表示領域AR1を移動させる。
このようなカーソル位置決め処理について、図1を用いて説明する。例えば、図1(c)に示すように、表示位置変更部164は、表示領域AR1の表示位置を、左上方向への移動操作に応じて移動させる場合、カーソルC12の位置を表示部130内における移動前の元の表示位置である位置(x1、x2)に維持するのではなく、左上方向への移動操作につられるように、左上方向へわずかに移動させる。具体的には、表示位置変更部164は、移動操作に応じて、表示領域AR1とともにカーソルC12を左上方向へわずかに移動させ、移動させた後、元の表示位置である位置(x1、x2)から最も近い文字間にカーソルC12が位置するように表示領域AR1を移動させる。
なお、表示領域AR1とともにカーソルC12どれだけ移動させるかは情報処理装置100に対して、予め所定の値が設定されてよい。例えば、表示位置変更部164は、表示領域AR1の移動方向に対してカーソルC12に隣接して存在する文字の文字サイズの半分を超えるまでは、移動操作に応じて、表示領域AR1とともにカーソルC12を移動させ、文字サイズの半分を超えた時点で、カーソルC12が移動前の元の表示位置から最も近い文字間に位置するように表示領域AR1を移動させるといった処理を行ってよい。
以上により、本実施形態では、例えば、表示領域AR1を移動させる際に、表示部130におけるカーソルC12(カーソルC11でもよい)の位置を元の表示位置に維持するということは、その位置にカーソルC12の位置を維持するという意味だけでなく、その位置から所定の範囲内あるいはその位置周辺の所定の位置にカーソルC12の位置を維持するという概念を含むものである。
〔4.処理の手順〕
次に、図4を用いて、実施形態にかかる範囲選択処理の手順について説明する。図4は、実施形態にかかる範囲選択処理手順の一例を示すフローチャートである。
図4に示すように、切替検出部161は、例えば、カーソルC11が表示されているカーソル移動モード中に、選択モードに切り替えるための所定の切替操作(例えば、表示部130に表示されるテキスト上でのダブルタップ)を検出したか否かを判定する(ステップS201)。切替検出部161は、切替操作を検出していない場合(ステップS201;No)、切替操作を検出するまで待機する。一方、切替検出部161は、切替操作を検出した場合(ステップS201;Yes)、カーソル移動モードから選択モードに切り替える(ステップS202)。例えば、切替検出部161は、切替操作を検出した場合、選択モードに切り替える処理として、切替操作を検出した旨をカーソル制御部162に通知する。また、切替検出部161は、選択モードとして、表示領域AR1を移動させる移動操作に応じて、表示位置変更部164が各カーソルの位置を制御しつつ、表示領域AR1を移動させることを可能な状態にさせる。
カーソル制御部162は、切替検出部161によって切替操作が検出された場合に、カーソルC11と同位置にカーソルC12をさらに表示する(ステップS203)。
このような状態において、移動操作検出部163は、表示領域AR1を移動させる移動操作を検出したか否かを判定する(ステップS204)。移動操作検出部163は、移動操作を検出していない場合(ステップS204;No)、移動操作を検出するまで待機する。一方、移動操作検出部163は、移動操作を検出した場合(ステップS204;Yes)、表示部130内におけるカーソルC12の移動前の表示位置および表示領域AR1におけるカーソルC11の移動前の表示位置をカーソル位置記憶部172に記憶させる(ステップS205)。なお、かかる処理は、表示位置変更部164によって行われてもよい。また、移動操作検出部163は、移動操作を検出している間は、移動動作を検出している旨を常時、表示位置変更部164に通知する。
表示位置変更部164は、表示部130におけるカーソルC12の移動前の表示位置を維持した状態で、カーソルC11とともに表示領域AR1の表示位置を移動操作に応じて移動させる(ステップS206)。このとき、表示位置変更部164は、移動操作に応じた移動量から表示部130におけるカーソルC11の位置を連続的に算出することで、算出した位置にカーソルC11を表示し、カーソルC12については、表示部130内における移動前の表示位置に表示したままであるが、一方で、移動操作に応じた移動量から表示領域AR1におけるカーソルC12の位置を連続的に算出してゆく。カーソル位置記憶部172は、このようにカーソルC11およびC12について算出された値を記憶する(ステップS207)。
また、範囲選択部165は、ステップS206に示す態様で、表示領域AR1の表示位置が移動されることに応じて、カーソルC11の位置とカーソルC12との間の領域を選択範囲として決定してゆく(ステップS208)。また、範囲選択部165は、選択範囲内に表示される文字列の背景色を他の文字列の背景色と異ならせることで、選択範囲を強調表示する。
移動操作検出部163は、移動操作が終了したか否かを判定する(ステップS209)。移動操作検出部163は、移動操作が終了していない場合(ステップS209;No)、ステップS206に戻る。一方、移動操作が終了した場合(ステップS209;Yes)、表示位置変更部164は、表示領域AR1におけるカーソルC12の位置を、対応する表示部130におけるカーソルC12の位置に変更し、また、表示領域AR1におけるカーソルC11の位置を、対応する表示部130におけるカーソルC11の位置に変更する。そして、表示位置変更部164は、変更後の位置にカーソルC11およびC12が表示されるよう表示領域AR1の表示位置を移動操作前の表示位置に戻す(ステップS210)。なお、範囲選択部165は、表示領域AR1の表示位置が移動操作前の表示位置に戻された場合においても、カーソルC11の位置とカーソルC12の位置との間の領域を選択したままとする。
〔5.変形例〕
上記実施形態にかかる情報処理装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、情報処理装置100の他の実施形態について説明する。
〔5−1.範囲選択処理(1)〕
上記実施形態では、情報処理装置100のカーソル制御部162が、選択モードへの切替操作が検出された場合に、切替操作が検出された検出位置に関わらず、表示領域AR1内に表示されているカーソルC11と同位置にカーソルC12をさらに表示する例を示した。しかし、カーソル制御部162は、切替操作が検出された場合に、切替操作が検出された位置である検出位置にカーソルC12を表示してもよい。そして、表示位置変更部164は、表示領域AR1を移動させる移動操作が検出された場合に、切替操作が検出された検出位置であって、表示部130内における検出位置にカーソルC12を維持した状態で、カーソルC11とともに表示領域AR1の表示位置を移動操作に応じて移動させる。この点について、図5を用いて説明する。
図5は、変形例にかかる範囲選択処理の処理の一例を示す図である。図5(a)に示すように、テキスト3行目の「X」と「Y」の間にカーソルC11が表示されているとする。このとき、表示部130内におけるカーソルC11の位置は、位置(x1、y2)であり、表示領域AR1内におけるカーソルC11の位置は、位置(X1、Y2)であるものとする。
ここで、ユーザは、テキスト5行目の「C」と「D」の間の位置に、選択モードに切り替えるための切替操作として、ダブルタップしたとする。切替操作検出部161は、ダブルタップを検出すると、選択モードに切り替えるとともに、ダブルタップを検出した検出位置P04をカーソル制御部162に通知する。図5(a)に示すように、かかる検出位置P04の表示部130内における位置を位置(x7、y8)、表示領域AR1内における位置を位置(x7、y8)とすると、例えば、切替操作検出部161は、検出位置P04に関する情報として、表示部130内における位置(x7、y8)、表示領域AR1内における位置(x7、y8)の両方をカーソル制御部162に通知する。
カーソル制御部162は、検出位置を受け付けると、表示部130内における位置(x7、y8)にカーソルC12を表示する。なお、この時点では、移動操作が加えられていないため、表示座標系の原点と領域座標系の原点とが一致する。このため位置(x7、y8)と位置(X7、Y8)とは同じ位置となる。よって、カーソル制御部162は、検出位置を受け付けると、表示領域AR1内における位置(x7、y8)にカーソルC12を表示してもよい。
また、このとき、範囲選択部165は、カーソルC11とカーソルC12によってはさまれる領域を選択範囲として決定するとともに、選択範囲内に表示される文字列の背景色を他の文字列の背景色と異ならせることで、選択範囲を強調表示する。
また、このような状態において、移動操作が検出されると、表示位置変更部164は、表示部130内における位置(x7、y8)にカーソルC12を維持し、表示領域AR1内における位置(X1、Y2)にカーソルC11を維持した状態で、表示領域AR1の表示位置を移動動作に応じて移動させる。
このように、情報処理装置100は、切替操作が検出された場合に、切替操作が検出された位置である検出位置に、表示領域AR1内に表示されているカーソル(カーソルC11)とは異なるカーソル(カーソルC12)を表示領域AR1内に表示する。
例えば、カーソルC12がカーソルC11と同位置に表示されると、これら2つのカーソルが完全に重なるため、ユーザにとっては、見た目上変化が起こっていないように感じられる場合がある。つまり、カーソルが2つになったことが認識しづらいために、範囲選択モードに切り替わっているか否かが認識しづらい場合がある。ここで、上記のような処理により、情報処理装置100は、ユーザが触れた位置に2つ目のカーソルC12を表示することができるため、ユーザに対し、範囲選択モードに切り替わっていることを容易に認識させることができる。また、情報処理装置100は、ユーザの意図する箇所にカーソルC12を表示することができるため、ユーザビリティを向上させることができる。
〔5−2.範囲選択処理(2)〕
また、カーソル制御部162は、表示領域AR1内に表示されるカーソルとは異なるカーソルを表示させた後に、表示領域AR1内に表示される2つのカーソルのうちいずれか一方を、表示領域AR1内においてユーザに指定された位置である指定位置に移動させてもよい。そして、表示制御部164は、表示領域AR1を移動させる移動操作が検出された場合に、ユーザに指定された位置である指定位置であって、表示部130内における指定位置または当該指定位置周辺の所定の位置に、移動させたカーソルを維持した状態で、もう一方のカーソルとともに表示領域AR1の表示位置を移動操作に応じて移動させる。この点について、図6を用いて説明する。
図6は、変形例にかかる範囲選択処理の処理の一例を示す図である。図6(a)は、カーソル制御部162が、選択モードへの切替操作が検出されたことにより、カーソルC11と同位置にカーソルC12を表示した状態を示す。なお、変形例5−1で説明したように、カーソル制御部162は、切替操作が検出された検出位置にカーソルC12を表示していてもよい。
ここで、ユーザは、テキスト5行目の「G」と「H」の間の位置に触れることにより(例えば、シングルタップ操作)、かかる位置を指定したとする。これにより、カーソル制御部162は、ユーザに指定された位置である指定位置P05の位置を特定する。図6(a)は、カーソル制御部162が、指定位置P05として、表示部130内における位置(x9、y10)および表示領域AR1における位置(X9、Y10)を特定したことを示す。
そして、カーソル制御部162は、特定した指定位置P05として、例えば、表示部130内における位置(x9、y10)にカーソルC12を移動させる。なお、この時点では、移動操作が加えられていないため、表示座標系の原点と領域座標系の原点とが一致する。このため位置(x9、y10)と位置(X9、Y10)とは同じ位置となる。よって、カーソル制御部162は、特定した指定位置P05として、表示領域AR1における位置(X9、Y10)にカーソルC12を移動させてもよい。なお、カーソル制御部162が、シングルタップされた位置にカーソルC12を移動させる例を示したが、カーソルC11を移動させてもよい。
また、このとき、範囲選択部165は、カーソルC11とカーソルC12によってはさまれる領域を選択範囲として決定するとともに、選択範囲内に表示される文字列の背景色を他の文字列の背景色と異ならせることで、選択範囲を強調表示する。
また、このような状態において、移動操作が検出されると、表示位置変更部164は、表示部130内における位置(x9、y10)にカーソルC12を維持し、表示領域AR1内における位置(X1、Y2)にカーソルC11を維持した状態で、表示領域AR1の表示位置を移動動作に応じて移動させる。
このように、情報処理装置100は、選択モードである場合に、ユーザによって指定された位置にいずれか一方のカーソルを移動させる。このため、情報処理装置100は、ユーザに対し、選択範囲の終点(かかる例では、カーソルC12)を大まかな位置に移動させ、移動させた後、表示領域AR1の表示位置を動かすことで終点の位置を微調整させることができる。このため、情報処理装置100は、ユーザビリティを向上させることができる。
なお、ユーザは、選択モードにおいて、かかる例のように、所定の位置を指定することによりカーソルC12を移動させることで範囲選択したい場合と、表示領域AR1を移動させることにより、カーソルC12を移動させて範囲選択したい場合がある。いずれの場合においても、始めは、表示部130に触れる操作が必要となる。このときの触れる操作が、カーソルC12を移動させたい位置を指定するためのシングルタップ操作なのか、表示領域AR1を移動させるための初期操作なのかを情報処理装置100は区別する必要がある。
情報処理装置100は、このような区別を、例えば、ユーザが表示部130に触れている時間に基づいて行ってもよい。例えば、カーソル制御部162は、表示部130における所定の位置に触れられる操作が所定時間以内であれば、ユーザがその所定の位置にカーソルC12を移動させたいものと判断し、その所定の位置にカーソルC12を移動させる。また、移動操作検出部163は、表示部130における所定の位置に触れられる操作が所定時間以内であれば、かかる操作が表示領域AR1を移動させるための初期操作であると判定する。
また、このような例に限らず、例えば、カーソル制御部162は、選択モードとして、始めにカーソルC11と同位置に表示されたカーソルC12のみ、ユーザに触れられた位置に移動させるようにしてもよい。また、図6(b)に示すように、既に範囲選択された状態で表示領域AR1が移動前の表示位置に戻されている場合には、カーソル制御部162は、位置指定によるカーソルC12の移動を行わず、表示位置変更部164による移動操作に基づく表示領域AR1の移動でのみカーソルC12を移動可能としてもよい。
〔5−3.範囲選択処理(3)〕
図7は、選択モードにおいて、表示領域AR1を移動させる一例を示す図である。上述してきた各実施形態では、表示領域AR1のサイズは、表示部130のサイズと同じである。ここでは、図7に示すように、表示領域AR1の縦サイズが表示部130より長い場ものとする。
そして、移動操作検出部163は、範囲選択モードにおいて、表示領域AR1を移動させる移動操作として、第1の移動操作と第2の移動操作とを区別して検出する。そして、表示位置変更部164は、第1の移動操作が検出された場合には、表示領域AR1を第1の移動操作に応じて移動させ、第1の移動操作が終了すると、表示領域AR1の表示位置を移動前の表示位置に戻すことなく、第1の移動操作が終了した時点での表示位置にとどめる。一方、表示位置変更部164は、第2の移動操作が検出された場合には、表示領域AR1を第2の移動操作に応じて移動させ、第2の移動操作が終了すると、表示領域AR1の表示位置を移動前の表示位置に戻す。この点について、図7を用いて説明する。なお、本実施形態では、第1の移動操作を2本の指(単に2本指と表記する場合がある)を用いた移動操作とし、第2の移動操作を1本の指を用いた移動操作とする。この点について、図7を用いて説明する。
図7は、表示領域AR1の移動態様の一例を示す図である。図7(a)は、選択モードへの切替操作が検出されたことにより、カーソル制御部162がカーソルC11と同位置にカーソルC12を表示している状態を示す。ここで、図7(a)に示すように、ユーザが、表示領域AR1を移動させるために、2本指で表示部130に触れている状態で位置P06から位置P07へのスライド操作を行ったとする。
移動操作検出部163は、表示部130に1本の指が触れているか、2本の指が触れているかを判定する。例えば、移動操作検出部163は、表示部130に触れているのが2本指であると判定した上で、さらに、かかる2本指による表示領域AR1を移動させる移動操作を検出すると、その旨を表示位置変更部164に通知する。図7(a)の例では、移動操作検出部163は、2本指による移動操作が行われた旨を表示位置変更部164に通知する。
これにより、表示位置変更部164は、2本指による移動操作に応じて、図7(a)に示す状態から、図7(b)に示す状態へと表示領域AR1の表示位置を移動させたとする。そして、図7(b)に示す状態へと表示領域AR1の表示位置を移動させたところで、2本指のうち少なくとも何れか一方が表示部130から離される等により、移動操作が終了したことが移動操作検出部163によって検出されたとする。
表示位置変更部164は、2本指による移動操作が終了すると、図7(c)に示すように、表示領域AR1の表示位置を移動前の表示位置に戻すのではなく、表示領域AR1の表示位置を2本指による移動操作に応じて移動させた表示位置にとどめる。つまり、表示位置変更部164は、2本指による移動操作が終了しても表示領域AR1の表示位置を図7(b)に示す状態で維持する。
一方、例えば、移動操作検出部163は、表示部130に触れているのが1本指であると判定した上で、さらに、かかる1本指による表示領域AR1を移動させる移動操作を検出すると、その旨を表示位置変更部164に通知する。
これにより、表示位置変更部164は、表示領域AR1の表示位置を1本指による移動操作に応じて移動させる。例えば、表示位置変更部164は、かかる1本指による移動操作に応じて、図7(a)に示す状態から、図7(b)に示す状態へと表示領域AR1の表示位置を移動させたとする。図7(b)に示す状態へと表示領域AR1の表示位置を移動させたところで、例えば、表示部130から指が離される等により、移動操作が終了したことが移動操作検出部163によって検出されたとすると、表示位置変更部164は、表示領域AR1の表示位置を移動前の表示位置に戻す。つまり、1本指で移動操作が行われた場合の情報処理装置100による処理については、図1等を用いて説明してきたとおりである。
このように、情報処理装置100は、第1の移動操作が終了した場合には、第1の移動操作に応じて移動させた表示領域AR1の表示位置を、移動前の表示位置に戻さず、移動後の表示位置に維持した状態とする。また、情報処理装置100は、第2の移動操作が終了した場合には、第2に移動操作に応じて移動させた表示領域AR1の表示位置を移動前の表示位置に戻す。
例えば、ユーザは、表示領域AR1に表示されている文章を閲覧しながら、テキスト3行目の「Y」からテキスト18行目の「J」までを選択したいとする。この場合、ユーザは、図7(a)に示すカーソルC12の位置に、位置M1が位置するまで、移動操作を複数回繰り返すことが考えられる。情報処理装置100は、2本指による移動操作が行われた場合には、表示領域の表示位置を移動前の表示位置に戻すことなく、かかる移動操作による移動後の表示位置にとどめることができるため、複数回の移動操作を要するような広範囲なテキスト選択にも対応することができる。
すなわち、情報処理装置100は、ユーザに対し、移動操作を使い分けさせることで、選択範囲を自在に設定させることができるとともに、選択モード中であっても、表示領域を移動前の表示位置に戻すことなく、自由にテキストを閲覧させることができる。
〔5−4.カーソルの位置設定〕
また、表示位置変更部164は、カーソルの位置が表示領域AR1内に含まれる文字における所定の位置に位置するように、表示領域AR1を移動操作に応じて移動させる。具体的には、表示位置変更部164は、移動操作に応じた表示領域AR1の移動量が所定値より大きい場合には、表示部130内の元の表示位置周辺であって、表示領域AR1内の形態素の間にカーソルが位置するように、表示領域AR1を移動させる。また、表示位置変更部164は、移動操作に応じた表示領域AR1の移動量が所定値より小さい場合には、表示部130内の元の表示位置周辺であって、表示領域AR1内の各文字間にカーソルが位置するように、表示領域AR1を移動させる。この点について、図8を用いて説明する。
図8Aおよび8Bは、表示領域AR1の移動に応じたカーソルの位置を説明する図である。図8Aおよび8Bにおいて、同一アルファベットの集合(例えば、「AAA」、「BBB」等)を一つの形態素とする。図8Aの(a)では、カーソルC11がテキスト2行目における1番目「B」と2番目「B」との間に位置し、カーソルC12がテキスト2行目の「C」と「D」との間に位置している例を示す。そして、表示部130内におけるカーソルC12の位置を位置P12aとする。
このような状態において、図8Aの(b)に示すように、ユーザが表示領域AR1の表示位置を左方向に移動させる移動操作を行ったとする。表示位置変更部164は、移動操作検出部163により、かかる移動操作が検出されることにより、表示部130内における位置P12aにカーソルC12を維持した状態で、カーソルC11とともに表示領域AR1の表示位置を移動操作に応じて移動させる。
表示位置変更部164は、表示領域AR1の表示位置を移動させるとともに、表示領域AR1の移動量を連続的に算出し、算出する度に、算出した値が所定値より大きいか小さいかを判定する。なお、移動量とは、例えば、単位時間当たりの表示領域AR1の移動量、すなわち、表示領域AR1の移動速度であるものとする。
図8Aの(b)に示すように、表示位置変更部164は、表示領域AR1の移動量として、「F1 (pixel/min)」を算出するとともに、算出した「F1 (pixel/min)」が所定値より大きいと判定したとする。ここで、「3.カーソル位置の説明(2)」で説明したように、表示位置変更部164は、厳密的には、表示部130内における位置P12aにカーソルC12を維持するのではなく、図8Aの(b)に示すように、表示領域AR1の左方向への移動に応じて、表示領域AR1とともにカーソルC12を表示部130内における位置P12bまで移動させる。このときカーソルC12を移動させる距離(位置P12aと位置P12b間の距離)は、予め決められた所定の値あるいは文字サイズの半分に相当する距離であってよい。
そして、表示位置変更部164は、カーソルC12を位置P12bまで移動させた後、再び、位置P12aに戻す。このとき、表示位置変更部164は、図8Aの(c)に示すように、表示領域AR1の移動量「F1 (pixel/min)」が所定値より大きいと判定したことにより、カーソルC12を位置P12aに戻すとともに、カーソルC12が、形態素「DDD」と、かかる形態素「DDD」に連続する形態素「AAA」との間に位置するように表示領域AR1を移動させる。
図8Aでは、表示領域AR1の移動量が所定値より大きい場合での、表示位置変更部164による処理について説明した。次に、図8Bを用いて、表示領域AR1の移動量が所定値より小さい場合での、表示位置変更部164による処理について説明する。
図8Bの(a)では、カーソルC11がテキスト2行目における1番目「B」と2番目「B」との間に位置し、カーソルC12がテキスト2行目の「C」と「D」との間に位置している例を示す。そして、表示部130内においてカーソルC12は、位置P12aにある。
このような状態において、図8Bの(b)に示すように、ユーザが表示領域AR1の表示位置を左方向に移動させる移動操作を行ったとする。表示位置変更部164は、表示領域AR1の表示位置を移動させるとともに、表示領域AR1の移動量を連続的に算出し、算出する度に、算出した値が所定値より大きいか小さいかを判定する。
図8Bの(b)に示すように、表示位置変更部164は、表示領域AR1の移動量として、「F2 (pixel/min)」を算出するとともに、算出した「F2 (pixel/min)」が所定値より小さいと判定したとする。
表示位置変更部164は、表示部130内における位置P12aにカーソルC12を維持するのではなく、図8Bの(b)に示すように、表示領域AR1の左方向への移動に応じて、表示領域AR1とともにカーソルC12を表示部130内における位置P12bまでわずかに移動させる。
そして、表示位置変更部164は、カーソルC12を位置P12bまで移動させた後、再び、位置P12aに戻す。このとき、表示位置変更部164は、図8Bの(c)に示すように、表示領域AR1の移動量「F2 (pixel/min)」が所定値より小さいと判定したことにより、カーソルC12を位置P12aに戻すとともに、移動前は「C」と「D」との間に位置していたカーソルC12が1番目「D」と2番目「D」との間、つまり、1つの文字と1つの文字との間に位置するように表示領域AR1を移動させる。
このように、情報処理装置100は、移動操作に応じて移動させる表示領域AR1の移動量が所定値より大きい場合には、カーソルC12を表示部130における移動前の表示位置に維持した状態で、表示領域AR1内の形態素間にカーソルC12が位置するように表示領域AR1を移動させる。また、情報処理装置100は、移動操作に応じて移動させる表示領域AR1の移動量が所定値より小さい場合には、カーソルC12を表示部130における移動前の表示位置に維持した状態で、表示領域AR1内の各文字間にかかるカーソルC12が位置するように表示領域AR1を移動させる。
例えば、ユーザは、テキストを編集したい場合、単語や形態素単位で編集したい場合がある。情報処理装置100は、表示領域AR1内の形態素毎にカーソルが位置するように、表示領域AR1を移動させることができるため、テキスト編集に対するユーザの満足度を高めることができる。また、例えば、ユーザは、テキストを編集したい場合、1文ずつ細かく編集したり、任意の文字列単位で編集したい場合がある。情報処理装置100は、表示領域AR1内の文字毎にカーソルが位置するように、表示領域AR1を移動させることができるため、テキスト編集に対するユーザの満足度を高めることができる。
〔5−5.強調表示〕
また、表示位置変更部164は、表示領域AR1の表示位置を移動操作に応じて移動させる場合に、表示領域AR1内のカーソルのうちいずれか一方のカーソル周辺を強調表示する。この点について、図9を用いて説明する。
図9は、カーソル周辺を強調表示する一例を示す図である。図9に示すように、位置P02から位置P03へ表示領域AR1を移動させる移動操作に応じて、表示位置変更部164は、表示部130内における位置(x1、y2)にカーソルC12を維持し、かつ、表示領域AR1内における位置(X1、Y2)にカーソルC11を維持した状態で、表示領域AR1の表示位置を移動させる。
カーソルC11は、常に、表示領域AR1内における位置(X1、Y2)に維持されるため、ユーザは、範囲選択する場合、カーソルC11を注視する必要はない。一方、カーソルC12については、表示部130内における位置(x1、y2)に維持されるが、表示領域AR1内における位置は、表示領域AR1の移動とともに変化する。このため、ユーザは、カーソルC12に注目し、カーソルC12が任意の位置に移動するように、移動操作を行うことで選択範囲を決める。
このような状況を踏まえて、表示位置変更部164は、図9に示すように、表示領域AR1に対する移動操作が検出されている間、カーソルC12の周辺領域S1が強調されるよう、周辺領域S1を除く表示部130内の輝度を下げる、あるいは、周辺領域S1に対する周辺領域S1を除く表示部130のコントラストを下げる。これにより、ユーザは、範囲選択するうえで注目する必要があるカーソルC12を見失うことがなくなる。
なお、図示しないが、表示位置変更部164は、表示領域AR1に対する移動操作が検出されている間、カーソルC12の周辺領域S1内に含まれる文字やカーソルC12を拡大表示してもよいし、カーソルC12上に矢印等を表示することにより、カーソルC12の位置を明確化させてもよい。
〔5−6.カーソル移動モード〕
上述してきた実施形態では、選択モードに切り替えるための切替操作が検出された場合に、カーソル制御部162が、表示領域AR1内に表示されているカーソルC11とは異なるカーソルC12をさらに表示する例を示した。以下では、選択モードに切り替える前に、範囲選択における始点となるカーソルC11を移動させることにより、カーソルC11の位置を決定する処理について説明する。そして、上述したように、カーソルC11のみ表示されており、その移動を行うモードをカーソル移動モードとする。
図10は、変形例にかかるカーソル移動処理の一例を示す図である。図10(a)に示すように、メモ帳アプリが起動されていることにより、情報処理装置100は、表示領域AR1にテキストを表示するとともに、テキスト上にカーソルC11を表示している。カーソルC11は、テキスト3行目の「Q」と「R」の間に位置している。このとき、表示部130におけるカーソルC11の位置を位置(x11、y12)とする。また、表示領域AR1におけるカーソルC11の位置を位置(X11、Y12)とする。
ここで、ユーザは、テキスト3行目の「X」と「Y」の間にカーソルの位置を定めたいとする。このために、ユーザは、表示部130に対して、所定の操作を与えることで、情報処理装置100をカーソル移動モードに切り替えさせる。言い換えると、情報処理装置100は、表示部130に対する所定の操作を受け付けると、表示領域AR1を移動させることで、カーソルC11を移動させるカーソル移動モードへと切り替える。本実施形態では、カーソル移動モードへと切り替える所定の操作を、表示部130に対する長押し操作とする。
このような状態において、情報処理装置100は、表示部130に対する任意の位置P08から位置P09までを指等でなぞる移動操作を検出したものとする。かかる場合に、情報処理装置100は、図10(b)に示すように、表示部130における位置(x11、y12)にカーソルC11を維持した状態で、表示領域AR1の表示位置を移動操作に応じて移動させる。
表示部130における位置(x11、y12)にカーソルC11を維持した状態で、表示領域AR1の表示位置を移動させるため、表示部130におけるカーソルC11の位置は、図10(a)と(b)とで変化せず位置(x11、y12)のままである。一方、図10(a)では、表示領域AR1におけるカーソルC11の位置は、テキスト3行目の「め」と「も」の間の位置(X11、Y12)であるのに対し、図10(b)では、表示領域AR1におけるカーソルC11の位置は、移動操作に応じて、テキスト3行目の「X」と「Y」の間の位置(X13、Y14)に移動している。
そして、ユーザは、位置P09まで移動操作したところで、表示部130上から指を離したとする。これにより、情報処理装置100は、移動操作を検出しなくなると、表示領域AR1における位置(X13、Y14)にカーソルC11を維持した状態で、表示領域AR1を移動前の元の表示位置に戻す。
表示領域AR1における位置(X13、Y14)にカーソルC11を維持した状態で、表示領域AR1を移動前の元の表示位置に戻すため、図10(c)に示す表示部130におけるカーソルC11の位置は、図10(b)に示す表示部130における位置(x11、y12)から位置(x13、y14)へと移動操作に応じて移動している。一方、図10(c)に示す表示領域AR1におけるカーソルC11の位置は、図10(b)に示す表示領域AR1における位置(X13、Y14)のまま、つまりテキスト3行目の「X」と「Y」の間の位置のまま移動していない。
このように、情報処理装置100は、表示部130内におけるカーソルC11の位置を維持した状態で、表示領域AR1の表示位置を移動操作に応じて移動させることで、表示領域AR1におけるカーソルC11の位置を移動させることができる。
例えば、ユーザは、テキスト上の任意の位置をタッチすることで、任意の位置にカーソルを移動させることがある。しかし、この場合、文字が指に隠れてしまう等により、カーソルを任意の位置に移動させることが困難な場合がある。情報処理装置100は、このような状況を回避し、容易かつ正確にカーソルを任意の位置に移動させることができる。
例えば、ユーザは、テキストの所定部分を選択する際、文字が指に隠れてしまう等により、選択範囲の始点および終点としたい位置にカーソルを上手く移動させることが困難な場合がある。実施形態にかかる情報処理装置100は、図10(b)で説明したように、表示領域AR1を移動させて、始点となるカーソルC11の位置を調整することができる。また、情報処理装置100は、上述してきたように、表示領域AR1を移動させて、終点となるカーソルC12の位置を調整することができる。これにより、情報処理装置100は、容易かつ正確に範囲選択させることができるため、ユーザビリティが向上させることができる。
以上のような、情報処理装置100によるカーソル移動処理により、まず、ユーザはカーソルC11を任意の位置へ移動させる。このような状態において、範囲選択モードに切り替えるための切替操作が検出された場合に、カーソル制御部162が、表示領域AR1内に表示されているカーソルC11とは異なるカーソルC12をさらに表示することで、上述してきた範囲選択処理が実現されてよい。この場合、図10(c)に示す状態は、図1(a)に示す状態に対応する。
なお、図10を用いて説明したカーソル移動処理にも、上記範囲選択処理で説明した各種処理を適用可能である。具体的には、カーソルC11を移動前の元の表示位置周辺に維持する処理や、シングルタッチされた位置にカーソルC11を移動させる処理や、表示領域AR1の移動量に応じて、カーソルC11が形態素間や各文字間に位置するようにする処理等を適用可能である。
〔5−7.構成〕
上記実施形態では、表示位置変更部164が、表示領域AR1を移動操作に応じて移動させる際に、カーソルC11およびC12の位置を制御する例を示した。例えば、表示位置変更部164が、カーソルC12を表示部130内における元の表示位置周辺に維持した状態で、カーソルC11とともに表示領域AR1の表示位置を移動操作に応じて移動させる例を示した。しかし、このようなカーソルの制御は、表示位置変更部164ではなく、カーソル制御部163によって行われてもよい。この場合、表示位置変更部164は、表示領域AR1の表示位置を移動させる際に、カーソルの表示位置や表示態様をどのようにするかをカーソル制御部162に随時指示する。また、例えば、カーソル制御部162と表示位置変更部164とは、一つの部位として構成されてもよい。
〔5−8.選択対象〕
上記各実施形態では、表示領域AR1に表示される表示対象が、文字(テキスト)でることにより、文字が範囲選択される例を示した。しかし、表示対象は、文字以外、例えば、絵文字や写真等であってもよく、このような文字以外の表示対象が上記範囲選択処理により選択されてもよい。
〔5−9.ハードウェア構成〕
上述してきた実施形態にかかる情報処理装置100は、例えば、図11に示すような構成のコンピュータ1000によって実現される。図11は、情報処理装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、通信網50(ネットワークNに対応)を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを通信網50を介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態にかかる情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部140の機能を実現する。また、HDD1400には、記憶部170内のデータが格納される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網50を介してこれらのプログラムを取得してもよい。
〔6.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔7.効果〕
実施形態にかかる情報処置装置100は、カーソル制御部162と、表示位置変更部164と、範囲選択部165とを有する。カーソル制御部162は、表示部に表示される表示領域AR1に含まれる文字を選択するための選択モードに切り替える切替操作が検出された場合に、表示領域AR1に表示されるカーソルとは異なるカーソルを表示領域AR1に表示させる。表示位置変更部164は、選択モードにおいて、表示領域AR1を移動させる移動操作が検出された場合に、一方のカーソルを表示部における元の表示位置または元の表示位置周辺の所定の位置に維持した状態で、他方のカーソルとともに表示領域AR1の表示位置を移動操作に応じて移動させる。範囲選択部165は、表示位置変更部によって表示領域AR1の表示位置が移動された後におけるカーソル間を選択範囲とする。
これにより、情報配信装置100は、表示領域AR1を移動させて、終点となるカーソルC12の位置を調整することができるため、容易かつ正確に範囲選択させることができる。このため、情報処理装置100のユーザビリティが向上する。
また、実施形態にかかる情報処置装置100において表示位置変更部164は、表示部における第1の位置に一方のカーソルが表示され、かつ、表示領域AR1における第2の位置に他方のカーソルが表示されている状態で、移動操作が検出された場合に、表示部130における第1の位置に一方のカーソルを維持し、かつ、表示領域AR1における第2の位置に他方のカーソルを維持した状態で、表示領域AR1の表示位置を移動操作に応じて移動させる。
これにより、情報配信装置100は、表示領域AR1を移動させて、終点となるカーソルC12の位置を調整することができるため、容易かつ正確に範囲選択させることができる。このため、情報処理装置100のユーザビリティが向上する。
また、実施形態にかかる情報処置装置100においてカーソル制御部162は、切替操作が検出された検出位置に、表示領域AR1に表示されるカーソルとは異なるカーソルを表示する。
これにより、情報処理装置100は、ユーザが触れた位置に終点となるカーソル(カーソルC12)を表示することができるため、ユーザに対し、選択モードに切り替わっていることを容易に認識させることができる。また、情報処理装置100は、ユーザの意図する箇所に終点となるカーソル(カーソルC12)を表示することができるため、ユーザビリティを向上させることができる。
また、カーソル制御部162は、異なるカーソルを表示させた後に、表示領域AR1の所定の位置を指定する操作を検出した場合に、指定された所定の位置に表示領域AR1に表示されるカーソルのうちいずれか一方を移動させる。
これにより、情報処理装置100は、ユーザに対し、選択範囲の終点となるカーソル(カーソルC12)を大まかな位置に移動させ、移動させた後、表示領域AR1の表示位置を動かすことで、終点となるカーソルの位置を微調整させることができる。このため、情報処理装置100は、ユーザビリティを向上させることができる。
また、表示位置変更部164は、移動操作が検出された場合に、カーソル制御部162によって移動されたカーソルを指定された所定の位置または指定された所定の位置周辺の所定の位置に維持した状態で、他方のカーソルとともに表示領域AR1の表示位置を移動操作に応じて移動させる。
これにより、情報処理装置100は、表示領域AR1の表示位置を動かすことで、終点となるカーソルの位置を微調整させることができるため、ユーザビリティを向上させることができる。
また、実施形態にかかる情報処置装置100において移動操作検出部163は、表示部に表示される表示領域AR1を移動させる移動操作を検出する。表示位置変更部164は、移動操作検出部によって移動操作が検出された場合に、表示領域AR1に表示されるカーソルを表示部130における元の表示位置または元の表示位置周辺の所定の位置に維持した状態で、表示領域の表示位置を移動操作に応じて移動させる。
これにより、情報処理装置100は、カーソルを容易かつ正確に移動させることができるため、ユーザビリティを向上させることができる。
また、表示位置変更部164は、移動操作が終了した場合に、表示領域AR1に表示されるカーソルとともに表示領域AR1の表示位置を移動前の表示位置に戻す。
これにより、情報処理装置100は、表示領域AR1を移動されることで、表示部130に表示されなくなったテキストや選択範囲をユーザに再び視認させることができる。
また、移動操作検出部163は、移動操作として、第1の移動操作または第2の移動操作を検出し、表示位置変更部164は、第1の移動操作が終了した場合に、表示領域AR1の表示位置を第1の移動操作に応じて移動させた後の表示位置のままとし、第2の移動操作が終了した場合に、表示領域AR1に表示されるカーソルとともに表示領域AR1の表示位置を移動前の表示位置に戻す。
これにより、情報処理装置100は、選択範囲を自在に設定させることができるとともに、選択モード中でも、自由にテキストを閲覧させることができる。
また、表示位置変更部164は、表示領域AR1に含まれる文字における所定の位置にカーソルが位置するように、表示領域AR1の表示位置を移動操作に応じて移動させる。
これにより、情報処理装置100は、テキスト編集にかかるユーザの利便性を考慮して、カーソルを移動させることができるため、テキスト編集に対するユーザの満足度を高めることができる。
また、表示位置変更部164は、移動操作に応じた表示領域AR1の移動量が所定値より大きい場合には、表示部130内の元の表示位置または元の表示位置周辺の所定の位置であって、表示領域AR1内に含まれる形態素の間にカーソルを維持した状態で、表示領域AR1の表示位置を移動させる。
これにより、情報処理装置100は、テキスト編集に対するユーザの満足度を高めることができる。
また、表示位置変更部164は、移動操作に応じた表示領域AR1の移動量が所定値より小さい場合には、表示部130における元の表示位置または元の表示位置周辺の所定の位置であって、表示領域AR1に含まれる各文字の間にカーソルを維持した状態で、表示領域AR1の表示位置を移動させる。
これにより、情報処理装置100は、テキスト編集に対するユーザの満足度を高めることができる。
また、表示位置変更部164は、表示領域AR1の表示位置を移動操作に応じて移動させる場合に、表示部130における元の表示位置または元の表示位置周辺の所定の位置に維持させるカーソル周辺を強調表示する。
これにより、情報処理装置100は、範囲選択において、終点となるカーソルをユーザが見失うことを防止することができる。
また、表示位置変更部164は、表示部130における元の表示位置または元の表示位置周辺の所定の位置に維持させるカーソル周辺の文字を拡大することでカーソル周辺を強調表示する。
これにより、情報処理装置100は、範囲選択において、終点となるカーソルをユーザが見失うことを防止することができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、表示位置変更部は、表示位置変更手段や表示位置変更回路に読み替えることができる。