C    プログラムでの DECterm ローカライゼーション機能の使用

ここでは,DECterm 端末エミュレータで用意されている,ローカル言語サポートのためのプログラミング機能について説明します。

C.1    DECterm ウィンドウにおける罫線の処理

ビデオ端末用のプログラミング・マニュアルには,ANSI エスケープ・シーケンスを使用して,文字の挿入と削除,空白行の挿入と削除,倍の高さと幅を持つ文字の表示などの操作をどのように行うかが説明されています。 DECterm ウィンドウはエミュレータであるため,これらのエスケープ・シーケンスは,DECterm ウィンドウにテキストやグラフィックスを表示するプログラムにも使用できます。

オペレーティング・システムが備えるアジア系言語のための拡張機能には,DECterm ウィンドウ内の指定した領域に罫線を引いたり削除するためのエスケープ・シーケンスが追加されています。 これらのエスケープ・シーケンスを使用することにより,アプリケーションで表やダイアグラムを描画できます。

以降の節では,パターンと領域パラメータに従って罫線を引いたり削除するためのエスケープ・シーケンスについて説明します。

C.1.1    パターンに従った罫線の描画

ニーモニック DECDRLBR で表されるエスケープ・シーケンスは,指定されたパターンに従って四角形の境界上に罫線を引きます。 DECDRLBR のフォーマットは,次のとおりです。

CSI P1;Px;Plx;Py;Ply ,r
 

意味は,次のとおりです。

DECterm ソフトウェアは,アプリケーションから DECDRLBR エスケープ・シーケンスを受け取ると,P1 に指定されたパターンに従って, 座標 (Px ,Py )(Px +Plx -1, Py +Ply -1) 間の領域の 1 つまたは複数の境界上に罫線を引きます。 次の例を考えてみます。

CSI 15 ; 1 ; 5 ; 1 ; 2 , r
 

上記のエスケープ・シーケンスにより,DECterm ソフトウェアは図 C-1に示す罫線を引きます。

図 C-1:  DECDRLBR シーケンスを用いた罫線の描画

DECterm ソフトウェアは,1 ピクセル幅の罫線を描画できます。 画面をスクロールすると,罫線はテキストと同様にスクロールします。

図 C-2 とその後の表は,DECDRLBR パラメータに対応するビット・パターンを示します。

図 C-2:  DECDRLBR パラメータのビット・パターン

ビット ビット値 説明
ビット 0 1 下辺に罫線を引きます。
ビット 1 2 右辺に罫線を引きます。
ビット 2 4 上辺に罫線を引きます。
ビット 3 8 左辺に罫線を引きます。

次のリストで,DECDRLBR パラメータについてより詳細に説明します。

C.1.2    パターンによる罫線の削除

エスケープ・シーケンス DECERLBRP は,指定されたパターンに従って四角形の境界上の罫線を削除します。 DECERLBRP のフォーマットは,次のとおりです。

CSI P1;Px;Plx;Ply;Py,s

意味は次のとおりです。

C.1.3    領域内のすべての罫線の削除

エスケープ・シーケンス DECERLBRA は,領域境界上に引かれた罫線だけでなく,矩形領域内のすべての罫線を削除します。 DECERLBRA のフォーマットは,次のとおりです。

CSI P1;Px;Plx;Py;Ply ,t

意味は次のとおりです。

C.1.4    その他の DECterm エスケープ・シーケンス

表 C-1 に,画面上に罫線を引く際の標準 DECterm エスケープ・シーケンスの効果を示します。

表 C-1:  罫線に対する標準エスケープ・シーケンスの効果

ニーモニック 説明 罫線への効果
DECDWLDECDHLTDECDHLB 2 倍の幅,または 2 倍の高さで表示します。 これらのエスケープ・シーケンスは,幅が常に 1 ピクセルの罫線には影響しません。 また,エスケープ・シーケンスが,テキストの高さと幅を 2 倍にするパラメータを指定して使用された場合でも,罫線の表示を制御するエスケープ・シーケンスのパラメータ単位は,カラムの幅と行の高さが常に等間隔になるように設定されます。
GSM グラフィックス・サイズを変更します。 これらのエスケープ・シーケンスは,幅が常に 1 ピクセルの罫線には影響しません。 DECDWLDECDHLT,および DECDHLB に対する上記のコメントは,GSM にも当てはまります。
EDELECH 画面の削除,行の削除,および文字の削除を実行します。

これらのエスケープ・シーケンスは罫線の削除は行わず,罫線の内側にある文字だけを削除します。 次に例を示します。

DL 行を削除します。

このエスケープ・シーケンスは,削除操作を行っている行の文字と罫線の両方を削除します。 削除位置の後のテキスト行とそれに対応する罫線が上方向にスクロールされます。 次に例を示します。

IL 行を挿入します。

このエスケープ・シーケンスは,現在の位置に空白行を挿入します。 現在の位置にあるテキスト行とそれに対応する罫線が下方向にスクロールされます。 次に例を示します。

DCH 文字を削除します。

このエスケープ・シーケンスは,罫線を削除しません。 次の例は,第 3 カラムで 4 文字を削除します。

ICH 文字を挿入します。

このエスケープ・シーケンスは現在の位置に空白を挿入しますが,罫線には影響しません。 次の例は,第 3 カラムに 4 文字を挿入します。

IRM 挿入/置換モードに入ります。

挿入/置換モードは,罫線には影響しません。 次の例は,第 3 カラムに文字 w,x,y,z を挿入し,文字 f を s に置換します。

DECCOLM カラム・モードに入ります。 カラム・モードが有効なときは,テキストとそれに対応する罫線が削除されます。
RISDECSTR 初期状態とソフト端末をリセットし,リセット SETUP モードに入ります。 RIS シーケンスは画面上のすべての罫線を削除しますが,DECSTR シーケンスは罫線を削除しません。 DECterm の Commands メニューの Clear Display オプションは,すべての罫線を削除しますが,Reset Terminal オプションは罫線を削除しません。

C.1.5    DECterm が罫線をサポートしているかどうかの判定

アプリケーションで罫線を描画できる機能は,DECterm ウィンドウがこの機能をサポートする端末タイプをエミュレートしている場合にのみ使用できます。 アプリケーションは,DECterm ソフトウェアから 1 次デバイス属性を取得することにより,デバイスがサポートされているかどうかを検査できます。

VT 端末と DECterm ソフトウェアは,アプリケーションからの要求に応じて 1 次デバイス属性をレポートします。 レポートに拡張値 43 が含まれているときは,デバイスで罫線を描画できます。 この機能は,level-2 以降のビデオ・ディスプレイで使用できます。 たとえば,DECterm ウィンドウが VT382 の日本語版,VT382-J 端末をエミュレートしている場合,1 次デバイス属性は,次のようにレポートされます。

CSI ? 63 ; 1 ; 2 ; 4 ; 5 ; 6 ; 7 ; 8 ; 10 ; 15 ; 43 c

アプリケーションは CSI c または CSI 0 c のいずれかのエスケープ・シーケンスを VT 端末,あるいは DECterm ソフトウェアに送ることにより,デバイス属性レポートを取得できます。

C.2    DECterm プログラミングにおける制約

この節では,ハードウェア・マニュアルに記載されている端末プログラミング機能に関する DECterm ソフトウェアの制約について説明します。

C.2.1    ダウンライン・ローダブル文字

DECterm ソフトウェアは,端末のプリロードとオンデマンド・ローディングに使用されるダウンライン・ローダブル文字をサポートしません。 DECterm ソフトウェアは,これらの文字のエスケープ・シーケンスを無視します。

C.2.2    DRCS 文字

DECterm ソフトウェアは,DRCS (DIGITAL Replacement Character Set) の標準文字セット (SCS) コンポーネント以外はサポートしません。 DECterm ソフトウェアは SCS 文字を受け取ると,X ウィンドウ・サーバの -*-dec-drcs という XLFD 名を持つフォントを検索し,ソフト文字セットとして処理します。 また,DECterm ソフトウェアは,端末プログラミング・アプリケーションから送られた DECDLD 制御文字列を無視します。