295 lines
26 KiB
Text
295 lines
26 KiB
Text
// Menus.tjs - メニュー作成関数の定義
|
|
// Copyright (C)2001-2006, W.Dee and contributors 改変・配布は自由です
|
|
|
|
function KAGWindow_createMenus()
|
|
{
|
|
// この関数は MainWindow クラスのオブジェクトのコンテキスト上で実行されます
|
|
|
|
menu.add(this.systemMenu = new KAGMenuItem(this, "System(&S)", 0, "", false));
|
|
|
|
systemMenu.add(this.quickSaveMenuItem = new KAGMenuItem(this, "クイックセーブ(&s)", 0, onQuickSaveMenuItemClick, false));
|
|
systemMenu.add(this.quickLoadMenuItem = new KAGMenuItem(this, "クイックロード(&L)", 0, onQuickLoadMenuItemClick, false));
|
|
|
|
systemMenu.add(this.rightClickMenuItem = new KAGMenuItem(this, "メッセージを消す(&S)", 0,
|
|
onRightClickMenuItemClick, false));
|
|
|
|
systemMenu.add(this.showHistoryMenuItem = new KAGMenuItem(this, "メッセージ履歴の表示(&H)", 0,
|
|
onShowHistoryMenuItemClick, false));
|
|
|
|
systemMenu.add(this.skipToNextStopMenuItem = new KAGMenuItem(this,
|
|
autoRecordPageShowing?"次の選択肢/未読まで進む(&F)":"次の選択肢まで進む(&F)", 0,
|
|
onSkipToNextStopMenuItemClick, false));
|
|
|
|
systemMenu.add(this.autoModeMenuItem = new KAGMenuItem(this, "自動的に読み進む(&A)", 0,
|
|
onAutoModeMenuItemClick, false));
|
|
|
|
systemMenu.add(this.autoModeWaitMenu = new KAGMenuItem(this, "自動的に読み進むウェイト(&D)", 0,
|
|
void, false));
|
|
|
|
autoModeWaitMenu.add(this.autoModeFastMenuItem = new KAGMenuItem(this, "短い(&1)", 1,
|
|
onAutoModeWaitMenuClick, false));
|
|
autoModeFastMenuItem.wait = autoModePageWaits.fast;
|
|
autoModeFastMenuItem.lwait = autoModeLineWaits.fast;
|
|
autoModeWaitMenu.add(this.autoModeFasterMenuItem = new KAGMenuItem(this, "やや短い(&2)", 1,
|
|
onAutoModeWaitMenuClick, false));
|
|
autoModeFasterMenuItem.wait = autoModePageWaits.faster;
|
|
autoModeFasterMenuItem.lwait = autoModeLineWaits.faster;
|
|
autoModeWaitMenu.add(this.autoModeMediumMenuItem = new KAGMenuItem(this, "普通(&3)", 1,
|
|
onAutoModeWaitMenuClick, false));
|
|
autoModeMediumMenuItem.wait = autoModePageWaits.medium;
|
|
autoModeMediumMenuItem.lwait = autoModeLineWaits.medium;
|
|
autoModeWaitMenu.add(this.autoModeSlowerMenuItem = new KAGMenuItem(this, "やや長い(&4)", 1,
|
|
onAutoModeWaitMenuClick, false));
|
|
autoModeSlowerMenuItem.wait = autoModePageWaits.slower;
|
|
autoModeSlowerMenuItem.lwait = autoModeLineWaits.slower;
|
|
autoModeWaitMenu.add(this.autoModeSlowMenuItem = new KAGMenuItem(this, "長い(&5)", 1,
|
|
onAutoModeWaitMenuClick, false));
|
|
autoModeSlowMenuItem.wait = autoModePageWaits.slow;
|
|
autoModeSlowMenuItem.lwait = autoModeLineWaits.slow;
|
|
|
|
systemMenu.add(new MenuItem(this, "-"));
|
|
|
|
systemMenu.add(this.goBackMenuItem = new KAGMenuItem(this, "前へ戻る(&B)", 0,
|
|
onBackStartMenuItemClick, false));
|
|
|
|
systemMenu.add(this.goToStartMenuItem = new KAGMenuItem(this, "Return to Title Screen(&R)", 0,
|
|
onGoToStartMenuItemClick, false));
|
|
|
|
systemMenu.add(this.adjAISeparateItem = new MenuItem(this, "-"));
|
|
|
|
systemMenu.add(this.adjAIAssistMenuItem = new KAGMenuItem(this, "プレイヤーキャラの操作" , 0, void, false));
|
|
adjAIAssistMenuItem.add(this.adjAIAssistMenuItemM = new KAGMenuItem(this, "手動での操作", 1, onAdjAIAssistMenuItemClick, false));adjAIAssistMenuItemM.value = false;
|
|
adjAIAssistMenuItem.add(this.adjAIAssistMenuItemA = new KAGMenuItem(this, "AIによる動作", 1, onAdjAIAssistMenuItemClick, false));adjAIAssistMenuItemA.value = true;
|
|
|
|
systemMenu.add(this.adjAIClevernessItem = new KAGMenuItem(this, "AIの強さ" , 0, void, false));
|
|
adjAIClevernessItem.add(this.adjAIClevernessItem1 = new KAGMenuItem(this, "強い" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItem1.value = 4;
|
|
adjAIClevernessItem.add(this.adjAIClevernessItem2 = new KAGMenuItem(this, "やや強い" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItem2.value = 3;
|
|
adjAIClevernessItem.add(this.adjAIClevernessItem3 = new KAGMenuItem(this, "普通" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItem3.value = 2;
|
|
adjAIClevernessItem.add(this.adjAIClevernessItem4 = new KAGMenuItem(this, "やや弱い" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItem4.value = 1;
|
|
adjAIClevernessItem.add(this.adjAIClevernessItem5 = new KAGMenuItem(this, "弱い" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItem5.value = 0;
|
|
|
|
systemMenu.add(new MenuItem(this, "-"));
|
|
|
|
systemMenu.add(this.exitMenuItem = new KAGMenuItem(this, "Exit(&X)", 0, onExitMenuItemClick, false));
|
|
|
|
menu.add(this.characterMenu = new KAGMenuItem(this, "文字表示(&C)", 0, void, false));
|
|
|
|
characterMenu.add(this.chSpeedMenu = new KAGMenuItem(this, "表示速度(&C)", 0, void, false));
|
|
|
|
chSpeedMenu.add(this.chNoWaitMenuItem = new KAGMenuItem(this, "ノーウェイト(&W)", 1,
|
|
onChSpeedMenuItemClick, false));
|
|
chNoWaitMenuItem.speed = 0;
|
|
chSpeedMenu.add(this.chFastMenuItem = new KAGMenuItem(this, "高速(&F)", 1,
|
|
onChSpeedMenuItemClick, false));
|
|
chFastMenuItem.speed = chSpeeds.fast;
|
|
chSpeedMenu.add(this.chNormalMenuItem = new KAGMenuItem(this, "普通(&N)", 1,
|
|
onChSpeedMenuItemClick, false));
|
|
chNormalMenuItem.speed = chSpeeds.normal;
|
|
chSpeedMenu.add(this.chSlowMenuItem = new KAGMenuItem(this, "遅い(&S)", 1,
|
|
onChSpeedMenuItemClick, false));
|
|
chSlowMenuItem.speed = chSpeeds.slow;
|
|
|
|
chSpeedMenu.add(new MenuItem(this, "-"));
|
|
|
|
chSpeedMenu.add(this.chNonStopToPageBreakItem = new KAGMenuItem(this, "ページ末まで一気に(&P)", 0,
|
|
onChNonStopToPageBreakItemClick, false));
|
|
|
|
characterMenu.add(this.ch2ndSpeedMenu = new KAGMenuItem(this, "既読文章の速度(&I)", 0, void, false));
|
|
|
|
ch2ndSpeedMenu.add(this.ch2ndNoWaitMenuItem = new KAGMenuItem(this, "ノーウェイト(&W)", 1,
|
|
onCh2ndSpeedMenuItemClick, false));
|
|
ch2ndNoWaitMenuItem.speed = 0;
|
|
ch2ndSpeedMenu.add(this.ch2ndFastMenuItem = new KAGMenuItem(this, "高速(&F)", 1,
|
|
onCh2ndSpeedMenuItemClick, false));
|
|
ch2ndFastMenuItem.speed = chSpeeds.fast;
|
|
ch2ndSpeedMenu.add(this.ch2ndNormalMenuItem = new KAGMenuItem(this, "普通(&N)", 1,
|
|
onCh2ndSpeedMenuItemClick, false));
|
|
ch2ndNormalMenuItem.speed = chSpeeds.normal;
|
|
ch2ndSpeedMenu.add(this.ch2ndNoChangeMenuItem = new KAGMenuItem(this, "変えない(&M)", 1,
|
|
onCh2ndSpeedMenuItemClick, false));
|
|
ch2ndNoChangeMenuItem.speed = -1; // 変えない
|
|
|
|
ch2ndSpeedMenu.add(new MenuItem(this, "-"));
|
|
|
|
ch2ndSpeedMenu.add(this.ch2ndNonStopToPageBreakItem = new KAGMenuItem(this, "ページ末まで一気に(&P)", 0,
|
|
onCh2ndNonStopToPageBreakItemClick, false));
|
|
|
|
characterMenu.add(new MenuItem(this, "-"));
|
|
|
|
characterMenu.add(this.chAntialiasMenuItem = new KAGMenuItem(this, "アンチエイリアス(&A)", 0,
|
|
onChAntialiasMenuItemClick, false));
|
|
|
|
characterMenu.add(this.chChangeFontMenuItem = new KAGMenuItem(this, "フォント(&D) ...", 0,
|
|
onChChangeFontMenuItem, false));
|
|
|
|
if(freeSaveDataMode)
|
|
{
|
|
// フリーセーブモードの場合
|
|
menu.add(this.bookMarkMenu = new KAGMenuItem(this, "栞(&J)", 0, void, false));
|
|
bookMarkMenu.add(this.restoreMenu = new KAGMenuItem(this, "Load(&L) ...", 0, onRestoreMenuClick, false));
|
|
bookMarkMenu.add(this.storeMenu = new KAGMenuItem(this, "Save(&S) ...", 0, onStoreMenuClick, false));
|
|
}
|
|
else
|
|
{
|
|
menu.add(this.restoreMenu = new KAGMenuItem(this, "Load(&L)", 0, onRestoreMenuClick, false));
|
|
menu.add(this.storeMenu = new KAGMenuItem(this, "Save(&S)", 0, onStoreMenuClick, false));
|
|
}
|
|
|
|
menu.add(this.displayMenu = new KAGMenuItem(this, "Display(&V)", 0, void, false));
|
|
|
|
displayMenu.add(this.windowedMenuItem = new KAGMenuItem(this, "Windowed(&W)", 1, onWindowedMenuItemClick, false));
|
|
displayMenu.add(this.fullScreenMenuItem = new KAGMenuItem(this, "Full Screen(&F)", 1, onFullScreenMenuItemClick, false));
|
|
|
|
|
|
displayMenu.add(new MenuItem(this, "-"));
|
|
|
|
// displayMenu.add(this.sideCutMenu = new KAGMenuItem(this, "サイドカット表示(&C)", 1, onSideCutMenuClick, false));
|
|
// sideCutMenu.radio = false;
|
|
// sideCutMenu.group = 2;
|
|
|
|
displayMenu.add(this.smallModeMenu = new KAGMenuItem(this, "Reduced Display(&S)", 1, onSmallModeMenuClick, false));
|
|
smallModeMenu.radio = false;
|
|
smallModeMenu.group = 3;
|
|
|
|
// displayMenu.add(new MenuItem(this, "-"));
|
|
//
|
|
// displayMenu.add(this.fullScreenModeMenu = new KAGMenuItem(this, "Full Screen Expansion Method(&R)", 0, void, false));
|
|
// fullScreenModeMenu.add(this.fullScreenModeFixedItem = new KAGMenuItem(this, "Monitor Expansion(&F)", 1, onFullScreenModeFixedItemClick, false));
|
|
// fullScreenModeMenu.add(this.fullScreenModeVariableItem = new KAGMenuItem(this, "Software Expansion(&V)", 1, onFullScreenModeVariableItemClick, false));
|
|
|
|
|
|
|
|
// menu.add(this.langMenu = new KAGMenuItem(this, "Language(&L)", 0, void, false));
|
|
//
|
|
// langMenu.add(this.langJpnMenuItem = new KAGMenuItem(this, "日本語(&J)", 1, onLangJpnMenuItemClick, false));
|
|
// langMenu.add(this.langEngMenuItem = new KAGMenuItem(this, "English(&E)", 1, onLangEngMenuItemClick, false));
|
|
// langMenu.add(this.langJpnMenuItem = new KAGMenuItem(this, "繁體中文(&T)", 1, onLangTwMenuItemClick, false));
|
|
// langMenu.add(this.langJpnMenuItem = new KAGMenuItem(this, "简体中文(&C)", 1, onLangCnMenuItemClick, false));
|
|
|
|
|
|
|
|
menu.add(this.helpMenu = new KAGMenuItem(this, "Help(&H)", 0, void, false));
|
|
|
|
helpMenu.add(this.helpAboutMenuItem = new KAGMenuItem(this, "About this Software(&A) ...", 0,
|
|
onHelpAboutMenuItemClick, false));
|
|
|
|
helpMenu.add(new MenuItem(this, "-"));
|
|
|
|
helpMenu.add(this.helpIndexMenuItem = new KAGMenuItem(this, "Display Manual(&H) ...", 0,
|
|
onHelpIndexMenuItemClick, false));
|
|
helpMenu.add(this.helpCommandMenu0Item = new KAGMenuItem(this, "Chiffon Controls(&F) ...", 0, onHelpCommandMenuItem0Click, false));
|
|
|
|
helpMenu.add(this.helpCommandMenu1Item = new KAGMenuItem(this, "Chocolat Controls(&C) ...", 0, onHelpCommandMenuItem1Click, false));
|
|
|
|
helpMenu.add(new MenuItem(this, "-"));
|
|
|
|
helpMenu.add(this.helpGoSite1MenuItem = new KAGMenuItem(this, "mille-feuille website(&M) ...", 0,
|
|
onHelpGoSite1MenuItemClick, false));
|
|
helpMenu.add(this.helpGoSite2MenuItem = new KAGMenuItem(this, "Nijigen Dream Novels website(&N) ...", 0,
|
|
onHelpGoSite2MenuItemClick, false));
|
|
|
|
helpMenu.add(new MenuItem(this, "-"));
|
|
helpMenu.add(this.helpGoEnqueteFormItem = new KAGMenuItem(this, "Questionnaire(&Q) ...", 0,
|
|
onHelpGoEnqueteFormItemClick, false));
|
|
|
|
|
|
menu.add(this.debugMenu = new KAGMenuItem(this, "デバッグ(&D)", 0, void, false));
|
|
|
|
// debugMenu.add(this.reloadScenarioMenuItem = new KAGMenuItem(this, "シナリオの再読込み(&R)", 1,
|
|
// onReloadScenarioMenuItemClick, false));
|
|
// debugMenu.add(this.showConsoleMenuItem = new KAGMenuItem(this, "コンソール(&C)\tShift+F4", 1,
|
|
// onShowConsoleMenuItemClick, false));
|
|
// debugMenu.add(this.showControllerMenuItem = new KAGMenuItem(this, "コントローラ(&S)\tShift+F1", 1,
|
|
// onShowContollerMenuItemClick, false));
|
|
|
|
debugMenu.add(this.pauseResumeMenuItem = new KAGMenuItem(this, "停止/再開" , 0, onPauseResumeMenuItemClick, false));
|
|
|
|
debugMenu.add(new MenuItem(this, "-"));
|
|
|
|
debugMenu.add(this.debugModeMenuItem = new KAGMenuItem(this, "当たり判定表示" , 0, onDebugModetMenuItemClick, false));
|
|
|
|
debugMenu.add(new MenuItem(this, "-"));
|
|
|
|
debugMenu.add(this.adjAIAssistMenuItemDb = new KAGMenuItem(this, "ユーザー側キャラ操作" , 0, void, false));
|
|
adjAIAssistMenuItemDb.add(this.adjAIAssistMenuItemDbM = new KAGMenuItem(this, "手動操作" , 1, onAdjAIAssistMenuItemClick, false));adjAIAssistMenuItemDbM.value = false;
|
|
adjAIAssistMenuItemDb.add(this.adjAIAssistMenuItemDbA = new KAGMenuItem(this, "AI動作", 1, onAdjAIAssistMenuItemClick, false));adjAIAssistMenuItemDbA.value = true;
|
|
|
|
debugMenu.add(this.adjAIClevernessItemDb = new KAGMenuItem(this, "AIの強さ" , 0, void, false));
|
|
adjAIClevernessItemDb.add(this.adjAIClevernessItemDb1 = new KAGMenuItem(this, "強い" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItemDb1.value = 4;
|
|
adjAIClevernessItemDb.add(this.adjAIClevernessItemDb2 = new KAGMenuItem(this, "やや強い" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItemDb2.value = 3;
|
|
adjAIClevernessItemDb.add(this.adjAIClevernessItemDb3 = new KAGMenuItem(this, "普通" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItemDb3.value = 2;
|
|
adjAIClevernessItemDb.add(this.adjAIClevernessItemDb4 = new KAGMenuItem(this, "やや弱い" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItemDb4.value = 1;
|
|
adjAIClevernessItemDb.add(this.adjAIClevernessItemDb5 = new KAGMenuItem(this, "弱い" , 2, onAdjAIClevernessItemClick, false));adjAIClevernessItemDb5.value = 0;
|
|
|
|
debugMenu.add(new MenuItem(this, "-"));
|
|
|
|
debugMenu.add(this.voiceFileUnlockMenuItem = new KAGMenuItem(this, "ボイスファイルアンロックモード" , 0, onVoiceFileUnlockMenuItemClick, false));
|
|
}
|
|
|
|
|
|
// 以下、KAG 用 メニューアイテムクラス
|
|
class KAGMenuItem extends MenuItem
|
|
{
|
|
// 基本的に MenuItem だが、指定されたイベント、あるいは
|
|
// 文字列を実行する機能を持つ
|
|
var owner;
|
|
var command;
|
|
var _accessible = true;
|
|
var _enabled = true;
|
|
var autoEnable = false;
|
|
var value;
|
|
|
|
function KAGMenuItem(window, caption, group, command, autoenable)
|
|
{
|
|
super.MenuItem(window, caption);
|
|
this.owner = window;
|
|
this.command = command;
|
|
this.autoEnable = autoenable;
|
|
if(group!=0)
|
|
{
|
|
this.group = group;
|
|
this.radio = true;
|
|
}
|
|
}
|
|
|
|
function finalize()
|
|
{
|
|
delete owner;
|
|
delete command;
|
|
super.finalize(...);
|
|
}
|
|
|
|
property enabled // オーバーライド
|
|
{
|
|
getter { return _enabled; }
|
|
setter(x) { _enabled = x; super.enabled = _accessible && _enabled; }
|
|
}
|
|
|
|
property accessible
|
|
{
|
|
getter { return _accessible; }
|
|
setter(x) { _accessible = x; super.enabled = _accessible && _enabled; }
|
|
}
|
|
|
|
function click()
|
|
{
|
|
// click 動作
|
|
if(command !== void)
|
|
{
|
|
if(typeof command == "String")
|
|
{
|
|
Scripts.eval(command);
|
|
}
|
|
else
|
|
{
|
|
command(this);
|
|
}
|
|
}
|
|
}
|
|
|
|
function onClick()
|
|
{
|
|
super.onClick(...);
|
|
click();
|
|
}
|
|
}
|