以下、図面を参照して本発明の実施形態を説明する。
図1は、本発明実施形態の携帯端末のデータ表示システムにおけるWEBサーバ200と携帯端末100の構成の一例を示したシステム構成図である。
図1に示すように、本実施形態のシステムでは、携帯端末100はWEBサーバ上のデータを表示閲覧するための装置である。携帯端末100は、持ち運び可能な情報処理端末を想定していて、公衆回線300、またはインターネット回線400を介してWEBサーバ200にアクセス可能とする。
携帯端末100へ、WEBサーバ200に対して情報の閲覧要求が行われると、WEBサーバ200に記憶されているデータから、要求されたデータを携帯端末100へ返す。
なお、今回の発明における範囲選択の動作は、携帯端末100側で行われることとする。
前記WEBサーバから、データを表示閲覧する構成は、あくまで1例であって、データは例えば、受信したメール、ユーザが入力した文字列、他の情報処理装置と接続して取得したデータ等、いずれも携帯端末100の表示装置に表示されているデータであれば良い。
図2は、本発明の実施形態における携帯端末100とWEBサーバ200のハードウェア構成を示す図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)205は、キーボード209や不図示のマウス等のポインティングデバイスからの入力を制御する。
ただし、携帯端末への入力の制御は、ソフトキーボードや、画面に直に接触することによって行う。
ビデオコントローラ(VC)206は、CRTディスプレイ(CRT)210等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
また、携帯端末の場合、インターネット通信以外にも、公衆回線を用いて電話としての通信が可能であっても良い。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するためのプログラムは外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。
次に、図3を用いて、本発明にける携帯端末の機能構成図の一例について説明する。
携帯端末100は、動作検知部101、動作検知条件記憶部102、カーソル速度記憶部103、複数文字選択条件記憶部104、カーソル移動方向記憶部105、動作検知条件取得部106、カーソル速度取得部107、複数文字選択条件取得部108、カーソル移動方向取得部109、カーソル位置移動部110、文字列範囲選択開始位置決定部111、文字列範囲選択部112、文字列編集部113、文字列反転部114、文字列範囲選択解除部115からなる。
動作検知部101は、外部から与えられた動作によって携帯端末自身がどのように影響を受けたのか、つまり、携帯端末自身の動作を、ジャイロセンサ、または、加速度センサ本体が検知する検知部である。
動作検知条件記憶部102、は、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作によって、カーソルの動作を有効になるための条件を記憶しておく記憶部である。
カーソル速度記憶部103は、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作の大きさ毎に紐づくカーソル移動の速度を記憶しておく記憶部である。
複数文字選択条件記憶部104は、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作により、カーソルが複数の文字列移動を可能とするための条件を記憶しておく記憶部である。
カーソル移動方向記憶部105は、携帯端末100が動作検知部101により検知した携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作が加えられた其々の方向に紐づくカーソルの移動方向を記憶しておく記憶部である。
動作検知条件取得部106は、動作検知条件記憶部102に記憶されている携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作によって、カーソルの動作が有効になるための条件を取得する取得部である。
カーソル速度取得部107は、カーソル速度記憶部103に記憶されている、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作の大きさ毎に紐づくカーソル移動の速度を取得する取得部である。
複数文字選択条件取得部108は、複数文字選択条件記憶部104に記憶されている、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作により、複数の文字列選択を可能とするための条件を取得する取得部である。
カーソル移動方向取得部109は、カーソル移動方向記憶部105に記憶されている携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作が加えられた其々の方向に紐づくカーソル移動方向を取得する取得部である。
カーソル位置移動部110は、携帯端末100が動作検知部101により検知した、携帯端末100のジャインロセンサ、または加速度センサ本体へ加えられた動作の方向と同方向に連動して、携帯端末100に表示される文字列上でのカーソル位置を移動させるカーソル位置移動部である。
文字列範囲選択開始位置決定部111は、カーソル位置移動部110により、文字列の範囲選択の開始位置を決定する、文字列範囲選択開始位置決定部である。
文字列範囲選択部112は、カーソル位置移動部110により、文字列の範囲選択の終了位置を選択することにより、文字列範囲選択開始位置から文字列範囲選択終了位置までの範囲を選択状態とする文字列範囲選択部である。
文字列編集部113は、携帯端末100の表示画面上の文字列内で範囲選択された文字列を、コピー、切り取り、貼り付け、を行うことにより文字列編集を行うことを可能とする文字列編集部である。
文字列反転部114は、文字列範囲選択部112が選択した文字列が選択状態であることを識別しやすくするために文字色と背景色を反転状態にして表示する文字列反転部である。すなわち、範囲選択された文字列は、更に、選択状態であることを識別するために文字色と背景色を反転状態にして表示する。
文字列範囲選択解除部115は、文字列範囲選択部112が選択した文字列の文字列選択を解除することを可能とする携帯端末100の1つの文字編集機能であって、更に、文字列選択解除は、文字列の一部が範囲選択されている状態である場合に、範囲選択されている状態の中へカーソルが再度移動することによっても行うことを可能とする、文字列範囲選択解除部である。すなわち、文字列選択解除を行うことを可能とし、文字列の一部が範囲選択されている状態である場合に、範囲選択されている状態の中へカーソルが再度移動することによって文字列選択解除を行う。
<第一の実施例>
続いて、第一の実施形態について説明を行う。本発明の第一の実施例においては、携帯端末のカーソル位置を、携帯端末のジャインロセンサ、または加速度センサ本体が検知する角度に応じて移動させることが出来、文字列の範囲選択に必要となる範囲選択の開始位置と終了位置の決定や、文字列の挿入の位置の決定等を、この方法によって可能とする実施例を説明する。すなわち、携帯端末が検知する動作を、携帯端末に対する傾きを例として説明する。
まず初めに、図4について説明を行う。図4の、ステップS401からステップS411の各ステップは、携帯端末100が外部から動作を受けた場合に、携帯端末100のCPU201が画面上の文字列上で範囲選択を行い、コピーまたは削除の文書編集を実行するメインフローの処理である。なお、本発明においては、携帯端末100のジャイロセンサ、または加速度センサ本体が検知する動作を受けた場合に範囲選択が可能となるのは、その動作に連動して携帯端末に表示がされる文字列上のカーソルが動くことによって、範囲選択を行うことを可能しているためである。
ステップS401は、まず携帯端末100が、携帯端末がその範囲選択を実行するにあたって、検知する各種動作の閾値の初期値設定を動作検知条件記憶部102に対して行う。
なお、ステップS401の各種初期設定処理については、図5を用いて後述する。
再び図4に戻ってステップS402以降の説明を行う。ステップS402で携帯端末100のCPU201は、ステップS401の初期設定処理で設定した図12の、動作検知条件記憶部102に記憶されている、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作によって、カーソルの動作を有効になるための条件、図12の、カーソル速度記憶部103に記憶されている、ジャインロセンサ、または加速度センサ本体が検知する動作の大きさ毎に紐づくカーソル移動の速度、図12の、複数文字選択条件記憶部104に記憶されている、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作により、複数の文字列選択を可能とするための条件、図12の、カーソル移動方向記憶部105に記憶されている、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作が加えられた其々の方向に紐づくカーソルの移動方向、の各設定値を読み込む。
次にステップS403におき、携帯端末100のCPU201は、携帯端末のメニューからカーソル移動開始キーが押下されたことを検知する。図11のカーソル移動開始キー1101は、携帯端末100上でのカーソル移動開始キーの1例を示した図である。
この図11のカーソル移動開始キー1101が押下された時に、動作検知条件記憶部102に記憶されている、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作によって、カーソルの動作を有効になるための条件を満たしている場合、携帯端末100上のCPU201は、表示される文字列上で、カーソルが移動することを検知することが可能となる。すなわち、携帯端末が自身の動きを検知し、表示される文字列上でのカーソル位置を、検知した動作に連動して移動させ、文字列の所定の位置にカーソルを表示させる。
次にステップS404において、携帯端末100のCPU201は、決定される文字列上のカーソルの位置を検知する。なお、ステップS404の処理の詳細については、さらに、図6、図7を用いて説明をする。
続いて、ステップS405では、携帯端末100のCPU201は、携帯端末100のユーザが携帯端末のメニューから範囲選択キーが押下されたことを検知する。範囲選択キーが押下された時点で範囲選択開始位置が決定されたものとする。なお、図11の範囲選択キー1102は、携帯端末100における範囲選択キーの表示の1例を示した図である。
ステップS405で範囲選択が開始された後は、携帯端末100のCPU201は携帯端末100上に表示がされている文字列の中で、携帯端末100のジャイロセンサ、または加速度センサ本体が検知する傾きを検知し、それにともなってカーソルを移動させることによって範囲選択を行い、選択する範囲が決定したら、ステップS406において、範囲選択終了位置となるカーソル位置を決定する。なお、このステップS406の処理については、図8、図9、図10を用いて後述する。
ステップS406までは携帯端末100のCPU201によって携帯端末上に表示している文字列の範囲選択が完了するまでであって、ステップS407以降は、範囲選択した文字列を携帯端末100の中のコピー、削除、貼り付けの機能によって、携帯端末100のCPU201によって文字列編集が行われる処理となる。
すなわち、範囲選択された文字列に対して、携帯端末の表示装置の上で、ユーザにキーを操作させることにより、該文字列のコピー、切り取り、貼り付けの処理を可能とする。
ステップS407では、携帯端末100のCPU201は、携帯端末100のユーザが携帯端末のメニューから図11のコピーキー1103、または切り取りキー1106のいずれかの機能キーが押下されたことを検知する。
ステップS408は、携帯端末100のユーザがコピーキー1103を選択した場合に、携帯端末100のCPU201が選択範囲した文字列のコピーを実行する。
また、ステップS409はユーザが切り取りキー1106を選択した場合に、携帯端末100のCPU201が選択範囲した文字列の切り取りを実行する。
図11の1106は、携帯端末100上での切り取りキーの1例を示した図である。
また、図21の2103は、携帯端末100上の任意の文字列を選択し、コピーした状態の図で、図21の2104は、2103で選択された「345」を削除した結果の図である。
ステップS409の処理の後は、文字列削除のみであるため図4のメインフローの処理を終了する。なお、ステップS408では、携帯端末100のCPU201文字列のコピーが実行されていて、次に貼り付け先を決定することが必要となるため、ステップS4010においてカーソル位置の決定処理が再度行われる。これにより、携帯端末100のCPU201は、ユーザによって決定される文字列上のカーソルの位置を再度検知する。図11の1105は、携帯端末100におけるカーソル位置決定キーの表示の1例を示した図である。
最後のステップS411において、ステップS408で選択コピーされた文字列は、ステップS410で決定されたカーソルの位置において、貼り付け処理が実行される。なお、ステップS410はステップS404と同様の処理である。図11の1103と1104はそれぞれ、携帯端末100におけるコピーキーと貼り付けキーの表示の1例を示した図である。また、図21の2101は、携帯端末100上の任意の文字列を選択し、コピーした状態の図で、図21の2102は、2101で選択、コピーした「345」を、5行目の「5」の後に挿入した結果の図である。
なお、図11の1101、カーソル移動開始キーを押下すると、図11の1102から1106までの範囲選択と文書編集のための機能キーが表示されるものとするが、これはあくまで一例とする。
次に、図4ステップS401の初期設定処理について図5を用いて説明する。まずステップS501において、動作検知条件記憶部102に対しカーソルの動作を有効にするための条件を設定する。ここでは、携帯端末上でカーソルを動かすための最低の角度の設定を行う。図12の1210はその設定例であって、15度という値を設定しているが、これは、水平面と並行な携帯端末の画面の面を0度とし、そこからの傾きの角度が15以上になると、携帯電話が傾きを検知するということになる。逆に、15度未満の場合は、傾きを検知しないということになる。
更に、これは、図12、1210の携帯端末の水平面から傾きを検知する最低限の角度つまり、カーソルが文字上で移動開始可能となる角度は、携帯端末の傾きを与える前である、カーソル移動モードが開始する際の水平面との傾きの角度と、携帯端末に傾きを与えた後の水平面との傾きの角度の差から求められる、相対的な傾きの角度を基準としても良い。なお、水平面とは、重力方向に垂直な面のことを指す。
図12の1250の表を用いて相対角度について説明をする。図12の1250の表は、カーソル移動が開始された時点、つまり、図11、1101のカーソル移動開始キーが押下され、カーソル移動が開始された時、また、図23、2303のカーソル移動モードのメニューが押下されカーソル移動モードが開始された時点、の携帯端末の傾きの相対角度の一例を示した図である。
図12の1251では、携帯端末の横軸を水平面と並行にし、縦軸を水平面に対して角度をつけた状態に、角度がついている方向に対して傾きを与えてカーソル移動を開始させた場合の、傾きを与える前の水平面からの角度と、傾きを与えた後の水平面からの角度と、傾きの前後の角度から導かれる角度の差(相対角度)を示した表である。図12の1252は、携帯端末の縦軸を水平面と並行にし、横軸を水平面に対して角度をつけた状態に、角度がついている方向に対して傾きを与えてカーソル移動を開始させた場合の、傾きを与える前の水平面からの角度と、傾きを与えた後の水平面からの角度と、傾きの前後の角度から導かれる角度の差(相対角度)を示した表である。
図12、1250の1251に示す通り、水平面に対する携帯端末の縦軸の傾き前の角度(傾き前の角度1253)は15度であり、水平面に対する携帯端末の縦軸に傾けた後の角度(傾き後の角度1254)は30度である。傾き後の角度1254から傾き前の角度1253の角度の差分を求めると、相対角度1255は15度になる。また、図12の1252では、相対角度は、同じく15度である。
従がって、カーソル開始移動を開始する時点で携帯端末が水平面と並行に位置づけられていなくても、カーソル開始移動を開始する時点の角度と傾きを与えた後の角度の差より相対的な変化角の角度を求めることによって、図12の1210の携帯端末の水平面から傾きを検知する最低限の角度、つまり、カーソルが文字上で移動開始可能となる角度や、1230のカーソルが動く速度の設定値の基準となる傾きの角度の基準に合致するか否かを判定することとする。
すなわち、前記携帯端末に与えられた前記動作により、前記携帯端末に表示される文字列上でのカーソル位置が動くための条件を記憶する動作検知条件記憶手段を備え、 前記動作検知条件記憶手段に記憶されている前記動作が有効になるための条件を取得し、前記条件の閾値を超えたところで初めて前記文字列上でのカーソル位置が動く。
次にステップS502においては、カーソル速度記憶部103に対し、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する角度の大きさ毎に紐づくカーソル移動の速度の設定を行う。
図12の1220は、前記携帯端末が検知する前記動作の大きさ毎に紐づく前記カーソル位置の移動の速度を記憶する。図12の1221の其々の傾きの角度に対し、1秒間に何文字分進むかカーソル速度(図12の1222)を設定する。
図12の1222では、15度の傾きの時は2文字、20度の傾きの時は20度、25度の傾きの時は、4文字進むというようにし、傾きが大きくなるようにつれてカーソルの進む速さが速くなるようにしている。
すなわち、カーソル位置の移動の速度は、動作の大きさに連動して速くなるなお、斜めの傾きを示した場合は、縦・横とも同じ文字数分斜めの方向にカーソルが動くものとする。
次にステップS503においては、複数文字選択条件記憶部104に対し、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作により、カーソルが複数の文字列移動を可能とするための時間の設定を行う。すなわち、本発明における携帯端末は、携帯端末のカーソル位置が複数の文字列選択を可能とするための、動作の継続時間の閾値を記憶し、動作の継続時間の閾値を変更することにより、動作の一定時間内におけるカーソル位置の移動の単数または複数の文字間の移動を切り替えることを可能とする。
本発明においては、この設定時間以上傾いた場合は、複数の文字列を選択することが出来るが、この設定時間未満の傾きである場合は、1文字分のみの文字列を選択することとしている。このため、本設定を行うこととする。
図12の1230は、携帯端末のカーソル位置が複数の文字列選択を可能とするための、動作の継続時間の閾値を記憶する。例えば、図12の1230では、設定値を1秒としているが、1秒以上図12の1201で設定した角度の傾きが携帯端末100によって検知された場合、カーソルが複数の文字にわたって移動することを可能とする。
このため、複数の文字列を連続して選択することが可能になる。逆に、図12の1210で設定した角度の傾きが、図12の1230で設定した時間未満しか傾かなかった場合は、1文字分だけカーソルが移動することになる。
なお、ステップS502で設定した角度が大きく、一秒間に進む文字の数が複数設定されていたとしても、ステップS503で設定される、カーソルが2文字以上動くために必要とする傾き継続時間に満たない場合、カーソルは1文字分だけ移動するものとする。
すなわち、動作の継続時間の閾値を変更することにより、動作の一定時間内におけるカーソル位置の移動の単数または複数の文字間の移動を切り替えることを可能とする。
次にステップS504においては、カーソル移動方向記憶部105に対し、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作、が加えられた其々の方向に紐づくカーソルの移動方向の角度範囲を設定する。
一例として、図12の1240では携帯端末が傾く範囲の方向を上、下、左、右、右斜め上、右斜め下、左斜め上、左斜め下の8つの方向に分類し(図12の1241)それぞれの傾く方角範囲の角度を設定する(図12の1242)。
すなわち、携帯端末に与えられた動作の方向に紐づくカーソル位置の移動方向を記憶する。
なお、第一の実施例では、携帯端末100が検知する動作を角度としているため上記初期設定を行うことを例として挙げているが、これはあくまで1例である。動作を検知するものが角度以外の場合、携帯端末100が検知するところの所定の動作に関係する初期設定は、それに関連した項目で行うこととする。
次に、図4のステップS403においてカーソル移動キーが押下された後の、ステップS404のカーソル位置決定処理(開始位置指定)について図6と図7を用いて説明する。
図6は、カーソル位置を決定する処理である。
まず、ステップS601では、携帯端末100は、ユーザによって傾きが与えられる。次に、ステップS602において、携帯端末100のCPU201は、ユーザによって与えられた携帯端末100への傾きを検知する。
ステップS602において、傾きを検知した場合は、ステップS603において傾きが継続した時間を計測するためタイマーをスタートさせる。ステップS602において、傾きを検知しなかった場合は、ステップS610のカーソル位置決定キー押下の処理へ移る。
ステップS610において、携帯端末100は、カーソル位置決定キー(図11の1105)が押下されたことを検知し、カーソル位置を決定する。すなわち、文字列を範囲選択する場合の範囲選択開始位置の指定を、移動されたカーソルにより受け付ける。
ステップS604において、携帯端末100が傾きの戻りを検知したか否かを判定する。ステップS604において、携帯端末100が傾きの戻りを検知した場合(ステップS604においてYESの場合)、ステップS611へ処理を進める。
ステップS611において、図7の処理で必要となる、カーソルが1秒間に進む文字数を変数Nへ数値として代入する。ステップS604で傾きの戻りを検知した場合は、図12のカーソルが2文字以上動くために必要とする傾き継続時間設定した閾値の時間1230の閾値を超えず、1文字しか移動させないケースであるため、この変数Nへは1を代入する。また、この変数N自体は、図7の処理の説明で使用する。
ステップS612において、携帯端末100は、カーソル移動処理を行う。なお、このカーソル移動処理については、図7のカーソル移動処理で説明を行う。
ステップS604において、携帯端末100が傾きの戻りを検知しなかった場合(ステップS604においてNOの場合)、ステップS605へ処理を進める。
ステップS605において、携帯端末100は、図12で設定した、カーソルが2文字以上動くために必要とする傾き継続時間の閾値を超えたか否かを判定する。
ステップS605において、カーソルが2文字以上動くために必要とする傾き継続時間の閾値を超えた場合、ステップS606に処理を進め、ステップS605において、カーソルが2文字以上動くために必要とする傾き継続時間の閾値を超えなかった場合、ステップS604の処理に戻り、携帯端末100が傾きの戻りを検知したか否かの判定を再び行う。
ステップS606において、図7の処理で必要となるカーソルが1秒間に進む文字数Xを変数Nへ数値として代入する。この変数Nへは、ステップS602で傾きを検知した際の角度によって決定される、図12の1220で設定されている1秒間にすすむ文字数が代入される。また、このN自体は、図7の処理の説明で使用する。
ステップS607において、携帯端末100は、カーソル移動処理を行う。なお、このカーソル移動処理については、図7のカーソル移動処理で説明を行う。
ステップS608において、携帯端末100はステップS603でスタートされたタイマーを終了させる。
ステップS609において、携帯端末100は、図6のカーソル位置決定処理を終了させるか否かを判定する。
ステップS609において、図6のカーソル位置決定処理を終了させる場合、ステップS610のカーソル位置決定キー押下の処理へ移る。
ステップS609において、図6のカーソル位置決定処理を終了させない場合、再び図6のステップS601からの処理を行う。
ステップS610において、携帯端末100は、カーソル位置決定キー(図11の1105)が押下されたことを検知し、カーソル位置を決定する。
次に図7の処理について説明する。図7は図6のステップS607とステップS612の処理を示した処理の図である。この処理は、携帯端末100が傾きを検知した方向によって、カーソルが1文字ずつ移動する方向を示した処理図である。
ステップS700において、携帯端末100は、携帯端末に動作が与えられた際にカーソルが1秒間に進む文字数(N文字/秒)を図12のカーソル速度(単位 文字数/秒)1222より、取得する。なお、変数Nへは、図6のステップS606やステップS611において、既に進む文字数が数値として代入されていることとする。
ステップS701において、携帯端末100のCPU201は、右横方向への傾きを検知した場合、ステップS702において、S700の速度で文字列の右横へ1文字分カーソルを移動する。図13の1301はカーソルが右横へ1文字移動する前、図13の1302はカーソルが右横へ1文字移動した後の図である。
なお、ステップS701において、携帯端末100のCPU201が、右横方向への傾きを検知しなかったと判定された場合は、後続のステップS703以降の判定処理へ進む。
ステップS703において、携帯端末100のCPU201は、左横方向への傾きを検知した場合、S704において、S700の速度で文字列の左横へ1文字分カーソルを移動する。図13の1303はカーソルが左横へ1文字移動する前、図13の1304はカーソルが左横へ1文字移動した後の図である。
なお、ステップS703において、携帯端末100のCPU201が、左横方向への傾きを検知しなかったと判定された場合は、後続のステップS705以降の判定処理へ進む。
ステップS705において、携帯端末100のCPU201は、上横方向への傾きを検知した場合、ステップS706において、S700の速度で文字列の上へ1文字分カーソルを移動する。図13の1305はカーソルが上へ1文字移動する前、図13の1306はカーソルが上へ1文字移動した後の図である。
なお、ステップS705において、携帯端末100のCPU201が、左横方向への傾きを検知しなかったと判定された場合は、後続のステップS707以降の判定処理へ進む。
ステップS707において、携帯端末100のCPU201は、下横方向への傾きを検知した場合、ステップS708において、S700の速度で文字列の下へ1文字分カーソルを移動する。図13の1307はカーソルが下へ1文字移動する前、図13の1308はカーソルが下へ1文字移動した後の図である。
なお、ステップS707において、携帯端末100のCPU201が、左横方向への傾きを検知しなかったと判定された場合は、後続のステップS709以降の判定処理へ進む。
ステップS709において、携帯端末100のCPU201は、右斜め上方向への傾きを検知した場合、ステップS710において、S700の速度で文字列の右斜め上へ1文字分カーソルを移動する。図14の1401はカーソルが右斜め上へ1文字移動する前、図14の1402はカーソルが右斜め上へ1文字移動した後の図である。
なお、ステップS709において、携帯端末100のCPU201が、左横方向への傾きを検知しなかったと判定された場合は、後続のステップS711以降の判定処理へ進む。
ステップS711において、携帯端末100のCPU201は、右斜め下方向への傾きを検知した場合、ステップS712において、S700の速度で文字列の右斜め下へ1文字分カーソルを移動する。図14の1403はカーソルが右斜め下へ1文字移動する前、図14の1404はカーソルが右斜め下へ1文字移動した後の図である。
なお、ステップS711において、携帯端末100のCPU201が、左横方向への傾きを検知しなかったと判定された場合は、後続のステップS713以降の判定処理へ進む。
ステップS713において、携帯端末100のCPU201は、左斜め上方向への傾きを検知した場合、ステップS714において、S700の速度で文字列の左斜め上へ1文字分カーソルを移動する。図14の1405はカーソルが左斜め上へ1文字移動する前、図14の1406はカーソルが左斜め上へ1文字移動した後の図である。
なお、ステップS713において、携帯端末100のCPU201が、左横方向への傾きを検知しなかったと判定された場合は、後続のステップS715以降の判定処理へ進む。
ステップS715において、携帯端末100のCPU201は、左斜め下方向への傾きを検知した場合、ステップS716において、S700の速度で文字列の左斜め下へ1文字分カーソルを移動する。図14の1407はカーソルが左斜め下へ1文字移動する前、図14の1408はカーソルが左斜め下へ1文字移動した後の図である。なお、この処理は、横書き、縦書きの文字列の場合も同じく動作することとする。
なお、図7のカーソル移動処理は、必ずステップS701〜ステップS715いずれかの判定処理を通ることになる。
次に、図4のステップS405において範囲選択キーが押下された後の、ステップS406の範囲選択処理と範囲選択処理カーソル位置決定処理について図8を用いて説明する。
図8は、カーソル位置を決定する処理である。まず、ステップS801では、携帯端末100は、ユーザによって傾きが与えられる。次に、ステップS802において、携帯端末100のCPU201は、ユーザによって与えられた携帯端末100への傾きを検知する。
ステップS802において、傾きを検知した場合は、ステップS803において傾きが継続した時間を計測するためタイマーをスタートさせる。
ステップS802において、傾きを検知しなかった場合は、傾きを検知するまで、ステップS802の処理を繰り返す。
ステップS804において、携帯端末100が傾きの戻りを検知したか否かを判定する。
ステップS804において、携帯端末100が傾きの戻りを検知した場合(ステップS804においてYESの場合)、ステップS811へ処理を進める。
ステップS811において、図7の処理で必要となるカーソルが1秒間に進む文字数を変数Nへ数値として入れる。ステップS804で傾きの戻りを検知した場合は、図12のカーソルが2文字以上動くために必要とする傾き継続時間設定した閾値の時間1230の閾値を超えず、1文字しか移動させないケースであるため、この変数Nへは1を代入する。また、このN自体は、図7の処理の説明で使用する。
ステップS812において、携帯端末100は、範囲選択処理を行う。なお、このカーソル移動処理については、図7のカーソル移動処理で説明を行う。
ステップS804において、携帯端末100が傾きの戻りを検知しなかった場合(ステップS804においてNOの場合)、ステップS805へ処理を進める。
ステップS805において、携帯端末100は、図12で設定した、カーソルが2文字以上動くために必要とする傾き継続時間の閾値を超えたか否かを判定する。
ステップS805において、カーソルが2文字以上動くために必要とする傾き継続時間の閾値を超えた場合、ステップS806に処理を進め、ステップS805において、カーソルが2文字以上動くために必要とする傾き継続時間の閾値を超えなかった場合、ステップS804の処理に戻り、携帯端末100が傾きの戻りを検知したか否かの判定を再び行う。
ステップS806において、図7の処理で必要となるカーソルが1秒間に進む文字数Nを変数Nへ数値として入れる。このNへ代入するXは、ステップS802で傾きを検知した際の角度によって決定される、図12の1220で設定されている1秒間にすすむ文字数が入る。また、このN自体は、図7の処理の説明で使用する。
ステップS807において、携帯端末100は、範囲選択処理を行う。なお、このカーソル移動処理については、図7のカーソル移動処理で説明を行う。
ステップS808において、携帯端末100はステップS803でスタートされたタイマーを終了させる。
ステップS809において、携帯端末100は、図8の範囲選択と範囲選択終了カーソル位置決定処理を終了させるか否かを判定する。
ステップS809において、図8の範囲選択と範囲選択終了カーソル位置決定処理を終了させる場合、ステップS810のカーソル位置決定キー押下の処理へ移る。
ステップS809において、図8の範囲選択と範囲選択終了カーソル位置決定処理を終了させない場合、再び図8のステップS801からの処理を行う。
ステップS810において、携帯端末100は、カーソル位置決定キー(図11の1105)が押下されたことを検知し、範囲選択と範囲選択終了カーソル位置決定処理を終了させる。すなわち、文字列を範囲選択する場合の範囲選択終了位置の決定を、移動されたカーソルにより受け付ける。
次に図9の処理について説明する。図9は図8のステップS807とステップS812の処理を示した処理の図である。この処理は、携帯端末100が傾きを検知し文字選択がされた方向によって、カーソルが1文字ずつ移動し、移動した方向に従がって文字列が範囲選択される方法を示した処理図である。
すなわち、範囲選択開始位置と範囲選択終了位置の間の範囲を選択状態とする処理を示した図である。
また、文字列の一部が範囲選択されている状態である場合に、範囲選択されている状態の中へカーソルが再度移動することによって文字列選択解除を行う処理を示した図である。
ステップS900において、携帯端末100は、携帯端末に動作が与えられた際にカーソルが1秒間に進む文字数(N文字/秒)を図12のカーソル速度(単位 文字数/秒)1222より、取得する。なお、変数Nへは、図8のステップS806やステップS811において、既に進む文字数が数値として代入されていることとする。
ステップS901では、携帯端末100のCPU201が、文字選択方向と同方向の文字への傾きを検知した場合、ステップS902において、文字選択方向と同方向へステップS900の速度で1文字分文字を選択する。図15の1501は文字選択方向と同方向へ1文字分文字が選択される前の図であり、図15の1502は文字選択方向と同方向へ1文字分文字選択された後の図である。
この図では、3行目の4から4行目の3までが文字選択されていて、3の右横に位置していたカーソルを4の右横に1文字分動かすと、これまでの範囲選択に追加して、3行目の4がさらに、範囲選択される。
なお、図16の1601は、縦書きにおいて、文字選択方向と同方向へ1文字分文字が選択される前の図であり、図16の1602は、縦書きにおいて、文字選択方向と同方向へ1文字分文字選択された後の図である。この図では、2行目の2から7が文字選択の方向であり、7の下に位置していたカーソルを8の下に一文字に動かすと、これまでの2行目の選択済みだった2から7の範囲選択に8が追加されて、2行目の2から8が選択範囲となる。
なお、ステップS901で、携帯端末100のCPU201が、文字選択方向と同方向の文字への傾きを検知しなかった場合、ステップS903以降の処理へすすむ。
ステップS903では、携帯端末100のCPU201が、文字選択方向と逆方向の文字への傾きを検知した場合、ステップS904において、文字選択方向と逆方向へステップS900の速度で1文字分文字選択を解除する。図15の1503は文字選択方向と逆方向へ1文字分文字が選択解除される前、図15の1504は文字選択方向と逆方向へ1文字分文字が選択解除される後の図である。
この図では、3行目の4から4行目の4までが文字選択されていて、4の右横に位置していたカーソルを3の右横に1文字分動かすと、これまでの範囲選択されていた4行目の4が範囲選択解除されて、3行目の4から4行目の3までが選択範囲となる。
なお、図16の1603は、縦書きにおいて、文字選択方向と逆方向へ1文字分文字が選択解除される前の図であり、図16の1604は文字選択方向と逆方向へ1文字分文字が選択解除される後の図である。この図では、2行目の2から7が文字選択の方向であったが、7の下に位置していたカーソルを上の6の下に一文字分動かすと2行目の6が選択範囲解除となる。
なお、ステップS903で、携帯端末100のCPU201が、文字選択方向と同方向の文字への傾きを検知しなかった場合、ステップS905以降の処理へすすむ。
ステップS905では、携帯端末100のCPU201が、文字選択方向と同方向の行への傾きを検知した場合、ステップS906において、文字選択方向と同方向へ、傾きの行方向へステップS900の速度で1文字分カーソル移動し、1行分の文字を選択する。図15の1505は文字選択方向と同方向へ1行分文字が選択される前、図15の1506は文字選択方向と同方向へ1行分文字選択された後の図である。
この図では、3行目の4から4行目の3までが文字選択されていて、4行目の3の右横に位置していたカーソルを5行目の3の右横に1行分動かすと、これまでの3行目の4から4行目の3までの文字選択に追加して、さらに、4行目の4から5行目の3までが新たに選択範囲となる。
なお、図16の1605は、縦書きにおいて、文字選択方向と同方向へ1行分文字が選択される前の図であり、図16の1606は文字選択方向と同方向へ1行分文字選択された後の図である。この図では、2行目の2から7が文字選択の方向であり、7の下に位置していたカーソルを左横の7の下に動かすと、2行目の選択済みだった2から7に追加し、2行目の8から9と3行目の1から7が新たに範囲選択される。
なお、ステップS905で、携帯端末100のCPU201が、文字選択方向と同方向の文字への傾きを検知しなかった場合、ステップS907以降の処理へすすむ。
ステップS907では、携帯端末100のCPU201が、文字選択方向と逆方向の行への傾きを検知した場合、ステップS908において、文字選択方向と逆方向へ、傾きの行方向へステップS900の速度で1文字分カーソル移動し、1行分の文字列を選択解除する。図15の1507は文字選択方向と逆方向へ1行分文字列が選択解除される前、図15の1508は文字選択方向と逆方向へ1行分文字列が選択解除された後の図である。
この図では、2行目の全て、3行目全て、4行目の1から6までが文字選択されていて、4行目の6の右横に位置していたカーソルを3行目の6の右横に1行分動かすと、これまで選択されていた、3行目の7から4行目の6が選択範囲解除となる。
なお、図16の1607は、縦書きにおいて、文字選択方向と逆方向へ1行分文字列が選択と解除される前の図であり、図16の1608は文字選択方向と逆方向へ1行分文字列が選択解除された後の図である。
この図では、2行目の2から7が文字選択の方向であったが、7の下に位置していたカーソルを右横の8の上に動かすと2行目の選択済みだった2から7が選択解除になり、2行目の1と1行目の9から8が新たに範囲選択される。
なお、ステップS907で、携帯端末100のCPU201が、文字選択方向と同方向の文字への傾きを検知しなかった場合、ステップS909以降の処理へすすむ。
ステップS909では、携帯端末100のCPU201が、文字選択方向から斜めへの傾きを検知した場合、ステップS910の斜めの傾きの範囲選択処理を行う。ステップS910の処理は、図10を用いて説明する。
なお、図9の範囲選択処理は、必ずステップS901〜ステップS909いずれかの判定処理を通ることになる。
次に、図10の斜めの傾きの範囲選択処理について説明をする。
また、文字列の一部が範囲選択されている状態である場合に、範囲選択されている状態の中へカーソルが再度移動することによって文字列選択解除を行う処理を示した図である。
ステップS1001では、携帯端末100のCPU201は、まず、文字選択されていない状態、または、文字が選択されている状態の方向と同方向の斜めの方向への傾きを検知した場合(ステップS1101においてYESの場合)、ステップS1002以降の処理に進む。
ステップS1001において、NOの場合は、文字が選択されている状態とは逆の方向の斜めの方向への傾きを検知した場合になるが、この場合はステップS1013以降の処理に進む。
まずは、ステップS1002以降の処理から説明する。ステップS1002において携帯端末100で表示されている文字列が横書きと判定された場合(ステップS1002においてYESの場合)は、ステップS1003〜ステップS1006の処理が行われ、横書きでない場合(ステップS1002においてNOの場合、つまりここでは縦書きの場合)ステップS1008からステップS1011の処理が行われる。
ステップS1003で、横書きの文字列において、右斜め下方向、または、左斜め上方向にカーソルが移動した場合には、ステップS1004において、傾きの行方向へ、S900の速度で一文字分カーソルが移動し、右斜め下方向へカーソル移動が行なわれた場合は下方向1行分と右横方向へ1文字分、左斜め上方向へカーソル移動が行われた場合は上方向へ1行+左横方向へ1文字分の文字範囲を選択する。
図17の1701と1702はカーソルが右斜め下へ移動した時の前後の図である。図17の1701では、3行目の1から9と4行目の1から3が選択され、カーソルが3の右横にあったが、これが右斜め下方向へカーソル移動すると、5行目の4の右横へカーソルが移動し、カーソルが移動した分だけ追加で範囲選択がされる。
また、図17の1703と1704はカーソルが左斜め上へ移動した時の前後の図である。図17の1703では、3行目の7から4までが選択され、カーソルが4の左横にあったが、これが左斜め上方向へカーソル移動すると、2行目の3の左横へカーソルが移動し、カーソルが移動した分だけ追加で範囲選択がされる。
なお、ステップS1003で、横書きの文字列において、右斜め下方向、または、左斜め上方向にカーソルが移動しない場合には、ステップS1005の処理へ進む。
ステップS1005で、横書きの文字列において、左斜め下方向、または、右斜め上方向にカーソルが移動した場合には、ステップS1006において、傾きの行方向へ、S900の速度で一文字分カーソルが移動し、左斜め下方向へカーソル移動が行なわれた場合は下方向へ1行分とそこから左横へ1文字分引いた範囲で、右斜め上方向へカーソル移動が行われた場合は上方向へ1行分とそこから右横へ1文字分引いた範囲で文字範囲が範囲選択される。
また、図17の1705と1706はカーソルが左斜め下へ移動した時の前後の図である。図17の1705では、3行目の1から9と4行目の1から3が選択され、カーソルが3の右横にあったが、これが左斜め下方向へカーソル移動すると、5行目の2の左横へカーソルが移動し、カーソルが移動した分だけ追加で範囲選択がされる。
また、図17の1707と1708はカーソルが右斜め上へ移動した時の前後の図である。図17の1707では、4行目の6から1と3行目の9から4が選択され、カーソルが4の左横にあったが、これが右斜め上方向へカーソル移動すると、2行目の5の左横へカーソルが移動し、カーソルが移動した分だけ追加で範囲選択がさる。
なお、ステップS1005で、横書きの文字列において、左斜め下方向、または、右斜め上方向にカーソルが移動しなかった場合には、ステップS1007の処理へ進む。
ただし、ステップS1002で横書きと判定された場合は、ステップS1003とステップS1005のいずれかの判定を通ることになる。
次に、ステップS1007以降の処理を説明する。ステップS1007以降は縦書きの文字列の処理である。
ステップS1008で、縦書きの文字列において、左斜め下方向、または、右斜め上方向にカーソルが移動した場合には、ステップS1009において、傾きの行方向へ、S900の速度で一文字分カーソルが移動し、左斜め下方向へカーソル移動が行なわれた場合は左横へ1行と下方向へ1文字分、右斜め上方向へカーソル移動が行われた場合は右横へ1行と上方向へ1文字分の文字範囲が範囲選択される。
また、図18の1801と1802はカーソルが左斜め下へ移動した時の前後の図である。図18の1801では、1行目の1から6が選択され、カーソルが6の下にあったが、これが左斜め下方向へカーソル移動すると、2行目の7の下へカーソルが移動し、カーソルが移動した分だけ追加で範囲選択がされる。
また、図18の1803と1804はカーソルが右斜め上へ移動した時の前後の図である。図18の1803では、2行目の8から5が選択され、カーソルが5の上にあったが、これが右斜め上方向へカーソル移動すると、1行目の4の上へカーソルが移動し、カーソルが移動した分だけ追加で範囲選択がされる。
なお、ステップS1008で、縦書きの文字列において、左斜め下方向、または、右斜め上方向にカーソルが移動しなかった場合には、ステップS1010の処理に進む。
ステップS1010で、縦書きの文字列において、左斜め上方向、または、右斜め下方向にカーソルが移動した場合には、ステップS1011において、傾きの行方向へ、S900の速度で一文字分カーソルが移動し、左斜め上方向へカーソル移動が行なわれた場合は左横へ1行分とそこから上方向へ1文字分引いた範囲で、右斜め下方向へカーソル移動が行われた場合は右横へ1行とそこから下方向へ1文字分引いた範囲の文字範囲が範囲選択させる。
図18の1805と1806はカーソルが左斜め上へ移動した時の前後の図である。図18の1805では、3行目の4から8までが選択され、カーソルが8の下にあったが、これが左斜め上方向へカーソル移動すると、4行目の7の下へカーソルが移動し、カーソルが移動した分だけ追加で範囲選択がされる。
また、図18の1807と1808はカーソルが右斜め下へ移動した時の前後の図である。図17の1701では、3行目の8から2が選択され、カーソルが2の上にあったが、これが右斜め下方向へカーソル移動すると、2行目の3の上へカーソルが移動し、カーソルが移動した分だけ追加で範囲選択がされる。
なお、ステップS1010で、縦書きの文字列において、左斜め上方向、または、右斜め下方向にカーソルが移動しなかった場合には、図10の斜めの傾きの範囲選択処理を終了する。
ただし、ステップS1007で縦書きと判定された場合は、ステップS1008とステップS1010のいずれかの判定を通ることになる。
次に、図10のステップS1012以降の処理を説明する。ステップS1012は、文字が選択されている状態とは逆の方向の斜めの方向への傾きを検知した否かを判定する。ステップS1012において、文字が選択されている状態とは逆の方向の斜めの方向への傾きを検知した場合(ステップS1012においてYESの場合)ステップS1013以降の処理を行う。ステップS1012において、文字が選択されている状態とは逆の方向の斜めの方向への傾きを検知しなかった場合は、この処理を終了する。
ただし、斜めの傾きの範囲選択処理は、最初に、ステップS1001とステップS1012のいずれかの判定を必ず通ることとなる。
ステップS1013において携帯端末100で表示されている文字列が横書きと判定された場合(ステップS1013においてYESの場合)は、ステップS1014〜ステップS1017の処理が行われ、横書きでない場合(ステップS1013においてNOの場合、つまりここでは縦書きの場合)ステップS1019からステップS1022の処理が行われる。
ステップS1014で、横書きの文字列において、右斜め下方向、または、左斜め上方向にカーソルが移動した場合、ステップS1015において、傾きの行方向へ、S900の速度で一文字分カーソルが移動し、右斜め下方向へカーソル移動が行なわれた場合は下方向1行分と右横へ1文字分文字選択した分から既に選択済みである文字列を選択解除した文字列範囲が範囲選択され、左斜め上方向へカーソル移動が行われた場合は上方向へ1行分と左横方向へ1文字分の文字範囲した分から既に選択済みであった文字列を選択解除した分が範囲選択される。
図19の1901と1902はカーソルが右斜め下へ移動した時の前後の図である。図19の1901では、2行目の6から3が選択され、カーソルが3の左横にあったが、これが右斜め下方向へカーソル移動すると、3行目の3の右横へカーソルが移動し、既に選択がされていた2行目の6から3の部分は範囲選択が解除され、それ以外でカーソルが移動した分(2行目の7から9と3行目の1から3)は新たに範囲選択がされる。
また、図19の1903と1904はカーソルが左斜め上へ移動した時の前後の図である。図19の1903では、2行目の3から6までが選択され、カーソルが6の右横にあったが、これが左斜め上方向へカーソル移動すると、2行目の6の左横へカーソルが移動し、既に選択がされていた2行目の3から6は範囲選択が解除され、それ以外でカーソルが移動した分(2行目の2から1と1行目の9から6)は新たに範囲選択がされる。
なお、ステップS1014で、横書きの文字列において、右斜め下方向、または、左斜め上方向にカーソルが移動しなかった場合、ステップS106の処理へ進む。
ステップS1016で、横書きの文字列において、左斜め下方向、または、右斜め上方向にカーソルが移動した場合、ステップS1017において、傾きの行方向へ、S900の速度で一文字分カーソルが移動し、左斜め下方向へカーソル移動が行なわれた場合は下方向1行分とそこから左横方向へ1文字分引いた範囲から、さらに、既に選択済みであった文字列を選択解除した文字列範囲が範囲選択され、右斜め上方向へカーソル移動が行われた場合は上方向へ1行分とそこから右横へ1文字分の文字分引いた範囲から、さらに、既に選択済みであった文字列を選択解除した文字列範囲が範囲選択される。
図19の1905と1906はカーソルが左斜め下へ移動した時の前後の図である。図19の1905では、2行目の6から3が選択され、カーソルが3の左横にあったが、これが左斜め下方向へカーソル移動すると、3行目の1の右横へカーソルが移動し、既に選択がされていた3行目の6から3の部分は範囲選択が解除され、それ以外でカーソルが移動した分(2行目の7から9と3行目の1)は新たに範囲選択がされる。
また、図19の1907と1908はカーソルが右斜め上へ移動した時の前後の図である。図19の1907では、2行目の3から6までが選択され、カーソルが6の右横にあったが、これが右斜め上方向へカーソル移動すると、1行目の8の左横へカーソルが移動し、既に選択がされていた2行目の3から6は範囲選択が解除され、それ以外でカーソルが移動した分(3行目の2から1と1行目の9から8)は新たに範囲選択がされる。
なお、ステップS1016で、横書きの文字列において、左斜め下方向、または、右斜め上方向にカーソルが移動しなかった場合、ステップS1008の処理へ進む。
ただし、ステップS1013で縦書きと判定された場合は、ステップS1014とステップS1016のいずれかの判定を通ることになる。
次に、ステップS1018以降の処理を説明する。ステップS1018以降は縦書きの文字列の処理である。
ステップS1019で、縦書きの文字列において、左斜め下方向、または、右斜め上方向にカーソルが移動した場合、ステップS1020において、傾きの行方向へ、S900の速度で一文字分カーソルが移動し、左斜め下方向へカーソル移動が行なわれた場合は左横へ1行と下方向へ1文字分文字選択した分から既に選択済みである文字列を選択解除した文字列範囲が範囲選択され、右斜め上方向へカーソル移動が行われた場合は右横へ1行と上方向へ1文字分文字選択した分から既に選択済みである文字列を選択解除した分の文字範囲が範囲選択される。
図20の2001と2002はカーソルが右斜め上へ移動した時の前後の図である。図20の2001では、2行目の3から6が選択され、カーソルが3の下にあったが、これが右斜め上方向へカーソル移動すると、1行目の6の上へカーソルが移動し、既に選択がされていた2行目の3から6の部分は範囲選択が解除され、それ以外でカーソルが移動した分(2行目の2から1と1行目の9〜6)は新たに範囲選択がされる。
また、図20の2003と2004はカーソルが右斜め上へ移動した時の前後の図である。図20の2003では、2行目の6から3までが選択され、カーソルが3の上にあったが、これが左斜め下方向へカーソル移動すると、3行目の3の下へカーソルが移動し、既に選択がされていた2行目の6から3は範囲選択が解除され、それ以外でカーソルが移動した分(2行目の7から9と3行目の1から3)は新たに範囲選択がされる。
なお、ステップS1019で、縦書きの文字列において、左斜め下方向、または、右斜め上方向にカーソルが移動しなかった場合、ステップS1021の処理へ進む。
ステップS1021で、縦書きの文字列において、右斜め下方向、または、左斜め上方向にカーソルが移動した場合、ステップS1022において、傾きの行方向へ、S900の速度で一文字分カーソルが移動し、右斜め下方向へカーソル移動が行なわれた場合は右横へ1行分とそこから下へ1文字分引いた範囲から、さらに、既に選択済みであった文字列を選択解除した文字列範囲が範囲選択され、左斜め上方向へカーソル移動が行われた場合は左横へ1行分とそこから上へ1文字分を引いた範囲から、さらに、既に選択済みであった文字列を選択解除した文字列範囲が範囲選択される。
図20の2005と2006はカーソルが右斜め下へ移動した時の前後の図である。図20の2005では、2行目の3から6が選択され、カーソルが6の下にあったが、これが右斜め下方向へカーソル移動すると、1行目の7の上へカーソルが移動し、既に選択がされていた2行目の3から6の部分は範囲選択が解除され、それ以外でカーソルが移動した分(2行目の2から1と1行目の9〜8)は新たに範囲選択がされる。
また、図20の2007と2008はカーソルが右斜め上へ移動した時の前後の図である。図20の2007では、2行目の6から3までが選択され、カーソルが3の上にあったが、これが左斜め上方向へカーソル移動すると、3行目の1の下へカーソルが移動し、既に選択がされていた2行目の3から6は範囲選択が解除され、それ以外でカーソルが移動した分(2行目の7から9と3行目の1)は新たに範囲選択がされる。
なお、ステップS1021で、縦書きの文字列において、右斜め下方向、または、左斜め上方向にカーソルが移動しなかった場合、図10の斜めの傾きの範囲選択処理を終了する。
ただし、ステップS1018で縦書きと判定された場合は、ステップS1019とステップS1021のいずれかの判定を通ることになる。
なお、図8の処理は、図17、図18、図19、図20で範囲選択の前と後を図示した通り、横書き/縦書きのいずれの文字列も処理可能である。
<第二の実施例>
続いて、第二の実施形態について説明を行う。本発明の第一の実施例においては、携帯端末のカーソル位置を携帯端末に与えられる角度によって、移動させることが出来、文字列の範囲選択に必要となる範囲選択の開始位置と終了位置の決定や、文字列の挿入の位置の決定等を、この方法によりカーソル位置を決定させることによって可能とする実施例を説明した。
本発明の第二の実施形態においては、カーソルの位置を携帯端末の画面をタッチすることによって決定し、小さな文字列において所望の位置へカーソルを位置づけられなかった場合に、携帯端末にある角度を与えてカーソル位置を微調整させることにより、所望の位置へ移動させる実施形態を説明する。なお、第一の実施形態と処理が同じとなる箇所についての説明は省略する。
図22は、第二の実施例のメインフローを示す処理図である。図22の、ステップS2201からステップS2211の各ステップは、カーソルの位置を携帯端末の画面をタッチすることによって決定する際に、小さい文字列の中の所望の位置へカーソル位置を位置づけられなかった場合に、携帯端末100にある動作を与えてカーソル位置の微調整を行うことにより、所望の位置へカーソルを位置づける処理のフローを示す図である。また、それによって、範囲選択と範囲選択したものの編集処理ができるようにしているフロー図である。
ステップS2201は、まず携帯端末100が、携帯端末がそのカーソル位置を移動させるにあたって、検知する各種動作の閾値の初期値設定を行う。今回実施例では、携帯端末100が検知する動作を、携帯端末100に与えられる傾き、を例として説明をする。
なお、ステップS2201の各種初期設定処理については、図4のステップS401の各種初期設定処理を説明した図5と同様であるため、ここでは説明を省略する。
再び図22に戻ってステップS2202以降の説明を行う。ステップS2202で携帯端末100のCPU201は、ステップS2201の初期設定処理で設定した初期値を読み込む。
次にステップS2203におき、携帯端末100のCPU201は、携帯端末ユーザによって、携帯端末の画面上でカーソル位置を決定するために、タッチされたことを検知する。すなわち、携帯端末の表示画面に表示される文字列の間の任意の位置をタッチされたことを検知する。
図23の2301は、画面上の文字列等の間をタッチすることによって、カーソルの位置を決定している図の一例である。なお、長押しすると、図23の2302に示すように、長押しメニューを長押した近辺に表示することとする。
次にステップS2204において、図23の長押しメニューの中より、カーソル移動モード2303が選択され、動作検知条件記憶部102に記憶されている、携帯端末100のジャインロセンサ、または加速度センサ本体が検知する動作によって、カーソルの動作を有効にするための条件を満たしている場合に、文字列上でカーソルを移動させることが可能となる。すなわち、携帯端末が自身の動きを検知し、表示される文字列上でのカーソル位置を、検知した動作に連動して移動させ、文字列の所定の位置にカーソルを表示させる。
次にステップS2205において、携帯端末100上のCPU201は、カーソル位置を決定させる処理を行う。なお、ステップS2205から呼ばれる、既に説明した図6のステップS601からステップS612までの処理と同様であるため、説明は省略する。
また、図6から呼ばれる図7の処理も、既に説明した第一の実施例における図7の処理と同様である。このため図7の説明については省略する。
再び図22に戻りステップS2206以降を説明する。ステップS2206からステップS2212の処理は、図4のステップS405からステップS411までの処理と同様である。したがって、カーソル位置が決定された後の、範囲選択や選択したものの編集処理についての処理は、図4のステップS405からステップS411と同様であるため、説明については、省略をする。
ただし、ステップS2206において、範囲選択キー1102が押下され後、カーソルが携帯端末100に与えられた動作によってカーソルを動かし、範囲選択をするものとしているが、別の方法として、ステップS2204で携帯端末100に表示される文字列間を押下して最初におおよその範囲選択終了位置のカーソルの位置を手動で決定して範囲選択をしておき、最終的に、ステップS2207の処理で図23と同様なカーソル位置の微調整により、範囲選択終了位置を確定させても良いこととする。すなわち、携帯端末の表示画面に表示される文字列の間の任意の位置をタッチされたことを検知して範囲選択終了位置を確定させても良いこととする。
次に、カーソルの位置の微調整について、図23の2301から2302用いて、携帯端末上の画面を指でタッチしてカーソル位置を決定する際に、小さい文字列の中の所望の位置へカーソル位置を位置づけられなかった場合、携帯端末の傾きを用いてカーソルの位置の微調整を行うことにより、所望の位置へカーソルを位置づける方法について説明する。
図23の2301は携帯端末上の画面において、画面上の文字列等の間をタッチすることによって、カーソルの位置を決定している図である。小さい文字列の場合、この方法でカーソル位置を決定しようすると、文字が指で隠れてしまうため、自分が決定しようとしている箇所にカーソルを位置付けることが困難になる。
図23の2302は、図23の2301で携帯端末の画面をタッチしたことによって、最初に決定されたたカーソルの位置を示す図であり、カーソル位置が2行目の数字の「8」の左側に位置する。
ここで、携帯端末上でカーソル移動を行えるようにするために、カーソル移動モード2303を長押しメニューから選択し、このカーソル位置の状態を確認しながら、携帯端末に傾きを与えることにより、図23のカーソル位置決定処理開始のロジックの処理によって、図23の2301で最初に決定されたカーソルの位置を本来の位置へカーソルを位置付けることが出来る。
図23の2304は、本来移動させたいカーソル位置にカーソルが移動した後の図である。この図は、図23の2302を画面に表示する携帯端末を左に傾けることによって、カーソル位置の微調整を行い、所望の位置(カーソル位置を数字の「7」の左側)へカーソルの位置を移動させることが出来る。
これは図7のステップS703とステップS704の処理によって、移動させることが出来る。この処理については、第一の実施例の図7の処理と同様であるため説明は省略する。
カーソルを所望の位置に移動することが出来て、カーソル位置を固定させたい場合は、別メニューである、図11のカーソル位置決定キー1105を押下することによって、カーソル移動を停止させて位置を確定することができる。
本発明の第二の実施形態によれば、カーソルの位置を携帯端末の画面をタッチすることによって決定する際、小さな文字列において所望の位置へカーソルを位置づけられなかった場合に、携帯端末にある動作を与えてカーソル位置を微調整させることにより、所望の位置へカーソルを移動させることが出来る。
<第三の実施例>
続いて、第三の実施形態について説明を行う。本発明の第一の実施例においては、携帯端末のカーソル位置を携帯端末に与えられる角度によって、移動させることが出来、文字列の範囲選択に必要となる範囲選択の開始位置と終了位置の決定や、文字列の挿入の位置の決定等を、この方法によりカーソル位置を決定させることによって可能とする実施例を説明した。本発明の第二の実施形態においては、カーソルの位置を携帯端末の画面をタッチすることによって決定し、小さな文字列において所望の位置へカーソルを位置づけられなかった場合に、携帯端末に角度を与えてカーソル位置を微調整させることにより、所望の位置へ移動させる実施形態を説明した。
本発明の第三の実施形態においては、携帯端末のカーソル位置を携帯端末の側面から与えられた、加速(衝撃)によってカーソル移動をさせ、文字列の範囲選択に必要となる範囲選択の開始位置と終了位置の決定や、文字列の挿入の位置の決定等を可能とする実施例を説明する。
なお、第一の実施形態や第二の実施形態と処理が同じとなる箇所についての説明は省略する。
まず、メインの処理である、カーソルの位置を携帯端末の画面をタッチすることによって決定し、携帯端末100の画面に対して側面から加速(衝撃)を与えることによって、所望の位置へカーソルを位置づけ、範囲選択と範囲選択したものの編集処理ができるようにしている処理については、第二の実施例の図22と同じフローになる。
なお、メインの処理の中から呼んでいるサブの処理について、第一の実施例と第二の実施例において差異となる箇所について以下説明を行う。
第三の実施例における図22のステップS2201の初期設定処理は、図24の内容になる。
まず、ステップS2401においては、加速度センサから読み取れる、重力加速度毎における、カーソル移動の速さ(文字/秒)の設定をする。すなわち、図27の2710は、前記携帯端末が検知する前記動作の大きさ毎に紐づく前記カーソル位置の移動の速度が記憶される。
図27の2711の其々の加速度の大きさに対し、1秒間に何文字分進むかカーソル速度(図27の2712)を設定する。すなわち、カーソル位置の移動の速度は、動作の大きさに連動して速くなる
次に、ステップS2402において、携帯端末が、重力加速を受けた方向とカーソル移動方向の紐づけを行う。
すなわち、図27の2720は、すなわち、携帯端末に与えられた動作の方向に紐づくカーソル位置の移動方向を記憶する。
携帯端末が加速(衝撃)を受けた方向を上、下、左、右、右斜め上、右斜め下、左斜め上、左斜め下の8つの方向に分類し(図27の2721)それぞれの方向を定義付ける範囲を角度で設定する(図27の2722)。
次に第三の実施例における図22のステップS2202は第二の実施例と同様であるが、ステップS2203とステップS2204に関しては、ステップが無いものとする。
ステップS2205においては、第三の実施例においては、図25のカーソル位置決定処理を行う。
次に、図25のカーソル位置決定処理の図について説明を行う。まず、ステップS2501において、携帯端末100は、カーソルの移動方向へ加速(衝撃)が加えられたことを検知する。
ステップS2502において、携帯端末100は、加速を検知する。ステップS2502で加速を検知しない場合は、ステップS2506のカーソル位置決定キー押下の処理へ進み、カーソル位置を決定し、本処理を終了する。
ステップS2502で加速を検知した場合は、ステップS2503において、後続のカーソル移動処理で必要となるカーソルが1秒間に進む文字数Xを変数Nへ数値として代入される。
具体的な値は、ステップS2502で傾きを検知した際の加速毎によって決定される、図27の2720で設定されているカーソルが1秒間に進む文字数である。
ステップS2504において、携帯端末100はカーソル移動処理を行う。なお、このカーソル移動処理については、図7のカーソル移動処理と同様であるため、ここでは説明を省略する。
ステップS2505において、カーソルの携帯端末100は、図25のカーソル位置決定処理を終了させるか否かを判定する。
ステップS2505において、図25のカーソル位置決定処理を終了させる場合、ステップS2506のカーソル位置決定キー押下の処理へ移る。すなわち、文字列を範囲選択する場合の範囲選択終了位置の決定を、移動されたカーソルにより受け付ける。
ステップS2505において、図25のカーソル位置決定処理を終了させない場合、再び図25のステップS2501からの処理を行う。
ステップS2506において、携帯端末100は、カーソル位置決定キー(図11の1105)が押下されたことを検知し、カーソル位置を決定する。
再び、第三の実施例としての図22のステップS2206に戻って処理の説明を行う。
ステップS2206は、第二の実施例と同じであるため、説明は省略する。
ステップS2207は、図26の範囲選択と範囲選択終了カーソル位置決定処理を行うこととする。
続いて図26の範囲選択と範囲選択終了カーソル位置決定処理について説明を行う。
まず、ステップS2601において、携帯端末100は、カーソルの移動方向へ加速(衝撃)が加えられたことを検知する。
ステップS2602において、携帯端末100は、加速を検知する。ステップS2602で加速を検知しない場合は、再度、ステップS2601の範囲選択の方向への加速(衝撃)を検知の処理へ進む。
ステップS2602で加速を検知した場合は、ステップS2603において、後続のカーソル移動処理で必要となるカーソルが1秒間に進む文字数Xを変数Nへ数値として代入される。
具体的な値は、ステップS2602で傾きを検知した際の加速毎によって決定される、図27の2720で設定されているカーソルが1秒間に進む文字数である。
ステップS2604において、携帯端末100は範囲選択処理を行う。すなわち、範囲選択開始位置と範囲選択終了位置の間の範囲を選択状態とする。
なお、このカーソル移動処理については、図9の範囲選択処理のステップS906とステップS908で「傾きの行方向へ」と表現している箇所を、「加速(衝撃)を与えた行方向へ」と置き換えることにより処理が同様となる。つまり、傾きで方向を検知していたものが、加速(衝撃)によって、検知することに変わっただけである。従がって、同様の箇所の説明は省略する。
なお、図9の範囲選択処理のステップS910から呼ばれる、斜めの傾きの範囲選択処理は、図10の斜めの傾きの範囲選択処理の、ステップS1004、ステップS1006、ステップS1009、ステップS1011、ステップS1015、ステップS1017、ステップS1020、ステップS1021で「傾きの行方向へ」と表現している箇所を、「加速(衝撃)を与えた行方向へ」と置き換えることにより処理が同様となる。つまり、傾きで方向を検知していたものが、加速(衝撃)によって、検知することに変わっただけである。従がって、同様の箇所の説明は省略する。
再び、図26の範囲選択と範囲選択終了カーソル位置決定処理に戻って説明をする。ステップS2605において、カーソルの携帯端末100は、図26の範囲選択と範囲選択終了カーソル位置決定処理を終了させるか否かを判定する。
ステップS2605において、図26の範囲選択と範囲選択終了カーソル位置決定処理を終了させる場合、ステップS2606のカーソル位置決定キー押下の処理へ移る。すなわち、文字列を範囲選択する場合の範囲選択終了位置の決定を、移動されたカーソルにより受け付ける。
ステップS2605において、図26の範囲選択と範囲選択終了カーソル位置決定処理を終了させない場合、再び図26のステップS2601からの処理を行う。
ステップS2606において、携帯端末100は、カーソル位置決定キー(図11の1105)が押下されたことを検知し、文字列の範囲選択の終了位置し、本処理を終了する。
再び、第三の実施例としての図22の処理に戻って説明をする。ステップS2208からステップS2212については、第二の実施例と同様のため、説明は省略する。
以上、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
例えば、携帯端末上に表示されている文字列を範囲選択や、文書編集をするために必要となるカーソルは、ユーザから与えられ携帯端末が検知した動作によって動くとして実施例を説明したが、これらはあくまで例の一部分部である。携帯端末が検知する動作には、実施例以外にも、携帯端末をある方向から揺らす、等の携帯端末の本体へジャイロセンサ、あるいは、加速度センサが検知をする何等かの外部要因を加えることによって、携帯端末上でカーソル移動を発生させ、範囲選択や、文書編集処理を行うことも可能であることとする。
また、本発明におけるプログラムは、図4から図10、図22、図24から図26に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図4から図10、図22、図24から図26の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図4から図10、図22、図24から図26の各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。