(57)【要約】【課題】異方向部分文字列を包含する文字列を編集する際に、編集対象位置を表すキャレットの移動方向を利用者が明確に把握できる情報処理装置を提供する。【解決手段】編集対象となる異方向部分文字列３０３について指定された第１ポインティング位置４００と、該第１ポインティング位置４００から離れた第２ポインティング位置４０１とを特定する。そして、これらの相対位置に基づいて、編集対象位置を表すキャレット３０３の移動方向を決定する。これにより、他の異方向部分文字列３０２が混在していても、編集対象を利用者に直感的に表示することが可能になる。【選択図】図４
2018036787.tif 000002
【特許請求の範囲】
【請求項１】
文字列を、その編集対象位置を表すキャレットと共に表示する表示手段と、
前記文字列のうち編集対象となる部分文字列について指定された第１位置と該第１位置から離れた第２位置とを特定する特定手段と、
前記第１位置と前記第２位置の相対位置に基づいて前記キャレットの移動方向を決定する方向決定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記表示手段は、タッチパネルディスプレイを含み、
前記文字列は、後続文字の方向が互いに異なる複数の異方向部分文字列を包含しており、
前記特定手段は、前記タッチパネルディスプレイに表示された文字列のうち編集対象となる異方向部分文字列の上で行われたタッチ操作の内容及び操作位置に基づいて前記第１位置及び前記第２位置を特定することを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、前記編集対象となる異方向部分文字列に対する所定操作の開始位置を前記第１位置と特定するとともに、該所定操作が終了した位置を前記第２位置と特定することを特徴とする、
請求項２に記載の情報処理装置。
【請求項４】
前記特定手段は、前記編集対象となる異方向部分文字列に対する所定操作の開始位置を前記第１位置として特定するとともに、当該所定操作後のフリック動作のポインティング位置を前記第２位置と特定することを特徴とする、
請求項２に記載の情報処理装置。
【請求項５】
前記所定操作の開始位置が当該異方向部分文字列の終端位置であることを特徴とする、
請求項４に記載の情報処理装置。
【請求項６】
前記方向決定手段は、前記キャレットが隣り合う前記異方向部分文字列の境界に表示されているときに前記移動方向を決定することを特徴とする、
請求項２ないし５のいずれか一項に記載の情報処理装置。
【請求項７】
前記複数の異方向部分文字列は、それぞれ後続文字の方向を表す方向ベクトルが関連付けて保持されており、
前記方向決定手段は、前記第１位置と前記第２位置から方向ベクトルを計算するとともに、計算した方向ベクトルと前記保存された方向ベクトルとの類似度に基づいて前記移動方向を決定することを特徴とする、
請求項６に記載の情報処理装置。
【請求項８】
後続文字の方向が互いに異なる複数の異方向部分文字列を包含する文字列を、編集対象位置を表すキャレットと共に、タッチパネルディスプレイに表示する工程と、
表示された前記文字列のうち編集対象となる異方向部分文字列に対して行われた所定操作の開始位置を第１位置と特定するとともに、該所定操作の終了位置を第２位置と特定する工程と、
前記第１位置と前記第２位置の相対位置に基づいて前記キャレットの移動方向を決定する工程と、
を有することを特徴とする文字列の表示制御方法。
【請求項９】
後続文字の方向が互いに異なる複数の異方向部分文字列を包含する文字列を、編集対象位置を表すキャレットと共に、タッチパネルディスプレイに表示する工程と、
表示された前記文字列のうち編集対象となる異方向部分文字列に対して行われた所定操作の開始位置を第１位置と特定するとともに、当該所定操作後のフリック動作のポインティング位置を第２位置と特定する工程と、
前記第１位置と前記第２位置の相対位置に基づいて前記キャレットの移動方向を決定する工程と、
を有することを特徴とする文字列の表示制御方法。
【請求項１０】
タッチパネルディスプレイが接続されたコンピュータに請求項８又は９に記載された表示制御方法を実行させるための文字列編集用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィカル・ユーザ・インタフェース（以下、ＧＵＩ）装置における文字列の編集処理に関する。
【背景技術】
【０００２】
電子機器において文字列の編集を行うＧＵＩでは、編集可能位置を表すキャレットをディスプレイに表示させ、これを編集したい位置に移動させることが行われている。このようなＧＵＩを用いて編集される文字列には様々な種類がある。例えば英語や日本語などのように、左から右に記述する文字列は、「ＬＴＲ文字列」と呼ばれる。また、アラビア語などのように、右から左に記述する文字列は、「ＲＴＬ文字列」と呼ばれる。このように後続文字の方向が互いに異なる部分文字列は「異方向部分文字列」と呼ばれる。ただし、アラビア語は基本的にはＲＴＬ文字列であるが、その中に英数字が含まれていると、英数字はＬＴＲ文字列であるため、ひとつの文字列の中にＬＴＲ文字列とＲＴＬ文字列が混在することになる。このような文字列では、ＬＴＲ文字列とＲＴＬ文字列の先頭または末尾が、見た目上は隣接する。そのため、キャレットをＬＴＲ文字列とＲＴＬ文字列の境界に移動しても、左右どちらの文字列が編集対象なのかを明確に把握することができない。特に、タッチ操作やマウス操作によってキャレットを移動する場合、キー操作の場合と異なり、任意の場所から非連続にキャレットが移動するため、編集可能な部分がより把握しずらいものとなる。
このような問題を解決する従来技術として、特許文献１には、キャレットが特定の位置にあるときに、選択決定指示を行うための決定スイッチを操作することで、キャレットの移動の仕方を切り換える制御手段を備える技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２７６２８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された技術では、所望の編集方向に合わせて、キャレットの移動態様を切り替えることが可能である。しかし、そのためには、編集したい位置と異なる切り替え位置にキャレットを移動した上で、さらに選択決定指示を行う必要がある。そのため、編集効率の低下を招くという課題が残る。
【０００５】
本発明は、異方向部分文字列を包含する文字列を編集する際に、編集対象位置を表すキャレットの移動方向を利用者が明確に把握できるように表示する情報処理装置を提供することを主たる目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、文字列を、その編集対象位置を表すキャレットと共に表示する表示手段と、前記文字列のうち編集対象となる部分文字列について指定された第１位置と該第１位置から離れた第２位置とを特定する特定手段と、前記第１位置と前記第２位置の相対位置に基づいて前記キャレットの移動方向を決定する方向決定手段とを備えることを特徴とする情報処理装置が得られる。
【発明の効果】
【０００７】
本発明によれば、異方向部分文字列を包含する文字列を編集する際に、編集対象位置を表すキャレットの移動方向を利用者に対して直感的に把握できるように表示することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１実施形態に係る情報処理装置のハードウェア構成図。
【図２】情報処理装置の機能ブロック構成図。
【図３】異方向部分文字列を包含する文字列の例示図。
【図４】第１実施形態によりキャレットを表示させる位置を指定する要領を示す説明図。
【図５】第１実施形態による特定部の処理手順説明図。
【図６】第１実施形態による方向決定部の処理手順説明図。
【図７】第２実施形態によりキャレットを表示させる位置を指定する要領を示す説明図。
【図８】第２実施形態による特定部における処理手順説明図。
【発明を実施するための形態】
【０００９】
以下、本発明をタッチパネルディスプレイを有する情報処理装置に適用した場合の実施の形態例を説明する。
［第１実施形態］
図１は、第１実施形態に係る情報処理装置のハードウェア構成例を示す図である。情報処理装置は、ＣＰＵ１００、ＲＯＭ１０１、ＲＡＭ１０２、及びタッチパネルディスプレイ１０３をバス１０４を通じて接続したコンピュータの一種である。ＣＰＵ（Central Processing Unit）１００は、本発明の文字列編集用プログラムを実行することにより、コンピュータを情報処理装置として動作させる。ＲＯＭ（Read Only Memory）１０１には、上記文字列編集用プログラムのほか、フォントデータなどが読み取り専用データとして格納されている。ＲＡＭ（Random Access Memory）１０２は、ＣＰＵ１００のメインメモリとして機能する。タッチパネルディスプレイ１０３は、文字列を、その編集対象位置を表すキャレットと共に表示する表示手段として機能する。また、利用者からの指示を検出する検出手段として機能する。文字列は、後続文字の方向が互いに異なる複数の異方向部分文字列を包含する。各異方向部分文字列は、それぞれ後続文字の方向を表す方向ベクトルが関連付けてＲＡＭ１０２に保持される。
【００１０】
利用者からの指示は、例えば文字列における編集対象位置を表すキャレットの表示位置に関する指示であり、スタイラスペンや指のような操作子によるポインティング操作を通じて検出される。以下の説明では、便宜上、操作子が利用者の指である場合の例を示す。ポインティング操作は、タッチパネルディスプレイ１０３上で検出された指の位置の座標とその変化を表す。ポインティング操作により検出された位置（座標）を本例では「ポインティング位置」と呼ぶ。また、ポインティング位置と、ポインティング操作の内容、例えばダウン、アップ又はムーブなどの動作タイプを表す情報とを含めて本例では「ポインティング情報」と呼ぶ。
【００１１】
図２は、情報処理装置の機能ブロック構成図である。特定部２００は、タッチパネルディスプレイ１０３からポインティング情報を受け取る。そして、ポインティング情報を分析することにより、文字列のうち編集対象となる部分文字列について指定された第１位置と該第１位置から離れた第２位置とを特定する。より詳しくは、タッチパネルディスプレイ１０３に表示された文字列のうち編集対象となる異方向部分文字列の上で行われたタッチ操作の内容及び操作位置に基づいて第１位置及び第２位置を特定する。特定の仕方については、後述する。本例では、第１位置を第１ポインティング位置とし、第２位置を第２ポインティング位置とする。
【００１２】
方向決定部２０１は、第１ポインティング位置と第２ポインティング位置の相対位置に基づいてキャレットの移動方向を決定する。本実施形態では、キャレットが隣り合う異方向部分文字列の境界に表示されているときに移動方向を決定する場合の例を示す。
【００１３】
図３は、異方向部分文字列の例示図である。この異方向部分文字列３００は、アラビア語で「結果は１００点です」という意味の文字列である。英数字の部分がＬＴＲ文字列で、他の文字列がＲＴＬ文字列である。すなわち、第一部分文字列３０１、第二部分文字列３０２、第四部分文字列３０４がＲＴＬ文字列であり、第三部分文字列３０３がＬＴＲ文字列である。本例では、ポインティング操作により、第三部分文字列３０３の終端位置にキャレット３０５を移動させ、表示させる例を示す。
【００１４】
図４は、キャレットの表示位置を指定する要領を示す説明図である。本例では、第二部分文字列３０２の終端位置ではなく、第三部分文字列３０３の終端位置への移動であることを明示するため、第三部分文字列３０３の任意の位置から所定操作を開始する。例えば、任意の位置に指をダウンし、そのまま指を右にスライドし、第三部分文字列３０３の終端位置でアップする。このように指をダウンし、左から右（ＬＴＲ）にスライドした後にアップするという各動作から成る所定操作により、キャレット３０５が、ＬＴＲ文字列である第三部分文字列３０３の終端位置に移動する。なお、指をタッチパネルにダウンすることをタッチダウン、指をタッチパネルからアップすることをタッチアップという場合もある。なお、ＲＴＬ文字列である第二部分文字列３０２の方向から所定操作を開始する場合は、指をダウンさせ、右から左（ＲＴＬ）にスライドし、第二部分文字列３０２の終端位置でアップする。これにより、キャレット３０５の位置が第二部分文字列３０２の終端位置に移動する。このとき、特定部２００は、所定操作の開始位置を第１ポインティング位置４０１、該所定操作が終了した位置（アップ操作された位置）を第２ポインティング位置４００と特定する。そして、方向決定部２０１が、２つのポインティング位置４００，４０１から方向ベクトルを計算し、計算した方向ベクトルとＲＡＭ１０２に保存された方向ベクトルとの類似度に基づいてキャレット３０５の移動方向を決定する。
【００１５】
以下、情報処理装置により実行される文字列の表示方法の一例を図５及び図６を参照して説明する。図５は、特定部２００の処理手順説明図である。前提として、複数の異方向部分文字列を包含する文字列を、編集対象位置を表すキャレット３０５と共に、タッチパネルディスプレイ１０３に表示する。その後、特定部２００は、タッチパネルディスプレイ１０３に入力された利用者のポインティング情報を取得する（Ｓ５００）。特定部２００は、次に、ポインティング情報を分析して、タッチを開始した動作かどうか、すなわち所定操作の開始動作であったかどうかを判定する（Ｓ５０１）。ここでは、動作タイプがダウンであった場合に、開始動作であったと判定する。
【００１６】
開始動作であった場合（Ｓ５０１：Ｙ）、特定部２００は、ポインティング位置を第１ポインティング位置４０１としてＲＡＭ１０２に記憶し、利用者による次のポインティング操作を待つ。一方、開始動作でなかった場合（Ｓ５０１：Ｎ）、特定部２００は、タッチを終了した動作かどうか、すなわち所定操作の終了動作であったか否かを判定する。ここでは、動作タイプがアップであった場合に、終了動作であったと判定する。終了動作でなかった場合（Ｓ５０３：Ｎ）、すなわち、開始動作でも終了動作でもなかった場合は、何も処理を行わずに利用者による次のポインティング操作を待つ。
【００１７】
終了動作であった場合（Ｓ５０３：Ｙ）、特定部２００は、ポインティング位置が、異方向部分文字列の境界であるか否かを判定する（Ｓ５０４）。異方向部分文字列の境界は、隣り合うＬＴＲ文字列とＲＴＬ文字列の共通の先頭位置であるか、共通の終了位置であるかのいずれかである。異方向部分文字列の境界でなかった場合（Ｓ５０４：Ｎ）、特定部２００は、ＲＡＭ１０２に記憶していた第１ポインティング位置４０１をクリアし（Ｓ５０５）、再び利用者がポインティング操作を行うのを待つ。一方、異方向部分文字列の境界であった場合（Ｓ５０４：Ｙ）、特定部２００は、該ポインティング位置を第２ポインティング位置４００としてＲＡＭ１０２に記憶する（Ｓ５０６）。その後、処理を終了し、方向決定部２０１の処理に移行する。
【００１８】
図６は、方向決定部２０１の処理の手順説明図である。方向決定部２０１は、特定部２００により特定された第２ポインティング位置４００と第１ポインティング位置４０１の方向ベクトルを計算する（Ｓ６００）。本例では、第１ポインティング位置４０１から第２ポインティング位置４００への方向ベクトルを計算する。方向決定部２０１は、次に、計算した方向ベクトルと、左方向・右方向の方向ベクトルとの類似度を計算する（Ｓ６０１）。類似度の計算には、例えば、余弦類似度を用いる。任意の２ベクトルの余弦類似度は、両ベクトルの内積を、両ベクトルのノルムの積で割ることによって容易に求めることができ、その値が大きいほど方向ベクトルがより類似していることを意味する。これにより、利用者が左右どちらの方向に指をスライドしたかを容易に特定することができる。
【００１９】
方向決定部２０１は、続いて、方向ベクトルがＬＴＲ方向か否かを判定する（Ｓ６０２）。ＬＴＲ方向であった場合（Ｓ６０２：Ｙ）、方向決定部２０１は、キャレット３０５の位置はＬＴＲ文字列に対応すると判定する（Ｓ６０３）。一方、ＬＴＲ方向でなかった場合（Ｓ６０２：Ｎ）、方向決定部２０１は、キャレット３０５の位置がＲＴＬ文字列に対応すると判定する（Ｓ６０４）。本例では、利用者が左から右方向に指を移動して、ＬＴＲ文字列の末尾でポインティング操作を終了している。そのため、キャレット３０５の移動方向を、ＬＴＲ文字列である第三部分文字列３０３の末尾（終端位置）の方向に決定する。最後に、方向決定部２０１は、キャレット３０５の位置をＲＡＭ１０２に記憶する（Ｓ６０５）。その後、処理を終了する。
以上説明した表示制御方法によれば、利用者がキャレット３０５を異方向部分文字列の境界に合わせる際、指を動かした方向に合わせて、編集対象がＬＴＲ文字列かＲＴＬ文字列かを直感的に指定することが可能となる。
【００２０】
なお、本実施形態では、数字列が混在するアラビア語の例を説明したが、異なる方向の部分文字列を包含する文字列であれば、どのような文字列であっても良い。また、特定部２００は、ポインティング操作の開始位置を第１ポインティング位置、終了位置を第２ポインティング位置と特定する例を説明したが、この例に限定されない。ポインティング位置のいずれかから、第１ポインティング位置と第２ポインティング位置が特定され、その両者からキャレット３０５の移動方向（つまり、編集が可能になる文字の方向）が決定されれば、どのような特定方法であっても良い。
【００２１】
［第２実施形態］
第２実施形態では、図３で示した第三部分文字列３０３の終端位置にキャレット３０５を移動する際、所定操作が開始された位置と、所定操作後のフリック動作のポインティング位置の相対位置により、移動方向を決定する場合の例を示す。該動作を実現するためのハードウェア構成及び機能ブロック構成は、第１実施例形態と同様であるため、説明を省略する。
【００２２】
図７は、第２実施形態によりキャレットの位置を指定する要領の説明図である。第１実施形態では、第三部分文字列３０３の任意の位置から所定操作を開始する例を示した。本実施形態では、隣り合う第二部分文字列３０２と第三部分文字列３０３の境界から所定操作を開始し、該開始された位置を第１ポインティング位置７００と特定する。所定操作後、フリック動作を行い、利用者の指がタッチパネルディスプレイ１０３から離れたポインティング位置を第２ポインティング位置７０１と特定する。第三部分文字列３０３はＬＴＲ文字列である。そのため、フリック動作も左から右（ＬＴＲ）に行うことで、その末尾である終端位置にキャレット３０５を移動することを指定する。つまり、第２実施形態では、所定操作の開始位置が編集対象となる異方向部分文字列の終端位置となる。
なお、第１ポインティング位置７００からポインティング操作を開始した後、右から左（ＲＴＬ）に指をはらってフリック動作を行った場合は、ＲＴＬ文字列である第二部分文字列３０２の末尾（終端位置）の方向にキャレット３０５を移動させる。
【００２３】
次に、第２実施形態における文字列の表示制御方法の例を説明する。図８は、第２実施形態における特定部２００の処理手順説明図である。前提として、複数の異方向部分文字列を包含する文字列を、編集対象位置を表すキャレット３０５と共に、タッチパネルディスプレイ１０３に表示する。その後、特定部２００は、利用者のポインティング情報を取得する（Ｓ８００）。特定部２００は、次に、該ポインティング操作が開始動作であったかどうかを判定する（Ｓ８０１）。開始動作であった場合（Ｓ８０１：Ｙ）、異方向部分文字列の境界か否かを判定する（Ｓ８０２）。境界でない場合（Ｓ８０２：Ｎ）、特定部２００は何も処理を行わず、利用者の次のポインティング操作を待つ。一方、境界であった場合（Ｓ８０２：Ｙ）、特定部２００は、該ポインティング位置を第１ポインティング位置４００としてＲＡＭ１０２に記憶する（Ｓ８０３）。その後、再び利用者がポインティング操作を行うのを待つ。
【００２４】
Ｓ８０１において、開始動作でなかった場合（Ｓ８０１：Ｎ）、フリック動作であるか否かを判定する（Ｓ８０４）。これには、Ｓ８００で取得したポインティング情報の動作タイプ情報を利用する。フリック動作でなかった場合（Ｓ８０４：Ｎ）、特定部２００は、利用者の次のポインティングを待つ。一方、フリック動作であった場合（Ｓ８０４：Ｙ）、特定部２００は、第１ポインティング位置４００が記憶済みであるか否かを判定する（Ｓ８０５）。記憶済でない場合（Ｓ８０５：Ｎ）、特定部２００は、何も処理を行わずに次のポインティングを待つ。記憶済であった場合（Ｓ８０５：Ｙ）、該位置を第２ポインティング位置としてＲＡＭ１０２に記憶する（Ｓ８０６）。その後、方向決定部２０１の処理に移行する。方向決定部２０１の処理は、図６に示したとおりである。
【００２５】
以上の第２実施形態によれば、はじめにタッチを開始した時点でキャレット３０５の移動先を決定した後、フリック動作を行うことでその移動方向、つまり編集可能な方向を決定することが可能となる。これにより、複数の異方向部分文字列を包含する文字列を編集する際に、編集対象がどの異方向部分文字列なのかを直感的に把握することができる。
なお、異なる方向の部分文字列が混在する文字列であれば、どのような文字列であっても良いことは第１実施形態と同じである。また、フリック動作の方向とキャレット３０５の移動方向の対応関係は、上記と逆の対応を行っても良い。
【００２６】
［変形例］
第１及び第２実施形態では、文字列に包含される異方向部分文字列上の二つの位置（第１位置及び第２装置）をいずれもポインティング位置とした例について説明したが、ポインティング操作によらず、マウス操作やキーボード操作によって指定してもよい。
また、本発明は、これまでに説明した情報処理装置においてなされる各処理を、コンピュータ上で動作させる文字列編集用プログラムとして独立に存在するものとして実施することができる。該文字列編集用プログラムは、各種記憶媒体やネットワークを介して流布させることが可能であり、記憶装置を有するコンピュータにインストールされることで本発明の情報処理装置を実現することができる。
【図１】
2018036787.tif 000003
【図２】
2018036787.tif 000004
【図３】
2018036787.tif 000005
【図４】
2018036787.tif 000006
【図５】
2018036787.tif 000007
【図６】
2018036787.tif 000008
【図７】
2018036787.tif 000009
【図８】
2018036787.tif 000010