GUIライブラリ - [[レンダー乙女とか]]
目次
- nas.GUI
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 //FolderAE本体のアクセスフォルダとは別に記録する。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
selectOptions
nas.GUI.selectOptions([オプション配列],初期選択ID,左位置,上位置,幅,最大行数)
- 概要
- オプション選択ダイアログ
与えられたオプションをボタンダイアログに表示して、ユーザが選択したオプションのIDを返します。 オプション配列以外の引数は省略可能です。 初期選択状態を省略すると未選択状態でパネルが開きます。
エスケープキーでキャンセル可能です。その場合は、最初に選択してあった値が戻り値となります。未選択の際の戻り値はnullです。
表示位置が省略されるとスクリーン左上にダイアログが出ます。(画面中央とどちらが良いか考え中)
スクリプト内で複数のオプションからユーザの選択を促す際に使用してください。 selectButtonオブジェクトは、内部でこのメソッドを使用しています。
- 戻値
- 選択されたオプションの配列ID or null
prompt
- 概要
- nas 拡張プロンプト
nas.GUI.prompt(プロンプトメッセージ,初期値,左位置,上位置,幅,高さ)
汎用GUI部品として書くつもり(未実装)
プロンプトの拡張版
Yes/No/Cancel/Save/Load の各ボタンあり。
使い方は、グローバルのプロンプトと互換+拡張機能
引数が複数行ならば、自動的に拡張モードで動作(拡張モードが標準モード)
引数が1行以内の文字列なら、自動判定で互換モードで動作?
互換モードは、スイッチ指定の方が良さそう。
実際互換モードなしで、拡張モードのみでもよサゲ?
コメントを表示してダイアログでエディットテキストを表示
ユーザは内容を編集してクリック。
キャンセル時の戻り値は null
load、save機能あり reset機能あり
OK で編集内容を返して終了。キャンセルでnullを返して終了。
こんなもんかいな?
イロイロ使い道ありそう。
- 入力前にエクスプレッション修正するとか。
- 選択したレイヤのプロパティを列挙して表示する
…とか…ユーザは保存もできるし、自分のファイルを読み込むことも可能 あと、標準(global)のプロンプトはあまり格好よくないしー
- - 実際の使用方法等は、サンプルファイルをご覧ください。
Nekomataya/kiyo 2006
Powered by YukiWiki 2.1.2a / Modified by Nekomataya.