1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2024-09-29 23:10:52 +00:00

Cfg: Add shortcut win; Remove keypad bindings; Change shortut box from input to select

This commit is contained in:
gnosygnu 2016-12-31 08:37:34 -05:00
parent c3d4f520de
commit cdcb4eca89
8 changed files with 94 additions and 49 deletions

View File

@ -113,9 +113,9 @@ public class IptKey_ {
, Numpad_decimal = new_(KeyEvent.VK_DECIMAL, "numpad_decimal") , Numpad_decimal = new_(KeyEvent.VK_DECIMAL, "numpad_decimal")
, Numpad_divide = new_(KeyEvent.VK_DIVIDE, "numpad_divide") , Numpad_divide = new_(KeyEvent.VK_DIVIDE, "numpad_divide")
// NOTE: mapping numpad_enter to enter b/c don't want to define two sets of enters for every binding // NOTE: mapping numpad_enter to enter b/c don't want to define two sets of enters for every binding
, Numpad_enter = new_(KeyEvent.VK_ENTER, "numpad_enter") //, Numpad_enter = new_(KeyEvent.VK_ENTER, "numpad_enter")
// NOTE: using same value as SWT; SWING value is not available // NOTE: using same value as SWT; SWING value is not available
// , Numpad_enter = new_(16777296, "numpad_enter") , Numpad_enter = new_(16777296, "numpad_enter")
// function keys; not supporting f13-f24 b/c only for IBM 3270 keyboards and can't test; also, note that codes differ between .net and swing // function keys; not supporting f13-f24 b/c only for IBM 3270 keyboards and can't test; also, note that codes differ between .net and swing
, F1 = new_(KeyEvent.VK_F1, "f1") , F1 = new_(KeyEvent.VK_F1, "f1")
@ -209,7 +209,7 @@ public class IptKey_ {
, IptKey_.Numpad_0, IptKey_.Numpad_1, IptKey_.Numpad_2, IptKey_.Numpad_3, IptKey_.Numpad_4 , IptKey_.Numpad_0, IptKey_.Numpad_1, IptKey_.Numpad_2, IptKey_.Numpad_3, IptKey_.Numpad_4
, IptKey_.Numpad_5, IptKey_.Numpad_6, IptKey_.Numpad_7, IptKey_.Numpad_8, IptKey_.Numpad_9 , IptKey_.Numpad_5, IptKey_.Numpad_6, IptKey_.Numpad_7, IptKey_.Numpad_8, IptKey_.Numpad_9
, IptKey_.Numpad_multiply, IptKey_.Numpad_add, IptKey_.Numpad_subtract, IptKey_.Numpad_decimal, IptKey_.Numpad_divide , IptKey_.Numpad_multiply, IptKey_.Numpad_add, IptKey_.Numpad_subtract, IptKey_.Numpad_decimal, IptKey_.Numpad_divide
// , IptKey_.Numpad_enter , IptKey_.Numpad_enter
); );
} }
return ui_str_hash; return ui_str_hash;

View File

@ -92,27 +92,47 @@ class Swt_lnr_key implements KeyListener {
case Byte_ascii.Ltr_u: case Byte_ascii.Ltr_v: case Byte_ascii.Ltr_w: case Byte_ascii.Ltr_x: case Byte_ascii.Ltr_y: case Byte_ascii.Ltr_z: case Byte_ascii.Ltr_u: case Byte_ascii.Ltr_v: case Byte_ascii.Ltr_w: case Byte_ascii.Ltr_x: case Byte_ascii.Ltr_y: case Byte_ascii.Ltr_z:
val -= 32; val -= 32;
break; break;
// numpad numbers
case SWT.KEYPAD_0: val = IptKey_.Numpad_0.Val(); break;
case SWT.KEYPAD_1: val = IptKey_.Numpad_1.Val(); break;
case SWT.KEYPAD_2: val = IptKey_.Numpad_2.Val(); break;
case SWT.KEYPAD_3: val = IptKey_.Numpad_3.Val(); break;
case SWT.KEYPAD_4: val = IptKey_.Numpad_4.Val(); break;
case SWT.KEYPAD_5: val = IptKey_.Numpad_5.Val(); break;
case SWT.KEYPAD_6: val = IptKey_.Numpad_6.Val(); break;
case SWT.KEYPAD_7: val = IptKey_.Numpad_7.Val(); break;
case SWT.KEYPAD_8: val = IptKey_.Numpad_8.Val(); break;
case SWT.KEYPAD_9: val = IptKey_.Numpad_9.Val(); break;
// symbols; extended // // numpad numbers
// case SWT.KEYPAD_0: val = IptKey_.Numpad_0.Val(); break;
// case SWT.KEYPAD_1: val = IptKey_.Numpad_1.Val(); break;
// case SWT.KEYPAD_2: val = IptKey_.Numpad_2.Val(); break;
// case SWT.KEYPAD_3: val = IptKey_.Numpad_3.Val(); break;
// case SWT.KEYPAD_4: val = IptKey_.Numpad_4.Val(); break;
// case SWT.KEYPAD_5: val = IptKey_.Numpad_5.Val(); break;
// case SWT.KEYPAD_6: val = IptKey_.Numpad_6.Val(); break;
// case SWT.KEYPAD_7: val = IptKey_.Numpad_7.Val(); break;
// case SWT.KEYPAD_8: val = IptKey_.Numpad_8.Val(); break;
// case SWT.KEYPAD_9: val = IptKey_.Numpad_9.Val(); break;
//
// // numpad symbols
// case SWT.KEYPAD_MULTIPLY: val = IptKey_.Numpad_multiply.Val(); break;
// case SWT.KEYPAD_ADD: val = IptKey_.Numpad_add.Val(); break;
// case SWT.KEYPAD_SUBTRACT: val = IptKey_.Numpad_subtract.Val(); break;
// case SWT.KEYPAD_DECIMAL: val = IptKey_.Numpad_decimal.Val(); break;
// case SWT.KEYPAD_DIVIDE: val = IptKey_.Numpad_divide.Val(); break;
// case SWT.KEYPAD_CR: val = IptKey_.Numpad_enter.Val(); break;
// numpad numbers
case SWT.KEYPAD_0: val = IptKey_.D0.Val(); break;
case SWT.KEYPAD_1: val = IptKey_.D1.Val(); break;
case SWT.KEYPAD_2: val = IptKey_.D2.Val(); break;
case SWT.KEYPAD_3: val = IptKey_.D3.Val(); break;
case SWT.KEYPAD_4: val = IptKey_.D4.Val(); break;
case SWT.KEYPAD_5: val = IptKey_.D5.Val(); break;
case SWT.KEYPAD_6: val = IptKey_.D6.Val(); break;
case SWT.KEYPAD_7: val = IptKey_.D7.Val(); break;
case SWT.KEYPAD_8: val = IptKey_.D8.Val(); break;
case SWT.KEYPAD_9: val = IptKey_.D9.Val(); break;
// numpad symbols
case SWT.KEYPAD_MULTIPLY: val = IptKey_.Numpad_multiply.Val(); break; case SWT.KEYPAD_MULTIPLY: val = IptKey_.Numpad_multiply.Val(); break;
case SWT.KEYPAD_ADD: val = IptKey_.Numpad_add.Val(); break; case SWT.KEYPAD_ADD: val = IptKey_.Equal.Val(); break;
case SWT.KEYPAD_SUBTRACT: val = IptKey_.Numpad_subtract.Val(); break; case SWT.KEYPAD_SUBTRACT: val = IptKey_.Minus.Val(); break;
case SWT.KEYPAD_DECIMAL: val = IptKey_.Numpad_decimal.Val(); break; case SWT.KEYPAD_DECIMAL: val = IptKey_.Period.Val(); break;
case SWT.KEYPAD_DIVIDE: val = IptKey_.Numpad_divide.Val(); break; case SWT.KEYPAD_DIVIDE: val = IptKey_.Numpad_divide.Val(); break;
case SWT.KEYPAD_CR: val = IptKey_.Enter.Val(); break; case SWT.KEYPAD_CR: val = IptKey_.Enter.Val(); break;
// function keys // function keys
case SWT.F1: val = IptKey_.F1.Val(); break; case SWT.F1: val = IptKey_.F1.Val(); break;
case SWT.F2: val = IptKey_.F2.Val(); break; case SWT.F2: val = IptKey_.F2.Val(); break;

View File

@ -206,7 +206,6 @@ public class Gfui_bnd_parser {
Init_itm("key.tab", "Tab"); Init_itm("key.tab", "Tab");
Init_itm("key.clear", "Clear"); Init_itm("key.clear", "Clear");
Init_itm("key.enter", "Enter"); Init_itm("key.enter", "Enter");
Init_itm("key.keypad_enter", "Keypad Enter");
Init_itm("key.shiftKey", "ShiftKey"); Init_itm("key.shiftKey", "ShiftKey");
Init_itm("key.ctrlKey", "CtrlKey"); Init_itm("key.ctrlKey", "CtrlKey");
Init_itm("key.altKey", "AltKey"); Init_itm("key.altKey", "AltKey");
@ -256,7 +255,7 @@ public class Gfui_bnd_parser {
Init_itm("key.numpad_subtract", "Numpad Subtract"); Init_itm("key.numpad_subtract", "Numpad Subtract");
Init_itm("key.numpad_decimal", "Numpad Decimal"); Init_itm("key.numpad_decimal", "Numpad Decimal");
Init_itm("key.numpad_divide", "Numpad Divide"); Init_itm("key.numpad_divide", "Numpad Divide");
// Init_itm("key.numpad_enter", "Numpad Enter"); Init_itm("key.numpad_enter", "Numpad Enter");
return this; return this;
} }
private void Init_itm(String gfui, String norm) {Init_itm(Gfui_bnd_tkn.Tid_key, gfui, norm);} private void Init_itm(String gfui, String norm) {Init_itm(Gfui_bnd_tkn.Tid_key, gfui, norm);}

View File

@ -42,8 +42,8 @@ public class Gfui_bnd_parser_tst {
fxt.Test__to_gfui("Ctrl + Alt + Shift + A" , "mod.cas+key.a"); fxt.Test__to_gfui("Ctrl + Alt + Shift + A" , "mod.cas+key.a");
} }
@Test public void Keypad_enter() { @Test public void Keypad_enter() {
fxt.Test__to_norm("key.keypad_enter" , "Keypad Enter"); fxt.Test__to_norm("key.numpad_enter" , "Numpad Enter");
fxt.Test__to_norm("mod.c+key.keypad_enter" , "Ctrl + Keypad Enter"); fxt.Test__to_norm("mod.c+key.numpad_enter" , "Ctrl + Numpad Enter");
} }
@Test public void None() { @Test public void None() {
fxt.Test__to_gfui("None" , "key.none"); fxt.Test__to_gfui("None" , "key.none");

View File

@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.addons.apps.cfgs.specials.edits.objs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.addons.apps.cfgs.specials.*; import gplx.xowa.addons.apps.cfgs.specials.edits.*; package gplx.xowa.addons.apps.cfgs.specials.edits.objs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.addons.apps.cfgs.specials.*; import gplx.xowa.addons.apps.cfgs.specials.edits.*;
import gplx.xowa.addons.apps.cfgs.enums.*; import gplx.xowa.addons.apps.cfgs.enums.*;
import gplx.xowa.addons.apps.cfgs.mgrs.types.*; import gplx.xowa.addons.apps.cfgs.mgrs.types.*;
import gplx.xowa.guis.bnds.*;
public class Xoedit_itm_html { public class Xoedit_itm_html {
public static void Build_html(Bry_bfr bfr, Xocfg_type_mgr type_mgr, String key, String name, String type, String html_atrs, String html_cls, byte[] val) { public static void Build_html(Bry_bfr bfr, Xocfg_type_mgr type_mgr, String key, String name, String type, String html_atrs, String html_cls, byte[] val) {
// prepend space for html insertion; EX: "type='checkbox'{1}>" with "a=b" -> "type='checkbox' a='b'" x> "type='checkbox'a='b'" // prepend space for html insertion; EX: "type='checkbox'{1}>" with "a=b" -> "type='checkbox' a='b'" x> "type='checkbox'a='b'"
@ -25,6 +26,7 @@ public class Xoedit_itm_html {
if (String_.Len_gt_0(html_cls)) html_cls = " " + html_cls; if (String_.Len_gt_0(html_cls)) html_cls = " " + html_cls;
// build html // build html
bfr.Add_byte_nl();
switch (Xoitm_type_enum.To_uid(type)) { switch (Xoitm_type_enum.To_uid(type)) {
case Xoitm_type_enum.Tid__bool: case Xoitm_type_enum.Tid__bool:
bfr.Add_str_u8_fmt bfr.Add_str_u8_fmt
@ -71,22 +73,42 @@ public class Xoedit_itm_html {
case Xoitm_type_enum.Tid__io_cmd: case Xoitm_type_enum.Tid__io_cmd:
String[] lines = Xocfg_mgr.Parse_io_cmd(String_.new_u8(val)); String[] lines = Xocfg_mgr.Parse_io_cmd(String_.new_u8(val));
bfr.Add_str_u8_fmt bfr.Add_str_u8_fmt
( "<input class=\"xocfg__io_cmd__exe__txt\" id=\"{3}-exe\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-exe\" accesskey=\"d\" class=\"xocfg__io_cmd__exe__txt{2}\" type=\"text\"{1} value=\"{4}\"></input>\n" ( "<input class=\"xocfg__io_cmd__exe__txt{2}\" id=\"{3}-exe\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-exe\" accesskey=\"d\" type=\"text\"{1} value=\"{4}\"></input>\n"
+ "<button class=\"xocfg__io_cmd__exe__btn\" onclick='xo.cfg_edit.io_cmd__select(\"file\", \"{3}-exe\", \"Please select a file.\");'>...</button><br/>\n" + "<button class=\"xocfg__io_cmd__exe__btn\" onclick='xo.cfg_edit.io_cmd__select(\"file\", \"{3}-exe\", \"Please select a file.\");'>...</button><br/>\n"
, type, html_atrs, html_cls, key, lines[0]); , type, html_atrs, html_cls, key, lines[0]);
bfr.Add_str_u8_fmt bfr.Add_str_u8_fmt
( "<input class=\"xocfg__io_cmd__arg__txt\" id=\"{3}-arg\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-arg\" accesskey=\"d\" class=\"xocfg__io_cmd__arg__txt{2}\" type=\"text\"{1} value=\"{4}\">\n" ( "<input class=\"xocfg__io_cmd__arg__txt{2}\" id=\"{3}-arg\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-arg\" accesskey=\"d\" type=\"text\"{1} value=\"{4}\">\n"
, type, html_atrs, html_cls, key, lines[1]); , type, html_atrs, html_cls, key, lines[1]);
break; break;
case Xoitm_type_enum.Tid__gui_binding: case Xoitm_type_enum.Tid__gui_binding: {
String[] flds = Xoitm_gui_binding.To_gui(String_.new_u8(val)); String[] flds = Xoitm_gui_binding.To_gui(String_.new_u8(val));
// bfr.Add_str_u8_fmt
// ( "<input class=\"xocfg__gui_binding__box\" id=\"{3}-box\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-box\" accesskey=\"d\" type=\"text\"{1} value=\"{4}\"></input>\n"
// , type, html_atrs, html_cls, key, flds[0]);
bfr.Add_str_u8_fmt bfr.Add_str_u8_fmt
( "<input class=\"xocfg__gui_binding__box__txt\" id=\"{3}-box\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-box\" accesskey=\"d\" class=\"{2}\" type=\"text\"{1} value=\"{4}\"></input>\n" ( "<select class=\"xocfg__gui_binding__box\" id=\"{3}-box\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-box\" size=\"1\" accesskey=\"d\"{1}>\n"
, type, html_atrs, html_cls, key, flds[0]); , type, html_atrs, html_cls, key, flds[0]);
Xog_bnd_box[] box_ary = Xog_bnd_box_.Ary();
int box_len = box_ary.length;
String selected_box = flds[0];
for (int i = 0; i < box_len; i++) {
Xog_bnd_box kv = box_ary[i];
String kv_key = kv.Key();
String kv_val = Xog_bnd_box_.To_gui_str(kv_key);
bfr.Add_str_u8_fmt
( "<option value=\"{0}\"{2}>{1}</option>\n"
, kv_key, kv_val, String_.Eq(selected_box, kv_val) ? " selected=\"selected\"" : "");
}
bfr.Add_str_u8_fmt("</select>\n");
bfr.Add_str_u8_fmt bfr.Add_str_u8_fmt
( "<input class=\"xocfg__gui_binding__ipt__txt\" id=\"{3}-ipt\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-ipt\" accesskey=\"d\" class=\"{2}\" type=\"text\"{1} value=\"{4}\"'>\n" ( "<input class=\"xocfg__gui_binding__ipt\" id=\"{3}-ipt\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}-ipt\" accesskey=\"d\" type=\"text\"{1} value=\"{4}\"></input>\n"
, type, html_atrs, html_cls, key, flds[1]); , type, html_atrs, html_cls, key, flds[1]);
bfr.Add_str_u8_fmt
( "<span class=\"xoimg_btn_x16 xoimg_app_configure\" onclick='xo.cfg_edit.gui_binding__remap_send(\"{3}\", \"{4}\");'>&nbsp;</span>\n"
, type, html_atrs, html_cls, key, name);
break; break;
}
case Xoitm_type_enum.Tid__btn: case Xoitm_type_enum.Tid__btn:
bfr.Add_str_u8_fmt bfr.Add_str_u8_fmt
( "<button id=\"{3}\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}\" class=\"xocfg__btn{2}\" {1}>{4}</button>" ( "<button id=\"{3}\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}\" class=\"xocfg__btn{2}\" {1}>{4}</button>"

View File

@ -40,14 +40,18 @@ public class Xocfg_edit_svc {
try { try {
app.Cfg().Set_str(ctx, key, val); app.Cfg().Set_str(ctx, key, val);
} catch (Exception exc) { } catch (Exception exc) {
app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.update__fail", Gfobj_nde.New().Add_str("key", key).Add_str("new_val", val).Add_str("old_val", grp.Get(ctx)).Add_str("err", Err_.Message_lang(exc))); app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.update__fail", Gfobj_nde.New().Add_str("key", key).Add_str("new_val", args.Get_as_str("val")).Add_str("old_val", grp.Get(ctx)).Add_str("err", Err_.Message_lang(exc)));
return; return;
} }
if (!String_.Eq(type, "btn") && String_.Eq(grp.Dflt(), val)) if (!String_.Eq(type, "btn") && String_.Eq(grp.Dflt(), val)) {
app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.delete__recv", Gfobj_nde.New().Add_str("key", key).Add_str("val", val).Add_str("type", type)); if (String_.Has_at_bgn(type, "gui.binding")) {
val = String_.Concat_with_str("|", gplx.xowa.addons.apps.cfgs.enums.Xoitm_gui_binding.To_gui(val));
}
app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.delete__recv", Gfobj_nde.New().Add_str("key", key).Add_str("type", type).Add_str("val", val));
}
else else
app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.update__pass", Gfobj_nde.New().Add_str("key", key).Add_str("val", val).Add_str("type", type)); app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.update__pass", Gfobj_nde.New().Add_str("key", key).Add_str("type", type));
} }
public void Delete(Json_nde args) { public void Delete(Json_nde args) {
String ctx = args.Get_as_str("ctx"); String ctx = args.Get_as_str("ctx");

View File

@ -25,7 +25,6 @@ public class Xog_bnd_mgr implements Gfo_invk {
private List_adp startup_itms = List_adp_.New(); private List_adp startup_itms = List_adp_.New();
private Ordered_hash regy = Ordered_hash_.New(); private Ordered_hash regy = Ordered_hash_.New();
public Xog_bnd_mgr(Xog_win_itm win) {this.win = win; invk_mgr = win.Gui_mgr().Cmd_mgr().Invk_mgr();} public Xog_bnd_mgr(Xog_win_itm win) {this.win = win; invk_mgr = win.Gui_mgr().Cmd_mgr().Invk_mgr();}
public Gfui_bnd_parser Bnd_parser() {if (bnd_parser == null) bnd_parser = Gfui_bnd_parser.new_en_(); return bnd_parser;} private Gfui_bnd_parser bnd_parser;
public int Len() {return regy.Count();} public int Len() {return regy.Count();}
public Xog_bnd_itm Get_at(int i) {return (Xog_bnd_itm)regy.Get_at(i);} public Xog_bnd_itm Get_at(int i) {return (Xog_bnd_itm)regy.Get_at(i);}
public Xog_bnd_itm Get_or_null(String v) {return (Xog_bnd_itm)regy.Get_by(v);} public Xog_bnd_itm Get_or_null(String v) {return (Xog_bnd_itm)regy.Get_by(v);}
@ -88,16 +87,12 @@ public class Xog_bnd_mgr implements Gfo_invk {
, "xowa.gui.shortcuts.xowa.gui.browser.url.focus-1" , "xowa.gui.shortcuts.xowa.gui.browser.url.focus-1"
, "xowa.gui.shortcuts.xowa.gui.browser.url.focus-2" , "xowa.gui.shortcuts.xowa.gui.browser.url.focus-2"
, "xowa.gui.shortcuts.xowa.gui.browser.url.exec-1" , "xowa.gui.shortcuts.xowa.gui.browser.url.exec-1"
, "xowa.gui.shortcuts.xowa.gui.browser.url.exec-2"
, "xowa.gui.shortcuts.xowa.gui.browser.url.exec_by_paste-1" , "xowa.gui.shortcuts.xowa.gui.browser.url.exec_by_paste-1"
, "xowa.gui.shortcuts.xowa.gui.browser.url.exec_by_paste-2" , "xowa.gui.shortcuts.xowa.gui.browser.url.exec_by_paste-2"
, "xowa.gui.shortcuts.xowa.gui.browser.url.exec_by_paste-3"
, "xowa.gui.shortcuts.xowa.gui.browser.url.exec_new_tab_by_paste-1" , "xowa.gui.shortcuts.xowa.gui.browser.url.exec_new_tab_by_paste-1"
, "xowa.gui.shortcuts.xowa.gui.browser.url.exec_new_tab_by_paste-2"
, "xowa.gui.shortcuts.xowa.gui.browser.url.restore-1" , "xowa.gui.shortcuts.xowa.gui.browser.url.restore-1"
, "xowa.gui.shortcuts.xowa.gui.browser.search.focus-1" , "xowa.gui.shortcuts.xowa.gui.browser.search.focus-1"
, "xowa.gui.shortcuts.xowa.gui.browser.search.exec-1" , "xowa.gui.shortcuts.xowa.gui.browser.search.exec-1"
, "xowa.gui.shortcuts.xowa.gui.browser.search.exec-2"
, "xowa.gui.shortcuts.xowa.gui.browser.html.focus-1" , "xowa.gui.shortcuts.xowa.gui.browser.html.focus-1"
, "xowa.gui.shortcuts.xowa.gui.browser.html.focus-2" , "xowa.gui.shortcuts.xowa.gui.browser.html.focus-2"
, "xowa.gui.shortcuts.xowa.gui.browser.html.focus-3" , "xowa.gui.shortcuts.xowa.gui.browser.html.focus-3"
@ -107,7 +102,6 @@ public class Xog_bnd_mgr implements Gfo_invk {
, "xowa.gui.shortcuts.xowa.gui.browser.find.show_by_paste-1" , "xowa.gui.shortcuts.xowa.gui.browser.find.show_by_paste-1"
, "xowa.gui.shortcuts.xowa.gui.browser.find.hide-1" , "xowa.gui.shortcuts.xowa.gui.browser.find.hide-1"
, "xowa.gui.shortcuts.xowa.gui.browser.find.exec-1" , "xowa.gui.shortcuts.xowa.gui.browser.find.exec-1"
, "xowa.gui.shortcuts.xowa.gui.browser.find.exec-2"
, "xowa.gui.shortcuts.xowa.gui.browser.find.find_fwd-1" , "xowa.gui.shortcuts.xowa.gui.browser.find.find_fwd-1"
, "xowa.gui.shortcuts.xowa.gui.browser.find.find_bwd-1" , "xowa.gui.shortcuts.xowa.gui.browser.find.find_bwd-1"
, "xowa.gui.shortcuts.xowa.gui.browser.find.case_toggle-1" , "xowa.gui.shortcuts.xowa.gui.browser.find.case_toggle-1"
@ -269,12 +263,12 @@ public class Xog_bnd_mgr implements Gfo_invk {
Init_itm(Xog_cmd_itm_.Key_gui_edit_dbg_html , Xog_bnd_box_.Tid_browser , "mod.c+key.e,mod.c+key.h"); Init_itm(Xog_cmd_itm_.Key_gui_edit_dbg_html , Xog_bnd_box_.Tid_browser , "mod.c+key.e,mod.c+key.h");
Init_itm(Xog_cmd_itm_.Key_gui_edit_exec , Xog_bnd_box_.Tid_browser , "mod.c+key.e,mod.c+key.g"); Init_itm(Xog_cmd_itm_.Key_gui_edit_exec , Xog_bnd_box_.Tid_browser , "mod.c+key.e,mod.c+key.g");
Init_itm(Xog_cmd_itm_.Key_gui_browser_url_focus , Xog_bnd_box_.Tid_browser , "mod.a+key.d", "mod.c+key.l"); Init_itm(Xog_cmd_itm_.Key_gui_browser_url_focus , Xog_bnd_box_.Tid_browser , "mod.a+key.d", "mod.c+key.l");
Init_itm(Xog_cmd_itm_.Key_gui_browser_url_exec , Xog_bnd_box_.Tid_browser_url , "key.enter", "key.keypad_enter"); Init_itm(Xog_cmd_itm_.Key_gui_browser_url_exec , Xog_bnd_box_.Tid_browser_url , "key.enter");
Init_itm(Xog_cmd_itm_.Key_gui_browser_url_exec_new_tab_by_paste , Xog_bnd_box_.Tid_browser_url , "mod.c+key.enter", "mod.c+key.keypad_enter"); Init_itm(Xog_cmd_itm_.Key_gui_browser_url_exec_new_tab_by_paste , Xog_bnd_box_.Tid_browser_url , "mod.c+key.enter");
Init_itm(Xog_cmd_itm_.Key_gui_browser_url_exec_by_paste , Xog_bnd_box_.Tid_browser_url , "mouse.middle", "mod.a+key.enter", "mod.a+key.keypad_enter"); Init_itm(Xog_cmd_itm_.Key_gui_browser_url_exec_by_paste , Xog_bnd_box_.Tid_browser_url , "mouse.middle", "mod.a+key.enter");
Init_itm(Xog_cmd_itm_.Key_gui_browser_url_restore , Xog_bnd_box_.Tid_browser_url , "mod.c+key.u"); Init_itm(Xog_cmd_itm_.Key_gui_browser_url_restore , Xog_bnd_box_.Tid_browser_url , "mod.c+key.u");
Init_itm(Xog_cmd_itm_.Key_gui_browser_search_focus , Xog_bnd_box_.Tid_browser , "mod.ca+key.s"); Init_itm(Xog_cmd_itm_.Key_gui_browser_search_focus , Xog_bnd_box_.Tid_browser , "mod.ca+key.s");
Init_itm(Xog_cmd_itm_.Key_gui_browser_search_exec , Xog_bnd_box_.Tid_browser_search , "key.enter", "key.keypad_enter"); Init_itm(Xog_cmd_itm_.Key_gui_browser_search_exec , Xog_bnd_box_.Tid_browser_search , "key.enter");
Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_dflt__at_dflt__focus_y , Xog_bnd_box_.Tid_browser , "mod.c+key.t"); Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_dflt__at_dflt__focus_y , Xog_bnd_box_.Tid_browser , "mod.c+key.t");
Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_n , Xog_bnd_box_.Tid_browser_html , "mouse.middle"); Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_n , Xog_bnd_box_.Tid_browser_html , "mouse.middle");
Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_href__at_dflt__focus_y , Xog_bnd_box_.Tid_browser , "mod.c+key.g,mod.c+key.f"); Init_itm(Xog_cmd_itm_.Key_gui_browser_tabs_new_href__at_dflt__focus_y , Xog_bnd_box_.Tid_browser , "mod.c+key.g,mod.c+key.f");
@ -305,7 +299,7 @@ public class Xog_bnd_mgr implements Gfo_invk {
Init_itm(Xog_cmd_itm_.Key_gui_browser_find_show , Xog_bnd_box_.Tid_browser , "mod.c+key.f"); Init_itm(Xog_cmd_itm_.Key_gui_browser_find_show , Xog_bnd_box_.Tid_browser , "mod.c+key.f");
Init_itm(Xog_cmd_itm_.Key_gui_browser_find_show_by_paste , Xog_bnd_box_.Tid_browser , ""); Init_itm(Xog_cmd_itm_.Key_gui_browser_find_show_by_paste , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_gui_browser_find_hide , Xog_bnd_box_.Tid_browser_find , "key.escape"); Init_itm(Xog_cmd_itm_.Key_gui_browser_find_hide , Xog_bnd_box_.Tid_browser_find , "key.escape");
Init_itm(Xog_cmd_itm_.Key_gui_browser_find_exec , Xog_bnd_box_.Tid_browser_find , "key.enter", "key.keypad_enter"); Init_itm(Xog_cmd_itm_.Key_gui_browser_find_exec , Xog_bnd_box_.Tid_browser_find , "key.enter");
Init_itm(Xog_cmd_itm_.Key_gui_browser_find_find_fwd , Xog_bnd_box_.Tid_browser_find , "mod.a+key.n"); Init_itm(Xog_cmd_itm_.Key_gui_browser_find_find_fwd , Xog_bnd_box_.Tid_browser_find , "mod.a+key.n");
Init_itm(Xog_cmd_itm_.Key_gui_browser_find_find_bwd , Xog_bnd_box_.Tid_browser_find , "mod.a+key.p"); Init_itm(Xog_cmd_itm_.Key_gui_browser_find_find_bwd , Xog_bnd_box_.Tid_browser_find , "mod.a+key.p");
Init_itm(Xog_cmd_itm_.Key_gui_browser_find_case_toggle , Xog_bnd_box_.Tid_browser_find , "mod.a+key.c"); Init_itm(Xog_cmd_itm_.Key_gui_browser_find_case_toggle , Xog_bnd_box_.Tid_browser_find , "mod.a+key.c");
@ -372,7 +366,8 @@ public class Xog_bnd_mgr implements Gfo_invk {
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (String_.Eq(k, Run__show_remap_win)) { if (String_.Eq(k, Run__show_remap_win)) {
Xog_bnd_win win = new Xog_bnd_win(); Xog_bnd_win win = new Xog_bnd_win();
win.Show(app, app.Gui_mgr().Kit(), app.Gui_mgr().Browser_win().Win_box(), this.Bnd_parser(), "", ""); String[] args = m.ReadStrAry("v", "\n");
win.Show(app, app.Gui_mgr().Kit(), app.Gui_mgr().Browser_win().Win_box(), args[0], args[1], args[2]);
} }
else { else {
String[] flds = gplx.xowa.addons.apps.cfgs.enums.Xoitm_gui_binding.To_ary(m.ReadStr("v")); String[] flds = gplx.xowa.addons.apps.cfgs.enums.Xoitm_gui_binding.To_ary(m.ReadStr("v"));

View File

@ -22,14 +22,15 @@ public class Xog_bnd_win implements Gfo_invk {
private GfuiWin win; private GfuiWin win;
private GfuiTextBox shortcut_txt, binding_txt, keycode_txt; private GfuiTextBox shortcut_txt, binding_txt, keycode_txt;
private GfuiBtn ok_btn, cxl_btn; private GfuiBtn ok_btn, cxl_btn;
private Gfui_bnd_parser bnd_parser; private Gfui_bnd_parser bnd_parser = Gfui_bnd_parser.new_en_();
private Xoa_app app; private Xoa_app app;
public void Show(Xoa_app app, Gfui_kit kit, GfuiWin owner_win, Gfui_bnd_parser bnd_parser, String shortcut_text, String binding_text) { private String key_text;
public void Show(Xoa_app app, Gfui_kit kit, GfuiWin owner_win, String key_text, String shortcut_text, String binding_text) {
this.app = app; this.app = app;
this.key_text = key_text;
// create controls // create controls
this.win = kit.New_win_utl("shortcut_win", owner_win); win.BackColor_(ColorAdp_.White).Size_(240, 140); this.win = kit.New_win_utl("shortcut_win", owner_win); win.BackColor_(ColorAdp_.White).Size_(240, 140);
this.bnd_parser = bnd_parser;
GfuiLbl shortcut_lbl = Make_lbl(kit, win, "shortcut_lbl" , "Shortcut:"); GfuiLbl shortcut_lbl = Make_lbl(kit, win, "shortcut_lbl" , "Shortcut:");
GfuiLbl binding_lbl = Make_lbl(kit, win, "binding_lbl" , "Binding:"); GfuiLbl binding_lbl = Make_lbl(kit, win, "binding_lbl" , "Binding:");
GfuiLbl keycode_lbl = Make_lbl(kit, win, "keycode_lbl" , "Keycode:"); GfuiLbl keycode_lbl = Make_lbl(kit, win, "keycode_lbl" , "Keycode:");
@ -38,17 +39,20 @@ public class Xog_bnd_win implements Gfo_invk {
this.keycode_txt = Make_txt(kit, win, "keycode_txt" , ""); this.keycode_txt = Make_txt(kit, win, "keycode_txt" , "");
this.ok_btn = Make_btn(kit, win, "ok_btn" , "Ok"); this.ok_btn = Make_btn(kit, win, "ok_btn" , "Ok");
this.cxl_btn = Make_btn(kit, win, "cxl_btn" , "Cancel"); this.cxl_btn = Make_btn(kit, win, "cxl_btn" , "Cancel");
// layout controls // layout controls
Layout( 0, shortcut_lbl , shortcut_txt); Layout( 0, shortcut_lbl , shortcut_txt);
Layout(20, binding_lbl , binding_txt); Layout(20, binding_lbl , binding_txt);
Layout(40, keycode_lbl , keycode_txt); Layout(40, keycode_lbl , keycode_txt);
ok_btn.Pos_(110, 70); cxl_btn.Pos_(150, 70); ok_btn.Pos_(110, 70); cxl_btn.Pos_(150, 70);
// hookup events // hookup events
IptCfg null_cfg = IptCfg_.Null; IptEventType btn_event_type = IptEventType_.add_(IptEventType_.MouseDown, IptEventType_.KeyDown); IptArg[] btn_args = IptArg_.Ary(IptMouseBtn_.Left, IptKey_.Enter, IptKey_.Space); IptCfg null_cfg = IptCfg_.Null; IptEventType btn_event_type = IptEventType_.add_(IptEventType_.MouseDown, IptEventType_.KeyDown); IptArg[] btn_args = IptArg_.Ary(IptMouseBtn_.Left, IptKey_.Enter, IptKey_.Space);
IptBnd_.ipt_to_(null_cfg , binding_txt , this, Invk_when_key_down , IptEventType_.KeyDown, IptArg_.Wildcard); IptBnd_.ipt_to_(null_cfg , binding_txt , this, Invk_when_key_down , IptEventType_.KeyDown, IptArg_.Wildcard);
IptBnd_.ipt_to_(null_cfg , binding_txt , this, Invk_when_key_up , IptEventType_.KeyUp, IptArg_.Wildcard); IptBnd_.ipt_to_(null_cfg , binding_txt , this, Invk_when_key_up , IptEventType_.KeyUp, IptArg_.Wildcard);
IptBnd_.ipt_to_(null_cfg , ok_btn , this, "when_ok" , btn_event_type, btn_args); IptBnd_.ipt_to_(null_cfg , ok_btn , this, "when_ok" , btn_event_type, btn_args);
IptBnd_.ipt_to_(null_cfg , cxl_btn , this, "when_cxl" , btn_event_type, btn_args); IptBnd_.ipt_to_(null_cfg , cxl_btn , this, "when_cxl" , btn_event_type, btn_args);
// open // open
win.Pos_(SizeAdp_.center_(ScreenAdp_.Primary.Size(), win.Size())); win.Pos_(SizeAdp_.center_(ScreenAdp_.Primary.Size(), win.Size()));
win.Show(); win.Show();
@ -86,7 +90,8 @@ public class Xog_bnd_win implements Gfo_invk {
else if (ctx.Match(k, Invk_when_key_press)) When_key_up(m); else if (ctx.Match(k, Invk_when_key_press)) When_key_up(m);
else if (ctx.Match(k, Invk_when_key_up)) When_key_up(m); else if (ctx.Match(k, Invk_when_key_up)) When_key_up(m);
else if (ctx.Match(k, Invk_when_ok)) { else if (ctx.Match(k, Invk_when_ok)) {
app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.gui_binding__remap_recv", gplx.core.gfobjs.Gfobj_nde.New().Add_str("bnd", binding_txt.Text())); app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.gui_binding__remap_recv"
, gplx.core.gfobjs.Gfobj_nde.New().Add_str("key", key_text).Add_str("bnd", binding_txt.Text()));
win.Close(); win.Close();
} }
else if (ctx.Match(k, Invk_when_cxl)) {win.Close();} else if (ctx.Match(k, Invk_when_cxl)) {win.Close();}