diff --git a/exec/xtrn_sec.js b/exec/xtrn_sec.js index e2dd5b6ef231cdd2313fb63bdad91eb54fb3d917..ab412942a4fb9c2a0580aebf6b0c7bf3d9489d73 100644 --- a/exec/xtrn_sec.js +++ b/exec/xtrn_sec.js @@ -121,12 +121,15 @@ function external_program_menu(xsec) if(options.clear_screen) console.clear(LIGHTGRAY); + var show_header = true; var secnum = xtrn_area.sec_list[xsec].number+1; var seccode = xtrn_area.sec_list[xsec].code; if(!bbs.menu("xtrn" + secnum + "_head", P_NOERROR) && !bbs.menu("xtrn" + seccode + "_head", P_NOERROR)) { - bbs.menu("xtrn_head", P_NOERROR); + show_header = !bbs.menu("xtrn_head", P_NOERROR); } + else + show_header = false; if(bbs.menu("xtrn" + secnum, P_NOERROR) || bbs.menu("xtrn" + seccode, P_NOERROR)) { if(!bbs.menu("xtrn" + secnum + "_tail", P_NOERROR) && !bbs.menu("xtrn" + seccode + "_tail", P_NOERROR)) { @@ -135,11 +138,14 @@ function external_program_menu(xsec) } else { var multicolumn = options.multicolumn && prog_list.length > options.singlecolumn_height; + var center = options.center && !multicolumn; + var margin = center ? format("%*s", (console.screen_columns * 0.25) - 1, "") : ""; if(options.sort) prog_list.sort(sort_by_name); - printf(options.header_fmt, xtrn_area.sec_list[xsec].name); + if(show_header) + write(margin, format(options.header_fmt, xtrn_area.sec_list[xsec].name)); if(options.titles.trimRight() != '') - write(options.titles); + write(margin, options.titles); if(multicolumn) { write(options.multicolumn_separator); if (options.titles.trimRight() != '') @@ -147,7 +153,7 @@ function external_program_menu(xsec) } if(options.underline.trimRight() != '') { console.crlf(); - write(options.underline); + write(margin, options.underline); } if(multicolumn) { write(options.multicolumn_separator); @@ -162,6 +168,7 @@ function external_program_menu(xsec) n=prog_list.length; for(i=0;i<n && !console.aborted;i++) { + write(margin); console.add_hotspot(i+1); printf(multicolumn ? options.multicolumn_fmt : options.singlecolumn_fmt ,i+1 @@ -185,7 +192,13 @@ function external_program_menu(xsec) bbs.menu("xtrn_tail", P_NOERROR); } bbs.node_sync(); - console.mnemonics(options.which); + if(margin) { + console.crlf(); + write(margin); + console.mnemonics(options.which.trimLeft()); + } + else + console.mnemonics(options.which); } system.node_list[bbs.node_num-1].aux=0; /* aux is 0, only if at menu */ bbs.node_action=NODE_XTRN;