// Copyright (c) 2016,17 Walter Bender
|
|
//
|
|
// This program is free software; you can redistribute it and/or
|
|
// modify it under the terms of the The GNU Affero General Public
|
|
// License as published by the Free Software Foundation; either
|
|
// version 3 of the License, or (at your option) any later version.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public
|
|
// License along with this library; if not, write to the Free Software
|
|
// Foundation, 51 Franklin Street, Suite 500 Boston, MA 02110-1335 USA
|
|
|
|
// The trashcan is an area at the bottom of the screen where stacks of
|
|
// blocks can be dragged. Once in the trash area, they are marked as
|
|
// trash and hidden. There is a menu button that can be used to
|
|
// restore trash.
|
|
requirejs(['activity/utils']);
|
|
|
|
var BOUNDARYWIDTH = 1200;
|
|
var BOUNDARYHEIGHT = 900;
|
|
|
|
function Boundary () {
|
|
this._stage = null;
|
|
this._container = null;
|
|
|
|
this.setStage = function (stage) {
|
|
this._stage = stage;
|
|
return this;
|
|
};
|
|
|
|
this.resizeEvent = function (scale) {
|
|
};
|
|
|
|
this.init = function () {
|
|
this._container = new createjs.Container();
|
|
this._stage.addChild(this._container);
|
|
this._stage.setChildIndex(this._container, 0);
|
|
};
|
|
|
|
this.setScale = function (w, h, scale) {
|
|
this.destroy();
|
|
this.create(w, h, scale);
|
|
};
|
|
|
|
this.destroy = function () {
|
|
if (this._container.children.length > 0) {
|
|
this._container.removeChild(this._container.children[0]);
|
|
}
|
|
};
|
|
|
|
this.offScreen = function (x, y) {
|
|
return (x < this.x || x > this.x + this.dx || y < this.y || y > this.y + this.dy);
|
|
};
|
|
|
|
this.create = function (w, h, scale) {
|
|
this.w = w / scale;
|
|
this.x = 55 + 13;
|
|
this.dx = this.w - (110 + 26);
|
|
|
|
this.h = h / scale;
|
|
this.y = 55 + 13;
|
|
this.dy = this.h - (55 + 26);
|
|
|
|
that = this;
|
|
|
|
function __makeBoundary() {
|
|
var img = new Image();
|
|
img.onload = function () {
|
|
bitmap = new createjs.Bitmap(img);
|
|
that._container.addChild(bitmap);
|
|
};
|
|
|
|
img.src = 'data:image/svg+xml;base64,' + window.btoa(
|
|
unescape(encodeURIComponent(BOUNDARY.replace('HEIGHT', that.h).replace('WIDTH', that.w).replace('Y', that.y).replace('X', that.x).replace('DY', that.dy).replace('DX', that.dx).replace('stroke_color', '#e08080'))));
|
|
};
|
|
|
|
__makeBoundary();
|
|
};
|
|
|
|
this.hide = function () {
|
|
this._container.visible = false;
|
|
};
|
|
|
|
this.show = function () {
|
|
this._container.visible = true;
|
|
};
|
|
};
|