From ef68436ac04da078ffdcacd7e1f785473a303d45 Mon Sep 17 00:00:00 2001 From: Giulio Cesare Solaroli Date: Sun, 02 Oct 2011 23:56:18 +0000 Subject: First version of the newly restructured repository --- (limited to 'frontend/beta/js/YUI-extensions/layout/BorderLayoutRegions.js') diff --git a/frontend/beta/js/YUI-extensions/layout/BorderLayoutRegions.js b/frontend/beta/js/YUI-extensions/layout/BorderLayoutRegions.js new file mode 100644 index 0000000..9b4a09f --- a/dev/null +++ b/frontend/beta/js/YUI-extensions/layout/BorderLayoutRegions.js @@ -0,0 +1,207 @@ +/* + * These classes are private internal classes + */ +YAHOO.ext.CenterLayoutRegion = function(mgr, config){ + YAHOO.ext.CenterLayoutRegion.superclass.constructor.call(this, mgr, config, 'center'); + this.visible = true; + this.minWidth = config.minWidth || 20; + this.minHeight = config.minHeight || 20; +}; + +YAHOO.extendX(YAHOO.ext.CenterLayoutRegion, YAHOO.ext.LayoutRegion, { + hide : function(){ + // center panel can't be hidden + }, + + show : function(){ + // center panel can't be hidden + }, + + getMinWidth: function(){ + return this.minWidth; + }, + + getMinHeight: function(){ + return this.minHeight; + } +}); + + +YAHOO.ext.NorthLayoutRegion = function(mgr, config){ + YAHOO.ext.NorthLayoutRegion.superclass.constructor.call(this, mgr, config, 'north', 'n-resize'); + if(this.split){ + this.split.placement = YAHOO.ext.SplitBar.TOP; + this.split.orientation = YAHOO.ext.SplitBar.VERTICAL; + this.split.el.addClass('ylayout-split-v'); + } + if(typeof config.initialSize != 'undefined'){ + this.el.setHeight(config.initialSize); + } +}; +YAHOO.extendX(YAHOO.ext.NorthLayoutRegion, YAHOO.ext.SplitLayoutRegion, { + getBox : function(){ + if(this.collapsed){ + return this.collapsedEl.getBox(); + } + var box = this.el.getBox(); + if(this.split){ + box.height += this.split.el.getHeight(); + } + return box; + }, + + updateBox : function(box){ + if(this.split && !this.collapsed){ + box.height -= this.split.el.getHeight(); + this.split.el.setLeft(box.x); + this.split.el.setTop(box.y+box.height); + this.split.el.setWidth(box.width); + } + if(this.collapsed){ + this.el.setWidth(box.width); + var bodyWidth = box.width - this.el.getBorderWidth('rl'); + this.bodyEl.setWidth(bodyWidth); + if(this.activePanel && this.panelSize){ + this.activePanel.setSize(bodyWidth, this.panelSize.height); + } + } + YAHOO.ext.NorthLayoutRegion.superclass.updateBox.call(this, box); + } +}); + +YAHOO.ext.SouthLayoutRegion = function(mgr, config){ + YAHOO.ext.SouthLayoutRegion.superclass.constructor.call(this, mgr, config, 'south', 's-resize'); + if(this.split){ + this.split.placement = YAHOO.ext.SplitBar.BOTTOM; + this.split.orientation = YAHOO.ext.SplitBar.VERTICAL; + this.split.el.addClass('ylayout-split-v'); + } + if(typeof config.initialSize != 'undefined'){ + this.el.setHeight(config.initialSize); + } +}; +YAHOO.extendX(YAHOO.ext.SouthLayoutRegion, YAHOO.ext.SplitLayoutRegion, { + getBox : function(){ + if(this.collapsed){ + return this.collapsedEl.getBox(); + } + var box = this.el.getBox(); + if(this.split){ + var sh = this.split.el.getHeight(); + box.height += sh; + box.y -= sh; + } + return box; + }, + + updateBox : function(box){ + if(this.split && !this.collapsed){ + var sh = this.split.el.getHeight(); + box.height -= sh; + box.y += sh; + this.split.el.setLeft(box.x); + this.split.el.setTop(box.y-sh); + this.split.el.setWidth(box.width); + } + if(this.collapsed){ + this.el.setWidth(box.width); + var bodyWidth = box.width - this.el.getBorderWidth('rl'); + this.bodyEl.setWidth(bodyWidth); + if(this.activePanel && this.panelSize){ + this.activePanel.setSize(bodyWidth, this.panelSize.height); + } + } + YAHOO.ext.SouthLayoutRegion.superclass.updateBox.call(this, box); + } +}); + +YAHOO.ext.EastLayoutRegion = function(mgr, config){ + YAHOO.ext.EastLayoutRegion.superclass.constructor.call(this, mgr, config, 'east', 'e-resize'); + if(this.split){ + this.split.placement = YAHOO.ext.SplitBar.RIGHT; + this.split.orientation = YAHOO.ext.SplitBar.HORIZONTAL; + this.split.el.addClass('ylayout-split-h'); + } + if(typeof config.initialSize != 'undefined'){ + this.el.setWidth(config.initialSize); + } +}; +YAHOO.extendX(YAHOO.ext.EastLayoutRegion, YAHOO.ext.SplitLayoutRegion, { + getBox : function(){ + if(this.collapsed){ + return this.collapsedEl.getBox(); + } + var box = this.el.getBox(); + if(this.split){ + var sw = this.split.el.getWidth(); + box.width += sw; + box.x -= sw; + } + return box; + }, + + updateBox : function(box){ + if(this.split && !this.collapsed){ + var sw = this.split.el.getWidth(); + box.width -= sw; + this.split.el.setLeft(box.x); + this.split.el.setTop(box.y); + this.split.el.setHeight(box.height); + box.x += sw; + } + if(this.collapsed){ + this.el.setHeight(box.height); + var bodyHeight = this.config.titlebar ? box.height - (this.titleEl.getHeight()||0) : box.height; + bodyHeight -= this.el.getBorderWidth('tb'); + this.bodyEl.setHeight(bodyHeight); + if(this.activePanel && this.panelSize){ + this.activePanel.setSize(this.panelSize.width, bodyHeight); + } + } + YAHOO.ext.EastLayoutRegion.superclass.updateBox.call(this, box); + } +}); + +YAHOO.ext.WestLayoutRegion = function(mgr, config){ + YAHOO.ext.WestLayoutRegion.superclass.constructor.call(this, mgr, config, 'west', 'w-resize'); + if(this.split){ + this.split.placement = YAHOO.ext.SplitBar.LEFT; + this.split.orientation = YAHOO.ext.SplitBar.HORIZONTAL; + this.split.el.addClass('ylayout-split-h'); + } + if(typeof config.initialSize != 'undefined'){ + this.el.setWidth(config.initialSize); + } +}; +YAHOO.extendX(YAHOO.ext.WestLayoutRegion, YAHOO.ext.SplitLayoutRegion, { + getBox : function(){ + if(this.collapsed){ + return this.collapsedEl.getBox(); + } + var box = this.el.getBox(); + if(this.split){ + box.width += this.split.el.getWidth(); + } + return box; + }, + + updateBox : function(box){ + if(this.split && !this.collapsed){ + var sw = this.split.el.getWidth(); + box.width -= sw; + this.split.el.setLeft(box.x+box.width); + this.split.el.setTop(box.y); + this.split.el.setHeight(box.height); + } + if(this.collapsed){ + this.el.setHeight(box.height); + var bodyHeight = this.config.titlebar ? box.height - (this.titleEl.getHeight()||0) : box.height; + bodyHeight -= this.el.getBorderWidth('tb'); + this.bodyEl.setHeight(bodyHeight); + if(this.activePanel && this.panelSize){ + this.activePanel.setSize(this.panelSize.width, bodyHeight); + } + } + YAHOO.ext.WestLayoutRegion.superclass.updateBox.call(this, box); + } +}); -- cgit v0.9.0.2