吉里吉里改造メモ

自分自身忘れてきているので、プラグインを作った時に調べたことをメモしておきます。

設定項目の作り方

よく有りそうな疑問

Alt+Enterでフルスクリーンにする、ctrlキーでスキップする
-> 色々な墓場にgo
kag.closeByScript()を使用するとなぜか、次のラベルに進んでしまう。
->不具合ではなく仕様らしい、解決策として2chのどこかで見つけた以下のコードをAfterInit.tjsに追加する。


kag.closeByScript = function (elm)
{
	// ウィンドウを閉じる
	// ちょっと面倒くさいとをやっているのは
	// shutdown と同じ理由
	// 「いいえ」が選択されてウィンドウが閉じなかった場合は
	// 'not_closed' トリガが発行され、実行は再開する。
	var askOnClose_save = askOnClose;
	if(elm.ask !== void && !(+elm.ask)) askOnClose = false;
	global.shutdownTrigger =
		new AsyncTrigger(handleCloseByScript, '');
	global.shutdownTrigger.cached = true;
	global.shutdownTrigger.trigger();

	// closeByScript は、このハンドラが終わった直後に
	// 「終了しますか?」のダイアログを表示する。
	// 終了する場合はそのまま終了する。
	// 終了しない場合は 'not_closed' トリガが発行され、
	// 実行は継続する。
	//追加部分↓
	// elm.ignoreオプションが有る場合は以下を発動しない
	if(elm.ignore) return;
	//追加部分↑
	// elm.ignoreオプションが有る場合は以下を発動しない
	conductor.wait(%[
		not_closed : askOnClose_save
		? (function
		{
			// 実際にこれが呼ばれることはないが、一応
			askOnClose = true;
		} incontextof this)
		: (function
		{
		} incontextof this)
		]);
} incontextof kag;

これでkag.closeByScript(%[ignore:true])とすれば前述の現象はおこらない。