/*
 *	TEST nas.GUI ライブラリ動作試験スクリプト
 *		nas GUI-Library test script
 *	このファイルは、「レンダー乙女」GUIライブラリの使用サンプルです。
 *	Adobe AE 環境でのグリッド指定による GUI部品へのアクセス方法と
 *	何種類かの複合コントロールを提供します。
 *	詳しい使用方法は、以下のURLを参照してください。
 *
 *	http://hpcgi2.nifty.com/Nekomata/nekojyarashi/wiki.cgi?ScriptLibrary
 *
 *	なおこのライブラリは、開発中の暫定版です。
 *	細部は変更になる可能性が有りますので、サイトの情報をご確認ください。
 */
	var nas = new Object();
		nas.Version=new Object();


//@include "%NAS%/config.lib"
//@include "%NAS%/nas_common.lib"
//@include "%NAS%/nas_GUIlib.lib"

/* ウィンドウの初期化
 * newWindow(ウィンドウタイプ,ウィンドウタイトル[,ウィンドウ幅,ウィンドウ高さ[,初期位置X,初期位置Y]])
 *	ウインドウを作成します。
 *	戻り値:ウィンドウオブジェクト
 *	タイプには"dialog"または"palette"を指定
 *	高さと幅は、グリッド単位で指定（省略可能）
 *	ウィンドウ初期位置は、ピクセルで（省略可能）指定してください。
*/
	var w= nas.GUI.newWindow       ("dialog" ,"テスト ウインドウ" ,7 ,25);

/* ウインドウ配下にコントロールを置く。
 *	詳細はドキュメントを読んでね。
 *	初期化されたコントロールは、初期化順に親エレメントの配下に登録されます。
 *	一般的には、オブジェクトにわかりやすい名前を与えてアクセスがしやすくなるように
 *	以下のように初期化します。
 *
 *	アクセス変数 = 初期化コマンド(初期化引数…);
 */
//	ボタンエレメント
	w.btn  =nas.GUI.addButton      (w ,"ボタン" ,0 ,1 ,3 ,1);

//	編集可能テキスト
	w.etx  =nas.GUI.addEditText    (w ,"編集可能テキスト" ,0 ,2 ,6 ,2);

//	テキスト
	w.stx  =nas.GUI.addStaticText  (w ,"テキスト" ,0 ,4 ,6 ,1);

//	チェックボックス
	w.cbx  =nas.GUI.addCheckBox    (w ,"チェックボックス" ,0 ,5 ,3 ,1);

//	ラジオボタン
	w.rbt0 =nas.GUI.addRadioButton (w ,"ラジオボタン0" ,0 ,6 ,3 ,1);
	w.rbt1 =nas.GUI.addRadioButton (w ,"ラジオボタン1" ,0 ,7 ,3 ,1);

//	スライダ
	w.sld  =nas.GUI.addSlider      (w ,0 ,0 ,10 ,0 ,8 ,6 ,"top");

//	スクロールバー
	w.srb  =nas.GUI.addScrollBar   (w ,0 ,0 ,10 ,6 ,1 ,8);


//	複合コントロール・セレクトボタン
//		addSelecteButton(親エレメント,[オプション],選択ID,X,Y,幅,高さ)

	myOptions=["<セレクトボタン>","その1","その2","その3","その4"];//配列で
	w.sbt  =nas.GUI.addSelectButton(w ,myOptions ,1 ,3 ,1 ,3 ,1);


//	複合コントロール・リストボックス シングルセレクト
/*
 初期化
	addListBox(親オブジェクト,[オプションリスト],[セレクト初期値],X,Y,幅,高さ[,動作オプション])
	または
	addListBox(親オブジェクト,[オプションリスト],セレクトID,X,Y,幅,高さ[,動作オプション])
 戻り値
	アクセスベース
 プロパティ
	value 選択された値・または選択された値の配列(マルチセレクト時)
	options 選択可能な値のリスト
	selected 
	selects 
	選択された値を取得する時は、リストボックスオブジェクトの
	 value プロパティを参照してください。
 */
	w.lbx0 =nas.GUI.addListBox (w ,["いか","たこ","たい","ひらめ","くらげ","かつお","まぐろ"] ,1 ,0 ,9 ,3 ,4 ,"editable");

//	複合コントロール・リストボックス マルチセレクト
	w.lbx1 =nas.GUI.addListBox (w ,["りんご","みかん","いちご","にんじん","きゃべつ","しいたけ","しょうが"] ,[true,false,true,false,true,false,true] ,3 ,9 ,3 ,5 ,"multiselect");


//	パネルを置いてさらにその配下にコントロールを置く

	w.pnl  =nas.GUI.addPanel       (w ,"PANEL" ,0 ,15 ,7 ,10);

//	パネル配下のコントロールは、パネルのローカル座標下に入る。
	w.pnl.btn  =nas.GUI.addButton      (w.pnl ,"BUTTON" ,0 ,1 ,3 ,1);
	w.pnl.etx  =nas.GUI.addEditText    (w.pnl ,"EDIT TEXT" ,0 ,2 ,6 ,2);
	w.pnl.stx  =nas.GUI.addStaticText  (w.pnl ,"STATIC TEXT" ,0 ,4 ,6 ,1);
	w.pnl.cbx  =nas.GUI.addCheckBox	   (w.pnl ,"CHECKBOX" ,0 ,5 ,3 ,1);
	w.pnl.rbt0 =nas.GUI.addRadioButton (w.pnl ,"RADIOBUTTON0" ,0 ,6 ,3 ,1);
	w.pnl.rbt1 =nas.GUI.addRadioButton (w.pnl ,"RADIOBUTTON1" ,0 ,7 ,3 ,1);
	w.pnl.sld  =nas.GUI.addSlider      (w.pnl ,0 ,0 ,10 ,0 ,8 ,6 ,"bottom");	w.pnl.srb  =nas.GUI.addScrollBar   (w.pnl ,0 ,0 ,10 ,6 ,1 ,8);

//セレクトボタンは、以下のような初期化のやりかたも可能です
w.pnl.sbt  =nas.GUI.addSelectButton(w.pnl ,"<SelectBUTTON>" ,0 ,3 ,1 ,3 ,1);
	w.pnl.sbt.options.push("1st");
	w.pnl.sbt.options.push("2nd");
	w.pnl.sbt.options.push("3rd");
	w.pnl.sbt.options.push("4th");

/*
 *	設定されたコントロールには、なにかの機能を割りつけるのが普通です。
 *	コントロールが操作された時に「イベント」が発生しますので。そのイベントに
 *	機能を登録します。
 *
 *	たとえば、ボタンをクリックすると"Click"イベントが発生するので、
 *	"Click"イベントが発生した時に起動される onClick() メソッドを定義してやります。
 */
	w.btn.onClick=function(){alert("ボタンをクリックしました");};

/*
 *	値の変更が起きた時に起きる "Change"イベント
 *	この例では、編集可能テキストの値を書き換えています。
 */
	w.sbt.onChange=function(){w.etx.text+=this.value+nas.GUI.LineFeed;};

/*
 *	このファイルの 他のエレメントには、なにも動作を設定してありません。
 *	練習用に書き換えてみてください。
 *
 *
 *	すべてのエレメントの定義が終わったら、ウインドウを表示します。
 *	show()メソッドで表示するまで、画面には何も表示されません。 
 *	当然、操作もできません。
 *	最後に表示を忘れないように。
 */

	w.show();


