Misc. Reference Manual Pages FvwmScript(3.1) 名前 FvwmScript - グラフィックユーザインターフェースを構築する モ ジュール 形式 FvwmPager は fvwm によって実行されなければならず、コマンドラ インからの呼び出しでは動作しません。 説明 FvwmScript は、デストップアクセサリ、ポップアップメニュー の ついたボタンパネル、流行の入力部分などの、多くのグラフィカル なアプリケーションを作り出すことができるようにするよう な モ ジュー ルです。起動時に、FvwmScript はコマンドラインで指定し たファイルを読みます。このファイルは、スクリプトを含んでいま すが、スクリプトは、Fvwm の設定ファイル内には入れません。 呼び出し FvwmScript は、`Module FvwmScript スクリプト名' のような行を .fvwmrc ファイルに入れることで呼び出せます。FvwmScript で使 用されるすべてのスクリプトは、 .fvwmrc 内 の コ マ ン ド 行 `*FvwmScriptPath スクリプトディレクトリパス' で指定したディ レクトリに置きます。FvwmScript を fvwm の初期化の間に起動 さ せる場合はそれ自身を一つの行として置くことができますし、ある いはそれを後で呼び出すためにメニューやマウスボタン、キースト ロー クなどに割り当てることも可能です。Fvwm は、設定オプショ ンの ModulePath で指定されたディレクトリを探して FvwmScript をみつけようとします。 あなたの .fvwmrc ファイルの ModulePath に、FvwmScript のパス が設定されているか確認してください。 スクリプトの構造 FvwmScript は、特別なプログラミング言語を使います。スクリ プ トは 4 つの部分から構成されます。ヘッダ (heading) は、ウィン ドウの一般的な特徴とすべてのウィジェットに関するデフォルトの 属性を持ちます。2 番目の部分は、スクリプトの起動時に実行され る命令 (instruction) を持っています。3 番目の部分は、1 秒 毎 に実行される周期的な作業を持ちます。最後の部分は、ウィジェッ トの記述です。ウィジェットは、11 種類の項目から構成されます: テ キ ストラベル、一行入力、ラジオボタン、チェックボックス、 プッシュボタン、水平/垂直スクロールバー、長方形、ポップ アッ プメニュー、swallowexec、ミニスクロールバー。 スクリプトのヘッダ 書式は以下の通りです: WindowTitle string このオプションは、ウィンドウタイトルを設定します。 SunOS 5.9 Last change: 1 Misc. Reference Manual Pages FvwmScript(3.1) WindowSize width height このオプションは、ウィンドウサイズを設定しま す。 width と height は数値です。 WindowPosition x y このオプションは、ウィンドウの位置を設定します。x と y は数値です。 ForeColor {color} このオプションは、すべてのウィジェットに対するデフォ ル トの前景色を設定します。 BackColor {color} このオプションは、すべてのウィジェットに対するデフォ ル トの背景色を設定します。 HilightColor {color} このオプションは、すべてのウィジェットに対するデフォ ル トのハイライト色を設定します。 ShadowColor {color} このオプションは、すべてのウィジェットに対するデフォ ル トの影の色を設定します。 Font {font} このオプションは、すべてのウィジェットに対するデフォ ル トのフォントを設定します。 初期化部分 この部分は、起動時に実行される命令を持っています。例: Init Begin Do "Exec cat tada.voc > /dev/dsp" WarpPointer 1 Set $ToDo=Restart End これらの命令は、すべての起動時に、音声を再生し、ポイ ン タ を ウィジェット 1 へ移動し、$ToDo を "Restart" に初期化します。 周期的な作業部分 SunOS 5.9 Last change: 2 Misc. Reference Manual Pages FvwmScript(3.1) この部分は、毎秒実行される命令を持ちます。例: Periodic Task Begin If (RemainderOfDiv (GetTime) 10)==0 Then Do {Exec xcalc} End この例は、xcalc を 10 秒毎に立ち上げる方法を示しています。 スクリプトの主要部分 スクリプトの 2 番目の部分は、プログラム内で使用されるすべ て のウィジェットに対する記述を持ちます。ウィジェットのキジュツ は、2 つの部分からできています。最初の部分は初期属性を 記 述 し、2 番目の部分は、ウィジェットがメッセージを受けとったとき に実行される命令を持ちます。すべてのウィジェットはメッセージ を 送 受信できます。すべてのメッセージは、数で特定されます。 メッセージ "UserAction" は、ユーザがウィジェットを変更したと きに、そのウィジェットに送信されます。書式は以下の通りです: Widget id # ウィジェットの ID を設定 Property Type 文字列 Size 幅 高さ Position x y Title { 文字列 } Value 整数 MaxValue 整数 MinValue 整数 Font 文字列 ForeColor { 色 } BackColor { 色 } HilightColor { 色 } ShadowColor { 色 } Flags Hidden または NoReliefString オプション 'Flags' は、そのウィジェットを隠す (hidden) か 否 か、 そして文字列を浮き彫り (relief) つきで書くか否か、を指定 するのに使います。 Main Case Message of SingleClic: Begin # ウィジェットがメッセージ "SingleClic" を # 受け取ったときに実行される命令のリスト。 # このメッセージはユーザが発生させる。 End 1: Begin # ウィジェットがメッセージ 1 を SunOS 5.9 Last change: 3 Misc. Reference Manual Pages FvwmScript(3.1) # 受け取ったときに実行される命令のリスト。 End End ウィジェットの一覧 ウィジェットには 15 種類の型があります。 ItemDraw: アイコン、または文字列を表示。 Title: 表示する文字列。 Icon: 表示するアイコン。 PushButton: アイコン、または文字列つきのプッシュボタンを 表 示。 Title: この文字列は、以下の書式を持ちます : {Title of the button|Option 1|Option 2|Option3|...|Option N}。 "Option 1|Option 2|...|Option N" は、右ボタンが押された ときに表示されるポップアップメニューです。 Icon: 表示するアイコン。 RadioButton: 文字列つきのラジオボタンを表示。 Title: ラジオボタンのタイトル。 Value: Value が 1 ならボックスはチェックされ、それ以 外 はそうされません。 CheckBox: 文字列つきのチェックボックスを表示。 Title: チェックボックスのタイトル。 Value: Value が 1 ならボックスはチェックされ、それ以 外 はそうされません。 使えます。 TextField: 文字列入力フィールドを表示。これは 1 行文字列の編 集 に Title: 文字列フィールドの中身。 Value: 入力点の位置。 SunOS 5.9 Last change: 4 Misc. Reference Manual Pages FvwmScript(3.1) HScrollBar: 水平スクロールバーを表示。 Value: つまみの位置。 MaxValue: Value の上の限界。 MinValue: Value の下の限界。 VScrollBar: 垂直スクロールバーを表示。 Value: つまみの位置。 MaxValue: Value の上の限界。 MinValue: Value の下の限界。 MiniScrollBar: とても小さい垂直スクロールバーを表示。 Value: つまみの位置。 MaxValue: Value の上の限界。 MinValue: lower limit of Value. えます。 Rectangle: 長方形を表示。このウィジェットは、ウィンドウの飾 りに使 させ、名前かリソースが Title に等しい最初のウィンドウを捕み取り、 それをスクリプトウィンドウ内に表示させます。 SwallowExec: このウィジェットは、FvwmScript にあるプロセスを 生 成 Title: 捕み取ってスクリプトウィンドウ内に表示するウィン ドウの名前を指定。 SwallowExec: プロセスを生成するために実行するコマンドラ インを指定。モジュールも swallow できます。 Value: 境界の見た目を指定。-1, 0, 1 のいずれかが指定 可 能。 PopupMenu: ポップアップメニューを表示。 Value: どのオプションが選択されるのかを指定。 Title: Title は、以下の書 式 を 持 ち ま す : {Option SunOS 5.9 Last change: 5 Misc. Reference Manual Pages FvwmScript(3.1) 1|Option 2|...|Option N}。"Option 1|Option 2|...|Option N" は、マウスボタンが押されたときに表示されるポップアッ プメニューです。 表示に使えます。 HDipstick: 水平ものさしを表示。このウィジェットはディスク使 用量の Value: ものさしの現在の値を指定。 MinValue: ものさしの最小値を指定。 MaxValue: ものさしの最大値を指定。 VDipstick: 垂直ものさしを表示。 Value: ものさしの現在の値を指定。 MinValue: ものさしの最小値を指定。 MaxValue: ものさしの最大値を指定。 せます。 List: 一覧を表示。一覧は、ユーザに色々なオプションからの選択 を さ Value: どのオプションが選択されるのかを指定。 Title: Title はリストに表示されるオプションを含みます。 そ の 書 式 は 以 下 の 通 り で す : {Option 1|Option 2|...|Option N}。すべてのメニューはウィンドウの上に表示 されます。 Menu: ユーザにオプションを選択させるメニューを表示。 Value: どのオプションが選択されるのかを指定。 Title: Title はメニューに表示されるオプションを含 み ま す。 そ の 書 式 は 以 下 の通りです: {Option 1|Option 2|...|Option N}。 命令 以下は、すべての命令の説明です。 HideWidget id : 番号 id のウィジェットを隠します。 SunOS 5.9 Last change: 6 Misc. Reference Manual Pages FvwmScript(3.1) ShowWidget id: 番号 id のウィジェットを表示。 ChangeValue id1 id2: 番号 id1 のウィジェットの値を id2 に設 定。 設定。 ChangeMaxValue id1 id2: 番号 id1 のウィジェットの最大 値 を id2 に 設定。 ChangeMinValue id1 id2: 番号 id1 のウィジェットの最小 値 を id2 に 定。 ChangeTitle id1 id2: 番号 id1 のウィジェットのタイト ル を id2 に設 定。 ChangeIcon id1 id2: 番号 id1 のウィジェットのアイコンを id2 に 設 id2 に設定。 ChangeForeColor id1 {color}: 番号 id1 のウィジェットの前 景 色 を id2 に設定。 ChangeBackColor id1 {color}: 番号 id1 のウィジェットの背 景 色 を .IP "ChangePosition id1 x y: 番号 id1 のウィジェットを 位置 (x,y) へ移動。" (width,height) に設定。 ChangeSize id1 width height: 番号 id1 のウィジェットのサ イ ズ を newfont に設定。 ChangeFont id1 newfont: 番号 id1 のウィジェッ ト の フォ ン ト を WarpPointer id: マウスポインタを番号 id のウィジェット内へ移 動。 SunOS 5.9 Last change: 7 Misc. Reference Manual Pages FvwmScript(3.1) ての引数 str1, str2, ... をつなげた文字列を書き出します。 WriteToFile filename {str1} {str2} ...: ファイル filename に す べ ンドを実行。 Do {str1} {str2} ...: すべての引数 str1, str2, ... をつなげ たコマ $var にその文字列を設定。 Set $var={str1} {str2} ...: すべての引数を文字列につなげて、 変 数 Quit: プログラムを終了。 信。 SendSignal id1 id2: 番号 id2 のメッセージをウィジェット id1 に 送 プ トにメッセージを送信。このメッセージは str, str2, ... を連結し たもの。 SendToScript id_script {str11} {str2} ...: ID id_script のス ク リ 引数 コマンドのほどんどは引数を使用します。引数には、数字と文字列 の 2 種類があります。数値の引数は -32000 と 32000 間の値で、 文字列はカッコで囲まないといけません。変数は文字 "$" から 始 める必要があり、数値も文字列も含むことができます。 関数 関数はすべて引数として使用され、文字列、数字の両方を返すこと ができます。書式は以下の通り: (function argument1 argument2 ...) 以下は、引数の一覧です: (GetTitle id): 番号 id のウィジェットのタイトルを返します。 (GetValue id): 番号 id のウィジェットの現在の値を返します。 を取得し、int1 番目の行内の int2 番目の単語を返します。int2 が -1 SunOS 5.9 Last change: 8 Misc. Reference Manual Pages FvwmScript(3.1) の場合は、GetOutput は行全体を返します。 (GetOutput {str} int1 int2): コマンド str を実行し、その標準 出 力 (NumToHex int): int の 16 進数値を返します。 必要があります。 (HexToNum {str}): str の 10 進数値を返します。str は 16 進数 値 の (Add int1 int2): (int1+int2) の結果を返します。 (Mult int1 int2): (int1*int2) の結果を返します。 (Div int1 int2): (int1/int2) の結果を返します。 ます。例えば、(StrCopy {Hello} 1 2) は {He} を返します。 (StrCopy {str} int1 int2): int1 と int2 の間の位置の文字列を 返 し そ の ID 番 号 を 返 し ま す。この番号は、関数 SendToScript と ReceivFromScript を使用するのに必要。文字列 str はスクリプト名 と いくつかの引数を持ちます。 (LaunchScript {str}): この関数は、名前 str のスクリプトを実 行し、 れ る 引数のスクリプトを返します。int が 0 の場合、GetScriptArgu- ment はスクリプトの名前を返します。 (GetScriptArgument {int}): この関数は、関数 LaunchScript で 使用さ (GetScriptFather): この関数は、親スクリプトの ID 番号を返し ます。 送られたメッセージを返します。 (ReceivFromScript {int}): この関数は番号 int のスクリプトに よって 返します。 (RemainderOfDiv {int1 int2}): この関数は、商 (int1/int2) の 余りを SunOS 5.9 Last change: 9 Misc. Reference Manual Pages FvwmScript(3.1) (GetTime): この関数は、秒単位での時刻を返します。 分岐やループ 3 種類の分岐やループがあります。命令 "If-Then-Else" は以下の 書式で使用します: If $ToDo=={Open xcalc} Then Do {Exec xcalc &} # 命令のリスト Else Begin Do {Exec killall xcalc &} # 命令のリスト Do {Exec echo xcalc killed > /dev/console} End 2 番目の "Else-Begin-End" の部分は必須ではありません。実行 部 分に一つの命令しかなければ、Begin と End は省略できます。命令 "While-Do" は以下の書式で使用します: While $i<5 Do Begin Set $i=(Add i 1) # List of instructions End "==" で 2 つの文字列を比較でき、"<", "<=", ">=", ">" で 2 つの 数字を比較できます。ループ "For-Do-Begin-End" は以下の書式で使 用します: For $i=1 To 20 Do Begin Do {Exec xcalc &} # 命令のリスト End 作者 Frederic Cordier (cordie97@cui.unige.ch or f- cord96@univ-lyon1.fr). 寄与者 Eddy J. Gurney (eddy@gizmo.aa.ans.net). SunOS 5.9 Last change: 10