(57)【特許請求の範囲】
【請求項１】
文字列および図形を表示画面に表示する表示手段と、
表示画面に表示された文字列および図形の間に文字列および図形を挿入するための挿入領域を指定する指定手段と、
指定手段によって指定された挿入領域内に挿入する挿入文字列および挿入図形を入力する入力手段と、
表示画面に表示された文字列および図形の中に形成された予め定める基準長以上の長さの空白部分のうち指定手段によって指定された挿入領域に近接する空白部分を検出する検出手段であって、前記指定手段によって指定された挿入領域の始端から該挿入領域が指定された文字列および図形の配列方向の上流側の方向、ならびに前記挿入領域の終端から該挿入領域が指定された文字列および図形の配列方向の下流側の方向のうちのいずれかで前記挿入領域に最も近接する空白部分を検出する検出手段と、
入力手段によって入力された挿入文字列および挿入図形の長さおよび検出手段によって検出された空白部分の長さを計算する計算手段と、
計算手段によって計算された空白部分の長さから予め定める基準長を減算し、減算した長さと、計算手段によって計算された挿入文字列および挿入図形の長さとを比較し、減算した長さよりも挿入文字列および挿入図形の長さが長いとき、空白部分が前記下流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の始端から空白部分の始端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させ、空白部分が前記上流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の終端から空白部分の終端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させるとともに、前記挿入文字列および挿入図形の長さが前記移動したことによって形成される新たな空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小し、前記新たな空白部分に前記縮小した挿入文字列および挿入図形を表示手段に表示させる制御手段とを含むことを特徴とする表示装置。
【請求項２】
前記制御手段は、前記新たに形成された空白部分の長さに一致するように前記挿入文字
列および挿入図形を縮小した縮小率が予め定める基準縮小率よりも小さいとき、前記挿入領域の始端から空白部分の始端までの長さと前記減算した長さとを加算し、前記挿入文字列および挿入図形ならびに前記既存文字列および既存図形からなる結合文字列および結合図形の長さが前記加算した長さに一致するように、前記結合文字列および結合図形を縮小し、縮小した結合文字列および結合図形に含まれる既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動し、前記移動したことによって形成される新たな空白部分に、前記縮小した結合文字列および結合図形に含まれる挿入文字列および挿入図形を表示手段に表示させることを特徴とする請求項１に記載の表示装置。
【請求項３】
前記制御手段は、前記指定手段によって指定された挿入領域の縦横比に基づいて縦書きであるか横書きであるかを判断し、
前記検出手段は、横書きであれば、挿入領域が指定された文字列および図形の配列方向を水平方向として前記挿入領域に最も近接する空白部分を検出し、縦書きであれば、挿入領域が指定された文字列および図形の配列方向を垂直方向として挿入領域に最も近接する空白部分を検出することを特徴とする請求項１または２に記載の表示装置。
【請求項４】
前記表示手段によって表示させるための文字列および図形を背景色のドットおよび背景色以外の色のドットからなるビットマップとして記憶する記憶手段をさらに含み、
前記制御手段は、ビットマップを予め定めるドット長からなる領域に分割し、各領域が背景色のドットのみからなる背景領域か背景色以外の色のドットを含む非背景領域かを表す領域情報を記憶手段に記憶し、領域情報に基づいて、空白部分を検出することを特徴とする請求項１〜３のいずれか１つに記載の表示装置。
【請求項５】
文字列および図形を表示画面に表示する表示手段と、表示画面に表示された文字列および図形の間に文字列および図形を挿入するための挿入領域を指定する指定手段と、指定手段によって指定された挿入領域内に挿入する挿入文字列および挿入図形を入力する入力手段とを含む表示装置で実行される表示方法であって、
表示画面に表示された文字列および図形の中に形成された予め定める基準長以上の長さの空白部分のうち指定手段によって指定された挿入領域に近接する空白部分を検出する検出工程であって、前記指定手段によって指定された挿入領域の始端から該挿入領域が指定された文字列および図形の配列方向の上流側の方向、ならびに前記挿入領域の終端から該挿入領域が指定された文字列および図形の配列方向の下流側の方向のうちのいずれかで前記挿入領域に最も近接する空白部分を検出する検出工程と、
入力手段によって入力された挿入文字列および挿入図形の長さおよび検出工程で検出された空白部分の長さを計算する計算工程と、
計算工程で計算された空白部分の長さから予め定める基準長を減算する減算工程と、
減算工程で減算した長さと挿入文字列および挿入図形の長さとを比較する比較工程と、
減算工程で減算した長さよりも挿入文字列および挿入図形の長さが長いとき、空白部分が前記下流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の始端から空白部分の始端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させ、空白部分が前記上流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の終端から空白部分の終端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させる第１の表示工程と、
前記挿入文字列および挿入図形の長さが前記移動したことによって形成される新たな空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小する縮小工程と、
前記新たな空白部分に前記縮小した挿入文字列および挿入図形を表示手段に表示させる第２の表示工程とを含むことを特徴とする表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示されている文字列の修正や追加を行うことができる表示装置および表示方法に関する。
【背景技術】
【０００２】
現在、多数のタッチパネル実現方式がある。タッチパネル実現方式のうち、比較的多く用いられている３つの方式は、抵抗膜方式、静電容量方式、および赤外線方式である。抵抗膜方式は、導電性の２つの透明電極シートをわずかな距離を保ち向かい合わせ、片方のシートに電圧を印加しておき、押された所が歪んで他方のシートに接触すると、透明電極シートが抵抗を有するので、電圧を印加していないシートに電圧が現れる。この電圧はアナログ量であるが、接触した箇所に応じて電圧が変化するので、この変化をアナログデジタル（略称：Ａ／Ｄ）コンバータ等でデジタル化して、縦と横との位置を検出するというものである。
【０００３】
静電容量方式は、ガラスなどの絶縁体の背面に透明導電材料で形成された縦横２層からなるモザイク状の配線を設け、指などを近づけるとモザイク状の配線間の静電容量が変化し、その変化によって接触位置を特定して縦横座標を得るものである。
【０００４】
赤外線方式は、四角形の縦横２辺に赤外線発光部を並べ、残りの対向する縦横２辺に赤外線受光部を並べ、１つずつ赤外線発光部を発光させて赤外線受光部での受光状態を調べることによって、赤外線発光部と赤外線発光部との間にある遮光物を検出し、縦横座標を得るという方式である。
【０００５】
文字列の修正や追加を行うことができる第１の従来技術として特許文献１に記載される手書き入力装置がある。この手書き入力装置は、ペンによる手書き入力を基本操作とする入力装置である。すでに入力されているイメージデータを訂正する場合、訂正箇所を指定するための訂正図形、たとえば１本の横線を手書き入力する。そして、新たに手書き入力されたイメージデータが訂正図形の入力位置から所定距離内の領域に入力されると、訂正図形の入力位置に表示されている訂正すべきイメージデータを消去して、訂正すべきイメージデータが消去された位置に、新たに手書き入力されたイメージデータを表示する。消去されたイメージデータの後方に隣接するイメージデータは、訂正すべきイメージデータの大きさと新たに手書き入力されたイメージデータの大きさとの差分だけ前方または後方にシフトして表示する。
【０００６】
第２の従来技術として特許文献２に記載されるタッチパネル付きディスプレイ装置がある。このタッチパネル付きディスプレイ装置は、ディスプレイ上に表示された手書き文字列の文章に別の文字列を挿入するとき、ディスプレイ上の「エリア設定」によって、挿入分の範囲を指定して挿入エリア文字列を決定した後、ディスプレイ上の「挿入場所設定」によって挿入場所を指定する。挿入エリア文字列は、挿入場所に挿入され、挿入された挿入エリア文字列以降の文章は、挿入エリア文字列の長さ分シフトされて、挿入エリア文字列の後続に接続される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平６−３２４７９７号公報
【特許文献２】特開２００４−１０２４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
紙とペンおよび消しゴムとを用いて文字を記入するという非電子化当時の方法では、文字などを追加挿入するとき、記入されている文字を消しゴムで消して最初から書き直す作業が必要である。電子化されたタッチパネルシステムで追加挿入を行う場合も、非電子化当時と同様に、記入されている文字を消して最初から書く作業が行われており、再度書き直すという手間が減らないという問題がある。
【０００９】
別の場所に書かれた文字の範囲を指定し、指定した範囲を切り取りまたは複写して貼付する場合でも、貼付先に貼付しようとする範囲が入るだけのスペースがあれば、そのまま貼付することができる。しかしながら、スペースがない場合には、貼付先の既に書き込み済みの内容を手動で移動するために、移動すべき後続部分の範囲を指定して切り取り、その部分も含めて貼付を行う必要があり、手間が掛かるという問題がある。さらに、後ろにずらすためのスペースが狭いときに挿入する場合、そのまま移動して貼付することはできない。
【００１０】
上述した第１の従来技術は、書き換えの手間を減らすため、および第２の従来技術は、挿入作業の手間を減らすために発案されたものであり、後続部分を書き直すことなく、ずらすことによって、書き換えまたは挿入を可能としてものである。しかしながら、後続部分をずらすスペースがない場合には挿入することができず、また、単純にずらして挿入すると後続部分のレイアウトが崩れてしまうという問題がある。
【００１１】
本発明の目的は、後続部分をずらすスペースがない場合にも既存の文字列に文字列を挿入することができる表示装置および表示方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明は、文字列および図形を表示画面に表示する表示手段と、
表示画面に表示された文字列および図形の間に文字列および図形を挿入するための挿入領域を指定する指定手段と、
指定手段によって指定された挿入領域内に挿入する挿入文字列および挿入図形を入力する入力手段と、
表示画面に表示された文字列および図形の中に形成された予め定める基準長以上の長さの空白部分のうち指定手段によって指定された挿入領域に近接する空白部分を検出する検出手段であって、前記指定手段によって指定された挿入領域の始端から該挿入領域が指定された文字列および図形の配列方向の上流側の方向、ならびに前記挿入領域の終端から該挿入領域が指定された文字列および図形の配列方向の下流側の方向のうちのいずれかで前記挿入領域に最も近接する空白部分を検出する検出手段と、
入力手段によって入力された挿入文字列および挿入図形の長さおよび検出手段によって検出された空白部分の長さを計算する計算手段と、
計算手段によって計算された空白部分の長さから予め定める基準長を減算し、減算した長さと、計算手段によって計算された挿入文字列および挿入図形の長さとを比較し、減算した長さよりも挿入文字列および挿入図形の長さが長いとき、空白部分が前記下流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の始端から空白部分の始端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させ、空白部分が前記上流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の終端から空白部分の終端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させるとともに、前記挿入文字列および挿入図形の長さが前記移動したことによって形成される新たな空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小し、前記新たな空白部分に前記縮小した挿入文字列および挿入図形を表示手段に表示させる制御手段とを含むことを特徴とする表示装置である。
【００１３】
また本発明は、前記制御手段は、前記新たに形成された空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小した縮小率が予め定める基準縮小率よりも小さいとき、前記挿入領域の始端から空白部分の始端までの長さと前記減算した長さとを加算し、前記挿入文字列および挿入図形ならびに前記既存文字列および既存図形からなる結合文字列および結合図形の長さが前記加算した長さに一致するように、前記結合文字列および結合図形を縮小し、縮小した結合文字列および結合図形に含まれる既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動し、前記移動したことによって形成される新たな空白部分に、前記縮小した結合文字列および結合図形に含まれる挿入文字列および挿入図形を表示手段に表示させることを特徴とする。
【００１５】
また本発明は、前記制御手段は、前記指定手段によって指定された挿入領域の縦横比に基づいて縦書きであるか横書きであるかを判断し、
前記検出手段は、横書きであれば、挿入領域が指定された文字列および図形の配列方向を水平方向として前記挿入領域に最も近接する空白部分を検出し、縦書きであれば、挿入領域が指定された文字列および図形の配列方向を垂直方向として挿入領域に最も近接する空白部分を検出することを特徴とする。
【００１６】
また本発明は、前記表示手段によって表示させるための文字列および図形を背景色のドットおよび背景色以外の色のドットからなるビットマップとして記憶する記憶手段をさらに含み、
前記制御手段は、ビットマップを予め定めるドット長からなる領域に分割し、各領域が背景色のドットのみからなる背景領域か背景色以外の色のドットを含む非背景領域かを表す領域情報を記憶手段に記憶し、領域情報に基づいて、空白部分を検出することを特徴とする。
【００１７】
また本発明は、文字列および図形を表示画面に表示する表示手段と、表示画面に表示された文字列および図形の間に文字列および図形を挿入するための挿入領域を指定する指定手段と、指定手段によって指定された挿入領域内に挿入する挿入文字列および挿入図形を入力する入力手段とを含む表示装置で実行される表示方法であって、
表示画面に表示された文字列および図形の中に形成された予め定める基準長以上の長さの空白部分のうち指定手段によって指定された挿入領域に近接する空白部分を検出する検出工程であって、前記指定手段によって指定された挿入領域の始端から該挿入領域が指定された文字列および図形の配列方向の上流側の方向、ならびに前記挿入領域の終端から該挿入領域が指定された文字列および図形の配列方向の下流側の方向のうちのいずれかで前記挿入領域に最も近接する空白部分を検出する検出工程と、
入力手段によって入力された挿入文字列および挿入図形の長さおよび検出工程で検出された空白部分の長さを計算する計算工程と、
計算工程で計算された空白部分の長さから予め定める基準長を減算する減算工程と、
減算工程で減算した長さと挿入文字列および挿入図形の長さとを比較する比較工程と、
減算工程で減算した長さよりも挿入文字列および挿入図形の長さが長いとき、空白部分が前記下流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の始端から空白部分の始端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させ、空白部分が前記上流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の終端から空白部分の終端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させる第１の表示工程と、
前記挿入文字列および挿入図形の長さが前記移動したことによって形成される新たな空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小する縮小工程と、
前記新たな空白部分に前記縮小した挿入文字列および挿入図形を表示手段に表示させる第２の表示工程とを含むことを特徴とする表示方法である。
【発明の効果】
【００１８】
本発明によれば、表示手段は、文字列および図形を表示画面に表示する。指定手段は、表示画面に表示された文字列および図形の間に文字列および図形を挿入するための挿入領域を指定する。入力手段は、指定手段によって指定された挿入領域内に挿入する挿入文字列および挿入図形を入力する。検出手段は、表示画面に表示された文字列および図形の中に形成された予め定める基準長以上の長さの空白部分のうち指定手段によって指定された挿入領域に近接する空白部分を検出する。この検出手段は、指定手段によって指定された挿入領域の始端から該挿入領域が指定された文字列および図形の配列方向の上流側の方向、ならびに挿入領域の終端から該挿入領域が指定された文字列および図形の配列方向の下流側の方向のうちのいずれかで挿入領域に最も近接する空白部分を検出する。計算手段は、入力手段によって入力された挿入文字列および挿入図形の長さおよび検出手段によって検出された空白部分の長さを計算する。そして、制御手段は、計算手段によって計算された空白部分の長さから予め定める基準長を減算し、減算した長さと、計算手段によって計算された挿入文字列および挿入図形の長さとを比較し、減算した長さよりも挿入文字列および挿入図形の長さが長いとき、空白部分が前記下流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の始端から空白部分の始端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させ、空白部分が前記上流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の終端から空白部分の終端までの間にある既存文字列および既存
図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させるとともに、前記挿入文字列および挿入図形の長さが前記移動したことによって形成される新たな空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小し、前記新たな空白部分に前記縮小した挿入文字列および挿入図形を表示手段に表示させる。したがって、後続部分をずらすスペースがない場合にも既存の文字列および図形に、文字列および図形を挿入することができる。
【００１９】
また本発明によれば、前記制御手段は、前記新たに形成された空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小した縮小率が予め定める基準縮小率よりも小さいとき、前記挿入領域の始端から空白部分の始端までの長さと前記減算した長さとを加算し、前記挿入文字列および挿入図形ならびに前記既存文字列および既存図形からなる結合文字列および結合図形の長さが前記加算した長さに一致するように、前記結合文字列および結合図形を縮小し、縮小した結合文字列および結合図形に含まれる既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動し、前記移動したことによって形成される新たな空白部分に、前記縮小した結合文字列および結合図形に含まれる挿入文字列および挿入図形を表示手段に表示させる。したがって、挿入文字列および挿入図形のみを縮小するだけでは、文字列および図形の区切りのための空白部分を確保できない場合にも、既存の文字列および図形に、文字列および図形を挿入することができる。
【００２１】
また本発明によれば、前記制御手段は、前記指定手段によって指定された挿入領域の縦横比に基づいて縦書きであるか横書きであるかを判断し、前記検出手段は、横書きであれば、挿入領域が指定された文字列および図形の配列方向を水平方向として前記挿入領域に最も近接する空白部分を検出し、縦書きであれば、挿入領域が指定された文字列および図形の配列方向を垂直方向として挿入領域に最も近接する空白部分を検出する。したがって、縦書きにも横書きにも適用することができる。
【００２２】
また本発明によれば、記憶手段は、前記表示手段によって表示させるための文字列および図形を背景色のドットおよび背景色以外の色のドットからなるビットマップとして記憶する。そして、前記制御手段は、ビットマップを予め定めるドット長からなる領域に分割し、各領域が背景色のドットのみからなる背景領域か背景色以外の色のドットを含む非背景領域かを表す領域情報を記憶手段に記憶し、領域情報に基づいて、空白部分を検出する。したがって、空白部分の検出を少ない処理量で行うことができる。
【００２３】
また本発明によれば、文字列および図形を表示画面に表示する表示手段と、表示画面に表示された文字列および図形の間に文字列および図形を挿入するための挿入領域を指定する指定手段と、指定手段によって指定された挿入領域内に挿入する挿入文字列および挿入図形を入力する入力手段とを含む表示装置で実行される表示方法で文字列を表示するにあたって、検出工程では、表示画面に表示された文字列および図形の中に形成された予め定める基準長以上の長さの空白部分のうち指定手段によって指定された挿入領域に近接する空白部分を検出する。この検出工程では、指定手段によって指定された挿入領域の始端から該挿入領域が指定された文字列および図形の配列方向の上流側の方向、ならびに前記挿入領域の終端から該挿入領域が指定された文字列および図形の配列方向の下流側の方向のうちのいずれかで前記挿入領域に最も近接する空白部分を検出する。計算工程では、入力手段によって入力された挿入文字列および挿入図形の長さおよび検出工程で検出された空白部分の長さを計算する。減算工程では、計算工程で計算された空白部分の長さから予め定める基準長を減算する。比較工程では、減算工程で減算した長さと挿入文字列および挿入図形の長さとを比較する。第１の表示工程では、減算工程で減算した長さよりも挿入文字列および挿入図形の長さが長いとき、空白部分が前記下流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の始端から空白部分の始端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させ、空白部分が前記上流側の方向にある場合は、表示画面に表示された文字列および図形のうち挿入領域の終端から空白部分の終端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示手段に表示させる。縮小工程では、前記挿入文字列および挿入図形の長さが前記移動したことによって形成される新たな空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小する
。そして、第２の表示工程では、前記新たな空白部分に前記縮小した挿入文字列および挿入図形を表示手段に表示させる。したがって、後続部分をずらすスペースがない場合にも既存の文字列および図形に、文字列および図形を挿入することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態であるタッチパネルシステム１の構成を示すブロック図である。
【図２】タッチパネル１５の構成を示すブロック図である。
【図３】ペン１９の構成を示す模式図である。
【図４】文字を挿入する操作手順を説明するための図である。
【図５】事前設定テーブルの一例を示す図である。
【図６】挿入文字列および既存文字列の縮小方法を説明するための図である。
【図７】空白部分の調べ方を説明するための図である。
【図８】タッチパネルシステム１が実行する挿入処理の処理手順を示すフローチャートである。
【図９】タッチパネルシステム１が実行する挿入処理の処理手順を示すフローチャートである。
【図１０】タッチパネルシステム１が実行する挿入処理の処理手順を示すフローチャートである。
【図１１】空白検出処理の処理手順を示すフローチャートである。
【図１２】空白検出処理の処理手順を示すフローチャートである。
【図１３】画像データを最小空白単位で分割して空白部分を調べる方法を説明するための図である。
【発明を実施するための形態】
【００２５】
図１は、本発明の一実施形態であるタッチパネルシステム１の構成を示すブロック図である。表示装置であるタッチパネルシステム１は、タッチパネル付きディスプレイ以下「ディスプレイ」という１０および表示制御装置２０を含んで構成される。本発明に係る表示方法は、タッチパネルシステム１で実行される。
【００２６】
ディスプレイ１０は、ディスプレイコントローラ１１、メモリ１２、画像メモリ１３、表示部１４、タッチパネル１５、映像入力端子１６、ディスプレイ電源部１７およびペン１９を含んで構成される。ディスプレイコントローラ１１は、たとえば中央処理装置（以下「ＣＰＵ」という）によって構成され、ディスプレイ１０全体を制御する。ディスプレイコントローラ１１は、メモリ１２に記憶されるプログラムを実行することによって、画像メモリ１３、表示部１４、タッチパネル１５および映像入力端子１６を制御する。
【００２７】
メモリ１２は、たとえば半導体メモリあるいはハードディスク装置などの記憶装置によって構成される。メモリ１２は、ディスプレイコントローラ１１で実行されるプログラム、およびディスプレイコントローラ１１がプログラムを実行するために必要な情報を記憶する。メモリ１２に記憶される情報は、ディスプレイコントローラ１１によって書き込みおよび読み出しが行われる。画像メモリ１３は、表示部１４に表示するための画像データを記憶する。画像メモリ１３に記憶される画像データは、ディスプレイコントローラ１１によって書き込みおよび読み出しが行われる。
【００２８】
表示手段である表示部１４は、たとえば液晶ディスプレイなどによって構成され、表示画面を有する。表示部１４は、ディスプレイコントローラ１１から受け取る画像データを表示画面に表示する。ディスプレイコントローラ１１は、映像入力端子１６から受け取る映像信号を表示画面データに変換し、変換した表示画面データを画像メモリ１３に記憶し、画像メモリ１３に記憶される表示画面データを表示部１４に送って表示画面に表示させる。
【００２９】
タッチパネル１５は、表示部１４の表示画面に対向して設けられ、ペン１９が表示画面上のどこに接触したかを検出する。タッチパネル１５は、検出した位置を表す位置情報を表示制御装置２０に送信する。ペン１９は、実際には、タッチパネル１５に接触するが、タッチパネル１５に接触することを、表示画面に接触するともいう。タッチパネル１５およびペン１９は、指定手段および入力手段である。
【００３０】
以下、表示部１４の表示画面に向かって表示画面の左上を原点とし、右方向をＸ軸の正方向、下方向をＹ軸の正方向とするＸＹ座標で座標位置を表す。また、Ｘ軸方向を、水平方向または横方向ともいい、Ｙ軸方向を、垂直方向または縦方向ともいう。
【００３１】
タッチパネル１５は、受信部１５１、出力部１５２およびタッチパネル電源部１５３を含んで構成される。受信部１５１は、ペン１９と通信する通信装置である。受信部１５１は、ペン１９から、ペン１９の状態を表す状態情報を受信する。出力部１５２は、ペン１９が表示部１４の表示画面に接触した位置を表す位置情報およびペン１９が表示部１４の表示画面に接触しているか否かを表す接触状態情報を、表示制御装置２０に送信する。タッチパネル電源部１５３は、受信部１５１および出力部１５２などに電力を供給する動作用電源部である。
【００３２】
映像入力端子１６は、表示制御装置２０から入力される映像信号を受信するための端子である。映像入力端子１６は、受信した映像信号をディスプレイコントローラ１１に送る。ディスプレイ電源部１７は、ディスプレイコントローラ１１、メモリ１２、画像メモリ１３および映像入力端子１６に電力を供給する電源である。表示部１４およびタッチパネル１５は、それぞれ独立した動作用電源部、つまり電源を有する。ペン１９は、タッチパネル１５から情報を入力するための指示具、つまりポインティングデバイスであり、たとえばタッチペンによって構成される。
【００３３】
表示制御装置２０は、たとえばパーソナルコンピュータによって構成される。表示制御装置２０は、ＣＰＵ２１、ランダムアクセスメモリ（以下「ＲＡＭ」という）２２、グラフィカルＲＡＭ（以下「ＧＲＡＭ」という）２３、映像出力端子２４、記憶デバイス２５、入出力端子２６、バス２７および表示制御電源部２８を含んで構成される。
【００３４】
ＣＰＵ２１は、記憶デバイス２５に記憶されるプログラムを実行することによって、ＧＲＡＭ２３、映像出力端子２４および入出力端子２６を制御する。ＲＡＭ２２は、ＣＰＵ２１がプログラムを実行するために必要な情報を記憶する。ＧＲＡＭ２３は、ディスプレイ１０に表示するための画像データを記憶する。ＲＡＭ２２およびＧＲＡＭ２３に記憶される情報は、ＣＰＵ２１によって、書き込みおよび読み出しが行われる。ＣＰＵ２１は、タッチパネル１５から知らされる情報、たとえばペン１９が表示画面に接触する位置を表す位置情報に基づいて、後述する挿入処理を実行する。ＣＰＵ２１は、検出手段、計算手段および制御手段である。
【００３５】
映像出力端子２４は、ＧＲＡＭ２３に記憶される画像データをディスプレイ１０に送信するための端子である。ＣＰＵ２１は、ＧＲＡＭ２３から画像データを読み出して、映像出力端子２４に送る。映像出力端子２４は、ディスプレイ１０の映像入力端子１６に接続され、ＣＰＵ２１から受け取る画像データを映像信号として映像入力端子１６に送信する。ＧＲＡＭ２３に記憶される画像データが表示部１４の表示画面に表示される。すなわち、ＣＰＵ２１は、ＧＲＡＭ２３に記憶される画像データを書き換えることによって、表示部１４の表示画面に表示される画像を変更することができる。
【００３６】
記憶手段である記憶デバイス２５は、たとえば半導体メモリあるいはハードディスク装置などの記憶装置によって構成される。記憶デバイス２５は、ＣＰＵ２１で実行されるプログラム、および設定情報などの情報を記憶する。入出力端子２６は、タッチパネル１５の出力部１５２から送信される情報を受信するための端子であり、受信した情報をＣＰＵ２１に送る。バス２７は、ＣＰＵ２１、ＲＡＭ２２、ＧＲＡＭ２３、映像出力端子２４、記憶デバイス２５および入出力端子２６のそれぞれの間で情報を送受信するためのデータバスである。表示制御電源部２８は、ＣＰＵ２１、ＲＡＭ２２、ＧＲＡＭ２３、映像出力端子２４、記憶デバイス２５および入出力端子２６に電力を供給する電源である。
【００３７】
図２は、タッチパネル１５の構成を示すブロック図である。図２に示したタッチパネル１５は、赤外線発光ダイオードとフォトトランジスタとを用いる赤外線方式の一例である。タッチパネル１５は、赤外線方式に限定されるものではなく、たとえば抵抗膜方式あるいは静電容量方式などの方式であってもよい。
【００３８】
タッチパネル１５は、上述した受信部１５１、出力部１５２およびタッチパネル電源部１５３のほかに、タッチパネルコントローラ１５４、発光部制御回路１５５、第１赤外線発光部アレイ１５６、第２赤外線発光部アレイ１５７、第１赤外線受光部アレイ１５８、第２赤外線受光部アレイ１５９、受光部制御回路１６０、座標生成部１６１およびタッチパネル電源スイッチ１６２を含んで構成される。
【００３９】
タッチパネルコントローラ１５４は、たとえばＣＰＵによって構成され、図示しない記憶装置に記憶されるプログラムを実行することによって、受信部１５１、出力部１５２、発光部制御回路１５５、受光部制御回路１６０および座標生成部１６１を制御する。発光部制御回路１５５は、タッチパネルコントローラ１５４からの指示によって、第１赤外線発光部アレイ１５６および第２赤外線発光部アレイ１５７を制御する。
【００４０】
第１赤外線発光部アレイ１５６は、複数の赤外線発光ダイオードを含んで構成される。第１赤外線発光部アレイ１５６の複数の赤外線発光ダイオードは、Ｙ軸方向に配列される。第２赤外線発光部アレイ１５７は、複数の赤外線発光ダイオードを含んで構成される。第２赤外線発光部アレイ１５７の複数の赤外線発光ダイオードは、Ｘ軸方向に配列される。
【００４１】
第１赤外線受光部アレイ１５８は、複数のフォトトランジスタあるいはフォトダイオードを含んで構成される。第１赤外線受光部アレイ１５８の複数のフォトトランジスタあるいはフォトダイオードは、Ｙ軸方向に配列される。第１赤外線受光部アレイ１５８の各フォトトランジスタあるいは各フォトダイオードは、第１赤外線発光部アレイ１５６の各赤外線発光ダイオードとそれぞれ対になるように配列され、各フォトトランジスタあるいは各フォトダイオードは、対になる赤外線発光ダイオードからの赤外線を受光する。第２赤外線受光部アレイ１５９は、複数のフォトトランジスタあるいはフォトダイオードを含んで構成される。第２赤外線受光部アレイ１５９の複数のフォトトランジスタあるいはフォトダイオードは、Ｘ軸方向に配列される。第２赤外線受光部アレイ１５９の各フォトトランジスタあるいは各フォトダイオードは、第２赤外線発光部アレイ１５７の各赤外線発光ダイオードとそれぞれ対になるように配列され、各フォトトランジスタあるいは各フォトダイオードは、対になる赤外線発光ダイオードからの赤外線を受光する。
【００４２】
第１赤外線発光部アレイ１５６および第１赤外線受光部アレイ１５８は、表示画面上でのＹ軸方向、つまり縦方向のペン１９のペン先の位置を検出する。第２赤外線発光部アレイ１５７および第２赤外線受光部アレイ１５９は、表示画面上でのＸ軸方向、つまり横方向のペン１９のペン先の位置を検出する。
【００４３】
発光部制御回路１５５は、第１赤外線発光部アレイ１５６の赤外線発光ダイオード、つまり縦方向の赤外線発光ダイオードを１つずつ順次点灯するとともに、第２赤外線発光部アレイ１５７の赤外線発光ダイオード、つまり横方向の赤外線発光ダイオードを１つずつ順次点灯して、スキャンする。
【００４４】
受光部制御回路１６０は、第１赤外線受光部アレイ１５８および第２赤外線受光部アレイ１５９での受光状態を検出する。もしも、ペン１９がタッチパネル１５に接触していれば、第１赤外線発光部アレイ１５６の赤外線発光ダイオードのうちのいずれか１つの赤外線発光ダイオードから発光された赤外線は、ペン１９のペン先で散乱あるいは遮断されるため、その赤外線発光ダイオードと対のフォトトランジスタあるいはフォトダイオードが検出する赤外線の量が低下する。また、第２赤外線発光部アレイ１５７の赤外線発光ダイオードのうちのいずれか１つの赤外線発光ダイオードから発光された赤外線は、ペン１９のペン先で散乱あるいは遮断されるため、その赤外線発光ダイオードと対のフォトトランジスタあるいはフォトダイオードが検出する赤外線の量が低下する。
【００４５】
受光部制御回路１６０は、第１赤外線受光部アレイ１５８のフォトトランジスタあるいはフォトダイオードのうちで、赤外線の量が低下したフォトトランジスタあるいはフォトダイオードの位置、つまり縦方向の位置、および第２赤外線受光部アレイ１５９のフォトトランジスタあるいはフォトダイオードのうちで、赤外線の量が低下したフォトトランジスタあるいはフォトダイオードの位置、つまり横方向の位置を座標生成部１６１に送る。
【００４６】
座標生成部１６１は、受光部制御回路１６０から受け取る位置、つまり赤外線の量が低下したフォトトランジスタあるいはフォトダイオードの縦方向および横方向の位置に基づいて、位置座標を生成する。具体的には、受光部制御回路１６０から受け取る位置、つまり赤外線の量が低下したフォトトランジスタあるいはフォトダイオードの縦方向および横方向の位置を、ＸＹ座標系での位置座標に変換する。座標生成部１６１は、生成した位置座標をタッチパネルコントローラ１５４に送る。タッチパネルコントローラ１５４は、座標生成部１６１から受け取る位置座標によって、ペン１９のペン先がタッチパネル１５、つまり表示画面に接触しているＸＹ座標系での位置を認識することができる。
【００４７】
タッチパネル電源スイッチ１６２は、タッチパネル電源部１５３による電力の供給および電力の供給停止を切り換えるスイッチである。
【００４８】
タッチパネル１５は、タッチパネル１５に押し付けられているペン１９のペン先１９０の位置を、発光部制御回路１５５、第１赤外線発光部アレイ１５６、第２赤外線発光部アレイ１５７、第１赤外線受光部アレイ１５８、第２赤外線受光部アレイ１５９および受光部制御回路１６０によってスキャンし、スキャンして得られたペン先１９０の位置座標およびペン１９の後述するスイッチの状態を表す情報を、出力部１５２を介して表示制御装置２０に送信する。
【００４９】
図３は、ペン１９の構成を示す模式図である。ペン１９は、ペン先スイッチ１９１、操作スイッチ１９２、スイッチ検出部１９３、送信部１９４、ペン電源スイッチ１９５およびペン電源部１９６を含んで構成される。
【００５０】
ペン先スイッチ１９１は、ペン先１９０がタッチパネル１５に押し付けられたことを検出するスイッチである。操作スイッチ１９２は、ペン１９の動作を切り換えるための切換操作などを行うための押しボタン式のスイッチである。スイッチ検出部１９３は、ペン先スイッチ１９１の状態、および操作スイッチ１９２の状態を検出し、検出した状態を表す情報を送信部１９４に送る。
【００５１】
送信部１９４は、スイッチ検出部１９３から受け取る状態を表す情報を、タッチパネル１５の受信部１５１に送信する。ペン電源スイッチ１９５は、ペン電源部１９６による電力の供給および電力の供給停止を切り換えるスイッチである。ペン電源部１９６は、ペン先スイッチ１９１、操作スイッチ１９２、スイッチ検出部１９３および送信部１９４に電力を供給する動作用電源部である。
【００５２】
図４は、文字を挿入する操作手順を説明するための図である。図４（ａ）は、文字列が表示されている表示画面３１の一例である。図４（ａ）に示した表示画面３１には、「次回の打合せ：１２／１３（月）第２会議室  １５：００」という文字列が表示されている。文字列は、２以上の文字からなる文字列だけでなく、１つの文字からなる文字列も含む。
【００５３】
図４（ｂ）は、図４（ａ）に示した表示画面３１に挿入領域３２１を指定した表示画面３２の一例を示す図である。挿入領域３２１は、文字を挿入する領域である。図４（ｂ）に示した表示画面３２では、挿入領域３２１が、文字列「第２会議」を囲うように表示されている。
【００５４】
図４（ｃ）は、挿入領域３２１に挿入する文字からなる文字列（以下「挿入文字列」という）３３１が表示されている表示画面３３の一例を示す。図４（ｃ）に示した表示画面３３では、挿入領域３２１に「ＢＳ事業部」という挿入文字列３３１が表示されている。挿入領域３２１にあった文字列は消去され、挿入文字列３３１が表示されている。
【００５５】
図４（ｄ）は、挿入文字列３３１を縮小して挿入した表示画面３４の一例を示す図である。図４（ｄ）に示した表示画面３４では、挿入文字列３３１の文字列「ＢＳ事業部」と挿入領域３２１の位置にあった文字列「第２会議室」とが結合され、結合された文字列（以下「結合文字列」という）３４１、つまり「ＢＳ事業部第２会議室」という文字列が縮小されて表示されている。
【００５６】
図４に示した例では、文字列に文字を挿入する例を示したが、文字列に限定されるものではなく、たとえばペン１９で描かれる線などの図形でもよく、文字列と図形とが混在していてもよい。以下、文字列について説明するが、図形の場合、ならびに文字列および図形を含む場合も同様である。
【００５７】
図５は、事前設定テーブルの一例を示す図である。事前設定テーブルは、表示制御装置２０の記憶デバイス２５に記憶される設定情報である。図５（ａ）は、挿入モード移動方向設定テーブル４１の一例を示す図である。図５（ｂ）は、挿入モード縮小制限値テーブル４２の一例を示す図である。図５（ｃ）は、挿入モード最小空白設定テーブル４３の一例を示す図である。
【００５８】
図５（ａ）に示した挿入モード移動方向設定テーブル４１は、挿入領域の位置に表示されていた文字列をどちらの方向に移動するかが設定されているテーブルである。挿入モード移動方向設定テーブル４１には、テーブルのタイトル欄、説明文欄、横移動方向設定欄４１１および縦移動方向設定欄４１２が設けられている。
【００５９】
図５（ａ）には、テーブルのタイトル欄に、「挿入モード移動方向設定テーブル」が表示され、説明分欄に、「（左又は上：０、右又は下：１）」と表示されている。横移動方向設定欄４１１には、「横移動方向Ｄｘ」と付記され、入力欄に「１」と入力されている。縦移動方向設定欄４１２には、「縦移動方向Ｄｙ」と付記され、入力欄に「１」と入力されている。すなわち、図５（ａ）に示した挿入モード移動方向設定テーブル４１には、「Ｄｘ＝１」および「Ｄｙ＝１」が設定されており、横書きの場合、移動方向は右であり、縦書きの場合、移動方向は下であることを示している。なお、「Ｄｘ＝０」および「Ｄｙ＝０」が設定されている場合は、横書きの場合、移動方向は左であり、縦書きの場合、移動方向は上であることを示す。
【００６０】
図５（ｂ）に示した挿入モード縮小制限値テーブル４２は、挿入文字列を縮小して表示するときの制限縮小率が設定されているテーブルである。縮小率は、縮小後の文字列の長さを縮小前の文字列の長さで除算した値である。制限縮小率は、挿入文字列を縮小する下限の縮小率である。挿入モード縮小制限値テーブル４２には、テーブルのタイトル欄、横方向設定欄４２１および縦方向設定欄４２２が設けられている。
【００６１】
図５（ｂ）には、テーブルのタイトル欄に、「挿入モード縮小制限値テーブル」が表示されている。横方向設定欄４２１には、「横方向ＬＭｘ」と付記され、入力欄に「０．７」と入力されている。縦方向設定欄４２２には、「縦方向ＬＭｙ」と付記され、入力欄に「０．５」と入力されている。すなわち、図５（ｂ）に示した挿入モード縮小制限値テーブル４２には、「ＬＭｘ＝０．７」および「ＬＭｙ＝０．５」が設定されており、横書きの場合、制限縮小率は「０．７」であり、縦書きの場合、制限縮小率は「０．５」であることを示している。制限縮小率は、予め定める基準縮小率である。
【００６２】
図５（ｃ）に示した挿入モード最小空白設定テーブル４３は、文字列の区切りを明確にするために設けられる空白部分の最小限の長さが設定されているテーブルである。挿入モード最小空白設定テーブル４３には、テーブルのタイトル欄、横空白設定欄４３１および縦空白設定欄４３２が設けられている。最小空白は、文字列の区切りを明確にするために設けられる最小限の長さの空白部分のことである。最小空白の長さは、予め定める基準長である。
【００６３】
図５（ｃ）には、テーブルのタイトル欄に、「挿入モード最小空白設定テーブル」が表示されている。横空白設定欄４３１には、「横空白ＬＳｘ」と付記され、入力欄に「１５」と入力されている。縦空白設定欄４３２には、「縦空白ＬＳｙ」と付記され、入力欄に「２０」と入力されている。すなわち、図５（ｃ）に示した挿入モード最小空白設定テーブル４３には、「ＬＳｘ＝１５」および「ＬＳｙ＝２０」が設定されており、横書きの場合、最小空白の長さは「１５」であり、縦書きの場合、最小空白の長さは「２０」であることを示している。空白部分の長さの単位は、ドットである。以下、長さのことをサイズともいう。
【００６４】
図６は、挿入文字列および既存文字列の縮小方法を説明するための図である。図６（ａ）は、文字を挿入する前の文字列を示している。「ＡＢＦＧＨＩ」という文字列５１と「ａｂｃｄｅｆｇｈｉ」という文字列５２の間に長さＬ３の空白部分がある例である。
【００６５】
図６（ｂ）は、従来技術によって、挿入文字列「ＣＤＥ」を文字列「ＡＢ」と文字列「ＦＧＨI」との間に挿入した例である。挿入文字列「ＣＤＥ」の長さＬ１だけ、文字列「ＦＧＨI」、空白部分５３および「ａｂｃｄｅｆｇｈｉ」という文字列５２が右方向に移動している。挿入文字列「ＣＤＥ」の挿入によって、文字「Ｉ」は、「ａｂｃｄｅｆｇｈｉ」という文字列５２があった位置まで移動している。「ａｂｃｄｅｆｇｈｉ」という文字列５２は、元の位置から長さＬ１移動している。既存文字列は、挿入領域の始端から近接する空白部分の始端までにある文字列であり、図６の場合、「ＦＧＨI」の文字列が既存文字列である。
【００６６】
図６（ｃ）は、空白部分５３の長さをＬ３よりも短くした例である。この場合も、挿入文字列「ＣＤＥ」の長さが長いので、「ａｂｃｄｅｆｇｈｉ」という文字列５２は、元の位置から長さＬ４だけ移動している。もし、「ａｂｃｄｅｆｇｈｉ」という文字列５２の上下に、「ａｂｃｄｅｆｇｈｉ」という文字列５２と関係する文字列がある場合、レイアウトが変わってしまうことになる。 
【００６７】
図６（ｄ）は、タッチパネルシステム１によって、挿入文字列「ＣＤＥ」を挿入した例である。挿入文字列「ＣＤＥ」と既存文字列「ＦＧＨＩ」とを縮小しているので、「ａｂｃｄｅｆｇｈｉ」という文字列５２の位置は変化しない。したがって、「ａｂｃｄｅｆｇｈｉ」という文字列５２の上下に、「ａｂｃｄｅｆｇｈｉ」という文字列５２と関係する文字列があっても、「ａｂｃｄｅｆｇｈｉ」という文字列５２が関係するレイアウトは変化しない。
【００６８】
図６（ｄ）における縮小率の計算方法を以下に説明する。すなわち、図６（ａ）に示した挿入文字列「ＣＤＥ」を文字列「ＡＢ」と文字列「ＦＧＨI」との間に挿入する場合を例に説明する。挿入モード移動方向設定テーブル４１の横移動方向Ｄｘが「１」であり、挿入モード最小空白設定テーブル４３の横空白ＬＳｘが「ＬＳｘ」であるとし、文字列「ＦＧＨＩ」の長さを「Ｌ２」とし、Ｌ１＞Ｌ３であるとする。長さの単位は、ドットである。
【００６９】
図６（ｂ）の場合、「ａｂｃｄｅｆｇｈｉ」という文字列５２は、長さＬ１だけ右方向に移動し、図６（ｃ）の場合、「ａｂｃｄｅｆｇｈｉ」という文字列５２は、長さＬ４だけ右方向に移動する。このとき、空白部分の長さは、最小空白の長さＬＳｘであり、Ｌ４＝Ｌ１−Ｌ３＋ＬＳｘである。
【００７０】
図６（ｄ）の場合、「ａｂｃｄｅｆｇｈｉ」という文字列５２の位置は移動することなく、長さＬＳｘの空白部分を設けて、「ＣＤＥＦＧＨＩ」の文字列を長さＬ５に縮小して表示する。縮小率Ｍｘは、長さＬ５を「ＣＤＥＦＧＨＩ」の文字列の縮小前の長さ（Ｌ１＋Ｌ２）で除算した値である。長さＬ５は、Ｌ５＝Ｌ２＋Ｌ３−ＬＳｘである。したがって、縮小後の「ＣＤＥＦＧＨＩ」の文字列の長さは、元の長さ「Ｌ１＋Ｌ２」のＭｘ倍の長さになる。
【００７１】
図７は、空白部分の調べ方を説明するための図である。タッチパネル１５の座標範囲を、ＸＹ座標で座標（０，０）から座標（Ｘｍａｘ,Ｙｍａｘ）の範囲とし、挿入指定範囲ＳＨを、ＸＹ座標で座標（ｘ１,ｙ１）、座標（ｘ１,ｙ２）、座標（ｘ２,ｙ１）、および座標（ｘ２,ｙ２）の４点で囲まれる範囲とする。挿入領域は、挿入指定範囲で表わされる領域である。タッチパネル１５の座標範囲は、表示画面のＸＹ座標で表わされる座標範囲と同じである。
【００７２】
以下、文字列が描画オブジェクトとして管理されている場合を例にして説明する。ここで、描画オブジェクトとは、手書き文字、文字、あるいは図等を、それぞれで、関連のあるものを１単位としてまとめたものである。たとえば、「オブジェクト」と手書きされた文字列は、１つ１つの文字、たとえば文字「オ」、文字「ブ」、文字「ジ」、文字「ェ」、文字「ク」、および文字「ト」がそれぞれ別に管理されるのでなく、「オブジェクト」という文字列が一塊として管理される。各オブジェクトは、オブジェクト単位で、表示画面上の位置およびサイズが管理されている。 
【００７３】
図７に示したように、挿入指定範囲ＳＨに重なる描画オブジェクトＢ２があり、挿入指定範囲ＳＨには重ならないが同じ縦位置、つまりＹ座標でｙ１〜ｙ２の範囲内に描画オブジェクトＢ５があるものとする。
【００７４】
挿入指定範囲ＳＨと描画オブジェクトとが重なっているか否かは、挿入指定範囲ＳＨと各描画オブジェクトの描画位置情報を比較することによって判別することができる。描画位置情報は、描画オブジェクトの表示画面上の位置およびサイズを表す情報である。図７に示したように、挿入指定範囲ＳＨに重なっている描画オブジェクトＢ２に対して、挿入文字列を挿入する挿入処理を行うということは、描画オブジェクトＢ２のうち、Ｘ座標がｘ１よりも小さい部分と、Ｘ座標がｘ１よりも大きい部分との間に、挿入文字列を挿入するということになる。
【００７５】
ここでは、挿入方向が右側、つまり挿入文字列を挿入することによって既存文字列を移動させる方向が右方向であるとすると、挿入指定範囲ＳＨと重なっている描画オブジェクトＢ２の最も右端のＸ座標ｘ３と、その右方向にある描画オブジェクトＢ５の左端のＸ座標ｘ５との差を求め、さらに、その差から挿入モード最小空白設定テーブル４３の横空白ＬＳｘ、つまりＸ座標でｘ４〜Ｘ５までの長さを減じることによって、既存文字列を移動することができる空白部分のサイズ、つまりＸ座標でｘ３〜ｘ４までの長さを求めることができる。
【００７６】
図８〜図１０は、タッチパネルシステム１が実行する挿入処理の処理手順を示すフローチャートである。挿入処理は、挿入モードに切り換えられたときに実行される処理である。挿入モードは、既に書かれた文字列のある部分に、新たに別の文字列を挿入するための動作モードである。挿入処理では、操作者が、挿入モードに切り換え、挿入領域を指定すると、自動的にその指定された挿入領域の形に応じて、挿入方向を決め、挿入文字列を挿入する。ここで、タッチパネル１５のＸＹ座標は、表示画面と同じであり、表示画面に向かって左上を原点（０，０）とし、右下の座標を（Ｘｍａｘ,Ｙｍａｘ）とする。 
【００７７】
操作者が、ペン１９の操作スイッチ１９２によって、動作モードを挿入モードに切り換えるための操作を行うと、挿入モードに切り換えることを指示する挿入モード切換指示が、スイッチ検出部１９３で検出され、検出された挿入モード切換指示が、送信部１９４、受信部１５１、タッチパネルコントローラ１５４、出力部１５２、および入出力端子２６を介して、ＣＰＵ２１に送られる。ＣＰＵ２１は、挿入モード切換指示を受け取ると、ステップＡ１に移る。
【００７８】
ステップＡ１では、ＣＰＵ２１は、動作モードを挿入モードに切り換える。ステップＡ２では、操作者がペン１９によって挿入領域を２点（ｘ１，ｙ１），（ｘ２，ｙ２）で指定する。タッチパネルコントローラ１５４は、指定された２点（ｘ１，ｙ１），（ｘ２，ｙ２）を表す情報を、出力部１５２および入出力端子２６を介して、ＣＰＵ２１に送る。ステップＡ３では、ＣＰＵ２１は、挿入領域を表すＸＹ座標（ｘ１，ｙ１），（ｘ２，ｙ２）のデータを記憶デバイス２５に記憶することによって退避する。
【００７９】
また、ＣＰＵ２１は、挿入領域に元々表示されていたデータを退避する。具体的には、ＣＰＵ２１は、表示画面に表示されているすべての文字列のデータがＧＲＡＭ２３上に展開されて記憶されている場合は、ＧＲＡＭ２３に記憶されているデータのうち、挿入領域に表示されていたデータを、ＲＡＭ２２に確保された退避領域に書き込んで退避する。
【００８０】
もし、表示画面に表示されているすべての文字列のデータがストロークデータとして、ＲＡＭ２２に記憶されており、ＲＡＭ２２のストロークデータを元に、表示画面に表示する画像データが作成されて、ＧＲＡＭ２３に展開される場合には、ＣＰＵ２１は、ＲＡＭ２２に記憶されるデータのうち、挿入領域に表示されていたデータを、ＲＡＭ２２に別に確保された退避領域に書き込んで退避する。ストロークデータとは、表示画面と同じように画素の集まりとするビットマップとして処理をする方法ではなく、ペン先１９１を画面上で動かした軌跡情報として記憶したデータである。ストロークデータとして管理する場合、どの位置にどの位の大きさで表示するかを指定すると、そのストロークデータを画面上のビットマップに変換する必要がある。変換処理が必要とはなるが、オブジェクトをストロークデータに対応させると、１つのオブジェクトを拡大、縮小、移動、輻射、あるいは消去することが容易になる。文字フォントに例えれば、ビットマップフォントとベクトルフォントとの差である。
【００８１】
ステップＡ４では、ＣＰＵ２１は、挿入領域の縦横比Ｒ＝｜ｘ１−ｘ２｜÷｜ｙ１−ｙ２｜を算出する。ステップＡ５では、ＣＰＵ２１は、縦横比Ｒが「１」より小さいか否かを判定する。縦横比Ｒが「１」より小さいとき、垂直シフトであり、ステップＡ１４に進み、縦横比Ｒが「１」より小さくないとき、水平シフトであり、ステップＡ６に進む。
【００８２】
ステップＡ６では、ＣＰＵ２１は、横移動方向Ｄｘの値を記憶デバイス２５に記憶される挿入モード移動方向設定テーブル４１から読み出す。ステップＡ７では、ＣＰＵ２１は、Ｄｘ＝１であるか否かを判定する。Ｄｘ＝１であるとき、移動方向は右方向であり、ステップＡ８に進み、Ｄｘ＝１でないとき、移動方向は左方向であり、ステップＡ１３に進む。ステップＡ８では、ＣＰＵ２１は、右方向の空白部分のサイズＳｘを取得する。具体的には、挿入領域の右方向で最も挿入領域に近接する空白部分を検出し、検出した空白部分の横方向のサイズ、つまり長さＳｘを求める。空白部分の検出方法については、図１１，１２で詳述する。右方向とは、文字列の配列方向の下流側の方向であり、左方向とは、文字列の配列方向の上流側の方向である。
【００８３】
ステップＡ９では、ＣＰＵ２１は、挿入文字列の横方向の長さＩｘ＝（ｘ２−ｘ１）、および移動可能な空白部分の長さ「Ｓｘ−ＬＳｘ」を計算する。移動可能な空白部分とは、検出された空白部分から最小空白を除いた部分である。挿入領域に入力される文字列は、操作者がペン１９によって挿入領域に入力した文字列であり、タッチパネル１５から出力部１５２および入出力端子２６を介して、ＣＰＵ２１に送られる位置情報が示す位置によって、ＣＰＵ２１が文字認識によって認識する。ＣＰＵ２１は、挿入領域に入力された挿入文字列のデータを、ＧＲＡＭ２３の挿入領域に表示されていたデータの位置に記憶して挿入する。
【００８４】
ステップＡ１０では、ＣＰＵ２１は、Ｉｘ＞（Ｓｘ−ＬＳｘ）であるか否かを判定する。Ｉｘ＞（Ｓｘ−ＬＳｘ）であるとき、つまり挿入文字列の横方向の長さＩｘが、空白部分の長さＳｘから横空白ＬＳｘを減算した長さ、つまり移動可能な空白部分の長さよりも大きいとき、図９に示すステップＡ３０に進む。Ｉｘ＞（Ｓｘ−ＬＳｘ）でないとき、つまり挿入文字列の横方向の長さＩｘが、空白部分の長さＳｘから横空白ＬＳｘを減算した長さ、つまり移動可能な空白部分の長さよりも大きくないとき、ステップＡ１１に進む。
【００８５】
ステップＡ１１では、ＣＰＵ２１は、元データ、つまり既存文字列をＩｘだけ移動する。具体的には、挿入領域の始端からステップＡ８またはステップＡ１３で検出した空白部分の始端までの間にある文字列、つまり既存文字列を、検出した空白部分の方向に挿入文字列の横方向の長さＩｘだけ移動して表示画面に表示する。より詳細には、ＲＡＭ２２に退避された元の文字列のデータ、つまり既存文字列の位置を、指定された挿入領域のサイズ分ずらして、ＧＲＡＭ２３に書き込み、表示を更新する。
【００８６】
ステップＡ１２では、ＣＰＵ２１は、書き込んだデータを確定し、挿入処理を終了する。すなわち、タッチパネル１５によって挿入領域に書き込まれたデータ、つまり挿入文字列を表示部１４に送り、既存文字列を移動したことによって新たに形成された空白部分に挿入文字列を表示させて、挿入処理を終了する。より詳細には、挿入領域に書き込まれたデータ、つまり挿入文字列のデータを、既存文字列のデータが記憶されていたＧＲＡＭ２３の位置に書き込み、表示を更新する。
【００８７】
ステップＡ１３では、ＣＰＵ２１は、左方向の空白部分のサイズＳｘを取得し、ステップＡ９に進む。具体的には、挿入領域の左方向で最も挿入領域に近接する空白部分を検出し、検出した空白部分の横方向のサイズ、つまり長さＳｘを求め、ステップＡ９に進む。
【００８８】
ステップＡ１４では、ＣＰＵ２１は、縦移動方向Ｄｙの値を記憶デバイス２５に記憶される挿入モード移動方向設定テーブル４１から読み出す。ステップＡ１５では、ＣＰＵ２１は、Ｄｙ＝１であるか否かを判定する。Ｄｙ＝１であるとき、移動方向は下方向であり、ステップＡ１６に進み、Ｄｙ＝１でないとき、移動方向は上方向であり、ステップＡ２１に進む。ステップＡ１６では、ＣＰＵ２１は、下方向の空白部分のサイズＳｙを取得する。具体的には、挿入領域の下方向で最も挿入領域に近接する空白部分を検出し、検出した空白部分の縦方向のサイズ、つまり長さＳｙを求める。
【００８９】
ステップＡ１７では、ＣＰＵ２１は、挿入文字列の縦方向の長さＩｙ＝（ｙ２−ｙ１）、および移動可能な空白部分の長さ「Ｓｙ−ＬＳｙ」を計算する。ステップＡ１８では、ＣＰＵ２１は、Ｉｙ＞（Ｓｙ−ＬＳｙ）であるか否かを判定する。Ｉｙ＞（Ｓｙ−ＬＳｙ）であるとき、つまり挿入文字列の縦方向の長さＩｙが、空白部分の長さＳｙから縦空白ＬＳｙを減算した長さ、つまり移動可能な空白部分の長さよりも大きいとき、図１０に示すステップＡ５０に進む。Ｉｙ＞（Ｓｙ−ＬＳｙ）でないとき、つまり挿入文字列の縦方向の長さＩｙが、空白部分の長さＳｙから縦空白ＬＳｙを減算した長さ、つまり移動可能な空白部分の長さよりも大きくないとき、ステップＡ１９に進む。
【００９０】
ステップＡ１９では、ＣＰＵ２１は、元データ、つまり既存文字列をＩｙだけ移動する。具体的には、挿入領域の始端からステップＡ１６またはステップＡ２１で検出した空白部分の始端までの間にある既存文字列を、検出した空白部分の方向に挿入文字列の縦方向の長さＩｙだけ移動して表示画面に表示する。
【００９１】
ステップＡ２０では、ＣＰＵ２１は、書き込んだデータを確定し、挿入処理を終了する。すなわち、タッチパネル１５によって挿入領域に書き込まれた挿入文字のデータを表示部１４に送り、既存文字列を移動したことによって新たに形成された空白部分に挿入文字列を表示させて、挿入処理を終了する。ステップＡ２１では、ＣＰＵ２１は、上方向の空白部分のサイズＳｙを取得し、ステップＡ１７に進む。具体的には、挿入領域の上方向で最も挿入領域に近接する空白部分を検出し、検出した空白部分の縦方向のサイズ、つまり長さＳｙを求め、ステップＡ１７に進む。
【００９２】
図９に示したステップＡ３０では、ＣＰＵ２１は、移動可能な空白部分の長さＴｘ＝Ｓｘ−ＬＳｘを計算する。ステップＡ３１では、ＣＰＵ２１は、縮小率Ｍｘ＝Ｔｘ÷Ｉｘを求める。すなわち、ＣＰＵ２１は、移動可能な空白部分の長さＴｘを挿入文字列の長さＩｘで除算した値を縮小率Ｍｘとする。
【００９３】
ステップＡ３２では、ＣＰＵ２１は、記憶デバイス２５に記憶される挿入モード縮小制限値テーブル４２の横方向ＬＭｘと縮小率Ｍｘとを比較する。ステップＡ３３では、ＣＰＵ２１は、縮小率Ｍｘが横方向ＬＭｘよりも小さいか否かを判定する。縮小率Ｍｘが横方向ＬＭｘよりも小さいとき、ステップＡ３６に進む。縮小率Ｍｘが横方向ＬＭｘよりも小さくないとき、ステップＡ３４に進む。
【００９４】
ステップＡ３４では、ＣＰＵ２１は、元データ、つまり既存文字列を長さＡｘ＝（Ｉｘ×Ｍｘ）だけ空白部分の方向に移動して表示画面に表示する。長さＡｘは、挿入文字列の長さＩｘを縮小率Ｍｘ倍した長さである。ステップＡ３５では、ＣＰＵ２１は、書き込んだデータ、つまり挿入文字列をＭｘ倍に縮小して確定し、挿入処理を終了する。すなわち、タッチパネル１５によって挿入領域に書き込まれた挿入文字列をＭｘ倍に縮小して表示部１４に送り、既存文字列を移動したことによって新たに形成された空白部分に表示させて、挿入処理を終了する。
【００９５】
より詳細には、ステップＡ３４，Ａ３５では、挿入文字列のデータを、ＧＲＡＭ２３の既存文字列のデータの位置に記憶し、ＲＡＭ２２に退避された既存文字列のデータの位置を、指定された挿入領域のサイズ分ずらして、ＧＲＡＭ２３上に書き込むことによって表示画面の表示を更新する。
【００９６】
ステップＡ３６では、ＣＰＵ２１は、挿入領域と検出された空白部分の領域（以下「空白領域」という）との間隔Ｃｘを求める。ステップＡ３７では、ＣＰＵ２１は、挿入文字列と既存文字列との合計の長さＢｘ＝Ｉｘ×２＋Ｃｘを計算する。挿入領域の長さは、挿入文字列の長さＩｘである。ステップＡ３８では、ＣＰＵ２１は、挿入文字列と既存文字列とを結合した結合文字列が使用することができる長さＥｘ＝Ｉｘ＋Ｃｘ＋Ｔｘを計算する。
【００９７】
ステップＡ３９では、ＣＰＵ２１は、結合文字列を縮小する縮小率Ｍｘ’＝Ｅｘ÷Ｂｘを計算する。ステップＡ４０では、ＣＰＵ２１は、元データと新規に書き込んだデータを繋げる。元データは、既存文字列のデータであり、新規に書き込んだデータは挿入文字列のデータである。ステップＡ４１では、ＣＰＵ２１は、繋げたデータをＭｘ’倍する。ステップＡ４２では、ＣＰＵ２１は、縮小したデータを確定して、挿入処理を終了する。すなわち、縮小した結合文字列を、既存文字列および移動可能な空白部分があった領域、つまり長さＥｘの領域に表示させて、挿入処理を終了する。
【００９８】
図１０に示したステップＡ５０では、ＣＰＵ２１は、移動可能な空白部分の長さＴｙ＝Ｓｙ−ＬＳｙを計算する。ステップＡ５１では、ＣＰＵ２１は、縮小率Ｍｙ＝Ｔｙ÷Ｉｙを求める。すなわち、ＣＰＵ２１は、移動可能な空白部分の長さＴｙを挿入文字列の長さＩｙで除算した値を縮小率Ｍｙとする。ステップＡ５２では、ＣＰＵ２１は、記憶デバイス２５に記憶される挿入モード縮小制限値テーブル４２の縦方向ＬＭｙと、挿入文字列を移動可能な空白部分に挿入するための縮小率Ｍｙとを比較する。
【００９９】
ステップＡ５３では、ＣＰＵ２１は、縮小率Ｍｙが縦方向ＬＭｙよりも小さいか否かを判定する。縮小率Ｍｙが縦方向ＬＭｙよりも小さいとき、ステップＡ５６に進む。縮小率Ｍｙが縦方向ＬＭｙよりも小さくないとき、ステップＡ５４に進む。
【０１００】
ステップＡ５４では、ＣＰＵ２１は、元データ、つまり既存文字列を長さＡｙ＝（Ｉｙ×Ｍｙ）だけ空白部分の方向に移動して表示画面に表示する。長さＡＩｙは、挿入文字列の長さＩｙを縮小率Ｍｙ倍した長さである。ステップＡ５５では、ＣＰＵ２１は、書き込んだデータ、つまり挿入文字列をＭｙ倍に縮小して確定し、挿入処理を終了する。すなわち、タッチパネル１５によって挿入領域に書き込まれた挿入文字列をＭｙ倍に縮小して表示部１４に送り、既存文字列を移動したことによって新たに形成された空白部分に表示させて、挿入処理を終了する。
【０１０１】
ステップＡ５６では、ＣＰＵ２１は、挿入領域と検出した空白領域との間隔Ｃｙを求める。ステップＡ５７では、ＣＰＵ２１は、挿入文字列と既存文字列との合計の長さＢｙ＝Ｉｙ×２＋Ｃｙを計算する。挿入領域の長さは、挿入文字列の長さＩｙである。ステップＡ５８では、ＣＰＵ２１は、挿入文字列と既存文字列とを結合した結合文字列が使用することができる長さＥｙ＝Ｉｙ＋Ｃｙ＋Ｔｙを計算する。
【０１０２】
ステップＡ５９では、ＣＰＵ２１は、結合文字列を縮小する縮小率Ｍｙ’＝Ｅｙ÷Ｂｙを計算する。ステップＡ６０では、ＣＰＵ２１は、元データと新規に書き込んだデータを繋げる。ステップＡ６１では、ＣＰＵ２１は、繋げたデータをＭｙ’倍する。ステップＡ４２では、ＣＰＵ２１は、縮小したデータを確定して、挿入処理を終了する。すなわち、縮小した結合文字列を、既存文字列および移動可能な空白部分があった領域、つまり長さＥｙの領域に表示させて、挿入処理を終了する。図８〜図１０に示したフローチャートのステップＡ８，Ａ１３，Ａ１６，Ａ２１は、検出工程および計算工程である。図８〜図１０に示したフローチャートのステップＡ９，Ａ１７は、減算工程である。図８〜図１０に示したフローチャートのステップＡ１０，Ａ１８は、比較工程である。図８〜図１０に示したフローチャートのステップＡ３４，Ａ５４は、第１の表示工程である。図８〜図１０に示したフローチャートのステップＡ３５，Ａ５５は、縮小工程および第２の表示工程である。
【０１０３】
図１１，１２は、空白検出処理の処理手順を示すフローチャートである。空白検出処理は、図８に示したフローチャートのステップＡ８，Ａ１３，Ａ１６，Ａ２１で空白部分を検出するときに実行される処理である。図１１，１２に示す空白検出処理は、画像データがビットマップ、すなわちドット単位で構成されている場合の例である。表示画面にペン１９による書き込みのないドット、すなわち表示画面に背景色、たとえば白色として表示されるドットは、「０」であり、表示画面にペン１９による書き込みのあるドット、すなわち背景色以外の色、たとえば黒色として表示されるドットは、「０」以外の値である。
【０１０４】
ステップＢ１では、ＣＰＵ２１は、｜ｘ１−ｘ２｜≧｜ｙ１−ｙ２｜であるか否かを判定する。｜ｘ１−ｘ２｜≧｜ｙ１−ｙ２｜であるとき、挿入領域は横長であると判断し、水平方向に空白部分を検出するため、ステップＢ２に進む。｜ｘ１−ｘ２｜≧｜ｙ１−ｙ２｜でないとき、挿入領域は縦長であると判断し、垂直方向に空白部分を検出するため、ステップＢ３０に進む。
【０１０５】
ステップＢ２では、ＣＰＵ２１は、Ｄｘ＝１であるか否かを判定する。挿入モード移動方向設定テーブル４１の横移動方向Ｄｘが「１」であるとき、つまり右側にある空白部分を調べるとき、ステップＢ３に進む。挿入モード移動方向設定テーブル４１の横移動方向Ｄｘが「１」でないとき、つまり左側にある空白部分を調べるとき、ステップＢ１４に進む。以下、右方向ならば、Ｘ座標がｘ２から表示画面の右端Ｘｍａｘまで、左方向ならば、Ｘ座標がｘ１から表示画面の左端「０」まで、座標（ｘ,ｙ１）〜（ｘ,ｙ２）の注目ドットの値が「０」か、すなわち書き込みがされてないかを調べる。
【０１０６】
ステップＢ３では、ＣＰＵ２１は、定数α＝「１」および変数ｉ＝「ｘ２」とする。定数αは、注目ドットを移動させるＸ軸方向の移動量である。変数ｉは、注目ドットのＸ軸方向の座標である。ステップＢ４では、ＣＰＵ２１は、変数Ｇ＝「０」および変数ＳＸ＝「０」とする。変数Ｇは、水平方向のドットの値の合計を計数するための変数である。変数ＳＸは、空白部分の長さを計数するための変数である。ステップＢ５では、ＣＰＵ２１は、変数ＳＳＸ＝「０」とする。変数ＳＳＸは、空白部分が最小空白以上の長さであるか否かを判断するために、空白部分の長さを計数するための変数である。
【０１０７】
ステップＢ６では、ＣＰＵ２１は、変数ｊ＝「ｙ１」とする。変数ｊは、注目ドットのＹ軸方向の座標である。
【０１０８】
ステップＢ７では、ＣＰＵ２１は、変数Ｇ＝Ｇ＋（ｉ，ｊ）とする。すなわち、変数Ｇに、座標（ｉ，ｊ）のドットの値を加算する。座標（ｉ，ｊ）は、注目ドットの座標である。ステップＢ８では、ＣＰＵ２１は、ｊ≦ｙ２であるか否かを判定する。ｊ≦ｙ２であるとき、つまり挿入領域の垂直方向で終端まできたとき、ステップＢ１５に進み、ｊ≦ｙ２でないとき、つまり挿入領域の垂直方向で終端まできていなかったとき、ステップＢ９に進む。
【０１０９】
ステップＢ９では、ＣＰＵ２１は、変数Ｇ＝０であるか否かを判定する。変数Ｇ＝０であるとき、つまり水平方向のドットの値がすべて「０」であるとき、ステップＢ１０に進み、変数Ｇ＝０でないとき、つまり水平方向のドットの値がすべて「０」でないとき、ステップＢ１６に進む。ステップＢ１０では、ＣＰＵ２１は、ＳＳＸ＞ＬＳｘであるか否かを判定する。ＳＳＸ＞ＬＳｘであるとき、つまり空白部分の長さＳＳＸが最小空白の長さＬＳｘより大きいとき、ステップＢ１８に進み、ＳＳＸ＞ＬＳｘでないとき、つまり空白部分の長さＳＳＸが最小空白の長さＬＳｘより大きくないとき、ステップＢ１１に進む。
【０１１０】
ステップＢ１１では、ＣＰＵ２１は、変数ＳＳＸ＝ＳＳＸ＋１とする。すなわち、変数ＳＳＸに「１」を加算する。ステップＢ１２では、ｉ＝Ｘｍａｘであるか否かを判定する。ｉ＝Ｘｍａｘであるとき、つまり表示画面の水平方向で終端まできたとき、空白検出処理を終了する。ｉ＝Ｘｍａｘでないとき、つまり表示画面の水平方向の終端まできていなかったとき、ステップＢ１３に進む。ステップＢ１３では、ＣＰＵ２１は、ｉ＝０であるか否かを判定する。ｉ＝０であるとき、つまり表示画面の水平方向で始端まできたとき、空白検出処理を終了する。ｉ＝０でないとき、つまり表示画面の水平方向で始端まできていなかったとき、ステップＢ１９に進む。
【０１１１】
ステップＢ１４では、ＣＰＵ２１は、定数α＝「−１」および変数ｉ＝「ｘ１」として、ステップ４に進む。ステップＢ１５では、ＣＰＵ２１は、変数ｊ＝ｊ＋１として、ステップＢ７に戻る。すなわち、注目ドットのＹ座標を１つ移動して、ステップＢ７に戻る。ステップＢ１６では、ＣＰＵ２１は、ＳＸ＝０であるか否かを判定する。ＳＸ＝０であるとき、つまり最小空白の長さよりも長い空白部分がなかったとき、ステップＢ１７に進む。ＳＸ＝０でないとき、つまり最小空白の長さよりも長い空白部分があったとき、空白検出処理を終了する。
【０１１２】
ステップＢ１７では、ＣＰＵ２１は、変数ＳＳＸ＝「０」とし、ステップＢ１２に進む。ステップＢ１８では、ＣＰＵ２１は、変数ＳＸ＝ＳＸ＋１とし、ステップＢ１２に進む。すなわち、変数ＳＸに「１」を加算し、ステップＢ１２に進む。ステップＢ１９では、ＣＰＵ２１は、変数ｉ＝ｉ＋αとし、ステップＢ６に戻る。すなわち、注目ドットのＸ座標を１つ移動して、ステップＢ６に戻る。
【０１１３】
ステップＢ３０では、ＣＰＵ２１は、Ｄｙ＝１であるか否かを判定する。挿入モード移動方向設定テーブル４１の縦移動方向Ｄｙが「１」であるとき、つまり下側にある空白部分を調べるとき、ステップＢ３１に進む。挿入モード移動方向設定テーブル４１の縦移動方向Ｄｙが「１」でないとき、つまり上側にある空白部分を調べるとき、ステップＢ４２に進む。以下、下方向ならば、Ｙ座標がｙ２から表示画面の下端Ｙｍａｘまで、上方向ならば、Ｙ座標がｙ１から表示画面の上端「０」まで、座標（ｘ１,ｙ）〜（ｘ２,ｙ）の注目ドットの値が「０」か、すなわち書き込みがされてないかを調べる。 
【０１１４】
ステップＢ３１では、ＣＰＵ２１は、定数β＝「１」および変数ｊ＝「ｙ２」とする。定数βは、注目ドットを移動させるＹ軸方向の移動量である。変数ｉは、注目ドットのＹ軸方向の座標である。ステップＢ３２では、ＣＰＵ２１は、変数Ｇ＝「０」および変数ＳＹ＝「０」とする。変数Ｇは、垂直方向のドットの値の合計を計数するための変数である。変数ＳＹは、空白部分の長さを計数するための変数である。ステップＢ３３では、ＣＰＵ２１は、変数ＳＳＹ＝「０」とする。変数ＳＳＹは、空白部分が最小空白以上の長さであるか否かを判断するために、空白部分の長さを計数するための変数である。
【０１１５】
ステップＢ３４では、ＣＰＵ２１は、変数ｉ＝「ｘ１」とする。変数ｊは、注目ドットのＹ軸方向の座標である。
【０１１６】
ステップＢ３５では、ＣＰＵ２１は、変数Ｇ＝Ｇ＋（ｉ，ｊ）とする。すなわち、変数Ｇに、座標（ｉ，ｊ）のドットの値を加算する。座標（ｉ，ｊ）は、注目ドットの座標である。ステップＢ３６では、ＣＰＵ２１は、ｉ≦ｘ２であるか否かを判定する。ｉ≦ｘ２であるとき、つまり挿入領域の水平方向で終端まできたとき、ステップＢ４３に進み、ｉ≦ｘ２でないとき、つまり挿入領域の水平方向で終端まできていなかったとき、ステップＢ３７に進む。
【０１１７】
ステップＢ３７では、ＣＰＵ２１は、変数Ｇ＝０であるか否かを判定する。変数Ｇ＝０であるとき、つまり垂直方向のドットの値がすべて「０」であるとき、ステップＢ３８に進み、変数Ｇ＝０でないとき、つまり垂直方向のドットの値がすべて「０」でないとき、ステップＢ４４に進む。ステップＢ３８では、ＣＰＵ２１は、ＳＳＹ＞ＬＳｙであるか否かを判定する。ＳＳＹ＞ＬＳｙであるとき、つまり空白部分の長さＳＳＹが最小空白の長さＬＳｙより大きいとき、ステップＢ４６に進み、ＳＳＹ＞ＬＳｙでないとき、つまり空白部分の長さＳＳＹが最小空白の長さＬＳｙより大きくないとき、ステップＢ３９に進む。
【０１１８】
ステップＢ３９では、ＣＰＵ２１は、変数ＳＳＹ＝ＳＳＹ＋１とする。すなわち、変数ＳＳＹに「１」を加算する。ステップＢ４０では、ｊ＝Ｙｍａｘであるか否かを判定する。ｊ＝Ｙｍａｘであるとき、つまり表示画面の垂直方向で終端まできたとき、空白検出処理を終了する。ｊ＝Ｙｍａｘでないとき、つまり表示画面の垂直方向の終端まできていなかったとき、ステップＢ４１に進む。ステップＢ４１では、ＣＰＵ２１は、ｊ＝０であるか否かを判定する。ｊ＝０であるとき、つまり表示画面の垂直方向で始端まできたとき、空白検出処理を終了する。ｊ＝０でないとき、つまり表示画面の垂直方向で始端まできていなかったとき、ステップＢ４７に進む。
【０１１９】
ステップＢ４２では、ＣＰＵ２１は、定数β＝「−１」および変数ｊ＝「ｙ１」として、ステップＢ３２に進む。ステップＢ４３では、ＣＰＵ２１は、変数ｉ＝ｉ＋１として、ステップＢ３５に戻る。すなわち、注目ドットのＹ座標を１つ移動して、ステップＢ３５に戻る。ステップＢ４４では、ＣＰＵ２１は、ＳＹ＝０であるか否かを判定する。ＳＹ＝０であるとき、つまり最小空白の長さよりも長い空白部分がなかったとき、ステップＢ４５に進む。ＳＹ＝０でないとき、つまり最小空白の長さよりも長い空白部分があったとき、空白検出処理を終了する。
【０１２０】
ステップＢ４５では、ＣＰＵ２１は、変数ＳＳＹ＝「０」とし、ステップＢ４０に進む。ステップＢ４６では、ＣＰＵ２１は、変数ＳＹ＝ＳＹ＋１とし、ステップＢ４０に進む。すなわち、変数ＳＹに「１」を加算し、ステップＢ４０に進む。ステップＢ４７では、ＣＰＵ２１は、変数ｊ＝ｊ＋βとし、ステップＢ３４に戻る。すなわち、注目ドットのＹ座標を１つ移動して、ステップＢ３４に戻る。
図１１，図１２に示した空白検出処理で求めたＳＸは、ＳＳＸの長さ分少ないので、図８に示したＳｘは、Ｓｘ＝ＳＸ＋ＳＳＸとなる。同様に、ＳＹは、ＳＳＹの長さ分少ないので、図８に示したＳｙは、Ｓｙ＝ＳＹ＋ＳＳＹとなる。
【０１２１】
図１３は、画像データを最小空白単位で分割して空白部分を調べる方法を説明するための図である。画像データがビットマップ、すなわちドット単位で構成されている場合、画像データを予め最小空白単位で分割して空白部分を検出してもよい。
【０１２２】
具体的には、挿入モード最小空白設定テーブル４３に設定されている横空白ＬＳｘおよび縦空白ＬＳｙのドット数で分割する。たとえば、画像データは、水平方向のドット数が横空白ＬＳｘの１６倍のドット数、および垂直方向のドット数が縦空白ＬＳｙの９倍のドット数であるとする。表示画面の水平方向を、（水平方向のドット数÷横空白ＬＳｘ）個に、かつ、表示画面の垂直方向を、（垂直方向のドット数÷縦空白ＬＳｙ）個に分割し、表示画面を（水平方向のドット数÷横空白ＬＳｘ）×（垂直方向のドット数÷縦空白ＬＳｙ）個の領域に分割する。
【０１２３】
分割した各領域が空白部分であるか否かを表すテーブル６０を記憶デバイス２５に設ける。すなわち、領域情報であるテーブル６０は、記憶デバイス２５に記憶される。テーブル６０は、１つの領域のドットのうち１ドットでも使用されていれば「１」を記憶し、１つの領域のドットのうち１ドットも使用されていなければ「０」を記憶する。１つのドットが使用されているとは、ドットの値が「０」以外の値であることである。図１３に示したテーブル６０は、その一例である。
【０１２４】
以下の場合、表示画面は、水平方向２４０ドットおよび垂直方向１８０ドットであるとする。図５（ｃ）に示した挿入モード最小空白設定テーブル４３の場合、横空白ＬＳｘ=１５、縦空白ＬＳｙ=２０である。したがって、表示画面は、縦方向は９分割、および横方向は１６分割となる。
【０１２５】
図１３に示したテーブル６０では、網掛けの領域６１は、描画に使用されていることを示しており、網掛けのない領域６２は、描画に使用されていないことを示している。描画に使用されているとは、領域内の少なくとも１つのドットの値が「０」以外の値であることである。したがって、図１３に示したテーブルで、網掛けのない領域６２、たとえば座標（１１，０），（１２，０）の領域は、最小空白の長さの空白部分であることを示している。
【０１２６】
テーブル６０を用いることの利点は、描画に使用されているか否かの判断を、１ドット単位ではなく、領域単位で判断することができ、検出のための処理量を少なくすることができるということである。また、表示画面が、横空白ＬＳｘおよび縦空白ＬＳｙのサイズの領域に予め分割されているので、空白部分の数を把握し易いということである。
【０１２７】
たとえば、テーブル６０の座標（２，６）〜（４，７）の３×２の挿入領域６３に挿入文字列を挿入し、既存文字列を右方向に移動する場合、座標（６，６）〜（９，７）の４×２の空白部分６４があることが、テーブル６０から分かる。さらに、１つの領域が最小空白のサイズであるので、最小空白分として、（９，６）、（９，７）を除外しても、３×２の空白部分を確保することができることが、テーブル６０から分かる。
【０１２８】
空白部分の位置がテーブル６０で座標（Ａ、Ｂ）であるとき、表示画面での位置は、座標（Ａ×ＬＳｘ，Ｂ×ＬＳｙ）で表わされる。さらに、空白部分のサイズも、確保することができた横方向の領域の個数にＬＳｘを乗じただけのドット数、および確保することができた縦方向の領域の個数にＬＳｙを乗じただけのドット数からなるサイズであることが分かる。
【０１２９】
上述した実施形態では、ポインティングデバイスとして、タッチパネル１５を用いたが、これに限定されるものではなく、マウスなどのポンティングデバイスであってもよい。あるいは、キーボードなどで表示画面に表示されるポインタをポインティングデバイスとして用いてもよい。
【０１３０】
このように、表示部１４は、文字列および図形を表示画面に表示する。タッチパネル１５およびペン１９は、表示画面に表示された文字列および図形の間に文字列および図形を挿入するための挿入領域を指定する。タッチパネル１５およびペン１９は、タッチパネル１５およびペン１９によって指定された挿入領域内に挿入する挿入文字列および挿入図形を入力する。ＣＰＵ２１は、表示画面に表示された文字列および図形の中に形成された予め定める基準長以上の長さの空白部分のうち、タッチパネル１５およびペン１９によって指定された挿入領域に近接する空白部分を検出する。ＣＰＵ２１は、タッチパネル１５およびペン１９によって入力された挿入文字列および挿入図形の長さおよびＣＰＵ２１によって検出された空白部分の長さを計算する。そして、ＣＰＵ２１は、ＣＰＵ２１によって計算された空白部分の長さから予め定める基準長を減算し、減算した長さと、ＣＰＵ２１によって計算された挿入文字列および挿入図形の長さとを比較し、減算した長さよりも挿入文字列および挿入図形の長さが長いとき、表示画面に表示された文字列および図形のうち挿入領域の始端から空白部分の始端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示部１４に表示させるとともに、前記挿入文字列および挿入図形の長さが前記移動したことによって形成される新たな空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小し、前記新たな空白部分に前記縮小した挿入文字列および挿入図形を表示部１４に表示させる。したがって、後続部分をずらすスペースがない場合にも既存の文字列および図形に、文字列および図形を挿入することができる。
【０１３１】
さらに、ＣＰＵ２１は、前記新たに形成された空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小した縮小率が予め定める基準縮小率よりも小さいとき、前記挿入領域の始端から空白部分の始端までの長さと前記減算した長さとを加算し、前記挿入文字列および挿入図形ならびに前記既存文字列および既存図形からなる結合文字列および結合図形の長さが前記加算した長さに一致するように、前記結合文字列および結合図形を縮小し、縮小した結合文字列および結合図形に含まれる既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動し、前記移動したことによって形成される新たな空白部分に、前記縮小した結合文字列および結合図形に含まれる挿入文字列および挿入図形を表示部１４に表示させる。したがって、挿入文字列および挿入図形のみを縮小するだけでは、文字列および図形の区切りのための空白部分を確保できない場合にも、既存の文字列および図形に、文字列および図形を挿入することができる。
【０１３２】
さらに、ＣＰＵ２１による空白部分の検出する空白部分は、タッチパネル１５およびペン１９によって指定された挿入領域の始端から文字列および図形の配列方向の上流側の方向、ならびに前記挿入領域の終端から文字列および図形の配列方向の下流側の方向のうちのいずれかに設定可能である。したがって、既存文字列および既存図形を前方向にも後方向にも移動することができる。
【０１３３】
さらに、ＣＰＵ２１は、タッチパネル１５およびペン１９によって指定された挿入領域の縦横比に基づいて縦書きであるか横書きであるかを判断する。したがって、縦書きにも横書きにも適用することができる。
【０１３４】
さらに、記憶デバイス２５は、表示部１４によって表示させるための文字列および図形を背景色のドットおよび背景色以外の色のドットからなるビットマップとして記憶する。そして、ＣＰＵ２１は、ビットマップを予め定めるドット長からなる領域に分割し、各領域が背景色のドットのみからなる背景領域か背景色以外の色のドットを含む非背景領域かを表すテーブル６０を記憶デバイス２５に記憶し、テーブル６０に基づいて、空白部分を検出する。したがって、空白部分の検出を少ない処理量で行うことができる。
【０１３５】
さらに、文字列および図形を表示画面に表示する表示部１４と、表示画面に表示された文字列および図形の間に文字列および図形を挿入するための挿入領域を指定するタッチパネル１５およびペン１９と、タッチパネル１５およびペン１９によって指定された挿入領域内に挿入する挿入文字列および挿入図形を入力するタッチパネル１５およびペン１９とを含む表示装置で実行される表示方法で文字列および図形を表示するにあたって、図８〜図１０に示したフローチャートにおいて、ステップＡ８，Ａ１３，Ａ１６，Ａ２１では、表示画面に表示された文字列および図形の中に形成された予め定める基準長以上の長さの空白部分のうち指定手段によって指定された挿入領域に近接する空白部分を検出する。ステップＡ８，Ａ１３，Ａ１６，Ａ２１では、タッチパネル１５およびペン１９によって入力された挿入文字列および挿入図形の長さおよびステップＡ８，Ａ１３，Ａ１６，Ａ２１で検出された空白部分の長さを計算する。ステップＡ９，Ａ１７では、ステップＡ８，Ａ１３，Ａ１６，Ａ２１で計算された空白部分の長さから予め定める基準長を減算する。ステップＡ１０，Ａ１８では、ステップＡ９，Ａ１７で減算した長さと挿入文字列および挿入図形の長さとを比較する。ステップＡ３４，Ａ５４では、ステップＡ９，Ａ１７で減算した長さよりも挿入文字列および挿入図形の長さが長いとき、表示画面に表示された文字列および図形のうち挿入領域の始端から空白部分の始端までの間にある既存文字列および既存図形を前記減算した長さだけ前記空白部分の方向に移動して表示部１４に表示させる。ステップＡ３５，Ａ５５では、前記挿入文字列および挿入図形の長さが前記移動したことによって形成される新たな空白部分の長さに一致するように前記挿入文字列および挿入図形を縮小する。そして、ステップＡ３５，Ａ５５では、前記新たな空白部分に前記縮小した挿入文字列および挿入図形を表示部１４に表示させる。したがって、後続部分をずらすスペースがない場合にも既存の文字列および図形に、文字列および図形を挿入することができる。
【符号の説明】
【０１３６】
１  タッチパネルシステム
１０  ディスプレイ
１１  ディスプレイコントローラ
１２  メモリ
１３  画像メモリ
１４  表示部
１５  タッチパネル
１６  映像入力端子
１７  ディスプレイ電源部
１９  ペン
２０  表示制御装置
２１  ＣＰＵ
２２  ＲＡＭ
２３  ＧＲＡＭ
２４  映像出力端子
２５  記憶デバイス
２６  入出力端子
２７  バス
２８  表示制御電源部
１５１  受信部
１５２  出力部
１５３  タッチパネル電源部
１５４  タッチパネルコントローラ
１５５  発光部制御回路
１５６  第１赤外線発光部アレイ
１５７  第２赤外線発光部アレイ
１５８  第１赤外線受光部アレイ
１５９  第２赤外線受光部アレイ
１６０  受光部制御回路
１６１  座標生成部
１６２  タッチパネル電源スイッチ
１９１  ペン先スイッチ
１９２  操作スイッチ
１９３  スイッチ検出部
１９４  送信部
１９５  ペン電源スイッチ
１９６  ペン電源部
【図１】
0005600630.tif 000002
【図２】
0005600630.tif 000003
【図３】
0005600630.tif 000004
【図４】
0005600630.tif 000005
【図５】
0005600630.tif 000006
【図６】
0005600630.tif 000007
【図７】
0005600630.tif 000008
【図８】
0005600630.tif 000009
【図９】
0005600630.tif 000010
【図１０】
0005600630.tif 000011
【図１１】
0005600630.tif 000012
【図１２】
0005600630.tif 000013
【図１３】
0005600630.tif 000014