nasライブラリ簡易GUIモジュールリファレンス

[[レンダー乙女とか]]

AE6.5の Adobe Script 環境でのGUI記述をサポートします。


*nas.GUI

GUIライブラリ関連のプロパティおよびメソッドは、nas.GUI オブジェクトの配下に格納されます。


このオブジェクトはnasオブジェクトの配下のオブジェクトとして初期化されますので、ライブラリを使用する前にnasオブジェクトがすでに初期化されていることがライブラリのインストール条件になります。

このライブラリの主な機能は、GUI部品を配置する際にグリッドスタイルの配置指定が行えるようにすることです。

AE ほか Adobe Scripts のGUI部品配置は Bounds 配列で行われます。この配列はピクセル単位で 以下の形式になっています。

	[左,上,右,下]

この形式は、シンプルで良いのですが、その分ユーザに対する支援機能は貧弱です。

このライブラリでは、以下の主に以下の形式で指定するようになっています

	左,上,幅,高さ

指定が配列では無い点は注意してください。

指定単位は、あらかじめ与えておいたグリッドのサイズです。グリッドのサイズは、縦横別に指定できます。ただし高さに関しては AEのGUI用フォントサイズが固定のため あまり変更する意味は無いようです。

グリッドの開始番号は、縦横方向とも 0 から開始です。

ほとんどの指定に少数値が使用できますので、微妙な位置指定の時は少数値で指定してください。

**プロパティ
nas.GUI オブジェクトには以下のプロパティがあります。
***leftMargin
自動計算の際の左側 外余白
 nas.GUI.leftMargin=4;//Number

***rightMargin
自動計算の際の右側 外余白
 nas.GUI.rightMargin=4;//Number

***topMargin
自動計算の際の上部 外余白
 nas.GUI.topMargin=2;//Number

***bottomMargin
自動計算の際の底部 外余白
 nas.GUI.bottomMargin=10;//Number

***leftPadding
自動計算の際の左側 内余白
 nas.GUI.leftPadding=8;//Number

***rightPadding
自動計算の際の右側 内余白
 nas.GUI.rightPadding=8;//Number

***topPadding
自動計算の際の上部 内余白
 nas.GUI.topPadding=2;//Number

***bottomPadding
自動計算の際の底部 内余白
 nas.GUI.bottomPadding=2;//Number

***colUnit
グリッド1列の幅
 nas.GUI.colUnit=60;//Number

***lineUnit
グリッド1行の高さ
 nas.GUI.lineUnit=26;//Number

***defaultWinsize
ウィンドウサイズ省略値
 nas.GUI.defaultWinsize=[8,6];//Array[unit,unit]

***dafaultOffset
ウィンドウ位置省略値
 nas.GUI.dafaultOffset=[240,40];//Array[pixel,pixel]

***defaultName
ウィンドウタイトル省略値
 nas.GUI.defaultName="No Name";//String

***currentFolder
最終アクセスフォルダ
 nas.GUI.currentFolder	//Folder
AE本体のアクセスフォルダとは別に記録する。nasのアクセス記録
***prevCurrentFolder
nas.GUI.prevCurrentFolder	//AEサイド最終アクセスフォルダ退避用オブジェクト
***workBase
作業ベースヒストリ 現在は、セッション毎にリセット。
 nas.GUI.workBase ;//Array[path String,,,]

アニメーション作業支援のために 最終アクセスフォルダのひとつ上のフォルダを作業ベースフォルダとしてヒストリにとります。

このオブジェクトは、Folderオブジェクトではなく、ローカルパスの文字列として記録されますのでスクリプト内でフォルダとしてアクセスする場合は、以下のように Folderオブジェクトに再度初期化をしてアクセスしてください。(Folder のほうが良いかな?)

	myFolder=new Folder(nas.GUI.workBase.current());

プロパティ
		nas.GUI.workBase.maxLength=4;//ヒストリの最大値
		nas.GUI.workBase.selected=0;//現在のフォルダID

メソッド
		nas.GUI.workBase.current()

現在選択されているworkBaseフォルダのパスを返す?(…フォルダ返した方が良さそう)

(次の版では、仕様が変わりそうな気がしてます。)

		nas.GUI.workBase.insert(Folder or "folderpath")

ヒストリに新しいフォルダを加える。
既存のエントリに同じフォルダがあればそれをアクティブにして終了
引数はオブジェクトと文字列両方を受け入れ。定数以上になったら古いものから削除。

		nas.GUI.workBase.change()

ひとつ前のヒストリに戻る。
前後および自由な位置にアクセスする予定ですが現在は戻るだけ。
引数なし

***LineFeed

改行です。
	nas.GUI.LineFeed;//String \n or \r\n

GUI部品内で表示に改行が必要な場合　このプロパティを挿入してください。
プラットフォームをチェックしてMacOSXでは、"\n" Windowsでは"\r\n"を設定してあります。
Adobe Scriptサイドの処理でプラットフォーム間の差異を吸収できるようになったらこのプロパティは無くなります。

使用例
---(
	msg=n.toString()+" 個のフッテージがインポートされました。";
	writeLn("処理は終了しました。"+nas.GUI.LineFeed+msg);
---)
**内部で使用する動作用ローカル変数
:nas.GUI.quartsOffset:Macの場合ボタン等の高さを減ずる

**提供されるメソッド
***addBuf_()
nas.GUI.addBuf_(Number)

:概要:GUI部品のedittextには、初期状態で256バイトでペーストや手入力が打ち止めになる現象があります。スクリプトでデータ追加を行うと動的にメモリが確保されているようなので、これは、edittextに無理やり空白を追加してバッファを拡張するバグ回避メソッドです。当該のバグが解消したら不要になります。引数はループ回数。ループ1回アタリ 1kbを拡張します。
:戻値:なし

***Grid()
nas.GUI.Grid(col,line,width,height,parent)

:概要: グリッド位置計算メソッド(bounds配列を返す)

ライブラリ内で位置の自動計算を行う内部関数 引数に(横位置,縦位置,横幅,高さ)を与えてBounds配列を返します。

:戻値: ピクセル単位で計算されたバウンズタイプの配列	Array
(バウンズを直接返した方が良いのか?)
***newWindow()
nas.GUI.newWindow(Type,Name,width,height,offsetX,offsetY)

:概要: ウインドウ作成メソッド

ダイアログとパレットを作成できます。
ダイアログの場合、"名前"を、ウインドウタイトルとして初期化します。
パレットの場合、与えられた"名前"をウィンドウの冒頭行に表示します。

:戻値: ウィンドウオブジェクト	Window
***addButton()
nas.GUI.addButton(Parent,Label,left,top,width,height)
:概要: ボタン作成メソッド

:戻値: ボタンオブジェクト	Button

***addCheckBox()
nas.GUI.addCheckBox(Parent,Label,left,top,width,height)

:概要: チェックボックス作成メソッド

:戻値: チェックボックスオブジェクト	Checkbox

***addRadioButton()

nas.GUI.addRadioButton(Parent,Label,left,top,width,height)

:概要: ラジオボタン作成メソッド

:戻値: ラジオボタンオブジェクト	Radiobutton

***addStaticText()

nas.GUI.addStaticText(Parent,Text,left,top,width,height)

:概要: staticText作成メソッド

:戻値: スタティックテキストオブジェクト	Statictext

***addEditText()

nas.GUI.addEditText(Parent,Text,left,top,width,height)

:概要: Edittext作成メソッド

:戻値: エディットテキストオブジェクト	Edittext

***addScrollBar()
nas.GUI.addScrollBar(Parent,Value,minValue,maxValue,left,top,height,align)

:概要: Scrollbar作成メソッド

:戻値: スクロールバーオブジェクト	Scrollbar

***addSlider()

nas.GUI.addSlider(Parent,Value,minValue,maxValue,left,top,width,align)

:概要: Slider作成メソッド

:戻値: スライダオブジェクト	Slider

***addPanel()

nas.GUI.addPanel(Parent,Label,left,top,width,height)

:概要: Panel作成メソッド

:戻値: パネルオブジェクト	Panel

***addSelectButton()

nas.GUI.addSelectButton(Parent,Label,Select,left,top,width,height)

:概要 複合コントロール SelectButton

:戻値: セレクト機能を持ったボタンオブジェクト	Button

***addListBox()

nas.GUI.addListBox(Parent,Options,Selected,left,top,width,height,option)

:概要: 	複合コントロール リストボックス

 addListBox = function (親,オプション,選択状態,X,Y,幅,高さ,動作オプション)
	親 : 
	オプション : 
	選択状態 :
	X,Y :
	幅,高さ :**高さはリスト表示段数
	動作オプション : 


:戻値: リストボックス機能を持ったパネルオブジェクト	Panel

***setTabPanel()

nas.GUI.setTabPanel(Parent,TabNames,left,top,width,height)

:概要:	複合コントロール タブパネル

暫定版、現在親エレメント1つに付き1組のタブ限定です。
与えられた親エレメントに直接タブを埋めます。

タブ自身を指すオブジェクト（エレメント）はありません。
タブパネルにアクセスする際は 以下のようなアクセスをしてください。

	Parent["tabPanel"][タブID].<property or method>

タブID　は、0からの配列idです。

:戻値:	選択されているタブID (不要かも？)	Number

---
実際の使用方法等は、サンプルファイルをご覧ください。

Nekomataya/kiyo	2006
