*/
Roo.bootstrap.LayoutMasonry = function(config){
+
Roo.bootstrap.LayoutMasonry.superclass.constructor.call(this, config);
this.bricks = [];
+ Roo.bootstrap.LayoutMasonry.register(this);
+
this.addEvents({
// raw events
/**
/**
* @cfg {Number} alternativePadWidth padding below box..
*/
- alternativePadWidth : 50,
+ alternativePadWidth : 50,
+
+ selectedBrick : [],
getAutoCreate : function(){
+ var cfg = Roo.apply({}, Roo.bootstrap.LayoutMasonry.superclass.getAutoCreate.call(this));
+
var cfg = {
tag: this.tag,
cls: 'blog-masonary-wrapper ' + this.cls,
initial : function()
{
+ this.selectedBrick = [];
+
this.currentSize = this.el.getBox(true);
Roo.EventManager.onWindowResize(this.resize, this);
},
- addItem : function(cfg)
- {
- Roo.log('adding item!!!!!!!!!!!!!!!!!!!!!!!!!!');
- var brick = Roo.factory(cfg);
- brick.render(this.getChildContainer());
- },
-
resize : function()
{
var cs = this.el.getBox(true);
this.colWidth = boxWidth + avail - this.padWidth;
- this.unitWidth = Math.floor((this.colWidth - (this.gutter * 2)) / 3);
+ this.unitWidth = Math.round((this.colWidth - (this.gutter * 2)) / 3);
this.unitHeight = this.boxHeight > 0 ? this.boxHeight : this.unitWidth;
},
layoutItems : function( isInstant )
{
+ Roo.log(this.bricks);
+
var items = Roo.apply([], this.bricks);
if(this.isHorizontal){
height = Math.floor(this.unitHeight * (b.y - 1) + (this.gutter * (b.y - 2)) + b.el.getPadding('tb'));
}
- b.el.setWidth(width);
- b.el.setHeight(height);
+ if(!b.videourl || !b.videourl.length) {
+ b.el.setWidth(width);
+ b.el.setHeight(height);
+ }
+//
+// b.el.setWidth(width);
+// b.el.setHeight(height);
// iframe?
b.el.select('iframe',true).setSize(width,height);
return pos;
+ },
+
+ /**
+ * remove a Masonry Brick
+ * @param {Roo.bootstrap.MasonryBrick} the masonry brick to remove
+ */
+ removeBrick : function(brick_id)
+ {
+ if (!brick_id) {
+ return;
+ }
+
+ for (var i = 0; i<this.bricks.length; i++) {
+ if (this.bricks[i].id == brick_id) {
+ this.bricks.splice(i,1);
+ this.el.dom.removeChild(Roo.get(brick_id).dom);
+ this.initial();
+ }
+ }
+ },
+
+ /**
+ * adds a Masonry Brick
+ * @param {Roo.bootstrap.MasonryBrick} the masonry brick to add
+ */
+ addBrick : function(cfg)
+ {
+ var cn = new Roo.bootstrap.MasonryBrick(cfg);
+ //this.register(cn);
+ cn.parentId = this.id;
+ cn.render(this.el);
+ return cn;
+ },
+
+ /**
+ * register a Masonry Brick
+ * @param {Roo.bootstrap.MasonryBrick} the masonry brick to add
+ */
+
+ register : function(brick)
+ {
+ this.bricks.push(brick);
+ brick.masonryId = this.id;
+ },
+
+ /**
+ * clear all the Masonry Brick
+ */
+ clearAll : function()
+ {
+ this.bricks = [];
+ //this.getChildContainer().dom.innerHTML = "";
+ this.el.dom.innerHTML = '';
+ },
+
+ getSelected : function()
+ {
+ if (!this.selectedBrick) {
+ return false;
+ }
+
+ return this.selectedBrick;
}
+});
+
+Roo.apply(Roo.bootstrap.LayoutMasonry, {
+
+ groups: {},
+ /**
+ * register a Masonry Layout
+ * @param {Roo.bootstrap.LayoutMasonry} the masonry layout to add
+ */
+
+ register : function(layout)
+ {
+ this.groups[layout.id] = layout;
+ },
+ /**
+ * fetch a Masonry Layout based on the masonry layout ID
+ * @param {string} the masonry layout to add
+ * @returns {Roo.bootstrap.LayoutMasonry} the masonry layout
+ */
+
+ get: function(layout_id) {
+ if (typeof(this.groups[layout_id]) == 'undefined') {
+ return false;
+ }
+ return this.groups[layout_id] ;
+ }
+
+
});