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

pull/620/head
gnosygnu 8 years ago
parent c3d4f520de
commit cdcb4eca89

@ -113,9 +113,9 @@ public class IptKey_ {
, Numpad_decimal = new_(KeyEvent.VK_DECIMAL, "numpad_decimal")
, 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
, 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
// , 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
, 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_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_enter
, IptKey_.Numpad_enter
);
}
return ui_str_hash;

@ -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:
val -= 32;
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;
//
// // 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_.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;
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;
// symbols; extended
// 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_ADD: val = IptKey_.Equal.Val(); break;
case SWT.KEYPAD_SUBTRACT: val = IptKey_.Minus.Val(); break;
case SWT.KEYPAD_DECIMAL: val = IptKey_.Period.Val(); break;
case SWT.KEYPAD_DIVIDE: val = IptKey_.Numpad_divide.Val(); break;
case SWT.KEYPAD_CR: val = IptKey_.Enter.Val(); break;
// function keys
case SWT.F1: val = IptKey_.F1.Val(); break;
case SWT.F2: val = IptKey_.F2.Val(); break;

@ -206,7 +206,6 @@ public class Gfui_bnd_parser {
Init_itm("key.tab", "Tab");
Init_itm("key.clear", "Clear");
Init_itm("key.enter", "Enter");
Init_itm("key.keypad_enter", "Keypad Enter");
Init_itm("key.shiftKey", "ShiftKey");
Init_itm("key.ctrlKey", "CtrlKey");
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_decimal", "Numpad Decimal");
Init_itm("key.numpad_divide", "Numpad Divide");
// Init_itm("key.numpad_enter", "Numpad Enter");
Init_itm("key.numpad_enter", "Numpad Enter");
return this;
}
private void Init_itm(String gfui, String norm) {Init_itm(Gfui_bnd_tkn.Tid_key, gfui, norm);}

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

@ -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.*;
import gplx.xowa.addons.apps.cfgs.enums.*;
import gplx.xowa.addons.apps.cfgs.mgrs.types.*;
import gplx.xowa.guis.bnds.*;
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) {
// 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;
// build html
bfr.Add_byte_nl();
switch (Xoitm_type_enum.To_uid(type)) {
case Xoitm_type_enum.Tid__bool:
bfr.Add_str_u8_fmt
@ -71,22 +73,42 @@ public class Xoedit_itm_html {
case Xoitm_type_enum.Tid__io_cmd:
String[] lines = Xocfg_mgr.Parse_io_cmd(String_.new_u8(val));
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"
, type, html_atrs, html_cls, key, lines[0]);
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]);
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));
// 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
( "<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]);
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
( "<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]);
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;
}
case Xoitm_type_enum.Tid__btn:
bfr.Add_str_u8_fmt
( "<button id=\"{3}\" data-xocfg-key=\"{3}\" data-xocfg-type=\"{0}\" class=\"xocfg__btn{2}\" {1}>{4}</button>"

@ -40,14 +40,18 @@ public class Xocfg_edit_svc {
try {
app.Cfg().Set_str(ctx, key, val);
} 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;
}
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_.Eq(type, "btn") && String_.Eq(grp.Dflt(), val)) {
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
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) {
String ctx = args.Get_as_str("ctx");

@ -25,7 +25,6 @@ public class Xog_bnd_mgr implements Gfo_invk {
private List_adp startup_itms = List_adp_.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 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 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);}
@ -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-2"
, "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-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-2"
, "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.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-2"
, "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.hide-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_bwd-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_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_exec , Xog_bnd_box_.Tid_browser_url , "key.enter", "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", "mod.c+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", "mod.a+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");
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_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_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");
@ -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_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_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_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");
@ -372,7 +366,8 @@ public class Xog_bnd_mgr implements Gfo_invk {
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (String_.Eq(k, Run__show_remap_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 {
String[] flds = gplx.xowa.addons.apps.cfgs.enums.Xoitm_gui_binding.To_ary(m.ReadStr("v"));

@ -22,14 +22,15 @@ public class Xog_bnd_win implements Gfo_invk {
private GfuiWin win;
private GfuiTextBox shortcut_txt, binding_txt, keycode_txt;
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;
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.key_text = key_text;
// create controls
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 binding_lbl = Make_lbl(kit, win, "binding_lbl" , "Binding:");
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.ok_btn = Make_btn(kit, win, "ok_btn" , "Ok");
this.cxl_btn = Make_btn(kit, win, "cxl_btn" , "Cancel");
// layout controls
Layout( 0, shortcut_lbl , shortcut_txt);
Layout(20, binding_lbl , binding_txt);
Layout(40, keycode_lbl , keycode_txt);
ok_btn.Pos_(110, 70); cxl_btn.Pos_(150, 70);
// 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);
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 , 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);
// open
win.Pos_(SizeAdp_.center_(ScreenAdp_.Primary.Size(), win.Size()));
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_up)) When_key_up(m);
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();
}
else if (ctx.Match(k, Invk_when_cxl)) {win.Close();}

Loading…
Cancel
Save