JP2018036787A - 情報処理装置、文字列の表示制御方法、文字列編集用プログラム - Google Patents

情報処理装置、文字列の表示制御方法、文字列編集用プログラム Download PDF

Info

Publication number
JP2018036787A
JP2018036787A JP2016168341A JP2016168341A JP2018036787A JP 2018036787 A JP2018036787 A JP 2018036787A JP 2016168341 A JP2016168341 A JP 2016168341A JP 2016168341 A JP2016168341 A JP 2016168341A JP 2018036787 A JP2018036787 A JP 2018036787A
Authority
JP
Japan
Prior art keywords
character string
different
caret
partial character
predetermined operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016168341A
Other languages
English (en)
Inventor
裕輔 千原
Yusuke Chihara
裕輔 千原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016168341A priority Critical patent/JP2018036787A/ja
Publication of JP2018036787A publication Critical patent/JP2018036787A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Input From Keyboards Or The Like (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】異方向部分文字列を包含する文字列を編集する際に、編集対象位置を表すキャレットの移動方向を利用者が明確に把握できる情報処理装置を提供する。【解決手段】編集対象となる異方向部分文字列303について指定された第1ポインティング位置400と、該第1ポインティング位置400から離れた第2ポインティング位置401とを特定する。そして、これらの相対位置に基づいて、編集対象位置を表すキャレット303の移動方向を決定する。これにより、他の異方向部分文字列302が混在していても、編集対象を利用者に直感的に表示することが可能になる。【選択図】図4

Description

本発明は、グラフィカル・ユーザ・インタフェース(以下、GUI)装置における文字列の編集処理に関する。
電子機器において文字列の編集を行うGUIでは、編集可能位置を表すキャレットをディスプレイに表示させ、これを編集したい位置に移動させることが行われている。このようなGUIを用いて編集される文字列には様々な種類がある。例えば英語や日本語などのように、左から右に記述する文字列は、「LTR文字列」と呼ばれる。また、アラビア語などのように、右から左に記述する文字列は、「RTL文字列」と呼ばれる。このように後続文字の方向が互いに異なる部分文字列は「異方向部分文字列」と呼ばれる。ただし、アラビア語は基本的にはRTL文字列であるが、その中に英数字が含まれていると、英数字はLTR文字列であるため、ひとつの文字列の中にLTR文字列とRTL文字列が混在することになる。このような文字列では、LTR文字列とRTL文字列の先頭または末尾が、見た目上は隣接する。そのため、キャレットをLTR文字列とRTL文字列の境界に移動しても、左右どちらの文字列が編集対象なのかを明確に把握することができない。特に、タッチ操作やマウス操作によってキャレットを移動する場合、キー操作の場合と異なり、任意の場所から非連続にキャレットが移動するため、編集可能な部分がより把握しずらいものとなる。
このような問題を解決する従来技術として、特許文献1には、キャレットが特定の位置にあるときに、選択決定指示を行うための決定スイッチを操作することで、キャレットの移動の仕方を切り換える制御手段を備える技術が開示されている。
特開2000−276280号公報
特許文献1に開示された技術では、所望の編集方向に合わせて、キャレットの移動態様を切り替えることが可能である。しかし、そのためには、編集したい位置と異なる切り替え位置にキャレットを移動した上で、さらに選択決定指示を行う必要がある。そのため、編集効率の低下を招くという課題が残る。
本発明は、異方向部分文字列を包含する文字列を編集する際に、編集対象位置を表すキャレットの移動方向を利用者が明確に把握できるように表示する情報処理装置を提供することを主たる目的とする。
本発明によれば、文字列を、その編集対象位置を表すキャレットと共に表示する表示手段と、前記文字列のうち編集対象となる部分文字列について指定された第1位置と該第1位置から離れた第2位置とを特定する特定手段と、前記第1位置と前記第2位置の相対位置に基づいて前記キャレットの移動方向を決定する方向決定手段とを備えることを特徴とする情報処理装置が得られる。
本発明によれば、異方向部分文字列を包含する文字列を編集する際に、編集対象位置を表すキャレットの移動方向を利用者に対して直感的に把握できるように表示することができる。
本発明の第1実施形態に係る情報処理装置のハードウェア構成図。 情報処理装置の機能ブロック構成図。 異方向部分文字列を包含する文字列の例示図。 第1実施形態によりキャレットを表示させる位置を指定する要領を示す説明図。 第1実施形態による特定部の処理手順説明図。 第1実施形態による方向決定部の処理手順説明図。 第2実施形態によりキャレットを表示させる位置を指定する要領を示す説明図。 第2実施形態による特定部における処理手順説明図。
以下、本発明をタッチパネルディスプレイを有する情報処理装置に適用した場合の実施の形態例を説明する。
[第1実施形態]
図1は、第1実施形態に係る情報処理装置のハードウェア構成例を示す図である。情報処理装置は、CPU100、ROM101、RAM102、及びタッチパネルディスプレイ103をバス104を通じて接続したコンピュータの一種である。CPU(Central Processing Unit)100は、本発明の文字列編集用プログラムを実行することにより、コンピュータを情報処理装置として動作させる。ROM(Read Only Memory)101には、上記文字列編集用プログラムのほか、フォントデータなどが読み取り専用データとして格納されている。RAM(Random Access Memory)102は、CPU100のメインメモリとして機能する。タッチパネルディスプレイ103は、文字列を、その編集対象位置を表すキャレットと共に表示する表示手段として機能する。また、利用者からの指示を検出する検出手段として機能する。文字列は、後続文字の方向が互いに異なる複数の異方向部分文字列を包含する。各異方向部分文字列は、それぞれ後続文字の方向を表す方向ベクトルが関連付けてRAM102に保持される。
利用者からの指示は、例えば文字列における編集対象位置を表すキャレットの表示位置に関する指示であり、スタイラスペンや指のような操作子によるポインティング操作を通じて検出される。以下の説明では、便宜上、操作子が利用者の指である場合の例を示す。ポインティング操作は、タッチパネルディスプレイ103上で検出された指の位置の座標とその変化を表す。ポインティング操作により検出された位置(座標)を本例では「ポインティング位置」と呼ぶ。また、ポインティング位置と、ポインティング操作の内容、例えばダウン、アップ又はムーブなどの動作タイプを表す情報とを含めて本例では「ポインティング情報」と呼ぶ。
図2は、情報処理装置の機能ブロック構成図である。特定部200は、タッチパネルディスプレイ103からポインティング情報を受け取る。そして、ポインティング情報を分析することにより、文字列のうち編集対象となる部分文字列について指定された第1位置と該第1位置から離れた第2位置とを特定する。より詳しくは、タッチパネルディスプレイ103に表示された文字列のうち編集対象となる異方向部分文字列の上で行われたタッチ操作の内容及び操作位置に基づいて第1位置及び第2位置を特定する。特定の仕方については、後述する。本例では、第1位置を第1ポインティング位置とし、第2位置を第2ポインティング位置とする。
方向決定部201は、第1ポインティング位置と第2ポインティング位置の相対位置に基づいてキャレットの移動方向を決定する。本実施形態では、キャレットが隣り合う異方向部分文字列の境界に表示されているときに移動方向を決定する場合の例を示す。
図3は、異方向部分文字列の例示図である。この異方向部分文字列300は、アラビア語で「結果は100点です」という意味の文字列である。英数字の部分がLTR文字列で、他の文字列がRTL文字列である。すなわち、第一部分文字列301、第二部分文字列302、第四部分文字列304がRTL文字列であり、第三部分文字列303がLTR文字列である。本例では、ポインティング操作により、第三部分文字列303の終端位置にキャレット305を移動させ、表示させる例を示す。
図4は、キャレットの表示位置を指定する要領を示す説明図である。本例では、第二部分文字列302の終端位置ではなく、第三部分文字列303の終端位置への移動であることを明示するため、第三部分文字列303の任意の位置から所定操作を開始する。例えば、任意の位置に指をダウンし、そのまま指を右にスライドし、第三部分文字列303の終端位置でアップする。このように指をダウンし、左から右(LTR)にスライドした後にアップするという各動作から成る所定操作により、キャレット305が、LTR文字列である第三部分文字列303の終端位置に移動する。なお、指をタッチパネルにダウンすることをタッチダウン、指をタッチパネルからアップすることをタッチアップという場合もある。なお、RTL文字列である第二部分文字列302の方向から所定操作を開始する場合は、指をダウンさせ、右から左(RTL)にスライドし、第二部分文字列302の終端位置でアップする。これにより、キャレット305の位置が第二部分文字列302の終端位置に移動する。このとき、特定部200は、所定操作の開始位置を第1ポインティング位置401、該所定操作が終了した位置(アップ操作された位置)を第2ポインティング位置400と特定する。そして、方向決定部201が、2つのポインティング位置400,401から方向ベクトルを計算し、計算した方向ベクトルとRAM102に保存された方向ベクトルとの類似度に基づいてキャレット305の移動方向を決定する。
以下、情報処理装置により実行される文字列の表示方法の一例を図5及び図6を参照して説明する。図5は、特定部200の処理手順説明図である。前提として、複数の異方向部分文字列を包含する文字列を、編集対象位置を表すキャレット305と共に、タッチパネルディスプレイ103に表示する。その後、特定部200は、タッチパネルディスプレイ103に入力された利用者のポインティング情報を取得する(S500)。特定部200は、次に、ポインティング情報を分析して、タッチを開始した動作かどうか、すなわち所定操作の開始動作であったかどうかを判定する(S501)。ここでは、動作タイプがダウンであった場合に、開始動作であったと判定する。
開始動作であった場合(S501:Y)、特定部200は、ポインティング位置を第1ポインティング位置401としてRAM102に記憶し、利用者による次のポインティング操作を待つ。一方、開始動作でなかった場合(S501:N)、特定部200は、タッチを終了した動作かどうか、すなわち所定操作の終了動作であったか否かを判定する。ここでは、動作タイプがアップであった場合に、終了動作であったと判定する。終了動作でなかった場合(S503:N)、すなわち、開始動作でも終了動作でもなかった場合は、何も処理を行わずに利用者による次のポインティング操作を待つ。
終了動作であった場合(S503:Y)、特定部200は、ポインティング位置が、異方向部分文字列の境界であるか否かを判定する(S504)。異方向部分文字列の境界は、隣り合うLTR文字列とRTL文字列の共通の先頭位置であるか、共通の終了位置であるかのいずれかである。異方向部分文字列の境界でなかった場合(S504:N)、特定部200は、RAM102に記憶していた第1ポインティング位置401をクリアし(S505)、再び利用者がポインティング操作を行うのを待つ。一方、異方向部分文字列の境界であった場合(S504:Y)、特定部200は、該ポインティング位置を第2ポインティング位置400としてRAM102に記憶する(S506)。その後、処理を終了し、方向決定部201の処理に移行する。
図6は、方向決定部201の処理の手順説明図である。方向決定部201は、特定部200により特定された第2ポインティング位置400と第1ポインティング位置401の方向ベクトルを計算する(S600)。本例では、第1ポインティング位置401から第2ポインティング位置400への方向ベクトルを計算する。方向決定部201は、次に、計算した方向ベクトルと、左方向・右方向の方向ベクトルとの類似度を計算する(S601)。類似度の計算には、例えば、余弦類似度を用いる。任意の2ベクトルの余弦類似度は、両ベクトルの内積を、両ベクトルのノルムの積で割ることによって容易に求めることができ、その値が大きいほど方向ベクトルがより類似していることを意味する。これにより、利用者が左右どちらの方向に指をスライドしたかを容易に特定することができる。
方向決定部201は、続いて、方向ベクトルがLTR方向か否かを判定する(S602)。LTR方向であった場合(S602:Y)、方向決定部201は、キャレット305の位置はLTR文字列に対応すると判定する(S603)。一方、LTR方向でなかった場合(S602:N)、方向決定部201は、キャレット305の位置がRTL文字列に対応すると判定する(S604)。本例では、利用者が左から右方向に指を移動して、LTR文字列の末尾でポインティング操作を終了している。そのため、キャレット305の移動方向を、LTR文字列である第三部分文字列303の末尾(終端位置)の方向に決定する。最後に、方向決定部201は、キャレット305の位置をRAM102に記憶する(S605)。その後、処理を終了する。
以上説明した表示制御方法によれば、利用者がキャレット305を異方向部分文字列の境界に合わせる際、指を動かした方向に合わせて、編集対象がLTR文字列かRTL文字列かを直感的に指定することが可能となる。
なお、本実施形態では、数字列が混在するアラビア語の例を説明したが、異なる方向の部分文字列を包含する文字列であれば、どのような文字列であっても良い。また、特定部200は、ポインティング操作の開始位置を第1ポインティング位置、終了位置を第2ポインティング位置と特定する例を説明したが、この例に限定されない。ポインティング位置のいずれかから、第1ポインティング位置と第2ポインティング位置が特定され、その両者からキャレット305の移動方向(つまり、編集が可能になる文字の方向)が決定されれば、どのような特定方法であっても良い。
[第2実施形態]
第2実施形態では、図3で示した第三部分文字列303の終端位置にキャレット305を移動する際、所定操作が開始された位置と、所定操作後のフリック動作のポインティング位置の相対位置により、移動方向を決定する場合の例を示す。該動作を実現するためのハードウェア構成及び機能ブロック構成は、第1実施例形態と同様であるため、説明を省略する。
図7は、第2実施形態によりキャレットの位置を指定する要領の説明図である。第1実施形態では、第三部分文字列303の任意の位置から所定操作を開始する例を示した。本実施形態では、隣り合う第二部分文字列302と第三部分文字列303の境界から所定操作を開始し、該開始された位置を第1ポインティング位置700と特定する。所定操作後、フリック動作を行い、利用者の指がタッチパネルディスプレイ103から離れたポインティング位置を第2ポインティング位置701と特定する。第三部分文字列303はLTR文字列である。そのため、フリック動作も左から右(LTR)に行うことで、その末尾である終端位置にキャレット305を移動することを指定する。つまり、第2実施形態では、所定操作の開始位置が編集対象となる異方向部分文字列の終端位置となる。
なお、第1ポインティング位置700からポインティング操作を開始した後、右から左(RTL)に指をはらってフリック動作を行った場合は、RTL文字列である第二部分文字列302の末尾(終端位置)の方向にキャレット305を移動させる。
次に、第2実施形態における文字列の表示制御方法の例を説明する。図8は、第2実施形態における特定部200の処理手順説明図である。前提として、複数の異方向部分文字列を包含する文字列を、編集対象位置を表すキャレット305と共に、タッチパネルディスプレイ103に表示する。その後、特定部200は、利用者のポインティング情報を取得する(S800)。特定部200は、次に、該ポインティング操作が開始動作であったかどうかを判定する(S801)。開始動作であった場合(S801:Y)、異方向部分文字列の境界か否かを判定する(S802)。境界でない場合(S802:N)、特定部200は何も処理を行わず、利用者の次のポインティング操作を待つ。一方、境界であった場合(S802:Y)、特定部200は、該ポインティング位置を第1ポインティング位置400としてRAM102に記憶する(S803)。その後、再び利用者がポインティング操作を行うのを待つ。
S801において、開始動作でなかった場合(S801:N)、フリック動作であるか否かを判定する(S804)。これには、S800で取得したポインティング情報の動作タイプ情報を利用する。フリック動作でなかった場合(S804:N)、特定部200は、利用者の次のポインティングを待つ。一方、フリック動作であった場合(S804:Y)、特定部200は、第1ポインティング位置400が記憶済みであるか否かを判定する(S805)。記憶済でない場合(S805:N)、特定部200は、何も処理を行わずに次のポインティングを待つ。記憶済であった場合(S805:Y)、該位置を第2ポインティング位置としてRAM102に記憶する(S806)。その後、方向決定部201の処理に移行する。方向決定部201の処理は、図6に示したとおりである。
以上の第2実施形態によれば、はじめにタッチを開始した時点でキャレット305の移動先を決定した後、フリック動作を行うことでその移動方向、つまり編集可能な方向を決定することが可能となる。これにより、複数の異方向部分文字列を包含する文字列を編集する際に、編集対象がどの異方向部分文字列なのかを直感的に把握することができる。
なお、異なる方向の部分文字列が混在する文字列であれば、どのような文字列であっても良いことは第1実施形態と同じである。また、フリック動作の方向とキャレット305の移動方向の対応関係は、上記と逆の対応を行っても良い。
[変形例]
第1及び第2実施形態では、文字列に包含される異方向部分文字列上の二つの位置(第1位置及び第2装置)をいずれもポインティング位置とした例について説明したが、ポインティング操作によらず、マウス操作やキーボード操作によって指定してもよい。
また、本発明は、これまでに説明した情報処理装置においてなされる各処理を、コンピュータ上で動作させる文字列編集用プログラムとして独立に存在するものとして実施することができる。該文字列編集用プログラムは、各種記憶媒体やネットワークを介して流布させることが可能であり、記憶装置を有するコンピュータにインストールされることで本発明の情報処理装置を実現することができる。

Claims (10)

  1. 文字列を、その編集対象位置を表すキャレットと共に表示する表示手段と、
    前記文字列のうち編集対象となる部分文字列について指定された第1位置と該第1位置から離れた第2位置とを特定する特定手段と、
    前記第1位置と前記第2位置の相対位置に基づいて前記キャレットの移動方向を決定する方向決定手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記表示手段は、タッチパネルディスプレイを含み、
    前記文字列は、後続文字の方向が互いに異なる複数の異方向部分文字列を包含しており、
    前記特定手段は、前記タッチパネルディスプレイに表示された文字列のうち編集対象となる異方向部分文字列の上で行われたタッチ操作の内容及び操作位置に基づいて前記第1位置及び前記第2位置を特定することを特徴とする、
    請求項1に記載の情報処理装置。
  3. 前記特定手段は、前記編集対象となる異方向部分文字列に対する所定操作の開始位置を前記第1位置と特定するとともに、該所定操作が終了した位置を前記第2位置と特定することを特徴とする、
    請求項2に記載の情報処理装置。
  4. 前記特定手段は、前記編集対象となる異方向部分文字列に対する所定操作の開始位置を前記第1位置として特定するとともに、当該所定操作後のフリック動作のポインティング位置を前記第2位置と特定することを特徴とする、
    請求項2に記載の情報処理装置。
  5. 前記所定操作の開始位置が当該異方向部分文字列の終端位置であることを特徴とする、
    請求項4に記載の情報処理装置。
  6. 前記方向決定手段は、前記キャレットが隣り合う前記異方向部分文字列の境界に表示されているときに前記移動方向を決定することを特徴とする、
    請求項2ないし5のいずれか一項に記載の情報処理装置。
  7. 前記複数の異方向部分文字列は、それぞれ後続文字の方向を表す方向ベクトルが関連付けて保持されており、
    前記方向決定手段は、前記第1位置と前記第2位置から方向ベクトルを計算するとともに、計算した方向ベクトルと前記保存された方向ベクトルとの類似度に基づいて前記移動方向を決定することを特徴とする、
    請求項6に記載の情報処理装置。
  8. 後続文字の方向が互いに異なる複数の異方向部分文字列を包含する文字列を、編集対象位置を表すキャレットと共に、タッチパネルディスプレイに表示する工程と、
    表示された前記文字列のうち編集対象となる異方向部分文字列に対して行われた所定操作の開始位置を第1位置と特定するとともに、該所定操作の終了位置を第2位置と特定する工程と、
    前記第1位置と前記第2位置の相対位置に基づいて前記キャレットの移動方向を決定する工程と、
    を有することを特徴とする文字列の表示制御方法。
  9. 後続文字の方向が互いに異なる複数の異方向部分文字列を包含する文字列を、編集対象位置を表すキャレットと共に、タッチパネルディスプレイに表示する工程と、
    表示された前記文字列のうち編集対象となる異方向部分文字列に対して行われた所定操作の開始位置を第1位置と特定するとともに、当該所定操作後のフリック動作のポインティング位置を第2位置と特定する工程と、
    前記第1位置と前記第2位置の相対位置に基づいて前記キャレットの移動方向を決定する工程と、
    を有することを特徴とする文字列の表示制御方法。
  10. タッチパネルディスプレイが接続されたコンピュータに請求項8又は9に記載された表示制御方法を実行させるための文字列編集用プログラム。
JP2016168341A 2016-08-30 2016-08-30 情報処理装置、文字列の表示制御方法、文字列編集用プログラム Pending JP2018036787A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016168341A JP2018036787A (ja) 2016-08-30 2016-08-30 情報処理装置、文字列の表示制御方法、文字列編集用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016168341A JP2018036787A (ja) 2016-08-30 2016-08-30 情報処理装置、文字列の表示制御方法、文字列編集用プログラム

Publications (1)

Publication Number Publication Date
JP2018036787A true JP2018036787A (ja) 2018-03-08

Family

ID=61565957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016168341A Pending JP2018036787A (ja) 2016-08-30 2016-08-30 情報処理装置、文字列の表示制御方法、文字列編集用プログラム

Country Status (1)

Country Link
JP (1) JP2018036787A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581459A (zh) * 2020-06-13 2020-08-25 中国电子信息产业集团有限公司第六研究所 一种字符串匹配方法及字符串匹配系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581459A (zh) * 2020-06-13 2020-08-25 中国电子信息产业集团有限公司第六研究所 一种字符串匹配方法及字符串匹配系统
CN111581459B (zh) * 2020-06-13 2021-06-15 中国电子信息产业集团有限公司第六研究所 一种字符串匹配方法及字符串匹配系统

Similar Documents

Publication Publication Date Title
JP6991486B2 (ja) 文字列に文字を挿入するための方法およびシステム
US9329775B2 (en) Figure drawing apparatus, figure drawing method and recording medium on which figure drawing programs are recorded
US9557828B2 (en) Input information processing system, input information processing method, program and computer-readable recording medium
JP2016224599A (ja) ガイドファイル作成プログラム
JP2006164238A (ja) タッチパッド入力情報の処理方法及びタッチパッド入力情報の処理装置
JP2016224599A5 (ja)
CN103513878A (zh) 触摸输入方法及设备
KR101474856B1 (ko) 음성인식을 통해 이벤트를 발생시키기 위한 장치 및 방법
WO2016173306A1 (zh) 文本选取方法和装置、文本处理方法和装置
CN104503591A (zh) 一种基于折线手势的信息输入方法
JP5092985B2 (ja) コンテンツ装飾装置、コンテンツ装飾方法およびコンテンツ装飾プログラム
JP6330348B2 (ja) 情報処理装置
JP2013246733A (ja) 文書検索装置、方法およびプログラム
JP2018036787A (ja) 情報処理装置、文字列の表示制御方法、文字列編集用プログラム
KR101137415B1 (ko) 문자 입력 장치 및 방법 그리고 그를 위한 프로그램을 기록한 기록 매체
JPWO2015033599A1 (ja) 情報入力装置、制御方法、及びプログラム
CN104077058B (zh) 在ui对象之间进行导航的装置及方法
EP3376357A1 (en) Character input device, character input method, and character input program
JP2014183485A (ja) 入力装置、入力方法、及びコンピュータプログラム
JP2015153197A (ja) ポインティング位置決定システム
JP2001195170A (ja) 携帯型電子機器、入力制御装置、及び記憶媒体
KR101544527B1 (ko) 터치 방식을 이용한 입력 제어 방법 및 시스템
US20150347004A1 (en) Indic language keyboard interface
JP2012108810A (ja) 文字入力装置、および文字入力装置の動作方法
JP2008257551A (ja) 情報処理装置、文字入力方法、および、文字入力プログラム