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("