140 lines
4.9 KiB
Text
140 lines
4.9 KiB
Text
[return cond="typeof(global.extsystembutton_obj) != 'undefined'"]
|
||
|
||
; 画面にシステムボタンを追加するプラグイン by KAICHO
|
||
; systembutton.ks は TJS の知識が必要だったが、これは KAG から使える
|
||
|
||
; Ver 0.97 2015/02/16
|
||
; ・二重読み込みに対応。二回目は先頭の[return]で即座に戻るよう修正
|
||
; Ver 0.96 2014/06/08
|
||
; ・enable=false時にクリック無視するのはKLayers.ksで実装したので、
|
||
; 0.9a 相当に戻した
|
||
; Ver 0.95 2014/05/29
|
||
; ・autoMode中にボタンクリックしてもautoModeを解除できないのを防ぐ
|
||
; ため、disable時はプライマリレイヤにクリックが伝播するよう新しい
|
||
; クラスを作成
|
||
; Ver 0.9a2013/11/28
|
||
; ・Krclick.ksにあわせるために、*rclick_load→*krclick_loadなどに変更
|
||
; Ver 0.9 2011/12/04
|
||
; ・ボタンを指定するIDをkey=からname=に変更。loadImages()にkey=が
|
||
; そのままわたって、黒色(key=0)が画像の透明キーとして利用されて
|
||
; しまっていたため。
|
||
; Ver 0.8 2011/07/30
|
||
; ・skip可否はkag.nextSkipEnabled をチェックするように変更
|
||
; ・history表示可否はkag.historyEnabledをチェックするように変更
|
||
; Ver 0.7 2011/06/20
|
||
; ・calltarget=を追加。extraConductorを使って[call]する。
|
||
; Ver 0.6 2011/02/21
|
||
; ・sysbtn 作成時、無指定なら enabled = kag.inStable にするよう変更
|
||
; ・[sysbutton_setopt]で実はsetOptionsを呼んでなかったのを修正
|
||
; Ver 0.5 2011/01/01
|
||
; ・KLayersとKLayersPluginOnMessageを参照するよう変更
|
||
; Ver 0.3 2010/11/27
|
||
; ・KLayersPlugin 変更に伴い、インターフェース部分を変更。
|
||
; ・focusable だけだとフォーカス時の画像を表示しないので、
|
||
; showfocusimage=true/false を設定できるように追加。
|
||
; ・KLayersPluginに統合したため、ExtSystemButtonsクラスを廃止。
|
||
; ・ExtSystemButton で初期化時に name を設定し忘れてたので追加。
|
||
; Ver 0.2 2010/11/23
|
||
; ・focusable(def=true) を指定できるようにした。指定すると
|
||
; キーボードフォーカスが使用可能となる。
|
||
; ・name メンバは最初からLayerクラスに存在するから定義を削除
|
||
; Ver 0.1 2010/11/23
|
||
; 初期リリース
|
||
|
||
[call storage="KLayers.ks"]
|
||
|
||
[iscript]
|
||
|
||
|
||
global.extsystembutton_obj = new KLayersPluginOnMessage('extsystembutton');
|
||
kag.addPlugin(global.extsystembutton_obj);
|
||
|
||
// 以下はシステムボタンが押された時の動作サンプル関数。使っても使わなくても
|
||
// よし。使う場合は、
|
||
// [sysbutton graphic="xxx" exp="SysBtn_onSkipButtonClick()"]
|
||
// のように使う。
|
||
|
||
// SKIPボタンが押された
|
||
function SysBtn_onSkipButtonClick()
|
||
{
|
||
if (!kag.nextSkipEnabled)
|
||
return;
|
||
if (typeof kag.skipToNextStopMenuItem != "undefined" &&
|
||
kag.skipToNextStopMenuItem.enabled)
|
||
kag.onSkipToNextStopMenuItemClick(kag);
|
||
// 以下はMenuが削除されてても動くように
|
||
else
|
||
kag.skipToStop();
|
||
}
|
||
|
||
// 自動読進ボタンが押された
|
||
function SysBtn_onAutoReadButtonClick()
|
||
{
|
||
if(typeof kag.autoModeMenuItem != "undefined" &&
|
||
kag.autoModeMenuItem.enabled)
|
||
kag.onAutoModeMenuItemClick(kag);
|
||
}
|
||
|
||
// 履歴ボタンが押された
|
||
function SysBtn_onHistoryButtonClick()
|
||
{
|
||
if (!kag.historyEnabled)
|
||
return;
|
||
if (typeof kag.showHistoryMenuItem != "undefined" &&
|
||
kag.showHistoryMenuItem.enabled)
|
||
kag.onShowHistoryMenuItemClick(kag);
|
||
// 以下はMenuが削除されてても動くように
|
||
else
|
||
kag.showHistory();
|
||
}
|
||
|
||
// テキスト消去ボタンが押された
|
||
function SysBtn_onTextHideButtonClick()
|
||
{
|
||
kag.hideMessageLayerByUser();
|
||
}
|
||
|
||
// セーブ ボタンが押されたら ks ファイルを呼び出し
|
||
function SysBtn_onSaveButtonClick()
|
||
{
|
||
if(kag.canStore())
|
||
kag.callExtraConductor('Krclick.ks', '*krclick_save');
|
||
}
|
||
|
||
// ロード ボタンが押されたら ks ファイルを呼び出し
|
||
function SysBtn_onLoadButtonClick()
|
||
{
|
||
if(kag.canRestore())
|
||
kag.callExtraConductor('Krclick.ks', '*krclick_load');
|
||
}
|
||
|
||
// メニュー ボタンが押されたら ks ファイルを呼び出し
|
||
function SysBtn_onMenuButtonClick()
|
||
{
|
||
kag.callExtraConductor('Krclick.ks', '*krclick_menu');
|
||
}
|
||
|
||
[endscript]
|
||
|
||
|
||
; システムボタンを追加する
|
||
[macro name="sysbutton"]
|
||
[eval exp="mp.classobj = 'KAnimButtonLayer'" cond="mp.classobj == void"]
|
||
; 文字列をオブジェクトに変換
|
||
[eval exp="mp.classobj = Scripts.eval(mp.classobj)"]
|
||
; kag.inStable にあわせて enabled を設定
|
||
[eval exp="mp.enabled = kag.inStable" cond="mp.enabled === void"]
|
||
[eval exp="global.extsystembutton_obj.add(mp.name, mp.classobj, mp.page, mp)"]
|
||
[endmacro]
|
||
|
||
; システムボタンを削除する
|
||
[macro name="sysbutton_erase"]
|
||
[eval exp="global.extsystembutton_obj.del(mp.name, mp.page)"]
|
||
[endmacro]
|
||
|
||
; システムボタンを設定する
|
||
[macro name="sysbutton_setopt"]
|
||
[eval exp="global.extsystembutton_obj.setOptions(mp.name, mp.page, mp)"]
|
||
[endmacro]
|
||
|
||
[return]
|