diff --git a/exec/load/frame.js b/exec/load/frame.js index daa2240519770918fabafcbc323610e976e30aca..96615dfdc7b646d9bee1fbfa0c4005290a1c5d06 100644 --- a/exec/load/frame.js +++ b/exec/load/frame.js @@ -57,6 +57,8 @@ METHODS: frame.gotoxy(x,y) frame.pushxy() frame.popxy() + frame.drawBorder(color) //draw a border along the inside edge of the frame; see sbbsdefs.js for valid 'color' arguments + //'color' can be an array of colors (try it to see the effect) PROPERTIES: @@ -1210,6 +1212,43 @@ function Frame(x,y,width,height,attr,parent) { init.apply(this,arguments); } +Frame.prototype.drawBorder = function(color) { + var theColor = color; + if(Array.isArray(color)); + var sectionLength = Math.round(this.width / color.length); + this.pushxy(); + for(var y = 1; y <= this.height; y++) { + for(var x = 1; x <= this.width; x++) { + if(x > 1 && x < this.width && y > 1 && y < this.height) + continue; + var msg; + this.gotoxy(x, y); + if(y == 1 && x == 1) + msg = ascii(218); + else if(y == 1 && x == this.width) + msg = ascii(191); + else if(y == this.height && x == 1) + msg = ascii(192); + else if(y == this.height && x == this.width) + msg = ascii(217); + else if(x == 1 || x == this.width) + msg = ascii(179); + else + msg = ascii(196); + if(Array.isArray(color)) { + if(x == 1) + theColor = color[0]; + else if(x % sectionLength == 0 && x < this.width) + theColor = color[x / sectionLength]; + else if(x == this.width) + theColor = color[color.length - 1]; + } + this.putmsg(msg, theColor); + } + } + this.popxy(); +} + /* frame reference object */ function Canvas(frame,display) { this.frame = frame; @@ -1228,7 +1267,7 @@ function Canvas(frame,display) { return undefined; if(xpos >= this.frame.width || ypos >= this.frame.height) return undefined; - if(this.frame.transparent && this.frame.getData(xpos,ypos,true).ch == undefined) + if(this.frame.transparent && this.frame.getData(xpos,ypos).ch == undefined) return undefined; return true; }