選択済みの選択肢にマークを付けるプラグイン
プラグイン化しました
上記リンク先の「selectedchoice.zip」をダウンロードして展開して、同梱の「readme.txt」をお読みください。
使い方もそちらに書いてあります。
以下、中身の話
選択肢ごとにいちいち[if]~[endif]と書くのが面倒だったからCSSとjsでどうにかするバージョン
[button]タグの場合は知らん
CSS記述
まずはcssにこんな感じで記述して[loadcss]で読み込み
code:style.css
/* 選択済みの選択肢にマーク */
.glink_button.checked::after{
content: url("./glink_check.png");
position: absolute;
top: -10px;
left: 90%;
}
checkedっていうのが選択済みの選択肢に与えるクラスです。
マクロ記述
次に選択肢ボタン用のマクロを記述
この中で選択済みの選択肢(=通過済みのラベル)の場合は事前にCSSで記述しておいた選択済み選択肢用のクラスを追加する
code:init.ks
var tmp_storage = mp.storage === undefined || mp.storage === "" || mp.storage === null ? tyrano.plugin.kag.stat.stack"macro"0.storage : mp.storage tf.storage = tmp_storage
tf.label = "trail_" + mp.storage.replace(".ks", "").replace(/\u002f/g, "").replace(/:/g, "").replace(/\./g, "")
tf.label = tf.label + "_" + mp.target.replace("*", "")
tf.name = null
if(TYRANO.kag.variable.sf.recordtf.label === undefined){ tf.name = mp.name
}else{
tf.name = mp.name + ",checked"
}
基本的には通常の[glink]と指定できる属性等同じです。
ロード時の処理
これだけだと、選択肢部分でセーブ、その後ロードしたときに表示される選択肢が選択済みのときにマークが反映されないのでmake.ks用のマクロを用意します。
code:init.ks
var el = $(".glink_button")
for(var i = 0; i < el.length; i++){
var glink = JSON.parse($(eli).attr("data-event-pm")) var label = "trail_" + glink.storage.replace(".ks", "").replace(/\u002f/g, "").replace(/:/g, "").replace(/\./g, "")
label = label + "_" + glink.target.replace("*", "")
name = null
if(TYRANO.kag.variable.sf.recordlabel === undefined){ }else{
$(eli).addClass("checked") }
}
で、make.ksにこんな感じで記述
code:make.ks
cssをアレンジすればマークの追加以外にも色を変えたりいろいろできるはず
難点はラベルの通過を選択肢を選択したかの判断基準にしているので、選択肢は選択したけど次のラベルまで到達してない場合にマークがつかないこと まあその辺はダミーのラベル通過させるとかすればよろし