SuperX-Kernmodul
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

132 lines
2.6 KiB

/*
DynAPI Distribution
Stacker Class
Created by Daniel Tiru (http://www.tiru.se)
The DynAPI Distribution is distributed under the terms of the GNU LGPL license.
*/
function Stacker(){
this.objects=[];
this.intSpace=5;
this.alignment='v';
};
var p = Stacker.prototype;
p.add=function(src){
this.objects[this.objects.length]=src;
me = this;
src.addEventListener({
onresize:function(e){
me.generate();
}
});
this.generate();
};
p.toString=function() {
return this.objects;
};
p.remove=function(src){
var i;
for (i = 0; i < this.objects.length; i++) {
if (src == this.objects[i]) {
this.objects.splice(i,1);
if (this.objects.length>0) {
this.firstObject=this.objects[0];
}
else {
this.firstObject=null;
}
}
}
};
p.setSpace = function(inint) {
this.intSpace = inint;
};
p.getSpace = function() {
return this.intSpace;
};
p.setAlignment = function(instr) {
if (instr=='h') {
this.alignment='h';
}
else {
this.alignment='v';
}
};
p.setPosition = function(x,y) {
if (x!=null &&y!=null) {
this.x=x;
this.y=y;
if (!this.firstObject&&this.objects.length!=0) {
this.firstObject=this.objects[0];
this.firstObject.setX(this.x);
this.firstObject.setY(this.y);
}
}
};
p.getX = function() {
return this.x;
};
p.getY = function() {
return this.y;
};
p.getFirstObject = function() {
return this.firstObject;
};
p.move = function(src,pos) {
var i;
if (src!=null&&pos!=null) {
for (i = 0; i < this.objects.length; i++) {
if (src == this.objects[i]) {
tmpPosFrom = i;
tmpPosDest = tmpPosFrom+pos;
}
}
if (tmpPosDest!=null) {
if (tmpPosDest>=0&&tmpPosDest<=this.objects.length) {
this.objects[tmpPosFrom] = this.objects[tmpPosDest];
this.objects[tmpPosDest] = src;
if (this.objects.length!=0&&this.y!=null&&this.x!=null) {
this.firstObject=this.objects[0];
this.firstObject.setX(this.x);
this.firstObject.setY(this.y);
}
}
}
}
};
p.generate = function() {
var i;
if (!this.firstObject&&this.objects.length!=0&&this.y!=null&&this.x!=null) {
this.firstObject=this.objects[0];
this.firstObject.setX(this.x);
this.firstObject.setY(this.y);
}
if (this.alignment=='v') {
for (i = 1; i < this.objects.length; i++)
{
this.objects[i].setY(this.objects[i-1].getY()+this.objects[i-1].getHeight()+this.intSpace);
this.objects[i].setX(this.objects[i-1].getX());
}
}
else {
for (i = 1; i < this.objects.length; i++)
{
this.objects[i].setX(this.objects[i-1].getX()+this.objects[i-1].getWidth()+this.intSpace);
this.objects[i].setY(this.objects[i-1].getY());
}
}
};