CUI関数
CUI関数は、メニューエリア上にユーザインターフェイスを提供します。 ユーザはCUI関数を用いることで、スクリプト中からインタラクティブかつヴィジュアルにユーザと対話ができます。
-
VOID cuimenu VOID
-
CUIメニューを実行します。
-
VOID flushmsg VOID
-
メッセージエリアをクリアします。
-
BOOL edittext (STRING1, STRING2)
-
STRING1を編集するためのユーザインターフェイスを提供します。 STRING2はキャプションです。キーバインドはemacs-likeになっています。
リターンキー(Ctrl+m)が押されると1を返し、編集結果を$_RETに格納します。
エスケープキー(Ctrl+g)が押されると0を返します。
-
edittextは以下のようなインターフェイスを提供します。
-
BOOL editfilename (STRING1, STRING2)
-
ファイル名STRING1を編集するためのユーザインターフェイスを提供します。
STRING2はキャプションです。 editfilename関数はedittext関数と似ていますが、
ファイル名を編集するために特化したインターフェイスです。 edittext関数と同様、キーバインドはemacs-likeになっています。
またtcshやbashなどのシェルのように、TABキー(Ctrl+i)でファイル名の補完(completion)が行えます。
edittext関数は一般的なテキストを編集するためのものですから、補完機能はありません。
またホームディレクトリとして、"~"を用いることも可能です。
-
リターンキー(Ctrl+m)が押されると1を返し、編集結果を$_RETに格納します。
エスケープキー(Ctrl+g)が押されると0を返します。
-
editfilenameは以下のよ うなインターフェイスを提供します。
-
BOOL objectmove (INT1, INT2, ....)
-
INT1、INT2、...で与えられる座標を平行移動するためのユーザインターフェイスを提供します。
-
(x1, y1, x2, y2) = (INT(4i), INT(4i+1), INT(4i+2), INT(4i+3))のように引数4つで1つの矩形を表現します。
従ってトータルの引数の数は4の倍数でなければなりません。 また座標値は絶対座標系(用紙の左上を(0,
0)とし、y軸の正方向が下)でなければなりません。
-
このような形式で与えられた複数の矩形を、 objectmoveはまずビューアに表示します。またobjectmoveはメニューエリアに以下のようなユーザインターフェイスを提供します。
ユーザはキーにより、複数の矩形を平行移動することができます。
-
ユーザがリターンキー(Ctrl+m)を押すと最終的な矩形位置を@_RETに格納し1を返し、エスケープキー(Ctrl+g)を押すと0を返します。
-
BOOL inputparts (INT1, INT2)
-
INT1で与えられるpartsを入力するためのユーザインターフェイスを提供します。INT1には、1(line)、2(polyline)、3(rectangle)、4(circle)、5(cut)の5つの値のいずれかを与えます。現在の仕様では3、4、5の区別はありません。またINT2にはnodeの補間方法、0(polyline)、1(closed
polyline)、3(P-spline)、4(closed P-spline)のいずれかを与えます。現在の仕様では、0と3、1と4の区別はありません。
また2は指定できません。
-
inputparts関数はビューアに十字形のカーソルを表示し、メニューエリアには以下のようなユーザインタフェイスを提供します。
ユーザはノード位置をリターンキー(Ctrl+m)で入力します。 line、rectangle、circle、cutの場合は、ノードを2点を入力する必要があります。
polylineの場合入力点数に決まりはありません。 最終点を入力したら'x'を押してノード入力を終了します。
この関数は設定が正常に終了すると1を返します。 また設定を中断(ESCまたはCtrl+m)すると0を返します。
関数が正常に終了した場合、@_RETにpartsの座標を絶対座標で返します。 line、rectangle、circle、cutの場合、@_RET
= (x1,y1, x2, y2)のような内容が返ります。 polylineで入力したノード数が3個の場合、
@_RET = (x1, y1, x2, y2, x3, y3)が返ります。
-
BOOL trimming NULL
-
座標軸表示範囲をトリミングするためのユーザインターフェイスを提供します。
trimming関数が実行されると、ビューアには十字線カーソルが表示され、 メニューエリアには下図のユーザインターフェイルが提供されます。
ユーザはキー操作により十字カーソルを移動させ、リターンキー(Ctrl+m)により2点を
設定してください。 設定が終了すると1、ESCキー(Ctrl+g)により設定が中断されると0が返します。
また設定が正常に終了した場合、@_RET = (x1,y1, x2, y2)が返されます。 この場合x1、x2はトリミングにより得られたX軸の両端値、y1、y2はトリミングにより得られたY軸の両端値です。
これらの値は絶対座標値ではなく、座標軸の表示範囲であることに注意して下さい。
またT、R軸はトリミングできません。
-
BOOL watch NULL
-
座標軸内の値を調べるためのユーザインターフェイスを提供します。 watch関数が実行されると、ビューアには十字線カーソルが表示され、
メニューエリアには下図のユーザインターフェイルが提供されます。 ユーザはキー操作により十字カーソルを移動させ、
座標値を読み取ることができます。座標値はメニューエリアに表示されます。
リターンキー(Ctrl+m)で1、ESCキー(Ctrl+G)で0を返します。 またリターンキー(Ctrl+m)で終了した場合、@_RET
= (x, y, t, r, wx, wy)が設定されます。 この場合xは得られたX軸値、yはY軸値,
tはT軸値、rはr軸値、(wx, wy)は用紙左上を原点とした絶対座標(1/20point単位)です。
-
BOOL trace INT
-
INTで与えられるインデックスを持つデータオブジェクトのデータ値をカーソルでトレースするためのユーザインターフェイスを提供します。
trace関数は選択されたデータオブジェクトのデータ値上に十字カーソルを表示しま
す。 またメッセージエリアには、以下のようなユーザインターフェイスを提供します。
ユーザはキー操作により十字カーソルを移動させ、データ点の値を読み取ることができます。
データ値はメニューエリアに表示されます。 リターンキー(Ctrl+m)で1、ESC(Ctrl+g)で0が返されます。
またリターンキー(Ctrl+m)で終了した場合、@_RET =(DOUBLE x, DOUBLE y, INT
index)が設定されます。 この場合(x, y)はカーソルのあるデータ点の値です。またindexは、0からはじめたその点の番号です。
-
VOID message STRING
-
STRINGを以下の図のようにメッセージとして表示します。キー入力があると終了します。
-
BOOL changenodes (INT1, INT2、...)
-
partsのnodeを移動するためのユーザインターフェイスを提供します。 複数のノードの絶対座標を、(x1,
y1, x2, y2, x3, y3, ....)のような形式で引数に渡します。 changenodes関数は、(INT1,
INT2、...)を直線で結び、ビューアに表示します。 またメニューエリアには下図のようなユーザインターフェイスを提供します。
ノードの移動は方向キーでも行えますが、emacs-likeなキーバインディングも使用できます。
またノードの選択はn、pキーで行います。nでフォーカスが移動し、 pで逆方向に移動します。ノードの追加はCtrl+yで、削除はCtrl+dで行えます。
-
編集の終了はリターンキー(Ctrl+m)で、編集の破棄はESCキー(Ctrl+g)で行います。
changenodes関数は、編集が終了した場合1、編集が破棄された場合0が返します。
編集が終了した場合、@_RETに変更されたノードの絶対座標が渡されます。
-
BOOL selectfile (INT, STRING)
-
ファイルを選択するための以下のようなユーザインターフェイスを提供します。
INTが0の場合単一選択、1の場合複数選択になります。 またSTRINGはファイル表示のフィルタであり、正規表現で与えます。
-
mを押すと、以下のような詳細表示とトグルに変わります。
-
selectfile関数には以下のように多くの機能がキーバインドされています。
-
Ctrl+n
-
カーソルキーの下移動
-
Ctrl+p
-
カーソルキーの上移動
-
SPACE
-
ファイルの選択、選択解除(トグル)
-
x、@、Ctrl+SPACE(Unixのみ)
-
選択を確定後終了
-
ESC、Ctrl+g
-
選択の破棄後終了
-
m
-
簡易表示、詳細表示の切り替え
-
a
-
表示ファイルの全選択
-
c
-
表示ファイルの全選択解除
-
n
-
名前でソート
-
t
-
ファイル作成時刻でソート
-
s
-
ファイルサイズでソート
-
o
-
ソート順の変更(トグル)
-
g
-
表示ファイルのフィルタリング。正規表現で指定。
-
d
-
カレントディレクトリの変更。パス名の補完機能あり。
-
v
-
カーソル位置のファイルの内容表示。スペースキーでページ送り可能。スペースキー以外のキーで表示終了。
-
ファイル選択後'x'または'@'(Unix版ではCtrl+SPACEキーも有効)によりselectfile関数は1を返し終了します。
ESC(Ctrl+g)キーによりファイル選択を中断すると0を返します。 selectfile関数が1を返す場合、@_RETに選択されたファイル名がフルパスで設定されます。
-
BOOL selectobject (STRING、INT)
-
オブジェクトの一覧を表示し、オブジェクトに選択属性を設定するためのユーザインターフェイスを提供します。
INTが0の場合単一選択、1の場合複数選択になります。 またSTRINGが'frame'、'data'、'parts'のいずれかを指定します。
以下の図は、'data'の場合の表示例です。
-
selectobject関数は以下のような機能がキーバインドされています。
-
Ctrl+n
-
カーソルキーの下移動
-
Ctrl+p
-
カーソルキーの上移動
-
SPACE
-
オブジェクトの選択、選択解除(トグル)
-
CR、Ctrl+m
-
設定の確定後終了
-
ESC、Ctrl+g
-
設定の破棄後終了
-
a
-
オブジェクトの全選択
-
c
-
オブジェクトの全選択解除
-
r
-
選択状態と非選択状態の反転
-
selectobject関数は、STRINGの値により、表示レコードが異なります。
-
[STRING='frame'の場合の表示レコード]
-
S
-
インスタンスの選択状態
-
aid
-
array id
-
iid
-
instance id
-
C
-
カレント座標軸
-
D
-
表示、非表示
-
frametype
-
フレームタイプ
-
position
-
フレームの位置
-
[STRING='data'の場合の表示レコード]
-
S
-
インスタンスの選択状態
-
aid
-
array id
-
iid
-
instance id
-
T
-
F:ファイルデータ、 M:メモリデータ
-
rx
-
xデータ参照軸
-
ry
-
yデータ参照軸
-
points
-
読み込みデータ点数
-
D
-
表示、非表示
-
filename
-
数値データファイル名
-
line
-
データ線スタイル
-
color
-
データ線色
-
marker
-
マーカスタイル
-
color
-
マーカ内部色
-
[STRING='parts'の場合の表示レコード]
-
S
-
インスタンスの選択状態
-
aid
-
array id
-
iid
-
instance id
-
type
-
partsのタイプ
-
text
-
テキスト
-
font
-
テキストのフォント名
-
L-color
-
輪郭色
-
B-color
-
内部色
-
設定が確定後終了すると1、設定破棄後終了するとselectobject関数は0を返します。
また確定後終了した場合、選択されたインスタンスはメンバselectedがtrueに設定され選択状態になります。
-
BOOL selectitem (STRING1, STRING2, .....)
-
STRING1をキャプションとし、STRING2以降を一覧表示し、STRING2以降の単一項目を選択するための以下の図のようなユーザインターフェイスを提供します。
リターン(Ctrl+m)により設定が正常に終了すると1、ESCキー(Ctrl+g)により設定を中断すると0が返されます。
設定が正常に終了した場合、$_RETに選択された文字列が返されます。
-
selectitem('demonstration of selectitem', '&apple', '&orange',
'&lemon');
-
の表示例です。文字の直前に"&"を入れると、この文字がホットキーになります。
-
BOOL selectlistitem (STRING1, STRING2, .....)
-
STRING1をキャプション、STRING2を初期カーソル位置とし、STRING3以降を一覧表示します。リターン(Ctrl+m)により設定が正常に終了すると1、ESCキー(Ctrl+g)により設定を中断すると0が返されます。また設定が正常に終了した場合、$_RETに選択された項目の番号が返されます。項目番号は、リストの最初(STRING3)が0です。
selectitemとの大きな違いは、各項目が一行づつ表示されること、選択された項目が、文字列でなく0を起点とした番号で返されることです。
-
VOID escapecuimenu VOID
-
VOID restorecuimenu VOID
-
これらの関数はUnix環境のみで利用できます。 Win32環境では絶対に使わないでください。
escapecuimenuは一時的にCUIMENUを隠しshellに画面を戻します。 CUIMENUへの復帰はrestorecuimenuで行います。
escapecuimenuをコールしたら、必ずresotorecuimenuをコールしてください。
以下の関数はframe、axis、data、... 等のメンバをヴィジュアルに設定するためのものです。
-
VOID framemenu VOID
-
frameの設定を行ないます。
-
VOID xbasemenu VOID
-
x軸のbaseの設定を行ないます。
-
VOID xrangemenu VOID
-
x軸のrangeの設定を行ないます。
-
VOID xtickmenu VOID
-
x軸のtickの設定を行ないます。
-
VOID xsubtickmenu VOID
-
x軸のsubtickの設定を行ないます。
-
VOID xlabelmenu VOID
-
x軸のlabelの設定を行ないます。
-
VOID ybasemenu VOID
-
y軸のbaseの設定を行ないます。
-
VOID yrangemenu VOID
-
y軸のrangeの設定を行ないます。
-
VOID ytickmenu VOID
-
y軸のtickの設定を行ないます。
-
VOID ysubtickmenu VOID
-
y軸のsubtickの設定を行ないます。
-
VOID ylabelmenu VOID
-
y軸のlabelの設定を行ないます。
-
VOID tbasemenu VOID
-
t軸のbaseの設定を行ないます。
-
VOID yrangemenu VOID
-
t軸のrangeの設定を行ないます。
-
VOID ttickmenu VOID
-
t軸のtickの設定を行ないます。
-
VOID tsubtickmenu VOID
-
t軸のsubtickの設定を行ないます。
-
VOID tlabelmenu VOID
-
t軸のlabelの設定を行ないます。
-
VOID rbasemenu VOID
-
r軸のbaseの設定を行ないます。
-
VOID rrangemenu VOID
-
r軸のrangeの設定を行ないます。
-
VOID rtickmenu VOID
-
r軸のtickの設定を行ないます。
-
VOID rsubtickmenu VOID
-
r軸のsubtickの設定を行ないます。
-
VOID rlabelmenu VOID
-
r軸のlabelの設定を行ないます。
-
VOID loaddatamenu VOID
-
選択されている数値データのロードのの設定を行ないます。
-
VOID plotmappingmenu VOID
-
選択されている数値データプロットのmappingの設定を行ないます。
-
VOID plotlinemenu VOID
-
選択されている数値データプロットのデータ線の設定を行ないます。
-
VOID plotmarkermenu VOID
-
選択されている数値データプロットのマーカの設定を行ないます。
-
VOID plotrangemenu VOID
-
数値メモリデータの生成範囲の設定を行ないます。
-
VOID functionmenu VOID
-
関数式の生成の設定を行ないます。
-
VOID linearfitmenu VOID
-
選択されている数値データの線形最小2乗法の設定を行ないます。
-
VOID nonlinearfitmenu VOID
-
選択されている数値データの非線形最小2乗法の設定を行ないます。
-
VOID partsstylemenu VOID
-
選択されているtext以外のpartsのスタイルの設定を行ないます。
-
VOID textstylemenu VOID
-
選択されているtextのスタイルの設定を行ないます。