webxoss-client/ButtonList.js

50 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2016-10-23 07:28:51 +02:00
'use strict';
function ButtonList () {
createjs.Container.prototype.initialize.call(this);
this.changed = false;
this.buttons = [];
}
ButtonList.prototype = new createjs.Container();
ButtonList.prototype.constructor = ButtonList;
ButtonList.prototype.addButton = function (btn) {
this.changed = true;
this.buttons.push(btn);
this.addChild(btn);
};
ButtonList.prototype.setButtonPositions = function () {
var base = -this.buttons.length/2 + 0.5;
this.buttons.forEach(function (btn,i) {
btn.x = 0;
btn.y = (base + i)*btn.height;
});
};
ButtonList.prototype.removeButton = function (btn) {
removeFromArr(btn,this.buttons);
if (this.removeChild(btn)) this.changed = true;
};
ButtonList.prototype.removeAllButtons = function () {
if (!this.buttons.length) return;
this.changed = true;
this.buttons.length = 0;
this.removeAllChildren();
};
ButtonList.prototype.update = function () {
if (this.changed) {
this.setButtonPositions();
}
var changed = this.changed;
this.buttons.forEach(function (btn) {
if (btn.update()) changed = true;
});
this.changed = false;
return changed;
};