毎回似た感じになるのに、_buildWindow()の引数やdeleteUIの位置とかで悩むため、
汎用性のこともちょっとを考えて作成。
proc _setupMainLayout( string $parent ) { setParent $parent; //------------------------------------------------------------------------------ // コントローラの追加・編集はここから columnLayout; button; button; button; } proc _setupWindow( string $window ) { if(`window -q -mb $window`) { string $menu0=`menu -l "File"`; string $menu1=`menu -l "Edit"`; string $help =`menu -l "Help" -hm true`; } int $w=320; int $h=160; //------------------------------------------------------------------------------ string $mainForm=`formLayout`; string $mainLayout=`scrollLayout -w $w -h $h`;/** 希望のlayoutに変更 **/ formLayout -e -af $mainLayout "top" 0 -af $mainLayout "left" 0 -af $mainLayout "right" 0 -af $mainLayout "bottom" 0 $mainForm; //------------------------------------------------------------------------------ _setupMainLayout( $mainLayout ); //------------------------------------------------------------------------------ window -e -w $w -h $h $window; } proc _createWindow( string $toolName, string $window ) { string $title=`interToUI $toolName`; window -title $title //-toolbox true //-menuBar true //-sizeable false $window; } proc _buildToolWindow( string $toolName, string $window ) { if(`window -ex $window`) { deleteUI $window;/** for debug. **/ //return; } _createWindow( $toolName,$window ); _setupWindow( $window ); //------------------------------------------------------------------------------ // 必要ならジョブの追加 //scriptJob -e "event" "script" -p $window; } global proc sampleUI() { string $toolName="sampleUI";/** スクリプト名推奨 **/ string $window=($toolName+"Window"); _buildToolWindow( $toolName,$window ); showWindow $window; }
まず、88行目で$toolNameをスクリプト名に変更。
71行目はデバッグ中スクリプトがエラー停止し、次回実行時に
Object's name 'sampleUIWindow' is not unique.
みたいなのを出さないようにするためのもの。
リリースする時はコメントアウトして、return;だけに変更。
81行目にwindowにアタッチしたいジョブを追加。
コレの位置が92行に追加するか迷う部分。
main procedureを簡素にするため_buildToolWindow()の中へ追加していくことに。
55行目からのwindowコマンドは使うオプションのみコメント外して使う。
-toolbox,-menuBar,-sizeable だいたいこの3つしか使っていない気がする。
window に menu を追加した場合、20行目のブロック内に menuItem を追加するプロシージャ追加。
31行目の layout の子にUIを追加していく。
buttonだけとかなら、ここで指定したwidth,height以下に window は小さくならないはず。
で、_setupMainLayout()が本体。
結構いじる場所が分散してしまった。
0 件のコメント:
コメントを投稿