class NeWindowException: etc.negui.window.window.WindowException;
ATOM NeWindowInitialize();
abstract class NeWindow: etc.negui.window.window.Window;
this(ref NEGUIINFO NeGuiInfo
);
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() {
ACCELERATOR Shift_A;
with(Shift_A) {
command = ACCEL_COMMAND.OK;
type = cast(ACCELERATOR.TYPE)(ACCELERATOR.TYPE.SHIFT | ACCELERATOR.TYPE.VIRTKEY);
key = KEY.A;
}
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);
}
}
}