X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/docs/source/Element.fx-more.html diff --git a/docs/source/Element.fx-more.html b/docs/source/Element.fx-more.html new file mode 100644 index 00000000..65c0c748 --- /dev/null +++ b/docs/source/Element.fx-more.html @@ -0,0 +1,155 @@ + + + The source code + + + + +
/**
+ * @class Ext.Element
+ */
+Ext.Element.addMethods(
+function(){
+    var VISIBILITY = "visibility",
+        DISPLAY = "display",
+        HIDDEN = "hidden",
+        NONE = "none",
+	    XMASKED = "x-masked",
+		XMASKEDRELATIVE = "x-masked-relative",
+        data = Ext.Element.data;
+		
+	return {
+		
/** + * Checks whether the element is currently visible using both visibility and display properties. + * @param {Boolean} deep (optional) True to walk the dom and see if parent elements are hidden (defaults to false) + * @return {Boolean} True if the element is currently visible, else false + */ + isVisible : function(deep) { + var vis = !this.isStyle(VISIBILITY,HIDDEN) && !this.isStyle(DISPLAY,NONE), + p = this.dom.parentNode; + if(deep !== true || !vis){ + return vis; + } + while(p && !/body/i.test(p.tagName)){ + if(!Ext.fly(p, '_isVisible').isVisible()){ + return false; + } + p = p.parentNode; + } + return true; + }, + +
/** + * Returns true if display is not "none" + * @return {Boolean} + */ + isDisplayed : function() { + return !this.isStyle(DISPLAY, NONE); + }, + +
/** + * Convenience method for setVisibilityMode(Element.DISPLAY) + * @param {String} display (optional) What to set display to when visible + * @return {Ext.Element} this + */ + enableDisplayMode : function(display){ + this.setVisibilityMode(Ext.Element.DISPLAY); + if(!Ext.isEmpty(display)){ + data(this.dom, 'originalDisplay', display); + } + return this; + }, + +
/** + * Puts a mask over this element to disable user interaction. Requires core.css. + * This method can only be applied to elements which accept child nodes. + * @param {String} msg (optional) A message to display in the mask + * @param {String} msgCls (optional) A css class to apply to the msg element + * @return {Element} The mask element + */ + mask : function(msg, msgCls){ + var me = this, + dom = me.dom, + dh = Ext.DomHelper, + EXTELMASKMSG = "ext-el-mask-msg", + el, + mask; + + if(me.getStyle("position") == "static"){ + me.addClass(XMASKEDRELATIVE); + } + if((el = data(dom, 'maskMsg'))){ + el.remove(); + } + if((el = data(dom, 'mask'))){ + el.remove(); + } + + mask = dh.append(dom, {cls : "ext-el-mask"}, true); + data(dom, 'mask', mask); + + me.addClass(XMASKED); + mask.setDisplayed(true); + if(typeof msg == 'string'){ + var mm = dh.append(dom, {cls : EXTELMASKMSG, cn:{tag:'div'}}, true); + data(dom, 'maskMsg', mm); + mm.dom.className = msgCls ? EXTELMASKMSG + " " + msgCls : EXTELMASKMSG; + mm.dom.firstChild.innerHTML = msg; + mm.setDisplayed(true); + mm.center(me); + } + if(Ext.isIE && !(Ext.isIE7 && Ext.isStrict) && me.getStyle('height') == 'auto'){ // ie will not expand full height automatically + mask.setSize(undefined, me.getHeight()); + } + return mask; + }, + +
/** + * Removes a previously applied mask. + */ + unmask : function(){ + var me = this, + dom = me.dom, + mask = data(dom, 'mask'), + maskMsg = data(dom, 'maskMsg'); + if(mask){ + if(maskMsg){ + maskMsg.remove(); + data(dom, 'maskMsg', undefined); + } + mask.remove(); + data(dom, 'mask', undefined); + } + me.removeClass([XMASKED, XMASKEDRELATIVE]); + }, + +
/** + * Returns true if this element is masked + * @return {Boolean} + */ + isMasked : function(){ + var m = data(this.dom, 'mask'); + return m && m.isVisible(); + }, + +
/** + * Creates an iframe shim for this element to keep selects and other windowed objects from + * showing through. + * @return {Ext.Element} The new shim element + */ + createShim : function(){ + var el = document.createElement('iframe'), + shim; + el.frameBorder = '0'; + el.className = 'ext-shim'; + if(Ext.isIE && Ext.isSecure){ + el.src = Ext.SSL_SECURE_URL; + } + shim = Ext.get(this.dom.parentNode.insertBefore(el, this.dom)); + shim.autoBoxAdjust = false; + return shim; + } + }; +}());
+ + \ No newline at end of file