以上説明した本発明の構成、作用を一層明らかにするために、以下本発明の文字列と罫線の混在処理方法およびその装置の好適な実施例について説明する。図1は実施例である文字列と罫線の混在処理方法を採用した日本語ワードプロセッサ・アプリケーションソフトをコンピュータ上で動作させたときディスプレイ40に表示される基本ウインドウ画面の説明図、図2はそのアプリケーションソフトを起動しているパーソナルコンピュータ20の内部の機能ブロック図である。即ち、通常のパーソナルコンピュータ20でこのソフトを実行することで、本実施例の文字列と罫線の混在処理方法が実現される。また、このパーソナルコンピュータ20上でこのソフトウェアを実行すれば、全体として、実施例の文字列と罫線の混在処理装置が実現されることになる。
説明の都合上、まずパーソナルコンピュータ20の内部構成について説明する。ソフトが起動されるパーソナルコンピュータ20は、図2の機能ブロック図に示すように、その基本構成は周知のものであり、論理演算を実行するCPU22,そのCPU22により実行されるプログラム等を不揮発的に記憶しているROM24,プログラムやデータを記憶する大容量のRAM26からなる論理回路部分と、周辺機器部分であるディスプレイ40,このディスプレイ40上の任意の一点を指示するためのポインティングデバイスであるマウス42,キーボード46,プリンタ48,ハードディスク50との入出力インターフェイス28〜36から構成されている。なお、最近では処理速度の向上を目的として各種の高速バスをCPU22の周辺に採用したものなども知られているので、処理速度や記憶容量などの点で適したハードウェア構成を採用すれば良い。
実施例のアプリケーションプログラムは、オペレーティングシステム(以下、OSと呼ぶ)の管理によるグラフィカル・ユーザ・インタフェイス(GUI)の下で動作するようプログラムされており、予めこのOSに用意されたGUIのためのツールを用いることで、他のアプリケーションソフトとの操作方法の統一化が図られている。また、OSレベルでサポートされるアウトラインフォント(文字の形状をベクトルデータとして記述し、指定されたポイント数に応じて対応する大きさの文字のドットを生成するフォント)を利用し、文書作成に際して任意の大きさの文字を滑らかに表示することができる。
図1に示すアプリケーションの基本ウインドウ画面の最上部は、実施例であるアプリケーションソフトの名前及び現在処理中であるデータファイルのファイル名を表示するタイトルバー402である。このタイトルバー402の左端にあるボタン402Aはシステムメニューをプルダウンするためのボタンであり、その下欄には「ファイル」、「編集」といった表示がされるメニューバー404が配置される。このメニューバー404の任意の表示をマウス42でクリックすると、その表示名に関連したコマンドがプルダウン表示され、コマンド名を覚えたりキーボード46からコマンド名を入力するなど手間が省略される。
メニューバー404下欄のツールバー406及び上記タイトルバー402右端は、上述したOSに用意されたインタフェイスではなく、本アプリケーションソフトに独自の主たるコマンドがアイコンあるいはコマンド名により表示される箇所である。タイトルバー402右端のボタン402B(罫線ボタン)をマウス42により選択すると、罫線の描画形態、罫線の消去、罫線領域の拡大・縮小などのコマンドをアイコン化したプルダウンメニューが、図示のごとく表示される。その右隣のボタン402C(線種ボタン)は、同様にマウス42により選択されたとき、図示するように罫線描画に使用する14種の線の一部を表示する。また、ツールバー406には、日本語ワードプロセッサである本実施例のアプリケーションソフトの基本的な動作モードである文字入力モード、罫線作成モード及び左寄せ、中央配置、右寄せ等の自動配置のコマンドや文字のアウトラインフォント種類、ポイント数更等のコマンドがアイコンにより表示されており、このアイコンをマウス42で選択するだけで本アプリケーションソフトに対するコマンド入力がなされる。
基本ウインドウ画面の中央に当たる操作領域410は、日本語ワードプロセッサである本アプリケーションソフトに独特の情報編集領域であり、その上方には文字数をカウントしたり、タブやインデントを設定するためのルーラ部412、左側縁には各行に設定された属性を表示する属性表示部414、右側縁及び下側縁にはウインドウを上下左右にスクロールするためのスクロール部416が配置されている。また、ウインドウ画面の最下部の一行は、本アプリケーションソフトの動作状態、例えば編集中の頁数、行数等の状態を表示するステータスバー420である。
上述した概略構成を有する本実施例のアプリケーションソフトは、日本語ワードプロセッサとして一般的なルビ機能、脚注機能、ヘッダやフッタを指定する書式機能、カナ漢字変換機能、辞書機能等を独自にあるいは他のツールを利用して達成することは勿論であるが、これらの機能については一般的なソフトと同様であるため説明を省略する。
本実施例のアプリケーションソフトは、操作領域410の大部分を占めている編集部418の内部で視覚的に処理される文字列とこの文字列を区画して文章の理解に供される罫線との混在処理に関し、以下のように独特かつ巧みなインタフェイスを有している。以下、本アプリケーションソフトに独特の文字列と罫線の混在処理方法について詳述する。
図3ないし図7は、以下に説明する独特の文字列と罫線の混在処理方法を達成するために、本アプリケーションソフトにて採用している文字列と罫線のデータ構造を説明するための図である。図3は、以下のデータ構造説明に利用する文字列と罫線とが編集部418に表示されている状態の説明図である。図示した例では、編集部418は全体として縦17行×横30文字の文字編集領域を有している。この内部に罫線がない状態では、この文字編集領域は単一の領域として扱われるが、いったんこの文字編集領域内に罫線が作成されると、編集処理は、罫線により分割された領域毎に行なわれることになる。例えば、図3に示すように矩形の罫線(図中の実線四角)が引かれた場合には、この文字編集領域は、罫線の4つの辺を境界線とし、行方向を優先方向として区分される5つの編集領域1,編集領域2,・・・・・・,編集領域5(5つの点線四角)に分けられ、文字列は各領域毎に管理される。
まず、罫線データの管理について説明する。図3に示した各領域のうち、編集部418に描画される罫線データは、これだけを取り出せば、図4に示したように、計7行に亘る罫線領域を形成している。この罫線データは、図5に示すデータ構造を有する罫線描画情報として管理される。すなわち、罫線描画情報は、その罫線がどこに存在するかを大まかに表す情報であり、罫線がある範囲に亘って連続している箇所を1ブロックとしてとらえたものである。罫線描画情報には、開始位置、大きさ、罫線データポインタが含まれる。一つの罫線ブロックが一つの罫線(縦罫線、横罫線、矩形罫線)を定義しているので、文書毎に最大n個の罫線ブロックを管理することができる。罫線描画情報における開始位置とは、罫線が開始される行位置であり、大きさとは、罫線が縦方向に何行連続するかを示すものである。これらの情報は、罫線の描画単位が行桁の場合には行を単位として示される。
罫線データポインタは、実際に描画される罫線の形、線種を表すデータの保存された場所を指し示すポインタである。本実施例では、この罫線データポインタが指し示す場所(アドレス)に、図4に示すように、二次元の領域が確保されている。この領域は、横方向には罫線の情報を記述するのに必要な大きさが確保され、縦方向には罫線が縦方法に連続する大きさが確保される。従って、図1に例示した罫線では、縦方向に7行の領域が確保される。各行に対応したメモリには罫線の形や線種を表すデータが、罫線の存在に対応する形態で格納されている。なお、この罫線描画情報においても座標位置や大きさを表す単位として前述の文字数を利用しているが、これに限定されないことは先に述べた。
この様に罫線が描画されると、画面はいくつかの矩形領域に分割される。この分割された各領域は、内部的に編集は領域毎に行なわれている。この点を説明する。罫線により分割される各編集領域n(nは任意の自然数である)とは、文字を挿入、削除する際、流れ込みなど既存文字列に対して影響が及ぶ区域である。図6は、第n編集領域までの各編集領域を管理するための編集領域情報のデータ構造の説明図である。図示するように各編集領域nの情報は、その左上隅の座標位置である開始横座標,開始縦座標、その座標からの横方向の大きさ(横大きさ)と縦方向の大きさ(縦大きさ)とによって規定されている。第1編集領域を例に取ると、この領域は、開始横座標1および開始縦座標1(即ち画面左上隅)を開始位置とし、横方向の大きさが30、縦方向の大きさが2となっている。また、先頭文字列インデックスには値1が格納されており、後述する図7に示す文字列情報において第1文字列から、この領域内の文字列が始まっていることが示されている。
なお、本実施例では各編集領域nの位置と大きさを示す単位として、編集部418にて編集される標準的なポイント数(デフォルトでは12ポイント)の文字を採用し、文字数表示としているが、この様な単位はプログラム毎に統一しておりさえすればよく、mm単位やドット単位など任意に選択可能である。また、各編集領域nの情報として管理される先頭文字列インデックスとは、後述する文字列情報(図7参照)に格納されている文字列にアクセスするためのインデックスで、編集領域nの先頭に表示される文字列を指し示している。
次に、編集部418に記述される文字列の情報について、その概要を説明する。文字列は、図7に示す様に、文字列を単位とするテーブルによって管理される。テーブルには、文字列ポインタ、アトリビュートポインタ、次の文字列情報といった情報が含まれる。ここでいう文字列とは改行コードが挿入されるまでの一塊の文字の集まりであり、文字列ポインタとは文字列が実際に格納されたメモリへのアクセスポインタである。また、アトリビュートポインタとは、文字に対するアトリビュートの情報の格納場所を示すポインタである。文字列を構成する文字は、1文字毎に、フォントの種類,ポイント数,文字飾り(修飾)などの情報が設定可能であり、アトリビュートポインタは、この設定(アトリビュート)がメモリに実際に格納されている場所を指し示す。また、次の文字列情報とは、この文字列に続く文字列が存在する場合のインデックスであり、一つの編集領域内で最終の文字列の場合には「0」がセットされる。図3に示した例では、第1文字列が「あいうえお<改行>」であり、次の文字列は第2文字列「ABCDE<改行>」であるから、次の文字列情報の欄には、値2が記憶されている。即ち、図6および図7に示したテーブルにより、全編集領域の文字列が管理されるのである。
この様に本アプリケーションソフトは、一つの文章(データファイル)毎に、上記データ構造に則った編集領域情報,罫線描画情報,文字列情報をRAM26またはハードディスク50上に新規作成、更新、削除することで、文字列と罫線の混在したデータファイルを管理している。次に、本実施例のアプリケーションソフトが行なう独特かつ巧みな文字列と罫線の混在処理方法、すなわち上記3つの編集領域情報,罫線描画情報,文字列情報を更新する具体例について詳述する。
図8,図9は、ディスプレイ40に表示され確定している文字列に対して重複して罫線描画が指示された場合の処理方法を説明するための説明図及びその部分のプログラムのフローチャートである。なお、編集領域の文字については、本アプリケーションソフトでは、配置状況のデフォルト(初期設定)として、左寄せ,5文字間隔毎のタブ設定,インデント設定がなされている。これらの設定は、図示されていないが、以下の説明では、配置状況の初期設定として扱う。
図9に示すように、アプリケーションプログラムの処理が、罫線作成のモードに入ると(ステップS100)、まず確定した文字上に罫線が重なる状況が発生したか否かを判断し(ステップS102)、重複が発生していないときには以下の処理を行なうことなく、「END」に抜けて本処理ルーチンを終了する。これに対して、文字列に対する罫線の重複が発生したと判定したときには、その罫線に掛かる文字を消去する処理を行なう(ステップS104)。文字列を構成する文字は、プロポーショナルなフォントでは文字毎に幅は相違するものの、文字毎に指定されたフォントおよびポイント数から定まる幅を持つものとして管理されている。他方、罫線は表示される線幅とは無関係に一定の幅をもつものとして扱われている。従って、両者の重なり合いを演算により求めることは容易である。罫線が所定の幅を持つため、縦に1本の罫線を引いただけで、複数の文字との重複を生じ、結果的に複数の文字が消去されることも有り得る。
重複が生じた文字を消去した後、指定されている線種の罫線をその場所に描き(ステップS106)、この罫線の左の文字列の終端から罫線までに空白があるか否かを判断する(ステップS108)。そして、罫線左の文字列終端から罫線までに空白がある場合には、この空白と略同一の文字幅となるアウトラインフォントによるスペース情報、すなわちスペースの個数やポイント数を自動演算し(ステップS110)、これを罫線の左側に挿入する(ステップS112)。続いて、罫線から罫線右の文字列先頭まで空白があるか否かを判断し(ステップS114)、この空白がある場合には上記同様に空白を埋め尽くすだけのスペース情報を自動演算し(ステップS116)、これをその罫線右側の空白部分に挿入する(ステップS118)。こうして罫線の挿入に因っても従前の文字列の位置が不変となるように出来る限り文字幅が同一となるスペースを挿入するが、上記処理によっても以前として余りの空白がある場合には(ステップS120)、この空白を埋め尽くすために罫線右側の文字列をその余り空白部分に移動させ(ステップS122)、処理を完了する。
こうした処理により、図8に示すように文字列「あいうえお」の「い」という文字情報に重ねて罫線描画が指令された場合、その重なる文字情報「い」を消去して罫線描画を優先し、その他の文字列「あうえお」の位置が従前の位置と変わらないように罫線の左あるいは右の空白部にスペースが自動挿入されるのである。これにより、アウトラインフォントにより任意の大きさに設定されている文字列に対して一定幅の罫線が重複描画された場合にも、文字列の配置位置は従前とほぼ同一となり、使用者の文書作成イメージが壊されることなく、文字列と罫線との混在したデータファイルを手早く作成することができる。空白を埋めるスペース情報の演算は、所定幅のスペースの個数を演算することでも良いし、スペースのポイント数等を演算することでも良い。
次に、実施例における他の罫線関係の機能について説明する。以下は、上記のような罫線の挿入が、アプリケーションソフトのデフォルト値である左寄せ以外の行属性、例えば均等配置,右寄せ,中央寄せ等が設定された行においてなされた場合の処理方法である。この場合の処理について、図10(A),(B),(C)の説明図及び図11のフローチャートに従って説明する。
罫線の作成処理が実行されると、まず使用者の指示に従って罫線を作成した後(ステップS200)、この罫線が描かれた行に設定された行属性がデフォルト値、即ち左寄せ属性か否かを判断し(ステップS202)、デフォルト値である場合には「END」に抜けて処理を終了する。行属性がデフォルト値から変更されていた場合、すなわち図10(A)〜(C)に示すように均等配置,右寄せあるいは中央寄せが設定されている場合には、罫線が描かれる行に文字列があるか否かを判断し(ステップS204)、文字列が既に存在する場合にのみ以下の処理を実行する。まず、罫線が描画されたその位置に文字が存在した場合には先の実施例同様(図8,図9参照)その文字を削除し(ステップS206)、罫線により左右に分割された領域のうち左の文字列の行属性を初期設定である左寄せに戻し(ステップS208)、その文字列の最後に改行コードを付加する(ステップS210)。同様に、罫線右側の文字列の文字列の行属性も、初期設定である左寄せに戻し(ステップS212)、その文字列の最後に改行コードを付加し(ステップS214)、この処理を終了する。
罫線が引かれたことで行が分割された場合、その罫線を境界とする左右両側の領域については、行属性である均等配置,右寄せなどが独立して設定可能となっているので、罫線による分割前の設定と分割後の設定との関係が問題となる。本実施例では、予め行属性が設定されている行に罫線が挿入されたときを取り上げており、行の分割による行属性の設定変更について、罫線左右の両領域に対して初期設定(デフォルト)の行属性に自動的に戻すものとしている。なお、この処理は、文字列が罫線によって分割されない場合(例えば右寄せされた文字列の左側隔たった位置に罫線を引いた場合)でも同様である。また、文字の上に罫線が作成された場合には、その重なった文字は、図9のフローチャートにて説明したと処理に準じて取り扱い、その文字を削除する。
実施例における他の罫線関係の機能について、更に説明する。以下は、タブ,インデント等が設定された行に罫線を引いた場合の処理に関する。タブやインデントは、文字列を所望の位置に配置するための設定であるが、このタブ,インデントについては、この例では上記図11のフローチャートとは異なる次の処理を行なっている。図12(A),(B),(C)及び図13は、タブが存在するか、インデントがデフォルト値から変更された段落について罫線が描かれた場合の処理の説明図及びそのフローチャートである。なお、デフォルトでは、タブは8文字毎に設定されており、インデントは左マージン位置と同一位置に設定されている。なお、タブやインデントの設定は、全角または半角の標準の文字の大きさを単位として設定するものとしたが、ミリ等の長さの単位やドット数等の単位を用いて設定することも可能である。
図13に示した処理が開始されると、使用者の指示に従って罫線を作成した後(ステップS300)、この罫線が描かれた行にデフォルト値と異なるインデント設定がなされているかを判断し(ステップS302)、デフォルト値から何等かの変更がなされている場合、すなわち図12(B),(C)に示すようにインデント設定されている場合には、インデントによる空白量をスペース情報によって置換する(ステップS304)。続いて、罫線が描かれる文字列にタブが含まれているか否かを判断し(ステップS306)、タブが含まれている場合(図12(A)を参照)には、このタブによる空白量をスペース情報に置換する(ステップS308)。こうしてインデント,タブによる空白部分がすべてスペース情報に置換された後には、罫線左のインデントの設定をデフォルト値に復帰させ(ステップS310)、罫線右のインデントの設定をデフォルト値に復帰させ(ステップS312)、罫線左のタブ設定を標準タブに復帰させ(ステップS314)、罫線右のタブ設定を標準タブに復帰させ(ステップS316)、処理を終了する。なお、ステップS304およびステップS308で置換されるスペース情報は、上記の例で説明したスペース情報と同じものである。スペースによる置換は、インデントまたはタブによる構成された空白をこれとほぼ同じ幅となる個数のスペースで置き換えるものとしても良いし、スペースのポイント数等を演算して大きな幅のスペースと置き換えを行なうものとしても差し支えない。
即ち、タブやインデントが設定されている行では、罫線が挿入されて行が分割された場合、上記の例で説明した右寄せや均等配置の場合のように、文字列の配置を初期設定の配置(この例では左寄せ)に戻すのではなく、罫線を作成する前の配置とほぼ同一の位置に配置するようにスペースを挿入しているのである。これは、タブ,インデントが、前述した行属性である均等配置,右寄せなどと異なり、段落毎に設定使用されることが一般的であり、罫線が挿入された後においても文字列の配置位置をそのままの状態とすることが使用者の文書作成のイメージに合致すると考えられるからである。また、罫線挿入後の左右の領域の文字列には、タブ,インデントのデフォルト値が自動設定されるため、使用者には文書作成のイメージが残存されたまま、かつ、文書作成に最も多用されるデフォルト値による操作環境が提供され、極めて使い勝手に優れたものとなる。なお、タブ,インデントは1文字とみなし、この上に罫線が描かれる場合には図9にて説明した文字削除処理と同様に実行される。
以上、罫線を追加する際の各種処理について説明したが、本実施例のアプリケーションソフトは、既に描画されている罫線を削除する際にも以下のような優れたインタフェイスを用意している。これらについて以下の実施例で説明する。
図14(A),(B)及び図15は、アプリケーションソフトのデフォルト値が採用された行、すなわち左寄せ属性で、かつ、タブ,インデントの変更設定がなされていない行に描画されている罫線を削除する際の処理説明図及びフローチャートであり、その処理の概要を示す。
図15に示した処理が開始されると、罫線を消去する処理(ステップS400)がまずなされる。罫線の消去は罫線上のある点から他の点までを指定して「DEL」キー等を操作することで実行可能である。罫線の消去がなされると、その罫線により分割されていた左右の区間に存在していた文字列の統合(図14(A)を参照)が生じるか否か(ステップS402)、そして少なくとも削除された罫線の右側の編集領域に文字列が存在(図14(B)を参照)するか否かを判断する(ステップS404)。この何れかの条件が成立しない場合には、単純に罫線を削除するためにその消去した罫線に替わってスペース情報を挿入(ステップS406)して処理を終了する。スペース情報の挿入は、既述した手法が用いられる。
他方、ステップS402とS404の両条件が成立する場合には、消去した罫線の左側に存在する文字列の終端から右側に存在する文字列の先頭までの空白量と略同一の文字幅となるアウトラインフォントによるスペース情報、すなわちスペースの個数やポイント数を自動演算し(ステップS408)、これをその空白部にに挿入する(ステップS410)。そして、こうして罫線の消去に因っても従前の文字列の位置が不変となるように出来る限り文字幅が同一となるスペース情報を挿入するが、上記処理によっても以前として余りの空白がある場合には(ステップS412)、この空白を埋め尽くすために右側の編集領域の文字列をその余り空白部分に移動させ(ステップS414)、処理を完了する。
上記の罫線消去処理によれば、罫線が既に存在した行においてその罫線が消去されるても、消去された罫線によりそれまで左右の編集領域に分割されていたそれぞれの文字列の配置位置はほぼ同一に保たれる。従って、作成中の文書のイメージは維持され、文書作成の効率を低下させることがない。しかも、この文字列の配置位置をほぼ同一に維持するためのスペース情報が自動演算されるため、文字列にアウトラインフォントを使用している本実施例のOSにおいても高い精度で文書イメージを維持することが可能となる。
他の形成処理機能の一つとして、罫線により左右に分割された編集領域の何れかにアプリケーションソフトの初期設定である左寄せ以外の行属性の設定、例えば均等配置,右寄せ,中央寄せがなされている場合の処理について、図16の説明図及び図17のフローチャートに従い説明する。
この処理が開始されると、使用者の指示により、指定された罫線を消去した後(ステップS500)、罫線の消去により、それまで罫線により分割されていた左右の編集領域の統合が発生するか否かを判断し(ステップS502)、領域の統合が発生しない場合には直ちに罫線消去処理(ステップS504)を実行して本プログラムを終了する。一方、領域の統合が発生するとステップS502にて判定された場合には、統合される左側の編集領域の行属性が初期設定(実施例では左寄せ属性)以外の設定か否かを判断し(ステップS506)、初期設定から何等かの変更がなされている場合、すなわち図16に例示するように均等配置などが設定されている場合にはその設定をデフォルト値である左寄せに復帰(ステップS508)させる(図16に示す中段の状態参照)。そして、統合される右側の編集領域についても、属性の設定がデフォルトの左寄せか否かを判断し(ステップS510)、左寄せでない場合のみその段落設定値をデフォルト値の左寄せ属性に設定し(ステップS512)、その後に罫線消去処理(ステップS504)を実行して(図16に示す下段の状態参照)、この処理を終了する。
この罫線消去処理によれば、罫線を消去したことで統合されて1つの編集領域となる行に対し、文書作成に際して最も使用頻度の高い初期設定である左寄せ属性が自動的に設定される。従って、罫線消去により新たに発生した編集領域での編集活動を円滑に行なうことができる。しかも、左右の編集領域に存在した文字列を統合する際には、罫線により分割されていた状態で存在した文字列間の隔たりと等しい距離となるようスペース情報を演算して挿入する。従って、図16の下段に示すように、左右に分割されていた文字列の状態を保ったまま、新たな編集領域とするので、領域統合後も従前どおり位置関係にある文字列をベースとして文書作成を実行することができる。
なお、タブ,インデントについては、前記罫線の挿入と同様に、上記図16,図17に示した例とは異なる処理が用意されている。この処理について説明する。図18(A),(B)及び図19は、タブが存在するかインデントがデフォルト値から変更された段落についての罫線消去処理の説明図及びフローチャートである。
この場合、罫線消去の処理が指示されると、使用者の指示に従って罫線を消去した後(ステップS600)、その罫線消去により領域の統合が発生するか否かを判断し(ステップS602)、領域統合が発生しない場合にはこの処理を終了する。一方、ステップS602の判断処理により領域統合が発生すると判定された場合には、統合される罫線左側領域の文字列にタブデータが存在するか否かを判断し(ステップS604)、タブデータが存在する場合には、該タブデータを、そのタブデータにより表示上形成される空白の幅と略同一となるスペース情報にて置換する(ステップS606)。次いで、統合される罫線右側領域についても同様にタブデータの有無について判断する処理を行ない(ステップS608)、更にタブデータが存在する場合、スペース情報へ置換する処理(ステップS610)を実行する(図18(A)を参照)。
統合される左右領域についてのタブデータの置換処理が完了すると、続いてインデントを設定する処理に移行する。すなわち、統合される左側領域にデフォルト値と異なるインデント設定がなされているか否かを判断し(ステップS612)、何等かのインデント設定がなされている場合、すなわち図18(B)に示すようにインデント設定されている場合には、インデントによる空白量をスペース情報によって置換する処理を行なう(ステップS614)。統合される右側領域についても同様にデフォルト値と異なるインデントの設定がなされているか否かを判断し(ステップS616)、インデントの設定がある場合にはこれに相当する空白量をスペース情報により置換する処理を行なう(ステップS618)。この様子を、図18(B)に示した。その後、先に指示された罫線を消去する処理(ステップS620)を実行し、統合された編集領域について、タブ,インデントの設定をデフォルト値に復帰させ(ステップS622)、「END」に抜けて処理を終了する。
以上説明した処理により、段落毎に設定使用されるタブ,インデントについては、左右編集領域の統合前の文字列配置位置を維持しつつ、新たな統合編集領域を生成することができる。すなわち、罫線を消去した行の変更が同一段落の他の文字列配置位置に何等の影響を及ぼさないように処理し、使用者の段落イメージに合致した形式にて罫線を消去する処理を行なうのである。しかも、統合された編集領域では、タブ,インデントの設定はデフォルト値に自動復帰されるため、それ以後の文書作成作業が円滑となるのである。
以上いくつかの処理例について説明したように、こうした文字列と罫線の処理方法およびその装置によれば、文字列の配置状態をデフォルト値の左寄せから、右寄せ、中央寄せ設定している場合、または段落設定をデフォルトのインデント設定から変更している場合あるいは段落にタブが設定されている場合についても罫線の挿入,削除を使用者の感覚に合致した形で行なうことができる。また、編集領域の統廃合に応じてその編集領域の行配置や段落設定などを適宜デフォルト値に復帰させるため、罫線の挿入,削除処理を行なった後の文書作成が極めて簡単となる。
また、文字情報の削除や上記各種設定の変更に伴って空白部が発生するときには、その空白部を埋めるスペース情報が自動演算、自動挿入されるため、文書全体のイメージを保ったままで罫線の挿入,削除を行なうことができる。これによって使用者は、罫線操作前の文書イメージを描き続けたまま、操作後の文書編集ができるのである。
更に、罫線を付加する位置についてもマウス42を有効に利用することで、編集部418の任意の位置を高い分解能で指示することができ、かつ、縦横の罫線の配置位置が一操作で完了する。
以上、罫線の挿入と消去に関する各種処理方法について説明したが、このアプリケーションソフトはこれ以外にも罫線により区画される編集領域の管理及び罫線作成に関して優れたユーザ・インタフェイスを用意している。次に、これらのユーザ・インタフェイスの参考例と実施例について詳述する。
図20(A),(B),(C)及び図21は、編集領域の管理に関する処理の説明図及びその部分のプログラムのフローチャートであり、参考例としての罫線処理の概要を示すものである。なお、図20は、矩形の罫線KLにより区画された編集領域に文字列「abc…xyz」が予め入力されており(図20(A))、この文字列の途中に「123」という文字列を挿入し(20図(B))、その追加した文字列から文字「3」のみを消去(図20(C))するという一連の文書編集処理を施した過程を例として、編集部418の表示状態の変化を示している。また、この処理プログラムは、罫線KLにより区画された編集領域にカーソルが配置され、その編集領域内においてカーソルのある位置の文字列が編集される際に実行される。すなわち、この処理は、文字列の編集作業と同時かつ並行的に処理されるものである。文字列の編集作業とは、文字列に対して情報の追加,挿入,削除,フォントやポイント数の変更などを行ない、その作業に応じた画面描画や各種管理情報の変更を実行する処理である。
使用者による文字列の編集作業が開始されると、まず初めにその編集領域の縦方向の大きさ(初期値)を所定の記憶領域に記憶する(ステップS700)。その後、使用者による文字列の編集がなされると、編集後の文字列の占有面積を算出し(ステップS702)、この新たな占有面積とステップS700にて記憶した編集領域との大小関係を判断する(ステップS704)。記憶した編集領域の当初の大きさ(初期値)よりも算出された占有面積が大きい場合には、編集されつつある文字列が収まる編集領域の大きさを演算し(ステップS706)、編集領域の下辺を区画している罫線の位置を下方向に延長する(ステップS708)。実際には、下辺の罫線を消去して新たな罫線を描画する処理を実行するのである。即ち、図20(A)の状態から同図(B)の状態へ、罫線KLを変更する。もとより、占有面積が編集領域の初期値より大きいのであれば、編集によって占有面積が減った場合にも、矩形の罫線KLの書き直しがなされる。一方、編集に伴って算出した占有面積がステップS700にて記憶した編集領域の初期値より小さいとステップS704にて判断された場合には、本処理を終了し、罫線描画をそのままの状態、すなわち当該編集領域のデフォルトの大きさに維持する(図20(B)の状態から同図(C)の状態への変更)。
この様な編集領域の処理により、罫線により区画された編集領域内の文字列の情報量が増加した場合、罫線を自動延長して文字列が編集領域内に収まるように処理できることは勿論である。そして更に、この様な自動延長機能に加え、自動延長した罫線による編集領域に対して文字列の情報量が小さいものとなったとき、自動延長した領域に限って罫線を縮小する。換言するならば、罫線作成時の編集領域の大きさを基準として、その編集領域に記入される文字列の占有面積に応じて罫線による領域の大きさは自動伸縮するのであり、文書編集の作業効率が大幅に向上する。例えば、大量の文字列を編集領域に入力した場合、編集領域を区画する罫線は更新されてその文字列を収納するに十分な大きさに拡大され、しかも入力されたこの文字列が削除されたりした場合には、罫線は初期値の大きさまで漸次縮小する。
次に、実施例について説明する。この実施例では、上述した罫線の生成、削除を伴う処理において、罫線を描画する処理自身を取り上げ、マウス42を利用して簡単に縦横の罫線描画を行なうことができるユーザインタフェイスについて説明する。図22は、本実施例のアプリケーションソフトで採用しているマウス42を利用した罫線の描画の操作手順に則し、罫線の描画が完成するまでのディスプレイ40の表示の状態を時系列的に示した説明図である。各図に添えられている文字は、その図の状態となるためになされる操作などについて説明するものである。図22(A)に示するように、罫線描画に際して本ソフトにより処理は次のように行なわれる。
使用者は、矩形の罫線を作成する際、作成しようとする罫線の左上隅の位置P1でマウス42の左ボタン422を押圧する。位置P1を指定すると、その位置が第n罫線ブロックの開始位置として記憶される。その後、マウス42が移動されるとこれに応じてポインタPが移動し、ポインタPの移動位置を矩形罫線の右下隅とする矩形RSが、ディスプレイ40に表示される。この状態での罫線の表示は、ポインタPの移動に応じて自由に動くので、ラバーバンド形式による表示と呼んでいる。そして、使用者がディスプレイ40を見ながらマウス42を移動させ、所望の位置P2でキーボード46の所定キー(例えば「TAB」キー)を操作すると、その位置P2が検出され、この位置を分割点として記憶する処理がなされる。分割点が記憶されると、開始位置P1を左上隅とし当該分割点を交点とする縦横の分割罫線RLを、矩形の罫線と同様の表示の態様で表示する(図22(B))。従って、以上の処理を繰り返すならば、図22(C)に示すように、分割点の個数(P2,P3・・・)に応じた多数の縦横の罫線が表示されることになる。その後、使用者がキーボード46の所定キーに割り付けられた終了キー(例えば「RETURN」キー)を操作すると、これが検出され、罫線は、ラバーバンド形式の描画状態から、所定の線種の罫線としての描画状態に変更され、確定された罫線が表示される。また、内部的には、罫線ブロックの情報が確定される(図22(D))。上記例では、「TAB」の操作により分割点を記憶するものとしたが、分割点の記憶は、「TAB」キー以外のキーに割り当てることはもとより、他の種々の操作によっても指定可能である。例えば、マウスの機能が割り当てられていないボタンの操作、タブレットが存在する場合にはタブレット上の所定の位置での指示、ライトペンによる指定等であっても差し支えない。
実施例において説明した図1の描画状態は、この操作方法により罫線の開始位置を指定してラバーバンド形式の矩形罫線をドラッグしている状態を示したものである。この状態でキーボード46に割り付けられた終了キーを操作すると、図23に示すように所定の線種として選択されている罫線により描画が完了し、かつ、前記した各種の文字列と罫線の処理方法に基づくデータ処理が実行されるのである。もとより、矩形の罫線の描画の途中で分割点が指定されていれば、その分割点を通る縦横の罫線も表示される。
一方、図22(C)に示したように、ラバーバンド形式で罫線が表示されており、まだ確定していない状態において、既に指定した分割点を取り消したい場合が有り得る。図22(E),(F)は、分割点を取り消す操作方法の一つを示すものである。ある分割点Pnを指定した後で、マウス42を操作してポインタPを、この分割点よりも矩形の罫線の開始位置P1側に持ってきた場合には、先に指定した分割点Pnを消去するものとし、この分割点に関する情報もメモリ上から消去する。この分割点を交点とする縦横の罫線も同様に消去される。複数の分割点がある場合、図22(E)及び(F)に示しているように、ポインタPがその内側(開始位置側)に移動した分割点P3は消去されるが、ポインタPがその外側に位置している分割点P2は消去されない(図22(E))。そしてこの状態から更にマウス42をドラッグして分割キーを操作すると、図22(F)に示すように、新たな位置を分割点P3として新たな縦横の罫線の表示がなされるのである。
この様な罫線作成のユーザインタフェイスによれば、従来の罫線作成の手順のように縦方向の罫線と横方向の罫線とを別個に位置指定する手間が省略され、縦横の罫線を一操作で簡単に作成することができる。また、マウス42の操作により簡単に縦横の罫線の指定を取り消すことができる。なお、図22(X),(Y)に示したように、ポインタPを戻すだけで分割点を取り消す構成に代えて、ポインタPを分割点の上において所定の操作(例えば分割キーやマウスボタンの再度の操作)を行なうことで分割点を取り消す構成とすることも差し支えない。この場合には、複数個の分割点うち開始位置P1に近い側のものを他の分割点を取り消すことなく取り消すという操作が可能となる。なお、本実施例では、ポインタPの移動にはマウスやトラックボール等のポインティングデバイスを用いるものとして説明したが、カーソルキー等の操作によりポインタを移動するものとしても差し支えない。
以上本発明の実施例について説明したが、本発明はこうした実施例に何等限定されるものではなく、その要旨を逸脱しない種々なる態用により具現化されることは勿論である。
以上説明したように本発明の文字列と罫線の混在処理方法およびその装置は、文字及び罫線が混在したデータファイルを作成する使用者にとって最も快適なインタフェイスを提供し、大きさを自由に設定できる文字列と罫線の混在への適切な対処、カーソルキー操作やポインティングデバイスを有効に利用した罫線の配置指示などを可能とする。
上記例示した処理装置によれば、罫線と文字列とが重複した場合には、文字を消去して罫線を優先して表示するが、文字を消去した際、消去した文字と略同一の幅を有するスペースを演算し、重複の発生した文字に代えてこのスペースを挿入するので、文字の消去にも関わらず、元の文字列は概ね同一の位置に表示される。
また、上記例示した処理装置によれば、罫線が挿入された行では、罫線より分割された領域毎に文字列の配置は初期の配置状態に復帰するので、使用者にとって素直なインタフェイスが実現される。
上記例示した処理装置によれば、所定の配置状態が設定されている行に罫線が挿入されると、配置状態の設定を初期状態に戻すと共に、既に配置された文字列についてはその位置を保持するようにスペースを演算して挿入するので、配置状態の設定は初期化されるが文字列の配置はほとんど変わらず、使用者が違和感を感じることがない。
他の例示した処理装置によれば、所定の配置状態が設定された行に存在した罫線が削除されたとき、所定の配置状態とされた文字列を、罫線により分割されていた区間毎に初期位置もしくはその近傍位置に復帰させるので、罫線により分割された区間で、例えば右寄せされていた文字列は、罫線が削除されると、初期状態(例えば左寄せの状態)に復帰される。罫線が削除されて分割されていた区間がなくなった場合、使用者にとって分かりやすいインタフェイスが実現される。
また、上記例示した処理装置によれば、所定の配置状態が設定された行に存在した罫線が削除されると、罫線により分割されていた区間におけるそれぞれの文字列の配置位置が、その配置状態での配置位置もしくはその近傍となるように、所定幅のスペースを演算し挿入するので、罫線を削除しても、既に所定の配置状態に配置された文字列は、ほぼ元の位置に配置され、使用者にとって違和感のないインタフェイスが実現される。
上記例示した混在処理方法および処理装置によれば、罫線により区画された領域内の文字列に対する編集の結果に応じて、領域を区画する罫線の大きさを変更して区画された領域を延長または縮小するが、領域の縮小に際しては、領域の初期の大きさを限度とし、それ以下への縮小は行なわない。従って、罫線により区画された領域は、内部の文字列の編集に応じて延長・縮小し、かつその初期の大きさ以下にはならないので、領域の変形が非所望なものにはならない。
本発明の罫線の処理方法および罫線の処理装置によれば、ポインティングデバイスを用いて第1の位置を開始点とし第2の位置を第1の位置に対向する隅部とする矩形の罫線を引く途中で所定の操作がなされたとき、この点を通る罫線を発生させ、矩形の罫線を分割するので、極めて容易に分割罫線を有する矩形の罫線を引くことができ、またその罫線を容易に消去することができるという効果を奏する。