コマンド行の操作
はじめに
本章では、Sun WorkShop Visual で使用可能なコマンド行について説明します。コマンド行オプションには、Sun WorkShop Visual を対話的に使用するためのものと、コマンド行からコード生成を行うためのものの 2 種類があります。本章では Sun WorkShop Visual 捕獲機能、Sun WorkShop Visual 再現機能、UILおよび GIL コードを Sun WorkShop Visual の保存ファイルに変換するためのコマンドについて説明します。
対話的使用のためのオプション
以下に示すコマンド行オプションを使用することができます。
表 24-1 対話的使用のための visu オプション
オプション
|
意味
|
-windows
|
Sun WorkShop Visual を Microsoft Windows モードで起動
|
-f file
|
入力ファイルを指定
|
-L
|
ユーザー独自のカラーマップを使用
|
-x
|
この説明を表示 (および終了)
|
-V
|
Sun WorkShop Visualのバージョン情報を表示
(プログラムは実行しない)
|
Sun WorkShop Visual を Microsoft Windows モードで起動する方法については、第 11 章「Microsoft Windows 用のデザイン」、「Microsoft Windows モードでの起動」を参照してください。
ピックスマップ・エディタで多くの色を使用したい場合は、独自のカラーマップを使用すると便利です。ピックスマップ・エディタについては、「ピックスマップの編集」を参照してください。ただし、この -L オプションを使用すると、他のウィンドウの色が指定した色とは異なる色で表示される場合があります。
コマンド行からのコード生成
コマンド行からの入力形式は次のとおりです。
visu
[-csepAKCSEulbarmRMFWX [code_file]] [-windows] -f filename
表 24-2 visu コマンド行オプション
オプション
|
生成されるコードファイル
|
-c
|
C
|
-s
|
C スタブ
|
-e
|
C 外部宣言
|
-p
|
C/C++ ピックスマップ
|
-A
|
ANSI C を強制 (
-c
、
-s
、
-e
を使用)
|
-K
|
K&R C を強制 (
-c
、
-s
、
-e
を使用)
|
-C
|
C++
|
-S
|
C++ スタブ
|
-E
|
C++ 外部宣言
|
-u
|
UIL
|
-l
|
UIL のための C
|
-b
|
UIL のための C 外部宣言
|
-a
|
UIL ピックスマップ
|
-r
|
X リソースファイル
|
-m
|
メークファイル
|
-X
|
X リソースファイル (-r と同意)
|
-M
|
Motif 様式の C++ を生成
|
-F
|
Motif XP 様式の C++ を生成
|
-J
|
code_file で指定したディレクトリに Java を生成
|
-W
|
Microsoft Windows MFC 様式の C++ を生成
|
-pixmaps
|
ピックスマップを、code_file で指定したディレクトリの .xpm ファイルに生成
|
-R
|
Microsoft Windows リソースファイル
|
-windows
|
Sun WorkShop Visual を Microsoft Windows モードで起動
|
-f file
|
入力ファイル (
file
) を指定
|
code_file
は、生成されるファイルを表します。
code_file
を指定しない場合、Sun WorkShop Visual は指定された言語に対しソースファイル内で最後に指定された対象となるファイルにコードを生成します。
Java コード (-J) やピックスマップ (-pixmaps) については、複数のソースファイルが生成されます。コードファイルの名前はクラスの名前 (Javaの場合) またはデザインで使用したピックスマップの名前になるため、 code_file
にはこれらのソースファイルのターゲットディレクトリを指定します。
filename
は、コード生成のためのソースとして使用するデザインファイル (.xd) を表わします。ファイル名はいつも指定しなければなりません。
code_file
を指定しない場合は、指定するファイル名が 1 つだけであることを示すために、区切り文字 -f を使用します。
-windows
オプションは、Microsoft Windows モードを指定します。Sun WorkShop Visual を Microsoft Windows モードで起動する方法についての詳細は、第 11 章「Microsoft Windows 用のデザイン」の 「Microsoft Windows モードでの起動」を参照してください。
-M、-
F
、-
W
、-
R
オプションは、必ず
-windows
オプションと組み合わせて使用します。
例
以下のコマンドは、
foo.xd
内のデザインからファイル
foo.c
に C コードを生成します。
visu -c foo.c -f foo.xd
次のコマンドは、
foo.xd
から対象となるファイルに C コードを生成します。
visu -c -f foo.xd
この対象となるファイルは、最後に「コード生成」ダイアログを使用して
foo.xd
から C コードが生成された際に指定されたものです。
以下に示す形式のどちらかを使用すると、単一のコマンドを使用して複数のファイルを生成することができます。
visu -c -e -s -f foo.xd
または
visu -c <c_ファイル> -e <外部ファイル> -s <スタブファイル> -f foo.xd
Sun WorkShop Visual は、成功するとステータス 0 で終了し、何らかの理由によりコード生成に失敗した場合には 0 以外のステータスで終了します 。
諸注意
コマンド行からコードを生成するためには、Sun WorkShop Visual が X サーバーと接続されている必要があります。通常、コマンド行からのコード生成では目に見えるウィンドウの作成は行われませんが、Windows コードの生成時には、スクロールリストやスクロールテキストなどの特定の種類のウィジェットを含むデザインに対して、サーバー画面上にウィンドウが一時的に表示されます。
code_file
を指定しない場合、Sun WorkShop Visual はデザインファイルに保存されているファイル名を使用します。「コード生成」ダイアログで指定してそのファイルを保存しない限り、ファイルの名前は保存されません。したがって、「コード生成」ダイアログを使ってデザインファイルからこのようなコードを生成したことがない場合は、Sun WorkShop Visual はエラーメッセージを生成します。
すべての場合において、最後にデザインファイル内で保存されたとおりに生成トグルが設定されます。デザインファイルからこの種類のコードを生成したことがない場合には、デフォルトのトグル設定が使用されます。
Sun WorkShop Visual 再現機能
ユーザーのアクションを記録するために使用する Sun WorkShop Visual 再現機能は、 visu_record という独立したアプリケーションとして提供されています。
以下に visu_record の使用方法を示します。
visu_record -f MyRecordScript AnApplication
MyRecordScript
は、一連のアクションを記録したスクリプトが保存されるファイルの名前です。
AnApplication
は、記録する対象であるアプリケーションの名前です。
以下に
visu_replay
の使用方法を示します。
Sun WorkShop Visual 再現機能と XD/ 記録機能のファイル名引数は省略できます。この場合、XD/ 記録機能は標準出力から出力し、Sun WorkShop Visual 再現機能は標準入力から読み取ります。
次の表に、visu_record と
visu_replay
の両方で使用できるすべてのコマンド行オプションを示します。
表 24-3 visu_record と
visu_replay のコマンド行オプション
オプション
|
意味
|
-x
|
Sun WorkShop Visual 再現機能の詳細情報を表示。
|
-f file
|
記録の場合はファイルへ保存 (指定のない場合は標準出力)。再生の場合はファイルから読み出し (指定のない場合は標準入力)。
|
-use n
|
プログラムのメインシェルの前に表示されるシェルを n 個無視
|
-lang locale
|
GUI (グラフィカルユーザーインタフェース) やエラーメッセージを含む visu_record または
visu_replay
を、指定したロケールで起動。LANG 設定は無視されます。
|
-p
|
スクリプトを再現する前に、C プリプロセッサで事前処理。
|
-v
|
詳細出力 (verbose)。
|
-V
|
visu_record または
visu_replay
のバージョン情報を表示。
|
-w
|
ディスプレイ、サーバー、ウィンドウマネージャの概要情報を表示。
|
-O
|
上書き (非 Motif アプリケーションに対してはプログラム終了)。
|
-i
|
対話的 (interactive)。-f を無視し、捕獲/再現ダイアログを使用。
|
-I
|
強制的にダイアログを表示。
|
-exit-on-error
|
再現不可能なコマンドがあった場合に、
visu_replay
スクリプトとアプリケーションを終了。
|
-user-on-error
|
再現不可能なコマンドがあった場合に、visu_replay スクリプトを終了。アプリケーションは終了しません。
|
-skip-on-error
|
再現不可能なコマンドがあった場合に、
visu_replay
スクリプト内の次のシーケンスへジャンプ。
|
Sun WorkShop Visual 捕獲機能
Sun WorkShop Visual 捕獲機能は、
visu_capture
という独立したアプリケーションとして提供されています。
以下に
visu_capture
の使用方法を示します。
visu_capture -f AnApplication
「捕獲」 ダイアログが表示され、アプリケーション
AnApplication
が実行されます。
次に visu_capture で使用できるすべてのコマンド行オプションを示します。
表 24-4 visu_capture
コマンド行オプション
オプション
|
意味
|
-x
|
visu_capture
の詳細情報を表示。
|
-f file
|
ファイルへ保存。このオプションで 「捕獲」 ダイアログは表示されません。
|
-lang locale
|
GUI (グラフィカルユーザーインタフェース) やエラーメッセージを含む
visu_capture
を、指定したロケールで起動。LANG 設定は無視されます。
|
-use n
|
プログラムのメインシェルの前に表示されるシェルを n 個無視。
|
-v
|
詳細出力 (verbose)。
|
-V
|
visu_capture
のバージョン情報を表示。
|
-w
|
ディスプレイ、サーバー、ウィンドウマネージャの概要情報を表示。
|
-O
|
上書き (非 Motif アプリケーションに対してはプログラム終了)。
|
-i
|
対話的 (interactive)。-f を無視し、獲得/再現ダイアログを使用。
|
-I
|
強制的にダイアログを表示。
|
-j
|
Java で使用可能な捕獲機能。
|
-static-design
|
アプリケーションシェルの初期状態のみを捕獲して終了。
|
UILソースの Sun WorkShop Visual 保存ファイルへの変換
uil2xd
フィルタは UILソースコードを Sun WorkShop Visual 保存ファイルに変換します。このフィルタは、UILソースを標準入力から読み出して、Sun WorkShop Visual 保存ファイルに標準出力で書き込みます。
デフォルトにより、
uil2xd
は最新版 Sun WorkShop Visual 用の保存ファイルを生成します。以下のように入力してください。
uil2xd [-tlxywhpsaX] [-I include_dir]
次の表に、コマンド行オプションを示します。
表 24-5 uil2xd コマンド行オプション
オプション
|
意味
|
-t
|
テキストを含んでいるスクロールウィンドウをスクロールテキストに変換しない。
デフォルトでは、
uil2xd
は「テキスト」ウィジェットを含んでいる「スクロールウィンドウ」ウィジェットを「スクロールテキスト」ウィジェットに変換します。構造を保存しておくには、-t オプションを使用します。
|
-l
|
リストを含んでいるスクロールウィンドウをスクロールリストに変換しない。
デフォルトでは、
uil2xd
は「リスト」ウィジェットを含んでいる「スクロールウィンドウ」ウィジェットを「スクロールリスト」ウィジェットに変換します。構造を保存しておくには、-l オプションを使用します。
|
-x
|
XmNx リソースを変更せずに渡す。
デフォルトでは、
uil2xd
は保存ファイル内の絶対位置の出力は行いません。 XmNx リソースを出力ファイルに渡すには、-x オプションを使用します。
|
-y
|
XmNy リソースを変更せずに渡す。
デフォルトでは、
uil2xd
は保存ファイル内の絶対位置の出力は行いません。 XmNy リソースを出力ファイルに渡すには、-y オプションを使用します。
|
-w
|
XmNwidth リソースを変更せずに渡す。
デフォルトでは、
uil2xd
は保存ファイル内の絶対サイズの出力は行いません。 XmNwidth リソースを出力ファイルに渡すためには、-w オプションを使用します。
|
-h
|
XmNheight リソースを変更せずに渡す。
デフォルトでは、
uil2xd
は保存ファイル内の絶対サイズの出力は行いません。 XmNheight リソースを出力ファイルに渡すためには、-h オプションを使用します。
|
-p
|
出力ファイルに位置リソースを保存する。-x、-y と同じです。
|
-s
|
出力ファイルにサイズリソースを保存する。-w、-h と同じです。
|
-a
|
出力ファイルに位置およびサイズリソースを保存する。-p、-s と同じです。
|
-e
|
構文エラーの解決方法を説明する。
|
-A
|
アタッチメントの設定されていないフォームの子に、仮のアタッチメントを生成する。
|
-I include_dir
|
include_dir を、インクルードファイルの検索を行うディレクトリの一覧に追加する。
|
-X
|
オプションの一覧を印刷する。
|
uil2xd
は、以下の構造体の処理を行いません。
-
コンパウンド文字列を含んでいる文字列表
-
color_table
-
アイコン
-
引数定義内の ASCII 表
-
引数定義内の整数表
-
インポートされたキーワード (これは致命的エラーとなります)
-
エクスポートされたキーワード
-
プライベート・キーワード
-
作成関数
-
デフォルト文字セット句
-
識別子セクション
インポートされたキーワードを除いて、
uil2xd
はこれらの構造体を無視します。
GIL ソースの Sun WorkShop Visual 保存ファイルへの変換
gil2xd
フィルタは、サンの DevGuide ファイルを Sun WorkShop Visual 保存ファイルに変換します。コンバータによって OPEN LOOK オブジェクトが Motif オブジェクトに変換されます。このフィルタは GIL ソースを標準入力から読み出して、Sun WorkShop Visual 保存ファイルに標準出力で書き込みます。
このフィルタは最新バージョンの Sun WorkShop Visual 用の保存ファイルを生成します。以下のように入力してください。
gil2xd [-xywhpsaX]
コマンド行オプションを次の表に示します。
表 24-6 gil2xd コマンド行オプション
オプション
|
意味
|
-x
|
XmNx リソースを変更せずに渡す。
デフォルトでは、
gil2xd
は保存ファイル内の絶対位置の出力は行いません。 XmNx リソースを出力ファイルに渡すには、-x オプションを使用します。
|
-y
|
XmNy リソースを変更せずに渡す。
デフォルトでは、
gil2xd
は保存ファイル内の絶対位置の出力は行いません。 XmNy リソースを出力ファイルに渡すには、-y フラグを使用します。
|
-w
|
XmNwidth リソースを変更せずに渡す。
デフォルトでは、
gil2xd
は保存ファイルにおける絶対サイズの出力は行いません。 XmNwidth リソースを出力ファイルに渡すには、-w オプションを使用します。
|
-h
|
XmNheight リソースを変更せずに渡す。
デフォルトでは、
gil2xd
は保存ファイルにおける絶対サイズの出力は行いません。 XmNheight リソースを出力ファイルに渡すには、-h オプションを使用します。
|
-p
|
出力ファイルに位置リソースを保存する。-x、-y と同じです。
|
-s
|
出力ファイルに位置およびサイズリソースを保存する。-w、-h と同じです。
|
-a
|
出力ファイルに位置およびサイズリソースを保存する。-p、-s と同じです。
|
-X
|
オプションの一覧を印刷する。
|
gil2xd
は、関数呼び出し以外の接続の処理は行わず、リンクに割り当てられたボタンに対するアクションを通知します。その他の接続は警告として報告されます。
gil2xd
は、これらの構造体を無視します。
変換
OPEN LOOK オブジェクトの Motif ウィジェットへの変換は、個々の内容に依存するため、単純には行われません。基本的な変換方法は以下のとおりです。
基本ウィンドウ
子にメインウィンドウおよびフォーム作業領域を持つダイアログシェルに変換されます。
ポップアップウィンドウ
子にフォームを持つダイアログシェルに変換されます。
キャンバス区画
水平スクロールバーまたは垂直スクロールバーが true である場合は、スクロールウィンドウの子になる描画領域に変換されます。描画領域の子として、関連するポップアップメニューが作成されます。
メニュー
メニューウィジェットに変換されます。メニューにメニュータイトルの属性がある場合は、タイトルを表示するラベルウィジェットが最初の子になり、セパレータウィジェットが 2 番目の子になります。メニュー内の項目は、メニューウィジェットの子に割り当てられます。メニューの種類属性がコマンドである場合は、ウィジェットはトグルボタンになります。また、メニュー項目が関連付けられている場合は、カスケードボタンになります。その他の場合は、プッシュボタンになります。Sun WorkShop Visual には、メニューを共有する概念がないため、複数の場所から参照されるメニューは、メニューウィジェットの複製に割り当てられます。
ボタン
メニューを持たない場合には、プッシュボタンに変換されます。その他の場合は、カスケードボタンに割り当てられます。このカスケードボタンは、メニューバー内に作成されます。同じ y 座標を持つカスケードボタンは、同一のメニューバー内に作成されます。可能であれば、メニューバーはメニューバーウィジェットを格納するメインウィンドウ内に作成されますが、その他の場合はケースバイケースで適切な位置に作成されます。
スライダとゲージ
両方ともスケールに変換されます。目盛の子として、セパレータが追加され、最小値文字列および最大値文字列を表示するラベルが追加される場合もあります。最小値および最大値はそれぞれ、スケールの最小フィールドおよび最大フィールドに変換されます。
設定
設定型がスタックである場合はオプションメニューに変換され、その他の場合はローカラムに変換されます。選択肢は、オプションメニューの場合にはプッシュボタンに、ローカラムの場合にはトグルボタンに変換されます。排他的または非排他的設定の場合には、トグルボタンはインジケータを使用しないように調整されます (シャドウの厚さ = 2、マージン左 = 0 、インジケータオン = false)。
テキストフィールド
ラベルを持つローカラムおよびテキストウィジェットに変換されます。テキストが複数行に設定されている場合は、スクロールテキストになります。
リスト
スクロールリストに変換されます。リストにラベルの属性が設定されている場合は、スクロールリストは、ラベルを表示するラベルウィジェットを子として持つローカラムの子として作成されます。リストにタイトルの属性がある場合は、スクロールリストは、そのタイトルを表示するラベルを持つフレームの子として作成されます。
スタック
子としてスタックメンバーウィジェットを持つローカラムに変換されます。
グループ
子として各メンバーウィジェットを持つローカラムに変換されます。
端末区画およびテキスト区画
いずれもスクロールテキストに変換されます。
属性
gil オブジェクトがウィジェットに割り当てられた場合は、属性は適切なウィジェットリソースに割り当てられなければなりません。以下のリソースが常に割り当てられます。
表 24-7 常に変換されるリソース
gil
|
xd
|
注釈
|
x
|
XmNx
|
|
y
|
XmNy
|
|
幅
|
XmNwidth
|
|
高さ
|
XmNheight
|
|
前景色
|
XmNforeground
|
|
背景色
|
XmNbackground
|
|
初期状態
|
mNsensitive
|
非活性、応答可能 = false
非表示、マネージ = false
|
幅および高さリソースは、
gil2xd
の実行時に -w または -h オプションが設定されている場合にのみ使用されます。x および y リソースは、-x または -y オプションが設定されている場合に出力されます。ただし、フォームの子であるウィジェットに対しては、x および y 座標を使用してデフォルトのフォームアタッチメントを算出し、適切な配置が保たれるように処理します。
Motif マネージャウィジェットの多くは、明示的な x、y、幅および高さのリソースを無視します。実行時オプションとは関係なく
gil2xd
フィルタを使用して、Sun WorkShop Visual で簡単に修正できる、適切な配置を作成することができます。
その他のリソースは、最も近いと思われるリソースに変換されます。
表 24-8 最も近いリソースに変換されるリソース
gil
|
xd
|
注釈
|
カラム
|
XmNcolumns
|
|
固定幅
|
XmNrecomputeSize
|
|
グループ型
|
XmNorientation
|
類似したグループ配置を再現するには、XmNnumcolumns, XmNorientation および XmNpackingを設定します。
|
アイコンファイル
|
XmNiconPixmap
|
|
アイコンラベル
|
XmNiconName
|
|
アイコンマスク
|
XmNiconMask
|
|
初期状態
|
XmNinitialState
|
ダイアログシェルのみ
|
初期値
|
XmNvalue
|
|
ラベル
|
XmNlabelString
|
該当するラベルが glyph 型の場合には、ラベルは labelPixmapに割り当てられます。
|
ラベル
|
XmNtitle
|
シェルの場合
|
ラベル
|
XmNtitleString
|
ゲージの場合
|
ラベル型
|
XmNlabelType
|
|
配置型
|
XmNorientation
|
|
最大値
|
XmNmaximum
|
|
メニュー型
|
XmNradioBehavior
|
排他的の場合には、XmNradioBehavior = true
|
最小値
|
XmNminimum
|
|
複数選択
|
XmNselectionPolicy
|
設定されている場合は、XmNselectionPolicy = MULTIPLE_SELECT
|
配置方向
|
XmNorientation
|
|
ピン可能
|
XmNtearOffModel
|
ピン可能である場合は、XmNtearOffModel = TEAR_OFF_ENABLED
|
読み出し専用
|
XmNeditable
|
|
サイズ変更可能
|
XmNallowResize
|
|
行
|
XmNnumColumns
|
類似したグループ配置を再現するには、XmNnumColumns、XmNorientation、XmNpacking を設定します。
|
行
|
XmNrows
|
テキストウィジェットの場合
|
行
|
XmNvisibleItemCount
|
リストウィジェットの場合
|
要選択
|
XmNradioAlwaysOne
|
|
ボーダー表示
|
XmNshadowThickness
|
設定されている場合は、シェルの子ではないフォームに対して、XmNshadowThickness を 1 に設定します。
|
値表示
|
XmNshowValue
|
|
スライダ幅
|
XmNscaleWidth
|
配置方向によって、XmNscaleWidth または XmNscaleHeight を設定します。
|
保存長
|
XmNmaxLength
|
|
テキスト初期値
|
XmNvalue
|
|
テキスト型
|
XmNeditMode
|
複数行の場合は、XmNscrollVertical = false、行は XmNrows に変換されます。
|
タイトル
|
XmNlabelString
|
|
値の長さ
|
XmNcolumns
|
|
関数型 CallFunction を持つアクションは、適切なコールバックに変換されます。
表 24-9 コールバックに変換されるアクション
アクション
|
コールバック
|
ウィジェット
|
Create
|
XmNcreateCallback
|
任意
|
Destroy
|
XmNdestroyCallback
|
任意
|
Notify
|
XmNactivateCallback
|
プッシュボタン
|
select
|
XmNinputCallback
|
描画領域
|
adjust
|
XmNinputCallback
|
描画領域
|
DoubleClick
|
XmNinputCallback
|
描画領域
|
Repaint
|
XmNexposeCallback
|
描画領域
|
Resize
|
XmNresizeCallback
|
描画領域
|
Select
|
XmNvalueChangedCallback
|
ゲージ
|
Adjust
|
XmNdragCallback
|
ゲージ
|
Notify
|
XmNvalueChangedCallback
|
ゲージ
|
Popup
|
XmNmapCallback
|
メニュー
|
Popdown
|
XmNunmapCallback
|
メニュー
|
Notify
|
XmNentryCallback
|
メニュー
|
Notify
|
XmNvalueChangedCallback
|
トグルボタン
|
Unselect
|
XmNvalueChangedCallback
|
トグルボタン
|
Popup
|
XmNpopupCallback
|
シェル
|
Popdown
|
XmNpopdownCallback
|
シェル
|
Notify
|
XmNactivateCallback
|
テキスト
|
KeyPress
|
XmNvalueChangedCallback
|
テキスト
|
Notify
|
XmNentryCallback
|
ローカラム
|
Done
|
XmNunmapCallback
|
フォーム
|
Notify
|
XmNbrowseSelectionCallback
|
リスト
|
表 24-9 に記載されていない GIL アクションも多数存在します。ただし、適切な Motif コールバックが存在しないため、これらはフィルタでサポートされていません。
表示、非表示、有効化、無効化の接続を持つプッシュボタンに対する notify アクションは、適切な Sun WorkShop Visual リンクに変換されます。