122 lines
2.3 KiB
JavaScript
122 lines
2.3 KiB
JavaScript
|
load("ansiedit.js");
|
||
|
load('frame.js');
|
||
|
load('tree.js');
|
||
|
load('scrollbar.js');
|
||
|
load('event-timer.js');
|
||
|
load('graphic.js');
|
||
|
|
||
|
const sauce_lib = load({}, 'sauce_lib.js');
|
||
|
if (bbs.mods.avatar_lib) {
|
||
|
avatar_lib = bbs.mods.avatar_lib;
|
||
|
} else {
|
||
|
avatar_lib = load({}, 'avatar_lib.js');
|
||
|
}
|
||
|
|
||
|
var CONTROL_EDIT = '1';
|
||
|
|
||
|
function edit(fo) {
|
||
|
log(LOG_DEBUG,'+ Control EDIT loaded');
|
||
|
var complete = false;
|
||
|
|
||
|
Object.defineProperty(this,'getName', {
|
||
|
get: function() {
|
||
|
return 'Frame Edit';
|
||
|
}
|
||
|
});
|
||
|
|
||
|
Object.defineProperty(this,'isComplete', {
|
||
|
get: function() {
|
||
|
return complete;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
const frames = {
|
||
|
parent : null,
|
||
|
container : null,
|
||
|
highlight : null,
|
||
|
scrollbar : null
|
||
|
};
|
||
|
|
||
|
owner = '\1h\1RA\1GN\1BS\1YI\1n\1'+'7\1ktex\1'+'0\1n';
|
||
|
|
||
|
const frame = new Frame(1,1,console.screen_columns,console.screen_rows,BG_BLACK|LIGHTGRAY);
|
||
|
frame.gotoxy(1,1);
|
||
|
header = '\1n'+owner+' '.repeat(FRAME_HEADER-console.strlen(owner))+'\1n '+
|
||
|
'\1W\1H'+fo.page+' '.repeat(FRAME_PAGENUM-fo.page.length)+' '+
|
||
|
'\1G\1H'+' Edit';
|
||
|
frame.putmsg(header);
|
||
|
frame.open();
|
||
|
|
||
|
var ansiEdit = new ANSIEdit({
|
||
|
x: 1,
|
||
|
y: 2,
|
||
|
width: 80,
|
||
|
height: 23,
|
||
|
attr: WHITE,
|
||
|
//showPosition: true,
|
||
|
menuHeading: 'Frame Edit '+fo.page,
|
||
|
parentFrame: frame,
|
||
|
});
|
||
|
|
||
|
ansiEdit.open();
|
||
|
ansiEdit.menu.addItem('Save', _save);
|
||
|
ansiEdit.menu.addItem('Exit', on_exit);
|
||
|
ansiEdit.menu.addItem('Save & Exit', save_and_exit);
|
||
|
|
||
|
x = new Graphic;
|
||
|
x.ANSI = fo.content;
|
||
|
log(LOG_DEBUG,JSON.stringify(x));
|
||
|
|
||
|
const bin = x.BIN;
|
||
|
var o = 0; // offset into 'bin'
|
||
|
for (var yy = 0; yy < 22; yy++) {
|
||
|
for (var xx = 0; xx < 80; xx++) {
|
||
|
ansiEdit.putChar({
|
||
|
x : xx,
|
||
|
y : yy,
|
||
|
ch : bin.substr(o, 1),
|
||
|
attr : bin.substr(o + 1, 1).charCodeAt(0) || BG_BLACK
|
||
|
});
|
||
|
o = o + 2;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ansiEdit.cycle();
|
||
|
frame.cycle();
|
||
|
|
||
|
this.handle=function(read) {
|
||
|
if (! js.terminated && ascii(read) != 27) {
|
||
|
|
||
|
ansiEdit.getcmd(read);
|
||
|
ansiEdit.cycle();
|
||
|
frame.cycle();
|
||
|
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
ansiEdit.close();
|
||
|
frame.close();
|
||
|
complete = true;
|
||
|
console.clear(LIGHTGRAY);
|
||
|
console.putmsg(fo.render());
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
function _save() {
|
||
|
log(LOG_DEBUG, '+ FrameEdit save()');
|
||
|
}
|
||
|
|
||
|
function on_exit() {
|
||
|
log(LOG_DEBUG, '+ FrameEdit on_exit()');
|
||
|
complete = true;
|
||
|
console.clear(LIGHTGRAY);
|
||
|
console.putmsg(fo.render());
|
||
|
}
|
||
|
|
||
|
function save_and_exit() {
|
||
|
_save();
|
||
|
on_exit();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this;
|