diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm.java index 7fbeb42ed..7010edae5 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm.java @@ -51,6 +51,8 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm { this.val = val; this.date = date; this.edited = true; + if (String_.Has(gui_args, "read"+"only=") || String_.Has(gui_args, "disabled=")) + edited = false; } public void Set_data_by_dflt() { this.ctx = Xocfg_mgr.Ctx__app; diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm_html.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm_html.java index c571dd22c..058c1cfdb 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm_html.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm_html.java @@ -19,44 +19,55 @@ package gplx.xowa.addons.apps.cfgs.specials.edits.objs; import gplx.*; import gp import gplx.xowa.addons.apps.cfgs.enums.*; import gplx.xowa.addons.apps.cfgs.mgrs.types.*; public class Xoedit_itm_html { - public void Build_html(Bry_bfr bfr, Xocfg_type_mgr type_mgr, String key, String name, String data_type, String gui_type_key, String gui_args, String data) { + public void Build_html(Bry_bfr bfr, Xocfg_type_mgr type_mgr, String key, String name, String data_type, String gui_type_key, String gui_args, String val) { + // if gui_args exists, prepend space for html insertion; EX: "type='checkbox'{1}>" with "a=b" -> "type='checkbox' a='b'" x> "type='checkbox'a='b'" + if (String_.Len_gt_0(gui_args)) gui_args = " " + gui_args; switch (Xoitm_gui_tid.To_uid(gui_type_key)) { case Xoitm_gui_tid.Tid__bool: - bfr.Add_str_u8_fmt("", gui_type_key, key, String_.Eq(data, "y") ? " checked=\"checked\"" : ""); + // bfr.Add_str_u8_fmt("", gui_type_key, gui_args, key, String_.Eq(val, "y") ? " checked=\"checked\"" : ""); + String span_args = ""; + if (String_.Has(gui_args, "disabled=\"disabled\"")) + span_args = " class=\"xocfg__bool__disabled\""; + bfr.Add_str_u8_fmt("", gui_type_key, gui_args, key, String_.Eq(val, "y") ? " checked=\"checked\"" : "", span_args); break; case Xoitm_gui_tid.Tid__int: - bfr.Add_str_u8_fmt("", gui_type_key, key, data); + bfr.Add_str_u8_fmt("", gui_type_key, gui_args, key, val); break; case Xoitm_gui_tid.Tid__str: - bfr.Add_str_u8_fmt("", gui_type_key, key, data); + bfr.Add_str_u8_fmt("", gui_type_key, gui_args, key, val); break; case Xoitm_gui_tid.Tid__memo: - bfr.Add_str_u8_fmt("", gui_type_key, key, String_.Replace(data, "<", "<")); + if (String_.Len_eq_0(gui_args)) gui_args = " rows=\"4\""; + bfr.Add_str_u8_fmt("", gui_type_key, gui_args, key, String_.Replace(val, "<", "<")); break; case Xoitm_gui_tid.Tid__list: + // get list of kvs by type Keyval[] kvs_ary = type_mgr.Lists__get(data_type); int len = kvs_ary.length; - bfr.Add_str_u8_fmt("\n", gui_type_key, gui_args, key); for (int i = 0; i < len; i++) { Keyval kv = kvs_ary[i]; String kv_key = kv.Key(); String kv_val = kv.Val_to_str_or_null(); - bfr.Add_str_u8_fmt("\n", kv_key, kv_val, String_.Eq(data, kv_key) ? " selected=\"selected\"" : ""); + bfr.Add_str_u8_fmt("\n", kv_key, kv_val, String_.Eq(val, kv_key) ? " selected=\"selected\"" : ""); } bfr.Add_str_u8_fmt("\n"); break; case Xoitm_gui_tid.Tid__io_cmd: - String[] lines = Xocfg_mgr.Parse_io_cmd(data); + String[] lines = Xocfg_mgr.Parse_io_cmd(val); bfr.Add_str_u8_fmt - ( "\n" - + "
\n" - , gui_type_key, key, lines[0]); + ( "\n" + + "
\n" + , gui_type_key, gui_args, key, lines[0]); bfr.Add_str_u8_fmt - ( "\n" - , gui_type_key, key, lines[1]); + ( "\n" + , gui_type_key, gui_args, key, lines[1]); break; case Xoitm_gui_tid.Tid__btn: - bfr.Add_str_u8_fmt("", gui_type_key, key, key); + bfr.Add_str_u8_fmt("", gui_type_key, gui_args, key, key); break; default: break;