[Qooxdoo-commit] qooxdoo/source/script/core QxDom.js,1.10.2.23,1.10.2.24
Brought to you by:
ecker,
martinwittemann
|
From: Sebastian W. <wp...@us...> - 2006-01-30 11:42:47
|
Update of /cvsroot/qooxdoo/qooxdoo/source/script/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17875/source/script/core Modified Files: Tag: renderer QxDom.js Log Message: Changed css fix handling again to apply CSS rules earlier Index: QxDom.js =================================================================== RCS file: /cvsroot/qooxdoo/qooxdoo/source/script/core/QxDom.js,v retrieving revision 1.10.2.23 retrieving revision 1.10.2.24 diff -u -d -r1.10.2.23 -r1.10.2.24 --- QxDom.js 16 Jan 2006 16:11:55 -0000 1.10.2.23 +++ QxDom.js 30 Jan 2006 11:42:40 -0000 1.10.2.24 @@ -947,11 +947,11 @@ QxDom.scrollIntoViewX = function(vElement, vAlignLeft) { var vParentWidth, vParentScrollLeft, vWidth, vHasScroll; - + var vParent = vElement.parentNode; var vOffset = vElement.offsetLeft; var vWidth = vElement.offsetWidth; - + while(vParent) { switch(QxDom.getComputedStyleProperty(vParent, QxConst.PROPERTY_OVERFLOW_BOTH)) @@ -959,30 +959,30 @@ case QxConst.OVERFLOW_VALUE_BOTH: case QxConst.OVERFLOW_VALUE_AUTO: case QxConst.OVERFLOW_VALUE_MOZ_HORIZONTAL: - vHasScroll = true; + vHasScroll = true; break; - + default: switch(QxDom.getComputedStyleProperty(vParent, QxConst.PROPERTY_OVERFLOW_HORIZONTAL)) { case QxConst.OVERFLOW_VALUE_BOTH: case QxConst.OVERFLOW_VALUE_AUTO: - vHasScroll = true; + vHasScroll = true; break; - + default: vHasScroll = false; }; }; - + // QxDebug("QxDom", "Scroll: " + vParent + " :: " + vHasScroll + " :: " + vOffset); - + if (vHasScroll) { - vParentWidth = vParent.clientWidth; - vParentScrollLeft = vParent.scrollLeft; - - if (vAlignLeft) + vParentWidth = vParent.clientWidth; + vParentScrollLeft = vParent.scrollLeft; + + if (vAlignLeft) { vParent.scrollLeft = vOffset; } @@ -990,15 +990,15 @@ { vParent.scrollLeft = vOffset + vWidth - vParentWidth; } - else if (vWidth > vParentWidth || vOffset < vParentScrollLeft) + else if (vWidth > vParentWidth || vOffset < vParentScrollLeft) { vParent.scrollLeft = vOffset; } - else if ((vOffset + vWidth) > (vParentScrollLeft + vParentWidth)) + else if ((vOffset + vWidth) > (vParentScrollLeft + vParentWidth)) { vParent.scrollLeft = vOffset + vWidth - vParentWidth; - }; - + }; + vOffset = vParent.offsetLeft; vWidth = vParent.offsetWidth; } @@ -1013,18 +1013,18 @@ vParent = vParent.parentNode; }; - + return true; }; QxDom.scrollIntoViewY = function(vElement, vAlignTop) { var vParentHeight, vParentScrollTop, vHeight, vHasScroll; - + var vParent = vElement.parentNode; var vOffset = vElement.offsetTop; var vHeight = vElement.offsetHeight; - + while(vParent) { switch(QxDom.getComputedStyleProperty(vParent, QxConst.PROPERTY_OVERFLOW_BOTH)) @@ -1032,30 +1032,30 @@ case QxConst.OVERFLOW_VALUE_BOTH: case QxConst.OVERFLOW_VALUE_AUTO: case QxConst.OVERFLOW_VALUE_MOZ_VERTICAL: - vHasScroll = true; + vHasScroll = true; break; - + default: switch(QxDom.getComputedStyleProperty(vParent, QxConst.PROPERTY_OVERFLOW_VERTICAL)) { case QxConst.OVERFLOW_VALUE_BOTH: case QxConst.OVERFLOW_VALUE_AUTO: - vHasScroll = true; + vHasScroll = true; break; - + default: vHasScroll = false; }; }; - + // QxDebug("QxDom", "Scroll: " + vParent + " :: " + vHasScroll + " :: " + vOffset); - + if (vHasScroll) { - vParentHeight = vParent.clientHeight; - vParentScrollTop = vParent.scrollTop; - - if (vAlignTop) + vParentHeight = vParent.clientHeight; + vParentScrollTop = vParent.scrollTop; + + if (vAlignTop) { vParent.scrollTop = vOffset; } @@ -1063,15 +1063,15 @@ { vParent.scrollTop = vOffset + vHeight - vParentHeight; } - else if (vHeight > vParentHeight || vOffset < vParentScrollTop) + else if (vHeight > vParentHeight || vOffset < vParentScrollTop) { vParent.scrollTop = vOffset; } - else if ((vOffset + vHeight) > (vParentScrollTop + vParentHeight)) + else if ((vOffset + vHeight) > (vParentScrollTop + vParentHeight)) { vParent.scrollTop = vOffset + vHeight - vParentHeight; - }; - + }; + vOffset = vParent.offsetTop; vHeight = vParent.offsetHeight; } @@ -1086,6 +1086,81 @@ vParent = vParent.parentNode; }; - + return true; }; + + + + + + +/* +--------------------------------------------------------------------------- + CSS API +--------------------------------------------------------------------------- +*/ + +if (QxClient.isMshtml()) +{ + QxDom.createStyleElement = function(vCssText) + { + var vSheet = document.createStyleSheet(); + + if (vCssText) { + vSheet.cssText = vCssText; + }; + + return vSheet; + }; + + QxDom.addCssRule = function(vSheet, vSelector, vStyle) { + vSheet.addRule(vSelector, vStyle); + }; + + QxDom.removeCssRule = function(vSheet, vSelector) + { + vRules = vSheet.rules; + vLength = vRules.length; + + for (i=vLength-1; i>=0; i--) + { + if (vRules[i].selectorText == vSelector) { + vSheet.removeRule(i); + }; + }; + }; +} +else +{ + QxDom.createStyleElement = function(vCssText) + { + vElement = document.createElement("STYLE"); + vElement.type = "text/css"; + + if (vCssText) { + vElement.appendChild(document.createTextNode(vCssText)); + }; + + document.getElementsByTagName("HEAD")[0].appendChild(vElement); + + return vElement.sheet; + }; + + QxDom.addCssRule = function(vSheet, vSelector, vStyle) { + vSheet.insertRule(vSelector + "{" + vStyle + "}", vSheet.cssRules.length); + }; + + QxDom.removeCssRule = function(vSheet, vSelector) + { + vRules = vSheet.cssRules; + vLength = rules.length; + + for (i=vLength-1; i>=0; i--) + { + if (vRules[i].selectorText == vSelector) { + vSheet.deleteRule(i); + }; + }; + }; +}; \ No newline at end of file |