sleeping-princess-in-the-attic/data/Menus.tjs
2024-04-17 02:37:35 -05:00

222 lines
8.5 KiB
Text
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Menus.tjs - メニュー作成関数の定義
// Copyright (C)2001-2009, W.Dee and contributors 改変・配布は自由です
function KAGWindow_createMenus()
{
// この関数は MainWindow クラスのオブジェクトのコンテキスト上で実行されます
menu.add(this.systemMenu = new KAGMenuItem(this, "システム(&S)", 0, "", false));
systemMenu.add(this.rightClickMenuItem = new KAGMenuItem(this, "メッセージを消す(&S)", 0,
onRightClickMenuItemClick, false));
systemMenu.add(this.skipToNextStopMenuItem = new KAGMenuItem(this,
autoRecordPageShowing?"高速スキップ(Ctrl or マウス左+右)":"メッセージスキップ(&F)", 0,
onSkipToNextStopMenuItemClick, false));
systemMenu.add(this.WarpToNextStopMenuItem = new KAGMenuItem(this,"既読シーン一括ワープ(Ctrl+Shift+S)", 0, onWarpToNextStopMenuItemClick, false));//SHORTCUT 苦労したメニュー追加
systemMenu.add(new MenuItem(this, "-"));
systemMenu.add(this.QuickLoadMenuItem = new KAGMenuItem(this,"メニューまで巻き戻す", 0, onQuickLoadMenuItemClick, false));//SHORTCUT 苦労したメニュー追加
systemMenu.add(new MenuItem(this, "-"));
systemMenu.add(this.showHistoryMenuItem = new KAGMenuItem(this, "メッセージ履歴(&R)", 0,
onShowHistoryMenuItemClick, 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(this.goBackMenuItem = new KAGMenuItem(this, "前に戻る(&B)", 0,
onBackStartMenuItemClick, false));
systemMenu.add(this.goToStartMenuItem = new KAGMenuItem(this, "最初に戻る(&R)", 0,
onGoToStartMenuItemClick, false));
systemMenu.add(new MenuItem(this, "-"));
systemMenu.add(this.exitMenuItem = new KAGMenuItem(this, "ゲームを終わる(&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, "栞をたどる(&J) ...", 0, onRestoreMenuClick, false));
bookMarkMenu.add(this.storeMenu = new KAGMenuItem(this, "栞をはさむ(&M) ...", 0, onStoreMenuClick, false));
}
else
{
menu.add(this.restoreMenu = new KAGMenuItem(this, "栞をたどる(&J)", 0, onRestoreMenuClick, false));
menu.add(this.storeMenu = new KAGMenuItem(this, "栞をはさむ(&M)", 0, onStoreMenuClick, false));
}
menu.add(this.displayMenu = new KAGMenuItem(this, "ウィンドウサイズ(&V)", 0, void, false));
displayMenu.add(this.windowedMenuItem = new KAGMenuItem(this, "ウィンドウ表示(&W)", 1,
onWindowedMenuItemClick, false));
displayMenu.add(this.fullScreenMenuItem = new KAGMenuItem(this, "フルスクリーン(&F)", 1,
onFullScreenMenuItemClick, false));
menu.add(this.helpMenu = new KAGMenuItem(this, "ヘルプ(&H)", 0, void, false));
helpMenu.add(this.helpIndexMenuItem = new KAGMenuItem(this, "目次(&I) ...", 0,
onHelpIndexMenuItemClick, false));
helpMenu.add(this.helpAboutMenuItem = new KAGMenuItem(this, "このソフトについて(&A) ...", 0,
onHelpAboutMenuItemClick, 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));
}
// 以下、KAG 用 メニューアイテムクラス
class KAGMenuItem extends MenuItem
{
// 基本的に MenuItem だが、指定されたイベント、あるいは
// 文字列を実行する機能を持つ
var owner;
var command;
var _accessible = true;
var _enabled = true;
var autoEnable = false;
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();
}
}