summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout
diff options
context:
space:
mode:
Diffstat (limited to 'webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout')
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js297
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js488
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js426
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js300
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js863
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js442
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js183
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js100
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js866
9 files changed, 0 insertions, 3965 deletions
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js
deleted file mode 100644
index dec4297676..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js
+++ /dev/null
@@ -1,297 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.CanvasLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
- qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-
-
-/*!
- Global Structure:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-
-
- Inherits from qx.renderer.layout.LayoutImpl:
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [11] DISPOSER
-*/
-
-
-
-/*
----------------------------------------------------------------------------
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the box width of the given child
-*/
-qx.Proto.computeChildBoxWidth = function(vChild)
-{
- var vValue = null;
-
- if (vChild._computedLeftTypeNull || vChild._computedRightTypeNull)
- {
- vValue = vChild.getWidthValue();
- }
- else if (vChild._hasParent)
- {
- vValue = this.getWidget().getInnerWidth() - vChild.getLeftValue() - vChild.getRightValue();
- }
-
- return vValue || vChild._computeBoxWidthFallback();
-}
-
-/*!
- Compute and return the box height of the given child
-*/
-qx.Proto.computeChildBoxHeight = function(vChild)
-{
- var vValue = null;
-
- if (vChild._computedTopTypeNull || vChild._computedBottomTypeNull)
- {
- vValue = vChild.getHeightValue();
- }
- else if (vChild._hasParent)
- {
- vValue = this.getWidget().getInnerHeight() - vChild.getTopValue() - vChild.getBottomValue();
- }
-
- return vValue || vChild._computeBoxHeightFallback();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the needed width of the given child
-*/
-qx.Proto.computeChildNeededWidth = function(vChild)
-{
- var vLeft = vChild._computedLeftTypePercent ? null : vChild.getLeftValue();
- var vRight = vChild._computedRightTypePercent ? null : vChild.getRightValue();
- var vMinBox = vChild._computedMinWidthTypePercent ? null : vChild.getMinWidthValue();
- var vMaxBox = vChild._computedMaxWidthTypePercent ? null : vChild.getMaxWidthValue();
-
- if (vLeft != null && vRight != null)
- {
- var vBox = vChild.getPreferredBoxWidth() || 0;
- }
- else
- {
- var vBox = (vChild._computedWidthTypePercent ? null : vChild.getWidthValue()) || vChild.getPreferredBoxWidth() || 0;
- }
-
- return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vLeft + vRight + vChild.getMarginLeft() + vChild.getMarginRight();
-}
-
-/*!
- Compute and return the needed height of the given child
-*/
-qx.Proto.computeChildNeededHeight = function(vChild)
-{
- var vTop = vChild._computedTopTypePercent ? null : vChild.getTopValue();
- var vBottom = vChild._computedBottomTypePercent ? null : vChild.getBottomValue();
- var vMinBox = vChild._computedMinHeightTypePercent ? null : vChild.getMinHeightValue();
- var vMaxBox = vChild._computedMaxHeightTypePercent ? null : vChild.getMaxHeightValue();
-
- if (vTop != null && vBottom != null)
- {
- var vBox = vChild.getPreferredBoxHeight() || 0;
- }
- else
- {
- var vBox = (vChild._computedHeightTypePercent ? null : vChild.getHeightValue()) || vChild.getPreferredBoxHeight() || 0;
- }
-
- return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vTop + vBottom + vChild.getMarginTop() + vChild.getMarginBottom();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
- Actions that should be done if the inner width of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
- // this makes sure that both functions get executed before return
- var vUpdatePercent = vChild._recomputePercentX();
- var vUpdateRange = vChild._recomputeRangeX();
-
- return vUpdatePercent || vUpdateRange;
-}
-
-/*!
- Actions that should be done if the inner height of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
- // this makes sure that both functions get executed before return
- var vUpdatePercent = vChild._recomputePercentY();
- var vUpdateRange = vChild._recomputeRangeY();
-
- return vUpdatePercent || vUpdateRange;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- This is called from qx.ui.core.Widget and it's task is to apply the layout
- (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
- this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
- this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
-
- this.layoutChild_sizeLimitX(vChild, vJobs);
- this.layoutChild_sizeLimitY(vChild, vJobs);
-
- this.layoutChild_locationX(vChild, vJobs);
- this.layoutChild_locationY(vChild, vJobs);
-
- this.layoutChild_marginX(vChild, vJobs);
- this.layoutChild_marginY(vChild, vJobs);
-}
-
-if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera())
-{
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth || vJobs.left || vJobs.right)
- {
- if (vChild._computedMinWidthTypeNull && vChild._computedWidthTypeNull && vChild._computedMaxWidthTypeNull && !(!vChild._computedLeftTypeNull && !vChild._computedRightTypeNull))
- {
- vChild._resetRuntimeWidth();
- }
- else
- {
- vChild._applyRuntimeWidth(vChild.getBoxWidth());
- }
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight || vJobs.top || vJobs.bottom)
- {
- if (vChild._computedMinHeightTypeNull && vChild._computedHeightTypeNull && vChild._computedMaxHeightTypeNull && !(!vChild._computedTopTypeNull && !vChild._computedBottomTypeNull))
- {
- vChild._resetRuntimeHeight();
- }
- else
- {
- vChild._applyRuntimeHeight(vChild.getBoxHeight());
- }
- }
- }
-}
-else
-{
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width) {
- vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height) {
- vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
- }
- }
-}
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
-
- if (vJobs.initial || vJobs.left || vJobs.parentPaddingLeft) {
- vChild._computedLeftTypeNull ? vChild._computedRightTypeNull && vWidget.getPaddingLeft() > 0 ? vChild._applyRuntimeLeft(vWidget.getPaddingLeft()) : vChild._resetRuntimeLeft() : vChild._applyRuntimeLeft(vChild.getLeftValue() + vWidget.getPaddingLeft());
- }
-
- if (vJobs.initial || vJobs.right || vJobs.parentPaddingRight) {
- vChild._computedRightTypeNull ? vChild._computedLeftTypeNull && vWidget.getPaddingRight() > 0 ? vChild._applyRuntimeRight(vWidget.getPaddingRight()) : vChild._resetRuntimeRight() : vChild._applyRuntimeRight(vChild.getRightValue() + vWidget.getPaddingRight());
- }
-}
-
-qx.Proto.layoutChild_locationY = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
-
- if (vJobs.initial || vJobs.top || vJobs.parentPaddingTop) {
- vChild._computedTopTypeNull ? vChild._computedBottomTypeNull && vWidget.getPaddingTop() > 0 ? vChild._applyRuntimeTop(vWidget.getPaddingTop()) : vChild._resetRuntimeTop() : vChild._applyRuntimeTop(vChild.getTopValue() + vWidget.getPaddingTop());
- }
-
- if (vJobs.initial || vJobs.bottom || vJobs.parentPaddingBottom) {
- vChild._computedBottomTypeNull ? vChild._computedTopTypeNull && vWidget.getPaddingBottom() > 0 ? vChild._applyRuntimeBottom(vWidget.getPaddingBottom()) : vChild._resetRuntimeBottom() : vChild._applyRuntimeBottom(vChild.getBottomValue() + vWidget.getPaddingBottom());
- }
-}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js
deleted file mode 100644
index c948fca9b6..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js
+++ /dev/null
@@ -1,488 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.DockLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
- qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-
-/*!
- Global Structure:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-
-
- Inherits from qx.renderer.layout.LayoutImpl:
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [11] DISPOSER
-*/
-
-
-
-
-/*
----------------------------------------------------------------------------
- [00] ADDITIONAL GLOBAL DATA AND METHODS
----------------------------------------------------------------------------
-*/
-
-qx.renderer.layout.DockLayoutImpl.METHOD_LOCATION = "layoutChild_location_";
-
-qx.renderer.layout.DockLayoutImpl._childRanking = {
- vertical : function(c) { return c.getVerticalAlign() ? 1e6 : c.getHorizontalAlign() ? 2e6 : 3e6; },
- horizontal : function(c) { return c.getHorizontalAlign() ? 1e6 : c.getVerticalAlign() ? 2e6 : 3e6; },
- ordered : function(c) { return c.getHorizontalAlign() || c.getVerticalAlign() ? 1e6 : 2e6; }
-}
-
-qx.renderer.layout.DockLayoutImpl._childCheck =
-{
- common : function(vChild) {
- if (!(vChild._computedLeftTypeNull && vChild._computedRightTypeNull && vChild._computedTopTypeNull && vChild._computedBottomTypeNull)) {
- throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any location values for children: " + vChild + "!");
- }
- },
-
- horizontal : function(vChild)
- {
- if (!(vChild._computedMinHeightTypeNull && vChild._computedHeightTypeNull && vChild._computedMaxHeightTypeNull)) {
- throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any vertical dimension for 'horizontal' placed children: " + vChild + "!");
- }
- },
-
- vertical : function(vChild)
- {
- if (!(vChild._computedMinWidthTypeNull && vChild._computedWidthTypeNull && vChild._computedMaxWidthTypeNull)) {
- throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any horizontal dimension for 'vertical' placed children: " + vChild + "!");
- }
- },
-
- "default" : function(vChild)
- {
- qx.renderer.layout.DockLayoutImpl._childCheck.horizontal(vChild);
- qx.renderer.layout.DockLayoutImpl._childCheck.vertical(vChild);
- }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the box width of the given child
-*/
-qx.Proto.computeChildBoxWidth = function(vChild)
-{
- if (this.getChildAlignMode(vChild) == "horizontal") {
- return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
- }
-
- return this.getWidget().getInnerWidth() - this._lastLeft - this._lastRight;
-}
-
-/*!
- Compute and return the box height of the given child
-*/
-qx.Proto.computeChildBoxHeight = function(vChild)
-{
- if (this.getChildAlignMode(vChild) == "vertical") {
- return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
- }
-
- return this.getWidget().getInnerHeight() - this._lastTop - this._lastBottom;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
- Actions that should be done if the inner width of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
- vChild._recomputePercentX();
- vChild.addToLayoutChanges("location");
-
- // inform the caller if there were any notable changes occured
- return true;
-}
-
-/*!
- Actions that should be done if the inner height of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
- vChild._recomputePercentY();
- vChild.addToLayoutChanges("location");
-
- // inform the caller if there were any notable changes occured
- return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
-*/
-qx.Proto.updateSelfOnJobQueueFlush = qx.util.Return.returnFalse;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
- if (vQueue.mode || vQueue.addChild || vQueue.removeChild) {
- this.getWidget()._addChildrenToLayoutQueue("location");
- }
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- This method have full control of the order in which the
- registered (or also non-registered) children should be
- layouted on the horizontal axis.
-*/
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
- var vWidget=this.getWidget(), vChildren=vWidget.getVisibleChildren(), vChildrenLength=vChildren.length, vMode=vWidget.getMode();
-
- // reset layout
- this._lastLeft = this._lastRight = this._lastTop = this._lastBottom = 0;
-
- // sorting children
- var vRankImpl = qx.renderer.layout.DockLayoutImpl._childRanking[vMode];
- var vOrderedChildren = qx.lang.Array.copy(vChildren).sort(function(c1, c2) {
- return (vRankImpl(c1) + vChildren.indexOf(c1)) - (vRankImpl(c2) + vChildren.indexOf(c2));
- });
-
- // flushing children
- for (var i=0; i<vChildrenLength; i++) {
- vWidget._layoutChild(vOrderedChildren[i]);
- }
-}
-
-qx.Proto.getChildAlign = function(vChild) {
- return vChild.getVerticalAlign() || vChild.getHorizontalAlign() || "default";
-}
-
-qx.Proto.getChildAlignMode = function(vChild) {
- return vChild.getVerticalAlign() ? "vertical" : vChild.getHorizontalAlign() ? "horizontal" : "default";
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- This is called from qx.ui.core.Widget and it's task is to apply the layout
- (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
- qx.renderer.layout.DockLayoutImpl._childCheck.common(vChild);
- qx.renderer.layout.DockLayoutImpl._childCheck[this.getChildAlignMode(vChild)](vChild);
-
- this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
- this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
-
- this.layoutChild_sizeLimitX(vChild, vJobs);
- this.layoutChild_sizeLimitY(vChild, vJobs);
-
- this[qx.renderer.layout.DockLayoutImpl.METHOD_LOCATION + this.getChildAlign(vChild)](vChild, vJobs);
-}
-
-qx.Proto.layoutChild_location_top = function(vChild, vJobs)
-{
- vChild._applyRuntimeTop(this._lastTop);
- vChild._applyRuntimeLeft(this._lastLeft);
-
- this.layoutChild_location_horizontal(vChild);
-
- this._lastTop += vChild.getBoxHeight();
-}
-
-qx.Proto.layoutChild_location_left = function(vChild, vJobs)
-{
- vChild._applyRuntimeLeft(this._lastLeft);
- vChild._applyRuntimeTop(this._lastTop);
-
- this.layoutChild_location_vertical(vChild);
-
- this._lastLeft += vChild.getBoxWidth();
-}
-
-
-
-
-
-
-
-if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera())
-{
- qx.Proto._applyComputedWidth = function(vChild)
- {
- // direct recompute (need to be done, while layouting as the
- // _last* variable changes during layout process)
- vChild._recomputeBoxWidth();
-
- // wrong: simple invalidates are enough here
- // correct: needs recompute to inform children (to update centering for example)
- vChild._recomputeOuterWidth();
- vChild._recomputeInnerWidth();
-
- // apply calculated width
- vChild._applyRuntimeWidth(vChild.getBoxWidth());
- }
-
- qx.Proto._applyComputedHeight = function(vChild)
- {
- // direct recompute (need to be done, while layouting as the
- // _last* variable changes during layout process)
- vChild._recomputeBoxHeight();
-
- // wrong: simple invalidates are enough here
- // correct: needs recompute to inform children (to update centering for example)
- vChild._recomputeOuterHeight();
- vChild._recomputeInnerHeight();
-
- // apply calculated height
- vChild._applyRuntimeHeight(vChild.getBoxHeight());
- }
-
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- // We need to respect all dimension properties on the horizontal axis in internet explorer to set the 'width' style
- if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth) {
- vChild._computedWidthTypeNull && vChild._computedMinWidthTypeNull && vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getBoxWidth());
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- // We need to respect all dimension properties on the vertical axis in internet explorer to set the 'height' style
- if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight) {
- vChild._computedHeightTypeNull && vChild._computedMinHeightTypeNull && vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getBoxHeight());
- }
- }
-
- qx.Proto.layoutChild_location_horizontal = function(vChild) {
- this._applyComputedWidth(vChild);
- }
-
- qx.Proto.layoutChild_location_vertical = function(vChild) {
- this._applyComputedHeight(vChild);
- }
-
- qx.Proto.layoutChild_location_right = function(vChild, vJobs)
- {
- vChild._applyRuntimeLeft(this.getWidget().getInnerWidth() - this._lastRight - vChild.getBoxWidth());
- vChild._applyRuntimeTop(this._lastTop);
-
- this.layoutChild_location_vertical(vChild);
-
- this._lastRight += vChild.getBoxWidth();
- }
-
- qx.Proto.layoutChild_location_bottom = function(vChild, vJobs)
- {
- vChild._applyRuntimeTop(this.getWidget().getInnerHeight() - this._lastBottom - vChild.getBoxHeight());
- vChild._applyRuntimeLeft(this._lastLeft);
-
- this.layoutChild_location_horizontal(vChild);
-
- this._lastBottom += vChild.getBoxHeight();
- }
-
- qx.Proto.layoutChild_location_default = function(vChild, vJobs)
- {
- var vWidget = this.getWidget();
-
- vChild._resetRuntimeRight();
- vChild._resetRuntimeBottom();
-
- vChild._applyRuntimeTop(this._lastTop);
- vChild._applyRuntimeLeft(this._lastLeft);
-
- this._applyComputedWidth(vChild);
- this._applyComputedHeight(vChild);
- }
-}
-else
-{
- qx.Proto._applyComputedWidth = function(vChild)
- {
- // direct recompute (need to be done, while layouting as the
- // _last* variable changes during layout process)
- vChild._recomputeBoxWidth();
-
- // wrong: simple invalidates are enough here
- // correct: needs recompute to inform children (to update centering for example)
- vChild._recomputeOuterWidth();
- vChild._recomputeInnerWidth();
- }
-
- qx.Proto._applyComputedHeight = function(vChild)
- {
- // direct recompute (need to be done, while layouting as the
- // _last* variable changes during layout process)
- vChild._recomputeBoxHeight();
-
- // wrong: simple invalidates are enough here
- // correct: needs recompute to inform children (to update centering for example)
- vChild._recomputeOuterHeight();
- vChild._recomputeInnerHeight();
- }
-
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width) {
- vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height) {
- vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
- }
- }
-
- qx.Proto.layoutChild_location_horizontal = function(vChild)
- {
- this._applyComputedWidth(vChild);
- vChild._applyRuntimeRight(this._lastRight);
- }
-
- qx.Proto.layoutChild_location_vertical = function(vChild)
- {
- this._applyComputedHeight(vChild);
- vChild._applyRuntimeBottom(this._lastBottom);
- }
-
- qx.Proto.layoutChild_location_right = function(vChild, vJobs)
- {
- vChild._applyRuntimeRight(this._lastRight);
- vChild._applyRuntimeTop(this._lastTop);
-
- this.layoutChild_location_vertical(vChild);
-
- this._lastRight += vChild.getBoxWidth();
- }
-
- qx.Proto.layoutChild_location_bottom = function(vChild, vJobs)
- {
- vChild._applyRuntimeBottom(this._lastBottom);
- vChild._applyRuntimeLeft(this._lastLeft);
-
- this.layoutChild_location_horizontal(vChild);
-
- this._lastBottom += vChild.getBoxHeight();
- }
-
- qx.Proto.layoutChild_location_default = function(vChild, vJobs)
- {
- vChild._resetRuntimeWidth();
- vChild._resetRuntimeHeight();
-
- vChild._applyRuntimeTop(this._lastTop);
- vChild._applyRuntimeRight(this._lastRight);
- vChild._applyRuntimeBottom(this._lastBottom);
- vChild._applyRuntimeLeft(this._lastLeft);
-
- this._applyComputedWidth(vChild);
- this._applyComputedHeight(vChild);
- }
-}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js
deleted file mode 100644
index cd11e3dd86..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js
+++ /dev/null
@@ -1,426 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.FlowLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
- qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-qx.renderer.layout.FlowLayoutImpl.STR_FIRST = "getFirstVisibleChild";
-qx.renderer.layout.FlowLayoutImpl.STR_LAST = "getLastVisibleChild";
-qx.renderer.layout.FlowLayoutImpl.STR_NEXT = "getNextSibling";
-qx.renderer.layout.FlowLayoutImpl.STR_PREVIOUS = "getPreviousSibling";
-
-
-/*!
- Global Structure:
-
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-
- Inherits from qx.renderer.layout.LayoutImpl:
-
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [11] DISPOSER
-*/
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the width needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededWidth = function()
-{
- var w = this.getWidget();
- return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededWidth_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getHorizontalSpacing());
-}
-
-/*!
- Calculate the layout to get the needed height of the children
-*/
-qx.Proto.computeChildrenNeededHeight = function()
-{
- var vWidget = this.getWidget();
-
- var vInnerWidth = vWidget.getInnerWidth();
-
- var vHorizontalSpacing = vWidget.getHorizontalSpacing();
- var vVerticalSpacing = vWidget.getVerticalSpacing();
- var vReversed = vWidget.getReverseChildrenOrder();
-
- var vRowWidth = 0;
- var vRowHeight = 0;
-
- var vRowHeightSum = 0;
-
- for (var i=0, ch=vWidget.getVisibleChildren(), chl=ch.length, chc; i<chl; i++)
- {
- chc = vReversed ? ch[chl-1-i] : ch[i];
-
- vRowWidth += chc.getNeededWidth();
-
- if (vRowWidth > vInnerWidth)
- {
- vRowHeightSum += vRowHeight + vVerticalSpacing;
- vRowWidth = chc.getNeededWidth();
- vRowHeight = chc.getNeededHeight();
- }
- else
- {
- vRowHeight = Math.max(vRowHeight, chc.getNeededHeight());
- }
-
- vRowWidth += vHorizontalSpacing;
- }
-
- return vRowHeightSum + vRowHeight;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
- Things to do and layout when any of the childs changes it's outer width.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
-{
- // If a child only change it's width also recompute the height
- // as the layout flows around here
- //this.getWidget()._recomputeNeededHeightHelper();
- this.getWidget()._invalidatePreferredInnerHeight();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
- Actions that should be done if the inner width of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
- vChild._recomputePercentX();
- vChild.addToLayoutChanges("location");
-
- return true;
-}
-
-/*!
- Actions that should be done if the inner height of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
- vChild._recomputePercentY();
- vChild.addToLayoutChanges("location");
-
- return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
- if (vQueue.horizontalSpacing || vQueue.verticalSpacing || vQueue.reverseChildrenOrder || vQueue.horizontalChildrenAlign || vQueue.verticalChildrenAlign) {
- this.getWidget()._addChildrenToLayoutQueue("location");
- }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
- This method combines calls of methods which should be done if a widget should be removed from the current layout.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
-{
- var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
-
- if (w.getReverseChildrenOrder())
- {
- while((chc=ch[++i]) && i<vIndex) {
- chc.addToLayoutChanges("location");
- }
- }
- else
- {
- i+=vIndex;
- while(chc=ch[++i]) {
- chc.addToLayoutChanges("location");
- }
- }
-}
-
-/*!
- This method combines calls of methods which should be done if a child should be moved
- inside the same parent to a new positions.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
-{
- for (var i=Math.min(vIndex, vOldIndex), ch=this.getWidget().getVisibleChildren(), l=ch.length; i<l; i++) {
- ch[i].addToLayoutChanges("location");
- }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- This method have full control of the order in which the
- registered (or also non-registered) children should be
- layouted on the horizontal axis.
-*/
-
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
- var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, chh;
-
- if (w.getReverseChildrenOrder())
- {
- // layout all childs from the first child
- // with an own layout request to the end
- var i=chl, changed=false;
- while(chc=ch[--i])
- {
- chh = chc.toHashCode();
-
- if (changed || vChildrenQueue[chh])
- {
- w._layoutChild(chc);
- changed = true;
- }
- }
- }
- else
- {
- // layout all childs from the first child
- // with an own layout request to the end
- var i=-1, changed=false;
- while(chc=ch[++i])
- {
- chh = chc.toHashCode();
-
- if (changed || vChildrenQueue[chh])
- {
- w._layoutChild(chc);
- changed = true;
- }
- }
- }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
- this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
- this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
-
- this.layoutChild_sizeLimitX(vChild, vJobs);
- this.layoutChild_sizeLimitY(vChild, vJobs);
-
- this.layoutChild_marginX(vChild, vJobs);
- this.layoutChild_marginY(vChild, vJobs);
-
- this.layoutChild_location(vChild, vJobs);
-}
-
-if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera())
-{
- /*!
- We need to respect all dimension properties on the horizontal axis in
- internet explorer to set the 'width' style
- */
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth) {
- vChild._computedWidthTypeNull && vChild._computedMinWidthTypeNull && vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getBoxWidth());
- }
- }
-
- /*!
- We need to respect all dimension properties on the vertical axis in
- internet explorer to set the 'height' style
- */
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight) {
- vChild._computedHeightTypeNull && vChild._computedMinHeightTypeNull && vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getBoxHeight());
- }
- }
-}
-else
-{
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width) {
- vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height) {
- vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
- }
- }
-}
-
-qx.Proto.layoutChild_location = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
- var vReverse = vWidget.getReverseChildrenOrder();
-
- var vMethodBegin = vReverse ? qx.renderer.layout.FlowLayoutImpl.STR_LAST : qx.renderer.layout.FlowLayoutImpl.STR_FIRST;
- var vMethodContinue = vReverse ? qx.renderer.layout.FlowLayoutImpl.STR_NEXT : qx.renderer.layout.FlowLayoutImpl.STR_PREVIOUS;
-
- if (vChild == vWidget[vMethodBegin]())
- {
- vChild._cachedLocationHorizontal = vChild._cachedLocationVertical = vChild._cachedRow = 0;
- }
- else
- {
- var vTempChild = vChild[vMethodContinue]();
-
- // stupidly update cache value (check them later)
- vChild._cachedLocationHorizontal = vTempChild._cachedLocationHorizontal + vTempChild.getOuterWidth() + vWidget.getHorizontalSpacing();
- vChild._cachedLocationVertical = vTempChild._cachedLocationVertical;
- vChild._cachedRow = vTempChild._cachedRow;
-
- // check now
- if ((vChild._cachedLocationHorizontal + vChild.getOuterWidth()) > vWidget.getInnerWidth())
- {
- // evaluate width of previous row
- vRowMax = vTempChild.getOuterHeight();
- while((vTempChild = vTempChild[vMethodContinue]()) && vTempChild._cachedRow == vChild._cachedRow) {
- vRowMax = Math.max(vRowMax, vTempChild.getOuterHeight());
- }
-
- // switch to new row
- vChild._cachedLocationHorizontal = 0;
- vChild._cachedLocationVertical += vWidget.getVerticalSpacing() + vRowMax;
- vChild._cachedRow++;
- }
- }
-
- // add margins and parent padding
- if (vWidget.getHorizontalChildrenAlign() == "right")
- {
- vChild._resetRuntimeLeft();
- vChild._applyRuntimeRight(vWidget.getPaddingRight() + vChild._cachedLocationHorizontal);
- }
- else
- {
- vChild._resetRuntimeRight();
- vChild._applyRuntimeLeft(vWidget.getPaddingLeft() + vChild._cachedLocationHorizontal);
- }
-
- if (vWidget.getVerticalChildrenAlign() == "bottom")
- {
- vChild._resetRuntimeTop();
- vChild._applyRuntimeBottom(vWidget.getPaddingBottom() + vChild._cachedLocationVertical);
- }
- else
- {
- vChild._resetRuntimeBottom();
- vChild._applyRuntimeTop(vWidget.getPaddingTop() + vChild._cachedLocationVertical);
- }
-}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js
deleted file mode 100644
index ecb8c899a7..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js
+++ /dev/null
@@ -1,300 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.GridLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
- qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-
-
-
-/*!
- Global Structure:
-
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-
- Inherits from qx.renderer.layout.LayoutImpl:
-
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [11] DISPOSER
-*/
-
-
-
-/*
----------------------------------------------------------------------------
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the box width of the given child.
-*/
-qx.Proto.computeChildBoxWidth = function(vChild)
-{
- var vWidget = this.getWidget();
- var vColWidth = vWidget.getColumnInnerWidth(vChild._col, vChild._row);
-
- // extend colwidth to spanned area
- if (vWidget.isSpanStart(vChild._col, vChild._row))
- {
- var vEntry = vWidget.getSpanEntry(vChild._col, vChild._row);
- for (var i=1; i<vEntry.colLength; i++)
- {
- // right padding from the previous cell
- vColWidth += vWidget.getComputedCellPaddingRight(vChild._col + i - 1, vChild._row);
-
- // left padding from the current cell
- vColWidth += vWidget.getComputedCellPaddingLeft(vChild._col + i, vChild._row);
-
- // spacing between previous and current cell
- vColWidth += vWidget.getHorizontalSpacing();
-
- // inner width of the current cell plus
- vColWidth += vWidget.getColumnInnerWidth(vChild._col + i, vChild._row);
- }
- }
-
- return vChild.getAllowStretchX() ? vColWidth : Math.min(vChild.getWidthValue(), vColWidth);
-}
-
-/*!
- Compute and return the box height of the given child.
-*/
-qx.Proto.computeChildBoxHeight = function(vChild)
-{
- var vWidget = this.getWidget();
- var vRowHeight = vWidget.getRowInnerHeight(vChild._col, vChild._row);
-
- // extend colwidth to spanned area
- if (vWidget.isSpanStart(vChild._col, vChild._row))
- {
- var vEntry = vWidget.getSpanEntry(vChild._col, vChild._row);
- for (var i=1; i<vEntry.rowLength; i++)
- {
- // right padding from the previous cell
- vRowHeight += vWidget.getComputedCellPaddingBottom(vChild._col, vChild._row + i - 1);
-
- // left padding from the current cell
- vRowHeight += vWidget.getComputedCellPaddingTop(vChild._col, vChild._row + i);
-
- // spacing between previous and current cell
- vRowHeight += vWidget.getVerticalSpacing();
-
- // inner width of the current cell plus
- vRowHeight += vWidget.getRowInnerHeight(vChild._col, vChild._row + i);
- }
- }
-
- return vChild.getAllowStretchY() ? vRowHeight : Math.min(vChild.getHeightValue(), vRowHeight);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the width needed by all children of this widget
- which is in a grid layout the width used by all columns.
-*/
-qx.Proto.computeChildrenNeededWidth = function()
-{
- var vWidget = this.getWidget();
- var vSpacingX = vWidget.getHorizontalSpacing();
- var vSum = -vSpacingX;
-
- for (var i=0, l=vWidget.getColumnCount(); i<l; i++) {
- vSum += vWidget.getColumnBoxWidth(i) + vSpacingX;
- }
-
- return vSum;
-}
-
-/*!
- Compute and return the height needed by all children of this widget
- which is in a grid layout the height used by all rows.
-*/
-qx.Proto.computeChildrenNeededHeight = function()
-{
- var vWidget = this.getWidget();
- var vSpacingY = vWidget.getVerticalSpacing();
- var vSum = -vSpacingY;
-
- for (var i=0, l=vWidget.getRowCount(); i<l; i++) {
- vSum += vWidget.getRowBoxHeight(i) + vSpacingY;
- }
-
- return vSum;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
- Actions that should be done if the inner width of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
- vChild._recomputePercentX();
- vChild.addToLayoutChanges("locationX");
-
- return true;
-}
-
-/*!
- Actions that should be done if the inner height of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
- vChild._recomputePercentY();
- vChild.addToLayoutChanges("locationY");
-
- return true;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- This is called from qx.ui.core.Widget and it's task is to apply the layout
- (excluding border and padding) to the child.
-*/
-
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
-
- this.layoutChild_sizeX(vChild, vJobs);
- this.layoutChild_sizeY(vChild, vJobs);
-
- this.layoutChild_sizeLimitX(vChild, vJobs);
- this.layoutChild_sizeLimitY(vChild, vJobs);
-
- this.layoutChild_marginX(vChild, vJobs);
- this.layoutChild_marginY(vChild, vJobs);
-
- this.layoutChild_locationX(vChild, vJobs);
- this.layoutChild_locationY(vChild, vJobs);
-}
-
-qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-{
- vChild._applyRuntimeWidth(vChild.getBoxWidth());
-}
-
-qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-{
- vChild._applyRuntimeHeight(vChild.getBoxHeight());
-}
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
- var vSpacingX = vWidget.getHorizontalSpacing();
- var vLocSumX = vWidget.getPaddingLeft() + vWidget.getComputedCellPaddingLeft(vChild._col, vChild._row);
-
- for (var i=0; i<vChild._col; i++) {
- vLocSumX += vWidget.getColumnBoxWidth(i) + vSpacingX;
- }
-
- switch(vChild.getHorizontalAlign() || vWidget.getColumnHorizontalAlignment(vChild._col) || vWidget.getRowHorizontalAlignment(vChild._row) || vWidget.getHorizontalChildrenAlign())
- {
- case "center":
- vLocSumX += Math.round((vWidget.getColumnInnerWidth(vChild._col, vChild._row) - vChild.getBoxWidth()) / 2);
- break;
-
- case "right":
- vLocSumX += vWidget.getColumnInnerWidth(vChild._col, vChild._row) - vChild.getBoxWidth();
- break;
- }
-
- vChild._applyRuntimeLeft(vLocSumX);
-}
-
-qx.Proto.layoutChild_locationY = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
- var vSpacingY = vWidget.getVerticalSpacing();
- var vLocSumY = vWidget.getPaddingTop() + vWidget.getComputedCellPaddingTop(vChild._col, vChild._row);
-
- for (var i=0; i<vChild._row; i++) {
- vLocSumY += vWidget.getRowBoxHeight(i) + vSpacingY;
- }
-
- switch(vChild.getVerticalAlign() || vWidget.getRowVerticalAlignment(vChild._row) || vWidget.getColumnVerticalAlignment(vChild._col) || vWidget.getVerticalChildrenAlign())
- {
- case "middle":
- vLocSumY += Math.round((vWidget.getRowInnerHeight(vChild._col, vChild._row) - vChild.getBoxHeight()) / 2);
- break;
-
- case "bottom":
- vLocSumY += vWidget.getRowInnerHeight(vChild._col, vChild._row) - vChild.getBoxHeight();
- break;
- }
-
- vChild._applyRuntimeTop(vLocSumY);
-} \ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js
deleted file mode 100644
index 6276f309bc..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js
+++ /dev/null
@@ -1,863 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.HorizontalBoxLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
- qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-qx.OO.addProperty({ name : "enableFlexSupport", type : "boolean", defaultValue : true });
-
-/*!
- Global Structure:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-
-
- Inherits from qx.renderer.layout.LayoutImpl:
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [11] DISPOSER
-*/
-
-
-
-
-/*
----------------------------------------------------------------------------
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the box width of the given child.
-*/
-qx.Proto.computeChildBoxWidth = function(vChild) {
- return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
-}
-
-/*!
- Compute and return the box height of the given child.
-*/
-qx.Proto.computeChildBoxHeight = function(vChild)
-{
- if (this.getWidget().getStretchChildrenOrthogonalAxis() && vChild._computedHeightTypeNull && vChild.getAllowStretchY()) {
- return this.getWidget().getInnerHeight();
- }
-
- return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
-}
-
-/*!
- Computes the width of all flexible children.
-*/
-qx.Proto.computeChildrenFlexWidth = function()
-{
- if (this._childrenFlexWidthComputed || !this.getEnableFlexSupport()) {
- return;
- }
-
- this._childrenFlexWidthComputed = true;
-
- // this.debug("computeChildrenFlexWidth");
-
- var vWidget = this.getWidget();
- var vChildren = vWidget.getVisibleChildren();
- var vChildrenLength = vChildren.length;
- var vCurrentChild;
- var vFlexibleChildren = [];
- var vAvailWidth = vWidget.getInnerWidth();
- var vUsedWidth = vWidget.getSpacing() * (vChildrenLength-1);
- var vIterator;
-
-
- // *************************************************************
- // 1. Compute the sum of all static sized children and finding
- // all flexible children.
- // *************************************************************
- for (vIterator=0; vIterator<vChildrenLength; vIterator++)
- {
- vCurrentChild = vChildren[vIterator];
-
- if (vCurrentChild._computedWidthTypeFlex)
- {
- vFlexibleChildren.push(vCurrentChild);
-
- if (vWidget._computedWidthTypeAuto) {
- vUsedWidth += vCurrentChild.getPreferredBoxWidth();
- }
- }
- else
- {
- vUsedWidth += vCurrentChild.getOuterWidth();
- }
- }
-
- // this.debug("Width: " + vUsedWidth + "/" + vAvailWidth);
- // this.debug("Flexible Count: " + vFlexibleChildren.length);
-
-
- // *************************************************************
- // 2. Compute the sum of all flexible children widths
- // *************************************************************
- var vRemainingWidth = vAvailWidth - vUsedWidth;
- var vFlexibleChildrenLength = vFlexibleChildren.length;
- var vPrioritySum = 0;
-
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++) {
- vPrioritySum += vFlexibleChildren[vIterator]._computedWidthParsed;
- }
-
-
- // *************************************************************
- // 3. Calculating the size of each 'part'.
- // *************************************************************
- var vPartWidth = vRemainingWidth / vPrioritySum;
-
-
- if (!vWidget.getUseAdvancedFlexAllocation())
- {
- // *************************************************************
- // 4a. Computing the flex width value of each flexible child
- // and add the width to the usedWidth, so that we can
- // fix rounding problems later.
- // *************************************************************
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
-
- vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthParsed * vPartWidth);
- vUsedWidth += vCurrentChild._computedWidthFlexValue;
- }
- }
- else
- {
- // *************************************************************
- // 4b. Calculating the diff. Which means respect the min/max
- // width configuration in flex and store the higher/lower
- // data in a diff.
- // *************************************************************
-
- var vAllocationDiff = 0;
- var vMinAllocationLoops, vFlexibleChildrenLength, vAdjust, vCurrentAllocationSum, vFactorSum, vComputedFlexibleWidth;
-
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
-
- vComputedFlexibleWidth = vCurrentChild._computedWidthFlexValue = vCurrentChild._computedWidthParsed * vPartWidth;
- vAllocationDiff += vComputedFlexibleWidth - qx.lang.Number.limit(vComputedFlexibleWidth, vCurrentChild.getMinWidthValue(), vCurrentChild.getMaxWidthValue());
- }
-
- // Rounding diff
- vAllocationDiff = Math.round(vAllocationDiff);
-
- if (vAllocationDiff == 0)
- {
- // *************************************************************
- // 5a. If the diff is equal zero we must not do anything more
- // and do nearly identical the same like in 4a. which means
- // to round the calculated flex value and add it to the
- // used width so we can fix rounding problems later.
- // *************************************************************
-
- // Rounding values and fixing rounding errors
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
-
- vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
- vUsedWidth += vCurrentChild._computedWidthFlexValue;
- }
- }
- else
- {
- // *************************************************************
- // 5b. Find maximum loops of each adjustable child to adjust
- // the width until the min/max width limits are reached.
- // *************************************************************
-
- var vUp = vAllocationDiff > 0;
- for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
-
- if (vUp)
- {
- vAdjust = (vCurrentChild.getMaxWidthValue() || Infinity) - vCurrentChild._computedWidthFlexValue;
-
- if (vAdjust > 0)
- {
- vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedWidthParsed);
- }
- else
- {
- qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-
- vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
- vUsedWidth += Math.round(vCurrentChild._computedWidthFlexValue + vAdjust);
- }
- }
- else
- {
- vAdjust = qx.util.Validation.isValidNumber(vCurrentChild.getMinWidthValue()) ? vCurrentChild._computedWidthFlexValue - vCurrentChild.getMinWidthValue() : vCurrentChild._computedWidthFlexValue;
-
- if (vAdjust > 0)
- {
- vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedWidthParsed);
- }
- else
- {
- qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-
- vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
- vUsedWidth += Math.round(vCurrentChild._computedWidthFlexValue - vAdjust);
- }
- }
- }
-
- // *************************************************************
- // 6. Try to reallocate the width between flexible children
- // so that the requirements through min/max limits
- // are satisfied.
- // *************************************************************
- while (vAllocationDiff != 0 && vFlexibleChildrenLength > 0)
- {
- vFlexibleChildrenLength = vFlexibleChildren.length;
- vMinAllocationLoops = Infinity;
- vFactorSum = 0;
-
- // Find minimal loop amount
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
- {
- vMinAllocationLoops = Math.min(vMinAllocationLoops, vFlexibleChildren[vIterator]._allocationLoops);
- vFactorSum += vFlexibleChildren[vIterator]._computedWidthParsed;
- }
-
- // Be sure that the adjustment is not bigger/smaller than diff
- vCurrentAllocationSum = Math.min(vFactorSum * vMinAllocationLoops, vAllocationDiff);
-
- // this.debug("Diff: " + vAllocationDiff);
- // this.debug("Min Loops: " + vMinAllocationLoops);
- // this.debug("Sum: " + vCurrentAllocationSum);
- // this.debug("Factor: " + vFactorSum);
-
- // Reducing diff by current sum
- vAllocationDiff -= vCurrentAllocationSum;
-
- // Adding sizes to children to adjust
- for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
- vCurrentChild._computedWidthFlexValue += vCurrentAllocationSum / vFactorSum * vCurrentChild._computedWidthParsed;
-
- if (vCurrentChild._allocationLoops == vMinAllocationLoops)
- {
- vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
-
- vUsedWidth += vCurrentChild._computedWidthFlexValue;
- delete vCurrentChild._allocationLoops;
- qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
- }
- else
- {
- if (vAllocationDiff == 0)
- {
- vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
- vUsedWidth += vCurrentChild._computedWidthFlexValue;
- delete vCurrentChild._allocationLoops;
- }
- else
- {
- vCurrentChild._allocationLoops -= vMinAllocationLoops;
- }
- }
- }
- }
- }
- }
-
- // *************************************************************
- // 7. Fix rounding errors
- // *************************************************************
- vCurrentChild._computedWidthFlexValue += vAvailWidth - vUsedWidth;
-}
-
-qx.Proto.invalidateChildrenFlexWidth = function() {
- delete this._childrenFlexWidthComputed;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the width needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededWidth = function()
-{
- var w = this.getWidget();
- return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededWidth_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getSpacing());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
- Things to do and layout when any of the childs changes its outer width.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
-{
- // if a childrens outer width changes we need to update our accumulated
- // width of all childrens (used for center or right alignments)
- this.getWidget()._invalidateAccumulatedChildrenOuterWidth();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
- Actions that should be done if the inner width of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
- if (this.getWidget().getHorizontalChildrenAlign() == "center") {
- vChild.addToLayoutChanges("locationX");
- }
-
- // use variables here to be sure to call both methods.
- var vUpdatePercent = vChild._recomputePercentX();
- var vUpdateFlex = vChild._recomputeFlexX();
-
- // inform the caller if there were any notable changes occured
- return vUpdatePercent || vUpdateFlex;
-}
-
-/*!
- Actions that should be done if the inner height of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
- // use variables here to be sure to call both methods.
- var vUpdatePercent = vChild._recomputePercentY();
- var vUpdateStretch = vChild._recomputeStretchingY();
-
- // priority to childs internal alignment
- if ((vChild.getVerticalAlign() || this.getWidget().getVerticalChildrenAlign()) == "middle") {
- vChild.addToLayoutChanges("locationY");
- }
-
- // inform the caller if there were any notable changes occured
- return vUpdatePercent || vUpdateStretch;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
-*/
-qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue)
-{
- if (vJobQueue.addChild || vJobQueue.removeChild) {
- this.getWidget()._invalidateAccumulatedChildrenOuterWidth();
- }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
- var vStretchX=false, vStretchY=false;
- var vWidget = this.getWidget();
-
- // switching the orientation need updates for stretching on both axis
- if (vQueue.orientation) {
- vStretchX = vStretchY = true;
- }
-
- // different updates depending from the current orientation (or the new one)
- if (vQueue.spacing || vQueue.orientation || vQueue.reverseChildrenOrder || vQueue.horizontalChildrenAlign) {
- vWidget._addChildrenToLayoutQueue("locationX");
- }
-
- if (vQueue.verticalChildrenAlign) {
- vWidget._addChildrenToLayoutQueue("locationY");
- }
-
- if (vQueue.stretchChildrenOrthogonalAxis) {
- vStretchY = true;
- }
-
- // if stretching should be reworked reset the previous one and add
- // a layout job to update the width respectively height.
- if (vStretchX)
- {
- vWidget._recomputeChildrenStretchingX();
- vWidget._addChildrenToLayoutQueue("width");
- }
-
- if (vStretchY)
- {
- vWidget._recomputeChildrenStretchingY();
- vWidget._addChildrenToLayoutQueue("height");
- }
-
- return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
- This method combines calls of methods which should be done if a widget should be removed from the current layout.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
-{
- var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
-
- // Fix index to be at the first flex child
- if (this.getEnableFlexSupport())
- {
- for (i=0; i<chl; i++)
- {
- chc = ch[i];
- if (chc.getHasFlexX())
- {
- vIndex = Math.min(vIndex, i);
- break;
- }
- }
-
- i=-1;
- }
-
- // Handle differently depending on layout mode
- switch(w.getLayoutMode())
- {
- case "right":
- case "left-reversed":
- while((chc=ch[++i]) && i<vIndex) {
- chc.addToLayoutChanges("locationX");
- }
-
- break;
-
- case "center":
- case "center-reversed":
- while(chc=ch[++i]) {
- chc.addToLayoutChanges("locationX");
- }
-
- break;
-
- default:
- i+=vIndex;
- while(chc=ch[++i]) {
- chc.addToLayoutChanges("locationX");
- }
- }
-}
-
-/*!
- This method combines calls of methods which should be done if a child should be moved
- inside the same parent to a new positions.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
-{
- var vChildren = this.getWidget().getVisibleChildren();
-
- var vStart = Math.min(vIndex, vOldIndex);
- var vStop = Math.max(vIndex, vOldIndex)+1;
-
- for (var i=vStart; i<vStop; i++) {
- vChildren[i].addToLayoutChanges("locationX");
- }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- This method have full control of the order in which the
- registered (or also non-registered) children should be
- layouted on the horizontal axis.
-*/
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
- var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i;
-
- // This block is needed for flex handling and
- // will inform flex children if there was any
- // change to the other content
- if (this.getEnableFlexSupport())
- {
- this.invalidateChildrenFlexWidth();
-
- for (i=0; i<chl; i++)
- {
- chc = ch[i];
- if (chc.getHasFlexX())
- {
- chc._computedWidthValue = null;
-
- if (chc._recomputeBoxWidth())
- {
- chc._recomputeOuterWidth();
- chc._recomputeInnerWidth();
- }
-
- vChildrenQueue[chc.toHashCode()] = chc;
- chc._layoutChanges.width = true;
- }
- }
- }
-
- switch(w.getLayoutMode())
- {
- case "right":
- case "left-reversed":
- // find the last child which has a layout request
- for (var i=chl-1; i>=0 && !vChildrenQueue[ch[i].toHashCode()]; i--) {}
-
- // layout all children before this last child
- for (var j=0; j<=i; j++) {
- w._layoutChild(chc=ch[j]);
- }
-
- break;
-
- case "center":
- case "center-reversed":
- // re-layout all children
- i = -1;
- while(chc=ch[++i]) {
- w._layoutChild(chc);
- }
-
- break;
-
- default:
- // layout all childs from the first child
- // with an own layout request to the end
- i = -1;
- var changed=false;
- while(chc=ch[++i])
- {
- if (changed || vChildrenQueue[chc.toHashCode()])
- {
- w._layoutChild(chc);
- changed = true;
- }
- }
- }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- This is called from qx.ui.core.Widget and it's task is to apply the layout
- (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
- this.layoutChild_sizeX(vChild, vJobs);
- this.layoutChild_sizeY(vChild, vJobs);
-
- this.layoutChild_sizeLimitX(vChild, vJobs);
- this.layoutChild_sizeLimitY(vChild, vJobs);
-
- this.layoutChild_locationX(vChild, vJobs);
- this.layoutChild_locationY(vChild, vJobs);
-
- this.layoutChild_marginX(vChild, vJobs);
- this.layoutChild_marginY(vChild, vJobs);
-}
-
-if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera() || qx.sys.Client.getInstance().isWebkit() )
-{
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth)
- {
- if (vChild._isWidthEssential() && (!vChild._computedWidthTypeNull || !vChild._computedMinWidthTypeNull || !vChild._computedMaxWidthTypeNull))
- {
- vChild._applyRuntimeWidth(vChild.getBoxWidth());
- }
- else
- {
- vChild._resetRuntimeWidth();
- }
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight)
- {
- if ((vChild._isHeightEssential() && (!vChild._computedHeightTypeNull || !vChild._computedMinHeightTypeNull || !vChild._computedMaxHeightTypeNull)) || (vChild.getAllowStretchY() && this.getWidget().getStretchChildrenOrthogonalAxis()))
- {
- vChild._applyRuntimeHeight(vChild.getBoxHeight());
- }
- else
- {
- vChild._resetRuntimeHeight();
- }
- }
- }
-}
-else
-{
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width)
- {
- if (vChild._isWidthEssential() && !vChild._computedWidthTypeNull)
- {
- vChild._applyRuntimeWidth(vChild.getWidthValue());
- }
- else
- {
- vChild._resetRuntimeWidth();
- }
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height)
- {
- if (vChild._isHeightEssential() && !vChild._computedHeightTypeNull)
- {
- vChild._applyRuntimeHeight(vChild.getHeightValue());
- }
- else
- {
- vChild._resetRuntimeHeight();
- }
- }
- }
-}
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
-
- // handle first child
- if (vWidget.getFirstVisibleChild() == vChild)
- {
- switch(vWidget.getLayoutMode())
- {
- case "right":
- case "left-reversed":
- var vPos = vWidget.getPaddingRight() + vWidget.getAccumulatedChildrenOuterWidth() - vChild.getOuterWidth();
- break;
-
- case "center":
- case "center-reversed":
- var vPos = vWidget.getPaddingLeft() + Math.round((vWidget.getInnerWidth() - vWidget.getAccumulatedChildrenOuterWidth()) / 2);
- break;
-
- default:
- var vPos = vWidget.getPaddingLeft();
- }
- }
-
- // handle any following child
- else
- {
- var vPrev = vChild.getPreviousVisibleSibling();
-
- switch(vWidget.getLayoutMode())
- {
- case "right":
- case "left-reversed":
- var vPos = vPrev._cachedLocationHorizontal - vChild.getOuterWidth() - vWidget.getSpacing();
- break;
-
- default:
- var vPos = vPrev._cachedLocationHorizontal + vPrev.getOuterWidth() + vWidget.getSpacing();
- }
- }
-
- // store for next sibling
- vChild._cachedLocationHorizontal = vPos;
-
- // apply styles
- switch(vWidget.getLayoutMode())
- {
- case "right":
- case "right-reversed":
- case "center-reversed":
- // add relative positions (like 'position:relative' in css)
- vPos += !vChild._computedRightTypeNull ? vChild.getRightValue() : !vChild._computedLeftTypeNull ? -(vChild.getLeftValue()) : 0;
-
- vChild._resetRuntimeLeft();
- vChild._applyRuntimeRight(vPos);
- break;
-
- default:
- // add relative positions (like 'position:relative' in css)
- vPos += !vChild._computedLeftTypeNull ? vChild.getLeftValue() : !vChild._computedRightTypeNull ? -(vChild.getRightValue()) : 0;
-
- vChild._resetRuntimeRight();
- vChild._applyRuntimeLeft(vPos);
- }
-}
-
-qx.Proto.layoutChild_locationY = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
-
- // special stretching support
- if (qx.sys.Client.getInstance().isGecko() && vChild.getAllowStretchY() && vWidget.getStretchChildrenOrthogonalAxis() && vChild._computedHeightTypeNull)
- {
- vChild._applyRuntimeTop(vWidget.getPaddingTop() || 0);
- vChild._applyRuntimeBottom(vWidget.getPaddingBottom() || 0);
-
- return;
- }
-
- // priority to childs internal alignment
- var vAlign = vChild.getVerticalAlign() || vWidget.getVerticalChildrenAlign();
-
- // handle middle alignment
- var vPos = vAlign == "middle" ? Math.round((vWidget.getInnerHeight() - vChild.getOuterHeight()) / 2) : 0;
-
- // the bottom alignment use the real 'bottom' styleproperty to
- // use the best available method in modern browsers
- if (vAlign == "bottom")
- {
- // add parent padding
- vPos += vWidget.getPaddingBottom();
-
- // relative positions (like 'position:relative' in css)
- if (!vChild._computedBottomTypeNull) {
- vPos += vChild.getBottomValue();
- }
- else if (!vChild._computedTopTypeNull) {
- vPos -= vChild.getTopValue();
- }
-
- // apply styles
- vChild._resetRuntimeTop();
- vChild._applyRuntimeBottom(vPos);
- }
- else
- {
- // add parent padding
- vPos += vWidget.getPaddingTop();
-
- // relative positions (like 'position:relative' in css)
- if (!vChild._computedTopTypeNull) {
- vPos += vChild.getTopValue();
- }
- else if (!vChild._computedBottomTypeNull) {
- vPos -= vChild.getBottomValue();
- }
-
- // apply styles
- vChild._resetRuntimeBottom();
- vChild._applyRuntimeTop(vPos);
- }
-}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js
deleted file mode 100644
index 5855d7d420..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js
+++ /dev/null
@@ -1,442 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(ui_layout)
-#require(qx.sys.Client)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.LayoutImpl", qx.core.Object,
-function(vWidget)
-{
- qx.core.Object.call(this);
-
- this._widget = vWidget;
-});
-
-
-
-
-/*!
- Returns the associated widget
-*/
-qx.Proto.getWidget = function() {
- return this._widget;
-}
-
-
-/*!
- Global Structure:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-*/
-
-
-/*
----------------------------------------------------------------------------
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the box width of the given child
-*/
-qx.Proto.computeChildBoxWidth = function(vChild) {
- return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
-}
-
-/*!
- Compute and return the box height of the given child
-*/
-qx.Proto.computeChildBoxHeight = function(vChild) {
- return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the needed width of the given child
-*/
-qx.Proto.computeChildNeededWidth = function(vChild)
-{
- // omit ultra long lines, these two variables only needed once
- // here, but this enhance the readability of the code :)
- var vMinBox = vChild._computedMinWidthTypePercent ? null : vChild.getMinWidthValue();
- var vMaxBox = vChild._computedMaxWidthTypePercent ? null : vChild.getMaxWidthValue();
-
- var vBox = (vChild._computedWidthTypePercent || vChild._computedWidthTypeFlex ? null : vChild.getWidthValue()) || vChild.getPreferredBoxWidth() || 0;
-
- return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vChild.getMarginLeft() + vChild.getMarginRight();
-}
-
-/*!
- Compute and return the needed height of the given child
-*/
-qx.Proto.computeChildNeededHeight = function(vChild)
-{
- // omit ultra long lines, these two variables only needed once
- // here, but this enhance the readability of the code :)
- var vMinBox = vChild._computedMinHeightTypePercent ? null : vChild.getMinHeightValue();
- var vMaxBox = vChild._computedMaxHeightTypePercent ? null : vChild.getMaxHeightValue();
-
- var vBox = (vChild._computedHeightTypePercent || vChild._computedHeightTypeFlex ? null : vChild.getHeightValue()) || vChild.getPreferredBoxHeight() || 0;
-
- return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vChild.getMarginTop() + vChild.getMarginBottom();
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- Calculate the maximum needed width of all children
-*/
-qx.Proto.computeChildrenNeededWidth_max = function()
-{
- for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, maxv=0; i<chl; i++) {
- maxv = Math.max(maxv, ch[i].getNeededWidth());
- }
-
- return maxv;
-}
-
-/*!
- Calculate the maximum needed height of all children
-*/
-qx.Proto.computeChildrenNeededHeight_max = function()
-{
- for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, maxv=0; i<chl; i++) {
- maxv = Math.max(maxv, ch[i].getNeededHeight());
- }
-
- return maxv;
-}
-
-qx.Proto.computeChildrenNeededWidth_sum = function()
-{
- for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, sumv=0; i<chl; i++) {
- sumv += ch[i].getNeededWidth();
- }
-
- return sumv;
-}
-
-qx.Proto.computeChildrenNeededHeight_sum = function()
-{
- for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, sumv=0; i<chl; i++) {
- sumv += ch[i].getNeededHeight();
- }
-
- return sumv;
-}
-
-/*!
- Compute and return the width needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededWidth = qx.Proto.computeChildrenNeededWidth_max;
-
-/*!
- Compute and return the height needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededHeight = qx.Proto.computeChildrenNeededHeight_max;
-
-
-
-
-/*
----------------------------------------------------------------------------
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
- Things to do and layout when any of the childs changes its outer width.
- Needed by layouts where the children depend on each other, like flow or box layouts.
-*/
-qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild) {}
-
-/*!
- Things to do and layout when any of the childs changes its outer height.
- Needed by layouts where the children depend on each other, like flow or box layouts.
-*/
-qx.Proto.updateSelfOnChildOuterHeightChange = function(vChild) {}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
- Actions that should be done if the inner width of the layout widget has changed.
- Normally this includes updates to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild) {}
-
-/*!
- Actions that should be done if the inner height of the layout widget has changed.
- Normally this includes updates to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild) {}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Invalidate and recompute cached data according to job queue.
- This is executed at the beginning of the job queue handling.
-*/
-qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue) {}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Updates children on job queue flush.
- This is executed at the end of the job queue handling.
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue) {}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
- Add child to current layout. Rarely needed by some layout implementations.
-*/
-qx.Proto.updateChildrenOnAddChild = function(vChild, vIndex) {}
-
-/*!
- Remove child from current layout.
- Needed by layouts where the children depend on each other, like flow or box layouts.
-*/
-qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex) {}
-
-/*!
- Move child within its parent to a new position.
- Needed by layouts where the children depend on each other, like flow or box layouts.
-*/
-qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex) {}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- Has full control of the order in which the registered
- (or non-registered) children should be layouted.
-*/
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
- var vWidget = this.getWidget();
-
- for (var vHashCode in vChildrenQueue) {
- vWidget._layoutChild(vChildrenQueue[vHashCode]);
- }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Called from qx.ui.core.Widget. Its task is to apply the layout
- (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs) {}
-
-if (qx.sys.Client.getInstance().isMshtml())
-{
- qx.Proto.layoutChild_sizeLimitX = qx.util.Return.returnTrue;
- qx.Proto.layoutChild_sizeLimitY = qx.util.Return.returnTrue;
-}
-else
-{
- /*!
- Apply min-/max-width/height to the child. Direct usage of stylesheet properties.
- This is only possible in modern capable clients (i.e. excluding all current
- versions of Internet Explorer)
- */
- qx.Proto.layoutChild_sizeLimitX = function(vChild, vJobs)
- {
- if (vJobs.minWidth) {
- vChild._computedMinWidthTypeNull ? vChild._resetRuntimeMinWidth() : vChild._applyRuntimeMinWidth(vChild.getMinWidthValue());
- }
- else if (vJobs.initial && !vChild._computedMinWidthTypeNull) {
- vChild._applyRuntimeMinWidth(vChild.getMinWidthValue());
- }
-
- if (vJobs.maxWidth) {
- vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeMaxWidth() : vChild._applyRuntimeMaxWidth(vChild.getMaxWidthValue());
- }
- else if (vJobs.initial && !vChild._computedMaxWidthTypeNull) {
- vChild._applyRuntimeMaxWidth(vChild.getMaxWidthValue());
- }
- }
-
- qx.Proto.layoutChild_sizeLimitY = function(vChild, vJobs)
- {
- if (vJobs.minHeight) {
- vChild._computedMinHeightTypeNull ? vChild._resetRuntimeMinHeight() : vChild._applyRuntimeMinHeight(vChild.getMinHeightValue());
- }
- else if (vJobs.initial && !vChild._computedMinHeightTypeNull) {
- vChild._applyRuntimeMinHeight(vChild.getMinHeightValue());
- }
-
- if (vJobs.maxHeight) {
- vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeMaxHeight() : vChild._applyRuntimeMaxHeight(vChild.getMaxHeightValue());
- }
- else if (vJobs.initial && !vChild._computedMaxHeightTypeNull) {
- vChild._applyRuntimeMaxHeight(vChild.getMaxHeightValue());
- }
- }
-}
-
-/*!
- Apply the margin values as pure stylesheet equivalent.
-*/
-qx.Proto.layoutChild_marginX = function(vChild, vJobs)
-{
- if (vJobs.marginLeft || vJobs.initial)
- {
- var vValueLeft = vChild.getMarginLeft();
- vValueLeft != null ? vChild._applyRuntimeMarginLeft(vValueLeft) : vChild._resetRuntimeMarginLeft();
- }
-
- if (vJobs.marginRight || vJobs.initial)
- {
- var vValueRight = vChild.getMarginRight();
- vValueRight != null ? vChild._applyRuntimeMarginRight(vValueRight) : vChild._resetRuntimeMarginRight();
- }
-}
-
-qx.Proto.layoutChild_marginY = function(vChild, vJobs)
-{
- if (vJobs.marginTop || vJobs.initial)
- {
- var vValueTop = vChild.getMarginTop();
- vValueTop != null ? vChild._applyRuntimeMarginTop(vValueTop) : vChild._resetRuntimeMarginTop();
- }
-
- if (vJobs.marginBottom || vJobs.initial)
- {
- var vValueBottom = vChild.getMarginBottom();
- vValueBottom != null ? vChild._applyRuntimeMarginBottom(vValueBottom) : vChild._resetRuntimeMarginBottom();
- }
-}
-
-qx.Proto.layoutChild_sizeX_essentialWrapper = function(vChild, vJobs) {
- return vChild._isWidthEssential() ? this.layoutChild_sizeX(vChild, vJobs) : vChild._resetRuntimeWidth();
-}
-
-qx.Proto.layoutChild_sizeY_essentialWrapper = function(vChild, vJobs) {
- return vChild._isHeightEssential() ? this.layoutChild_sizeY(vChild, vJobs) : vChild._resetRuntimeHeight();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [11] DISPOSER
----------------------------------------------------------------------------
-*/
-
-/*!
- Dispose the layout implmentation and release the associated widget.
-*/
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return true;
- }
-
- this._widget = null;
-
- qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js
deleted file mode 100644
index c62b60e18e..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js
+++ /dev/null
@@ -1,183 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.MenuButtonLayoutImpl", qx.renderer.layout.HorizontalBoxLayoutImpl,
-function(vWidget)
-{
- qx.renderer.layout.HorizontalBoxLayoutImpl.call(this, vWidget);
-
- // We don't need flex support, should make things a bit faster,
- // as this omits some additional loops in qx.renderer.layout.HorizontalBoxLayoutImpl.
- this.setEnableFlexSupport(false);
-});
-
-
-/*!
- Global Structure:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-
-
- Inherits from qx.renderer.layout.HorizontalBoxLayoutImpl:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [11] DISPOSER
-*/
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the width needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededWidth = function()
-{
- // Caching the widget reference
- var vWidget = this.getWidget();
-
- // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
- var vMenu = vWidget.getParent().getParent();
-
- // Let the menu do the real hard things
- return vMenu.getMenuButtonNeededWidth();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
- Things to do and layout when any of the childs changes its outer width.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
-{
- // Caching the widget reference
- var vWidget = this.getWidget();
-
- // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
- var vMenu = vWidget.getParent().getParent();
-
- // Send out invalidate signals
- switch(vChild)
- {
- case vWidget._iconObject:
- vMenu._invalidateMaxIconWidth();
- break;
-
- case vWidget._labelObject:
- vMenu._invalidateMaxLabelWidth();
- break;
-
- case vWidget._shortcutObject:
- vMenu._invalidateMaxShortcutWidth();
- break;
-
- case vWidget._arrowObject:
- vMenu._invalidateMaxArrowWidth();
- break;
- }
-
- // Call superclass implementation
- return qx.renderer.layout.HorizontalBoxLayoutImpl.prototype.updateSelfOnChildOuterWidthChange.call(this, vChild);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
- // Caching the widget reference
- var vWidget = this.getWidget();
-
- // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
- var vMenu = vWidget.getParent().getParent();
-
- // Left position of the child
- var vPos = null;
-
- // Ask the menu instance for the correct location
- switch(vChild)
- {
- case vWidget._iconObject:
- vPos = vMenu.getIconPosition();
- break;
-
- case vWidget._labelObject:
- vPos = vMenu.getLabelPosition();
- break;
-
- case vWidget._shortcutObject:
- vPos = vMenu.getShortcutPosition();
- break;
-
- case vWidget._arrowObject:
- vPos = vMenu.getArrowPosition();
- break;
- }
-
- if (vPos != null)
- {
- vPos += vWidget.getPaddingLeft();
- vChild._applyRuntimeLeft(vPos);
- }
-}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js
deleted file mode 100644
index abb747cc81..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.MenuLayoutImpl", qx.renderer.layout.VerticalBoxLayoutImpl,
-function(vWidget)
-{
- qx.renderer.layout.VerticalBoxLayoutImpl.call(this, vWidget);
-
- // We don't need flex support, should make things a bit faster,
- // as this omits some additional loops in qx.renderer.layout.HorizontalBoxLayoutImpl.
- this.setEnableFlexSupport(false);
-});
-
-
-/*!
- Global Structure:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-
-
- Inherits from qx.renderer.layout.VerticalBoxLayoutImpl:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-*/
-
-
-
-
-/*
----------------------------------------------------------------------------
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
- var vWidget = this.getWidget();
- var ch, chc;
-
- if (vQueue.preferredInnerWidth)
- {
- var ch = vWidget.getChildren(), chl = ch.length, chc;
- var sch, schl;
-
- for (var i=0; i<chl; i++)
- {
- chc = ch[i];
- sch = chc.getChildren();
- schl = sch.length;
-
- for (var j=0; j<schl; j++) {
- sch[j].addToLayoutChanges("locationX");
- }
- }
- }
-
- // Call superclass implementation
- return qx.renderer.layout.VerticalBoxLayoutImpl.prototype.updateChildrenOnJobQueueFlush.call(this, vQueue);
-}
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js
deleted file mode 100644
index deaac7f9d7..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js
+++ /dev/null
@@ -1,866 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.VerticalBoxLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
- qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-qx.OO.addProperty({ name : "enableFlexSupport", type : "boolean", defaultValue : true });
-
-
-
-/*!
- Global Structure:
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
- [10] LAYOUT CHILD
- [11] DISPOSER
-
-
- Inherits from qx.renderer.layout.LayoutImpl:
- [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
- [11] DISPOSER
-*/
-
-
-
-/*
----------------------------------------------------------------------------
- [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the box width of the given child.
-*/
-qx.Proto.computeChildBoxWidth = function(vChild)
-{
- if (this.getWidget().getStretchChildrenOrthogonalAxis() && vChild._computedWidthTypeNull && vChild.getAllowStretchX()) {
- return this.getWidget().getInnerWidth();
- }
-
- return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
-}
-
-/*!
- Compute and return the box height of the given child.
-*/
-qx.Proto.computeChildBoxHeight = function(vChild) {
- return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
-}
-
-/*!
- Computes the height of all flexible children.
-*/
-qx.Proto.computeChildrenFlexHeight = function()
-{
- if (this._childrenFlexHeightComputed || !this.getEnableFlexSupport()) {
- return;
- }
-
- this._childrenFlexHeightComputed = true;
-
- // this.debug("computeChildrenFlexHeight");
-
- var vWidget = this.getWidget();
- var vChildren = vWidget.getVisibleChildren();
- var vChildrenLength = vChildren.length;
- var vCurrentChild;
- var vFlexibleChildren = [];
- var vAvailHeight = vWidget.getInnerHeight();
- var vUsedHeight = vWidget.getSpacing() * (vChildrenLength-1);
- var vIterator;
-
-
- // *************************************************************
- // 1. Compute the sum of all static sized children and finding
- // all flexible children.
- // *************************************************************
- for (vIterator=0; vIterator<vChildrenLength; vIterator++)
- {
- vCurrentChild = vChildren[vIterator];
-
- if (vCurrentChild._computedHeightTypeFlex)
- {
- vFlexibleChildren.push(vCurrentChild);
-
- if (vWidget._computedHeightTypeAuto) {
- vUsedHeight += vCurrentChild.getPreferredBoxHeight();
- }
- }
- else
- {
- vUsedHeight += vCurrentChild.getOuterHeight();
- }
- }
-
- // this.debug("Height: " + vUsedHeight + "/" + vAvailHeight);
- // this.debug("Flexible Count: " + vFlexibleChildren.length);
-
-
- // *************************************************************
- // 2. Compute the sum of all flexible children heights
- // *************************************************************
- var vRemainingHeight = vAvailHeight - vUsedHeight;
- var vFlexibleChildrenLength = vFlexibleChildren.length;
- var vPrioritySum = 0;
-
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++) {
- vPrioritySum += vFlexibleChildren[vIterator]._computedHeightParsed;
- }
-
-
- // *************************************************************
- // 3. Calculating the size of each 'part'.
- // *************************************************************
- var vPartHeight = vRemainingHeight / vPrioritySum;
-
-
- if (!vWidget.getUseAdvancedFlexAllocation())
- {
- // *************************************************************
- // 4a. Computing the flex height value of each flexible child
- // and add the height to the usedHeight, so that we can
- // fix rounding problems later.
- // *************************************************************
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
-
- vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightParsed * vPartHeight);
- vUsedHeight += vCurrentChild._computedHeightFlexValue;
- }
- }
- else
- {
- // *************************************************************
- // 4b. Calculating the diff. Which means respect the min/max
- // height configuration in flex and store the higher/lower
- // data in a diff.
- // *************************************************************
-
- var vAllocationDiff = 0;
- var vMinAllocationLoops, vFlexibleChildrenLength, vAdjust, vCurrentAllocationSum, vFactorSum, vComputedFlexibleHeight;
-
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
-
- vComputedFlexibleHeight = vCurrentChild._computedHeightFlexValue = vCurrentChild._computedHeightParsed * vPartHeight;
- vAllocationDiff += vComputedFlexibleHeight - qx.lang.Number.limit(vComputedFlexibleHeight, vCurrentChild.getMinHeightValue(), vCurrentChild.getMaxHeightValue());
- }
-
- // Rounding diff
- vAllocationDiff = Math.round(vAllocationDiff);
-
- if (vAllocationDiff == 0)
- {
- // *************************************************************
- // 5a. If the diff is equal zero we must not do anything more
- // and do nearly identical the same like in 4a. which means
- // to round the calculated flex value and add it to the
- // used height so we can fix rounding problems later.
- // *************************************************************
-
- // Rounding values and fixing rounding errors
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
-
- vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
- vUsedHeight += vCurrentChild._computedHeightFlexValue;
- }
- }
- else
- {
- // *************************************************************
- // 5b. Find maximum loops of each adjustable child to adjust
- // the height until the min/max height limits are reached.
- // *************************************************************
-
- var vUp = vAllocationDiff > 0;
- for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
-
- if (vUp)
- {
- vAdjust = (vCurrentChild.getMaxHeightValue() || Infinity) - vCurrentChild._computedHeightFlexValue;
-
- if (vAdjust > 0)
- {
- vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedHeightParsed);
- }
- else
- {
- qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-
- vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
- vUsedHeight += Math.round(vCurrentChild._computedHeightFlexValue + vAdjust);
- }
- }
- else
- {
- vAdjust = qx.util.Validation.isValidNumber(vCurrentChild.getMinHeightValue()) ? vCurrentChild._computedHeightFlexValue - vCurrentChild.getMinHeightValue() : vCurrentChild._computedHeightFlexValue;
-
- if (vAdjust > 0)
- {
- vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedHeightParsed);
- }
- else
- {
- qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-
- vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
- vUsedHeight += Math.round(vCurrentChild._computedHeightFlexValue - vAdjust);
- }
- }
- }
-
- // *************************************************************
- // 6. Try to reallocate the height between flexible children
- // so that the requirements through min/max limits
- // are satisfied.
- // *************************************************************
- while (vAllocationDiff != 0 && vFlexibleChildrenLength > 0)
- {
- vFlexibleChildrenLength = vFlexibleChildren.length;
- vMinAllocationLoops = Infinity;
- vFactorSum = 0;
-
- // Find minimal loop amount
- for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
- {
- vMinAllocationLoops = Math.min(vMinAllocationLoops, vFlexibleChildren[vIterator]._allocationLoops);
- vFactorSum += vFlexibleChildren[vIterator]._computedHeightParsed;
- }
-
- // Be sure that the adjustment is not bigger/smaller than diff
- vCurrentAllocationSum = Math.min(vFactorSum * vMinAllocationLoops, vAllocationDiff);
-
- // this.debug("Diff: " + vAllocationDiff);
- // this.debug("Min Loops: " + vMinAllocationLoops);
- // this.debug("Sum: " + vCurrentAllocationSum);
- // this.debug("Factor: " + vFactorSum);
-
- // Reducing diff by current sum
- vAllocationDiff -= vCurrentAllocationSum;
-
- // Adding sizes to children to adjust
- for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
- {
- vCurrentChild = vFlexibleChildren[vIterator];
- vCurrentChild._computedHeightFlexValue += vCurrentAllocationSum / vFactorSum * vCurrentChild._computedHeightParsed;
-
- if (vCurrentChild._allocationLoops == vMinAllocationLoops)
- {
- vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
-
- vUsedHeight += vCurrentChild._computedHeightFlexValue;
- delete vCurrentChild._allocationLoops;
- qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
- }
- else
- {
- if (vAllocationDiff == 0)
- {
- vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
- vUsedHeight += vCurrentChild._computedHeightFlexValue;
- delete vCurrentChild._allocationLoops;
- }
- else
- {
- vCurrentChild._allocationLoops -= vMinAllocationLoops;
- }
- }
- }
- }
- }
- }
-
- // *************************************************************
- // 7. Fix rounding errors
- // *************************************************************
- vCurrentChild._computedHeightFlexValue += vAvailHeight - vUsedHeight;
-}
-
-qx.Proto.invalidateChildrenFlexHeight = function() {
- delete this._childrenFlexHeightComputed;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- Compute and return the height needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededHeight = function()
-{
- var w = this.getWidget();
- return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededHeight_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getSpacing());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
- Things to do and layout when any of the childs changes its outer height.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateSelfOnChildOuterHeightChange = function(vChild)
-{
- // if a childrens outer height changes we need to update our accumulated
- // height of all childrens (used for middle or bottom alignments)
- this.getWidget()._invalidateAccumulatedChildrenOuterHeight();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
- Actions that should be done if the inner width of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
- // use variables here to be sure to call both methods.
- var vUpdatePercent = vChild._recomputePercentX();
- var vUpdateStretch = vChild._recomputeStretchingX();
-
- // priority to childs internal alignment
- if ((vChild.getHorizontalAlign() || this.getWidget().getHorizontalChildrenAlign()) == "center") {
- vChild.addToLayoutChanges("locationX");
- }
-
- // inform the caller if there were any notable changes occured
- return vUpdatePercent || vUpdateStretch;
-}
-
-/*!
- Actions that should be done if the inner height of the widget was changed.
- Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
- if (this.getWidget().getVerticalChildrenAlign() == "middle") {
- vChild.addToLayoutChanges("locationY");
- }
-
- // use variables here to be sure to call both methods.
- var vUpdatePercent = vChild._recomputePercentY();
- var vUpdateFlex = vChild._recomputeFlexY();
-
- // inform the caller if there were any notable changes occured
- return vUpdatePercent || vUpdateFlex;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
-*/
-qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue)
-{
- if (vJobQueue.addChild || vJobQueue.removeChild) {
- this.getWidget()._invalidateAccumulatedChildrenOuterHeight();
- }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
- Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
- var vStretchX=false, vStretchY=false;
- var vWidget = this.getWidget();
-
- // switching the orientation need updates for stretching on both axis
- if (vQueue.orientation) {
- vStretchX = vStretchY = true;
- }
-
- // different updates depending from the current orientation (or the new one)
- if (vQueue.spacing || vQueue.orientation || vQueue.reverseChildrenOrder || vQueue.verticalChildrenAlign) {
- vWidget._addChildrenToLayoutQueue("locationY");
- }
-
- if (vQueue.horizontalChildrenAlign) {
- vWidget._addChildrenToLayoutQueue("locationX");
- }
-
- if (vQueue.stretchChildrenOrthogonalAxis) {
- vStretchX = true;
- }
-
- // if stretching should be reworked reset the previous one and add
- // a layout job to update the width respectively height.
- if (vStretchX)
- {
- vWidget._recomputeChildrenStretchingX();
- vWidget._addChildrenToLayoutQueue("width");
- }
-
- if (vStretchY)
- {
- vWidget._recomputeChildrenStretchingY();
- vWidget._addChildrenToLayoutQueue("height");
- }
-
- return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [08] CHILDREN ADD/REMOVE/MOVE HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
- This method combines calls of methods which should be done if a widget should be removed from the current layout.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
-{
- var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
-
- // Fix index to be at the first flex child
- if (this.getEnableFlexSupport())
- {
- for (var i=0; i<chl; i++)
- {
- chc = ch[i];
- if (chc.getHasFlexY())
- {
- vIndex = Math.min(vIndex, i);
- break;
- }
- }
-
- i=-1;
- }
-
- // Handle differently depending on layout mode
- switch(w.getLayoutMode())
- {
- case "bottom":
- case "top-reversed":
- while((chc=ch[++i]) && i<vIndex) {
- chc.addToLayoutChanges("locationY");
- }
-
- break;
-
- case "middle":
- case "middle-reversed":
- while(chc=ch[++i]) {
- chc.addToLayoutChanges("locationY");
- }
-
- break;
-
- default:
- i+=vIndex;
- while(chc=ch[++i]) {
- chc.addToLayoutChanges("locationY");
- }
- }
-}
-
-/*!
- This method combines calls of methods which should be done if a child should be moved
- inside the same parent to a new positions.
- Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
-{
- var vChildren = this.getWidget().getVisibleChildren();
-
- var vStart = Math.min(vIndex, vOldIndex);
- var vStop = Math.max(vIndex, vOldIndex)+1;
-
- for (var i=vStart; i<vStop; i++) {
- vChildren[i].addToLayoutChanges("locationY");
- }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
- This method have full control of the order in which the
- registered (or also non-registered) children should be
- layouted on the horizontal axis.
-*/
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
- var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i;
-
- // This block is needed for flex handling and
- // will inform flex children if there was any
- // change to the other content
- if (this.getEnableFlexSupport())
- {
- this.invalidateChildrenFlexHeight();
-
- for (i=0; i<chl; i++)
- {
- chc = ch[i];
- if (chc.getHasFlexY())
- {
- chc._computedHeightValue = null;
-
- if (chc._recomputeBoxHeight())
- {
- chc._recomputeOuterHeight();
- chc._recomputeInnerHeight();
- }
-
- vChildrenQueue[chc.toHashCode()] = chc;
- chc._layoutChanges.height = true;
- }
- }
- }
-
- switch(w.getLayoutMode())
- {
- case "bottom":
- case "top-reversed":
- // find the last child which has a layout request
- for (var i=chl-1; i>=0 && !vChildrenQueue[ch[i].toHashCode()]; i--) {}
-
- // layout all children before this last child
- for (var j=0; j<=i; j++) {
- w._layoutChild(chc=ch[j]);
- }
-
- break;
-
- case "middle":
- case "middle-reversed":
- // re-layout all children
- i = -1;
- while(chc=ch[++i]) {
- w._layoutChild(chc);
- }
-
- break;
-
- default:
- // layout all childs from the first child
- // with an own layout request to the end
- i = -1;
- var changed=false;
- while(chc=ch[++i])
- {
- if (changed || vChildrenQueue[chc.toHashCode()])
- {
- w._layoutChild(chc);
- changed = true;
- }
- }
- }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
- This is called from qx.ui.core.Widget and it's task is to apply the layout
- (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
- this.layoutChild_sizeX(vChild, vJobs);
- this.layoutChild_sizeY(vChild, vJobs);
-
- this.layoutChild_sizeLimitX(vChild, vJobs);
- this.layoutChild_sizeLimitY(vChild, vJobs);
-
- this.layoutChild_locationX(vChild, vJobs);
- this.layoutChild_locationY(vChild, vJobs);
-
- this.layoutChild_marginX(vChild, vJobs);
- this.layoutChild_marginY(vChild, vJobs);
-}
-
-if (qx.sys.Client.getInstance().isMshtml() || qx.sys.Client.getInstance().isOpera() || qx.sys.Client.getInstance().isWebkit())
-{
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth)
- {
- if ((vChild._isWidthEssential() && (!vChild._computedWidthTypeNull || !vChild._computedMinWidthTypeNull || !vChild._computedMaxWidthTypeNull)) || (vChild.getAllowStretchX() && this.getWidget().getStretchChildrenOrthogonalAxis()))
- {
- vChild._applyRuntimeWidth(vChild.getBoxWidth());
- }
- else
- {
- vChild._resetRuntimeWidth();
- }
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight)
- {
- if (vChild._isHeightEssential() && (!vChild._computedHeightTypeNull || !vChild._computedMinHeightTypeNull || !vChild._computedMaxHeightTypeNull))
- {
- vChild._applyRuntimeHeight(vChild.getBoxHeight());
- }
- else
- {
- vChild._resetRuntimeHeight();
- }
- }
- }
-}
-else
-{
- qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.width)
- {
- if (vChild._isWidthEssential() && !vChild._computedWidthTypeNull)
- {
- vChild._applyRuntimeWidth(vChild.getWidthValue());
- }
- else
- {
- vChild._resetRuntimeWidth();
- }
- }
- }
-
- qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
- {
- if (vJobs.initial || vJobs.height)
- {
- if (vChild._isHeightEssential() && !vChild._computedHeightTypeNull)
- {
- vChild._applyRuntimeHeight(vChild.getHeightValue());
- }
- else
- {
- vChild._resetRuntimeHeight();
- }
- }
- }
-}
-
-qx.Proto.layoutChild_locationY = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
-
- // handle first child
- if (vWidget.getFirstVisibleChild() == vChild)
- {
- switch(vWidget.getLayoutMode())
- {
- case "bottom":
- case "top-reversed":
- var vPos = vWidget.getPaddingBottom() + vWidget.getAccumulatedChildrenOuterHeight() - vChild.getOuterHeight();
- break;
-
- case "middle":
- case "middle-reversed":
- var vPos = vWidget.getPaddingTop() + Math.round((vWidget.getInnerHeight() - vWidget.getAccumulatedChildrenOuterHeight()) / 2);
- break;
-
- default:
- var vPos = vWidget.getPaddingTop();
- }
- }
-
- // handle any following child
- else
- {
- var vPrev = vChild.getPreviousVisibleSibling();
-
- switch(vWidget.getLayoutMode())
- {
- case "bottom":
- case "top-reversed":
- var vPos = vPrev._cachedLocationVertical - vChild.getOuterHeight() - vWidget.getSpacing();
- break;
-
- default:
- var vPos = vPrev._cachedLocationVertical + vPrev.getOuterHeight() + vWidget.getSpacing();
- }
- }
-
- // store for next sibling
- vChild._cachedLocationVertical = vPos;
-
- // apply styles
- switch(this.getWidget().getLayoutMode())
- {
- case "bottom":
- case "bottom-reversed":
- case "middle-reversed":
- // add relative positions (like 'position:relative' in css)
- vPos += !vChild._computedBottomTypeNull ? vChild.getBottomValue() : !vChild._computedTopTypeNull ? -(vChild.getTopValue()) : 0;
-
- vChild._resetRuntimeTop();
- vChild._applyRuntimeBottom(vPos);
- break;
-
- default:
- // add relative positions (like 'position:relative' in css)
- vPos += !vChild._computedTopTypeNull ? vChild.getTopValue() : !vChild._computedBottomTypeNull ? -(vChild.getBottomValue()) : 0;
-
- vChild._resetRuntimeBottom();
- vChild._applyRuntimeTop(vPos);
- }
-}
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
- var vWidget = this.getWidget();
-
- // special stretching support
- if (qx.sys.Client.getInstance().isGecko() && vChild.getAllowStretchX() && vWidget.getStretchChildrenOrthogonalAxis() && vChild._computedWidthTypeNull)
- {
- vChild._applyRuntimeLeft(vWidget.getPaddingLeft() || 0);
- vChild._applyRuntimeRight(vWidget.getPaddingRight() || 0);
-
- return;
- }
-
- // priority to childs internal alignment
- var vAlign = vChild.getHorizontalAlign() || vWidget.getHorizontalChildrenAlign();
-
- // handle center alignment
- var vPos = vAlign == "center" ? Math.round((vWidget.getInnerWidth() - vChild.getOuterWidth()) / 2) : 0;
-
- // the right alignment use the real 'right' styleproperty to
- // use the best available method in modern browsers
- if (vAlign == "right")
- {
- // add parent padding
- vPos += vWidget.getPaddingRight();
-
- // relative positions (like 'position:relative' in css)
- if (!vChild._computedRightTypeNull) {
- vPos += vChild.getRightValue();
- }
- else if (!vChild._computedLeftTypeNull) {
- vPos -= vChild.getLeftValue();
- }
-
- // apply styles
- vChild._resetRuntimeLeft();
- vChild._applyRuntimeRight(vPos);
- }
- else
- {
- // add parent padding
- vPos += vWidget.getPaddingLeft();
-
- // relative positions (like 'position:relative' in css)
- if (!vChild._computedLeftTypeNull) {
- vPos += vChild.getLeftValue();
- }
- else if (!vChild._computedRightTypeNull) {
- vPos -= vChild.getRightValue();
- }
-
- // apply styles
- vChild._resetRuntimeRight();
- vChild._applyRuntimeLeft(vPos);
- }
-}