diff --git a/exec/xtrn-setup.js b/exec/xtrn-setup.js index ac96beed90dd95b5d5fb64353a2a0ae53409a787..97caefeb5856985934e5381f03c5cd9a4fe19ef5 100644 --- a/exec/xtrn-setup.js +++ b/exec/xtrn-setup.js @@ -5,10 +5,20 @@ load('sbbsdefs.js'); load('frame.js'); load('tree.js'); +require("mouse_getkey.js", "mouse_getkey"); +const ansiterm = load({}, 'ansiterm_lib.js'); + +function mouse_enable(enable) { + if (!console.term_supports(USER_ANSI)) return; + ansiterm.send('mouse', enable ? 'set' : 'clear', 'normal_tracking'); +} + js.on_exit('console.attributes = ' + console.attributes); js.on_exit('bbs.sys_status = ' + bbs.sys_status); +js.on_exit('mouse_enable(false);'); bbs.sys_status|=SS_MOFF; +mouse_enable(true); const frame = new Frame(1, 1, console.screen_columns, console.screen_rows, BG_BLUE|WHITE); const main_frame = new Frame(1, 2, frame.width, frame.height - 2, BG_BLACK|LIGHTGRAY, frame); @@ -61,14 +71,15 @@ frame.open(); tree.open(); frame.cycle(); +var t; var key; var xtrn; console.ungetstr(KEY_UP); while (!js.terminated) { - key = console.getkey(); - if (key.toLowerCase() == 'q') break; - tree.getcmd(key); - if (key == KEY_UP || key == KEY_DOWN || key == KEY_HOME || key == KEY_END) { + key = mouse_getkey(K_NONE, undefined, true);//console.getkey(); + if (key.key.toLowerCase() == 'q') break; + t = tree.getcmd(key); + if ((key.mouse && t) || key.key == KEY_UP || key.key == KEY_DOWN || key.key == KEY_HOME || key.key == KEY_END) { xtrn = tree.currentItem.__xtrn_setup; info_frame.erase(' '); info_frame.putmsg('\x01h\x01w' + xtrn.Name + '\r\n');