etc.negui.window.newindow


class NeWindowException: etc.negui.window.window.WindowException;

ATOM NeWindowInitialize();
History:
1.032: [P] アトムを返す。
1.021: 新規作成。
abstract class NeWindow: etc.negui.window.window.Window;
History:
1.000: [P] キーボードアクセラレータ引越し。
this(ref NEGUIINFO NeGuiInfo );
History:
1.022: 新規作成。
Accelerator accelerator();

void accelerator(Accelerator Accel );
アクセラレータ。
基本的にDialog以下で使用することを前提に設計してMainWindowで使えるようにNeWindowに格上げしたけどやっぱり使用はDialogが無難。
Params:
Accelerator Accel
このダイアログに設定するアクセラレータ。 nullを設定すればアクセラレータを削除するが、killされない。
Example:
 class MyDialog: Dialog {
 	enum ACCEL_COMMAND: COMMAND_ID {
 		OK = Dialog.ACCELERATOR_DEFKEY.SAFE_START,
 		CANCEL,
 	}
 	unittest {
 		assert(ACCEL_COMMAND.max <= Dialog.ACCELERATOR_DEFKEY.SAFE_END);
 	}

 	void AccelSetting() {
 		// Shift + A
 		ACCELERATOR Shift_A;
 		with(Shift_A) {
 			command = ACCEL_COMMAND.OK;
 			type    = cast(ACCELERATOR.TYPE)(ACCELERATOR.TYPE.SHIFT | ACCELERATOR.TYPE.VIRTKEY);
 			key     = KEY.A;
 		}

 		// B
 		ACCELERATOR B;
 		with(B) {
 			command = ACCEL_COMMAND.CANCEL;
 			type    = ACCELERATOR.TYPE.VIRTKEY;
 			key     = KEY.B;
 		}

 		// 現在ダイアログに設定されている
 		// アクセラレータの参照取得。
 		auto NowAccel = accelerator;

 		if(NowAccel) {
 			// 現在設定されていればマージ。
 			NowAccel += [Shift_A, B];
 		} else {
 			// 設定されていなければ設定。
 			accelerator = new Accelerator(Shift_A, B);
 		}
 	}
 	protected override bool OnAccelerator(COMMAND_ID Id) {
 		switch(Id) {
 			case ACCEL_COMMAND.OK:
 				text = Text("OK");
 				return true;
 			case ACCEL_COMMAND.CANCEL:
 				text = Text("CANCEL");
 				return true;
 			default:
 				return super.OnAccelerator(Id);
 		}
 	}
 }
History:
1.00β15: 整理用にサンプルソース追記。